• Уважаемый Гость.
    - Прежде чем создать свою тему, пожалуйста, попробуй воспользоваться этим -> ПОИСКОМ !!!
    - После решения Вашего вопроса (проблемы) - нажмите "Лучший ответ", на сообщении, которое его решило. За игнорирование этого действия - Вы получите соответствующее предупреждение. Мы - стараемся Вам помочь. Уделите 10 секунд - чтобы нажать кнопку. (Если у Вас нет такой возможности - укажите в последнем своем сообщении какой ответ Вы считаете лучшим. Наши модераторы сделают это за Вас)
    ЗАПРЕЩЕНО:
    - Cоздавать темы с названиями "Помогите", "Плиз", "Ошибка", "Не могу найти", "Хелп" и тому подобное;
    - Cоздавать темы без детального описания того, что нужно исправить.
    - Cоздавать темы из одного скриншота.
    За игнор правил форума - Ваша тема будет удалена, а Вы получите системное предупреждение.

При смене ника через диалог остается все на старом нике, бизнес, система семьи, дом на колесах, дом

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;
}
 
Сверху Снизу