Jump to content

  •  

Bug Tracker Migration

June 3rd
Good news everyone! The staff has decided that it is time to slowly kill off this Bug Tracker. We will begin the process of slowly migrating from this Bug Tracker over to our Github Issues which can be found here: https://github.com/HerculesWS/Hercules/issues

Over the next couple of days, I will be closing off any opportunity to create new reports. However, I still will keep the opportunity to reply to existing Bug Reports. Doing this will allow us to slowly fix any bug reports we have listed here so that we can easily migrate over to our Issue Tracker.

Update - June 7th 2015: Creating new bug posts has been disabled. Please use our https://github.com/HerculesWS/Hercules/issues tracker to post bugs. Users are still able to reply to existing bug posts.

- Administration

Issue Information

  • #006132

  • 0 - None Assigned

  • Fixed

Issue Confirmations

  • Yes (0)No (0)
Photo

Holy Marcher Hat Script

Posted by Hercules Bot on 28 June 2012 - 01:50 PM

Originally posted by jTynne
ID# 5225 Marcher_Hat

Script that matches item description:
bonus2 bResEff,Eff_Stun,1000; bonus3 bAutoSpellWhenHit,"HP_ASSUMPTIO",1,100; bonus3 bAutoSpellWhenHit,"AL_ANGELUS",5,100; if(BaseClass == Job_Acolyte) { bonus5 bAutoSpellOnSkill,"AL_HEAL","PR_LEXAETERNA",1,1000,0;}


If you can somehow get it to not cast Lex Aterna when casted on yourself or other friendly units, then that's wonderful. The old script doesn't match the description at all (current version auto-casts backslide and first aid... lol).

Originally posted by jysn
where does rathena base its Item script? just a question thanks!

Originally posted by Kenpachi
Dunno why the renewal script differs from the pre-renewal one - Marcher Hat wasn't changed.
At any rate the script is wrong.
item Marcher_Hat
event OnStartEquip:
  SetAutoSpell_MLEATKED User AL_ANGELUS 5 30 
  SetAutoSpell_MLEATKED User HP_ASSUMPTIO 1 1
  if ((get[VAR_JOB] == ACOLYTE) | (get[VAR_JOB] == ACOLYTE_H) | (get[VAR_JOB] == PRIEST) | (get[VAR_JOB] == PRIEST_H))
    SetSkillAutoSpell AL_HEAL 1000 PR_LEXAETERNA 1 Target
   endif
  AddStateTolerace BODYStun 10
return
event OnFinishEquip:
  SetAutoSpell_MLEATKED User AL_ANGELUS 0 0  
  SetAutoSpell_MLEATKED User HP_ASSUMPTIO 0 0
  if ((get[VAR_JOB] == ACOLYTE) | (get[VAR_JOB] == ACOLYTE_H) | (get[VAR_JOB] == PRIEST) | (get[VAR_JOB] == PRIEST_H))
    ResetSkillAutoSpell AL_HEAL 1000 PR_LEXAETERNA 1 Target
   endif
  SubStateTolerace BODYStun 10
return


@jysn: kRO

Originally posted by Kenpachi
Fixed in [rev=16449].

If you can somehow get it to not cast Lex Aterna when casted on yourself or other friendly units, then that's wonderful. The old script doesn't match the description at all (current version auto-casts backslide and first aid... lol).

That's why I used bonus4 bAutoSpellOnSkill. This will only cast supportive skills on you, others on the enemy.

Originally posted by jTynne
Yeah.. it's still wrong:

REPLACE INTO `item_db` VALUES (5225,'Marcher_Hat','Parade Hat',5,20,NULL,200,NULL,2,NULL,1,0xFFFFFFFF,7,2,256,NULL,10,1,269,'bonus2 bResEff,Eff_Stun,1000; bonus3 bAutoSpellWhenHit,\"NV_FIRSTAID\",1,100; bonus3 bAutoSpellWhenHit,\"TF_BACKSLIDING\",1,100; /*If(BaseClass == Job_Acolyte) { bonus4 bAutoSpellOnSkill,\"PR_LEXAETERNA\",\"AL_HEAL\",1,10; }*/',NULL,NULL);
re: https://rathena.svn....les/item_db.sql

Should be:

bonus2 bResEff,Eff_Stun,1000; bonus3 bAutoSpellWhenHit,"HP_ASSUMPTIO",1,100; bonus3 bAutoSpellWhenHit,"AL_ANGELUS",5,100;
if(BaseClass==Job_Acolyte) bonus4 bAutoSpellOnSkill,"AL_HEAL","PR_LEXAETERNA",1,1000;

Originally posted by duaud

Added to @jTynne's comments,

problem is not Implement, but bAutoSpellOnSkill.

According to doc/itembonus.txt,
bonus4 bAutoSpellOnSkill,s,x,l,n Adds a n/10% chance to autospell skill x at level l when using skill s. (supports skill names)
Supportive spells are casted on self, others on target of skill s.

bonus5 bAutoSpellOnSkill,s,x,l,n,i Adds a n/10% chance to autospell skill x at level l when using skill s. (supports skill names)
i: Flags (bitfield)
&1: Forces the skill to be casted on self, rather than on the target of skill s.
&2: Random skill level between 1 and l is chosen.


Case 1. Use script " bonus4 bAutoSpellOnSkill,"AL_HEAL","PR_LEXAETERNA",1,1000; "
If use heal to target, LEXAETERNA are used to self.
If use heal to self, LEXAETERNA are used to self, too.

Case 2. Use script " bonus5 bAutoSpellOnSkill,"AL_HEAL","PR_LEXAETERNA",1,1000,0; "
If use heal to target, LEXAETERNA are used to target.
If use heal to self, LEXAETERNA are used to self.


In conclusion, if use Skill S to self or friend when Skill S's inf is friend and Skill X's inf is enemy, It need to prevent auto using Skill X.

Sorry for my bad english. T.T

Edited by duaud, 19 July 2012 - 08:01 PM.


Originally posted by jTynne
Hmm? I was just stating that the SQL inserts had not been updated properly.

Originally posted by duaud
Oh, I did not know it.

But, bAutoSpellOnSkill has bug about target.

Originally posted by Euphy
Fixed in [rev=16455].