Jump to content

jpnazar

Members
  • Posts

    170
  • Joined

  • Last visited

Everything posted by jpnazar

  1. how to fix mistress card(notworking)
  2. Help Error when open storage(Client Closing)
  3. Help Error when open storage(Client Closing) using Phillipine Ragnarok Online not KRO help
  4. Error pag storage nagcclose client pag PRO gamit ? HELP
  5. How about when you receiving reward? (Name) claim (Package 1-3) for winning the Event
  6. how to have this woe script a waiting room that show woe time left //===== rAthena Script ======================================= //= Euphy's WOE Controller //===== By: ================================================== //= Euphy //===== Current Version: ===================================== //= 1.5 //===== Compatible With: ===================================== //= rAthena SVN r16958+ //===== Description: ========================================= //= A controller for War of Emperium designed for //= simplicity and ease of use. //= Many concepts taken from ToastOfDoom's script, //= and "rewards" function originally by Goddameit. //===== Additional Comments: ================================= //= Be sure to disable the default agit controllers! //== npc\guild\agit_controller.txt //== npc\guild2\agit_start_se.txt //============================================================ // Information NPC //============================================================ prontera,146,177,5 script WOE Information 806,{ doevent "WOE_CONTROL::OnMenu"; end; OnAgitStart: while(agitcheck()) { misceffect EF_BEGINSPELL6; sleep 425; } end; } // Script Core //============================================================ - script WOE_CONTROL -1,{ function Disp_Owner; function Add_Zero; OnInit: // ----------------------------------------------------------- // Configuration settings. // ----------------------------------------------------------- set .CastleWarp,0; // 1: Always enable all castle warps. | 0: Warp only to active castles. set .AutoKick,1; // Automatically kick players from inactive castles during WOE? (1:yes / 0:no) set .NoOwner,0; // Automatically kick players from unconquered castles outside of WOE? (1:yes / 0:no) set .ExitWarp,0; // Warp all players from castles when WOE ends? (1:yes / 0:no) set .GMAccess,99; // GM level required to access Session Manager. // ----------------------------------------------------------- // Reward options. // ----------------------------------------------------------- // [1] Enable rewards. // [2] Mail all rewards. // - If not set, players receive items in their inventory. // - Only ONE item can be sent via mail, plus Zeny. // - Note that offline players do NOT receive rewards. // [4] Only reward Guild Masters. // - If not set, all guild members are rewarded. // - If mailing is enabled (option 2), offline Guild Masters WILL receive rewards. // [8] Duplicate IP check. // - Members in a guild with the same IP address are not rewarded. // - If Guild Masters is enabled (option 4), this feature is not used. // ----------------------------------------------------------- // Combine values as needed (e.g. 1|8 = 1+8 = 9). set .Options, 1|4; // Rewards per castle. // -- when given directly: <itemID>,<amount>{,<itemID>,<amount>,...} // -- via mail (option 2): <itemID>,<amount>,<Zeny> setarray .Reward[0],14001,1; // ----------------------------------------------------------- // Constants (leave this section alone). // ----------------------------------------------------------- setarray .Castles$[0], "prtg_cas01","prtg_cas02","prtg_cas03","prtg_cas04","prtg_cas05", "payg_cas01","payg_cas02","payg_cas03","payg_cas04","payg_cas05", "gefg_cas01","gefg_cas02","gefg_cas03","gefg_cas04","gefg_cas05", "aldeg_cas01","aldeg_cas02","aldeg_cas03","aldeg_cas04","aldeg_cas05", "arug_cas01","arug_cas02","arug_cas03","arug_cas04","arug_cas05", "schg_cas01","schg_cas02","schg_cas03","schg_cas04","schg_cas05"; setarray .EndLabel$[0],"ar01","ar02","ar03","ar04","ar05","sc01","sc02","sc03","sc04","sc05"; setarray .Days$[0],"Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"; setarray .Regions$[0],"Prontera","Payon","Geffen","Aldebaran","Arunafeltz","Schwaltzvalt"; setarray .Map$[0],"prt_gld","pay_gld","gef_fild13","alde_gld","aru_gld","sch_gld"; setarray .MapX[0],134,240,153,111,208,121,295,317,140,204,214,308,143,193,305,48, 95,142,239,264,158,83, 68,299,292,293,288, 97,137, 71; setarray .MapY[0], 65,128,137,240,240,233,116,293,160,266, 75,240,240,278, 87,83,249, 85,242, 90,272,47,155,345,107,100,252,196, 90,315; // ----------------------------------------------------------- set .Size, getarraysize($WOE_CONTROL); if (.AutoKick || .NoOwner) for(set [email protected],0; [email protected]<30; set [email protected],[email protected]+1) { setmapflag .Castles$[[email protected]], mf_loadevent; setd "."+.Castles$[[email protected]], [email protected]; } if (!agitcheck() && !agitcheck2()) sleep 4000; set .Init,1; OnMinute00: freeloop(1); if (agitcheck() || agitcheck2()) { for(set [email protected],0; [email protected]<.Size; set [email protected],[email protected]+4) if (gettime(4) == $WOE_CONTROL[[email protected]] && gettime(3) == $WOE_CONTROL[[email protected]+2]) { OnWOEEnd: announce "The War Of Emperium is over!",bc_all|bc_woe; AgitEnd; AgitEnd2; sleep 1000; for(set [email protected],0; [email protected]<30; set [email protected],[email protected]+1) { if (.Active[0]&(1<<[email protected])) Disp_Owner(.Castles$[[email protected]],1); if (.ExitWarp) maprespawnguildid .Castles$[[email protected]],0,3; } if (.Options&1 && .Active[0] && .ForceEnd != 2) callsub OnReward, .Active[0]; deletearray .Active[0],2; if (.ForceEnd) { set .ForceEnd,0; end; } break; } } if ((!agitcheck() && !agitcheck2()) || .Init) { if (!agitcheck() && !agitcheck2()) set .Init,0; for(set [email protected],0; [email protected]<.Size; set [email protected],[email protected]+4) if (gettime(4) == $WOE_CONTROL[[email protected]] && gettime(3) >= $WOE_CONTROL[[email protected]+1] && gettime(3) < $WOE_CONTROL[[email protected]+2]) { deletearray .Active[0],2; set .Active[0], $WOE_CONTROL[[email protected]+3]; if (.Init) { AgitEnd; AgitEnd2; } else announce "The War Of Emperium has begun!",bc_all|bc_woe; sleep 1000; AgitStart; AgitStart2; for(set [email protected],0; [email protected]<30; set [email protected],[email protected]+1) { if (.Active[0]&(1<<[email protected])) { if (!.Init) Disp_Owner(.Castles$[[email protected]],0); set .Active[1], .Active[1] | (1<<(([email protected]/5)+1)); } else { if ([email protected]<20) { donpcevent "Agit#"+.Castles$[[email protected]]+"::OnAgitEnd"; killmonster .Castles$[[email protected]], "Agit#"+.Castles$[[email protected]]+"::OnAgitBreak"; } else { donpcevent "Manager#"+.Castles$[[email protected]]+"::OnAgitEnd2"; killmonster .Castles$[[email protected]], "Steward#"+.EndLabel$[[email protected]]+"::OnStartArena"; } } } break; } } set .Init,0; end; function Disp_Owner { set [email protected], getcastledata(getarg(0),1); if ([email protected]) announce "The ["+getcastlename(getarg(0))+"] castle "+((getarg(1))?"has been conquered":"is currently held")+" by the ["+getguildname([email protected])+"] guild.",bc_all|bc_woe; else announce "The ["+getcastlename(getarg(0))+"] castle is currently unoccupied.",bc_all|bc_woe; return; } function Add_Zero { return ((getarg(0)<10)?"0":"")+getarg(0)+(getarg(1,0)?".":":")+"00"; } OnReward: set [email protected]$, ((.Options&4)?"position = 0":"online = 1"); if (.Options&2) set [email protected]$,gettimestr("%B %d, %Y",21); freeloop(1); for(set [email protected],0; [email protected]<30; set [email protected],[email protected]+1) if (getarg(0)&(1<<[email protected])) { set [email protected], getcastledata(.Castles$[[email protected]],1); if ([email protected]) continue; set [email protected], query_sql("SELECT account_id,char_id FROM `guild_member` WHERE guild_id = '"[email protected]+"' AND "[email protected]$,[email protected],[email protected]); for(set [email protected],0; [email protected]<[email protected]; set [email protected],[email protected]+1) { if (.Options&8 && !(.Options&4)) { set [email protected]$, replacestr(getcharip([email protected][[email protected]]),".","a"); if (getd("[email protected]_"[email protected]+"_"[email protected]$)) continue; setd "[email protected]_"[email protected]+"_"[email protected]$,1; } if (.Options&2) { query_sql("INSERT INTO `mail` (send_name,dest_id,title,message,nameid,amount,identify,zeny,time) VALUES ("+ "'no-reply',"[email protected][[email protected]]+",'** Siege Reward: "+getcastlename(.Castles$[[email protected]])+" **',"+ "'Brave one,% % Congratulations!% Your guild has successfully occupied% territory in the War of Emperium on% "[email protected]$+".% % % % % [ Your reward is attached. ]',"+ .Reward[0]+","+.Reward[1]+",0,"+.Reward[2]+",UNIX_TIMESTAMP(NOW()))"); if (!getd("[email protected]_"[email protected][[email protected]]) && isloggedin([email protected][[email protected]],[email protected][[email protected]])) { setd "[email protected]_"[email protected][[email protected]],1; message rid2name([email protected][[email protected]]),"You've got mail! Please re-login to update your mailing list."; } } else if (isloggedin([email protected][[email protected]])) { for(set [email protected],0; [email protected]<getarraysize(.Reward); set [email protected],[email protected]+2) getitem .Reward[[email protected]], .Reward[[email protected]+1], [email protected][[email protected]]; message rid2name([email protected][[email protected]]),"You have been rewarded for conquering "+getcastlename(.Castles$[[email protected]])+"."; } } } if (.Options&2) query_sql("UPDATE `mail` SET message = REPLACE(message,'%',CHAR(13)) WHERE send_name = 'no-reply'"); return; OnPCLoadMapEvent: if (!compare(strcharinfo(3),"g_cas")) end; if (((.AutoKick && .Active[0]) || (.NoOwner && !getcastledata(strcharinfo(3),1))) && !(.Active[0]&(1<<getd("."+strcharinfo(3))))) { if (getcharid(2) && getcastledata(strcharinfo(3),1) == getcharid(2)) end; sleep2 1000; message strcharinfo(0), getcastlename(strcharinfo(3))+" is currently inactive."; sleep2 5000; if (compare(strcharinfo(3),"g_cas")) warp "SavePoint",0,0; } end; OnMenu: while(1) { mes "[WOE Information]"; if (agitcheck() || agitcheck2()) { if (.Active[0]) { for(set [email protected],0; [email protected]<.Size; set [email protected],[email protected]+4) if (gettime(4) == $WOE_CONTROL[[email protected]] && gettime(3) >= $WOE_CONTROL[[email protected]+1] && gettime(3) < $WOE_CONTROL[[email protected]+2]) { set [email protected], $WOE_CONTROL[[email protected]+2]; break; } mes "The War of Emperium is ^0055FFactive^000000 until ^FF0000"+Add_Zero([email protected])+"^000000 in the following regions:"; mes " "; for(set [email protected],0; [email protected]<6; set [email protected],[email protected]+1) if (.Active[1]&(1<<([email protected]+1))) mes " > ^777777"+.Regions$[[email protected]]+"^000000"; } else mes "The War of Emperium is ^0055FFactive^000000."; } else { for(set [email protected],0; [email protected]<.Size; set [email protected],[email protected]+4) if ((gettime(4) == $WOE_CONTROL[[email protected]] && gettime(3) <= $WOE_CONTROL[[email protected]+1]) || gettime(4) < $WOE_CONTROL[[email protected]]) { setarray [email protected][0],$WOE_CONTROL[[email protected]],$WOE_CONTROL[[email protected]+1]; break; } if (!getarraysize([email protected])) setarray [email protected][0],$WOE_CONTROL[0],$WOE_CONTROL[1]; mes "The War of Emperium is ^777777inactive^000000."; if (.Size) { mes " "; mes "The next session will begin"; mes "on ^0055FF"+.Days$[[email protected][0]]+"^000000 at "+Add_Zero([email protected][1])+"^000000."; } } next; switch(select(""+((.CastleWarp || .Active[1])?" ~ Warp to castles...":"")+": ~ Check schedule...: ~ View castle owners...:"+((getgmlevel()<.GMAccess || !getgmlevel())?"":" ~ Manage sessions...")+": ~ ^777777Cancel^000000")) { case 1: if (.CastleWarp) set [email protected]$,"^0055FF"; set [email protected]$,""; for(set [email protected],0; [email protected]<6; set [email protected],[email protected]+1) { if (.CastleWarp || .Active[1]&(1<<([email protected]+1))) set [email protected]$, [email protected]$+" ~ "+((.Active[1]&(1<<([email protected]+1)))[email protected]$:"^777777")+.Regions$[[email protected]]+" Castles^000000"; set [email protected]$, [email protected]$+":"; } set [email protected], select([email protected]$)-1; set [email protected]$,""; for(set [email protected],[email protected]*5; [email protected]<([email protected]*5)+5; set [email protected],[email protected]+1) { if (.CastleWarp || .Active[0]&(1<<[email protected])) set [email protected]$, [email protected]$+" ~ "+((.Active[0]&(1<<[email protected]))[email protected]$:"^777777")+getcastlename(.Castles$[[email protected]])+"^000000"; set [email protected]$, [email protected]$+":"; } set [email protected], select([email protected]$)-1; warp .Map$[[email protected]],.MapX[([email protected]*5)[email protected]],.MapY[([email protected]*5)[email protected]]; close; case 2: mes "[Schedule]"; if (.Size) { freeloop(1); for(set [email protected],0; [email protected]<.Size; set [email protected],[email protected]+4) { mes "> ^FF0000"+.Days$[$WOE_CONTROL[[email protected]]]+" ("+Add_Zero($WOE_CONTROL[[email protected]+1])+"-"+Add_Zero($WOE_CONTROL[[email protected]+2])+")^000000"; for(set [email protected],0; [email protected]<30; set [email protected],[email protected]+1) if ($WOE_CONTROL[[email protected]+3]&(1<<[email protected])) mes " ~ "+getcastlename(.Castles$[[email protected]])+" ^777777("+.Castles$[[email protected]]+")^000000"; if ([email protected]+4 < .Size) mes " "; } freeloop(0); } else mes "No times are configured."; next; break; case 3: mes "[Castle Ownership]"; for(set [email protected],0; [email protected]<6; set [email protected],[email protected]+1) { set [email protected], [email protected]*5; mes "> ^FF0000"+.Regions$[[email protected]]+"^000000"; for(set [email protected],[email protected]; [email protected]<([email protected]+5); set [email protected],[email protected]+1) { set [email protected], getcastledata(.Castles$[[email protected]],1); mes " ~ "+getcastlename(.Castles$[[email protected]])+": "+(([email protected])?"^0055FF"+getguildname([email protected]):"^777777unoccupied")+"^000000"; } if ([email protected] < 5) mes " "; } next; break; case 4: while(1) { mes "[Session Manager]"; mes "There are ^0055FF"+(.Size/4)+" session(s)^000000 configured."; mes "What would you like to do?"; next; switch(select(" ~ Add a session...: ~ Delete a session...: ~ Reload settings...:"+((agitcheck() || agitcheck2())?" ~ End WOE session...":"")+": ~ ^777777Go back^000000")) { case 1: mes "[New Session]"; if (.Size > 127) { mes "You have already reached the maximum of 32 sessions."; next; break; } mes "Select a day."; next; set [email protected], select(" ~ "+implode(.Days$,": ~ "))-1; mes "[New Session]"; mes "Select a start time for ^0055FF"+.Days$[[email protected]]+"^000000."; next; set [email protected]$,""; for(set [email protected],0; [email protected]<23; set [email protected],[email protected]+1) set [email protected]$, [email protected]$+" ~ "+Add_Zero([email protected],1)+":"; set [email protected], select([email protected]$)-1; mes "[New Session]"; mes "Select an end time for ^0055FF"+.Days$[[email protected]]+"^000000."; next; set [email protected]$,""; for(set [email protected],[email protected]+1; [email protected]<24; [email protected],[email protected]+1) set [email protected]$, [email protected]$+" ~ "+Add_Zero([email protected],1)+":"; set [email protected], select([email protected]$)[email protected]; for(set [email protected],0; [email protected]<.Size; set [email protected],[email protected]+4) if ([email protected] == $WOE_CONTROL[[email protected]] && (([email protected] >= $WOE_CONTROL[[email protected]+1] && [email protected] < $WOE_CONTROL[[email protected]+2]) || ([email protected] > $WOE_CONTROL[[email protected]+1] && [email protected] <= $WOE_CONTROL[[email protected]+2]) || ([email protected] <= $WOE_CONTROL[[email protected]+1] && [email protected] >= $WOE_CONTROL[[email protected]+2]))) { mes "[New Session]"; mes "The chosen times overlap with an existing session."; next; set [email protected],1; break; } if ([email protected]) { set [email protected],0; break; } set [email protected],0; while(1) { mes "[New Session]"; mes "^0055FF"+.Days$[[email protected]]+" ("+Add_Zero([email protected])+"-"+Add_Zero([email protected])+")^000000"; mes " > Castles:"; if ([email protected]) mes " ~ ^777777(none selected)^000000"; else for(set [email protected],0; [email protected]<30; set [email protected],[email protected]+1) if ([email protected]&(1<<[email protected])) mes " ~ "+getcastlename(.Castles$[[email protected]])+" ("+.Castles$[[email protected]]+")"; next; set [email protected]$,(([email protected])?" ~ ^FF0000Finished...^000000":"")+":"; for(set [email protected],0; [email protected]<30; set [email protected],[email protected]+1) set [email protected]$, [email protected]$+" ~ "+(([email protected]&(1<<[email protected]))?"^0055FF":"")+getcastlename(.Castles$[[email protected]])+" ("+.Castles$[[email protected]]+")^000000:"; set [email protected], select([email protected]$)-1; if ([email protected]) set [email protected], [email protected]^(1<<([email protected])); else { mes "[New Session]"; mes "Are you sure?"; next; switch(select(" ~ ^0055FFAdd session...^000000: ~ Continue selecting castles...: ~ ^777777Cancel^000000")) { case 1: for(set [email protected],0; [email protected]<.Size; set [email protected],[email protected]+4) if (([email protected] == $WOE_CONTROL[[email protected]] && [email protected] <= $WOE_CONTROL[[email protected]+1]) || [email protected] < $WOE_CONTROL[[email protected]]) { set [email protected],1; break; } if ([email protected]) { set [email protected],1; set [email protected],.Size; } copyarray $WOE_CONTROL[[email protected]+4], $WOE_CONTROL[[email protected]], [email protected]; setarray $WOE_CONTROL[[email protected]], [email protected], [email protected], [email protected], [email protected]; set .Size, getarraysize($WOE_CONTROL); case 3: mes "[New Session]"; mes (([email protected])?"Session added.":"Cancelled."); next; set [email protected],1; case 2: break; } if ([email protected]) { set [email protected],0; break; } } } break; case 2: mes "[Remove Session]"; if (!.Size) { mes "There are no sessions configured."; next; break; } mes "Select a session to remove."; next; set [email protected]$,""; for(set [email protected],0; [email protected]<.Size; set [email protected],[email protected]+4) set [email protected]$, [email protected]$+" ~ "+.Days$[$WOE_CONTROL[[email protected]]]+" ("+Add_Zero($WOE_CONTROL[[email protected]+1],1)+"-"+Add_Zero($WOE_CONTROL[[email protected]+2],1)+"):"; set [email protected]$, [email protected]$+" ~ ^777777Cancel^000000"; set [email protected], select([email protected]$)-1; if ([email protected] == (.Size/4)) break; mes "[Remove Session]"; mes "Delete ^0055FF"+.Days$[$WOE_CONTROL[[email protected]*4]]+"'s^000000 session?"; mes "This action cannot be undone."; next; set [email protected], select(" ~ ^FF0000Delete session...^000000: ~ ^777777Cancel^000000"); mes "[Remove Session]"; if ([email protected] == 2) mes "Cancelled."; else { deletearray $WOE_CONTROL[[email protected]*4],4; set .Size, getarraysize($WOE_CONTROL); mes "Session deleted."; } next; break; case 3: mes "[Reload Settings]"; mes "This will trigger all events related to new session configurations, if any."; if (agitcheck() || agitcheck2()) { mes " "; mes "Be aware that this will disrupt the current WOE session."; } next; set [email protected], select(" ~ ^0055FFReload settings...^000000: ~ ^777777Cancel^000000"); mes "[Reload Settings]"; if ([email protected] == 2) mes "Cancelled."; else { set .Init,1; donpcevent "WOE_CONTROL::OnMinute00"; mes "Variables have been re-initialized."; } next; break; case 4: mes "[Force Agit End]"; if (!agitcheck() && !agitcheck2()) { mes "WOE has already ended."; next; break; } mes "This command will safely execute all AgitEnd events."; mes " "; mes "Kill the current WOE session?"; next; set [email protected], select(" ~ ^FF0000End session...^000000:"+((.Options&1)?" ~ ^FF0000End session without rewards...^000000":"")+": ~ ^777777Cancel^000000"); mes "[Force Agit End]"; if ([email protected] == 3) mes "Cancelled."; else { set .ForceEnd, [email protected]; donpcevent "WOE_CONTROL::OnWOEEnd"; mes "WOE session terminated."; } next; break; case 5: set [email protected],1; break; } if ([email protected]) { set [email protected],0; break; } } break; case 5: close; } } }
  7. //===== eAthena Script ======================================= //= Item Rewards NPC //===== By: ================================================== //= Euphy //===== Current Version: ===================================== //= 1.8 //===== Description: ========================================= //= Useful for event rewards, when a player is not necessarily online. //= Logging is available, if needed (holds 128 names). //= Note: Unclaimed rewards are limited to 64 at a time. //============================================================ prontera,149,193,2 script Event Prize 831,{ // --------------------- Config --------------------- // Package format is "ID1,Count1,ID2,Count2,..." // GM Access: Level required to open the GM menu. // GM Delete: Level required to erase entries. // GM Logging: Level required to manage logs. set .GMAccess,2; set .GMDelete,99; set .GMLogging,99; set .PackageCount,3; setarray .Package1[0],501,1,502,2,503,3; setarray .Package2[0],601,5,602,10; setarray .Package3[0],607,10; // -------------------------------------------------- if (getgmlevel() >= .GMAccess) goto GM_Menu; mes "[Item Rewards]"; set [email protected],0; while ([email protected] < getarraysize($itemreward$)) { if (strcharinfo(0) == $itemreward$[[email protected]]) goto GetReward; set [email protected], [email protected]+2; } mes "You have no rewards pending."; close; GetReward: if (((Weight*100)/MaxWeight) > 49) { mes "You are over the weight limit."; close; } if (!checkweight(5055,getarraysize(getd(".Package"+$itemreward$[[email protected]+1])))) { mes "Clear space in your inventory."; close; } set [email protected],0; while ([email protected] < getarraysize(getd(".Package"+$itemreward$[[email protected]+1]))) { getitem getd(".Package"+$itemreward$[[email protected]+1]+"["[email protected]+"]"),getd(".Package"+$itemreward$[[email protected]+1]+"["+([email protected]+1)+"]"); set [email protected], [email protected]+2; } specialeffect2 248; deletearray $itemreward$[[email protected]],2; mes "Here you go!"; close; OnMinute00: OnMinute30: if (!getarraysize($itemreward$)) end; set [email protected],0; while ([email protected] < getarraysize($itemreward$)) { message $itemreward$[[email protected]],"[You have a reward pending. See the Item Rewards NPC.]"; sleep 10; set [email protected], [email protected]+2; } end; GM_Menu: mes "[Item Rewards]"; mes "What would you like to do?"; next; switch(select(" ~ ^FF55FFPackage information^000000: ~ ^FF55FFList unclaimed rewards^000000: ~ ^00D900Give a reward^000000: ~ "+((getgmlevel()<.GMDelete)?"^777777":"^DE0000")+"Delete a reward^000000: ~ "+((getgmlevel()<.GMDelete)?"^777777":"^DE0000")+"Delete all unclaimed rewards^000000: ~ "+((getgmlevel()<.GMLogging)?"^777777":"^55AAFF")+"Manage logs^000000: ~ [Close]")) { case 1: mes "[Item Rewards]"; set [email protected],1; while (getd(".Package"[email protected])) { mes "^660099Package " + [email protected] + ":^000000"; set [email protected],0; while ([email protected] < getarraysize(getd(".Package"[email protected]))) { mes " ~ " + getd(".Package"[email protected]+"["+([email protected]+1)+"]") + "x " + getitemname(getd(".Package"[email protected]+"["+([email protected])+"]")); set [email protected], [email protected]+2; } set [email protected], [email protected]+1; } next; goto GM_Menu; case 2: mes "[Item Rewards]"; mes "Used space: ^F52887" + (getarraysize($itemreward$)/2) + "^000000/64"; mes "--------------------------------"; set [email protected],0; while ([email protected] < getarraysize($itemreward$)) { mes "^B041FF" + $itemreward$[[email protected]] + "^000000: package #" + $itemreward$[[email protected]+1]; set [email protected], [email protected]+2; } next; goto GM_Menu; case 3: mes "[Item Rewards]"; if (getarraysize($itemreward$) > 127) { mes "No more names can be stored."; mes "Delete some values and try again."; next; goto GM_Menu; } mes "Input a name, then a package number."; input [email protected]$; query_sql "SELECT `char_id` FROM `char` WHERE `name` = '"[email protected]$+"'",[email protected]; if ([email protected]) { mes "The name is invalid."; next; goto GM_Menu; } else set [email protected],0; input [email protected],1,.PackageCount; next; mes "[Item Rewards]"; mes "Player: ^B041FF" + [email protected]$ + "^000000"; mes "Package: ^B041FF#" + [email protected] + "^000000"; mes " "; mes "Are you sure?"; if (select("Yes:No") == 2) { mes "Request cancelled."; next; goto GM_Menu; } setarray $itemreward$[getarraysize($itemreward$)],[email protected]$,[email protected]; message [email protected]$,"[You have a reward pending. See the Item Rewards NPC.]"; if ($itemlog) { if (getarraysize($itemlog1$) > 127) { deletearray $itemlog1$[0],1; deletearray $itemlog2$[0],1; } setarray $itemlog1$[getarraysize($itemlog1$)],strcharinfo(0); setarray $itemlog2$[getarraysize($itemlog2$)],[email protected]$; } mes "Reward added."; next; goto GM_Menu; case 4: mes "[Item Rewards]"; if (getgmlevel() < .GMDelete) { mes "You are not permitted to delete entries."; next; goto GM_Menu; } mes "Input a name to cancel a reward."; input [email protected]$; set [email protected],0; while ([email protected] < getarraysize($itemreward$)) { if ($itemreward$[[email protected]] == [email protected]$) { deletearray $itemreward$[[email protected]],2; mes "Name cleared."; next; goto GM_Menu; } set [email protected], [email protected]+2; } mes "The name is invalid."; next; goto GM_Menu; case 5: mes "[Item Rewards]"; if (getgmlevel() < .GMDelete) { mes "You are not permitted to delete entries."; next; goto GM_Menu; } mes "^FF0000This action cannot be undone.^000000"; mes "Are you sure?"; mes " "; if (select("Yes:No") == 2) { mes "Request cancelled."; next; goto GM_Menu; } deletearray $itemreward$[0],getarraysize($itemreward$); mes "All entries cleared."; next; goto GM_Menu; case 6: Log_Menu: mes "[]"; if (getgmlevel() < .GMLogging) { mes "You are not permitted to manage logs."; next; goto GM_Menu; } mes "Logs are currently "+(($itemlog)?"^00D900enabled^000000":"^FF0000disabled^000000")+"."; next; switch(select(" ~ ^55AAFFView Logs^000000: ~ "+((!$itemlog)?"^00D900Enable":"^777777Disable")+" logging^000000: ~ ^DE0000Delete all logs^000000: ~ [Go back]")) { case 1: mes "[Item Rewards]"; mes "Used space: ^F52887" + (getarraysize($itemlog1$)) + "^000000/128"; mes "--------------------------------"; set [email protected],0; while ([email protected] < getarraysize($itemlog1$)) { mes "^B041FF" + $itemlog1$[[email protected]] + "^000000: sent to ^55AAFF" + $itemlog2$[[email protected]] + "^000000"; set [email protected], [email protected]+1; } next; goto Log_Menu; case 2: set $itemlog, ((!$itemlog)?1:0); goto Log_Menu; case 3: mes "[Item Rewards]"; mes "^FF0000This action cannot be undone.^000000"; mes "Are you sure?"; mes " "; if (select("Yes:No") == 2) { mes "Request cancelled."; next; goto Log_Menu; } deletearray $itemlog1$[0],getarraysize($itemlog1$); deletearray $itemlog2$[0],getarraysize($itemlog2$); mes "Logs cleared."; next; goto Log_Menu; case 4: next; goto GM_Menu; } case 7: close; } } announce: Name has rewarded Package 1 For Winning Event
  8. how to make every round they will go back to the respawn point to avoid waiting the player to resu - script custom_bg#control -1,{ OnInit: set .minplayer2start, 2; // minimum player to start ... please do not set to 1 setarray .rewarditem, 501, 10, // reward to the winning team 501, 3; // reward to the losing team set .startingscore, 15; // score at start set .eventlasting, 20*60; // event last 20 minutes or the system abort itself set .red_cloth, 1; // color value from red clothing set .blue_cloth, 2; // color value from blue clothing set .grey_cloth, 3; // color value from grey clothing end; OnStart: if ( getwaitingroomstate( 0, .rednpcname$ ) < .minplayer2start || getwaitingroomstate( 0, .bluenpcname$ ) < .minplayer2start ) end; .red = waitingroom2bg( "guild_vs3", 13,50, strnpcinfo(0)+"::OnredQuit", strnpcinfo(0)+"::OnredDead", .rednpcname$ ); copyarray .team1aid, [email protected], [email protected]; .team1count = .minplayer2start; .blue = waitingroom2bg( "guild_vs3", 86,50, strnpcinfo(0)+"::OnblueQuit", strnpcinfo(0)+"::OnblueDead", .bluenpcname$ ); copyarray .team2aid, [email protected], [email protected]; .team2count = .minplayer2start; delwaitingroom .rednpcname$; delwaitingroom .bluenpcname$; bg_warp .red, "guild_vs3", 13,50; bg_warp .blue, "guild_vs3", 86,50; .score[1] = .score[2] =.startingscore; bg_updatescore "guild_vs3", .score[1], .score[2]; callsub L_setleader, 1; callsub L_setleader, 2; for ( [email protected] = 0; [email protected] < .minplayer2start; [email protected]++ ) { attachrid .team1aid[[email protected]]; @clotes_color = getlook( look_clothes_color ); setlook look_clothes_color, ( .leader_aid[1] == getcharid(3) )? .grey_cloth : .red_cloth; } for ( [email protected] = 0; [email protected] < .minplayer2start; [email protected]++ ) { attachrid .team2aid[[email protected]]; @clotes_color = getlook( look_clothes_color ); setlook look_clothes_color, ( .leader_aid[2] == getcharid(3) )? .grey_cloth : .blue_cloth; } sleep .eventlasting * 1000; if ( .score[1] > .score[2] ) { mapannounce "guild_vs3", "red side wins !", 0; callsub L_reward, 1, 0; callsub L_reward, 2, 2; } else if ( .score[1] < .score[2] ) { mapannounce "guild_vs3", "blue side wins !", 0; callsub L_reward, 2, 0; callsub L_reward, 1, 2; } else { mapannounce "guild_vs3", "Draw !", 0; callsub L_reward, 1, 2; callsub L_reward, 2, 2; } bg_warp .red, "prontera",152,178; bg_warp .blue, "prontera",154,178; bg_destroy .red; bg_destroy .blue; donpcevent .rednpcname$ +"::OnStart"; donpcevent .bluenpcname$ +"::OnStart"; .leader_aid[1] = .leader_aid[2] = 0; for ( [email protected] = 0; [email protected] < .team1count; [email protected]++ ) { attachrid .team1aid[[email protected]]; setlook look_clothes_color, @clotes_color; @clotes_color = 0; } for ( [email protected] = 0; [email protected] < .team2count; [email protected]++ ) { attachrid .team2aid[[email protected]]; setlook look_clothes_color, @clotes_color; @clotes_color = 0; } end; L_reward: for ( [email protected] = 0; [email protected] < getd(".team"+ getarg(0) +"count"); [email protected]++ ) getitem .rewarditem[ getarg(1) ], .rewarditem[ getarg(1) +1 ], getd(".team"+ getarg(0) +"aid["+ [email protected] +"]" ); return; OnredDead: callsub L_dead, 1; OnblueDead: callsub L_dead, 2; L_dead: if ( .leader_aid[ getarg(0) ] != getcharid(3) ) .score[ getarg(0) ]--; else { callsub L_setleader, getarg(0); .score[ getarg(0) ] -= 2; } bg_updatescore "guild_vs3", .score[1], .score[2]; if ( .score[ getarg(0) ] <= 0 ) awake strnpcinfo(0); sleep2 1250; percentheal 100,100; end; OnredQuit: callsub L_quit, 1, .red; OnblueQuit: callsub L_quit, 2, .blue; L_quit: percentheal 100, 100; while ( getd( ".team"+ getarg(0) +"aid["+ [email protected] +"]" ) != getcharid(3) && [email protected] < getd(".team"+ getarg(0) +"count") ) [email protected]++; deletearray getd( ".team"+ getarg(0) +"aid["+ [email protected] +"]" ), 1; setd ".team"+ getarg(0) +"count", getd(".team"+ getarg(0) +"count") -1; if ( .leader_aid[ getarg(0) ] == getcharid(3) ) callsub L_setleader, getarg(0); setlook look_clothes_color, @clotes_color; @clotes_color = 0; if ( bg_get_data( getarg(1), 0 ) > 1 ) end; .score[ getarg(0) ] = 0; awake strnpcinfo(0); end; L_setleader: while ( ( [email protected] = getd( ".team"+ getarg(0) +"aid["+ rand( getd(".team"+ getarg(0) +"count") ) +"]" ) ) == playerattached() ); .leader_aid[ getarg(0) ] = [email protected]; [email protected] = playerattached(); attachrid .leader_aid[ getarg(0) ]; addtimer 1, strnpcinfo(0) +"::Onteam"+ getarg(0) +"leader"; attachrid [email protected]; return; Onteam1leader: callsub L_lead, 1, 548; Onteam2leader: callsub L_lead, 2, 549; L_lead: while ( .leader_aid[ getarg(0) ] == getcharid(3) ) { specialeffect2 getarg(1); sleep2 1000; } end; } prontera,152,178,5 script red side 733,{ end; OnInit: set getvariableofnpc( .rednpcname$, "custom_bg#control" ), strnpcinfo(0); OnStart: waitingroom "Red Team", getvariableofnpc( .minplayer2start, "custom_bg#control" ) +1, "custom_bg#control::OnStart", getvariableofnpc( .minplayer2start, "custom_bg#control" ); end; } prontera,154,178,5 script blue side 734,{ end; OnInit: set getvariableofnpc( .bluenpcname$, "custom_bg#control" ), strnpcinfo(0); OnStart: waitingroom "Blue Team", getvariableofnpc( .minplayer2start, "custom_bg#control" ) +1, "custom_bg#control::OnStart", getvariableofnpc( .minplayer2start, "custom_bg#control" ); end; } guild_vs3 mapflag battleground 2 guild_vs3 mapflag nosave SavePoint guild_vs3 mapflag nowarp guild_vs3 mapflag nowarpto guild_vs3 mapflag noteleport guild_vs3 mapflag nomemo guild_vs3 mapflag nopenalty guild_vs3 mapflag nobranch guild_vs3 mapflag noicewall
  9. how to delete the 3rd job menu when you are 2nd class(monk priest etc.) you need to rebirth to become 3rd job not auto 3rd job sorry for bad english heres the code //===== rAthena Script ======================================= //= Job Master //===== By: ================================================== //= Euphy //===== Current Version: ===================================== //= 1.3 //===== Compatible With: ===================================== //= rAthena SVN r16114+ //===== Description: ========================================= //= A fully functional job changer. //===== Additional Comments: ================================= //= 1.1 Fixed reset on Baby job change. [Euphy] //= 1.2 Added Expanded Super Novice support and initial Kagerou/Oboro support. [Euphy] //= 1.3 Kagerou/Oboro added. [Euphy] //============================================================ new_5-2,161,182,5 script Job Master 123,{ delwaitingroom; waitingroom "Job Changer",0; function Job_Menu; function A_An; mes "[Job Master]"; if (Class > 4049) { mes "No more jobs are available."; close; } if (checkfalcon() || checkcart() || checkriding() || ismounting()) { mes "Please remove your "+((checkfalcon())?"falcon":"")+((checkcart())?"cart":"")+((checkriding())?"Peco":"")+((ismounting())?"mount":"")+" before proceeding."; close; } if (.SkillPointCheck && SkillPoint) { mes "Please use all your skill points before proceeding."; close; } set [email protected], eaclass(); set [email protected], ((.ThirdClass)?roclass([email protected]&EAJ_UPPERMASK):Class); if ([email protected] > 6 && [email protected] < 22) { if (BaseLevel < .Rebirth[0] || JobLevel < .Rebirth[1]) { set [email protected], .Rebirth[0]-BaseLevel; set [email protected], .Rebirth[1]-JobLevel; mes "You need "+(([email protected]>0)[email protected]+" more base levels "+(([email protected]>0)?"/ ":""):"")+(([email protected]>0)[email protected]+" more job levels ":"")+"to continue."; close; } if (Class > 21) { mes "Switch to third class?"; next; Job_Menu(roclass([email protected]|EAJL_THIRD)); close; } while(1) { mes "Select an option."; next; set [email protected], select(" ~ ^0055FFRebirth^000000:"+((.ThirdClass)?" ~ ^FF0000Third Class^000000":"")+": ~ ^777777Cancel^000000"); if ([email protected]==3) close; mes "[Job Master]"; mes "Are you sure?"; next; Job_Menu((([email protected]==1)?4001:roclass([email protected]|EAJL_THIRD))); mes "[Job Master]"; } } set [email protected], roclass([email protected]|EAJL_2_1); set [email protected],roclass([email protected]|EAJL_2_2); if (([email protected]&EAJ_UPPERMASK) == EAJ_SUPER_NOVICE) setarray [email protected][0],roclass([email protected]|EAJL_THIRD),99; if (Class == Job_Ninja) setarray [email protected][0],[email protected],70; if ([email protected][0] && .ThirdClass) { if (BaseLevel < .Rebirth[0] || JobLevel < [email protected][1]) { set [email protected], .Rebirth[0]-BaseLevel; set [email protected], [email protected][1]-JobLevel; mes "You need "+(([email protected]>0)[email protected]+" more base levels "+(([email protected]>0)?"/ ":""):"")+(([email protected]>0)[email protected]+" more job levels ":"")+"to continue."; close; } mes "Switch to "+jobname([email protected][0])+"?"; next; Job_Menu([email protected][0]); close; } if ([email protected]&EAJL_2) if ([email protected]&(EAJL_UPPER|EAJL_BABY) || roclass([email protected]|EAJL_UPPER) == -1) { mes "No more jobs are available."; close; } if (([email protected]&EAJ_BASEMASK) == EAJ_NOVICE) { if (JobLevel < .JobReq[0]) mes "A job level of "+.JobReq[0]+" is required to change into the 1st Class."; else if (Class == 4001 && .LastJob && lastJob) { mes "Switch classes now?"; next; Job_Menu(roclass((eaclass(lastJob)&EAJ_BASEMASK)|EAJL_UPPER)); } else switch(Class) { case 0: Job_Menu(1,2,3,4,5,6,23,4046,24,25,4023); case 4001: Job_Menu(4002,4003,4004,4005,4006,4007); case 4023: Job_Menu(4024,4025,4026,4027,4028,4029,4045); default: mes "An error has occurred."; break; } close; } if (roclass([email protected]|EAJL_2_1) == -1 || roclass([email protected]|EAJL_2_2) == -1) mes "No more jobs are available."; else if (!([email protected]&EAJL_2) && JobLevel < .JobReq[1]) mes "A job level of "+.JobReq[1]+" is required to change into the 2nd Class."; else if (.LastJob && lastJob && ([email protected]&EAJL_UPPER)) { mes "Switch classes now?"; next; Job_Menu(lastJob+4001); } else Job_Menu([email protected],[email protected]); close; function Job_Menu { while(1) { if (getargcount() > 1) { mes "Select a job."; set [email protected]$,""; for(set [email protected],0; [email protected]<getargcount(); set [email protected],[email protected]+1) set [email protected]$, [email protected]$+" ~ "+jobname(getarg([email protected]))+":"; set [email protected]$, [email protected]$+" ~ ^777777Cancel^000000"; next; set [email protected], getarg(select([email protected]$)-1,0); if ([email protected]) close; if (([email protected] == 23 || [email protected] == 4045) && BaseLevel < .SNovice) { mes "[Job Master]"; mes "A base level of "+.SNovice+" is required to turn into a "+jobname([email protected])+"."; close; } mes "[Job Master]"; mes "Are you sure?"; next; } else set [email protected], getarg(0); if (select(" ~ Change into ^0055FF"+jobname([email protected])+"^000000 class: ~ ^777777"+((getargcount() > 1)?"Go back":"Cancel")+"^000000")==1) { mes "[Job Master]"; mes "You are now "+A_An(jobname([email protected]))+"!"; if ([email protected]==4001 && .LastJob) set lastJob, Class; jobchange [email protected]; if ([email protected]==4001 || [email protected]==4023) resetlvl(1); specialeffect2 338; specialeffect2 432; if (.Platinum) callsub Get_Platinum; close; } if (getargcount() == 1) return; mes "[Job Master]"; } end; } function A_An { setarray [email protected]$[0],"a","e","i","o","u"; set [email protected]$, "_"+getarg(0); for(set [email protected],0; [email protected]<5; set [email protected],[email protected]+1) if (compare([email protected]$,"_"[email protected]$[[email protected]])) return "an "+getarg(0); return "a "+getarg(0); } Get_Platinum: skill 142,1,0; switch(BaseClass) { case 0: if (Class !=23) skill 143,1,0; break; case 1: skill 144,1,0; skill 145,1,0; skill 146,1,0; break; case 2: skill 157,1,0; break; case 3: skill 147,1,0; skill 148,1,0; break; case 4: skill 156,1,0; break; case 5: skill 153,1,0; skill 154,1,0; skill 155,1,0; break; case 6: skill 149,1,0; skill 150,1,0; skill 151,1,0; skill 152,1,0; break; default: break; } switch(roclass(eaclass()&EAJ_UPPERMASK)) { case 7: skill 1001,1,0; break; case 8: skill 1014,1,0; break; case 9: skill 1006,1,0; break; case 10: skill 1012,1,0; skill 1013,1,0; break; case 11: skill 1009,1,0; break; case 12: skill 1003,1,0; skill 1004,1,0; break; case 14: skill 1002,1,0; break; case 15: skill 1015,1,0; skill 1016,1,0; break; case 16: skill 1007,1,0; skill 1008,1,0; skill 1017,1,0; skill 1018,1,0; skill 1019,1,0; break; case 17: skill 1005,1,0; break; case 18: skill 238,1,0; break; case 19: skill 1010,1,0; break; case 20: skill 1011,1,0; break; default: break; } return; OnInit: setarray .Rebirth[0],99,50; // Minimum base level, job level to rebirth OR change to third class setarray .JobReq[0],10,40; // Minimum job level to turn into 1st class, 2nd class set .ThirdClass,1; // Enable third classes? (1: yes / 0: no) set .SNovice,45; // Minimum base level to turn into Super Novice set .LastJob,1; // Enforce linear class changes? (1: yes / 0: no) set .SkillPointCheck,1; // Force player to use up all skill points? (1: yes / 0: no) set .Platinum,1; // Get platinum skills automatically? (1: yes / 0: no) end; }
  10. SOLVED I Recopy the Map-server_sql.bat
  11. heres the code new_5-2,78,101,5 script Coin Manager 872,{ delwaitingroom; waitingroom "Coin Exchanger",0; function int__; do{ callsub exchange_rate; [email protected] = select( "Zeny to Coin","Coin to Zeny","Close" ); switch( [email protected] ){ Case 1: mes "Convert Zeny to which Coins ?"; [email protected] = select( implode( .coin_name$,":" ) ) - 1; if( Zeny < .value[[email protected]] ){ mes "^FF0000[ERROR]^000000 You didnt have enough zeny."; }else{ [email protected] = Zeny / .value[[email protected]]; mes "You can get maximum of ^FF0000"+int__( [email protected] )+" x "+getitemname( .coin_id[[email protected]] )+"^000000"; input [email protected],0,[email protected]; if( [email protected] ) if( checkweight( .coin_id[[email protected]],[email protected] ) ){ [email protected] = ( [email protected] * .value[[email protected]] ); Zeny -= [email protected]; getitem .coin_id[[email protected]],[email protected]; message strcharinfo(0),"Exchanged "+int__( [email protected] )+" Zeny to "+int__( [email protected] )+" "+getitemname( .coin_id[[email protected]] )+"^000000"; }else{ mes "^FF0000[ERROR]^000000 You cant take this much."; } } break; Case 2: mes "Convert which Coins to Zeny ?"; [email protected] = select( implode( .coin_name$,":" ) ) - 1; if( !countitem( .coin_id[[email protected]] ) ){ mes "^FF0000[ERROR]^000000 You didnt have any "+getitemname( .coin_id[[email protected]] )+"."; }else if( ( .max_zeny - Zeny ) < .value[[email protected]] ){ mes "^FF0000[ERROR]^000000 You cant exchange this Coin as it will exceed the Zeny limit."; }else{ [email protected] = (( .max_zeny - Zeny ) / .value[[email protected]] ); if( [email protected] > countitem( .coin_id[[email protected]] ) ) [email protected] = countitem( .coin_id[[email protected]] ); mes "You can exchange maximum of ^FF0000"+int__( [email protected] )+" x "+getitemname( .coin_id[[email protected]] )+"^000000 to zeny"; input [email protected],0,[email protected]; if( [email protected] ){ [email protected] = ( [email protected] * .value[[email protected]] ); Zeny += [email protected]; delitem .coin_id[[email protected]],[email protected]; message strcharinfo(0),"Exchanged "+int__( [email protected] )+" "+getitemname( .coin_id[[email protected]] )+" to "+int__( [email protected] )+" Zeny^000000"; } } break; default: break; } next; }while( [email protected] != 3 ); mes "Thank you."; close; exchange_rate: mes "Exchange Rate :"; for( [email protected] = 0; [email protected] < .coin_size; [email protected]++ ) mes "^777777 > "+.coin_name$[[email protected]]+" - "+int__( .value[[email protected]] )+" z^000000"; return; OnInit: // server max zeny .max_zeny = 1000000000; // coin list + name + value setarray .coin_name$,"Silver","Gold","Mithril","Platinum"; setarray .coin_id,675,671,674,677; setarray .value,1000000,10000000,100000000,500000000; .coin_size = getarraysize( .coin_name$ ); end; // credits to annieruru function int__ { set [email protected], atoi(""+getarg(0)); if ( [email protected] == 0 || [email protected] >= 2147483647 ) return getarg(0); set [email protected], getstrlen(""[email protected]); for ( set [email protected],0; [email protected] < [email protected]; set [email protected], [email protected] + 1 ) { set [email protected]$, [email protected] % pow(10,[email protected]+1) / pow(10,[email protected]) + [email protected]$; if ( ([email protected]+1) % 3 == 0 && [email protected]+1 != [email protected] ) set [email protected]$, ","+ [email protected]$; } return [email protected]$; } }
  12. // The rate the common items are dropped (Items that are in the ETC tab, besides card) item_rate_common: 100 item_rate_common_boss: 100 item_drop_common_min: 1 item_drop_common_max: 10000 // The rate healing items are dropped (items that restore HP or SP) item_rate_heal: 100 item_rate_heal_boss: 100 item_drop_heal_min: 1 item_drop_heal_max: 10000 // The rate at which usable items (in the item tab) other then healing items are dropped. item_rate_use: 100 item_rate_use_boss: 100 item_drop_use_min: 1 item_drop_use_max: 10000 // The rate at which equipment is dropped. item_rate_equip: 100 item_rate_equip_boss: 100 item_drop_equip_min: 1 item_drop_equip_max: 10000 // The rate at which cards are dropped item_rate_card: 100 item_rate_card_boss: 100 item_drop_card_min: 1 item_drop_card_max: 10000 // The rate adjustment for the MVP items that the MVP gets directly in their inventory item_rate_mvp: 100 item_drop_mvp_min: 1 item_drop_mvp_max: 10000 // The rate adjustment for card-granted item drops. item_rate_adddrop: 100 item_drop_add_min: 1 item_drop_add_max: 10000 // Rate adjustment for Treasure Box drops (these override all other modifiers) item_rate_treasure: 100 item_drop_treasure_min: 1 item_drop_treasure_max: 10000 I want to make 100% Normal Items(Equip)(ETC)&(Card) 10%MVP Items(Equipment)(ETC) & 3%MVP Cards
  13. Any english for this ?
  14. where can i change the guild master only get the rewards setarray .Reward[0],14001,1; ??
×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use and Privacy Policy.