Guild Buffer NPC

ahunt

New member
Messages
4
Points
0
Github
ahunt
Can someone convert this script to hercules
it is not working on hercules right now

//===== 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,153,192,5    script    Healer#h1-1::Healer    971,{
celestiaj,102,77,5    script    Healer#h1-1::Healer    971,{
emotion e_no1;

    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_STUN;
sc_end SC_SLEEP;
sc_end SC_POISON;
sc_end SC_CURSE;
sc_end SC_SILENCE;
sc_end SC_CONFUSION;
sc_end SC_BLIND;
sc_end SC_BLEEDING;
sc_end SC_SLOWCAST;
sc_end SC_CRITICALWOUND;
sc_start SC_BLESSING,0,10;
sc_start SC_INCREASEAGI,0,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:
sc_start SC_ASSUMPTIO,0,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:
sc_start SC_MAGNIFICAT,0,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:
sc_start SC_angelus,0,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:
sc_start SC_GLORIA,0,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:
sc_start SC_IMPOSITIO,0,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;
        }
goto L_heal;
end;

L_heal:
percentheal 100,100;
end;
}
morocc,158,97,3    duplicate(Healer)    Healer#h1-2    971
ayothaya,148,121,4    duplicate(Healer)    Healer#h1-3    971
geffen,122,59,1    duplicate(Healer)    Healer#h1-4    971
umbala,87,160,5    duplicate(Healer)    Healer#h1-5    971
payon,167,233,5    duplicate(Healer)    Healer#h1-6    971
alberta,185,144,5    duplicate(Healer)    Healer#h1-7    971
alberta,122,59,4    duplicate(Healer)    Healer#h2-7    971
aldebaran,133,115,5    duplicate(Healer)    Healer#h1-8    971
izlude,125,118,5    duplicate(Healer)    Healer#h1-9    971
xmas,148,137,5    duplicate(Healer)    Healer#h1-10    971
comodo,209,146,4    duplicate(Healer)    Healer#h1-11    971
amatsu,105,156,5    duplicate(Healer)    Healer#h1-12    971
gonryun,163,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,189,191,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 ==========================================

job3_rune02,43,48,4    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("Assumptio:Magnificat:Angelus:Gloria:Impositio Manus:Spirits")){
    
        case 1:
            set buff$, "Assumptio Level 5";
            set price, 120000000;
            set buffon$, "assu";
            goto L_selectassumptio;
            
        case 2:
            set buff$, "Magnificat Level 5";
            set price, 100000000;
            set buffon$, "magni";
            goto L_selectmagnificat;
            
        case 3:
            set buff$, "Angelus Level 10";
            set price, 100000000;
            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, 100000000;
            set buffon$, "impo";
            goto L_selectimpositio;
            
        case 6:
            set buff$, "Spirits Level 4 (excluding Rebirth Spirit and Soul Linker Spirit)";
            set price, 150000000;
            set buffon$, "spirit";
            goto L_selectspirit;
    }
L_buffselect:
    mes "[Guild Buffs]";
    mes "So, you want to buy " + buff$ + " for " + price + " 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 " + buff$ + ".";
    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. " + buff$ + " 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;
//}

 
try this 

prontera,170,169,4 script Guild Buffer 4_F_ARUNA_POP,{
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("Assumptio:Magnificat:Angelus:Gloria:Impositio Manus:Spirits")){
case 1:
set buff$, "Assumptio Level 5";
set .@price, 1200000;
set buffon$, "assu";
goto L_selectassumptio;
case 2:
set buff$, "Magnificat Level 5";
set .@price, 1000000;
set buffon$, "magni";
goto L_selectmagnificat;
case 3:
set buff$, "Angelus Level 10";
set .@price, 100000;
set buffon$, "angelus";
goto L_selectangelus;
case 4:
set buff$, "Gloria Level 5";
set .@price, 100000;
set buffon$, "gloria";
goto L_selectgloria;
case 5:
set buff$, "Impositio Manus Level 5";
set .@price, 100000;
set buffon$, "impo";
goto L_selectimpositio;
case 6:
set buff$, "Spirits Level 4 (excluding Rebirth Spirit and Soul Linker Spirit)";
set .@price, 150000;
set buffon$, "spirit";
goto L_selectspirit;
}
L_buffselect:
mes "[Guild Buffs]";
mes "So, you want to buy " + buff$ + " for " + .@price + " Zeny?";
next;
switch(select("Yes, please:No, thank you")){
case 1:
if (.@price) {
if (Zeny < .@price) goto L_nobuffs;
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 " + buff$ + ".";
if(getguildmasterid(getcharid(2))==getcharid(0)) {
mes "Do you want to remove it?";
next;
switch(select("No:Yes")){
case 1:
close;
break;
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. " + buff$ + " has been deleted from your Guildbuffs.";
close;
}

prontera,170,172,3 script Healergu 4_F_GELKA,{
emotion 27;

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_STUN;
sc_end SC_SLEEP;
sc_end SC_POISON;
sc_end SC_CURSE;
sc_end SC_SILENCE;
sc_end SC_CONFUSION;
sc_end SC_BLIND;
sc_end SC_BLEEDING;
sc_end SC_SLOWCAST;
sc_end SC_CRITICALWOUND;
specialeffect(EF_INCAGILITY, AREA, playerattached()); sc_start SC_INC_AGI,240000,10;
specialeffect(EF_BLESSING, AREA, playerattached()); sc_start SC_BLESSING,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:
specialeffect(EF_ASSUMPTIO, AREA, playerattached()); sc_start SC_ASSUMPTIO,0,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:
specialeffect(EF_MAGNIFICAT, AREA, playerattached()); sc_start SC_MAGNIFICAT,0,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:
specialeffect(EF_ANGELUS, AREA, playerattached()); sc_start SC_ANGELUS,0,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:
specialeffect(EF_GLORIA, AREA, playerattached()); sc_start SC_GLORIA,0,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:
specialeffect(EF_IMPOSITIO, AREA, playerattached()); sc_start SC_IMPOSITIO,0,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_SOULLINK,350000,5,.@skill_id,0,0;
specialeffect(EF_SOULLINK, AREA, playerattached());
}

goto L_heal;
end;

L_heal:
percentheal 100,100;
end;
}


tell me if have any bug

 
Last edited by a moderator:
@melv0
zeny doesnt deducted after player uses the skills.
at line 54

Zeny -= price;


i replaced it with Zeny -= .@price;

its working as intended i guess, didn't check it completely with other classes etc.

 
@melv0
zeny doesnt deducted after player uses the skills.
at line 54

Zeny -= price;


i replaced it with Zeny -= .@price;

its working as intended i guess, didn't check it completely with other classes etc.
ah, thx for correct me :D

 
try this 

prontera,170,169,4 script Guild Buffer 4_F_ARUNA_POP,{
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("Assumptio:Magnificat:Angelus:Gloria:Impositio Manus:Spirits")){
case 1:
set buff$, "Assumptio Level 5";
set .@price, 1200000;
set buffon$, "assu";
goto L_selectassumptio;
case 2:
set buff$, "Magnificat Level 5";
set .@price, 1000000;
set buffon$, "magni";
goto L_selectmagnificat;
case 3:
set buff$, "Angelus Level 10";
set .@price, 100000;
set buffon$, "angelus";
goto L_selectangelus;
case 4:
set buff$, "Gloria Level 5";
set .@price, 100000;
set buffon$, "gloria";
goto L_selectgloria;
case 5:
set buff$, "Impositio Manus Level 5";
set .@price, 100000;
set buffon$, "impo";
goto L_selectimpositio;
case 6:
set buff$, "Spirits Level 4 (excluding Rebirth Spirit and Soul Linker Spirit)";
set .@price, 150000;
set buffon$, "spirit";
goto L_selectspirit;
}
L_buffselect:
mes "[Guild Buffs]";
mes "So, you want to buy " + buff$ + " for " + .@price + " Zeny?";
next;
switch(select("Yes, please:No, thank you")){
case 1:
if (.@price) {
if (Zeny < .@price) goto L_nobuffs;
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 " + buff$ + ".";
if(getguildmasterid(getcharid(2))==getcharid(0)) {
mes "Do you want to remove it?";
next;
switch(select("No:Yes")){
case 1:
close;
break;
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. " + buff$ + " has been deleted from your Guildbuffs.";
close;
}

prontera,170,172,3 script Healergu 4_F_GELKA,{
emotion 27;

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_STUN;
sc_end SC_SLEEP;
sc_end SC_POISON;
sc_end SC_CURSE;
sc_end SC_SILENCE;
sc_end SC_CONFUSION;
sc_end SC_BLIND;
sc_end SC_BLEEDING;
sc_end SC_SLOWCAST;
sc_end SC_CRITICALWOUND;
specialeffect(EF_INCAGILITY, AREA, playerattached()); sc_start SC_INC_AGI,240000,10;
specialeffect(EF_BLESSING, AREA, playerattached()); sc_start SC_BLESSING,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:
specialeffect(EF_ASSUMPTIO, AREA, playerattached()); sc_start SC_ASSUMPTIO,0,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:
specialeffect(EF_MAGNIFICAT, AREA, playerattached()); sc_start SC_MAGNIFICAT,0,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:
specialeffect(EF_ANGELUS, AREA, playerattached()); sc_start SC_ANGELUS,0,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:
specialeffect(EF_GLORIA, AREA, playerattached()); sc_start SC_GLORIA,0,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:
specialeffect(EF_IMPOSITIO, AREA, playerattached()); sc_start SC_IMPOSITIO,0,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_SOULLINK,350000,5,.@skill_id,0,0;
specialeffect(EF_SOULLINK, AREA, playerattached());
}

goto L_heal;
end;

L_heal:
percentheal 100,100;
end;
}


tell me if have any bug
It puts me in stone curse whenever i use the npc

 
That may be due to the application of an unsupported buff. I got this on rathena, perhaps it happens on herc too (need a source editor to confirm that though).

 
Back
Top