Todd Mitchell wrote: > Ah, the activator is the switch in this case, I thought it should be > referencing the player activating the trigger as it is in other > events. Whoami is the object itself usually, no? The comment in the source (located somewhere in the server code, just before the plugin code is called) says: originator (WhoAmI) is the object that caused victim (Other) to move onto trap (Activator). Therefore I'd say Other is the object on the trigger. I did a quick survey for the events used in the server code (see the attachment). I'll add this information to doc/Developers/python. > My script had whoami to determine the object being activated - whoami > is not valid causing a segfault... I'm currently fixing the plugin code to prevent (or at least reduce) such crashes. The current plugin code has at least the following problems: - It does not always check if a valid object is present and therefore passes NULL objects to the plugin code. On the other hand, it does not check objects passed in from the plugin code, using these NULL objects. The solution I implemented is: pass the Python-value "None" for NULL-objects. But your script revealed a problem: I get the (misleading) error message "TypeError: an integer is required". (But the server does not crash.) Is this behavior acceptable or should I pass the integer 0 to the script for NULL objects and raise a Python exception if such a value is used by the script? - The internal stack for WhoAmI (and other values) is not always completely cleared. Therefore you may get invalid (read "left over") values if you call (for example) WhoAmI from an event script that does not set this value. > Try this for the script: [...] Did that: I got a server crash, too. -------------- next part -------------- events generated for objects ============================ event activator who other msg result value comment ------- ------ --------- ----- --- -------------------------- ----------------- APPLY op book -- -- -- op reads book APPLY pl_ob altar -- -- !=0:do not pray at altar APPLY pl_ob op -- -- !=0:do not apply object aflag=always apply flag ATTACK hitter hitter op -- -- ATTACK hitter op victim -- (value read but ignored) ATTACK hitter weapon op -- -- CLOSE pl_ob container -- -- !=0:do not close container DEATH -- pl_ob -- -- !=0:pl_ob should not die DEATH hitter op -- -- !=0:do not kill object atype=attacktype DROP who op -- -- !=0:do not drop object op is already removed PICKUP never generated SAY op inv-obj npc txt !=0:do not say inv-obj is an object in npc's inventory SAY op npc -- txt !=0:do not say STOP -- op -- -- -- thrown object op is stopped TELL never generated THROW op throw_ob -- -- -- TIME -- op -- -- -- TIMER never generated TIMER op -- -- -- -- TRIGGER pl_ob item -- msg -- pl_ob writes msg into item TRIGGER teleporter op -- -- !=0:do not move object teleporter/player changer moves op TRIGGER trap originator victim -- !=0:do not activate trap originator is the object that caused victim to move onto trap; originator (who) seems not to be set when leaving the trigger object global events ============== event activator who other msg result value comment -------- --------- ---- ----- -------- ------------ --------------------------- BORN pl_ob -- -- -- -- CLOCK -- -- -- -- -- GDEATH never generated GKILL never generated KICK pl_ob -- -- param -- LOGIN pl_ob pl_ob -- hostname -- activator=who LOGOUT pl_ob pl_ob -- hostname -- activator=who MAPENTER pl_ob -- -- -- -- MAPLEAVE pl_ob -- -- -- -- MAPRESET -- -- map-path -- MUZZLE pl_ob -- -- param -- param is the (possibly partial) player name REMOVE pl_ob -- -- -- -- pl_ob quits the game SHOUT pl_ob -- -- message -- Notes: - pl_ob=player object - the value "--" means that the value is not set in the current code. - the TRIGGER event for writing messages always skips the "normal" writing code if a script is present -------------- next part -------------- _______________________________________________ crossfire-devel mailing list crossfire-devel at lists.real-time.com https://mailman.real-time.com/mailman/listinfo/crossfire-devel