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

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
Sign in to follow this  

×
×
  • Create New...

Important Information

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