helloWorld
Дебютант
Доброго времени суток!
Возникла такая проблема. Пишу команду /invite на zcmd. Использую format для добавления информации о названии фракции и нике игрока, который приглашает.
Все компилируется без ошибок, но в игре при вводе команды выдает, что якобы команды не существует (это я прописал в public OnPlayerCommandPerformed), хотя до ввода ID игрока подсказка о пропущенном ID отображается.
Сам код команды:
Я уверен на ~70% в том, что ошибка возникает из-за format, потому что без него команда может работать.
Возникла такая проблема. Пишу команду /invite на zcmd. Использую format для добавления информации о названии фракции и нике игрока, который приглашает.
Все компилируется без ошибок, но в игре при вводе команды выдает, что якобы команды не существует (это я прописал в public OnPlayerCommandPerformed), хотя до ввода ID игрока подсказка о пропущенном ID отображается.
PHP:
public OnPlayerCommandPerformed(playerid, cmdtext[], success) {
if(!success) return SendClientMessage(playerid, COLOR_ERROR, "Ошибка: Такой команды не существует. Используйте /help.");
return 1;
}
PHP:
CMD:invite(playerid, params[]){
if(!IsAbleToInvite(playerid)) return SendClientMessage(playerid, COLOR_ERROR, "Ошибка: Вам недоступна данная возможность");
new targetid;
if(sscanf(params, "d", targetid)) return SendClientMessage(playerid, COLOR_ERROR, "Введите: /invite [id игрока]");
else if(targetid == INVALID_PLAYER_ID) return SendClientMessage(playerid, COLOR_ERROR, "Ошибка: Данный игрок не онлайн.");
else if(PlayerInfo[targetid][pLogged] == 0) return SendClientMessage(playerid, COLOR_ERROR, "Ошибка: Данный игрок не авторизован.");
else if(PlayerInfo[targetid][pLevel] < 2) return SendClientMessage(playerid, COLOR_ERROR, "Ошибка: Игрок еще не достиг 2 уровня.");
else if(PlayerInfo[targetid][pLeader] > 0) return SendClientMessage(playerid, COLOR_ERROR, "Ошибка: Лидера нельзя принимать в организацию.");
else if(IsPlayerInAnyVehicle(targetid)) return SendClientMessage(playerid, COLOR_ERROR, "Ошибка: Игрок не должен находиться в транспорте.");
else if(!IsPlayerStream(3.0, playerid, targetid, 1)) return SendClientMessage(playerid, COLOR_ERROR, "Ошибка: Вы слишком далеко от игрока.");
new string[256];
format(string, sizeof(string), "Вы предлагаете %s трудоустроиться в вашу организацию.", PlayerInfo[targetid][pName]);
SendClientMessage(playerid, COLOR_BLUE, string);
format(string, sizeof(string), "%s %s предлагает вам трудоустроиться в %s\n\nВы согласны?", FractionRang[PlayerInfo[playerid][pMember]][PlayerInfo[playerid][pRang]], PlayerInfo[playerid][pName], FractionName[PlayerInfo[playerid][pMember]]);
ShowPlayerDialog(targetid, 29, 0, "{2ac1fc}Вступление в организацию", string, "Да", "Нет");
SetPVarInt(targetid, "offerfractionid", PlayerInfo[playerid][pMember]);
SetPVarInt(targetid, "offerplayer", playerid);
SetPVarInt(playerid, "actplayerid", targetid);
return 1;
}
Я уверен на ~70% в том, что ошибка возникает из-за format, потому что без него команда может работать.
Последнее редактирование:
