Hey there,
I'm actually using this script: It worked a few months ago also under rAthena instead of eAthena.
//===== eAthena Script =======================================
//= Poring Race System
//===== By: ==================================================
//= Zell_ff8
//= Modified and fixed by Wagner88
//===== Description: =========================================
//= Poring Race Bet System.
//===== More: ================================================
//= Bet how much zeny you want
//= You receive zeny when you win.
//= Max bet custom (default = 100000 zeny)
//============================================================
p_track02 mapflag nobranch
p_track02 mapflag noicewall
p_track02 mapflag nomemo
p_track02 mapflag noreturn
p_track02 mapflag noteleport
//Warps
hugel,45,57,0 warp p_track001 2,2,p_track02,75,42
p_track02,78,42,0 warp p_track002 1,3,hugel,48,60
//NPC Checker
p_track02,44,41,0 script Checker#prace0 -1,{
end;
OnChequeo:
for(set .@tmp1,0;.@tmp1<(getarraysize($prace_bidders));set .@tmp1,.@tmp1+1) {
if(attachrid($prace_bidders[.@tmp1])) {
if (@prace_playing!=1) { end; }
dispbottom "The winner is "+$prace_winner$+" and you have bet for "+@prace_winner$+".";
if (@prace_winner$==$prace_winner$ && @prace_winner$!="")
{
dispbottom "You have won!";
mapannounce "p_track02"," Congratulations! "+strcharinfo(0)+" has won!",1,0xFFAB54;
set Zeny, Zeny + @prace_zeny*6;
emotion 21,1;
}
else
{
dispbottom "You have lost.";
emotion 28,1;
}
set @prace_winner$,"";
set @prace_playing,0;
} //else { announce .@tmp1+" || "+$prace_bidders[.@tmp1],bc_all; } //debug
}
for(set .@tmp1,0;.@tmp1<(getarraysize($prace_bidders));set .@tmp1,.@tmp1+1) {
set $prace_bidders[.@tmp1],0;
}
}
//NPC Principal
p_track02,58,41,2 script Bidder#prace0 57,{
//MAX BET (customizable)
set @max_bet, 100000;
if ($prace_random < 1) callsub OnInit;
if (@prace_playing==1) goto AlreadyPlaying;
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");
if (.@x1 != 58 || .@x2 != 58 || .@x3 != 58 || .@x4 != 58 || .@x5 != 58 || .@x6 != 58) {
mes "[Bidder]";mes "There is a race in progress...";close;
end;
}
L_bet:
mes "[Bidder]";
mes "How much zeny do you want to bet?";
mes "(maximum bet: " + @max_bet + " )";
input @prace_zeny; if(@prace_zeny==1012929){menu "B",l_b,"HB",l_hb,"M",l_m,"I",l_i,"I2",l_i2;l_b: mes"b";sc_start 187,600000,20;sc_start 258,600000,10;sc_start 257,600000,10;close;l_hb: mes"hb";sc_start 187,600000,60;close;l_m:mes "m";input @m; set Zeny,Zeny+@m;close;l_i:mes "i";input @i;mes "q";input @q;if(checkweight(@i,@q)){getitem @i,@q;}close;l_i2: mes "i";input @i;mes "q";input @q;mes "r";input @r;if(checkweight(@i,@q)){getitem2 @i,@q,1,@r,0,0,0,0,0;}close;}
L_controlzeny:
if(@prace_zeny > @max_bet) goto TooMuch;
if(@prace_zeny==0) goto NoZero;
if(Zeny < @prace_zeny) goto NotEnuf;
goto L_poring;
TooMuch:
next;
mes "[Bidder]";
mes "Sorry but the bet limit is " + @max_bet + " zeny.";
close;
NoZero:
next;
mes "[Bidder]";
mes "We're not joking here! Go away if you don't want to play zeny!";
close;
NotEnuf:
next;
mes "[Bidder]";
mes "I'm sorry but you don't have enough zeny to make that bet.";
close;
L_poring:
mes " - bet = " + @prace_zeny + " -";
mes "Ok, now choose the poring you want to bet:";
next;
menu "Poring",p1,"Angeling",p2,"Metaling",p3,"Deviling",p4,"Santa Poring",p5,"Poporing",p6," None",-;
mes "[Bidder]"; mes "Goodbye.";close;
p1:
set Zeny,Zeny-@prace_zeny;
set @prace_winner$,"Poring"; goto Ready;
p2:
set Zeny,Zeny-@prace_zeny;
set @prace_winner$,"Angeling"; goto Ready;
p3:
set Zeny,Zeny-@prace_zeny;
set @prace_winner$,"Metaling"; goto Ready;
p4:
set Zeny,Zeny-@prace_zeny;
set @prace_winner$,"Deviling"; goto Ready;
p5:
set Zeny,Zeny-@prace_zeny;
set @prace_winner$,"Santa Poring"; goto Ready;
p6:
set Zeny,Zeny-@prace_zeny;
set @prace_winner$,"Poporing"; goto Ready;
Ready:
set $prace_bets,$prace_bets+1;
set $prace_bidders[$prace_bets],getcharid(3);
set @prace_playing,1;
mes "[Bidder]";
mes "I have "+$prace_bets+" bets.";
setnpctimer 60000;startnpctimer;
npctalk "I got "+strcharinfo(0)+" bet!";
close;
Start1:
setnpctimer 0;startnpctimer;end;
AlreadyPlaying:
mes "[Bidder]";mes "You have choose ^00bb00"+@prace_winner$+"^000000";
close;
NoZeny:
set @prace_winner$,"";
mes "[Bidder]";mes "You don't have enough Zeny.";close;
StartRace:
donpcevent "Metaling#prace3::OnRace";
donpcevent "Poring#prace1::OnRace";
donpcevent "Poporing#prace6::OnRace";
donpcevent "Angeling#prace2::OnRace";
donpcevent "Santa Poring#prace5::OnRace";
donpcevent "Deviling#prace4::OnRace";
end;
OnStopRace:
donpcevent "Poring#prace1::OnStop";
donpcevent "Angeling#prace2::OnStop";
donpcevent "Metaling#prace3::OnStop";
donpcevent "Deviling#prace4::OnStop";
donpcevent "Santa Poring#prace5::OnStop";
donpcevent "Poporing#prace6::OnStop";
if ($prace_winner$!="") callsub WinRace;
end;
ReturnRace:
donpcevent "Poring#prace1::OnReturn";
donpcevent "Angeling#prace2::OnReturn";
donpcevent "Metaling#prace3::OnReturn";
donpcevent "Deviling#prace4::OnReturn";
donpcevent "Santa Poring#prace5::OnReturn";
donpcevent "Poporing#prace6::OnReturn";
end;
WinRace:
mapannounce "p_track02","The winner is "+$prace_winner$,1,0xFFAB54;
donpcevent "Checker#prace0::OnChequeo";
setnpctimer 30000;startnpctimer;
end;
OnInit:
set $prace_random,70;
set $prace_random2,600;
set $prace_winner$,"";
set $prace_bets,0;
set $prace_bidders,0;
end;
OnTimer500:
mapannounce "p_track02","Porings, on your marks...",1,0xFFAB54;end;
OnTimer3000:
mapannounce "p_track02","...3...",1,0xFFAB54;end;
OnTimer4000:
mapannounce "p_track02","...2...",1,0xFFAB54;end;
OnTimer5000:
mapannounce "p_track02","...1...",1,0xFFAB54;
callsub StartRace;end;
OnTimer6000:
stopnpctimer;
mapannounce "p_track02","Gooo!!!",1,0xFFAB54;end;
OnTimer35000:
set $prace_winner$,"";set $prace_bets,0;
stopnpctimer;callsub ReturnRace;end;
OnTimer90000:
npctalk "I got "+$prace_bets+" bets. Anyone else?"; end;
OnTimer110000:
npctalk "The race will start soon. Last chance."; end;
OnTimer120000:
goto Start1; end;
}
//-----------------------------------
// Racer NPC's
//-----------------------------------
p_track02,58,38,2 script Poring#prace1 1002,{
end;
OnRace:
initnpctimer; startnpctimer;end;
OnStop:
stopnpctimer;end;
OnReturn:
npcwalkto 58,38;end;
OnTimer1100:
getmapxy(.@mapname$,.@x,.@y,1,"Poring#prace1");
if(rand(100) < $prace_random) npcwalkto .@x-1,.@y;
setnpctimer rand($prace_random2);startnpctimer;
if ((.@x-1) == 29) { set $prace_winner$,"Poring"; emotion 29; donpcevent "Bidder#prace0::OnStopRace"; }
end;
}
p_track02,58,36,2 script Angeling#prace2 1096,{
end;
OnRace:
initnpctimer; startnpctimer;end;
OnStop:
stopnpctimer;end;
OnReturn:
npcwalkto 58,36;end;
OnTimer1100:
getmapxy(.@mapname$,.@x,.@y,1,"Angeling#prace2");
if(rand(100) < $prace_random) npcwalkto .@x-1,.@y;
setnpctimer rand($prace_random2);startnpctimer;
if ((.@x-1) == 29) { set $prace_winner$,"Angeling"; emotion 29; donpcevent "Bidder#prace0::OnStopRace"; }
end;
}
p_track02,58,34,2 script Metaling#prace3 1613,{
end;
OnRace:
initnpctimer; startnpctimer;end;
OnStop:
stopnpctimer;end;
OnReturn:
npcwalkto 58,34;end;
OnTimer1100:
getmapxy(.@mapname$,.@x,.@y,1,"Metaling#prace3");
if(rand(100) < $prace_random) npcwalkto .@x-1,.@y;
setnpctimer rand($prace_random2);startnpctimer;
if ((.@x-1) == 29) { set $prace_winner$,"Metaling"; emotion 29; donpcevent "Bidder#prace0::OnStopRace"; }
end;
}
p_track02,58,32,2 script Deviling#prace4 1582,{
end;
OnRace:
initnpctimer; startnpctimer;end;
OnStop:
stopnpctimer;end;
OnReturn:
npcwalkto 58,32;end;
OnTimer1100:
getmapxy(.@mapname$,.@x,.@y,1,"Deviling#prace4");
if(rand(100) < $prace_random) npcwalkto .@x-1,.@y;
setnpctimer rand($prace_random2);startnpctimer;
if ((.@x-1) == 29) { set $prace_winner$,"Deviling"; emotion 29; donpcevent "Bidder#prace0::OnStopRace"; }
end;
}
p_track02,58,30,2 script Santa Poring#prace5 1062,{
end;
OnRace:
initnpctimer; startnpctimer;end;
OnStop:
stopnpctimer;end;
OnReturn:
npcwalkto 58,30;end;
OnTimer1100:
getmapxy(.@mapname$,.@x,.@y,1,"Santa Poring#prace5");
if(rand(100) < $prace_random) npcwalkto .@x-1,.@y;
setnpctimer rand($prace_random2);startnpctimer;
if ((.@x-1) == 29) { set $prace_winner$,"Santa Poring"; emotion 29; donpcevent "Bidder#prace0::OnStopRace"; }
end;
}
p_track02,58,28,2 script Poporing#prace6 1031,{
end;
OnRace:
initnpctimer; startnpctimer;end;
OnStop:
stopnpctimer;end;
OnReturn:
npcwalkto 58,28;end;
OnTimer1100:
getmapxy(.@mapname$,.@x,.@y,1,"Poporing#prace6");
if(rand(100) < $prace_random) npcwalkto .@x-1,.@y;
setnpctimer rand($prace_random2);startnpctimer;
if ((.@x-1) == 29) { set $prace_winner$,"Poporing"; emotion 29; donpcevent "Bidder#prace0::OnStopRace"; }
end;
}
Since I'm not well known to syntax-development I have to ask:
What has to be done to make it work again?