Can anyone tell me how to set this Attackable status?
As I recall this status gives player an ability to attack another player without getting a criminal status.
Attackable - player status
I can only think of one real option (others may exist but I cannot recall any):
Use repsys hook introducted in POL 097.
From core-changes.txt:
See distro code for example core-like usage of this.
What you'd like to do is give player a Attackable status the way you want (cprop is fine), and in the OnAttack hook check if the defender has such. If so, the attacker did not break the law. Or if you wish to grant the privilege so that player can attack everything without consequences, do the checking for attacker's cprop. I think you'll got the idea.
Note though, there's a bug in the way core handles these hooks. Take a look at this: http://forums.polserver.com/ftopic1061.php. One possible workaround is to use external script launched with Start_Script() for status toggling.
Use repsys hook introducted in POL 097.
From core-changes.txt:
Code: Select all
08-17 Austin
Added: repsys.cfg
New elem called 'HookList' which will support syste hook scripts for the reputation system.
Currently name (single click) and highlight (health bar) colors are hookable.
Example:
repsys.cfg
HookList HookList
{
NameColor :repsys:hookScript:NameColor
HighLightColor :repsys:hookScript:HighLightColor
}
:repsys:hookScript.src
exported function NameColor(mobile, visible_to)
return CInt(GetObjProperty(mobile, "NameColor"));
endfunction
exported function HighLightColor(mobile, visible_to)
return CInt(GetObjProperty(mobile, "HighLightColor"));
endfunction
HighLightColor note: The client seems to only accept the following numbers
0 - None, 1 - Innocent, 2 - Friend, 3 - Attackable,
4 - Criminal, 5 - Enemy, 6 - Murderer, 7 - Invulnerable
8 - Unknown (blue gump, pure black mobile)
08-19 Austin
Added: Three more hooks to repsys.cfg's HookList elem.
OnAttack Run when a mobile attacks another.
- Target with the TGTOPT_HARMFUL flag set.
- Mobile goes into warmode and double clicks another.
OnDamage Run when a mobile damages another.
- ApplyDamage() or ApplyRawDamage() is used.
OnHelp Run when a mobile helps another.
- Target with TGTOPT_HELPFUL is used.
What you'd like to do is give player a Attackable status the way you want (cprop is fine), and in the OnAttack hook check if the defender has such. If so, the attacker did not break the law. Or if you wish to grant the privilege so that player can attack everything without consequences, do the checking for attacker's cprop. I think you'll got the idea.
Note though, there's a bug in the way core handles these hooks. Take a look at this: http://forums.polserver.com/ftopic1061.php. One possible workaround is to use external script launched with Start_Script() for status toggling.
I looked at it... thx,
a little bug in a distro in repsys.inc
a cprop in this function is wrong
a little bug in a distro in repsys.inc
a cprop in this function is wrong
Code: Select all
function SetMurderer(mobile, onoff)
return SetObjProperty(mobile, "%Criminal%", CInt(onoff));
endfunction