Advertisement
johnlol

Guild Buffer2

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