PenUltima Online Forum Index Official Core: 096.7
Official Core: 097 2008-02-26
Donate towards the POL web hosting bill!
 POL Home   FAQ   Search    Memberlist   Usergroups    Register    Profile   Log in to check your private messages   Log in
Attackable - player status

 
Post new topic   Reply to topic    PenUltima Online Forum Index -> Scripting Help
Display posts from previous:   

Author Message
coltain



Joined: 20 Mar 2007
Posts: 96
Location: Poland

PostPosted: Mon May 19, 2008 12:18 pm    Post subject: Attackable - player status Reply with quote

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.

Author Message
ncrsn



Joined: 10 Feb 2006
Posts: 168

PostPosted: Mon May 19, 2008 2:46 pm    Post subject: Reply with quote

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:
Code:
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.


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.

Author Message
coltain



Joined: 20 Mar 2007
Posts: 96
Location: Poland

PostPosted: Mon May 19, 2008 4:25 pm    Post subject: Reply with quote

I looked at it... thx,

a little bug in a distro in repsys.inc

a cprop in this function is wrong
Code:

function SetMurderer(mobile, onoff)
   return SetObjProperty(mobile, "%Criminal%", CInt(onoff));
endfunction

Post new topic   Reply to topic    PenUltima Online Forum Index -> Scripting Help All times are GMT - 4 Hours
Page 1 of 1

 




Powered by phpBB © 2001, 2005 phpBB Group :: Theme & Graphics by GHS & Scott E. Royalty