samperonline
Умник
Привет, пытаюсь сделать смену ника через донат, но какой то бред, при смене ника ник меняется бизнес остается на старом нике, дом на старом нике, система семьи на старом нике, и дом на колесах на старом нике, крч все что сохраняю при смене ника все остается на старом нике
вот диалог где вписывается новый ник при смене
вот сток где заменяю ник если типа нон рп ник
а это команда если рп ник то меняет админ
вот диалог где вписывается новый ник при смене
C++:
case 8: SPD(playerid, 2655, DIALOG_STYLE_INPUT,"{f0d611}Смена нонРП ника","\
{FFFFFF}Введите новый никнейм\n\n\
{FFFFFF}Пример: Name_Name\n\n\
{ffffff}Возможно сменить только если Ваш ник не соответствует RP правилам.\n\n\
Во всех остальных случаях смена осуществляется с помощью донат услуг.\n\n\
{FFFFFF}После подачи заявки ожидайте одобрения администрации.","Принять","Отмена");
C++:
case 2655:
{
if(!response) return true;
else
{
//if(PlayerInfo[playerid][pAdmin]) return SendClientMessage(playerid, -1, "Вы являетесь администратором. Смена ника через основателя."), callcmd::mainmenu(playerid);
if(!strlen(inputtext)) return SPD(playerid, 2655, DIALOG_STYLE_INPUT,"{f0d611}Смена ника","{FFFFFF}Напишите новый никнейм в окошко\n\n{FFFFFF}Например: Frederico_Bellantoni, Zina_West\n\n{FFFFFF}Проверяйте каждый знак, чтобы не были проблемы.","Принять","Отмена");
if(strlen(inputtext) < 6 || strlen(inputtext) > 24) return SPD(playerid, 2655, DIALOG_STYLE_INPUT,"{f0d611}Смена ника","{ffffff}Ник должен состоять от 6 до 24 символов.","Принять","Отмена");
new str_bukvi = 0;
for(new i = 0; i < strlen(inputtext); i++)
{
switch(inputtext[i])
{
case 'A'..'Z':
{
str_bukvi++;
}
case 'a'..'z', '_':
{
}
default:
{
return SPD(playerid, 2655, DIALOG_STYLE_INPUT,"{f0d611}Смена ника","{ffffff}Ник должен состоять от 6 до 24 символов.","Принять","Отмена");
}
}
}
if(str_bukvi < 2) return SPD(playerid, 2655, DIALOG_STYLE_INPUT,"{f0d611}Смена ника","{ffffff}Имя и фамилия должны начинаться с заглавной буквы.","Принять","Отмена");
if(!GetPVarInt(playerid, "Changename")) return format(stringer, sizeof(stringer), "SELECT * FROM `accounts` WHERE `Name` = '%s'", inputtext), mysql_function_query(connects, stringer, true, "OnPlayerCheckName", "is", playerid, inputtext);
else SendClientMessage(playerid, -1, "{BEBEBE}Вы уже отправили заявку на смену ника");
}
}
C++:
publics: OnPlayerCheckName(playerid, inputtext[])
{
new stext[128], rows, fields;
cache_get_data(rows, fields);
if(rows) return SendClientMessage(playerid, -1, "Ошибка: данный никнэйм занят другим игроком");
else
{
if(GetPVarInt(playerid, "ChangeAdminName"))
{
new s2text[144];
DeletePVar(playerid, "ChangeAdminName");
format(s2text, sizeof(s2text), "%s изменил(а) имя на %s", PlayerInfo[playerid][pNames], inputtext); SendClientMessageToAll(0x99cc00AA,s2text);
format(s2text, sizeof(s2text), "UPDATE `accounts` SET `Name` = '%s' WHERE `pID` = '%d'", inputtext, PlayerInfo[playerid][pID]), mysql_function_query(connects, s2text, false, "", "");
SetPlayerName(playerid, inputtext), GetPlayerName(playerid, PlayerInfo[playerid][pNames], 32);
mysql_format(connects, mysql_query_, sizeof(mysql_query_), "INSERT INTO `setname` ( `account`, `old_nick`, `new_nick`, `date` ) VALUES ( '%d', '%s', '%e', '%d')", PlayerInfo[playerid][pID], PlayerInfo[playerid][pNames], inputtext, gettime());
mysql_function_query(connects, mysql_query_, false, "", "" );
SPD(playerid, 0000, DIALOG_STYLE_MSGBOX, "{FFA200}Имя успешно изменено","{FFFFFF}Не забудьте изменить имя в окне клиента SA-MP\nРекомендуем прямо сейчас свернуть игру и сделать это.", "Ок", "");
new housekey = PlayerInfo[playerid][pPhousekey];
if (housekey != 255)
{
strmid(HouseInfo[housekey][hOwner], stext, 0, strlen(stext), 255);
SaveHouse(housekey);
}
if(GetPlayerBizz(playerid))
{
new i = GetPVarInt(playerid, "PlayerBizz");
strmid(BizzInfo[i][bOwner],stext,0,strlen(stext),MAX_PLAYER_NAME);
SaveBizz(i);
UpdateBizz(i);
}
if(PlayerInfo[playerid][pFamily])
{
new query[256];
format(query, sizeof(query), "UPDATE `family_system` SET `fam_creator` = '%s' WHERE `fam_id` = %d", PlayerInfo[playerid][pNames], PlayerInfo[playerid][pFamily]);
mysql_function_query(connects, query, false, "", "");
}
if(gVehicleCamperID[playerid] != INVALID_VEHICLE_ID)
{
new
cmp_string[256],
camperid = gVehicleCamperID[playerid],
camper_name[MAX_PLAYER_NAME + 1]
;
format(cmp_string, sizeof(cmp_string),"UPDATE `info_camper` SET `Owner` = '%s' WHERE `ID` = '%d' LIMIT 1",camper_name,CamperInfo[camperid][c_id]);
mysql_tquery(connects, cmp_string, "", "");
}
return true;
}
SetPVarInt(playerid, "Changename", 1), SetPVarString(playerid, "ChangenameVariant", inputtext);
format(stext, 100, "[Смена ника] %s[%d] желает сменить свой ник на: %s [Подтвердить: /okay %d]", PlayerInfo[playerid][pNames], playerid, inputtext, playerid), SendAdminMessage(0x9ACD32AA, stext);
}
return true;
}
C++:
CMD:okay(playerid, params[])
{
if(PlayerInfo[playerid][pAdmin] < 10) return true;
new s2text[132], stext[MAX_PLAYER_NAME];
if(sscanf(params, "d", params[0])) return SendClientMessage(playerid, -1, "Используйте: /okay [playerid]");
if(!IsPlayerConnected(params[0])) return SendClientMessage(playerid, -1, "Ошибка: этого игрока нет на сервере");
if(!GetPVarInt(params[0], "Changename")) return SendClientMessage(playerid, -1, "Ошибка: этот игрок не отправлял заявку на смену никнэйма");
GetPVarString(params[0], "ChangenameVariant", stext, 32); format(s2text, sizeof(s2text), "%s изменил(а) имя на %s", PlayerInfo[params[0]][pNames], stext); SendClientMessageToAll(0x99cc00AA,s2text);
format(s2text, sizeof(s2text), "UPDATE `accounts` SET `Name` = '%s' WHERE `pID` = '%d'", stext, PlayerInfo[params[0]][pID]), mysql_function_query(connects, s2text, false, "", "");
SetPlayerName(params[0], stext), GetPlayerName(params[0], PlayerInfo[params[0]][pNames], 32), DeletePVar(params[0], "ChangenameVariant"), DeletePVar(params[0], "Changename");
mysql_format(connects, mysql_query_, sizeof(mysql_query_), "INSERT INTO `setname` ( `account`, `old_nick`, `new_nick`, `date` ) VALUES ( '%d', '%s', '%e', '%d')", PlayerInfo[params[0]][pID], PlayerInfo[params[0]][pNames], stext, gettime());
mysql_function_query(connects, mysql_query_, false, "", "" );
new string[144];
format(string,sizeof(string),"[A] Заявку на смену NonRP ника одобрил администратор - %s[%d]",PlayerInfo[playerid][pNames], playerid);
SendAdminMessage(COLOR_GREY,string);
SPD(params[0], 0000, DIALOG_STYLE_MSGBOX, "{FFA200}Имя успешно изменено","{FFFFFF}Не забудьте изменить имя в окне клиента SA-MP\nРекомендуем прямо сейчас свернуть игру и сделать это.", "Ок", "");
new housekey = PlayerInfo[params[0]][pPhousekey];
if (housekey != 255)
{
strmid(HouseInfo[housekey][hOwner], stext, 0, strlen(stext), 255);
SaveHouse(housekey);
}
if(GetPlayerBizz(params[0]))
{
new i = GetPVarInt(params[0], "PlayerBizz");
strmid(BizzInfo[i][bOwner],stext,0,strlen(stext),MAX_PLAYER_NAME);
SaveBizz(i);
UpdateBizz(i);
}
if(PlayerInfo[params[0]][pFamily])
{
new query[256];
format(query, sizeof(query), "UPDATE `family_system` SET `fam_creator` = '%s' WHERE `fam_id` = %d", PlayerInfo[params[0]][pNames], PlayerInfo[params[0]][pFamily]);
mysql_function_query(connects, query, false, "", "");
}
if(gVehicleCamperID[playerid] != INVALID_VEHICLE_ID)
{
new
cmp_string[256],
camperid = gVehicleCamperID[playerid],
camper_name[MAX_PLAYER_NAME + 1]
;
format(cmp_string, sizeof(cmp_string),"UPDATE `info_camper` SET `Owner` = '%s' WHERE `ID` = '%d' LIMIT 1",camper_name,CamperInfo[camperid][c_id]);
mysql_tquery(connects, cmp_string, "", "");
}
return true;
}
