Jump to content

Trndsttr

Members
  • Posts

    31
  • Joined

  • Last visited

Profile Information

  • Gender
    Female
  • Location
    Trend City
  • Server
    Trndsttr Ragnarok
  • Github: trndsttr

Recent Profile Visitors

1404 profile views

Trndsttr's Achievements

Poring

Poring (1/15)

0

Reputation

  1. Hi, I have added a V4P on my Ordinary FluxCP, Now i applied a Flux Theme and then suddenly the link to v4p doesnt direct there which supposed to give voting links. How to fix or transfer the added v4p on my theme?
  2. I don't know which is the error here. I have tested this and it seems that on this specific line error occurs. See File Attached for Screenshot. //===================== BTS ===================================================== prontera.gat,105,91,6 script Legendary Glorious Set 811,{ if(bry_bry >= 1) goto L_taposme; if(hen_hen >= 1) goto L_taposna; if(hen_hen < 1) mes "[ Legendary Glorious Set ]"; mes "I will foretell you about Breaking the Seal Quest"; mes "I am the guardian of the seal, break it and recieve my treasures."; next; mes "[ Legendary Glorious Set ]"; mes "These are what I need"; mes "100 Pieces of Ancient Lips"; mes "25 Pieces of Peridot"; mes "25 Pieces of Biotite"; next; mes "20 Pieces of Young Twig"; mes "20 Pieces of Mother's Nightmare"; mes "15 Pieces of Matchstick"; mes "200 Pieces of Hand of God"; mes "100 Pieces of Cursed Seal"; next; mes "So, are you up to my quest dear child?"; menu "Yes!.",-, "No, I'm sorry.",L_later; mes "[ Legendary Glorious Set ]"; mes "Are the items ready? Let me check."; next; if(countitem(1054) < 100 || countitem(7289) < 25 || countitem(7297) < 25 || countitem(7018) < 20 ||countitem(7020) < 20 ||countitem(7035) < 15 || countitem(1009) < 200 || countitem(7442) < 100) goto L_later2; delitem 1054,100; delitem 7289,25; delitem 7297,25; delitem 7018,20; delitem 7020,20; delitem 7035,15; delitem 1009,200; delitem 7442,100; mes "[ Legendary Glorious Set ]"; mes "Another brave one succeded."; set ron_ron,1; next; switch (select("No Problem")) { case 1: // Freebies set .@gamble1,rand(1,500); if ((.@gamble1 > 200) && (.@gamble1 < 205)) { set .@gamble2,rand(1,10); if ((.@gamble2 > 0) && (.@gamble2 < 3)) set .@item,29326; // Angeling Coin else if ((.@gamble2 > 2) && (.@gamble2 < 5)) set .@item,7227; // TCG else if ((.@gamble2 > 4) && (.@gamble2 < 7)) set .@item,29331; // Event Coin else if ((.@gamble2 > 6) && (.@gamble2 < 9)) set .@item,14003; // Elite Siege Box else if ((.@gamble2 > 8) && (.@gamble2 < 11)) set .@item,12534; // YGG Seed Box } else if ((.@gamble1 > 0) && (.@gamble1 < 201)) set .@item,29326; // Angeling Coin else if ((.@gamble1 > 204) && (.@gamble1 < 301)) set .@item,7227; // TCG else if ((.@gamble1 > 300) && (.@gamble1 < 401)) set .@item,29331; // Event Coin else if ((.@gamble1 > 401) && (.@gamble1 < 481)) set .@item,14003; // Elite Siege Box else if ((.@gamble1 > 480) && (.@gamble1 < 501)) set .@item,12534; // YGG Seed Box break; } getitem .@item,1; mes "[ Legendary Glorious Set ]"; mes "Ah, you have out done your self!"; mes "Thank you for your aid."; mes "Now start your journey to find my Nephews who hold the Glorious Set Quest"; announce "Wow! The Seal has been annihilated by "+strcharinfo(0)+" He has just broken the seal and will start the quest of Valkyrie!","0x33FF66"; close2; end; L_taposna: mes "[ Legendary Glorious Set ]"; mes "Go out and search the Fields of Payon the Fields of Geffen and the Towns of Lighthalzen and Comodo for the Valkyrie Equipments"; close; L_taposme: mes "[ Legendary Glorious Set ]"; mes "You've already surpassed this quest and there is no point in doing it again."; close; L_later: mes "[ Legendary Glorious Set ]"; mes "Well too bad"; mes "Child, I don't like to call you a coward, but you are."; close; L_later2: mes "[ Legendary Glorious Set ]"; mes "*piff*"; mes "You lack some items."; mes "I do not accept cowardice, come back to me when you're brave enough."; close; } pay_fild10.gat,182,157,5 script Lost Traveler Ibiza 900,{ if(bry_bry >= 1) goto L_udone; if(kim_kim >= 1) goto L_tapospopo; if(ron_ron >= 1) goto continueq; if(ron_ron < 1) { mes "[ Lost Traveler Ibiza ]"; mes "Are you the delivery boy of Pizza Hut?"; mes "If not go away I don't need you!"; close; } continueq: mes "[ Lost Traveler Ibiza ]"; mes "Oh Grasya Santisimo!!"; mes "You have spoken to Uncle Legendary Glorious Set!?"; next; mes "[ Lost Traveler Ibiza ]"; mes "By the way I am Lost Traveler Ibiza of Payon the Crafter of the Glorious Armor"; mes "Would you like to possess it?"; menu "Yes, I deserve it!",-,"No, I'm not good enough.",L_ayaw; next; mes "[ Lost Traveler Ibiza ]"; mes "This Great Armor is very complicated, it needs very rare materials to craft it. If you really want to possess it gather these items for me"; next; mes "100 Three-Headed Dragon's head"; mes "100 TCG"; mes "1 Chain Mail[1]"; mes "100 Treasure Box"; next; mes "[ Lost Traveler Ibiza ]"; mes "I will be waiting for you chosen one!"; if(countitem(7443) < 100 || countitem(7227) < 100 || countitem(7444) < 100 || countitem(2315) < 1) goto koolang; if(countitem(7443) >= 100 || countitem(7227) >= 100 || countitem(7444) >= 100 || countitem(2315) >= 1) goto kontinueq; close; L_ayaw: mes "[ Lost Traveler Ibiza ]"; mes "Wacha Wachi Wacho... Go! Shoooo"; mes "Just speak to me if you want it already"; close; koolang: next; mes "[ Lost Traveler Ibiza ]"; mes "As I said, one missing material and all the others go to waste"; close; kontinueq: next; mes "[ Lost Traveler Ibiza ]"; mes "Very well done my friend you have finished the quest and acquired the Glorious Armor."; delitem 7443,100; delitem 7227,100; delitem 7444,100; delitem 2315,1; next; getitem 2394,1; set kim_kim,1; next; mes "[ Lost Traveler Ibiza ]"; mes "Good Job! Enjoy your precious item."; mes "Now, go ahead and seek my Brothers and Cousins to finish the quest"; mes "And when you gain the Glorious Set speak to King Bryan"; mes "If you have no clue about their location, my brothers and cousins are scattered around Rune-Midgard and King Bryan is in Valkyrie"; announce "Wow!"+strcharinfo(0)+" has just acquired the mystical Glorious Armor!",8; close; L_tapospopo: mes "[ Lost Traveler Ibiza ]"; mes "As I said, complete the Glorious Set Quest"; mes "And then speak to King Bryan"; close; L_udone: mes "[ Lost Traveler Ibiza ]"; mes "This quest, once done there is no more repeating"; close; } gef_fild07.gat,185,249,5 script Markus 932,{ if(bry_bry >=1) goto L_bulmadone; if(jhe_jhe >=1) goto L_bulmatapos; if(ron_ron >=1) goto B_ulma; if(ron_ron < 1) { mes "[ Markus ]"; mes "I am sight seeing, don't disturb me"; mes "Go far far away from me!!"; close; } B_ulma: mes "[ Markus ]"; mes "Oh, you know my Uncle?"; mes "Well, nice to meet you. I'm Markus"; mes "I craft the 1st Glorious Ring"; mes "Would you like me to craft the said ring for you?"; menu "Okay",-,"Nope",M_ofo; next; mes "[ Markus ]"; mes "The Glorious Ring is a very difficult item to craft and the materials are rare. Well if you're sure you want to make it.."; mes "Then these are the items I need."; next; mes "50 Fire Dragon Scale"; mes "15 Angeling Coin"; mes "1 Buckler[1]"; mes "100 Treasure Box"; next; if(bulma >= 1 || countitem(7451) < 50 || countitem(29327) < 15 || countitem(2104) < 1 || countitem(7444) < 100) goto K_ulangot; if(bulma >= 1 || countitem(7451) >= 50 || countitem(29327) >= 15 || countitem(2104) >= 1 || countitem(7444) >= 100) goto K_umpleto; close; M_ofo: mes "[ Markus ]"; mes "Okay, talk to me later."; close; K_ulangot: mes "[ Markus ]"; mes "You don't have the items!"; close; K_umpleto: mes "[ Markus ]"; mes "Wow, thanks!"; delitem 7451,50; delitem 29327,15; delitem 2104,1; delitem 7444,100; getitem 2772,1; next; mes "[ Markus ]"; mes "Nicely done isn't? Enjoy the Ring!"; mes "So now, continue to search for my friends."; mes "And when you gain the Glorious Quest Set speak to King Bryan"; mes "My brothers and cousins are scattered around Rune-Midgard and King Bryan is in Valkyrie!"; announce "Wow! "+strcharinfo(0)+" has just acquired the mystical Glorious Ring.",8; set King Markus_jhe,1; close; L_bulmatapos: mes "[ Markus ]"; mes "Complete the Glorious Quest Set and speak to King Bryan"; close; L_bulmadone: mes "[ Markus ]"; mes "Dude, you can only do this quest once!"; close; } lighthalzen,189,297,5 script Prince James 904,{ if(bry_bry >=1) goto L_chichix; if(fra_fra >=1) goto L_chichi; if(ron_ron >= 1) goto tsitsi; if(ron_ron < 1) { mes "[ Prince James ]"; mes "I miss the Queen Donna"; mes "I wish I could see her again"; close; } tsitsi: mes "[ Prince James ]"; mes "You have spoken to my great Uncle Legendary Glorious Set?"; mes "I am Prince James, the crafter of Glorious Shoes"; mes "Would you like me to craft you the shoes?"; next; menu "Sure",-,"Maybe Later",L_basho; next; mes "[ Prince James ]"; mes "The shoe is quite brittle."; mes "So it needs some items to harness it."; mes "I require you to give me these items"; next; mes "20 Skeletal Armor Piece"; mes "500 Event Coins"; mes "1 Boots[1]"; mes "100 Treasure Box"; next; if(countitem(7450) < 20 || countitem(29331) < 500 || countitem(7444) < 100 || countitem(2406) < 1) goto M_wala; if(countitem(7450) >= 20 || countitem(29331) >= 500 || countitem(7444) >= 100 || countitem(2406) >= 1) goto M_eron; mes "[ Prince James ]"; mes "Hurry up! I have something to do."; close; L_basho: mes "[ Prince James ]"; mes "Talk to me when you want it already."; close; M_wala: mes "[ Prince James ]"; mes "You lack some few items."; close; M_eron: mes "[ Prince James ]"; mes "Oh thank you!"; delitem 7450,20; delitem 29331,500; delitem 2406,1; delitem 7444,100; getitem 2444,1; set fra_fra,1; next; mes "[ Prince James ]"; mes "Good one boy! Enjoy the shoes"; mes "And continue the holy Glorious Quest Set"; mes "And when you gain the Glorious Quest Set speak to King Bryan"; mes "If you have no clue about their location, my brothers and cousins are scattered around Rune-Midgard and King Bryan is in Valkyrie"; announce "Wow! "+strcharinfo(0)+" has just acquired the mystical Glorious Shoes.",8; close; L_chichi: mes "[ Prince James ]"; mes "Search my cousins and after that, find King Bryan!"; close; L_chichix: mes "[ Prince James ]"; mes "Nice to meet you again brave warrior. How is life treating you with your new godly equips?"; close; } comodo.gat,172,229,5 script Hunter Mike 731,{ if(bry_bry >=1) goto L_puten; if(jmk_jmk >=1) goto L_buten; if(ron_ron >=1) goto M_buten; if(ron_ron < 1) { mes "[ Hunter Mike ]"; mes "Hi?."; mes "Now fly, you noob!"; close; } M_buten: mes "[ Hunter Mike ]"; mes "So you know my uncle Legendary Glorious Set? Wow that's great!"; mes "I can make the Glorious Muffler for you!"; mes "You surely want it noob?"; menu "Yeye",-,"Nevermind, thanks.",karpenter; next; mes "[ Hunter Mike ]"; mes "Oh, holy! Give me these items right away!"; next; mes "50 Matchstick"; mes "15 Fire Dragon Scale"; mes "1 Manteau[1]"; mes "100 Treasure Box"; next; mes "[ Hunter Mike ]"; mes "Don't miss your chance, I will be waiting for you."; if (countitem(7035) < 50 || countitem(7451) < 15 || countitem(2506) < 1 || countitem(7444) < 100) goto Kewlung; if (countitem(7035) >= 50 || countitem(7451) >= 7451 || countitem(2506) >= 1 || countitem(7444) >= 100) goto Kempleto; close; karpenter: next; mes "[ Hunter Mike ]"; mes "Huhu *sob*! You've wasted my time! Get lost noob!"; close; Kewlung: next; mes "[ Hunter Mike ]"; mes "Incomplete items, noob!"; close; Kempleto: next; mes "[ Hunter Mike ]"; mes "I see, you're a trustworthy one."; delitem 7444,100; delitem 2506,1; delitem 7451,15; delitem 7035,50; getitem 2524,1; set jmk_jmk,1; next; mes "[ Hunter Mike ]"; mes "Rawr! Take this robe and continue the Glorious Quest Set,"; mes "And when you gain the Glorious Quest Set speak to King Bryan."; mes "If you have no clue about their location, my brothers and cousins are scattered around Rune-Midgard and King Bryan is in Valkyrie"; announce "Wow! "+strcharinfo(0)+" has just acquired the mystical Glorious Muffler.",8; close; L_buten: mes "[ Hunter Mike ]"; mes "Finish my Uncle's quest and speak to King Bryan at the Valkyrie"; close; L_puten: mes "[ Hunter Mike ]"; mes "Wow, you're one of the Mega-Warrior! How is life treating you my friend?"; close; } valkyrie,49,49,5 script King Bryan 733,{ mes "[ King Bryan ]"; mes "Hello there child, I am King Bryan."; next; if(bry_bry >= 1) goto L_kalbo; if(countitem(2549) < 1 || countitem(2444) < 1 || countitem(2394) < 1 || countitem(2772) < 1) goto King Bryan; mes "[ King Bryan ]"; mes "Good you have the Glorious Quest Set if you must know I am the crafter of the Last Piece of Glorious Ring and Neo Valkyrie Shield."; next; if(jmk_jmk >= 1) goto King Bryanquest; if(jmk_jmk < 1) goto King Bryan; King Bryan: mes "[ King Bryan ]"; mes "I see, You really have spoken to my brothers."; mes "Very well then!"; next; mes "[ King Bryan ]"; mes "By the way I am King Bryan of the Glorious and you already know what I make."; mes "Do you desire to have the last quest Neo Valkyrie Shield?"; menu "Yes",-,"No",L_nono; next; mes "[ King Bryan ]"; mes "The Great Neo Valkyrie Shield is named after King Neo the Odin's trustee"; mes "Steed, is the most powerful shield in the land"; mes "Gather these items so I may craft it"; next; mes "300 Handcuffs"; mes "150 TCG"; mes "10 Matchstick"; mes "100 Gold"; next; mes "[ King Bryan ]"; mes "I will be waiting for you great one."; if(countitem(7345) < 300 || countitem(7227) < 150 || countitem(7035) < 10 || countitem(969) < 100) goto kikiki; if(countitem(7345) >= 300 || countitem(7227) >= 150 || countitem(7035) >= 10 || countitem(969) >= 100) goto killhim; close; L_nono: mes "[ King Bryan ]"; mes "Go away! If you don't want it. You're wasting my time already."; mes "Just speak to me if you're ready."; close; kikiki: next; mes "[ King Bryan ]"; mes "You lack of items, complete it!"; close; killhim: next; mes "[ King Bryan ]"; mes "Very well done child."; mes "You are very good!"; delitem 7345,300; delitem 7227,150; delitem 969,100; delitem 7035,10; getitem2 2137,1,1,@ref,0,254,0,getcharid(0)&0xffff,(getcharid(0)>>16)&0xffff; set bry_bry,1; next; mes "[ King Bryan ]"; mes "As for my excellency, take care of that Sleipnir"; mes "You are now a Mega-Warrior of Trndsttr Ragnarok Online"; mes "Go wild and free, you noble man"; announce "Raise the Roof! "+strcharinfo(0)+" has just become the Mega-Warrior of Trndsttr RO!",8; close; L_kalbo: mes "[ King Bryan ]"; mes "You have already gained Neo Valkyrie Shield"; mes "How dare you speak to me again!? Now, I order you to go back to Prontera!"; next; percentheal -100,0; warp "prontera.gat",0,0; close; mes "[ King Bryan ]"; mes "Oh my bad, I see you are just another newbie."; mes "Go fly away"; close; }
  3. Any Available Auto @agitstart script? Since the one i've posted is not working o__O
  4. Anyone can provide Ep7's NPCs also including the Monster's Spawn Place?
  5. Can anyone make this script run every 2100H-2200H Every Day? Example Monday - Payon Guild 1 Tuesday - Prontera Guild 1 Wed - Geffen Guild 1 Thur - Alde Guild 1 Fri - Payon Guild 1 Sat - Prontera Guild 1 Sunday - Geffen Guild 1 // Toasty's Page: http://alice.toastofdoom.net/ROScripts/WoeInfo/woeinfo_122.php // To generate script: // https://rathena.org/board/topic/57377-dead-link-toastys-woe-controller/?hl=%2Bwoe+%2Bcontroller+%2Btoasty // //====================================================================================================== //= Toasty's WoE Controller (formerly WoE Info Banner) //===== By: ============================================================================================ //= ToastOfDoom (aka: iHeart) //===== Current Version: =============================================================================== //= 1.22 //===== Description: =================================================================================== //= A WoE Controller function which controls castle based WoE by utilising npc events. //= Includes a NPC that provides information on the next WoE session //= //= This script is kinda @reloadscript/@loadnpc safe, provided that someone clicks the NPCs afterwards //= to start the OnInit function. That said..it is recommended that you don't use @reloadscript/@loadnpc //= but reset your server. //===== Changelog: ===================================================================================== //= 1.22 //= - Fixed an issue regarding the controller getting confused when using @reloadscript/loadnpc while //= WoE was still active. (thanks to annie for pointing out) //= 1.21 //= - Fixed a misspelt variable name (thanks to rahuldev345 for pointing out) //= 1.20 //= - Project renamed to 'Toasty's WoE Controller'. The script originally was only used to display WoE //= times then I 1st wrote it 3yrs ago and I feel it's purpose is more to control WoE these days. So //= name change to better reflect purpose. //= - Added support for novice WoE. Region teleport goes to the Novice Warper NPC (default in prontera) //= Change position in .region_maps, .region_x, .region_y if needed. //= - Region warp now only displays regions that have castles used at least once. (eg. If you don't //= configure any castles for Payon region, payon will not show up) //= - Optimised WoE Active/Inactive map notifier. Old method used too many loops for something that //= can happen alot. //= - Adjusted menus to be abit more friendly. 'next's will always display before 'menu's //= - Fixed bug with WoE autostarting when only configured for 2 sessions in one day //= - Added some nifty code that prevents catastrophic failure of the script if you try to run a trunk //= version on a stable server (ie. if you do, it will show an error message, but script will still //= run perfectly fine - check out WoEToggler function for those that want to peek at it =P) //= 1.11 //= - Fixed timer glitch when players only configured sessions for one day of the week //= - Adjusted timer to show remaining time more accurately //= - Modified .num_woes calculation due to bug regarding 0's being counted as unset values in arrays //= 1.10 //= - Expanded script to allow castle based configuration //= - Moved away from portal based woe control. Now using donpcevents to OnAgitEnd/2 events. Provided //= castles are linked to the main agit commands in this manner, they will be controllable using this //= script. //= - Added an onLoadMap WoE available notifier. Can be disabled by setting .notify_woe to 0 in the //= CONFIG section. //= - Did some funky color coding. //= - Added Coordinate based warping per region (see .region_x & .region_y in the CONSTANTS section) //= 1.02 //= - Added delwaitingroom to banner npc to prevent memory leaks from bug #2325 //= - To reduce spamming of waitingroom packets to players banner NPC only now updates when the banner //= text changes. Thus min time between updates is now 1sec regardless of setting. //= - Added setting for rate which banner time is updated (.banner_refresh_rate) in the CONFIG section. //= - Added agitstart2/end2 to provide WoE2 support (Hope it works //= 1.01 //= - Hardcoded in refresh value for banner npc instead of getting it from config from WoEInfoBase. Had //= issues starting the script after @reloadscript/@loadnpc //====================================================================================================== - script WoEInfoBase -1,{ OnStartMenu: if(.init == 0) donpcevent strnpcinfo(3)+"::OnInit"; OnStartMenu2: mes "The " + ((.state)?"^00DD00current":"^DD0000next") + "^000000 WoE session is: "; mes " "; mes "Day: ^0000DD" + .daysOfWeek$[.woe_day[.woe_index]]; mes "^000000Start time: ^00DD00" + .woe_0_str$[.woe_index]; mes "^000000End time: ^DD0000" + .woe_1_str$[.woe_index]; mes "^000000Region:"; set .@state_strs$, ".woe_state_str_" + .woe_state[.woe_index] + "$"; for(set .@i, 0; .@i < .num_regions; set .@i, .@i + 1) { set .@output$, getd(.@state_strs$ + "[" + .@i + "]"); if(.@output$ != "") mes "^000000- ^0000DD" + .@output$; } next; if(getgmlevel() >= .gm_access) select( "Warp to Castle Grounds", "View Castle Owners", "View all WoE times", ((!.state)?"Start next WoE":"End current WoE"), ((.state)?"":"Skip next WoE session") ); else select( "Warp to Castle Grounds", "View Castle Owners", "View all WoE times"); switch(@menu) { case 1: //warp mes "Which region would you like to warp to?"; next; select(.region_warp$[.woe_state[.woe_index]]); if(@menu < 1 || @menu > .num_regions) close; close2; warp .region_maps$[@menu - 1], .region_x[@menu - 1], .region_y[@menu - 1]; end; case 2: //view set .@woe_state_array$, ".woe_state_" + .woe_state[.woe_index]; for(set .@i, 0; .@i < .num_regions; set .@i, .@i + 1) { set .@k, 0; set .@castles$, ".castles_" + .regions$[.@i] + "$"; set .@castle_check, getd(.@woe_state_array$ + "[" + .@i + "]"); while(.@castle_check && .@k < .num_castles[.@i]) { if(.@castle_check & (1 << .@k)) { set .@map$, getd(.@castles$+"["+.@k+"]"); if (GetCastleData(.@map$,1)) { dispbottom "The [" + GetCastleName(.@map$) + "] castle of the [" + .region_names$[.@i] + "] region is currently held by the [" + GetGuildName(GetCastleData(.@map$,1)) + "] guild."; } else { dispbottom "The [" + GetCastleName(.@map$) + "] castle of the [" + .region_names$[.@i] + "] region is currently unoccupied."; } set .@castle_check, .@castle_check - (1 << .@k); } set .@k, .@k + 1; } } break; case 3: //woe times for(set .@i, 0; .@i < .num_woes; set .@i, .@i + 1) { dispbottom "- " + .daysOfWeek$[.woe_day[.@i]] + " " + .woe_0_str$[.@i] + "-" + .woe_1_str$[.@i]; set .@woe_state_str_array$, ".woe_state_str_" + .woe_state[.@i] + "$"; for(set .@k, 0; .@k < .num_regions; set .@k, .@k + 1) { set .@output$, getd(.@woe_state_str_array$ + "[" + .@k + "]"); if(.@output$ != "") dispbottom " " + .@output$; } } break; case 4: //start next; if(getgmlevel() <.gm_access) close; mes "^FF0000Are you sure you want to " + ((!.state)?"start the next WoE session?":"end the current WoE session?"); next; if(select("Yes:No") == 2) break; set .remainTime, 0; //might not work sometimes...you have like a 500ms window out of 505ms i guess.. sleep2 .timer_refresh_rate; //wait abit so the menu doesn't screw up (how long it takes for the timer to update) break; case 5: //skip next; if(getgmlevel() <.gm_access || .state) close; mes "^FF0000Are you sure you want to skip the next WoE session^000000"; next; if(select("Yes:No") == 2) break; if(.state) { //you really can't do this with woe active next; mes "Sorry, in the time you took making your decision, WoE started"; mes "Please either manually end it first or wait"; break; } set .woe_index, (.woe_index + 1) % .num_woes; donpcevent strnpcinfo(3)+"::OnUpdateCountTick"; sleep2 .timer_refresh_rate; break; default: close; } goto OnStartMenu2; OnInit: //-----------------------------------------------------------------------------------------// //CONFIG START // //-----------------------------------------------------------------------------------------// set .gm_access, 60; //WoE timings needs to be ordered ascendingly unless you want to do weird //stuff like skip a region every other week or so... //Also times can't overlap. Uses second of day(gettimetick(1)) for timing // eg 1am -> 3600, 2:30pm -> 52200, midnight -> 86400 (anything past that doesn't work) //Note: woe_0 is start times, woe_1 is end times. Ignore how it's called but // don't change it either since it's dynamically used // Also..woe has to end on the same day it starts (it's easier that way..) setarray .woe_day[0], 0, 0, 1, 2, 3, 4, 5, 6, 6; setarray .woe_0[0], 54000,68400,68400,68400,68400,68400,68400,54000,68400; setarray .woe_1[0], 57600,72000,72000,72000,72000,72000,72000,57600,72000; setarray .woe_state[0], 0, 1, 1, 1, 1, 1, 1, 0, 1; //WoE state settings. Every WoE session can be defined as a particular state of castle configuration. //.woe_state_#[%] = $ // # - state number // % - region number // $ - binary representation of castles that are active for that region in that state ( // (ie. 0 is no castles, 5 is castle 0 and 2 (2^0 + 2^2 = 5)) setarray .woe_state_0[0],8,0,0,0,0,0,0; setarray .woe_state_1[0],2,4,0,8,3,2,0; //Setting for if script handles WoE controller function. Disable agit_controller.txt if you are using this. //For if you want to use something else to handle your woe stuff but only this script //to show info (1 - on, 0 - off...duh) set .active_woe, 1; //WoE inactive on map notifier. Basically notifies player if the castle they are entering is //WoE active or not set .notify_woe, 1; //-----------------------------------------------------------------------------------------// //CONFIG END // //-----------------------------------------------------------------------------------------// //-----------------------------------------------------------------------------------------// //CONSTANTS START - Don't touch this unless you know what you are doing // //-----------------------------------------------------------------------------------------// //castle maps by region setarray .castles_prtg$[0],"prtg_cas01","prtg_cas02","prtg_cas03","prtg_cas04","prtg_cas05"; setarray .castles_payg$[0],"payg_cas01","payg_cas02","payg_cas03","payg_cas04","payg_cas05"; setarray .castles_gefg$[0],"gefg_cas01","gefg_cas02","gefg_cas03","gefg_cas04","gefg_cas05"; setarray .castles_aldeg$[0],"aldeg_cas01","aldeg_cas02","aldeg_cas03","aldeg_cas04","aldeg_cas05"; setarray .castles_arug$[0],"arug_cas01","arug_cas02","arug_cas03","arug_cas04","arug_cas05"; setarray .castles_schg$[0],"schg_cas01","schg_cas02","schg_cas03","schg_cas04","schg_cas05"; setarray .castles_novi$[0],"nguild_alde","nguild_gef","nguild_pay","nguild_prt"; //woe kill functions for each castle setarray .woe_kill_prtg$[0],"Agit#prtg_cas01::OnAgitEnd","Agit#prtg_cas02::OnAgitEnd","Agit#prtg_cas03::OnAgitEnd","Agit#prtg_cas04::OnAgitEnd","Agit#prtg_cas05::OnAgitEnd"; setarray .woe_kill_payg$[0],"Agit#payg_cas01::OnAgitEnd","Agit#payg_cas02::OnAgitEnd","Agit#payg_cas03::OnAgitEnd","Agit#payg_cas04::OnAgitEnd","Agit#payg_cas05::OnAgitEnd"; setarray .woe_kill_gefg$[0],"Agit#gefg_cas01::OnAgitEnd","Agit#gefg_cas02::OnAgitEnd","Agit#gefg_cas03::OnAgitEnd","Agit#gefg_cas04::OnAgitEnd","Agit#gefg_cas05::OnAgitEnd"; setarray .woe_kill_aldeg$[0],"Agit#aldeg_cas01::OnAgitEnd","Agit#aldeg_cas02::OnAgitEnd","Agit#aldeg_cas03::OnAgitEnd","Agit#aldeg_cas04::OnAgitEnd","Agit#aldeg_cas05::OnAgitEnd"; setarray .woe_kill_arug$[0],"Manager#aru01_02::OnAgitEnd2","Manager#aru02_02::OnAgitEnd2","Manager#aru03_02::OnAgitEnd2","Manager#aru04_02::OnAgitEnd2","Manager#aru05_02::OnAgitEnd2"; setarray .woe_kill_schg$[0],"Manager#sch01_02::OnAgitEnd2","Manager#sch02_02::OnAgitEnd2","Manager#sch03_02::OnAgitEnd2","Manager#sch04_02::OnAgitEnd2","Manager#sch05_02::OnAgitEnd2"; setarray .woe_kill_novi$[0],"Agit_N01::OnAgitEnd","Agit_N02::OnAgitEnd","Agit_N03::OnAgitEnd","Agit_N04::OnAgitEnd"; //region prefixs setarray .regions$[0],"prtg","payg","gefg","aldeg","arug","schg","novi"; //region info setarray .region_names$[0],"Prontera", "Payon", "Geffen", "Aldebaran", "Arunafeltz", "Schwarzwald", "Novice Castles"; setarray .region_maps$[0],"prt_gld", "pay_gld", "gef_fild13", "alde_gld", "aru_gld", "sch_gld", "prontera"; //coords to warp player to region (0 is random) setarray .region_x[0],0, 0, 0, 0, 0, 0, 148; setarray .region_y[0],0, 0, 0, 0, 0, 0, 163; setarray .waitMsg$[0], "WoE Starts: ", "WoE Ends: "; setarray .startMsg$[0], "WoE is Starting", "WoE is Ending"; set .ticks_in_day, 86400; //mmm...magic numbers setarray .daysOfWeek$[0], "Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"; set .timer_refresh_rate, 500; //how many ms per timer refresh...keep less than 1000 (in milliseconds) set .change_state_sleep, 3000; //how long to show "WoE is Start|End-ing" msg for in ms. (in milliseconds) //Make sure WoE sessions are longer than this xD set .banner_refresh_rate, 10; //how many seconds per banner refresh...keep 1 or above (in seconds) //-----------------------------------------------------------------------------------------// //CONSTANTS END // //-----------------------------------------------------------------------------------------// set .num_regions, getarraysize(.regions$); set .num_woes, getarraysize(.woe_1); //force WoE to end if active callfunc "WoEToggler", 0; for(set .@i, 0; .@i < .num_regions; set .@i, .@i + 1) { //count num castles per region set .num_castles[.@i], getarraysize(getd(".castles_" + .regions$[.@i] + "$")); } //convert timestamps to readable format for(set .@i, 0; .@i < .num_woes; set .@i, .@i + 1) { set .@hrs, .woe_0[.@i] / 3600; set .@mins, .woe_0[.@i] % 3600 / 60; set .@output$, ((.@hrs % 12)?.@hrs%12:12) + ":" + ((.@mins < 10)?"0"+.@mins:.@mins) + " " + ((.@hrs > 12)?"PM":"AM"); set .woe_0_str$[.@i], .@output$; set .@hrs, .woe_1[.@i] / 3600; set .@mins, .woe_1[.@i] % 3600 / 60; set .@output$, ((.@hrs % 12)?.@hrs%12:12) + ":" + ((.@mins < 10)?"0"+.@mins:.@mins) + " " + ((.@hrs > 12)?"PM":"AM"); set .woe_1_str$[.@i], .@output$; } //calc number of woe states and consolidate states to create list of castles used set .num_states, 0; while(getarraysize(getd(".woe_state_" + (.num_states)))) { set .@state$, ".woe_state_" + .num_states; set .@i, 0; while(.@i < getarraysize(getd(.@state$))) { set .castleUsage[.@i], .castleUsage[.@i] | getd(.@state$ + "[" + .@i + "]"); set .@i, .@i + 1; } set .num_states, .num_states + 1; } for(set .@i, 0; .@i < .num_states; set .@i, .@i + 1) { set .@woe_state_array$, ".woe_state_" + .@i; for(set .@k, 0; .@k < .num_regions; set .@k, .@k + 1) { if(.castleUsage[.@k] > 0) { set .@castles$, ".castles_" + .regions$[.@k] + "$"; set .@castle_check, getd(.@woe_state_array$ + "[" + .@k + "]"); if(.@castle_check == 0) { //region not in this state //region warp menu string set .region_warp$[.@i], .region_warp$[.@i] + "^DD0000" + .region_names$[.@k] + "^000000:"; continue; } else { if(.@castle_check >= ((1 << .num_castles[.@k]) - 1)) { //includes all castles...just list as region. setd(".woe_state_str_" + .@i + "$[" + .@k + "]", .region_names$[.@k]); //region warp menu string set .region_warp$[.@i], .region_warp$[.@i] + "^00DD00" + .region_names$[.@k] + "^000000:"; } else { set .@j, 0; set .@output$, ""; while(.@j < .num_castles[.@k]) { if(.@castle_check & (1 << .@j)) { set .@output$, .@output$ + GetCastleName(getd(.@castles$+"["+.@j+"]")); set .@castle_check, .@castle_check - (1 << .@j); if(.@castle_check) { if(.@output$ != "") set .@output$, .@output$ + ", "; } else break; } set .@j, .@j + 1; } setd(".woe_state_str_" + .@i + "$[" + .@k + "]", .region_names$[.@k] + " ("+ .@output$ + ")"); //region warp menu string set .region_warp$[.@i], .region_warp$[.@i] + "^00DD00" + .region_names$[.@k] + " ("+ .@output$ + ")^000000:"; } } } else { set .region_warp$[.@i], .region_warp$[.@i] + ":"; } } } donpcevent strnpcinfo(3)+"::OnFindCurIndex"; donpcevent strnpcinfo(3)+"::OnUpdateCountTick"; if(.active_woe) { if(.notify_woe) { //set mapflag for all castle maps for(set .@i, 0; .@i < .num_regions; set .@i, .@i + 1) { set .@region_array$, ".castles_" + .regions$[.@i] + "$"; for(set .@k, 0; .@k < .num_castles[.@i]; set .@k, .@k + 1) { setmapflag getd(.@region_array$ + "[" + .@k + "]"), mf_loadevent; setd(".loadmap_region_" + getd(.@region_array$ + "[" + .@k + "]"), .@i + 1); setd(".loadmap_castleIndex_" + getd(.@region_array$ + "[" + .@k + "]"), .@k); } } } //activates WoE if needed donpcevent strnpcinfo(3)+"::OnDoWoE"; } //flag that init occured set .init, 1; OnWoETimer: //timer stuff while (1) { set .remainTime, .count_tick - gettimetick(2); set .bannerTimer, .remainTime - (.remainTime % .banner_refresh_rate) + .banner_refresh_rate; set .min, .bannerTimer / 60; set .sec, .bannerTimer - .min * 60; set .hr, .min / 60; set .min, .min - .hr * 60; set .roomMsg$, .waitMsg$[.state] + .hr + ":" + ((.min < 10 )?"0":"") + .min + ":" + ((.sec < 10 )?"0":"") + .sec; sleep .timer_refresh_rate; if(.remainTime <= 0) { if(.active_woe) { donpcevent strnpcinfo(3)+"::OnDoWoE"; } set .roomMsg$, .startMsg$[.state]; set .woe_index, (.woe_index + .state) % .num_woes; //go to next index if needed set .state, (.state + 1) % 2; //flip state donpcevent strnpcinfo(3)+"::OnUpdateCountTick"; sleep .change_state_sleep; } } end; //obligatory end =D OnUpdateCountTick: set .count_tick, getd(".woe_" + .state + "[" + .woe_index + "]"); set .count_tick, gettimetick(2) + .count_tick - gettimetick(1) + (.woe_day[.woe_index] - gettime(4) + 7) % 7 * .ticks_in_day; if(gettimetick(2) > .count_tick) set .count_tick, .count_tick + 7 * .ticks_in_day; end; OnFindCurIndex: set .@cur_day, gettime(4); set .@cur_tick, gettimetick(1); set .woe_index, 0; set .state, 0; for(set .@i, 0; .@i < .num_woes; set .@i, .@i + 1) { if(.woe_day[.@i] < .@cur_day) continue; if(.woe_day[.@i] == .@cur_day) { if(.woe_0[.@i] >= .@cur_tick) { set .woe_index, .@i; set .state, 0; break; } if(.woe_1[.@i] >= .@cur_tick) { set .woe_index, .@i; set .state, 1; break; } } if(.woe_day[.@i] > .@cur_day) { set .woe_index, .@i; set .state, 0; break; } } end; //On map notifier //Comment out OnPCLoadMapEvent label if .notify_woe is disabled to prevent unnecessary triggering OnPCLoadMapEvent: if(.state && .notify_woe) { getmapxy(.@map$, .@x, .@y, 0); set .@region, getd(".loadmap_region_" + .@map$) - 1; if(.@region >= 0) { set .@castleIndex, getd(".loadmap_castleIndex_" + .@map$); if(getd(".woe_state_" + .woe_state[.woe_index] + "[" + .@region + "]") & 1 << .@castleIndex) dispbottom "The [" + GetCastleName(.@map$) + "] castle is available for conquering during this WoE session"; else dispbottom "The [" + GetCastleName(.@map$) + "] castle is NOT available for conquering during this WoE session"; } } end; //------------------------------------------------------------------------------ // WoE Controller Stuff Here //------------------------------------------------------------------------------ OnDoWoE: if((.state == 0 && .init) || (.state == 1 && !agitcheck())) { //starting callfunc "WoEToggler", 1; //kills WoE in all castles that shouldn't have WoE set .@woe_state_array$, ".woe_state_" + .woe_state[.woe_index]; for(set .@i, 0; .@i < .num_regions; set .@i, .@i + 1) { set .@castles$, ".castles_" + .regions$[.@i] + "$"; set .@castle_check, getd(.@woe_state_array$ + "[" + .@i + "]"); for(set .@k, 0; .@k < .num_castles[.@i]; set .@k, .@k + 1) { set .@map$, getd(.@castles$+"["+.@k+"]"); if((.@castle_check & (1 << .@k)) == 0) { donpcevent getd(".woe_kill_" + .regions$[.@i] + "$[" + .@k + "]"); } } } announce "The War Of Emperium has begun!",bc_all; donpcevent strnpcinfo(3)+"::OnDisplayOwners"; } else { //ending if(agitcheck()) { callfunc "WoEToggler", 0; announce "The War Of Emperium has ended!",bc_all; donpcevent strnpcinfo(3)+"::OnDisplayOwners"; } } end; OnDisplayOwners: //displays based on current region set .@woe_state_array$, ".woe_state_" + .woe_state[.woe_index]; for(set .@i, 0; .@i < .num_regions; set .@i, .@i + 1) { set .@k, 0; set .@castle_check, getd(.@woe_state_array$ + "[" + .@i + "]"); set .@castles$, ".castles_" + .regions$[.@i] + "$"; while(.@castle_check && .@k < .num_castles[.@i]) { if(.@castle_check & (1 << .@k)) { set .@map$, getd(.@castles$+"["+.@k+"]"); if (GetCastleData(.@map$,1)) { announce "The [" + GetCastleName(.@map$) + "] castle of the [" + .region_names$[.@i] + "] region is currently held by the [" + GetGuildName(GetCastleData(.@map$,1)) + "] guild.",bc_all; } else { announce "The [" + GetCastleName(.@map$) + "] castle of the [" + .region_names$[.@i] + "] region is currently unoccupied.",bc_all; } set .@castle_check, .@castle_check - (1 << .@k); } set .@k, .@k + 1; } } end; } //prontera,163,194,4 script WoE Info 837,{ prontera,111,86,4 script WoE Info 837,{ if(getwaitingroomstate(3, strnpcinfo(3)) == -1) donpcevent strnpcinfo(3)+"::OnInit"; doevent "WoEInfoBase::OnStartMenu"; end; OnInit: while (1) { //only updates if msg is different set .banner$, getwaitingroomstate(4, strnpcinfo(3)); if(getvariableofnpc(.roomMsg$, "WoEInfoBase") != .banner$) { delwaitingroom; waitingroom getvariableofnpc(.roomMsg$, "WoEInfoBase"), 0; } sleep 500; } end; } //zomg! it duplicates!! //prontera,156,196,6 duplicate(WoE Info) WoE Info#2winfo 837 //my addiiton //turbo_room,100,123,6 duplicate(WoE Info) WoE Info#2winfo_tur 837 //prontera,156,196,6 duplicate(WoE Info) WoE Info#2winfo_prt 837 //payon,118,238,6 duplicate(WoE Info) WoE Info#3winfo 837 //prontera,144,109,6 duplicate(WoE Info) WoE Info#4winfo 837 //prontera,270,219,4 duplicate(WoE Info) WoE Info#5winfo 837 //prontera,147,314,5 duplicate(WoE Info) WoE Info#6winfo 837 //prontera,29,212,5 duplicate(WoE Info) WoE Info#7winfo 837 //morocc,146,255,6 duplicate(WoE Info) WoE Info#8winfo 837 //morocc,148,114,6 duplicate(WoE Info) WoE Info#9winfo 837 //izlude,111,102,6 duplicate(WoE Info) WoE Info#10winfo 837 //amatsu,125,108,3 duplicate(WoE Info) WoE Info#11winfo 837 //alberta,63,247,3 duplicate(WoE Info) WoE Info#12winfo 837 //alberta,126,74,3 duplicate(WoE Info) WoE Info#13winfo 837 //geffen,124,40,3 duplicate(WoE Info) WoE Info#14winfo 837 //geffen,180,108,6 duplicate(WoE Info) WoE Info#15winfo 837 //hugel,87,151,6 duplicate(WoE Info) WoE Info#16winfo 837 //gonryun,159,144,4 duplicate(WoE Info) WoE Info#17winfo 837 //yuno,164,147,3 duplicate(WoE Info) WoE Info#18winfo 837 //my addiiton //prontera,111,86,4 duplicate(WoE Info) WoE Info#2winfo_tur 837 //prontera,156,196,6 duplicate(WoE Info) WoE Info#2winfo 837 payon,118,238,6 duplicate(WoE Info) WoE Info#3winfo 837 //prontera,144,109,6 duplicate(WoE Info) WoE Info#4winfo 837 //prontera,270,219,4 duplicate(WoE Info) WoE Info#5winfo 837 //prontera,147,314,5 duplicate(WoE Info) WoE Info#6winfo 837 //prontera,29,212,5 duplicate(WoE Info) WoE Info#7winfo 837 morocc,146,255,6 duplicate(WoE Info) WoE Info#8winfo 837 morocc,148,114,6 duplicate(WoE Info) WoE Info#9winfo 837 izlude,116,127,4 duplicate(WoE Info) WoE Info#10winfo 837 amatsu,125,108,3 duplicate(WoE Info) WoE Info#11winfo 837 alberta,63,247,3 duplicate(WoE Info) WoE Info#12winfo 837 alberta,126,74,3 duplicate(WoE Info) WoE Info#13winfo 837 geffen,120,29,3 duplicate(WoE Info) WoE Info#14winfo 837 geffen,180,108,6 duplicate(WoE Info) WoE Info#15winfo 837 hugel,87,151,6 duplicate(WoE Info) WoE Info#16winfo 837 gonryun,159,144,4 duplicate(WoE Info) WoE Info#17winfo 837 yuno,164,147,3 duplicate(WoE Info) WoE Info#18winfo 837 //--------------------------------------------------------------------------------------------------------------------- //These two functions handle WoE's activation/deactivation. Since stable does not have AgitStart2/AgitEnd2, //using the trunk version will result in catastrophic failure of the script. Double declaration of the following //functions fixes this (you will get warning messages though) function script WoEToggler { //<state> = 0|1 if(getarg(0)) { AgitStart; } else { AgitEnd; } return; } //if stable script will fail parsing this function, but the rest of the script will still be usable function script WoEToggler { //<state> = 0|1 if(getarg(0)) { AgitStart; AgitStart2; } else { AgitEnd; AgitEnd2; } return; }
  6. They are not replying right now. As i've checked the server's ram it doesnt even reach its half during massive lags. What script are you using for auto @agitstart at a exact time? I am using this script but it seems that it doesn't work - script dfhksdjhfkshf -1,{ OnHour2100: agitstart; announce "War of Emperium has Begun!", 0; end; OnHour2200: agitend; announce "War of Emperium has Ended!", 0; end; } As i've seen this in a one topic and this script is posted by AnnieRuRu
  7. Hi! I am using rAthena woe_controller the problem is, every time clash happens a massive lag occurs. I don't have any problem regarding the scripts. We even have a good VPS under GoManila 1024-SG but this lag is quiet unstoppable.
  8. Hello! I have a problem regarding switching items. Automatic Dropping of Weapon/Equipments from your inventory when you use to switch inside the woe and town. Is there anyone to fix this bug? I am using latest rathena and a 2013 Client.
×
×
  • Create New...