ID:169255
 
Is there anyway that you can disable the list menu?

i.e

mob
verb
stab(mob/m in usr.view())
m<<"STABBED! =P"


Is there any way so that if there are multiple people IN view as the player, that the player has to TYPE the name?

i.e

stab player-1
mob
verb
Stab(var/player as text)
for(var/mob/M in oview(4))
if(M==player)
M << "STABBED! =p"


NOTE: Untested!

O-matic
In response to O-matic
O-matic wrote:
> mob
> verb
> Stab(var/player as text)
> for(var/mob/M in oview(4))
> if(M==player)
> M << "STABBED! =p"
>

NOTE: Untested!

O-matic

It takes the input but it doesnt do anything with it.

Also that still spawns a popup window. I want it so you have to literally type it all in, you cant simple type in "stab" and have a window popup
This is not physically possible with the BYOND system.

Thanks to Mobius Evalon for informing me of this.
In response to Bunnie
Then Mobius is sorely mistaken! What you're looking for is the undocumented client/Command() proc. See [link].
In response to Crispy
Crispy wrote:
Then Mobius is sorely mistaken! What you're looking for is the undocumented client/Command() proc. See [link].

It does not stop it from asking for input through a window form, if you have a say verb and just type in say, you'll get a Say box asking you what to put it.

you cannot get rid of ALL the means of that box
In response to Bunnie
You asked me if it was possible to close an input box without the user clicking cancel, and -that- is not possible.

client
Command(given)
if(!given) return 0
if(copytext(given,1,6) == "stab ")
var/mob/M
for(var/mob/N in view(src.view,src.mob)
if(ckey(N.name) == ckey(copytext(given,7)))
M = N
break
if(!M)
src.mob << "No player named [copytext(given,7)]."
return 0
src.mob << "You stabbed [M.name]!"
M << "[src.mob.name] stabbed you!"
return 0
if(hascall(src.mob,given)) return ..()

I'd rather just deal with the input box, myself.
Solution provided by Mobius Evalon.

client
Command(given)
if(!given) return 0
if(copytext(given,1,6) == "stab ")
var/mob/M
for(var/mob/N in view(src.view,src.mob)
if(ckey(N.name) == ckey(copytext(given,7)))
M = N
break
if(!M)
src.mob << "No player named [copytext(given,7)]."
return 0
src.mob << "You stabbed [M.name]!"
M << "[src.mob.name] stabbed you!"
return 0
if(hascall(src.mob,given)) return ..()
In response to Bunnie
Wouldn't doing this make players with long/confusing names have an advantage?
In response to DarkCampainger
DarkCampainger wrote:
Wouldn't doing this make players with long/confusing names have an advantage?

You would then assumably have some kind of filter system against it, such as a character limit and a strict warning 'any players found with 1337 names will be deleted on sight!'

but not really, DarkCampaigner, you can simply COPY the name from the screen..
In response to Bunnie
Bunnie wrote:
DarkCampainger wrote:
Wouldn't doing this make players with long/confusing names have an advantage?

You would then assumably have some kind of filter system against it, such as a character limit and a strict warning 'any players found with 1337 names will be deleted on sight!'

but not really, DarkCampaigner, you can simply COPY the name from the screen..

You spelt my name right, lol. See? You wouldn't have been able to attack me because you switched the g and n =b