pastebin - collaborative debugging tool
rathena.kpaste.net RSS


agit_controller_random.txt
Posted by Anonymous on Tue 9th Feb 2016 05:09
raw | new post

  1. // http://www.eathena.ws/board/index.php?showtopic=239081
  2. // The Lvl99 GM set how many castle will be a available, add and delete time
  3. // and the castle that going to be on is RANDOM, as in RANDOM (if its possible)
  4. // if it's one castle is on, it will pick 1 castle randomly...
  5. // and if its 2, it will pick 2 castle randomy... and so on...
  6. //
  7. // http://rathena.org/board/topic/56147-edit-random-woe-using-brianl-script/
  8. // I want to change the castle ownership.  Say prtg_cas01 is open and GuildA
  9. // takes it. Then next woe gefg_cas04 is open, the castle ownership will move
  10. // to gefg_cas04 and prtg_cas01 will be unoccupied.
  11. //
  12. // https://rathena.org/board/topic/104738-help-random-woe-castle-not-compatible-rathena/
  13. // --> updated warp names to match changes in https://github.com/rathena/rathena/commit/49459d342ec4e3b5d2ca8dbf85ab924ffa89faca
  14.  
  15. -       script  Agit_Event      -1,{
  16.         end;
  17.  
  18. OnClock2100:    //start time for Tues(2), Thurs(4)
  19. OnClock2300:    //end time for Tues(2), Thurs(4)
  20. OnClock1600:    //start time for Sat(6)
  21. OnClock1800:    //end time for Sat(6)
  22.  
  23. OnAgitInit:
  24.         set .@num_castles_open, 5; // the number of castles open each WoE
  25.         set .@transfer_ownership, 1; // transfer ownership to the next (random) castle?
  26.         setarray .maps$[0], "aldeg_cas01","aldeg_cas02","aldeg_cas03","aldeg_cas04","aldeg_cas05",
  27.                             "gefg_cas01","gefg_cas02","gefg_cas03","gefg_cas04","gefg_cas05",
  28.                             "payg_cas01","payg_cas02","payg_cas03","payg_cas04","payg_cas05",
  29.                             "prtg_cas01","prtg_cas02","prtg_cas03","prtg_cas04","prtg_cas05";
  30.        
  31.         // starting time checks
  32.         if((gettime(4)==2) && (gettime(3)>=21 && gettime(3)<23) ||
  33.            (gettime(4)==4) && (gettime(3)>=21 && gettime(3)<23) ||
  34.            (gettime(4)==6) && (gettime(3)>=16 && gettime(3)<18)) {
  35.                 if (!agitcheck()) {
  36.                         // close ALL castles
  37.                         disablenpc "aldeg-1_aldeg-1-1";  maprespawnguildid "aldeg_cas01",0,7;
  38.                         disablenpc "aldeg-2_aldeg-2-1";  maprespawnguildid "aldeg_cas02",0,7;
  39.                         disablenpc "aldeg-3_aldeg-3-1";  maprespawnguildid "aldeg_cas03",0,7;
  40.                         disablenpc "aldeg-4_aldeg-4-1";  maprespawnguildid "aldeg_cas04",0,7;
  41.                         disablenpc "aldeg-5_aldeg-5-1";  maprespawnguildid "aldeg_cas05",0,7;
  42.                         disablenpc "gef-g1-0_gefg-1-07";
  43.                         disablenpc "gef-g1-1_gefg-1-04"; maprespawnguildid "gefg_cas01",0,7;
  44.                         disablenpc "gef-g2_gefg-2-07";   maprespawnguildid "gefg_cas02",0,7;
  45.                         disablenpc "gef-g3-0_g-cas3-12";
  46.                         disablenpc "gef-g3-1_g-cas3-13";
  47.                         disablenpc "gef-g3-2_g-cas3-14";
  48.                         disablenpc "gef-g3-3_g-cas3-15"; maprespawnguildid "gefg_cas03",0,7;
  49.                         disablenpc "gef-g4_gefg-4-05";   maprespawnguildid "gefg_cas04",0,7;
  50.                         disablenpc "gef-5-0_gefg-5-04";
  51.                         disablenpc "gef-5-1_gefg-5-01";  maprespawnguildid "gefg_cas05",0,7;
  52.                         disablenpc "payg-1_payg-1-06";   maprespawnguildid "payg_cas01",0,7;
  53.                         disablenpc "payg-2_payg-2-02";   maprespawnguildid "payg_cas02",0,7;
  54.                         disablenpc "payg-3_payg-3-07";   maprespawnguildid "payg_cas03",0,7;
  55.                         disablenpc "payg-4_payg-4-01";   maprespawnguildid "payg_cas04",0,7;
  56.                         disablenpc "payg-5_payg-5-03";   maprespawnguildid "payg_cas05",0,7;
  57.                         disablenpc "prtg-1_prtg-1-01";   maprespawnguildid "prtg_cas01",0,7;
  58.                         disablenpc "prtg-2_prtg-2";      maprespawnguildid "prtg_cas02",0,7;
  59.                         disablenpc "prtg-3_prtg-3";      maprespawnguildid "prtg_cas03",0,7;
  60.                         disablenpc "prtg-4_prtg-4";      maprespawnguildid "prtg_cas04",0,7;
  61.                         disablenpc "prtg-5_prtg-5";      maprespawnguildid "prtg_cas05",0,7;
  62.                        
  63.                         // randomize castle order
  64.                         for( set .@i,1; .@i <= getarraysize(.maps$); set .@i,.@i+1 ) {
  65.                                 while( set(.@rand,rand(1,getarraysize(.maps$))) == getd(".@__tmp_"+.@rand) );
  66.                                 setd ".@__tmp_"+.@rand, set(.@array[.@i],.@rand);
  67.                         }
  68.                         // open castles
  69.                         announce (.@num_castles_open==1 ? "There is 1 castle" : ("There are "+.@num_castles_open+" castles")) + " open for WoE today:",bc_all|bc_woe;
  70.                         for( set .@i,1; .@i <= .@num_castles_open; set .@i,.@i+1 ) {
  71.                                 // transfer ownership? ...  only if there's a previous castle to transfer from!
  72.                                 if (.@transfer_ownership && getd("$castle_"+.@i+"$")!="")
  73.                                         callsub S_TransferOwnership, atoi(getd("$castle_"+.@i+"$")), .@array[.@i];
  74.                                 callsub S_OpenCastle, .@array[.@i];
  75.                         }
  76.                         AgitStart;
  77.                         announce "The War of Emperium has begun!",bc_all|bc_woe;
  78.                 }
  79.                 end;
  80.         }
  81.  
  82.         // end time checks
  83.         if ((gettime(4)==2) && (gettime(3)==23) ||
  84.             (gettime(4)==4) && (gettime(3)==23) ||
  85.             (gettime(4)==6) && (gettime(3)==18)) {
  86.                 if (agitcheck()) {
  87.                         AgitEnd;
  88.                         announce "The War of Emperium is over!",bc_all|bc_woe;
  89.                 }
  90.                 // open ALL castles
  91.                 enablenpc "aldeg-1_aldeg-1-1";  // aldeg_cas01
  92.                 enablenpc "aldeg-2_aldeg-2-1";  // aldeg_cas02
  93.                 enablenpc "aldeg-3_aldeg-3-1";  // aldeg_cas03
  94.                 enablenpc "aldeg-4_aldeg-4-1";  // aldeg_cas04
  95.                 enablenpc "aldeg-5_aldeg-5-1";  // aldeg_cas05
  96.                 enablenpc "gef-g1-0_gefg-1-07"; // gefg_cas01
  97.                 enablenpc "gef-g1-1_gefg-1-04"; // gefg_cas01
  98.                 enablenpc "gef-g2_gefg-2-07";   // gefg_cas02
  99.                 enablenpc "gef-g3-0_g-cas3-12"; // gefg_cas03
  100.                 enablenpc "gef-g3-1_g-cas3-13"; // gefg_cas03
  101.                 enablenpc "gef-g3-2_g-cas3-14"; // gefg_cas03
  102.                 enablenpc "gef-g3-3_g-cas3-15"; // gefg_cas03
  103.                 enablenpc "gef-g4_gefg-4-05";   // gefg_cas04
  104.                 enablenpc "gef-5-0_gefg-5-04";  // gefg_cas05
  105.                 enablenpc "gef-5-1_gefg-5-01";  // gefg_cas05
  106.                 enablenpc "payg-1_payg-1-06";   // payg_cas01
  107.                 enablenpc "payg-2_payg-2-02";   // payg_cas02
  108.                 enablenpc "payg-3_payg-3-07";   // payg_cas03
  109.                 enablenpc "payg-4_payg-4-01";   // payg_cas04
  110.                 enablenpc "payg-5_payg-5-03";   // payg_cas05
  111.                 enablenpc "prtg-1_prtg-1-01";   // prtg_cas01
  112.                 enablenpc "prtg-2_prtg-2";      // prtg_cas02
  113.                 enablenpc "prtg-3_prtg-3";      // prtg_cas03
  114.                 enablenpc "prtg-4_prtg-4";      // prtg_cas04
  115.                 enablenpc "prtg-5_prtg-5";      // prtg_cas05
  116.                 end;
  117.         }
  118.         end;
  119.  
  120. S_TransferOwnership:
  121. // getarg(0) = previous CastleID
  122. // getarg(1) = new CastleID (to transfer owner to)
  123.         if ( getcastledata(.maps$[getarg(0)],1) && getarg(0)!=getarg(1) ) {
  124.                 for (set .@i,1; .@i<=17; set .@i,.@i+1) {
  125.                         setcastledata .maps$[getarg(1)],.@i, getcastledata(.maps$[getarg(0)],.@i);
  126.                         setcastledata .maps$[getarg(0)],.@i, 0;
  127.                 }
  128.                 setd "$castle_"+.@i+"$", getarg(1);
  129.         }
  130.         return;
  131.  
  132. S_OpenCastle:
  133. // getarg(0) = CastleID in /db/castle_db.txt
  134.         switch( getarg(0) ) {
  135.                 case 0:  enablenpc "aldeg-1_aldeg-1-1";   break; // aldeg_cas01
  136.                 case 1:  enablenpc "aldeg-2_aldeg-2-1";   break; // aldeg_cas02
  137.                 case 2:  enablenpc "aldeg-3_aldeg-3-1";   break; // aldeg_cas03
  138.                 case 3:  enablenpc "aldeg-4_aldeg-4-1";   break; // aldeg_cas04
  139.                 case 4:  enablenpc "aldeg-5_aldeg-5-1";   break; // aldeg_cas05
  140.                 case 5:  enablenpc "gef-g1-0_gefg-1-07";
  141.                          enablenpc "gef-g1-1_gefg-1-04";  break; // gefg_cas01
  142.                 case 6:  enablenpc "gef-g2_gefg-2-07";    break; // gefg_cas02
  143.                 case 7:  enablenpc "gef-g3-0_g-cas3-12";
  144.                          enablenpc "gef-g3-1_g-cas3-13";
  145.                          enablenpc "gef-g3-2_g-cas3-14";
  146.                          enablenpc "gef-g3-3_g-cas3-15";  break; // gefg_cas03
  147.                 case 8:  enablenpc "gef-g4_gefg-4-05";    break; // gefg_cas04
  148.                 case 9:  enablenpc "gef-5-0_gefg-5-04";
  149.                          enablenpc "gef-5-1_gefg-5-01";   break; // gefg_cas05
  150.                 case 10: enablenpc "payg-1_payg-1-06";    break; // payg_cas01
  151.                 case 11: enablenpc "payg-2_payg-2-02";    break; // payg_cas02
  152.                 case 12: enablenpc "payg-3_payg-3-07";    break; // payg_cas03
  153.                 case 13: enablenpc "payg-4_payg-4-01";    break; // payg_cas04
  154.                 case 14: enablenpc "payg-5_payg-5-03";    break; // payg_cas05
  155.                 case 15: enablenpc "prtg-1_prtg-1-01";    break; // prtg_cas01
  156.                 case 16: enablenpc "prtg-2_prtg-2";       break; // prtg_cas02
  157.                 case 17: enablenpc "prtg-3_prtg-3";       break; // prtg_cas03
  158.                 case 18: enablenpc "prtg-4_prtg-4";       break; // prtg_cas04
  159.                 case 19: enablenpc "prtg-5_prtg-5";       break; // prtg_cas05
  160.         }
  161.         if (GetCastleData(.maps$[getarg(0)],1)) {
  162.                 announce "The [" + GetCastleName(.maps$[getarg(0)]) + "] castle is owned by the [" + GetGuildName(GetCastleData(.maps$[getarg(0)],1)) + "] guild.",bc_all|bc_woe;
  163.         } else {
  164.                 announce "The [" + GetCastleName(.maps$[getarg(0)]) + "] castle is currently unoccupied.",bc_all|bc_woe;
  165.         }
  166.         return;
  167. }

Submit a correction or amendment below (click here to make a fresh posting)
After submitting an amendment, you'll be able to view the differences between the old and new posts easily.

Syntax highlighting:

To highlight particular lines, prefix each line with {%HIGHLIGHT}




All content is user-submitted.
The administrators of this site (kpaste.net) are not responsible for their content.
Abuse reports should be emailed to us at