Jump to content

JLance

Members
  • Posts

    19
  • Joined

  • Last visited

Profile Information

  • Gender
    Male
  • Location
    British Columbia
  • Server
    MoietyRO

Contact Methods

JLance's Achievements

Poring

Poring (1/15)

0

Reputation

  1. Here http://www.mediafire.com/download/32763pb9x9dtq1q/raData.rar
  2. Sorry for bumping i wanna know if this works on r17539?
  3. I just updated my svn r17535 and I got this do i have to worry? Please answer :/ make[1]: Entering directory `/root/Desktop/trunk/3rdparty/mt19937ar' CC mt19937ar.c make[1]: Leaving directory `/root/Desktop/trunk/3rdparty/mt19937ar' make[1]: Entering directory `/root/Desktop/trunk/3rdparty/libconfig' CC libconfig.c CC grammar.c CC scanctx.c CC scanner.c CC strbuf.c make[1]: Leaving directory `/root/Desktop/trunk/3rdparty/libconfig' make[1]: Entering directory `/root/Desktop/trunk/src/common' MKDIR obj_all CC core.c CC socket.c CC timer.c CC db.c CC nullpo.c CC malloc.c CC showmsg.c CC strlib.c CC utils.c CC grfio.c CC mapindex.c CC ers.c CC md5calc.c CC core.c CC socket.c CC malloc.c CC random.c CC des.c CC conf.c CC thread.c CC mutex.c CC raconf.c CC mempool.c CC msg_conf.c CC cli.c AR obj_all/common.a MKDIR obj_sql CC sql.c AR obj_sql/common_sql.a make[1]: Leaving directory `/root/Desktop/trunk/src/common' make[1]: Entering directory `/root/Desktop/trunk/src/login' MKDIR obj_sql CC login.c CC account_sql.c CC ipban_sql.c CC loginlog_sql.c LD login-server make[1]: Leaving directory `/root/Desktop/trunk/src/login' make[1]: Entering directory `/root/Desktop/trunk/src/char' MKDIR obj_sql CC char.c CC inter.c CC int_party.c CC int_guild.c CC int_storage.c CC int_pet.c CC int_homun.c CC int_mail.c CC int_auction.c CC int_quest.c CC int_mercenary.c CC int_elemental.c LD char-server make[1]: Leaving directory `/root/Desktop/trunk/src/char' make[1]: Entering directory `/root/Desktop/trunk/src/map' MKDIR obj_sql CC map.c CC chrif.c CC clif.c CC pc.c CC status.c CC npc.c CC npc_chat.c CC chat.c CC path.c CC itemdb.c CC mob.c CC script.c CC storage.c CC skill.c skill.c: In function 'skill_parse_row_nonearnpcrangedb' skill.c:18327: warning: comparison is always false due to limited range of data type CC atcommand.c CC battle.c battle.c: In function 'is_attack_piercing' battle.c:2016: warning: suggest explicit braces to avoid ambiguous 'else' CC battleground.c CC intif.c CC trade.c CC party.c CC vending.c CC guild.c CC pet.c CC log.c CC mail.c CC date.c CC unit.c CC homunculus.c CC mercenary.c CC quest.c CC instance.c CC buyingstore.c CC searchstore.c CC duel.c CC pc_groups.c CC elemental.c CC cashshop.c CC channel.c CC mapreg_sql.c LD map-server make[1]: Leaving directory `/root/Desktop/trunk/src/map' building conf/import and conf/msg_conf/import folder... CC skill.c skill.c: In function 'skill_parse_row_nonearnpcrangedb' skill.c:18327: warning: comparison is always false due to limited range of data type CC atcommand.c CC battle.c battle.c: In function 'is_attack_piercing' battle.c:2016: warning: suggest explicit braces to avoid ambiguous 'else'
  4. Hello I need the 4 bossnia maps :/ Ours are missing when we added new maps and please tell me if where to find it in the grfs. Thanks in advance
  5. Why am I getting this error? if(getcharid(1) != 0){ getpartymember(getcharid(1)); if($@partymembercount > 5) { mes "Don't change your party settings!"; close; } mes "Be Careful!"; close2; if( has_instance("supmin1") != "") { warp has_instance("supmin1"),200,385; } set .@instance, instance_create("Silix's Lair", getcharid(1)); if( .@instance < 0 ) { mes "Failed to create the instance!"; close; }
  6. Okay I want to keep the gm control activation of the poring catcher. What i wanna know is how do I make it automatically start every 2hours Here is the code I've found //=========== PORING CATCHER MADE ==============\\ //=== BY: SHOGS-GFX and RAGNAROK DEVELOPERS ====\\ //= Please Report if you encounter some errors =\\ //===== https://www.facebook.com/ShogsGfx ======\\ //==============================================\\ //==FUNCTIONS===================================\\ /* GM Can start the event manualy GM Can also stop the event manualy HOW: just PM this npc (npc:pcatch) The Next Guide Will Be Given by the Manager */ //======= PLEASE DO NOT REMOVE CREDITS =========\\ //==============================================\\ //== MORE UPDATES TO COME FOR BETTER FUNCTION ==\\ //===== https://www.facebook.com/ShogsGfx ======\\ //==============================================\\ //====LEVEL OF GM CAN CONTROL THE EVENT=========\\ - script GMCONTROL -1,{ OnInit: set $gmcontrol,60; end; } //---------------END OF SETUP-------------------\\ //================ON WHISPER=========================\\ - script pcatch -1,{ //====LEVEL OF GM CAN CONTROL THE EVENT=========\\ //OnInit: //set $gmcontrol,60; //end; //---------------END OF SETUP-------------------\\ OnWhisperGlobal: if(getgmlevel() >= $gmcontrol) { mes "^3399FF[Poring Catcher]^000000"; mes "Hello GameMaster!"; mes "What do you want to do?"; switch(select("Start Event:Stop Event:Nothing")) { case 1: { next; mes "^3399FF[Poring Catcher]^000000"; mes "Please confirm by typing START."; input .@confirm$; if (.@confirm$ == "START") { donpcevent "Announcer2::OnGMStart"; close; } mes "Confirmation failed"; close; break; } case 2: { next; mes "^3399FF[Poring Catcher]^000000"; mes "Please confirm by typing STOP."; input .@confirm$; if (.@confirm$ == "STOP") { donpcevent "Announcer2::OnGMStop"; close; } mes "Confirmation failed"; close; break; } case 3: { next; mes "^3399FF[Poring Catcher]^000000"; mes "Good bye"; close; } } } } //====================ANNOUNCER======================\\ - script Announcer2 -1,{ OnGMStart: killmonster "poring_w01.gat","All"; announce "(Poring Manager) : A Gamemaster started a Poring Catcher Event now.",0; sleep 3000; announce "(Poring Manager) : If you want to join, come at the middle of Prontera, enter the warp portal.",0; enablenpc "PoringCatcher"; sleep 2000; announce "(Poring Manager) : Prize: will be TCG and Gold Coins",0; sleep 2000; announce "(Poring Manager) : The portal is going to close in one minute.",0; sleep 60000; announce "(Poring Manager) : The portal has been closed.",0; disablenpc "PoringCatcher"; if(getmapusers("poring_w01") == 0) { disablenpc "Poring Banker"; announce "Event Poring Catcher didn't start because there's no players.",0; end; } donpcevent "Poring Banker::OnEnable"; end; OnGMStop: killmonster "poring_w01.gat","All"; announce "A Gamemaster has stopped the Poring Catcher Event",0; mapwarp "poring_w01.gat","prontera.gat",155,173; disablenpc "Poring Banker"; disablenpc "PoringCatcher"; end; OnClock1200: OnClock1100: OnClock1300: OnClock2300: killmonster "poring_w01.gat","All"; announce "(Poring Manager) : Poring Catcher Event will start at the moment.",0; sleep 3000; announce "(Poring Manager) : If you want to join, come at the middle of Prontera, enter the warp portal.",0; enablenpc "PoringCatcher"; sleep 2000; announce "(Poring Manager) : Prize: will be TCG and Gold Coins",0; sleep 2000; announce "(Poring Manager) : The portal is going to close in one minute.",0; sleep 60000; announce "(Poring Manager) : The portal has been closed.",0; disablenpc "PoringCatcher"; if(getmapusers("poring_w01") == 0) { disablenpc "Poring Banker"; announce "Event Poring Catcher didn't start because no players found in map.",0; end; } donpcevent "Poring Banker::OnEnable"; end; OnInit: disablenpc "Poring Banker"; disablenpc "PoringCatcher"; } //---------All Job Registration---------------------------------------- lunette,72,102,0 warp PoringCatcher 2,2,poring_w01,105,128 //--------------------------------------------------------------------- //--------------------------------------------------------------------- - script Poring Banker -1,{ OnEnable: mapannounce "poring_w01","Poring Manager: The Poring Catcher Event will start shortly",0; sleep2 10000; mapannounce "poring_w01","Poring Manager: I will be summoning 100 porings with different names kill the real poring",0; sleep2 10000; mapannounce "poring_w01","Poring Manager: What are we waiting for?..Let's Catch some Porings!!...",0; sleep2 10000; goto L_Start; end; L_Start: if(getmapusers("poring_w01") == 0) goto L_None; if(getmapusers("poring_w01") >= 1) { mapannounce "poring_w01","Poring Manager: Get ready at the count of 5 we will start!....",0; sleep2 6000; mapannounce "poring_w01","Poring Manager: 5",0; sleep2 5000; mapannounce "poring_w01","Poring Manager: 4",0; sleep2 4000; mapannounce "poring_w01","Poring Manager: 3",0; sleep2 3000; mapannounce "poring_w01","Poring Manager: 2",0; sleep2 2000; mapannounce "poring_w01","Poring Manager: 1",0; donpcevent "Poringsummoner::OnSummon"; end; } L_None: disablenpc "Poring Banker"; killmonster "poring_w01.gat","All"; end; } //==================SUMMONER OF PORINGS ======================\\ - script Poringsummoner -1,{ OnSummon: if(getmapusers("poring_w01") == 0) goto L_2None; monster "poring_w01.gat",0,0,"Poring",1002,1,"poringwin::OnMobKilled"; monster "poring_w01.gat",0,0,"Pouring",1002,20,"poringlose::OnMobKilled"; monster "poring_w01.gat",0,0,"Proing",1002,20,"poringlose::OnMobKilled"; monster "poring_w01.gat",0,0,"Poirng",1002,20,"poringlose::OnMobKilled"; monster "poring_w01.gat",0,0,"Poing",1002,20,"poringlose::OnMobKilled"; monster "poring_w01.gat",0,0,"I'm not a Poring",1002,25,"poringlose::OnMobKilled"; monster "poring_w01.gat",0,0,"Gnirop",1002,25,"poringlose::OnMobKilled"; monster "poring_w01.gat",0,0,"Poring",1113,25,"poringlose::OnMobKilled"; monster "poring_w01.gat",0,0,"Poring",1062,25,"poringlose::OnMobKilled"; monster "poring_w01.gat",0,0,"Por|ng",1002,30,"poringlose::OnMobKilled"; monster "poring_w01.gat",0,0,"Por1ng",1002,25,"poringlose::OnMobKilled"; monster "poring_w01.gat",0,0,"Porong",1002,25,"poringlose::OnMobKilled"; monster "poring_w01.gat",0,0,"P0ring",1002,25,"poringlose::OnMobKilled"; monster "poring_w01.gat",0,0,"P@ring",1002,25,"poringlose::OnMobKilled"; monster "poring_w01.gat",0,0,"Porng",1002,25,"poringlose::OnMobKilled";end; L_2None: disablenpc "Poring Banker"; killmonster "poring_w01.gat","All"; end; } //==================REAL PORING FOR WIN======================\\ - script poringwin -1,{ OnMobKilled: killmonster "poring_w01.gat","All"; atcommand "@doommap"; getitem 7227,1; getitem 671, 10; announce "Poring Banker: We have a winner! well done " + strcharinfo(0) + ".",0; warp "SavePoint",0,0; end; } //==================DUMY PORINGS FOR LOSERS======================\\ - script poringlose -1,{ OnMobKilled: dispbottom "Your out of the game, You did not catch the right Poring !"; percentheal -99,-99; warp "SavePoint",0,0; end; } //==================Mapflags========================\\ poring_w01 mapflag nowarp poring_w01 mapflag nowarpto poring_w01 mapflag noteleport poring_w01 mapflag nosave poring_w01 mapflag nomemo poring_w01 mapflag nobranch poring_w01 mapflag noloot poring_w01 mapflag noskill poring_w01 mapflag nopenalty Should I put OnClock0000: OnClock0200: OnClock0400: OnClock0600: OnClock0800: OnClock1000: OnClock1200: OnClock1400: OnClock1600: OnClock1800: OnClock2000: OnClock2200: set .ResetCounter,.ResetCounter+1; set .EventON,1; set .Timer,1; set .Wait,1; announce "The Poring Catcher Event will begin in 3 minutes.",bc_all | bc_blue; announce "Make your way to Lunette.",bc_all | bc_blue; setnpctimer 0; initnpctimer; end; OnTimer60000: if (.Timer!=1) end; announce "The Poring Catcher Event will begin in 3 minutes.",bc_all | bc_blue; announce "Make your way to Lunette.",bc_all | bc_blue; end; OnTimer120000: if (.Timer!=1) end; announce "The Poring Catcher Event will begin in 3 minutes.",bc_all | bc_blue; announce "Make your way to Lunette.",bc_all | bc_blue; end; OnTimer180000: if (.Timer!=1) end; announce "The Poring Catcher Event will begin in 3 minutes.",bc_all | bc_blue; announce "Make your way to Lunette.",bc_all | bc_blue; set .Timer,0; stopnpctimer; setnpctimer 0; initnpctimer; } after the //==================ANNOUNCER============== and do I lack codes? PS. Please Correct my OnTimer.
  7. JLance

    Refiner

    I need a refiner npc that has 3 Functions 1. Normal refine 2. High Rate Refine that uses enriched ori and elu but has a higher chance than normal rate. 3. Perfect refine with the use of refine ticket. - Can support/detect automatically the custom items that needs to be upgraded.
  8. I am having a problem on this because whenever a player votes it doesn't give cash points. If I reconfigured it they gain cp again but the next day they dont. Help please.
  9. Okay so I added a costume on my item_db2.txt since then it crashed my map server. I deleted the costume I added and I stil crash the server when I'm using @reloaditemdb. I am using rAthena version 17516.
  10. login table username: ragnarok pw: ragnarok sex: S(erver). NEVER FORGET To set privilages for root on ragnarok database. CHECK: char_athena.conf // Login Server IP // The character server connects to the login server using this IP address. // NOTE: This is useful when you are running behind a firewall or are on // a machine with multiple interfaces. login_ip: 127.0.0.1 // change to your host server ip // The character server listens on the interface with this IP address. // NOTE: This allows you to run multiple servers on multiple interfaces // while using the same ports for each server. //bind_ip: 127.0.0.1 // Login Server Port login_port: 6900 // Character Server IP // The IP address which clients will use to connect. // Set this to what your server's public IP address is. char_ip: 127.0.0.1 // change to your server host ip map_athena.conf //-------------------------------------------------------------- // Configuration Info //-------------------------------------------------------------- // Interserver communication passwords, set in account.txt (or equiv.) userid: ragnarok passwd: ragnarok // Character Server IP // The map server connects to the character server using this IP address. // NOTE: This is useful when you are running behind a firewall or are on // a machine with multiple interfaces. char_ip: 127.0.0.1 change to your host server ip // The map server listens on the interface with this IP address. // NOTE: This allows you to run multiple servers on multiple interfaces // while using the same ports for each server. //bind_ip: 127.0.0.1 // Character Server Port char_port: 6121 // Map Server IP // The IP address which clients will use to connect. // Set this to what your server's public IP address is. map_ip: 127.0.0.1 // change to your host server ip if you are using a host. inter_athena.conf. // Global SQL settings // overriden by local settings when the hostname is defined there // (currently only the login-server reads/obeys these settings) sql.db_hostname: 127.0.0.1 // do not change sql.db_port: 3306 sql.db_username: ragnarok //your mysql username sql.db_password: ragnarok // your mysql password sql.db_database: ragnarok sql.codepage: // MySQL Character SQL server char_server_ip: 127.0.0.1 // do not change char_server_port: 3306 char_server_id: ragnarok // your mysql username char_server_pw: ragnarok //your mysql password char_server_db: ragnarok // MySQL Map SQL Server map_server_ip: 127.0.0.1 //do not change map_server_port: 3306 map_server_id: ragnarok //your mysql username map_server_pw: ragnarok //your mysql password map_server_db: ragnarok // MySQL Log SQL Database log_db_ip: 127.0.0.1 //do not change log_db_port: 3306 log_db_id: ragnarok //your mysql username log_db_pw: ragnarok //your mysql password log_db_db: log log_codepage:
  11. JLance

    Help me

    Well i think you didnt install fluxcp on your db as the same as the login table check the error.php set the $showExceptions = false; // Whether or not to show exceptions (only applies to error.php) to true or set your root to host = %. I hope that helps
  12. Okay so used gm xeon's woe setter 3 it doesn't spwn any emp. then i replaced guild , guild2 deleted agit_template still doesnt have any emp. I used Euphy's still no emp //===== 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,149,193,4 script WOE Information 835,{ doevent "WOE_CONTROL::OnMenu"; end; OnAgitStart: while(agitcheck()) { specialeffect 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|8; // 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 .@i,0; .@i<30; set .@i,.@i+1) { setmapflag .Castles$[.@i], mf_loadevent; setd "."+.Castles$[.@i], .@i; } if (!agitcheck() && !agitcheck2()) sleep 4000; set .Init,1; OnMinute00: freeloop(1); if (agitcheck() || agitcheck2()) { for(set .@i,0; .@i<.Size; set .@i,.@i+4) if (gettime(4) == $WOE_CONTROL[.@i] && gettime(3) == $WOE_CONTROL[.@i+2]) { OnWOEEnd: announce "The War Of Emperium is over!",bc_all|bc_woe; AgitEnd; AgitEnd2; sleep 1000; for(set .@j,0; .@j<30; set .@j,.@j+1) { if (.Active[0]&(1<<.@j)) Disp_Owner(.Castles$[.@j],1); if (.ExitWarp) maprespawnguildid .Castles$[.@j],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 .@i,0; .@i<.Size; set .@i,.@i+4) if (gettime(4) == $WOE_CONTROL[.@i] && gettime(3) >= $WOE_CONTROL[.@i+1] && gettime(3) < $WOE_CONTROL[.@i+2]) { deletearray .Active[0],2; set .Active[0], $WOE_CONTROL[.@i+3]; if (.Init) { AgitEnd; AgitEnd2; } else announce "The War Of Emperium has begun!",bc_all|bc_woe; sleep 1000; AgitStart; AgitStart2; for(set .@j,0; .@j<30; set .@j,.@j+1) { if (.Active[0]&(1<<.@j)) { if (!.Init) Disp_Owner(.Castles$[.@j],0); set .Active[1], .Active[1] | (1<<((.@j/5)+1)); } else { if (.@j<20) { donpcevent "Agit#"+.Castles$[.@j]+"::OnAgitEnd"; killmonster .Castles$[.@j], "Agit#"+.Castles$[.@j]+"::OnAgitBreak"; } else { donpcevent "Manager#"+.Castles$[.@j]+"::OnAgitEnd2"; killmonster .Castles$[.@j], "Steward#"+.EndLabel$[.@j-20]+"::OnStartArena"; } } } break; } } set .Init,0; end; function Disp_Owner { set .@o, getcastledata(getarg(0),1); if (.@o) announce "The ["+getcastlename(getarg(0))+"] castle "+((getarg(1))?"has been conquered":"is currently held")+" by the ["+getguildname(.@o)+"] 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 .@sql$, ((.Options&4)?"position = 0":"online = 1"); if (.Options&2) set .@str$,gettimestr("%B %d, %Y",21); freeloop(1); for(set .@i,0; .@i<30; set .@i,.@i+1) if (getarg(0)&(1<<.@i)) { set .@gid, getcastledata(.Castles$[.@i],1); if (!.@gid) continue; set .@size, query_sql("SELECT account_id,char_id FROM `guild_member` WHERE guild_id = '"+.@gid+"' AND "+.@sql$,.@aid,.@cid); for(set .@j,0; .@j<.@size; set .@j,.@j+1) { if (.Options&8 && !(.Options&4)) { set .@ip$, replacestr(getcharip(.@aid[.@j]),".","a"); if (getd(".@ip_"+.@i+"_"+.@ip$)) continue; setd ".@ip_"+.@i+"_"+.@ip$,1; } if (.Options&2) { query_sql("INSERT INTO `mail` (send_name,dest_id,title,message,nameid,amount,identify,zeny,time) VALUES ("+ "'no-reply',"+.@cid[.@j]+",'** Siege Reward: "+getcastlename(.Castles$[.@i])+" **',"+ "'Brave one,% % Congratulations!% Your guild has successfully occupied% territory in the War of Emperium on% "+.@str$+".% % % % % [ Your reward is attached. ]',"+ .Reward[0]+","+.Reward[1]+",0,"+.Reward[2]+",UNIX_TIMESTAMP(NOW()))"); if (!getd(".@str_"+.@cid[.@j]) && isloggedin(.@aid[.@j],.@cid[.@j])) { setd ".@str_"+.@cid[.@j],1; message rid2name(.@aid[.@j]),"You've got mail! Please re-login to update your mailing list."; } } else if (isloggedin(.@aid[.@j])) { for(set .@k,0; .@k<getarraysize(.Reward); set .@k,.@k+2) getitem .Reward[.@k], .Reward[.@k+1], .@aid[.@j]; message rid2name(.@aid[.@j]),"You have been rewarded for conquering "+getcastlename(.Castles$[.@i])+"."; } } } 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 .@i,0; .@i<.Size; set .@i,.@i+4) if (gettime(4) == $WOE_CONTROL[.@i] && gettime(3) >= $WOE_CONTROL[.@i+1] && gettime(3) < $WOE_CONTROL[.@i+2]) { set .@i, $WOE_CONTROL[.@i+2]; break; } mes "The War of Emperium is ^0055FFactive^000000 until ^FF0000"+Add_Zero(.@i)+"^000000 in the following regions:"; mes " "; for(set .@i,0; .@i<6; set .@i,.@i+1) if (.Active[1]&(1<<(.@i+1))) mes " > ^777777"+.Regions$[.@i]+"^000000"; } else mes "The War of Emperium is ^0055FFactive^000000."; } else { for(set .@i,0; .@i<.Size; set .@i,.@i+4) if ((gettime(4) == $WOE_CONTROL[.@i] && gettime(3) <= $WOE_CONTROL[.@i+1]) || gettime(4) < $WOE_CONTROL[.@i]) { setarray .@time[0],$WOE_CONTROL[.@i],$WOE_CONTROL[.@i+1]; break; } if (!getarraysize(.@time)) setarray .@time[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$[.@time[0]]+"^000000 at "+Add_Zero(.@time[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 .@clr$,"^0055FF"; set .@menu$,""; for(set .@i,0; .@i<6; set .@i,.@i+1) { if (.CastleWarp || .Active[1]&(1<<(.@i+1))) set .@menu$, .@menu$+" ~ "+((.Active[1]&(1<<(.@i+1)))?.@clr$:"^777777")+.Regions$[.@i]+" Castles^000000"; set .@menu$, .@menu$+":"; } set .@i, select(.@menu$)-1; set .@menu$,""; for(set .@j,.@i*5; .@j<(.@i*5)+5; set .@j,.@j+1) { if (.CastleWarp || .Active[0]&(1<<.@j)) set .@menu$, .@menu$+" ~ "+((.Active[0]&(1<<.@j))?.@clr$:"^777777")+getcastlename(.Castles$[.@j])+"^000000"; set .@menu$, .@menu$+":"; } set .@j, select(.@menu$)-1; warp .Map$[.@i],.MapX[(.@i*5)+.@j],.MapY[(.@i*5)+.@j]; close; case 2: mes "[Schedule]"; if (.Size) { freeloop(1); for(set .@i,0; .@i<.Size; set .@i,.@i+4) { mes "> ^FF0000"+.Days$[$WOE_CONTROL[.@i]]+" ("+Add_Zero($WOE_CONTROL[.@i+1])+"-"+Add_Zero($WOE_CONTROL[.@i+2])+")^000000"; for(set .@j,0; .@j<30; set .@j,.@j+1) if ($WOE_CONTROL[.@i+3]&(1<<.@j)) mes " ~ "+getcastlename(.Castles$[.@j])+" ^777777("+.Castles$[.@j]+")^000000"; if (.@i+4 < .Size) mes " "; } freeloop(0); } else mes "No times are configured."; next; break; case 3: mes "[Castle Ownership]"; for(set .@i,0; .@i<6; set .@i,.@i+1) { set .@k, .@i*5; mes "> ^FF0000"+.Regions$[.@i]+"^000000"; for(set .@j,.@k; .@j<(.@k+5); set .@j,.@j+1) { set .@t, getcastledata(.Castles$[.@j],1); mes " ~ "+getcastlename(.Castles$[.@j])+": "+((.@t)?"^0055FF"+getguildname(.@t):"^777777unoccupied")+"^000000"; } if (.@i < 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 .@Day, select(" ~ "+implode(.Days$,": ~ "))-1; mes "[New Session]"; mes "Select a start time for ^0055FF"+.Days$[.@Day]+"^000000."; next; set .@menu$,""; for(set .@i,0; .@i<23; set .@i,.@i+1) set .@menu$, .@menu$+" ~ "+Add_Zero(.@i,1)+":"; set .@Start, select(.@menu$)-1; mes "[New Session]"; mes "Select an end time for ^0055FF"+.Days$[.@Day]+"^000000."; next; set .@menu$,""; for(set .@i,.@Start+1; .@i<24; set.@i,.@i+1) set .@menu$, .@menu$+" ~ "+Add_Zero(.@i,1)+":"; set .@End, select(.@menu$)+.@Start; for(set .@i,0; .@i<.Size; set .@i,.@i+4) if (.@Day == $WOE_CONTROL[.@i] && ((.@Start >= $WOE_CONTROL[.@i+1] && .@Start < $WOE_CONTROL[.@i+2]) || (.@End > $WOE_CONTROL[.@i+1] && .@End <= $WOE_CONTROL[.@i+2]) || (.@Start <= $WOE_CONTROL[.@i+1] && .@End >= $WOE_CONTROL[.@i+2]))) { mes "[New Session]"; mes "The chosen times overlap with an existing session."; next; set .@d,1; break; } if (.@d) { set .@d,0; break; } set .@Castle,0; while(1) { mes "[New Session]"; mes "^0055FF"+.Days$[.@Day]+" ("+Add_Zero(.@Start)+"-"+Add_Zero(.@End)+")^000000"; mes " > Castles:"; if (!.@Castle) mes " ~ ^777777(none selected)^000000"; else for(set .@i,0; .@i<30; set .@i,.@i+1) if (.@Castle&(1<<.@i)) mes " ~ "+getcastlename(.Castles$[.@i])+" ("+.Castles$[.@i]+")"; next; set .@menu$,((.@Castle)?" ~ ^FF0000Finished...^000000":"")+":"; for(set .@i,0; .@i<30; set .@i,.@i+1) set .@menu$, .@menu$+" ~ "+((.@Castle&(1<<.@i))?"^0055FF":"")+getcastlename(.Castles$[.@i])+" ("+.Castles$[.@i]+")^000000:"; set .@i, select(.@menu$)-1; if (.@i) set .@Castle, .@Castle^(1<<(.@i-1)); else { mes "[New Session]"; mes "Are you sure?"; next; switch(select(" ~ ^0055FFAdd session...^000000: ~ Continue selecting castles...: ~ ^777777Cancel^000000")) { case 1: for(set .@i,0; .@i<.Size; set .@i,.@i+4) if ((.@Day == $WOE_CONTROL[.@i] && .@End <= $WOE_CONTROL[.@i+1]) || .@Day < $WOE_CONTROL[.@i]) { set .@d,1; break; } if (!.@d) { set .@d,1; set .@i,.Size; } copyarray $WOE_CONTROL[.@i+4], $WOE_CONTROL[.@i], .Size-.@i; setarray $WOE_CONTROL[.@i], .@Day, .@Start, .@End, .@Castle; set .Size, getarraysize($WOE_CONTROL); case 3: mes "[New Session]"; mes ((.@d)?"Session added.":"Cancelled."); next; set .@d,1; case 2: break; } if (.@d) { set .@d,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 .@menu$,""; for(set .@i,0; .@i<.Size; set .@i,.@i+4) set .@menu$, .@menu$+" ~ "+.Days$[$WOE_CONTROL[.@i]]+" ("+Add_Zero($WOE_CONTROL[.@i+1],1)+"-"+Add_Zero($WOE_CONTROL[.@i+2],1)+"):"; set .@menu$, .@menu$+" ~ ^777777Cancel^000000"; set .@i, select(.@menu$)-1; if (.@i == (.Size/4)) break; mes "[Remove Session]"; mes "Delete ^0055FF"+.Days$[$WOE_CONTROL[.@i*4]]+"'s^000000 session?"; mes "This action cannot be undone."; next; set .@j, select(" ~ ^FF0000Delete session...^000000: ~ ^777777Cancel^000000"); mes "[Remove Session]"; if (.@j == 2) mes "Cancelled."; else { deletearray $WOE_CONTROL[.@i*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 .@i, select(" ~ ^0055FFReload settings...^000000: ~ ^777777Cancel^000000"); mes "[Reload Settings]"; if (.@i == 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 .@i, select(" ~ ^FF0000End session...^000000:"+((.Options&1)?" ~ ^FF0000End session without rewards...^000000":"")+": ~ ^777777Cancel^000000"); mes "[Force Agit End]"; if (.@i == 3) mes "Cancelled."; else { set .ForceEnd, .@i; donpcevent "WOE_CONTROL::OnWOEEnd"; mes "WOE session terminated."; } next; break; case 5: set .@d,1; break; } if (.@d) { set .@d,0; break; } } break; case 5: close; } } } p.s I replaced the folders with orig folders from rathena.
×
×
  • Create New...