Advertisement
johnlol

Guild Buffer

Jul 21st, 2023
989
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
VeriLog 16.56 KB | Gaming | 0 0
  1. /*
  2. ________________     ______            ________      
  3. ___    |_____  /________  /______      ___  __ \_____
  4. __  /| |  __  /_  __ \_  __ \  _ \     __  /_/ /  __ \
  5. _  ___ / /_/ / / /_/ /  /_/ /  __/     _  _, _// /_/ /
  6. /_/  |_\__,_/  \____//_.___/\___/      /_/ |_| \____/
  7.  
  8. */
  9.  
  10. //===== eAthena Script =======================================
  11. //= Heal Npc
  12. //===== By: ==================================================
  13. //= Lotsa People (1.x)
  14. //===== Current Version: =====================================
  15. //= 3.1
  16. //===== Compatible With: =====================================
  17. //= eAthena 0.1+;
  18. //===== Description: =========================================
  19. //= Healer NPC Which Heals For Free and offers Guild Buffs.
  20. //===== Additional Comments: =================================
  21. //= 3.1 By Melli, added Guild Buffs.
  22. //= 3.0 By massdriller, Changed and edited the script
  23. //= added other warp points of maps.
  24. //= 2.0 By Darkchild, Duplicates And Changed A Bit
  25. //= you can replace this script file by heal_payment.txt
  26. //= if you want that players have to pay their healings.
  27. //============================================================
  28.  
  29. prontera,160,187,5  script  Healer#h1-1::Healer 971,{
  30. //celestiaj,102,77,5    script  Healer#h1-1::Healer 971,{
  31. emotion e_luv;
  32.  
  33.     while (getbrokenid(1)) {
  34.         repair(1);
  35.         set .@i, .@i +1;
  36.     }
  37.     if (.@i) dispbottom .@i + " items repaired.";
  38.    
  39.     sc_end sc_stone;
  40.     sc_end sc_freeze;
  41.     sc_end sc_sleep;
  42.     sc_end sc_curse;
  43.     sc_end sc_silence;
  44.     sc_end sc_confusion;
  45.     sc_end sc_blind;
  46.     sc_end sc_bleeding;
  47.     sc_end sc_decreaseagi;
  48.     sc_end sc_poison;
  49.     sc_end sc_hallucination;
  50.     sc_end sc_stripweapon;
  51.     sc_end sc_striparmor;
  52.     sc_end sc_striphelm;
  53.     sc_end sc_stripshield;
  54.     sc_end sc_changeundead;
  55.     sc_end sc_orcish;
  56.     sc_end sc_berserk;
  57.     sc_end sc_ske;
  58.     sc_end sc_swoo;
  59.     sc_end sc_ska;
  60.     sc_end sc_lexaeterna;
  61.     sc_end sc_venombleed;
  62.     sc_end sc_dpoison;
  63.     sc_end sc_burning;
  64.     skilleffect 34,0; sc_start SC_BLESSING,240000,10;
  65.     skilleffect 29,0; sc_start SC_INCREASEAGI,240000,10;
  66. if($woe_on==1){
  67.     percentheal 100,100;
  68.     end;
  69. }
  70. if(getcharid(2)==0){
  71.     percentheal 100,100;
  72.     end;
  73. }
  74. set y, 0;
  75. goto L_guildassumptio;
  76. end;
  77.  
  78. L_guildassumptio:
  79. if ($guildassumptio[y]==getcharid(2)) goto L_buffassumptio;
  80. if (y>=getarraysize($guildassumptio)){
  81.     set y, 0;
  82.     goto L_guildmagnificat;
  83.     }
  84. if (y<=getarraysize($guildassumptio)) set y,y+1;
  85. goto L_guildassumptio;
  86. end;
  87.  
  88. L_buffassumptio:
  89. skilleffect 361,0; sc_start SC_ASSUMPTIO,100000,5;
  90. set y, 0;
  91. goto L_guildmagnificat;
  92. end;
  93.  
  94. L_guildmagnificat:
  95. if ($guildmagnificat[y]==getcharid(2)) goto L_buffmagnificat;
  96. if (y>=getarraysize($guildmagnificat)){
  97.     set y, 0;
  98.     goto L_guildangelus;
  99.     }
  100. if (y<=getarraysize($guildmagnificat)) set y,y+1;
  101. goto L_guildmagnificat;
  102. end;
  103.  
  104. L_buffmagnificat:
  105. skilleffect 74,0; sc_start SC_MAGNIFICAT,90000,5;
  106. set y, 0;
  107. goto L_guildangelus;
  108. end;
  109.  
  110. L_guildangelus:
  111. if ($guildangelus[y]==getcharid(2)) goto L_buffangelus;
  112. if (y>=getarraysize($guildangelus)){
  113.     set y, 0;
  114.     goto L_guildgloria;
  115.     }
  116. if (y<=getarraysize($guildangelus)) set y,y+1;
  117. goto L_guildangelus;
  118. end;
  119.  
  120. L_buffangelus:
  121. skilleffect 33,0; sc_start SC_ANGELUS,300000,10;
  122. set y,0;
  123. goto L_guildgloria;
  124. end;
  125.  
  126. L_guildgloria:
  127. if ($guildgloria[y]==getcharid(2)) goto L_buffgloria;
  128. if (y>=getarraysize($guildgloria)){
  129.     set y, 0;
  130.     goto L_guildimpositio;
  131.     }
  132. if (y<=getarraysize($guildgloria)) set y,y+1;
  133. goto L_guildgloria;
  134. end;
  135.  
  136. L_buffgloria:
  137. skilleffect 75,0; sc_start SC_GLORIA,30000,5;
  138. set y,0;
  139. goto L_guildimpositio;
  140. end;
  141.  
  142. L_guildimpositio:
  143. if ($guildimpositio[y]==getcharid(2)) goto L_buffimpositio;
  144. if (y>=getarraysize($guildimpositio)){
  145.     set y, 0;
  146.     goto L_guildspirit;
  147.     }
  148. if (y<=getarraysize($guildimpositio)) set y,y+1;
  149. goto L_guildimpositio;
  150. end;
  151.  
  152. L_buffimpositio:
  153. skilleffect 66,0; sc_start SC_IMPOSITIO,60000,5;
  154. set y,0;
  155. goto L_guildspirit;
  156. end;
  157.  
  158. L_guildspirit:
  159. if ($guildspirit[y]==getcharid(2)) goto L_buffspirit;
  160. if (y>=getarraysize($guildspirit)){
  161.     set y, 0;
  162.     goto L_heal;
  163.     }
  164. if (y<=getarraysize($guildspirit)) set y,y+1;
  165. goto L_guildspirit;
  166. end;
  167.  
  168. L_buffspirit:
  169. set y,0;
  170. percentheal 100,100;
  171. switch( Class ) {
  172.                 case Job_Star_Gladiator:
  173.                 case Job_Star_Gladiator2:
  174.                     set .@skill_id, 448; break;
  175.                 case Job_SuperNovice:
  176.                     set .@skill_id, 451; break;
  177.                 case Job_Soul_Linker:
  178.                     set .@skill_id, 461; break;
  179.                 case Job_Novice_High:
  180.                 case Job_Swordman_High:
  181.                 case Job_Mage_High:
  182.                 case Job_Archer_High:
  183.                 case Job_Acolyte_High:
  184.                 case Job_Merchant_High:
  185.                 case Job_Thief_High:
  186.                     set .@skill_id, 494; break;
  187.             default:
  188.                 switch( BaseJob ) {
  189.                 case Job_Alchemist:    set .@skill_id, 445; break;
  190.                 case Job_Monk:        set .@skill_id, 447; break;
  191.                 case Job_Sage:        set .@skill_id, 449; break;
  192.                 case Job_Crusader:    set .@skill_id, 450; break;
  193.                 case Job_Knight:    set .@skill_id, 452; break;
  194.                 case Job_Wizard:    set .@skill_id, 453; break;
  195.                 case Job_Priest:    set .@skill_id, 454; break;
  196.                 case Job_Bard:
  197.                 case Job_Dancer:    set .@skill_id, 455; break;
  198.                 case Job_Rogue:        set .@skill_id, 456; break;
  199.                 case Job_Assassin:    set .@skill_id, 457; break;
  200.                 case Job_Blacksmith:    set .@skill_id, 458; break;
  201.                 case Job_Hunter:    set .@skill_id, 460; break;
  202.             }
  203.         break;
  204.         }
  205.         if (.@skill_id) {
  206.             sc_start4 SC_SPIRIT,350000,5,.@skill_id,0,0;        
  207.             specialeffect2 503;
  208.             dispbottom "You has been Soul Linked.";
  209.         }
  210. goto L_heal;
  211. end;
  212.  
  213. L_heal:
  214. percentheal 100,100;
  215. end;
  216. }
  217. morocc,153,97,3 duplicate(Healer)   Healer#h1-2 971
  218. ayothaya,216,169,4  duplicate(Healer)   Healer#h1-3 971
  219. geffen,123,62,1 duplicate(Healer)   Healer#h1-4 971
  220. umbala,87,160,5 duplicate(Healer)   Healer#h1-5 971
  221. payon,168,226,5 duplicate(Healer)   Healer#h1-6 971
  222. alberta,31,229,1    duplicate(Healer)   Healer#h1-7 971
  223. alberta,122,59,4    duplicate(Healer)   Healer#h2-7 971
  224. aldebaran,133,116,5 duplicate(Healer)   Healer#h1-8 971
  225. izlude,125,148,5    duplicate(Healer)   Healer#h1-9 971
  226. xmas,155,137,5  duplicate(Healer)   Healer#h1-10    971
  227. comodo,209,146,4    duplicate(Healer)   Healer#h1-11    971
  228. amatsu,102,152,5    duplicate(Healer)   Healer#h1-12    971
  229. gonryun,166,122,4   duplicate(Healer)   Healer#h1-13    971
  230. yuno,153,174,6  duplicate(Healer)   Healer#h1-14    971
  231. niflheim,188,180,5  duplicate(Healer)   Healer#h1-15    971
  232. louyang,221,106,4   duplicate(Healer)   Healer#h1-16    971
  233. rachel,130,116,4    duplicate(Healer)   Healer#h1-17    971
  234. veins,215,127,4 duplicate(Healer)   Healer#h1-18    971
  235. moscovia,216,185,6  duplicate(Healer)   Healer#h1-19    971
  236. lighthalzen,161,94,4    duplicate(Healer)   Healer#h1-20    971
  237. hugel,98,149,3  duplicate(Healer)   Healer#h1-21    971
  238. mid_camp,223,241,4  duplicate(Healer)   Healer#h1-22    971
  239. splendide,196,88,4  duplicate(Healer)   Healer#h1-23    971
  240. manuk,279,224,4 duplicate(Healer)   Healer#h1-24    971
  241. brasilis,193,220,4  duplicate(Healer)   Healer#h1-25    971
  242. bat_room,150,150,4  duplicate(Healer)   Healer#battle   971
  243. dicastes01,198,195,4    duplicate(Healer)   Healer#dicaste  971
  244. einbech,83,101,4    duplicate(Healer)   Healer#einbech  971
  245. jawaii,209,297,4    duplicate(Healer)   Healer#jawaii   971
  246.  
  247. //===== Guild Buffs ==========================================
  248.  
  249. sec_in02.gat,139,174,2  script  Guild Buffs 936,{
  250.  
  251.     mes "[Guild Buffs]";
  252.     if(getcharid(2)==0){
  253.         mes "I'm sorry, I can only help you, if you're in a guild.";
  254.         close;
  255.     }
  256.     mes "Hello, I offer buffs for guilds.";
  257.     mes "Please select the buff you want to buy for your guild.";
  258.     mes "The buffs you bought will be permanently available for your guild.";
  259.     next;
  260.     mes "[Guild Buffs]";
  261.     mes "Guild Leaders can remove buffs by selecting to buy them and then confirming.";
  262.     next;
  263.     switch(select("^696969Assumptio^000000:^6A5ACDMagnificat^000000:^FF8C00Angelus^000000:^2E8B57Gloria^000000:^FFD700Impositio Manus^000000:^4B0082Spirits^000000")){
  264.    
  265.         case 1:
  266.             set buff$, "Assumptio Level 5";
  267.             set price, 180000000;
  268.             set buffon$, "assu";
  269.             goto L_selectassumptio;
  270.            
  271.         case 2:
  272.             set buff$, "Magnificat Level 5";
  273.             set price, 130000000;
  274.             set buffon$, "magni";
  275.             goto L_selectmagnificat;
  276.            
  277.         case 3:
  278.             set buff$, "Angelus Level 10";
  279.             set price, 110000000;
  280.             set buffon$, "angelus";
  281.             goto L_selectangelus;
  282.            
  283.         case 4:
  284.             set buff$, "Gloria Level 5";
  285.             set price, 100000000;
  286.             set buffon$, "gloria";
  287.             goto L_selectgloria;
  288.            
  289.         case 5:
  290.             set buff$, "Impositio Manus Level 5";
  291.             set price, 150000000;
  292.             set buffon$, "impo";
  293.             goto L_selectimpositio;
  294.            
  295.         case 6:
  296.             set buff$, "Spirits Level 4 (excluding Rebirth Spirit and Soul Linker Spirit)";
  297.             set price, 250000000;
  298.             set buffon$, "spirit";
  299.             goto L_selectspirit;
  300.     }
  301. L_buffselect:
  302.     mes "[Guild Buffs]";
  303.     mes "So, you want to buy ^0000FF" + buff$ + "^000000 for ^00FF00" + price + "^000000 Zeny?";
  304.     next;
  305.     switch(select("Yes, please:No, thank you")){
  306.        
  307.         case 1:
  308.             if(zeny<price) goto L_nobuffs;
  309.             set zeny, zeny-price;
  310.             if (buffon$=="assu"){
  311.                 set z, getarraysize($guildassumptio);
  312.                 set $guildassumptio[z+1], getcharid(2);
  313.                 goto L_buffbought;
  314.             }
  315.             if (buffon$=="magni"){
  316.                 set z, getarraysize($guildmagnificat);
  317.                 set $guildmagnificat[z+1], getcharid(2);
  318.                 goto L_buffbought;
  319.             }
  320.             if (buffon$=="angelus"){
  321.                 set z, getarraysize($guildangelus);
  322.                 set $guildangelus[z+1], getcharid(2);
  323.                 goto L_buffbought;
  324.             }
  325.             if (buffon$=="gloria"){
  326.                 set z, getarraysize($guildgloria);
  327.                 set $guildgloria[z+1], getcharid(2);
  328.                 goto L_buffbought;
  329.             }
  330.             if (buffon$=="impo"){
  331.                 set z, getarraysize($guildimpositio);
  332.                 set $guildimpositio[z+1], getcharid(2);
  333.                 goto L_buffbought;
  334.             }
  335.             if (buffon$=="spirit"){
  336.                 set z, getarraysize($guildspirit);
  337.                 set $guildspirit[z+1], getcharid(2);
  338.                 goto L_buffbought;
  339.             }
  340.        
  341.         case 2:
  342.             mes "[Guild Buffs]";
  343.             mes "As you wish.";
  344.             close;
  345.         }
  346.     L_buffbought:
  347.         mes "[Guild Buffs]";
  348.         mes "Transaction complete, the buff is now available for your guild.";
  349.         close;
  350.     L_nobuffs:
  351.         mes "[Guild Buffs]";
  352.         mes "I'm sorry, you don't have enough money.";
  353.         close;
  354.    
  355. L_selectassumptio:
  356. if ($guildassumptio[y]==getcharid(2)) goto L_available;
  357. if (y>=getarraysize($guildassumptio)){
  358.     set y, 0;
  359.     goto L_buffselect;
  360.     }
  361. if (y<=getarraysize($guildassumptio)) set y,y+1;
  362. goto L_selectassumptio;
  363. end;
  364.  
  365. L_selectimpositio:
  366. if ($guildimpositio[y]==getcharid(2)) goto L_available;
  367. if (y>=getarraysize($guildimpositio)){
  368.     set y, 0;
  369.     goto L_buffselect;
  370.     }
  371. if (y<=getarraysize($guildimpositio)) set y,y+1;
  372. goto L_selectimpositio;
  373. end;
  374.  
  375. L_selectspirit:
  376. if ($guildspirit[y]==getcharid(2)) goto L_available;
  377. if (y>=getarraysize($guildspirit)){
  378.     set y, 0;
  379.     goto L_buffselect;
  380.     }
  381. if (y<=getarraysize($guildspirit)) set y,y+1;
  382. goto L_selectspirit;
  383. end;
  384.  
  385. L_selectmagnificat:
  386. if ($guildmagnificat[y]==getcharid(2)) goto L_available;
  387. if (y>=getarraysize($guildmagnificat)){
  388.     set y, 0;
  389.     goto L_buffselect;
  390.     }
  391. if (y<=getarraysize($guildmagnificat)) set y,y+1;
  392. goto L_selectmagnificat;
  393. end;
  394.  
  395. L_selectangelus:
  396. if ($guildangelus[y]==getcharid(2)) goto L_available;
  397. if (y>=getarraysize($guildangelus)){
  398.     set y, 0;
  399.     goto L_buffselect;
  400.     }
  401. if (y<=getarraysize($guildangelus)) set y,y+1;
  402. goto L_selectangelus;
  403. end;
  404.  
  405. L_selectgloria:
  406. if ($guildgloria[y]==getcharid(2)) goto L_available;
  407. if (y>=getarraysize($guildgloria)){
  408.     set y, 0;
  409.     goto L_buffselect;
  410.     }
  411. if (y<=getarraysize($guildgloria)) set y,y+1;
  412. goto L_selectgloria;
  413. end;
  414.  
  415. L_available:
  416.     mes "[Guild Buffs]";
  417.     mes "You already bought ^0000FF" + buff$ + "^000000.";
  418.     if(getguildmasterid(getcharid(2))==getcharid(0)) {
  419.         mes "Do you want to remove it?";
  420.         next;
  421.         switch(select("No:Yes")){
  422.             Case 1:
  423.            
  424.             close;
  425.            
  426.             Case 2:
  427.            
  428.             mes "^FF0000Keep in mind that you won't get any refund!^000000";
  429.             mes "So, are you sure you want to take out that action?";
  430.             next;
  431.             switch(select("No:Yes")) {
  432.                
  433.                 Case 1:
  434.                
  435.                 close;
  436.                
  437.                 Case 2:
  438.                
  439.                     if (buffon$=="assu"){
  440.                         set $guildassumptio[y], 0;
  441.                         goto L_buffdeleted;
  442.                     }
  443.                     if (buffon$=="magni"){
  444.                         set $guildmagnificat[y], 0;
  445.                         goto L_buffdeleted;
  446.                     }
  447.                     if (buffon$=="angelus"){
  448.                         set $guildangelus[y], 0;
  449.                         goto L_buffdeleted;
  450.                     }
  451.                     if (buffon$=="gloria"){
  452.                         set $guildgloria[y], 0;
  453.                         goto L_buffdeleted;
  454.                     }
  455.                     if (buffon$=="impo"){
  456.                         set $guildimpositio[y], 0;
  457.                         goto L_buffdeleted;
  458.                     }
  459.                     if (buffon$=="spirit"){
  460.                         set $guildspirit[y], 0;
  461.                         goto L_buffdeleted;
  462.                     }
  463.             }
  464.         }
  465.     close;
  466.     }
  467.    
  468.     L_buffdeleted:
  469.         mes "[Guild Buffs]";
  470.         mes "Transaction completed. ^FF0000" + buff$ + "^000000 has been deleted from your Guildbuffs.";
  471.         close;
  472. }
  473. //===== GM Buffer ============================================
  474. //= GMs simply have to whisper the word "buff" to
  475. //= "NPC:Buff" to receive several buffs for one
  476. //= hour and full heal.
  477. //= If the invoking character is not a GM, nothing will happen.
  478. //= To add more buffs, see db/const.txt and search for SC_.
  479. //============================================================
  480. /*
  481. -   script  Buff    -1,{
  482. OnWhisperGlobal:
  483.     if(@whispervar0$=="buff") {
  484.         if(getgmlevel()>=40){
  485.             sc_start 21,3600000,10;
  486.             sc_start 22,3600000,10;
  487.             sc_start 23,3600000,10;
  488.             sc_start 27,3600000,10;
  489.             sc_start 29,3600000,100;
  490.             sc_start 30,3600000,100;
  491.             sc_start 32,3600000,100;
  492.             sc_start 35,3600000,10;
  493.             sc_start 40,3600000,10;
  494.             sc_start 41,3600000,10;
  495.             sc_start 43,3600000,10;
  496.             sc_start 44,3600000,10;
  497.             sc_start 46,3600000,10;
  498.             sc_start 49,3600000,10;
  499.             sc_start 58,3600000,10;
  500.             sc_start 60,3600000,10;
  501.             sc_start 61,3600000,10;
  502.             sc_start 62,3600000,10;
  503.             sc_start 72,3600000,10;
  504.             sc_start 73,3600000,10;
  505.             sc_start 74,3600000,10;
  506.             sc_start 75,3600000,10;
  507.             sc_start 76,3600000,10;
  508.             sc_start 77,3600000,10;
  509.             sc_start 86,3600000,10;
  510.             sc_start 92,3600000,10;
  511.             sc_start 108,3600000,10;
  512.             sc_start 109,3600000,10;
  513.             sc_start 110,3600000,10;
  514.             sc_start 113,3600000,10;
  515.             sc_start 115,3600000,10;
  516.             sc_start 120,3600000,10;
  517.             sc_start 121,3600000,10;
  518.             sc_start 123,3600000,100;
  519.             sc_start 125,3600000,100;
  520.             sc_start 147,3600000,10;
  521.             sc_start 148,3600000,10;
  522.             sc_start 149,3600000,10;
  523.             sc_start 150,3600000,10;
  524.             sc_start 154,3600000,10;
  525.             sc_start 156,3600000,100;
  526.             sc_start 267,3600000,100;
  527.             percentheal 100,100;
  528.             end;
  529.         }
  530.         end;
  531.     }
  532.     end;
  533. }
  534. */
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement