how can i add soul link buffs on this script?

Brynner

Community Contributors
Messages
563
Points
0
Github
https://github.com/bgamez23
how can i add soul link buffs here?when i try to add SC_SPIRIT nothings happen. thank you in advance.

Code:
-	script	Healer	-1,{		set .@Price,0;	// Zeny required for heal	set .@Buffs,1;	// Also buff players? (1: yes / 0: no)	set .@Delay,0;	// Heal delay, in seconds	callfunc "F_ClearGarbage",0;	if (@HD > gettimetick(2)) end;	if (.@Price) {		message strcharinfo(0),"Healing costs "+.@Price+" Zeny.";		if (Zeny < .@Price) end;		if(select("^0055FFHeal^000000:^777777Cancel^000000") == 2) close;		set Zeny, Zeny-.@Price;	}	specialeffect2 EF_HEAL2; percentheal 100,100;	if (.@Buffs) {		for( .@i = 0; .@i < .size_buff; .@i++ ) {			.@sum = atoi(.@b$[.@i]) + .min_Levels[.@i];			.@j = .Buffs$[.@i];			if( .@sum )				sc_start .@j,240000,.@sum;		}	}	if (.@Delay) set @HD, gettimetick(2)+.@Delay;	close;OnInit:	deletearray .Buffs$;	deletearray .min_Levels;	setarray .Buffs$, SC_INCREASEAGI, SC_BLESSING, SC_KYRIE, SC_SOULLINK;	setarray .min_Levels,        5,        5,       0,       0;	.size_buff = getarraysize( .Buffs$ );	end;	}prontera,163,185,6	duplicate(Healer)	Healer#alb	909
 
Last edited by a moderator:
bellow sc_start .@j,240000,.@sum;

add the following:

if ( .@spirit = .spirit[BaseJob] ); else if ( Upper & 1 && BaseLevel < 70 ) .@spirit = 494; else end; sc_start4 SC_SOULLINK, -1, 5, .@spirit,0,0; 
and bellow OnInit: add it:

.spirit[Job_Alchemist] = 445; .spirit[Job_Monk] = 447; .spirit[Job_Star_Gladiator] = 448; .spirit[Job_Sage] = 449; .spirit[Job_Crusader] = 450; .spirit[Job_SuperNovice] = 451; .spirit[Job_Knight] = 452; .spirit[Job_Wizard] = 453; .spirit[Job_Priest] = 454; .spirit[Job_Bard] = .spirit[Job_Dancer] = 455; .spirit[Job_Rogue] = 456; .spirit[Job_Assassin] = 457; .spirit[Job_Blacksmith] = 458; .spirit[Job_Hunter] = 460; .spirit[Job_Soul_Linker] = 461; 
@edit

btw, why you used 0 for min level?

 
Last edited by a moderator:
bellow sc_start .@j,240000,.@sum;

add the following:

if ( .@spirit = .spirit[BaseJob] ); else if ( Upper & 1 && BaseLevel < 70 ) .@spirit = 494; else end; sc_start4 SC_SOULLINK, -1, 5, .@spirit,0,0; 
and bellow OnInit: add it:



.spirit[Job_Alchemist] = 445; .spirit[Job_Monk] = 447; .spirit[Job_Star_Gladiator] = 448; .spirit[Job_Sage] = 449; .spirit[Job_Crusader] = 450; .spirit[Job_SuperNovice] = 451; .spirit[Job_Knight] = 452; .spirit[Job_Wizard] = 453; .spirit[Job_Priest] = 454; .spirit[Job_Bard] = .spirit[Job_Dancer] = 455; .spirit[Job_Rogue] = 456; .spirit[Job_Assassin] = 457; .spirit[Job_Blacksmith] = 458; .spirit[Job_Hunter] = 460; .spirit[Job_Soul_Linker] = 461; 
@edit

btw, why you used 0 for min level?
its not working. because in this script if you buy additional buffs for this healer. it will ask for minimum level.

 
-  script  Healer  -1,{    set .@Price,0;  // Zeny required for heal  set .@Buffs,1;  // Also buff players? (1: yes / 0: no)  set .@Delay,0;  // Heal delay, in seconds   callfunc "F_ClearGarbage",0;  if (@HD > gettimetick(2)) end;  if (.@Price) {    message strcharinfo(0),"Healing costs "+.@Price+" Zeny.";    if (Zeny < .@Price) end;    if(select("^0055FFHeal^000000:^777777Cancel^000000") == 2) close;    set Zeny, Zeny-.@Price;  }  specialeffect2 EF_HEAL2; percentheal 100,100;  if (.@Buffs) {    for( .@i = 0; .@i < .size_buff; .@i++ ) {      .@sum = atoi(.@b$[.@i]) + .min_Levels[.@i];      .@j = .Buffs$[.@i];      stand (strcharinfo(0)); // <- Added this so characters dont get stuck when you cast soul link when sitting.      if( .@sum )        sc_start .@j, 240000, .@sum;      if ( .min_Levels[3] ) {        skilleffect 461, 5; // show soul link effect.        message strcharinfo(0),jobname(BaseJob)=="Bard"||jobname(BaseJob)=="Dancer"?"Bard and Dancer Spirit !!":jobname(BaseJob)+" Spirit !!";      }    }  }  if (.@Delay) set @HD, gettimetick(2)+.@Delay;  close;OnInit:  deletearray .Buffs$;  deletearray .min_Levels;  setarray .Buffs$, SC_INC_AGI, SC_BLESSING, SC_KYRIE, SC_SOULLINK; // SC_INC_AGI if you're using hercules.  setarray .min_Levels,   5,   5, 1, 1;  .size_buff = getarraysize( .Buffs$ );  end;  }prontera,163,185,6  duplicate(Healer)  Healer#alb  909

http://herc.ws/board/topic/2919-soul-linker-npc-bug/?p=19358

 
Last edited by a moderator:
the skill effect works fine. but the soul link does not really work?

screen_Alecon_RO000.jpg
screen_Alecon_RO001.jpg


i just use union skill instead of flying. nothings happen.

 
that script command, i don't know what to explain more oO

every class has a different skill id so you've to make a switch or many ifs.

 
Code:
-    script    Healer    -1,{        set .@Price,0;    // Zeny required for heal    set .@Buffs,1;    // Also buff players? (1: yes / 0: no)    set .@Delay,0;    // Heal delay, in seconds    callfunc "F_ClearGarbage",0;    switch ( BaseJob ) {        case 18:    .@spirit = 445; break;        case 20:        case 15:    .@spirit = 447; break;        case 19:    .@spirit = 455; break;        case 4047:  .@spirit = 448; break;        case 17:    .@spirit = 456; break;        case 16:    .@spirit = 449; break;        case 12:    .@spirit = 457; break;        case 14:    .@spirit = 450; break;        case 10:    .@spirit = 458; break;        case 23:    .@spirit = 451; break;        case 11:    .@spirit = 460; break;        case 7:     .@spirit = 452; break;        case 4049:  .@spirit = 461; break;        case 8:     .@spirit = 454; break;        case 9:     .@spirit = 453; break;    }    if (@HD > gettimetick(2)) end;    if (.@Price) {        message strcharinfo(0),"Healing costs "+.@Price+" Zeny.";        if (Zeny < .@Price) end;        if(select("^0055FFHeal^000000:^777777Cancel^000000") == 2) close;        set Zeny, Zeny-.@Price;    }    specialeffect2 EF_HEAL2; percentheal 100,100;            if (.@Buffs) {        for( .@i = 0; .@i < getarraysize( .Buffs$ ); .@i++ ) {            .@sum = atoi(.@b$[.@i]) + .min_Levels[.@i];            .@j = .Buffs$[.@i];            stand (strcharinfo(0)); // <- Added this so characters dont get stuck when soul link is casting.            if( .@sum )                sc_start4 .@j, 240000, 5,  .@spirit,0,0;            if ( .min_Levels[3] )                skilleffect .@spirit, 5;    // Start Soul Link Effect.        }    }    if (.@Delay) set @HD, gettimetick(2)+.@Delay;    close;OnInit:    setarray .Buffs$, SC_INC_AGI, SC_BLESSING, SC_KYRIE, SC_SOULLINK;    setarray .min_Levels,        5,	    5,	   1,	   5;    end;    }prontera,163,185,6    duplicate(Healer)    Healer1#alb    909
 
Last edited by a moderator:
@quesoph

how to make it 5secs delay? and can you please add something like this:

else {
dispbottom "Don't spam healer please :< Wait "+ @timeleft +" second"+ ( ( @t > 1 ) ? "s" : "" );
  }

this will show if they keep on clicking after they where just healed.. 

thanks

 
Last edited by a moderator:
Back
Top