ID:1973455
 
Resolved
Adding and removing verbs to a client didn't always update correctly. In addition, removed verbs of any kind didn't get removed from the statpanel.
BYOND Version:508
Operating System:Windows 7 Ultimate 64-bit
Web Browser:Chrome 46.0.2490.80
Applies to:Webclient
Status: Resolved (509.1312)

This issue has been resolved.
Descriptive Problem Summary:
I was attempted to see if it was possible to run an alternate version of a game depending on the type of client used. What I found in doing this was that the BYOND web client will not remove commands once a command is added to its client.

Numbered Steps to Reproduce Problem:
Code below.

Code Snippet (if applicable) to Reproduce Problem:
client
New()
..()
src.verbs-=typesof(/client/verb)
if(connection == "seeker")
world<<"Seeker client [src]."
src.verbs+=/client/verb/ClientC

if(connection == "web")
world<<"Web client [src]"
src.verbs+=/client/verb/WebC

verb
ClientC(T as text)
set name="Client Chat"
world<<"<b><font color=red>CLIENT</font> [usr]</b>: [T]"
WebC(T as text)
set name="Web Chat"
world<<"<b><font color=red>WEB</font> [usr]</b>: [T]"
Test()
src.verbs-=/client/verb/ClientC
world<<"Command sent"


I was testing on how I might be able to solve the issue and it just opened another can of worms all together.
client
New()
..()
if(connection == "seeker")
world<<"Seeker client [src]."
src.verbs+=typesof(/client/sc/verb)

if(connection == "web")
world<<"Web client [src]"
src.verbs+=typesof(/client/wc/verb)

if(connection == "http")
world<<"Http client [src]"
src.verbs+=typesof(/client/wc/verb)

verb
Toc()
world<<"[usr] client type is [connection]"

wc
verb
WebC(T as text)
set name="Web Chat"
world<<"<b><font color=red>WEB</font> [usr]</b>: [T]"
Test()
src.verbs-=/client/sc/verb/ClientC
world<<"Command sent"

sc
verb
ClientC(T as text)
set name="Client Chat"
world<<"<b><font color=red>CLIENT</font> [usr]</b>: [T]"

All the second code did was make the web client totally ignore both the WC and SC verbs all together and if you remove the client/verb then it jumps WC and goes right to whatever section of verbs are listed last in this case SC.

Expected Results:
Seeker Clients with the verb Client Chat and web clients with the verb Web Chat.
Actual Results:
Seeker client has client chat web client has client chat and web chat.

Does the problem occur:
Every time? Or how often?
Every time
In other games?
Yes I have check many other games the same issue applies.
In other user accounts?
Yes all accounts
On other computers?
Yes more than one computer

When does the problem NOT occur?
When not using the web client :P

Did the problem NOT occur in any earlier versions? If so, what was the last version that worked? (Visit http://www.byond.com/download/build to download old versions for testing.)
Unsure didn't have the time to test it on other versions.
Workarounds:
None so far... o.O
Since this is a webcilent bug, please retest in 509.1311 just to make sure it's the same. (It probably is, but it helps to stay up to date with beta bugs.)

To clarify this, are you saying the removed verb still works, or merely that it still shows up in the verb panel?
I will download 509 and test it again and to clarify in short the scripts used to add and remove verbs work on the seeker client but only the scripts to add verbs works on the web client any attempt to remove a verb from the web client once it has the verb is impossible all it does is disable its use.
Okay, so basically you're saying that removing the verb doesn't remove it from the verb panel, but does make the verb inaccessible. So the verb is actually being removed, but the verb panel doesn't update.
Okay to give a little more detail I have tried the 509 it is still an issue and I think I may have stumbled into more of an issue than I had before. xD! It would seem my second code this one.

client
New()
..()
if(connection == "seeker")
world<<"Seeker client [src]."
src.verbs+=typesof(/client/sc/verb)

if(connection == "web")
world<<"Web client [src]"
src.verbs+=typesof(/client/wc/verb)

if(connection == "http")
world<<"Http client [src]"
src.verbs+=typesof(/client/wc/verb)

verb
Toc()
world<<"[usr] client type is [connection]"

wc
verb
WebC(T as text)
set name="Web Chat"
world<<"<b><font color=red>WEB</font> [usr]</b>: [T]"
Test()
src.verbs-=/client/sc/verb/ClientC
world<<"Command sent"

sc
verb
ClientC(T as text)
set name="Client Chat"
world<<"<b><font color=red>CLIENT</font> [usr]</b>: [T]"

It would seem the web client totally ignores the fact that I told it to add a verb. I only get the verbs under client/verb. So yes when the verbs are located under verb it doesnt update the verb but makes it unusable but when you attempt to add the verbs I did above it refuses to add them as well.
Another interesting note on this matter...
    verb
Toc()
world<<"[usr] client type is [connection]"
WC()
world<<"Test"
src.verbs+=typesof(/client/wc/verb)
WC2()
world<<"Test"
src.verbs+=/client/wc/verb/WebC
src.verbs+=/client/wc/verb/Test
WCR()
world<<"Test 2"
src.verbs-=typesof(/client/wc/verb)
WCR2()
world<<"Test 2"
src.verbs-=/client/wc/verb/WebC
src.verbs-=/client/wc/verb/Test
KILL()
world<<"Test 3"
src.verbs-=/client/verb/WC
src.verbs-=/client/verb/WC2
src.verbs-=/client/verb/WCR
src.verbs-=/client/verb/WCR2
SRT()
world<<"Test 3
src.verbs+=/client/verb/WC
src.verbs+=/client/verb/WC2
src.verbs+=/client/verb/WCR
src.verbs+=/client/verb/WCR2

After adding the following test commands to see the outcome it would seem that the commands are being seen and sent by I am unable to add or remove verbs to the web client but using the kill and srt commands I am able to disable and enable the ones that are in the client so I think its safe to say its just not updating the verbs. :P
Lummox JR resolved issue with message:
Adding and removing verbs to a client didn't always update correctly. In addition, removed verbs of any kind didn't get removed from the statpanel.