function script isContain { set .@str$, getarg(0, ""); set .@exc$, getarg(1, ""); if (.@str$ == "" || .@exc$ == "") return 0; for (set .@i, 0; .@i < getstrlen(.@exc$); set .@i, .@i+1) if (countstr(.@str$, charat(.@exc$, .@i)) > 0) return 1; return 0; } prontera,156,150,3 script Name Changer 66,{ set .@npcname$, "[^ff0000Name Changer^000000]"; while (1) { mes .@npcname$; mes "Would you like to change your name?"; next; switch (select("Yes:No")) { case 1: { mes .@npcname$; mes "Very well. Input what you'd like to change it to."; input .@newname$; next; query_sql("SELECT `char_id` FROM `char` WHERE `name`='" + escape_sql(.@newname$) + "'", .@id); if (.@id[0] > 0) { mes .@npcname$; mes "Someone already used this name.."; next; select("Back"); continue; } if (isContain(.@newname$, "!@#$%^&*()-=+_[]{}")) { mes .@npcname$; mes "Your name contains illegal characters."; next; select("Back"); continue; } if (getstrlen(.@newname$) < 4 || getstrlen(.@newname$) > 23) { mes .@npcname$; mes "Your name length must be around 4~23 english characters"; next; select("Back"); continue; } mes .@npcname$; mes "Are you sure you want to change your name to " + .@newname$ + "?"; next; switch (select("Yes:Back:No")) { case 1: { mes .@npcname$; mes "Okie dokie!"; mes "You'll have to relog for you name to change."; close2; query_sql "UPDATE `char` SET `name` = '" + escape_sql(.@newname$) + "' WHERE `char_id` = '" + getcharid(0) + "'"; end; } case 2: continue; case 3: { mes .@npcname$; mes "Okay. Come back if you change your mind."; close; } } } case 2: close; } } }