PennMUSH Community

Ticket #6940 (new bug)

Opened 2 years ago

Last modified 2 years ago

PUBLIC: NoSpoof information and @hooks

Reported by: anonymous Assigned to: raevnos
Priority: major Milestone:
Keywords: Cc:
Visibility: Public

Description (Last modified by raevnos)

Full_Name: 
Version: 1.8.1p7
OS: *nix
Submission from: 24-207-219-224.dhcp.stls.mo.charter.com (24.207.219.224)


If any sort of function is present in the attribute a @hook runs that changes
the nospoof information, it is not reset afterwards.

&report #100=1[pemit(owner(me),Lah lah lah)]
@hook/before say=#100,report

@set me=nospoof
@set me=paranoid

@force OtherPerson=say X
[Jules(#99)'s TestObj(#100)->] Lah lah lah
[Jules(#99)'s TestObj(#100)] Otherperson says, "X"

@hook/before say
@hook/ignore say=#100,report

@force OtherPerson=say X
[Jules(#99)'s TestObj(#100)->] Lah lah lah
[Jules(#99)'s TestObj(#100)] Otherperson says, "X"

it works with say, poses, and semiposes, but @*emits seem to be unaffected.

I'm sure this has to do with NoSpoof information not being buffered before a
@hook is entered.  Say Pose and Semipose must rely on 'default' nospoof info,
while @*emits set it themselves before output.

Change History

02/02/07 00:13:52 changed by raevnos

  • owner changed from devteam to raevnos.
  • priority changed from minor to major.
  • description changed.

In this particular case, fun_pemit_list() was resetting the global orator variable that's used as the originator of the noise being processed at the moment, and never retored the previous value. I've fixed this one, but there's probably a lot of other cases. There has to be a better way of tracking the speaker...