summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJesusaves <cpntb1@ymail.com>2021-06-19 23:13:49 -0300
committerJesusaves <cpntb1@ymail.com>2021-06-19 23:13:49 -0300
commitba98b21f554f6cd120e18f97fba24e6f42f05a62 (patch)
treedfa59bfb47652f047e686aabeaf72d73a4034f76
parentf9417d5dbd32e14eeac30074c9e3a488aaef0891 (diff)
downloadserverdata-ba98b21f554f6cd120e18f97fba24e6f42f05a62.tar.gz
serverdata-ba98b21f554f6cd120e18f97fba24e6f42f05a62.tar.bz2
serverdata-ba98b21f554f6cd120e18f97fba24e6f42f05a62.tar.xz
serverdata-ba98b21f554f6cd120e18f97fba24e6f42f05a62.zip
Add @charrename or @forcerename, which bypass some nick restrictions.
Command is GM 80, Prsm will need to use GM Storage to force nick changes. Trolls can be mercilessy @block'ed and nuked away, but use @accinfo before. close #55
-rw-r--r--npc/commands/force-rename.txt46
-rw-r--r--npc/scripts.conf1
2 files changed, 47 insertions, 0 deletions
diff --git a/npc/commands/force-rename.txt b/npc/commands/force-rename.txt
new file mode 100644
index 00000000..82ba46eb
--- /dev/null
+++ b/npc/commands/force-rename.txt
@@ -0,0 +1,46 @@
+// @charrename/@forcerename atcommand
+// FORCEFULLY renames a char. Collision is handled by SQL.
+//
+// group lv: 80+
+// group char lv: 80+
+// log: True
+//
+// usage: npc/commands/force-rename.txt
+// @charrename New Nickname
+// #forcerename "char" <Nickname>
+//
+
+- script @charrename 32767,{
+ end;
+
+OnRename:
+ // array size validation
+ if (getarraysize(.@atcmd_parameters$) <= 0) {
+ dispbottom("Syntax requires argument between 3 and 30 chars long.");
+ end;
+ }
+ // Set new nickname
+ .@nickname$ += implode(.@atcmd_parameters$, " ");
+ .@nickname$ = strip(.@nickname$);
+ // Empty nickname
+ if (.@nickname$ == "" || .@nickname$ == "NULL")
+ end;
+ // Too long or too short nickname
+ if (getstrlen(.@nickname$) > 30 || getstrlen(.@nickname$) < 3)
+ end;
+ // Attempt to rename. If name is taken, will fail at SQL query
+ dispbottom l("Your nickname has been redefined by GM Team.");
+ .@id=getcharid(3);
+ .@n$=strcharinfo(0);
+ detachrid();
+ kick(.@id, 12);
+ sleep(25);
+ query_sql(sprintf("UPDATE `char` SET `name`='%s' WHERE `name`='%s'", escape_sql(.@nickname$), escape_sql(.@n$)));
+ debugmes "[SUCCESS] char %s renamed to %s", .@n$, .@nickname$;
+ end;
+
+OnInit:
+ bindatcmd "charrename", "@charrename::OnRename", 80, 80, 1;
+ bindatcmd "forcerename", "@charrename::OnRename", 80, 80, 1;
+ end;
+}
diff --git a/npc/scripts.conf b/npc/scripts.conf
index b2c936e3..6ad4e69b 100644
--- a/npc/scripts.conf
+++ b/npc/scripts.conf
@@ -94,6 +94,7 @@
// Commands
"npc/commands/debug-quest.txt",
"npc/commands/debug.txt",
+"npc/commands/force-rename.txt",
"npc/commands/gm.txt",
"npc/commands/ipcheck.txt",
"npc/commands/language.txt",