Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- ________________ ______ ________
- ___ |_____ /________ /______ ___ __ \_____
- __ /| | __ /_ __ \_ __ \ _ \ __ /_/ / __ \
- _ ___ / /_/ / / /_/ / /_/ / __/ _ _, _// /_/ /
- /_/ |_\__,_/ \____//_.___/\___/ /_/ |_| \____/
- */
- //===== eAthena Script =======================================
- //= Heal Npc
- //===== By: ==================================================
- //= Lotsa People (1.x)
- //===== Current Version: =====================================
- //= 3.1
- //===== Compatible With: =====================================
- //= eAthena 0.1+;
- //===== Description: =========================================
- //= Healer NPC Which Heals For Free and offers Guild Buffs.
- //===== Additional Comments: =================================
- //= 3.1 By Melli, added Guild Buffs.
- //= 3.0 By massdriller, Changed and edited the script
- //= added other warp points of maps.
- //= 2.0 By Darkchild, Duplicates And Changed A Bit
- //= you can replace this script file by heal_payment.txt
- //= if you want that players have to pay their healings.
- //============================================================
- prontera,160,187,5 script Healer#h1-1::Healer 971,{
- //celestiaj,102,77,5 script Healer#h1-1::Healer 971,{
- emotion e_luv;
- while (getbrokenid(1)) {
- repair(1);
- set .@i, .@i +1;
- }
- if (.@i) dispbottom .@i + " items repaired.";
- sc_end sc_stone;
- sc_end sc_freeze;
- sc_end sc_sleep;
- sc_end sc_curse;
- sc_end sc_silence;
- sc_end sc_confusion;
- sc_end sc_blind;
- sc_end sc_bleeding;
- sc_end sc_decreaseagi;
- sc_end sc_poison;
- sc_end sc_hallucination;
- sc_end sc_stripweapon;
- sc_end sc_striparmor;
- sc_end sc_striphelm;
- sc_end sc_stripshield;
- sc_end sc_changeundead;
- sc_end sc_orcish;
- sc_end sc_berserk;
- sc_end sc_ske;
- sc_end sc_swoo;
- sc_end sc_ska;
- sc_end sc_lexaeterna;
- sc_end sc_venombleed;
- sc_end sc_dpoison;
- sc_end sc_burning;
- skilleffect 34,0; sc_start SC_BLESSING,240000,10;
- skilleffect 29,0; sc_start SC_INCREASEAGI,240000,10;
- if($woe_on==1){
- percentheal 100,100;
- end;
- }
- if(getcharid(2)==0){
- percentheal 100,100;
- end;
- }
- set y, 0;
- goto L_guildassumptio;
- end;
- L_guildassumptio:
- if ($guildassumptio[y]==getcharid(2)) goto L_buffassumptio;
- if (y>=getarraysize($guildassumptio)){
- set y, 0;
- goto L_guildmagnificat;
- }
- if (y<=getarraysize($guildassumptio)) set y,y+1;
- goto L_guildassumptio;
- end;
- L_buffassumptio:
- skilleffect 361,0; sc_start SC_ASSUMPTIO,100000,5;
- set y, 0;
- goto L_guildmagnificat;
- end;
- L_guildmagnificat:
- if ($guildmagnificat[y]==getcharid(2)) goto L_buffmagnificat;
- if (y>=getarraysize($guildmagnificat)){
- set y, 0;
- goto L_guildangelus;
- }
- if (y<=getarraysize($guildmagnificat)) set y,y+1;
- goto L_guildmagnificat;
- end;
- L_buffmagnificat:
- skilleffect 74,0; sc_start SC_MAGNIFICAT,90000,5;
- set y, 0;
- goto L_guildangelus;
- end;
- L_guildangelus:
- if ($guildangelus[y]==getcharid(2)) goto L_buffangelus;
- if (y>=getarraysize($guildangelus)){
- set y, 0;
- goto L_guildgloria;
- }
- if (y<=getarraysize($guildangelus)) set y,y+1;
- goto L_guildangelus;
- end;
- L_buffangelus:
- skilleffect 33,0; sc_start SC_ANGELUS,300000,10;
- set y,0;
- goto L_guildgloria;
- end;
- L_guildgloria:
- if ($guildgloria[y]==getcharid(2)) goto L_buffgloria;
- if (y>=getarraysize($guildgloria)){
- set y, 0;
- goto L_guildimpositio;
- }
- if (y<=getarraysize($guildgloria)) set y,y+1;
- goto L_guildgloria;
- end;
- L_buffgloria:
- skilleffect 75,0; sc_start SC_GLORIA,30000,5;
- set y,0;
- goto L_guildimpositio;
- end;
- L_guildimpositio:
- if ($guildimpositio[y]==getcharid(2)) goto L_buffimpositio;
- if (y>=getarraysize($guildimpositio)){
- set y, 0;
- goto L_guildspirit;
- }
- if (y<=getarraysize($guildimpositio)) set y,y+1;
- goto L_guildimpositio;
- end;
- L_buffimpositio:
- skilleffect 66,0; sc_start SC_IMPOSITIO,60000,5;
- set y,0;
- goto L_guildspirit;
- end;
- L_guildspirit:
- if ($guildspirit[y]==getcharid(2)) goto L_buffspirit;
- if (y>=getarraysize($guildspirit)){
- set y, 0;
- goto L_heal;
- }
- if (y<=getarraysize($guildspirit)) set y,y+1;
- goto L_guildspirit;
- end;
- L_buffspirit:
- set y,0;
- percentheal 100,100;
- switch( Class ) {
- case Job_Star_Gladiator:
- case Job_Star_Gladiator2:
- set .@skill_id, 448; break;
- case Job_SuperNovice:
- set .@skill_id, 451; break;
- case Job_Soul_Linker:
- set .@skill_id, 461; break;
- case Job_Novice_High:
- case Job_Swordman_High:
- case Job_Mage_High:
- case Job_Archer_High:
- case Job_Acolyte_High:
- case Job_Merchant_High:
- case Job_Thief_High:
- set .@skill_id, 494; break;
- default:
- switch( BaseJob ) {
- case Job_Alchemist: set .@skill_id, 445; break;
- case Job_Monk: set .@skill_id, 447; break;
- case Job_Sage: set .@skill_id, 449; break;
- case Job_Crusader: set .@skill_id, 450; break;
- case Job_Knight: set .@skill_id, 452; break;
- case Job_Wizard: set .@skill_id, 453; break;
- case Job_Priest: set .@skill_id, 454; break;
- case Job_Bard:
- case Job_Dancer: set .@skill_id, 455; break;
- case Job_Rogue: set .@skill_id, 456; break;
- case Job_Assassin: set .@skill_id, 457; break;
- case Job_Blacksmith: set .@skill_id, 458; break;
- case Job_Hunter: set .@skill_id, 460; break;
- }
- break;
- }
- if (.@skill_id) {
- sc_start4 SC_SPIRIT,350000,5,.@skill_id,0,0;
- specialeffect2 503;
- dispbottom "You has been Soul Linked.";
- }
- goto L_heal;
- end;
- L_heal:
- percentheal 100,100;
- end;
- }
- morocc,153,97,3 duplicate(Healer) Healer#h1-2 971
- ayothaya,216,169,4 duplicate(Healer) Healer#h1-3 971
- geffen,123,62,1 duplicate(Healer) Healer#h1-4 971
- umbala,87,160,5 duplicate(Healer) Healer#h1-5 971
- payon,168,226,5 duplicate(Healer) Healer#h1-6 971
- alberta,31,229,1 duplicate(Healer) Healer#h1-7 971
- alberta,122,59,4 duplicate(Healer) Healer#h2-7 971
- aldebaran,133,116,5 duplicate(Healer) Healer#h1-8 971
- izlude,125,148,5 duplicate(Healer) Healer#h1-9 971
- xmas,155,137,5 duplicate(Healer) Healer#h1-10 971
- comodo,209,146,4 duplicate(Healer) Healer#h1-11 971
- amatsu,102,152,5 duplicate(Healer) Healer#h1-12 971
- gonryun,166,122,4 duplicate(Healer) Healer#h1-13 971
- yuno,153,174,6 duplicate(Healer) Healer#h1-14 971
- niflheim,188,180,5 duplicate(Healer) Healer#h1-15 971
- louyang,221,106,4 duplicate(Healer) Healer#h1-16 971
- rachel,130,116,4 duplicate(Healer) Healer#h1-17 971
- veins,215,127,4 duplicate(Healer) Healer#h1-18 971
- moscovia,216,185,6 duplicate(Healer) Healer#h1-19 971
- lighthalzen,161,94,4 duplicate(Healer) Healer#h1-20 971
- hugel,98,149,3 duplicate(Healer) Healer#h1-21 971
- mid_camp,223,241,4 duplicate(Healer) Healer#h1-22 971
- splendide,196,88,4 duplicate(Healer) Healer#h1-23 971
- manuk,279,224,4 duplicate(Healer) Healer#h1-24 971
- brasilis,193,220,4 duplicate(Healer) Healer#h1-25 971
- bat_room,150,150,4 duplicate(Healer) Healer#battle 971
- dicastes01,198,195,4 duplicate(Healer) Healer#dicaste 971
- einbech,83,101,4 duplicate(Healer) Healer#einbech 971
- jawaii,209,297,4 duplicate(Healer) Healer#jawaii 971
- //===== Guild Buffs ==========================================
- sec_in02.gat,139,174,2 script Guild Buffs 936,{
- mes "[Guild Buffs]";
- if(getcharid(2)==0){
- mes "I'm sorry, I can only help you, if you're in a guild.";
- close;
- }
- mes "Hello, I offer buffs for guilds.";
- mes "Please select the buff you want to buy for your guild.";
- mes "The buffs you bought will be permanently available for your guild.";
- next;
- mes "[Guild Buffs]";
- mes "Guild Leaders can remove buffs by selecting to buy them and then confirming.";
- next;
- switch(select("^696969Assumptio^000000:^6A5ACDMagnificat^000000:^FF8C00Angelus^000000:^2E8B57Gloria^000000:^FFD700Impositio Manus^000000:^4B0082Spirits^000000")){
- case 1:
- set buff$, "Assumptio Level 5";
- set price, 180000000;
- set buffon$, "assu";
- goto L_selectassumptio;
- case 2:
- set buff$, "Magnificat Level 5";
- set price, 130000000;
- set buffon$, "magni";
- goto L_selectmagnificat;
- case 3:
- set buff$, "Angelus Level 10";
- set price, 110000000;
- set buffon$, "angelus";
- goto L_selectangelus;
- case 4:
- set buff$, "Gloria Level 5";
- set price, 100000000;
- set buffon$, "gloria";
- goto L_selectgloria;
- case 5:
- set buff$, "Impositio Manus Level 5";
- set price, 150000000;
- set buffon$, "impo";
- goto L_selectimpositio;
- case 6:
- set buff$, "Spirits Level 4 (excluding Rebirth Spirit and Soul Linker Spirit)";
- set price, 250000000;
- set buffon$, "spirit";
- goto L_selectspirit;
- }
- L_buffselect:
- mes "[Guild Buffs]";
- mes "So, you want to buy ^0000FF" + buff$ + "^000000 for ^00FF00" + price + "^000000 Zeny?";
- next;
- switch(select("Yes, please:No, thank you")){
- case 1:
- if(zeny<price) goto L_nobuffs;
- set zeny, zeny-price;
- if (buffon$=="assu"){
- set z, getarraysize($guildassumptio);
- set $guildassumptio[z+1], getcharid(2);
- goto L_buffbought;
- }
- if (buffon$=="magni"){
- set z, getarraysize($guildmagnificat);
- set $guildmagnificat[z+1], getcharid(2);
- goto L_buffbought;
- }
- if (buffon$=="angelus"){
- set z, getarraysize($guildangelus);
- set $guildangelus[z+1], getcharid(2);
- goto L_buffbought;
- }
- if (buffon$=="gloria"){
- set z, getarraysize($guildgloria);
- set $guildgloria[z+1], getcharid(2);
- goto L_buffbought;
- }
- if (buffon$=="impo"){
- set z, getarraysize($guildimpositio);
- set $guildimpositio[z+1], getcharid(2);
- goto L_buffbought;
- }
- if (buffon$=="spirit"){
- set z, getarraysize($guildspirit);
- set $guildspirit[z+1], getcharid(2);
- goto L_buffbought;
- }
- case 2:
- mes "[Guild Buffs]";
- mes "As you wish.";
- close;
- }
- L_buffbought:
- mes "[Guild Buffs]";
- mes "Transaction complete, the buff is now available for your guild.";
- close;
- L_nobuffs:
- mes "[Guild Buffs]";
- mes "I'm sorry, you don't have enough money.";
- close;
- L_selectassumptio:
- if ($guildassumptio[y]==getcharid(2)) goto L_available;
- if (y>=getarraysize($guildassumptio)){
- set y, 0;
- goto L_buffselect;
- }
- if (y<=getarraysize($guildassumptio)) set y,y+1;
- goto L_selectassumptio;
- end;
- L_selectimpositio:
- if ($guildimpositio[y]==getcharid(2)) goto L_available;
- if (y>=getarraysize($guildimpositio)){
- set y, 0;
- goto L_buffselect;
- }
- if (y<=getarraysize($guildimpositio)) set y,y+1;
- goto L_selectimpositio;
- end;
- L_selectspirit:
- if ($guildspirit[y]==getcharid(2)) goto L_available;
- if (y>=getarraysize($guildspirit)){
- set y, 0;
- goto L_buffselect;
- }
- if (y<=getarraysize($guildspirit)) set y,y+1;
- goto L_selectspirit;
- end;
- L_selectmagnificat:
- if ($guildmagnificat[y]==getcharid(2)) goto L_available;
- if (y>=getarraysize($guildmagnificat)){
- set y, 0;
- goto L_buffselect;
- }
- if (y<=getarraysize($guildmagnificat)) set y,y+1;
- goto L_selectmagnificat;
- end;
- L_selectangelus:
- if ($guildangelus[y]==getcharid(2)) goto L_available;
- if (y>=getarraysize($guildangelus)){
- set y, 0;
- goto L_buffselect;
- }
- if (y<=getarraysize($guildangelus)) set y,y+1;
- goto L_selectangelus;
- end;
- L_selectgloria:
- if ($guildgloria[y]==getcharid(2)) goto L_available;
- if (y>=getarraysize($guildgloria)){
- set y, 0;
- goto L_buffselect;
- }
- if (y<=getarraysize($guildgloria)) set y,y+1;
- goto L_selectgloria;
- end;
- L_available:
- mes "[Guild Buffs]";
- mes "You already bought ^0000FF" + buff$ + "^000000.";
- if(getguildmasterid(getcharid(2))==getcharid(0)) {
- mes "Do you want to remove it?";
- next;
- switch(select("No:Yes")){
- Case 1:
- close;
- Case 2:
- mes "^FF0000Keep in mind that you won't get any refund!^000000";
- mes "So, are you sure you want to take out that action?";
- next;
- switch(select("No:Yes")) {
- Case 1:
- close;
- Case 2:
- if (buffon$=="assu"){
- set $guildassumptio[y], 0;
- goto L_buffdeleted;
- }
- if (buffon$=="magni"){
- set $guildmagnificat[y], 0;
- goto L_buffdeleted;
- }
- if (buffon$=="angelus"){
- set $guildangelus[y], 0;
- goto L_buffdeleted;
- }
- if (buffon$=="gloria"){
- set $guildgloria[y], 0;
- goto L_buffdeleted;
- }
- if (buffon$=="impo"){
- set $guildimpositio[y], 0;
- goto L_buffdeleted;
- }
- if (buffon$=="spirit"){
- set $guildspirit[y], 0;
- goto L_buffdeleted;
- }
- }
- }
- close;
- }
- L_buffdeleted:
- mes "[Guild Buffs]";
- mes "Transaction completed. ^FF0000" + buff$ + "^000000 has been deleted from your Guildbuffs.";
- close;
- }
- //===== GM Buffer ============================================
- //= GMs simply have to whisper the word "buff" to
- //= "NPC:Buff" to receive several buffs for one
- //= hour and full heal.
- //= If the invoking character is not a GM, nothing will happen.
- //= To add more buffs, see db/const.txt and search for SC_.
- //============================================================
- /*
- - script Buff -1,{
- OnWhisperGlobal:
- if(@whispervar0$=="buff") {
- if(getgmlevel()>=40){
- sc_start 21,3600000,10;
- sc_start 22,3600000,10;
- sc_start 23,3600000,10;
- sc_start 27,3600000,10;
- sc_start 29,3600000,100;
- sc_start 30,3600000,100;
- sc_start 32,3600000,100;
- sc_start 35,3600000,10;
- sc_start 40,3600000,10;
- sc_start 41,3600000,10;
- sc_start 43,3600000,10;
- sc_start 44,3600000,10;
- sc_start 46,3600000,10;
- sc_start 49,3600000,10;
- sc_start 58,3600000,10;
- sc_start 60,3600000,10;
- sc_start 61,3600000,10;
- sc_start 62,3600000,10;
- sc_start 72,3600000,10;
- sc_start 73,3600000,10;
- sc_start 74,3600000,10;
- sc_start 75,3600000,10;
- sc_start 76,3600000,10;
- sc_start 77,3600000,10;
- sc_start 86,3600000,10;
- sc_start 92,3600000,10;
- sc_start 108,3600000,10;
- sc_start 109,3600000,10;
- sc_start 110,3600000,10;
- sc_start 113,3600000,10;
- sc_start 115,3600000,10;
- sc_start 120,3600000,10;
- sc_start 121,3600000,10;
- sc_start 123,3600000,100;
- sc_start 125,3600000,100;
- sc_start 147,3600000,10;
- sc_start 148,3600000,10;
- sc_start 149,3600000,10;
- sc_start 150,3600000,10;
- sc_start 154,3600000,10;
- sc_start 156,3600000,100;
- sc_start 267,3600000,100;
- percentheal 100,100;
- end;
- }
- end;
- }
- end;
- }
- */
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement