StacoNiK
Дебютант
Приветствую. При вводе текста в команде (пример: /falsify 0 Rafe_White) вместо второго символа в новом имени появляется левый символ (сначала была русская буква д, после внесения некоторых изменений в код - значок евро).
Код:
P.S Тут уже полный говно-код из-за огромного количества попыток исправить данную проблему.
Код:
PHP:
CMD:falsify(playerid, params[])
{
if(PlayerLogged[playerid] == 0) return true;
if(sscanf(params, "ds[32]",params[0],params[1])) return SendClientMessage(playerid, COLOR_WHITE, "Введите: /falsify [id игрока] [новое имя]");
if(params[0] > MAX_PLAYERS || params[0]<0) return 1;
if(PlayerLogged[params[0]] == 0) return true;
params[2]=5000;
if(!IsAMafia(playerid)) return SendClientMessage(playerid, COLOR_GREY, YouCanNot);
if(strlen(params[1]) > MAX_PLAYER_NAME) return 1;
if(params[2]>GetMoney(params[0])) return SendClientMessage(playerid, COLOR_GREY, "У игрока недостаточно средств!");
new n;
switch(PlayerInfo[playerid][pMember])
{
case 16: n=6;
case 17: n=7;
case 18: n=8;
}
if(!IsPlayerInRangeOfPoint(playerid, 100.0, plcord[n][zX], plcord[n][zY], plcord[n][zZ])) return SendMes(playerid, COLOR_GREY, "Вы должны находиться в особняке мафии!");
if(!IsPlayerInRangeOfPlayer(3.0, playerid, params[0])) return SendClientMessage(playerid, COLOR_GREY, "Игрок слишком далеко!");
SetPVarInt(params[0],"ChangePID",playerid);
strmid(newname[params[0]],params[1], 0, strlen(params[1]), MAX_PLAYER_NAME);
SetPVarInt(params[0],"ChangePrice",params[2]);
SendMes(playerid, COLOR_BLUE, "Вы предложили %s новые документы!",sendername(params[0]));
SendMes(params[0], COLOR_GREEN, "%s предложил вам новые документы!",sendername(playerid));
format(string,128,"%s предлагает вам сменить имя на {FFA078}%s{FFFFFF}\nЦена: {FF9585}%i ${FFFFFF}\nВы согласны?",sendername(playerid), newname[params[0]],params[2]);
ShowPlayerDialog(params[0], D_TARGET+5, 0, "Сменить имя",string,"Да","Нет");
return true;
}
