@Quesooo If failed x3 the players will get nuked using this:
For the single slot machine mode, find this part of the script:
cutin .ssm_animate$[3] + atoi(.ssm_animate$[
[email protected]]),4;
dispbottom "Failed";
below that line, add the following:
slt_fld01++;
if (slt_fld01 >= 3){
slt_fld01 = 0;
atcommand "@nuke "+strcharinfo(0);
}
For the Triple slot machine mode, find his part of the script:
} else { dispbottom "Failed"; }
and replace it with this:
} else {
dispbottom "Failed";
slt_fld03++;
if (slt_fld03 >= 3){
slt_fld03 = 0;
atcommand "@nuke "+strcharinfo(0);
}
}
Here's your script, I already added the changes I made above.
prontera,163,161,4 script SlotMachine 563,{
if( getgmlevel() == 99 ) {
mes "Welcome Administrator.","What would you like to do?";
menu "Play Game",-,"Change Slot Machine Mode",iMode;
next;
}
switch( getd(".mode"+strnpcinfo(3)+"") ){
case 0: // Single Slot machine mode.
mes "Do you want to play a game?";
if( !.payment ) { mes "It costs: "+ .ssm_payment_message$[0] +" to play."; }
else if ( .payment == 1 ) { mes "It costs: "+ .ssm_payment_message$[1] +" to play."; }
else if ( .payment == 2 ) { mes "It costs: "+ .ssm_payment_message$[0] +" & "+ .payment_message$[1] +" to play."; }
if( select("YES:NO") == 2 || Zeny < .ssm_payment[0] && ( !.payment || .payment == 2 ) || countitem(.ssm_payment[1]) < .ssm_payment[2] && .payment ){ close; }
while( @menu == 1 ){
if (.EventON == 0) {mes "Slot Machine already finished"; cutin "",255; end;}
if( !.payment || .payment == 2 ) { Zeny -= .ssm_payment[0]; }
if( .payment ) { delitem( .ssm_payment[1], .ssm_payment[2] ); }
if( .soundeffects ) { soundeffect "slot_jackpot.wav",0; }
[email protected] = rand(1,100);
if(
[email protected] < atoi(.ssm_animate$[0]) ){
[email protected] = 1; } else {
[email protected] = 2; }
[email protected] = 1;
while(
[email protected] < atoi(.ssm_animate$[
[email protected]]) ) {
cutin .ssm_animate$[3] +
[email protected],4; sleep2 ( ( atoi(.ssm_animate$[4]) * 1000 ) / atoi(.ssm_animate$[
[email protected]]) );
[email protected]++;
}
if(
[email protected] == 1 ){
cutin .ssm_animate$[3] + atoi(.ssm_animate$[
[email protected]]),4;
dispbottom "Failed";
slt_fld01++;
if (slt_fld01 >= 3){
slt_fld01 = 0;
atcommand "@nuke "+strcharinfo(0);
}
}
else {
cutin .ssm_animate$[3] + atoi(.ssm_animate$[
[email protected]]),4;
switch(rand(5)) {
case 0:
getitem 603,5;
specialeffect2 10;
break;
case 1:
getitem 617,5;
specialeffect2 10;
break;
case 2:
getitem 644,5;
specialeffect2 10;
break;
case 3:
getitem 616,1;
specialeffect2 10;
break;
case 4:
getitem 7776,2;
specialeffect2 10;
break;
case 5:
getitem 18571,1;
specialeffect2 10;
break;
}
}
if( select("Another Round:I'm done") == 2 || Zeny < .ssm_payment[0] && ( !.payment || .payment == 2 ) || countitem(.ssm_payment[1]) < .ssm_payment[2] && .payment ){ cutin "",255; close; }
}
end;
case 1: // Triple Slot machine mode.
mes "Do you want to play a game?";
if( !.payment ) { mes "It costs: "+ .tsm_payment_message$[0] +" to play."; }
else if ( .payment == 1 ) { mes "It costs: "+ .tsm_payment_message$[1] +" to play."; }
else if ( .payment == 2 ) { mes "It costs: "+ .tsm_payment_message$[0] +" & "+ .tsm_payment_message$[1] +" to play."; }
if( select("YES:NO") == 2 || Zeny < .tsm_payment[0] && ( !.payment || .payment == 2 ) || countitem(.tsm_payment[1]) < .tsm_payment[2] && .payment ){ close; }
while( @menu == 1 ){
if (.EventON == 0) {mes "Slot Machine already finished"; cutin "",255; end;}
if( !.payment || .payment == 2 ) { Zeny -= .tsm_payment[0]; }
if( .payment ) { delitem( .tsm_payment[1], .tsm_payment[2] ); }
if( .soundeffects ) { soundeffect "slot_jackpot.wav",0; }
// Slot 1 = 100% Chance for success. (Because I didn't make a fail animation for it.
[email protected] = rand(1,100); //Rolls dice for Slot 2
[email protected] = rand(1,100); //Rolls dice for Slot 3
if(
[email protected] <= atoi(.tsm_animate$[0]) &&
[email protected] <= atoi(.tsm_animate$[1]) ){
[email protected] = 8; }
else if(
[email protected] <= atoi(.tsm_animate$[0]) &&
[email protected] > atoi(.tsm_animate$[1]) ){
[email protected] = 6; }
else if(
[email protected] > atoi(.tsm_animate$[0]) &&
[email protected] <= atoi(.tsm_animate$[1]) ){
[email protected] = 4; }
else {
[email protected] = 2; }
[email protected] = 1;
while(
[email protected] < atoi(.tsm_animate$[
[email protected]+1]) ) {
cutin .tsm_animate$[
[email protected]] +
[email protected],4; sleep2 ( ( atoi(.tsm_animate$[10]) * 1000 ) / atoi(.tsm_animate$[
[email protected]+1]) );
[email protected]++;
}
cutin .tsm_animate$[
[email protected]] + atoi(.tsm_animate$[
[email protected]+1]),4;
if(
[email protected] == 2 ){
switch(rand(5)) {
case 0:
getitem 603,5;
specialeffect2 10;
break;
case 1:
getitem 617,5;
specialeffect2 10;
break;
case 2:
getitem 644,5;
specialeffect2 10;
break;
case 3:
getitem 616,1;
specialeffect2 10;
break;
case 4:
getitem 7776,2;
specialeffect2 10;
break;
case 5:
getitem 18571,1;
specialeffect2 10;
break;
}
} else {
dispbottom "Failed";
slt_fld03++;
if (slt_fld03 >= 3){
slt_fld03 = 0;
atcommand "@nuke "+strcharinfo(0);
}
}
if( select("Another Round:I'm done") == 2 || Zeny < .tsm_payment[0] && ( !.payment || .payment == 2 ) || countitem(.tsm_payment[1]) < .tsm_payment[2] && .payment ){ cutin "",255; close; }
}
end;
}
OnSingleSlot:
setd ".mode"+strnpcinfo(3)+"",0;
end;
OnTripleSlot:
setd ".mode"+strnpcinfo(3)+"",1;
end;
iMode:
next;
mes "Which did you want to do?";
menu "Change THIS machine's mode:Change ALL machine's mode",-;
if( @menu == 1 ) {
next;
mes "What mode would you like this machine to have?";
menu "Single Slot Machine Mode:Triple Slot Machine Mode",-;
if( @menu == 1 ) {
setd ".mode"+strnpcinfo(3)+"",0;
} else {
setd ".mode"+strnpcinfo(3)+"",1;
}
close;
} else {
next;
mes "What mode would you like to change all slot machines to?";
menu "Single Slot Machine Mode:Triple Slot Machine Mode",-;
if( @menu == 1 ) {
donpcevent "::OnSingleSlot";
} else {
donpcevent "::OnTripleSlot";
}
close;
}
OnClock0000:
OnClock1000:
OnClock1600:
announce "Mysterious Slot Machine will begin at prontera 163 161 in 1 minute.", bc_all;
sleep 60000;
announce "Slot machine event has begun at prontera 163 161", bc_all;
set .EventON,1;
hideoffnpc strnpcinfo(3);
sleep 225000;
announce "Mysterious Slot Machine event is over thank you for playing", bc_all;
set .EventON,0;
hideonnpc strnpcinfo(3);
end;
OnInit:
hideonnpc strnpcinfo(3);
//[ 0 = Single Slot Machine Mode ]_[ 1 = Triple Slot Machine Mode ]
setd ".mode"+strnpcinfo(3)+"",1;
//[0] = Fail Rate
//[1] = Fail (Do not change)
//[2] = Success (Do not change)
//[3] = File Name (Do not change)
//[4] = Animation Time (Do not change, for best results :D)
setarray .ssm_animate$[0],"30","29","33","slot_","3";
//[0] = Fail Rate "Slot 2"
//[1] = Fail Rate "Slot 3"
//[2] = SSS (Do not change)
//[3] = SSS_Count (Do not change)
//[4] = SSF (Do not change)
//[5] = SSF_Count (Do not change)
//[6] = SFS (Do not change)
//[7] = SFS_Count (Do not change)
//[8] = SFF (Do not change)
//[9] = SFF_Count (Do not change)
//[10] = Animation Time (Do not change, for best results :D)
setarray .tsm_animate$[0],"30","30","SSS_","41","SSF_","37","SFS_","41","SFF_","45","3";
// Payment Settings
// Payment Type
// 0 = Zeny, 1 = Item, 2 = Zeny&Item
.payment = 1;
// [0] = Zeny, [1] = Item ID, [2] = Item Amount;
setarray .ssm_payment[0],100000,7720,3; // Single Slot Machine Payment Price
setarray .tsm_payment[0],100000,7720,3; // Triple Slot Machine Payment Price
// DO NOT CHANGE BELOW
// Payment Text Syntax
setarray .ssm_payment_message$[0],""+ .ssm_payment[0] +" zeny",""+ getitemname(.ssm_payment[1]) +" x"+ .ssm_payment[2] +"";
setarray .tsm_payment_message$[0],""+ .tsm_payment[0] +" zeny",""+ getitemname(.tsm_payment[1]) +" x"+ .tsm_payment[2] +"";
end;
}
Afaik, using @nuke command, the nuked character automatically has the explosion effect so no need to use 'specialeffect' command.
PS: I haven't tried to run it in-game.