Jump to content

Holiness

Members
  • Content Count

    23
  • Joined

  • Last visited

Posts posted by Holiness


  1. In order to play this game you must insert 1 bronze coin..

    Once you insert it by clicking next, it will then ask you which direction you would want to move the claw.

    Back, Left, Right or Front.

    You can only  move the claw twice and then it will drop.
    then it will say "Here's your prize! Congratulations!" Or say that it has failed in obtaining a prize.
     

    also, there is a 1/50 chance in obtaining a free play upon failing


  2. Is it possible to create another mercenary guild? Currently there are only SPEAR_MERC_GUILD,SWORD_MERC_GUILD,ARCH_MERC_GUILD.

    I'd like to add DRAGON_MERC_GUILD. Would someone please be so good as to tell me how to do it? As far as I know, I have to edit mercenary.c, mercenary.h, script.c and...?


  3. So I was wondering, is it possible to create a script that uses almost the same dynamic of one player catching a pet? I mean:

    - Talk to npc

    - Pay some zeny

    - Slot machine (the one you see when catching a pet) appears

    If "SUCCESS" -> you'll get a prize.

    If "Failure" -> talk again to the npc.


    Not sure if it's possible, but would be awesome if it was.


  4. I would like to ask for an enchanter that enchants ONLY Armors, garments, shields and boots with:


    +1 Str, Agi, Int, Vit, Dex, Luk / + 1% ATK, MATK, ASPD, HP stones (30% chance of enchanting, 70% chance of failing)


     


    +2 Str, Agi, Int, Vit, Dex, Luk / + 2% ATK, MATK, ASPD, HP stones (20% chance of enchanting, 80% chance of failing)


     


    +3 Str, Agi, Int, Vit, Dex, Luk / + 3% ATK, MATK, ASPD, HP stones (10% chance of enchanting, 90% chance of failing)


    Other details:


    In order to enchant an item, it requires 250.000 Zeny and 3 Poring Coins.


    Once the item is enchanted, it cannot be enchanted again.


    The stone occupies the last slot of the item. ( [] [] [] -> [] <- even if it's not being used)


    PS: I might post my current enchanter if it would make this work easier!


    Thanks in advance!


  5. Oh, I have a cool idea about a similar event which I'd like Annie to make real!



    1. A portal appears in "mapname" at "X:XX" and remains open until the event ends.

    2. Once a player reaches the best Kill/Death ratio, a "[MvP]" fakename
    will appear before his name and he'll also turn red due to the Berserk
    effect.

    3. In order for another player to become the "[MvP]" and turn red, he
    must have the best Kill/Death ratio rather than just killing the
    "[MvP]".

    4. The "[MvP]" player will gain "X" zeny per second and "X" PvP Point(s) per minute.

    5. If the "[MvP]" player leaves the map, he'll return back to his normal
    status as long as he stays outside the area where the event is taking
    place. If he enters the event map again, he'll be considered as "[MvP]"
    as long as he's still the one with the best Kill/Death ratio.

    6. If a normal player kills the "[MvP]", he'll receive "X" PvP Point(s).

    7. The event ends after 40 mins. The winner is the one with the best ratio and gets "X" item(s).

    8. The portal disappears.

    9. The Kill/Death counter is reset.


    Is it clear enough? ><


  6. Hello,

     

    I'm currently using this script:

     

     

    prontlegend,195,210,6  script  [Rebirth] Rebirther  465,{

      function checkItem;      // check if player have all item required
    function colorItemrequired;  // color the text. Red : not enough item, green otherwise
    function deleteItem;    // delete all items required
    function displayItemneed;  // display all items need at start
    function getItemReward;    // give the items reward
    function weightreq;      // check if your current weight is highter than weight high novice


     .@eac = eaclass();
     if ( num_rebirth == .reset_max ) {
       mes "[Rebirther]";
       mes "You can start the Rebirth Process only "+ .reset_max +". times.";
       emotion e_gasp;
       close;
     }
     else if( NextJobExp || NextBaseExp || ( !( .@eac&EAJL_2 ) || !Upper ) ) {
       mes "[Rebirther]";
       mes "Your Base Level must be ^ff0000255^000000, while your Job Level ^ff0000120^000000.";
       close;
     }
     
     mes "[Rebirther]";
     mes "Welcome...";
     mes "I am the ^FF0000Rebirther^000000, what do you want me to do?";
     next;

     switch( select( "^777777~ Rebirth", "~ Information", "~ Nothing^000000" ) ) {
       case 1:
         mes "[Rebirther]";
         mes "You'll need the following items:";
         mes " ";
         displayItemneed();
         mes " ";
         mes "^ff0000You can get the 17Carat Diamond by using the Mining System^000000.";
         mes "Use @go Manuk and talk to the ^777777Miner Renter^000000.";
         next;
         weightreq();
         checkItem();
         deleteItem();
         break;
       case 2:
         mes "[Rebirther]";
         mes "You can only start the Rebirth Process ^ff0000"+ .reset_max +"^000000 times.";
         mes "^008800You have started it^000000 ^ff0000"+ num_rebirth +"^000000 ^008800time(s)^000000.";
         next;
         mes "[Rebirther]";
         mes "Whenever you complete a Rebirth Process, you get ^ff0000"+ .num_status +"^000000 Status Points and once you complete the ^ff000065th^000000 one, you obtain the awesome and legendary ^ff0000Dragon Set^000000.";
         mes "Only the best players can have it.";
         close;
       case 3:
         mes "[Rebirther]";
         mes "Bye ~";
         close;
     }
     num_rebirth += 1;
     if ( Upper ) {  // just in case the user change the setting...
       lastJob = roclass( .@eac&EAJ_UPPERMASK );
       jobchange Job_Novice_High;
     }
     else
       jobchange Job_Novice;
     resetlvl 1;
     if ( num_rebirth < .change_reward )
       StatusPoint = StatusPoint + .num_status * num_rebirth;
     else
       getItemReward();
     query_sql "insert into `rebirth_system` values ( "+ getcharid(3) +", '"+ escape_sql( strcharinfo(0) ) +"', '"+ num_rebirth +"', '"+ getcharip() +"' ) on duplicate key update `num_rebirth` = `num_rebirth` +1";
     announce "[Rebirth System]: "+ strcharinfo(0) +" has started the Rebirth Process number "+ num_rebirth +"!", 0;
     close;



    function checkItem {
     for ( ; .@i < .size_item; .@i += 2 )
       if ( countitem( .item_req[.@i] ) < .item_req[ .@i+1 ] + num_rebirth ) {
         mes "[Rebirther]";
         mes "You do not have enough "+ getitemname( .item_req[.@i] ) +". ^ff0000["+ countitem( .item_req[.@i] ) +"/"+ ( .item_req[ .@i+1 ] + num_rebirth ) +"]^000000";
         close;
       }
     if ( num_rebirth >= .change_reward )
       if ( .add_item_req[1] + num_rebirth - .change_reward > countitem( .add_item_req[0] ) ) {
         mes "[Rebirther]";
         mes "You do not have enough "+ getitemname( .add_item_req[0] ) +". ^ff0000["+ countitem( .add_item_req[0] ) +"/"+ ( .add_item_req[1] + num_rebirth - .change_reward ) +"]^000000";
         close;
       }
     return;
    }

    function colorItemrequired {
     if ( countitem( .item_req[ getarg(0) ] ) < .item_req[ getarg(0)+1 ] + num_rebirth ) return "^ff0000";
     return "^00ff00";
    }

    function deleteItem {
     for ( ; .@i < .size_item; .@i += 2 )
       delitem .item_req[.@i], ( .item_req[ .@i+1 ] + num_rebirth );
     if ( num_rebirth >= .change_reward )
       delitem .add_item_req[0], ( .add_item_req[1] + num_rebirth - .change_reward );
     return;
    }

    function displayItemneed {
     for ( ; .@i < .size_item; .@i += 2 )
       mes colorItemrequired( .@i ) +" - ["+ ( .item_req[ .@i+1 ] + num_rebirth ) +"] "+ getitemname( .item_req[.@i] );
     if ( num_rebirth >= .change_reward ) {
       if ( .add_item_req[1] + num_rebirth - .change_reward > countitem( .add_item_req[0] ) )
         .@color$ = "^ff0000";
       else
         .@color$ = "^00ff00";
       mes .@color$ +"- "+ ( .add_item_req[1] + ( num_rebirth - .change_reward ) ) +" "+ getitemname( .add_item_req[0] );
     }
     return;
    }

    function getItemReward {
     for ( ; .@i < .size_reward; .@i += 2 )
       getitem .reward[.@i], .reward[ .@i+1 ];
     return;
    }

    function weightreq {
     if ( Weight > 20000 ) {
       mes "[Rebirther]";
       mes "^ff0000You are carrying too many items. After rebirth, your weight will be very low and you might drop some items^ff0000.";
       close;
     }
     return;
    }

    OnInit:
     .reset_max = 65;    // how much reset max
     .change_reward = 64;  // after 30 rebirth, change reward
     .num_status = 50;    // + X number of status points

    // item required <item ID>, <number>
     setarray .item_req, 6024, 10,
               501, 5,
               502, 2,
               503, 3;
     .size_item = getarraysize( .item_req );

    // additionnal items after rebirth >> .change_reward
    // <item ID>, <number>
     setarray .add_item_req, 601, 1;

    // rewards <item ID>, <number>
     setarray .reward, 25256, 1, 25257, 1, 25259, 1, 25258, 1, 25260, 1, 25261, 1, 25262, 1;
     .size_reward = getarraysize( .reward );
     end;
    }


    I would like to let Ninja and Gunslinger use it, however it seems a little bit hard.
    I tried to add (Class == 24 && Class == 25) and it would work if it weren't for the fact that whenever I rebirth using a Ninja or a Gunslinger I get 8k points (approximately) instead of 50.

    Is there a solution?

    NOTE: The script is very useful and well organized. You can get it and use it according to your liking!


  7. Hello,

    I downloaded Euphy's WoE contoller, everything works fine except the fact that when I enter a castle, which should be considered "active", I'm said the castle is not, and I get warped out from there.

    Would you please help me solve this problem? Thanks very much!

    PS: I disabled the //== npcguildagit_controller.txt
    //== npcguild2agit_start_se.txt already

     

    //===== eAthena Script =======================================
    //= Euphy's WOE Controller
    //===== By: ==================================================
    //= Euphy
    //===== Current Version: =====================================
    //= 1.3a - eAthena
    //===== 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!
    //== npcguildagit_controller.txt
    //== npcguild2agit_start_se.txt
    //============================================================

    prontera,162,193,4  script  WoE Information  858,{ doevent "WOE_CONTROL::OnMenu"; end; OnAgitStart: while(agitcheck()) { misceffect 58; sleep 425; } end; }

    -  script  WOE_CONTROL  -1,{
    function Disp_Owner; function Add_Zero;

    OnInit:
    // --------------------------------------------------------------------------------------------------------------------------

     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 .ExitWarp,0;    // Warp all players from castles when WOE ends? (1:yes / 0:no)
     set .GMAccess,99;    // GM level required to access Session Manager (cannot be 0)
     setarray .Reward[0],14001,3,671,2,7539,30,7959,35,7251,1;  // Reward for all members of conquering guilds, per castle: <ID>,<Count>{,...} (0 to disable)

    // --------------------------------------------------------------------------------------------------------------------------
     set .Size, getarraysize($WOE_CONTROL);
     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],"aru01","aru02","aru03","aru04","aru05","sch01","sch02","sch03","sch04","sch05";
     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;
     if (!agitcheck() && !agitcheck2()) sleep 4000;
     set .Init,1;
    OnMinute00:
     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);
             else if (.AutoKick) removemapflag .Castles$[.@j], mf_loadevent;
             if (.ExitWarp) maprespawnguildid .Castles$[.@j],0,3; }
           if (.Reward[0] && .Active[0] && .ForceEnd != 2) callsub OnReward, .Active[0];
           deletearray .Active[0],2;
           if (.ForceEnd) { set .ForceEnd,0; end; }
           break; } }
     sleep 5;
     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 (.AutoKick) setmapflag .Castles$[.@j], mf_loadevent;
               if (.@j<20) {
                 donpcevent "Agit#"+.Castles$[.@j]+"::OnAgitEnd";
                 killmonster .Castles$[.@j], "Agit#"+.Castles$[.@j]+"::OnAgitBreak";
               } else {
                 donpcevent "Manager#"+.Castles$[.@j]+"_02::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:
     for(set .@i,0; .@i<30; set .@i,.@i+1)
       if (getarg(0)&(1<<.@i)) {
         set .@guild, getcastledata(.Castles$[.@i],1);
         if (.@guild) {
           deletearray .@acc[0], getarraysize(.@acc); deletearray .@char[0], getarraysize(.@char);
           query_sql("SELECT account_id,char_id FROM `guild_member` WHERE guild_id = '"+.@guild+"'", .@acc, .@char);
           for(set .@j,0; .@j<getarraysize(.@acc); set .@j,.@j+1)
             if (isloggedin(.@acc[.@j],.@char[.@j])) {
               for(set .@k,0; .@k<getarraysize(.Reward); set .@k,.@k+2)
                 getitem .Reward[.@k], .Reward[.@k+1], .@acc[.@j];
               message rid2name(.@acc[.@j]),"You have been rewarded for conquering "+getcastlename(.Castles$[.@i])+"."; }
           sleep 1; } }
     return;

    OnPCLoadMapEvent:
     if (!compare(strcharinfo(3),"g_cas")) end;
     sleep2 1000;
     message strcharinfo(0), getcastlename(strcharinfo(3))+" is inactive during this WOE session.";
     sleep2 5000;
     if (compare(strcharinfo(3),"g_cas")) warp "SavePoint",0,0;
     end;

    OnMenu:
    while(1) {
     mes "[WOE Information]";
     if (agitcheck() || agitcheck2()) {
       if (!.Size) 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(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 {
       set .@j,0; set .@k,0;
       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]) {
           set .@j, $WOE_CONTROL[.@i]; set .@k, $WOE_CONTROL[.@i+1]; break; }
       if (!.@j && !.@k) {
         set .@j, $WOE_CONTROL[0]; set .@k, $WOE_CONTROL[1]; }
       mes "The War of Emperium is ^777777inactive^000000.";
       if (.Size) {
         mes " ";
         mes "The next session will begin";
         mes "on ^0055FF"+.Days$[.@j]+"^000000 at "+Add_Zero(.@k)+"^000000."; } }
     next;
     switch(select(""+((.CastleWarp || .Active[1])?" ~ Warp to castles...":"")+": ~ Check schedule...: ~ View castle owners...:"+((getgmlevel()<.GMAccess || !getgmlevel())?"":" ~ Manage sessions...")+": ~ ^777777Cancel^000000")) {
       case 1:
         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)))?"^0055FF":"^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))?"^0055FF":"^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) {
           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 " ";
             sleep2 1; }
         } 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 .@menu$,"";
             for(set .@i,0; .@i<7; set .@i,.@i+1)
               set .@menu$, .@menu$+" ~ "+.Days$[.@i]+":";
             set .@Day, select(.@menu$)-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:"+((.Reward[0])?" ~ ^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; }
     }
    }

    alexandria,175,164,4  duplicate(WoE Information)  WoE Information#1winfo  858
    prontlegend,195,208,4  duplicate(WoE Information)  WoE Information#1winfo  858

×
×
  • Create New...

Important Information

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