PDA

Просмотр полной версии : [Вопрос] Не правильно работает проверка



Сергей
27.01.2019, 22:28
Доброго времени суток, делаю выдачу ключей, и вот незадача, снова проблема.
Проблема заключается в том, чтобы выдавать и забирать ключи.
В чём же проблема?
В том, что я хочу добиться вот такого результата:
Ввожу команду, допустим /give id/name id_car
Если допустим у игрока есть уже ключ от данного автомобиля, значит мы его убираем, делаем =-1
Если же такого ида машины не найдено, добавляем его PlayerInfo[params[0]][p_Id_CAR][i] = params[1]
Собственно код:



new count;
for(new i = 0; i < 5; i++)
{
if(PlayerInfo[params[0]][p_Id_CAR][i] != -1) count++;
if(count == 5) return SCM(playerid,-1,"Данному игроку нельзя выдать больше ключей.");
else
{
if(PlayerInfo[params[0]][p_Id_CAR][i] == params[1])
{
if(PlayerInfo[params[0]][p_Id_CAR][i] == -1) continue;
PlayerInfo[params[0]][p_Id_CAR][i] = -1;
SCM(playerid,-1,"Вы забрали ключ от транспорта");
break;
}
else if(PlayerInfo[params[0]][p_Id_CAR][i] == -1)
{
if(PlayerInfo[params[0]][p_Id_CAR][i] == params[1]) continue;
PlayerInfo[params[0]][p_Id_CAR][i] = params[1];
SCM(playerid,-1,"Вы выдали ключ от транспорта");
break;

}
}
}

Andrik851
27.01.2019, 23:52
Доброго времени суток, делаю выдачу ключей, и вот незадача, снова проблема.
Проблема заключается в том, чтобы выдавать и забирать ключи.
В чём же проблема?
В том, что я хочу добиться вот такого результата:
Ввожу команду, допустим /give id/name id_car
Если допустим у игрока есть уже ключ от данного автомобиля, значит мы его убираем, делаем =-1
Если же такого ида машины не найдено, добавляем его PlayerInfo[params[0]][p_Id_CAR][i] = params[1]
Собственно код:



new count;
for(new i = 0; i < 5; i++)
{
if(PlayerInfo[params[0]][p_Id_CAR][i] != -1) count++;
if(count == 5) return SCM(playerid,-1,"Данному игроку нельзя выдать больше ключей.");
else
{
if(PlayerInfo[params[0]][p_Id_CAR][i] == params[1])
{
if(PlayerInfo[params[0]][p_Id_CAR][i] == -1) continue;
PlayerInfo[params[0]][p_Id_CAR][i] = -1;
SCM(playerid,-1,"Вы забрали ключ от транспорта");
break;
}
else if(PlayerInfo[params[0]][p_Id_CAR][i] == -1)
{
if(PlayerInfo[params[0]][p_Id_CAR][i] == params[1]) continue;
PlayerInfo[params[0]][p_Id_CAR][i] = params[1];
SCM(playerid,-1,"Вы выдали ключ от транспорта");
break;

}
}
}

у меня есть команда незнаю может чем нибудь и поможет но у меня на сервере она работает



CMD:givekey(playerid, params[])
{
if(sscanf(params,"ui",params[0],params[1])) return SendClientMessage(playerid, COLOR_LIME,"Информация:{FFFFFF} /givekey [id игрока] [1]");
if(!IsPlayerConnected(params[0])) return SendClientMessage(playerid, COLOR_GREY, "Такого игрока нет");
else if(PlayerLogged[params[0]] == false) return SendClientMessage(playerid, COLOR_GREY, "Игрок не ввел пароль!");
else if(GetPlayerDistanceToPlayer(playerid, params[0]) > 3.0 || GetPlayerVirtualWorld(playerid) != GetPlayerVirtualWorld(params[0])) return SendClientMessage(playerid, COLOR_GREY, "Игрок слишком далеко!");
if(params[1] == 1)
{
if(PI[playerid][PlayerCarID][0] == INVALID_VEHICLE_ID) return SendClientMessage(playerid, COLOR_DARKORANGE, "Команда доступна только владельцам авто");
else if(PI[params[0]][pVehicleKey][0]) return SendClientMessage(playerid, COLOR_DARKORANGE, "У игрока уже есть ключи от транспорта #1");
PI[params[0]][pVehicleKey][0] = PI[playerid][PlayerCarID][0];
new string[128];
format(string, sizeof(string), "Вы получили ключи от транспорта #1 от %s", GetName(playerid));
SendClientMessage(params[0], COLOR_BLUE, string);
format(string, sizeof(string), "Вы выдали %s ключи от вашего транспорта #1", GetName(params[0]));
SendClientMessage(playerid, COLOR_LIME, string);
}
return 1;
}


а вот забирать ключи



CMD:takekey(playerid, params[])
{
if(sscanf(params,"ui",params[0],params[1])) return SendClientMessage(playerid,COLOR_LIME,"Информация: /takekey [id игрока] [1]");
if(!IsPlayerConnected(params[0])) return SendClientMessage(playerid, COLOR_GREY, "Такого игрока нет");
else if(PlayerLogged[params[0]] == false) return SendClientMessage(playerid, COLOR_GREY, "Игрок не ввел пароль!");
else if(GetPlayerDistanceToPlayer(playerid, params[0]) > 3.0 || GetPlayerVirtualWorld(playerid) != GetPlayerVirtualWorld(params[0])) return SendClientMessage(playerid, COLOR_GREY, "Игрок слишком далеко!");
if(params[1] == 1)
{
if(PI[playerid][PlayerCarID][0] == INVALID_VEHICLE_ID) return SendClientMessage(playerid, COLOR_DARKORANGE, "Команда доступна только владельцам авто");
PI[params[0]][pVehicleKey][0] = 0;
new string[128];
format(string, sizeof(string), "%s забрал у Вас ключи от транспорта", GetName(playerid));
SendClientMessage(params[0], COLOR_BLUE, string);
format(string, sizeof(string), "Вы забрали у %s ключи от вашего транспорта", GetName(params[0]));
SendClientMessage(playerid, COLOR_LIME, string);
}
return 1;
}

Сергей
28.01.2019, 00:31
у меня есть команда незнаю может чем нибудь и поможет но у меня на сервере она работает


Не помогло, но всё равно, спасибо)

Сергей
29.01.2019, 15:03
Решил вопрос, можно закрывать.