prontera,114,154,5 script Poring Race 568,{
if( .access_Prace == 0 ) {
mes "[Event Employee: Poring Race]";
mes "Poring Race has ended.";
close;
}
mes "[Event Employee: Poring Race]";
mes "Do you want to participate on Poring Race?";
if( select( "Yes","No" ) -1 ) {
next;
mes "[Event Employee: Poring Race]";
mes "See you again next time!";
close;
}
if( .access_Prace == 0 ) {
next;
mes "[Event Employee: Poring Race]";
mes "...";
mes "...";
mes "Cheater!!~~";
close;
}
close2;
@prace_winner$ = "";
warp "p_track01",52,41;
end;
// OnInit:
OnClock1434:
if( gettime(3)%2 ) end;
set .access_Prace, 1;
announce "Event Employee [Poring Race]: Poring Race is about to begin. To participate kindly approach me at Event Room or use @event",0;
setnpctimer 100000,"Bidder#prace0";
startnpctimer "Bidder#prace0";
end;
OnPraceEnd:
set .access_Prace, 0;
announce "Event Employee [Poring Race]: Poring Race is over! Thank you for participating.",0;
end;
}
p_track01,58,41,3 script Bidder#prace0 877,{
function checkevent;
if( getstrlen( @prace_winner$ ) ) {
mes "[Event Employee: Poring Race Bidder]";
mes "You have choose ^00bb00"+ @prace_winner$ +"^000000";
close;
}
else if ( checkevent() || .start ) {
mes "[Event Employee: Poring Race Bidder]";
mes "There is a race in progress...";
close;
}
else if( !getvariableofnpc( .access_Prace,"Poring Race" ) ) {
mes "[Event Employee: Poring Race Bidder]";
mes "There is no race.";
close;
}
mes "[Event Employee: Poring Race Bidder]";
mes "Choose the poring you want to bet:";
mes "It will cost "+ .zeny_req +" Zeny.";
.@s = select( .menu_$ );
if( .@s == 7 ) {
next;
mes "[Event Employee: Poring Race Bidder]";
mes "Goodbye.";
close;
}
.@c$ = .monst_$[ .@s -1 ];
if ( checkevent() ) {
next;
mes "[Event Employee: Poring Race Bidder]";
mes "...";
mes "...";
mes "Cheater!!~~";
close;
}
else if( Zeny < .zeny_req ) {
next;
mes "[Event Employee: Poring Race Bidder]";
mes "You don't have enough Zeny.";
close;
}
Zeny -= .zeny_req;
@prace_winner$ = .@c$;
.prace_bidders[ .prace_bets ] = getcharid(3);
.prace_bets++;
next;
mes "[Event Employee: Poring Race Bidder]";
mes "[Event Employee: Poring Race Bidder]: I have "+ .prace_bets +" bets.";
initnpctimer;
npctalk "[Event Employee: Poring Race Bidder]: I got "+ strcharinfo(0) +" bet!";
close;
OnTimer60000:
npctalk "[Event Employee: Poring Race Bidder]: I got "+ .prace_bets +" 's bets. Anyone else?";
end;
OnTimer80000:
npctalk "[Event Employee: Poring Race Bidder]: The race will start soon. Last chance.";
end;
OnTimer90000:
stopnpctimer;
.start = 1;
mapannounce "p_track01","Porings, on your marks...",1,0xFFAB54;
sleep 2500;
for( .@i = 3; .@i > 0; .@i-- ) {
mapannounce "p_track01","..."+ .@i +"...",1,0xFFAB54;
sleep 1000;
}
donpcevent strnpcinfo(0) +"::OnStartRace";
sleep 1000;
mapannounce "p_track01","Gooo!!!",1,0xFFAB54;
end;
OnTimer320000:
mapwarp "p_track01","prontera",142,170;
donpcevent "Poring Race::OnPraceEnd";
.prace_winner$ = "";
.start = .prace_bets = 0;
donpcevent strnpcinfo(0) +"::OnReturnRace";
end;
OnStartRace:
callsub L_label, "OnRace";
OnStopRace:
callsub L_label, "OnStop";
OnReturnRace:
callsub L_label, "OnReturn";
L_label:
donpcevent "Metaling#prace3::"+ getarg(0);
donpcevent "Poring#prace1::"+ getarg(0);
donpcevent "Poporing#prace6::"+ getarg(0);
donpcevent "Angeling#prace2::"+ getarg(0);
donpcevent "Santa Poring#prace5::"+ getarg(0);
donpcevent "Deviling#prace4::"+ getarg(0);
if( getarg(0) == "OnStop" && .prace_winner$ != "" )
callsub L_WinRace;
end;
L_WinRace:
mapannounce "p_track01", "The winner is "+ .prace_winner$,1,0xFFAB54;
donpcevent strnpcinfo(0) +"::OnChequeo";
sleep 3000;
donpcevent strnpcinfo(0) +"::OnReturnRace";
sleep 10000;
mapwarp "p_track01","prontera",142,170;
donpcevent "Poring Race::OnPraceEnd";
.prace_winner$ = "";
.start = .prace_bets = 0;
end;
OnChequeo:
for( .@i = 0 ; .@i < getarraysize( .prace_bidders ); .@i++ ) {
if( attachrid( .prace_bidders[.@i] ) && getstrlen( @prace_winner$ ) ) {
dispbottom "The winner is "+ .prace_winner$ +" and you have bet for "+ @prace_winner$ +".";
if( @prace_winner$ == .prace_winner$ ) {
dispbottom "You have won!";
mapannounce "p_track01"," Congratulations! "+ strcharinfo(0) +" has won!",1,0xFFAB54;
getitem .item_gained, .item_num_gain;
emotion 21,1;
}
else {
dispbottom "You have lost.";
emotion 28,1;
}
@prace_winner$ = "";
}
}
deletearray .prace_bidders;
end;
OnInit:
.zeny_req = 10000000;
.item_gained = 36008;
.item_num_gain = 5;
setarray .monst_$,"Poring","Angeling","Metaling","Deviling","Santa Poring","Poporing","None";
.menu_$ = implode( .monst_$, ":" );
end;
function checkevent {
getmapxy .@mapname$, .@x1, .@y, 1, "Poring#prace1";
getmapxy .@mapname$, .@x2, .@y, 1, "Angeling#prace2";
getmapxy .@mapname$, .@x3, .@y, 1, "Metaling#prace3";
getmapxy .@mapname$, .@x4, .@y, 1, "Deviling#prace4";
getmapxy .@mapname$, .@x5, .@y, 1, "Santa Poring#prace5";
getmapxy .@mapname$, .@x6, .@y, 1, "Poporing#prace6";
.@t = ( .@x1 + .@x2 + .@x3 + .@x4 + .@x5 + .@x6 ) != 58 * 6;
return .@t;
}
}
//-----------------------------------
// Racer NPC's
//-----------------------------------
- script pori_race -1,{
OnRace:
initnpctimer;
end;
OnStop:
stopnpctimer;
end;
OnReturn:
sleep 1000;
while( strnpcinfo(1) != .monst$[ .@i ] ) .@i++;
movenpc strnpcinfo(3), 58, .walk_t[.@i];
end;
OnTimer1100:
getmapxy .@mapname$,.@x,.@y,1, strnpcinfo(3);
if( rand(100) < .prace_random )
npcwalkto .@x-1, .@y;
.@r = rand( .prace_random2 );
if ( .@x -1 == 29 ) {
while( strnpcinfo(1) != .monst$[ .@i ] ) .@i++;
set getvariableofnpc( .prace_winner$, "Bidder#prace0" ), .monst$[ .@i ];
emotion 29;
donpcevent "Bidder#prace0::OnStopRace";
end;
}
stopnpctimer;
setnpctimer .@r;
startnpctimer;
end;
OnInit:
deletearray .walk_t;
deletearray .monst$;
setarray .walk_t, 38, 36, 34, 32, 30, 28;
setarray .monst$, "Poring", "Angeling", "Metaling", "Deviling", "Santa Poring", "Poporing";
.prace_random = 70;
.prace_random2 = 600;
end;
}
p_track01,58,38,2 duplicate(pori_race) Poring#prace1 1002
p_track01,58,36,2 duplicate(pori_race) Angeling#prace2 1096
p_track01,58,34,2 duplicate(pori_race) Metaling#prace3 1613
p_track01,58,32,2 duplicate(pori_race) Deviling#prace4 1582
p_track01,58,30,2 duplicate(pori_race) Santa Poring#prace5 1062
p_track01,58,28,2 duplicate(pori_race) Poporing#prace6 1031
p_track01,78,42,0 warp p_track002 1,3,prontera,156,191
p_track01 mapflag nobranch
p_track01 mapflag noicewall
p_track01 mapflag nomemo
p_track01 mapflag noreturn
p_track01 mapflag noteleport
p_track01 mapflag nowarpto
p_track01 mapflag nowarp
p_track01 mapflag noskill
p_track01 mapflag pvp off
p_track01 mapflag nosave
Hello, How to make this script as active like No specific time to be trigger like the people place bet every race and change the zeny bets into item bets. Sorry for bad english thanks
Question
Katakuri
prontera,114,154,5 script Poring Race 568,{ if( .access_Prace == 0 ) { mes "[Event Employee: Poring Race]"; mes "Poring Race has ended."; close; } mes "[Event Employee: Poring Race]"; mes "Do you want to participate on Poring Race?"; if( select( "Yes","No" ) -1 ) { next; mes "[Event Employee: Poring Race]"; mes "See you again next time!"; close; } if( .access_Prace == 0 ) { next; mes "[Event Employee: Poring Race]"; mes "..."; mes "..."; mes "Cheater!!~~"; close; } close2; @prace_winner$ = ""; warp "p_track01",52,41; end; // OnInit: OnClock1434: if( gettime(3)%2 ) end; set .access_Prace, 1; announce "Event Employee [Poring Race]: Poring Race is about to begin. To participate kindly approach me at Event Room or use @event",0; setnpctimer 100000,"Bidder#prace0"; startnpctimer "Bidder#prace0"; end; OnPraceEnd: set .access_Prace, 0; announce "Event Employee [Poring Race]: Poring Race is over! Thank you for participating.",0; end; } p_track01,58,41,3 script Bidder#prace0 877,{ function checkevent; if( getstrlen( @prace_winner$ ) ) { mes "[Event Employee: Poring Race Bidder]"; mes "You have choose ^00bb00"+ @prace_winner$ +"^000000"; close; } else if ( checkevent() || .start ) { mes "[Event Employee: Poring Race Bidder]"; mes "There is a race in progress..."; close; } else if( !getvariableofnpc( .access_Prace,"Poring Race" ) ) { mes "[Event Employee: Poring Race Bidder]"; mes "There is no race."; close; } mes "[Event Employee: Poring Race Bidder]"; mes "Choose the poring you want to bet:"; mes "It will cost "+ .zeny_req +" Zeny."; .@s = select( .menu_$ ); if( .@s == 7 ) { next; mes "[Event Employee: Poring Race Bidder]"; mes "Goodbye."; close; } .@c$ = .monst_$[ .@s -1 ]; if ( checkevent() ) { next; mes "[Event Employee: Poring Race Bidder]"; mes "..."; mes "..."; mes "Cheater!!~~"; close; } else if( Zeny < .zeny_req ) { next; mes "[Event Employee: Poring Race Bidder]"; mes "You don't have enough Zeny."; close; } Zeny -= .zeny_req; @prace_winner$ = .@c$; .prace_bidders[ .prace_bets ] = getcharid(3); .prace_bets++; next; mes "[Event Employee: Poring Race Bidder]"; mes "[Event Employee: Poring Race Bidder]: I have "+ .prace_bets +" bets."; initnpctimer; npctalk "[Event Employee: Poring Race Bidder]: I got "+ strcharinfo(0) +" bet!"; close; OnTimer60000: npctalk "[Event Employee: Poring Race Bidder]: I got "+ .prace_bets +" 's bets. Anyone else?"; end; OnTimer80000: npctalk "[Event Employee: Poring Race Bidder]: The race will start soon. Last chance."; end; OnTimer90000: stopnpctimer; .start = 1; mapannounce "p_track01","Porings, on your marks...",1,0xFFAB54; sleep 2500; for( .@i = 3; .@i > 0; .@i-- ) { mapannounce "p_track01","..."+ .@i +"...",1,0xFFAB54; sleep 1000; } donpcevent strnpcinfo(0) +"::OnStartRace"; sleep 1000; mapannounce "p_track01","Gooo!!!",1,0xFFAB54; end; OnTimer320000: mapwarp "p_track01","prontera",142,170; donpcevent "Poring Race::OnPraceEnd"; .prace_winner$ = ""; .start = .prace_bets = 0; donpcevent strnpcinfo(0) +"::OnReturnRace"; end; OnStartRace: callsub L_label, "OnRace"; OnStopRace: callsub L_label, "OnStop"; OnReturnRace: callsub L_label, "OnReturn"; L_label: donpcevent "Metaling#prace3::"+ getarg(0); donpcevent "Poring#prace1::"+ getarg(0); donpcevent "Poporing#prace6::"+ getarg(0); donpcevent "Angeling#prace2::"+ getarg(0); donpcevent "Santa Poring#prace5::"+ getarg(0); donpcevent "Deviling#prace4::"+ getarg(0); if( getarg(0) == "OnStop" && .prace_winner$ != "" ) callsub L_WinRace; end; L_WinRace: mapannounce "p_track01", "The winner is "+ .prace_winner$,1,0xFFAB54; donpcevent strnpcinfo(0) +"::OnChequeo"; sleep 3000; donpcevent strnpcinfo(0) +"::OnReturnRace"; sleep 10000; mapwarp "p_track01","prontera",142,170; donpcevent "Poring Race::OnPraceEnd"; .prace_winner$ = ""; .start = .prace_bets = 0; end; OnChequeo: for( .@i = 0 ; .@i < getarraysize( .prace_bidders ); .@i++ ) { if( attachrid( .prace_bidders[.@i] ) && getstrlen( @prace_winner$ ) ) { dispbottom "The winner is "+ .prace_winner$ +" and you have bet for "+ @prace_winner$ +"."; if( @prace_winner$ == .prace_winner$ ) { dispbottom "You have won!"; mapannounce "p_track01"," Congratulations! "+ strcharinfo(0) +" has won!",1,0xFFAB54; getitem .item_gained, .item_num_gain; emotion 21,1; } else { dispbottom "You have lost."; emotion 28,1; } @prace_winner$ = ""; } } deletearray .prace_bidders; end; OnInit: .zeny_req = 10000000; .item_gained = 36008; .item_num_gain = 5; setarray .monst_$,"Poring","Angeling","Metaling","Deviling","Santa Poring","Poporing","None"; .menu_$ = implode( .monst_$, ":" ); end; function checkevent { getmapxy .@mapname$, .@x1, .@y, 1, "Poring#prace1"; getmapxy .@mapname$, .@x2, .@y, 1, "Angeling#prace2"; getmapxy .@mapname$, .@x3, .@y, 1, "Metaling#prace3"; getmapxy .@mapname$, .@x4, .@y, 1, "Deviling#prace4"; getmapxy .@mapname$, .@x5, .@y, 1, "Santa Poring#prace5"; getmapxy .@mapname$, .@x6, .@y, 1, "Poporing#prace6"; .@t = ( .@x1 + .@x2 + .@x3 + .@x4 + .@x5 + .@x6 ) != 58 * 6; return .@t; } } //----------------------------------- // Racer NPC's //----------------------------------- - script pori_race -1,{ OnRace: initnpctimer; end; OnStop: stopnpctimer; end; OnReturn: sleep 1000; while( strnpcinfo(1) != .monst$[ .@i ] ) .@i++; movenpc strnpcinfo(3), 58, .walk_t[.@i]; end; OnTimer1100: getmapxy .@mapname$,.@x,.@y,1, strnpcinfo(3); if( rand(100) < .prace_random ) npcwalkto .@x-1, .@y; .@r = rand( .prace_random2 ); if ( .@x -1 == 29 ) { while( strnpcinfo(1) != .monst$[ .@i ] ) .@i++; set getvariableofnpc( .prace_winner$, "Bidder#prace0" ), .monst$[ .@i ]; emotion 29; donpcevent "Bidder#prace0::OnStopRace"; end; } stopnpctimer; setnpctimer .@r; startnpctimer; end; OnInit: deletearray .walk_t; deletearray .monst$; setarray .walk_t, 38, 36, 34, 32, 30, 28; setarray .monst$, "Poring", "Angeling", "Metaling", "Deviling", "Santa Poring", "Poporing"; .prace_random = 70; .prace_random2 = 600; end; } p_track01,58,38,2 duplicate(pori_race) Poring#prace1 1002 p_track01,58,36,2 duplicate(pori_race) Angeling#prace2 1096 p_track01,58,34,2 duplicate(pori_race) Metaling#prace3 1613 p_track01,58,32,2 duplicate(pori_race) Deviling#prace4 1582 p_track01,58,30,2 duplicate(pori_race) Santa Poring#prace5 1062 p_track01,58,28,2 duplicate(pori_race) Poporing#prace6 1031 p_track01,78,42,0 warp p_track002 1,3,prontera,156,191 p_track01 mapflag nobranch p_track01 mapflag noicewall p_track01 mapflag nomemo p_track01 mapflag noreturn p_track01 mapflag noteleport p_track01 mapflag nowarpto p_track01 mapflag nowarp p_track01 mapflag noskill p_track01 mapflag pvp off p_track01 mapflag nosave
Hello, How to make this script as active like No specific time to be trigger like the people place bet every race and change the zeny bets into item bets. Sorry for bad english thanks
Link to comment
Share on other sites
3 answers to this question
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.