Jump to content
  • 0
Sign in to follow this  
ahunt

Guild Buffer NPC

Question

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;
//}

Share this post


Link to post
Share on other sites

7 answers to this question

Recommended Posts

  • 1

@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.

Share this post


Link to post
Share on other sites
  • 1
17 minutes ago, Lionheart said:

@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

Share this post


Link to post
Share on other sites
  • 0

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

Edited by melv0
fix soul spirit

Share this post


Link to post
Share on other sites
  • 0
On 11/13/2017 at 0:09 PM, melv0 said:

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

Share this post


Link to post
Share on other sites
  • 0

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).

 

Share this post


Link to post
Share on other sites

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now
Sign in to follow this  

×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.