ID:139169
 
Code:
mob
GM
verb
GMAnnounce(msg as text)
world << "(GM ANNOUNCEMENT) [usr]: '[msg]'\n"

GMEmote(msg as text)
view() << "[msg]\n"

GMGrantSilver(var/mob/M as mob in world, N as num)
usr << "You grant [M] [N] silver shillings.\n"
M << "[usr] has granted you [N] silver shillings.\n"
M.silver += N
M.UpdateStatusGrid()

GMInflictBoils(var/mob/M as mob in world)
M.statusShiveringBoils = 1
usr << "You inflict shivering boils on [M]."


Problem description:
This is a weird one. Above is my code with gamemaster-specific commands for testing. Up until this evening (and before updating to the new version of BYOND, in case there's a connection), all of this was in except for the GMInflictBoils verb and everything showed up and worked fine.

Tonight I added the GMInflictBoils verb (to test my disease system) and while the first three commands still appear on GM characters, this does not. I then discovered that NO new verbs placed under GM will show up, no matter where I put them or how I try to make them appear (but again, the old commands appear and work just fine). New verbs added for all mobs do appear, and work fine -- it's just mob/GM/verbs that won't. Does anyone have an insights into where I went wrong? This is stumping me.
try this one
mob
>>verb

>>>GMInflictBoils(var/mob/M as mob in world)
>>>>set category = "Gm"
>>>>M.statusShiveringBoils = 1
>>>>usr << "You inflict shivering boils on [M]."
In response to Nasuke357
It wouldnt let me indent
bt it should be
mob
verb over one
gm proc over 2
rest over 3
In response to Nasuke357
Nasuke357 wrote:
try this one
>
> mob
> >>verb
>
> >>>GMInflictBoils(var/mob/M as mob in world)
> >>>>set category = "Gm"
> >>>>M.statusShiveringBoils = 1
> >>>>usr << "You inflict shivering boils on [M]."


I'm not sure what that would accomplish? Unless I'm misunderstanding (which I may very well be), the purpose of "set category" is to set up groups in the verb panels (which my game doesn't even use) -- my issue is with verbs set for those logging into a GM mob, and the code I already have for doing that, and for the existing verbs up to now, works perfectly. The problem is that adding new verbs using the exact same method suddenly isn't working.
In response to Pointycat
o ok well i think i got u now.
maybe u should try
mob/Gm
verb
then ur proc like this
mob/gm
verb
GMInflictBoils(var/mob/M as mob in world)

M.statusShiveringBoils = 1
usr << "You inflict shivering boils on [M].
In response to Nasuke357
Um, unless I'm missing something, the only thing you did was change

mob
GM
verb


to

mob/GM
verb


You do know that to the compiler, that's the exact same thing, right?
In response to Pointycat
I don't know what causes it, but you should try to do some reverse-engineering: place GMInflictBolts verb at the top of the code or put it in comment block and try adding new verbs. Check the behavior after every change, maybe you will be able to narrow the search. For example, if moving GMInflictBolts verb to the top causes all verbs to disappear, there is high probability that something in that verb causes it.
If the 3 older ones work but you can't add new ones, you might be adding the GM verbs individually somewhere and forgetting to add the new one to the list. Try doing ctrl+F in your code and look up one of the gm verbs names like "GMAnnounce" and see if you can find anything.
Design wise; I'd have to say having /mob's handle administration commands is not what you'll want in the long-run.
Instead, focus more toward /client commands.

The player is always the /client, and the /mob is just an atom the /client controls. /client's can control multiple /mob's at any given time thus potentially losing any administration verbs, and/or causing messes.

In your case, how are you going about setting the client.mob to the /mob/GM type?