Доступ к архиву

Переход в группу "Пользователь"

300.00 ₽
Одноразовый платёж
Быстрый переход в группу "Пользователи", без надобности написания постов и ожидания.

Покупка дает возможность:
Быть полноправным участником форума
Нормальное копирование кода
Создавать темы
Скачивать файлы
Доступ к архиву Pawno-Info

Делаем смену ника

Статус
В этой теме нельзя размещать новые ответы.

Donny^^

Ученик
Здравствуйте форумчани ,сегодня я решил выложить смену ника для RLS модов mYSQL r7.
И так начнем,в диалог 9623 добавляем:
PHP:
case 10:
					{
			        	ShowPlayerDialog(playerid, 2655, DIALOG_STYLE_INPUT,"Смена ника","{ffffff}Укажите ник на который хотите сменить свое имя.","Принять","Отмена");
					}
				}
			}
			else return true;
		}
		case 2655:
		{
		    if(!response) return true;
		    else
		    {
		        if(!strlen(inputtext)) return ShowPlayerDialog(playerid, 2655, DIALOG_STYLE_INPUT,"Смена ника","{ffffff}Укажите ник на который хотите сменить свое имя.","Принять","Отмена");
				if(strlen(inputtext) < 6 || strlen(inputtext) > 24) return ShowPlayerDialog(playerid, 2655, DIALOG_STYLE_INPUT,"Смена ника","{ffffff}Ник должен состоять от 6 до 24 символов.","Принять","Отмена");
   				strmid(MyName[playerid],inputtext, 0, strlen(inputtext), 24);
				format(mysql_query, sizeof(mysql_query),"SELECT `Name` FROM `Accounts` WHERE `Name` = '%s'", inputtext);
				mysql_function_query(connects, mysql_query, true, "OnPlayerSetName","d", playerid);
			}
		}
Далее...Ко всем командам добавляем ( Команда на Life-CMD)
PHP:
CMD:setname(playerid, params[]) {
		if(PlayerInfo[playerid][pReadmya] >= 7) {
			if(sscanf(params, "u",params[0])) return SendClientMessage(playerid, COLOR_LIGHTRED, "/setname [id]");
			if(strlen(MyName[params[0]]) < 6) return SendClientMessage(playerid, COLOR_LIGHTRED, "Игрок не желает сменить ник.");
			SetPlayerName(params[0], MyName[params[0]]);
			new mysql_query[145];
			format(mysql_query, sizeof(mysql_query), "UPDATE `Accounts` SET `Name` = '%s' WHERE `Name` = '%s'", MyName[params[0]],PlayerInfo[params[0]][pNames]);
			mysql_function_query(connects, mysql_query, false, "", "");
			new housekey = PlayerInfo[params[0]][pPhousekey];
   			if (housekey != 255)
      		{
      			strmid(HouseInfo[housekey][hOwner], MyName[params[0]], 0, strlen(MyName[params[0]]), 255);
      			SaveHouse(housekey);
         	}
         	new bizkey = PlayerInfo[giveplayerid][pPbiskey];
          	if (bizkey != 255)
           	{
           		if (bizkey > 100)
             	{
       				bizkey -= 100;
           			strmid(SBizzInfo[bizkey][sOwner], MyName[params[0]], 0, strlen(MyName[params[0]]), 255);
           			SaveSBizz(bizkey);
              	}
               	else
                {
                	strmid(BizzInfo[bizkey][bOwner], MyName[params[0]], 0, strlen(MyName[params[0]]), 255);
                 	SaveBizz(bizkey);
                }
			}
			strmid(PlayerInfo[params[0]][pNames],MyName[params[0]], 0, strlen(MyName[params[0]]), 24);
         	strmid(MyName[params[0]],"-", 0, strlen("-"), 24);
         	SendClientMessage(playerid, COLOR_LIGHTRED, "Вы сменили ник игроку.");
			SendClientMessage(params[0], COLOR_LIGHTRED, "Смена ника была подтверждена.");
		}
		return true;
	}
Команда без командного процессора
PHP:
else if(strcmp(cmd, "/setname", true) == 0)
	{
		if(PlayerInfo[playerid][pAdmin] >= 7)
	    {
			if(!strlen(tmp)) return SendClientMessage(playerid, COLOR_WHITE, " Введите: /setname [id]");
		    giveplayerid = ReturnUser(tmp);
			if(strlen(MyName[giveplayerid]) < 6) return SendClientMessage(playerid, COLOR_LIGHTRED, "Игрок не желает сменить ник.");
			SetPlayerName(giveplayerid, MyName[giveplayerid]);
			new mysql_query[145];
			format(mysql_query, sizeof(mysql_query), "UPDATE `Accounts` SET `Name` = '%s' WHERE `Name` = '%s'", MyName[params[0]],PlayerInfo[params[0]][pNames]);
			mysql_function_query(connects, mysql_query, false, "", "");
			new housekey = PlayerInfo[giveplayerid][pPhousekey];
   			if (housekey != 255)
      		{
      			strmid(HouseInfo[housekey][hOwner], MyName[giveplayerid], 0, strlen(MyName[giveplayerid]), 255);
      			SaveHouse(housekey);
         	}
         	new bizkey = PlayerInfo[giveplayerid][pPbiskey];
          	if (bizkey != 255)
           	{
           		if (bizkey > 100)
             	{
       				bizkey -= 100;
           			strmid(SBizzInfo[bizkey][sOwner], MyName[giveplayerid], 0, strlen(MyName[giveplayerid]), 255);
           			SaveSBizz(bizkey);
              	}
               	else
                {
                	strmid(BizzInfo[bizkey][bOwner], MyName[giveplayerid], 0, strlen(MyName[giveplayerid]), 255);
                 	SaveBizz(bizkey);
                }
			}
			strmid(PlayerInfo[giveplayerid][pNames],MyName[giveplayerid], 0, strlen(MyName[giveplayerid]), 24);
         	strmid(MyName[giveplayerid],"-", 0, strlen("-"), 24);
         	SendClientMessage(playerid, COLOR_LIGHTRED, "Вы сменили ник игроку.");
			SendClientMessage(giveplayerid, COLOR_LIGHTRED, "Смена ника была подтверждена.");
		}
		return true;
	}
В конец мода добавляем
PHP:
publics: OnPlayerSetName(playerid)
{
    new rows, fields;
    cache_get_data(rows, fields);
    if(rows) {
        strmid(MyName[playerid],"-", 0, strlen("-"), 24);
        SendClientMessage(playerid,COLOR_RED,"Данный ник занят.");
	}
	else
	{
	    new string[145];
		format(string,sizeof(string),"%s[%d] хочет сменить свой ник на %s",PlayerInfo[playerid][pNames],playerid,MyName[playerid]);
		SendAdminMessage(COLOR_ORANGE, string);
	}
	return true;
}
Вот и всё,будут вопросы пишите.

Ах да и в само меню команды /mm добавляем пункт [11] Сменить ник
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху Снизу