Jump to content
  • 0

About Poring Race


pr0veitwr0ng

Question


  • Group:  Members
  • Topic Count:  6
  • Topics Per Day:  0.00
  • Content Count:  16
  • Reputation:   0
  • Joined:  11/03/12
  • Last Seen:  

Can anyone fix this script? Because the bidder only get the zeny but the porings won't run. Thanks in advance

//===== eAthena Script ===============================================
//= Poring Race System
//===== By: =========================================================
//= Zell_ff8
//=  -Made for Daegaladh, www.Sha-Ro.com Admin
//=  -and RUNE, http://ro-enhanced.net
//=
//= xianz
//=  -Added more features to it.
//= Some Rights Reserved
//=  http://creativecommo...y-nc-sa/2.5/ar/
//=  
//= Neko
//=  Rescripted some things.
//=  Killed the Evils goto's ?_?
//= Did the facking tabs, code was all screwed up, now is more readable
//===== Current Version: ==============================================
//= 1.00
//===== Compatible With: =============================================
//= eAthena SVN 9991+
//===== Description: =================================================
//= Poring Race
//===== Additional Comments: =========================================
//= Tested, eA SVN Stable r10128 working 100%
//= Need a lot of clean up... but, WORKS!! WTH xD
//= 1.00
//=  Kinda Cleaned up
//=  Fixed some exploits and bugs.
//=  Still need to be Converted the array to store the players ID's Maybe
//= I will do it later.
//==================================================================
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 pvp off
p_track01 mapflag nosave
- script PraceAnnouncer -1,{
OnMinute45:
set $accessPrace, 1;
announce "Poring Race is now open!",0,0xFFAB54;
end;
OnPraceEnd:
set $accessPrace, 0;
announce "Poring Race is over!",0,0xFFAB54;
end;
}
prontera,139,184,5 script Poring Race::Prace 882,{
if( $accessPrace == 0) {
 mes "[Poring Race Staff]";
 mes "Poring Race has ended.";
close;
}
mes "[Poring Race Staff]";
mes "Do you want to participate on Poring Race?";
menu "Yes",-,"No",L_no;
if( $accessPrace == 0) {
 mes "[Poring Race Staff]";
 mes "...";
 mes "...";
 mes "Cheater!!~~";
close;
}
close2;
warp "p_track01",52,41;
end;
L_no:
next;
mes "[Poring Race Staff]";
mes "See you again next time!";
close;
}
p_track01,78,42,0 warp p_track002 1,3,prontera,142,170
//NPC Checker
- 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_track01"," Congratulations! "+strcharinfo(0)+" has won!",1,0xFFAB54;
getitem 7199,2;
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 765
p_track01,58,41,3 script Bidder#prace0 877,{
if($prace_random < 1) callsub OnInit;
if( prace_playing == 1) {
 mes "[bidder]";
 mes "You have choose ^00bb00"+prace_winner$+"^000000";
 close;
}
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;
}
set .@prace_zeny,3500;
mes "[bidder]";
mes "Choose the poring you want to bet:";
mes "It will cost "+.@prace_zeny+" Zeny.";
//next;
switch( select("Poring","Angeling","Metaling","Deviling","Santa Poring","Poporing","None.") ) {
 case 1: set .@thining$,"Poring"; break;
 case 2: set .@thining$,"Angeling"; break;
 case 3: set .@thining$,"Metaling"; break;
 case 4: set .@thining$,"Deviling"; break;
 case 5: set .@thining$,"Santa Poring"; break;
 case 6: set .@thining$,"Poporing"; break;
 case 7:
  mes "[bidder]";
  mes "Goodbye.";
  close;
}
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 "...";
 mes "...";
 mes "Cheater!!~~";
 close;
}
if( Zeny < .@prace_zeny) {
 set prace_winner$,"";
 mes "[bidder]";
 mes "You don't have enough Zeny.";
 close;
}
set Zeny,Zeny - .@prace_zeny;
set prace_winner$,.@thining$;
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;
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_track01","The winner is "+$prace_winner$,1,0xFFAB54;
donpcevent "Checker#prace0::OnChequeo";
sleep2 10000;
mapwarp "p_track01","prontera",142,170;
set $accessPrace, 0;
setnpctimer 30000;
startnpctimer;
donpcevent "PraceAnnouncer::OnPraceEnd";
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_track01","Porings, on your marks...",1,0xFFAB54;
end;
OnTimer3000:
mapannounce "p_track01","...3...",1,0xFFAB54;
end;

OnTimer4000:
mapannounce "p_track01","...2...",1,0xFFAB54;
end;
OnTimer5000:
mapannounce "p_track01","...1...",1,0xFFAB54;
callsub StartRace;
end;
OnTimer6000:
stopnpctimer;
mapannounce "p_track01","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_track01,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_track01,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_track01,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_track01,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_track01,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_track01,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;
}

Edited by AnnieRuru
use [codebox] if the script > 10 lines
Link to comment
Share on other sites

4 answers to this question

Recommended Posts


  • Group:  Members
  • Topic Count:  18
  • Topics Per Day:  0.00
  • Content Count:  2044
  • Reputation:   682
  • Joined:  10/09/12
  • Last Seen:  

Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  6
  • Topics Per Day:  0.00
  • Content Count:  16
  • Reputation:   0
  • Joined:  11/03/12
  • Last Seen:  

Ma'am I already tried it, yes the porings run but they stop at the very start. o.O

Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  18
  • Topics Per Day:  0.00
  • Content Count:  2044
  • Reputation:   682
  • Joined:  10/09/12
  • Last Seen:  

OnTimer1000:
getmapxy(.@mapname$,.@mapx,.@mapy,1,"Deviling#prace4");
if (rand(100) < $prace_random) npcwalkto .@mapx-1,.@mapy;
stopnpctimer;// <-- ADD THIS
setnpctimer rand($prace_random2);
startnpctimer;
if ((.@mapx-1) == 29) {
set $prace_winner$,"Deviling";
emotion 29;
donpcevent "Race Manager#prace0::OnStopRace";
}
end;

the reason is rathena script engine updates, now if we want to setnpctimer, have to stopnpctimer 1st

but well, I tested even I made that fix, it has some other bugs .... so I think ... just give up that script

zell_ff8 and masao already inactive

Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  6
  • Topics Per Day:  0.00
  • Content Count:  16
  • Reputation:   0
  • Joined:  11/03/12
  • Last Seen:  

Ohh thanks, the porings run now, but the bet won't reset for those who lose.

You've already chosen Poring.

:(

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...