Hmm, hat doch geklappt was du vorgeschlagen hast, das mit SetP layerName weiter runter setzen, wieso kann ich mir nicht erklären .
Noch eine letzte Frage:
Ich habe einen weiteren Befehl erstellt womit ich den Namen ändern kann von Spielern die nicht online sind. Der funktioniert problemlos, nur benötige ich eine Abfrage ob der Name bereits in Benutzung ist. Das kann ich ja eigentlich mit
if(mysql_num_rows() == 0)
{
}
machen, aber im Befehl frage ich ja auch ab ob der Name in der Datenbank existiert. Wie kriege ich beides unter einem Hut?
CMD:setnameoff(playerid, params[])
{
new dName[24], dNewname[24], cQuery[144];
if(pData[playerid][P_Admin] < 6) return
SendClientMessage(playerid, COLOR_RED, LV_Fail);
if(sscanf(params,"s[24]s[24]", dName, dNewname)) return
SendClientMessage(playerid, COLOR_RED, "Use: /setnameoff <name> <newname>");
if(!(4 < strlen(params[1]) < MAX_PLAYER_NAME)) return
SendClientMessage(playerid, COLOR_RED, "The name must be min 4 chars and max 23 chars!");
format(cQuery, sizeof(cQuery), "SELECT * FROM `players` WHERE Name = '%s'", dNewname);
mysql_query(MySQL, cQuery);
mysql_store_result();
format(cQuery, sizeof(cQuery), "SELECT * FROM `players` WHERE Name = '%s'", dName);
mysql_query(MySQL, cQuery);
mysql_store_result();
if(mysql_num_rows() > 0)
{
new Update[128];
format(Update, sizeof(Update), "UPDATE `players` SET Name = '%s' WHERE Name = '%s'", dNewname, dName);
mysql_query(MySQL, Update);
format(Update, sizeof(Update), "UPDATE `achievements` SET Name = '%s' WHERE Name = '%s'", dNewname, dName);
mysql_query(MySQL, Update);
format(Update, sizeof(Update), "UPDATE `achievements` SET Name = '%s' WHERE Name = '%s'", dNewname, dName);
mysql_query(MySQL, Update);
format(Update, sizeof(Update), "UPDATE `interface` SET Name = '%s' WHERE Name = '%s'", dNewname, dName);
mysql_query(MySQL, Update);
format(Update, sizeof(Update), "UPDATE `inventory` SET Name = '%s' WHERE Name = '%s'", dNewname, dName);
mysql_query(MySQL, Update);
format(Update, sizeof(Update), "UPDATE `playerskills` SET Name = '%s' WHERE Name = '%s'", dNewname, dName);
mysql_query(MySQL, Update);
format(Update, sizeof(Update), "UPDATE `unbans` SET Name = '%s' WHERE Name = '%s'", dNewname, dName);
mysql_query(MySQL, Update);
format(cQuery, sizeof(cQuery), "You've changed {FF0000}%s's{FFFFFF} Name to {FF0000}%s", dName, dNewname);
SendClientMessage(playerid, COLOR_RED, cQuery);
format(cQuery, sizeof(cQuery), "[Namechange] %s have set %s's Name to %s", GetName(playerid), dName, dNewname);
writeLog("Logs/General.txt", cQuery);
}
else
{
SendClientMessage(playerid, COLOR_RED, "This name doesn't exists!");
}
return 1;
}