The original script is here:
* By Rumble of The Builder Academy tbamud.com 9091
* Player must have nohassle off! To junk assigner use tbalim purge player.
set actor %self.carried_by%
*Shouldn't be necessary, added by Fizban due to script not knowing who actor was under certain circumstances
if %actor.varexists(TBA_trial_vnum)% && %actor.level% == 31
* We set completed trial vnums to -#. So if negative abort.
if %actor.TBA_trial_vnum% < 0
return 0
end
if (%cmd.mudcommand% == redit && ((%arg% && %arg% != %actor.TBA_trial_vnum%) || (%actor.room.vnum% != %actor.TBA_trial_vnum%)))
%send% %actor% GOTO %actor.TBA_trial_vnum% to edit your room.
elseif %cmd.mudcommand% == oedit && %arg% != %actor.TBA_trial_vnum%
%send% %actor% Use OEDIT %actor.TBA_trial_vnum% to modify your object.
elseif %cmd.mudcommand% == medit && %arg% != %actor.TBA_trial_vnum%
%send% %actor% Use MEDIT %actor.TBA_trial_vnum% to modify your mobile.
elseif (%cmd.mudcommand% == zedit && ((%arg% && %arg% != %actor.TBA_trial_vnum%) || (%actor.room.vnum% != %actor.TBA_trial_vnum%)))
%send% %actor% GOTO %actor.TBA_trial_vnum% to edit your trial vnums zone information.
elseif %cmd.mudcommand% == purge && ((%arg% && %arg% != %actor.TBA_trial_vnum%) || (%actor.room.vnum% != %actor.TBA_trial_vnum%)))
%send% %actor% GOTO %actor.TBA_trial_vnum% to purge your room.
elseif %cmd.mudcommand% == nohassle || (%cmd.mudcommand% == toggle && nohassle /= %arg.car%)
%send% %actor% You cannot enable nohassle until you finish your trial vnum.
elseif %cmd.mudcommand% == buildwalk || (%cmd.mudcommand% == toggle && buildwalk /= %arg.car%)
%send% %actor% You cannot enable buildwalk until you finish your trial vnum.
elseif %cmd.mudcommand% == sedit || %cmd.mudcommand% == qedit || %cmd.mudcommand% == trigedit || %cmd.mudcommand% == dig || %cmd.mudcommand% == rclone || %cmd.mudcommand% == attach || %cmd.mudcommand% == detach || %cmd.mudcommand% == vdelete
%send% %actor% Sedit, Trigedit, Qedit, Dig, Rclone, Attach, Detach, and Vdelete are not required for your trial vnum.
elseif %cmd.mudcommand% == zpurge
%send% %actor% Zpurge is not required for your trial vnum. Use 'purge' or 'purge item.'
elseif %cmd.mudcommand% == sacrifice
%send% %actor% Sacrifice is disabled until your trial room is completed.
else
return 0
end
else
return 0
end
The version I replaced it with for testing/debugging purposes is this:
* By Rumble of The Builder Academy tbamud.com 9091
* Player must have nohassle off! To junk assigner use tbalim purge player.
if %actor.varexists(tba_trial_vnum)% && %actor.level% == 31
* We set completed trial vnums to -#. So if negative abort.
if %actor.tba_trial_vnum% < 0
return 0
end
if %cmd.mudcommand% == redit
%echo% The command he typed was redit!
if %arg%
%echo% There was an arg!
if %arg% != %actor.tba_trial_vnum%
%send% %actor% GOTO %actor.tba_trial_vnum% to edit your room.
else
return 0
end
elseif %actor.room.vnum% != %actor.tba_trial_vnum%
%echo% '%actor.room.vnum%' '%actor.tba_trial_vnum%'
%echo% There was no arg, but wrong room!
%send% %actor% GOTO %actor.tba_trial_vnum% to edit your room.
else
%echo% Uh oh, he should have just entered redit! Obvious bug!
return 0
end
elseif %cmd.mudcommand% == oedit && %arg% != %actor.tba_trial_vnum%
%send% %actor% Use OEDIT %actor.tba_trial_vnum% to modify your object.
elseif %cmd.mudcommand% == medit && %arg% != %actor.tba_trial_vnum%
%send% %actor% Use MEDIT %actor.tba_trial_vnum% to modify your mobile.
elseif %cmd.mudcommand% == zedit
if %arg%
if %arg% != %actor.tba_trial_vnum%
%send% %actor% GOTO %actor.tba_trial_vnum% to edit your trial vnums zone information.
else
return 0
end
elseif %actor.room.vnum% != %actor.tba_trial_vnum%
%send% %actor% GOTO %actor.tba_trial_vnum% to edit your trial vnums zone information.
else
return 0
end
elseif %cmd.mudcommand% == purge
if %arg%
if %arg% != %actor.tba_trial_vnum%
%send% %actor% GOTO %actor.tba_trial_vnum% to purge your room.
else
return 0
end
elseif %actor.room.vnum% != %actor.tba_trial_vnum%
%send% %actor% GOTO %actor.tba_trial_vnum% to purge your room.
else
return 0
end
elseif %cmd.mudcommand% == nohassle || (%cmd.mudcommand% == toggle && %arg.mudcommand% == nohassle)
%send% %actor% You cannot enable nohassle until you finish your trial vnum.
elseif %cmd.mudcommand% == buildwalk || (%cmd.mudcommand% == toggle && %arg.mudcommand% == buildwalk)
%send% %actor% You cannot enable buildwalk until you finish your trial vnum.
elseif %cmd.mudcommand% == sedit || %cmd.mudcommand% == qedit || %cmd.mudcommand% == trigedit || %cmd.mudcommand% == dig || %cmd.mudcommand% == rclone || %cmd.mudcommand% == attach || %cmd.mudcommand% == detach || %cmd.mudcommand% == vdelete
%send% %actor% Sedit, Trigedit, Qedit, Dig, Rclone, Attach, Detach, and Vdelete are not required for your trial vnum.
elseif %cmd.mudcommand% == zpurge
%send% %actor% Zpurge is not required for your trial vnum. Use 'purge' or 'purge item.'
elseif %cmd.mudcommand% == sacrifice
%send% %actor% Sacrifice is disabled until your trial room is completed.
else
return 0
end
else
return 0
end
The response the script spit out when Suvin attempted to type 'redit':
Quote:
The command he typed was redit!
'' '60856'
There was no arg, but wrong room!
The command he typed was redit!
'' '60856'
There was no arg, but wrong room!
This immediately brought two things to my attention.
Firstly, the '' means it can't decipher what %actor.trial.vnum% is as that was %echo% '%actor.trial.vnum%' (The '' were originally there because I suspected the issue was spacing related.)
Secondly, he did not receive the following message: %send% %actor% GOTO %actor.TBA_trial_vnum% to edit your room.
That eliminates the possibility of the issue being related to the 'room' or 'vnum' trig-fields and brings us to the root of the problem, the script doesn't know who the %actor% is. I'm not sure what code change caused this, or when, but it seems to be a rather recent problem as I've only seen it pop up twice, both times within the last week.





