View Single Post
  #6  
Old 02-04-2013, 03:18 PM
NikonRZ
Sarnak
 
Join Date: Sep 2008
Location: Atlanta, GA
Posts: 33
Default

Thanks again for the reply....

I see the code....., I see where it is already supposed to be ignoring LoS checks for Harmony line spells, but in-game on this server you must have line of sight, and also, in that code it pushes a message "CANT_SEE_TARGET",..for spells that need LoS, which works fine.

In-game: if I try casting a harmony spell without LoS it doesn't even try to cast, shows the timer maybe for 1/10 of a second and won't cast. If you try to cast anything else without LoS it shows message as intended. Here is the code I'm using.

Is there a syntax issue? Do you mind looking over this?

Code:
float range = spells[spell_id].range;
// solar: check line of sight to target if it's a detrimental spell and if its DT
	if(this->GetClass() != 8) {
		if(spell_target && (!IsBeneficialSpell(spell_id) || IsDamageSpell(spell_id)) && !CheckLosFN(spell_target) && !IsHarmonySpell(spell_id) && spells[spell_id].id != 982)
		{
			if(this->IsClient()) {
				range *= 0.35 + 0.40 * (this->GetSkill(spells[spell_id].skill) / this->CastToClient()->MaxSkill(spells[spell_id].skill, WIZARD, this->GetLevel()));
			}else{
				mlog(SPELLS__CASTING, "Spell %d: cannot see target %s", spell_target->GetName());
				Message_StringID(13,CANT_SEE_TARGET);
				return false;
			}
Could the code in red checking for range be causing the problem?
__________________
Nikon

Reply With Quote