ID:139443
 
Code:
turf/NEW
Click()
if(usr.HasItUp == 0)//this is to prevent users from having multiple windows open
usr.HasItUp = 1
var/mob/character
crap:
var/charactername1 = input("What is your character's name?","Character Name?")as null|text
if(charactername1 == null || charactername1 == "" || charactername1 == " "|| charactername1 == " " || charactername1 == " ")
usr.HasItUp = 0
return
var/m = copytext(charactername1,1,2)//inefficient way of putting a name together
var/v = uppertext("[m]")
var/c = copytext(charactername1,2,11)
var/b = lowertext(c)
var/charactername = "[v][b]"
for(var/X in bannednames)
if(findtext(charactername,X))
alert(usr,"Name rejected..","DENIED!")
goto crap
else
character = new /mob()
character.name = charactername
usr.client.mob = character
character.loc=locate (1,1,1)
del(src)
if("Back")
goto crap
else
return
turf/LOAD
Click()
if(usr.HasItUp == 0)
usr.HasItUp = 1
var/savefile/F = usr.client.base_PlayerSavefile()
F.cd = "/players/[usr.ckey]/mobs/"
var/list/characters = F.dir
var/b = 0
var/entry
var/autoname = ""
for (entry in characters)
b ++
for(entry in characters)
if(b == 1)
autoname = entry
if(b == 0)
usr << "You don't have any saved characters on this server."
if(b == 1)
usr.client.base_LoadMob(autoname)
else
var/name = input("What is the name of the character you want to load?","Character Load") in usr.client.base_CharacterNames() + list("Cancel")
if(name == "Cancel")
usr.HasItUp = 0
return
else
usr.client.base_LoadMob(name)
else
return
turf/DELETE
Click()
var/savefile/F = usr.client.base_PlayerSavefile()
F.cd = "/players/[usr.ckey]/mobs/"
var/list/characters = F.dir
var/b = 0
for (var/entry in characters)
b ++
if(b == 0)
usr << "You don't have any saved characters on this server."
if(usr.HasItUp == 0)
usr.HasItUp = 1
var/name = input("What is the name of the character you want to delete?","Character Delete") in usr.client.base_CharacterNames() + list("Cancel")
if(name == "Cancel")
usr.HasItUp = 0
return
else
switch(alert("Are you absolutely sure you want to delete [name]?","Character Delete","No","Yes"))
if("Yes")
usr.HasItUp = 0
usr.client.base_DeleteMob(name)
if("No")
usr.HasItUp = 0
return
else
return


Problem description:
Well, the turfs are placed good on the map and etc. But when u try to click them ingame, it doesn't work. What am I doing wrong here?

Set the mouse_opacity of the turfs to 2. With mouse_opacity set to the default value of 1, only non-transparent pixels of an atom's icon will register a click. With it set to 2, any pixels within that atom's bounds (so long as it's not intercepted by some other atom on top of it, of course) will register the click.

Also: don't use goto. Ever. In this case, you'd want a do-while() loop, looking something like:

turf/newbutton/Click()
var/name
do
name = input()
while(is_invalid_name(name))
//blah

proc/is_invalid_name(var/name)
if(name in banned) // or whatever
return 1
return 0