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?