PDA

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



Dima_Tushin
04.11.2014, 13:27
Добрый день делал на сервер автомобили такси/автобусы

на пример: Работа такси pJob = 2

я не работаю в такси у меня pJob = 0 я сажусь в машину такси и легко катаюсь на ней меня не выкидывает и надпись не появляется "Вы не таксист" Помогите вот код полный


public OnPlayerStateChange(playerid, newstate, oldstate)
{
Freeze[playerid] = 1;
new newcars = GetPlayerVehicleID(playerid);
if(newstate == PLAYER_STATE_DRIVER || oldstate == PLAYER_STATE_DRIVER)
{
if(Fuell[newcars] < 0)
{
SendClientMessage(playerid, COLOR_GREEN, "В машине нету бензина!!!");
PlayerInfo[playerid][pFuelcar] = 0;
return 1;
}
if(zavodis[playerid] == false || zavodis[playerid] == true)
{
SendClientMessage(playerid, COLOR_GREEN, "Чтобы завести двигатель нажмите кнопку '2' или введите /en");
}
return 1;
}
if(newstate == PLAYER_STATE_DRIVER || oldstate == PLAYER_STATE_DRIVER)
{
if(newcars < SFa[0] || newcars > SFa[1])
{
if(PlayerInfo[playerid][pMember] == 3 && PlayerInfo[playerid][pLeader] == 3) { }
else
{
SendClientMessage(playerid, COLOR_WHITE, "Вы не солдат армии SFa");
RemovePlayerFromVehicle(playerid);
}
return 1;
}
if(newcars < MSFa[0] || newcars > MSFa[1])
{
if(PlayerInfo[playerid][pMember] == 3 && PlayerInfo[playerid][pLeader] == 3)
{
if(MatInfo[newcars-MSFa[0]][mLoad] >= 10000)
{
format(Stringers, sizeof(Stringers), "Компоненты материалов в вертолёте: %d/10000", MatInfo[newcars-MSFa[0]][mLoad]);
SendClientMessage(playerid, COLOR_GREEN, Stringers);
SendClientMessage(playerid, COLOR_WHITE, "Отвезите материалы на зону 69");
DisablePlayerCheckpoint(playerid);
SetPlayerCheckpoint(playerid, -1572.7933, 51.4040, 17.3281, 10.0);
VertMats[playerid] = 2;//Доставка на склад армии SFa
}
else
{
format(Stringers, sizeof(Stringers), "Компоненты материалов в вертолёте: %d/10000", MatInfo[newcars-MSFa[0]][mLoad]);
SendClientMessage(playerid, COLOR_GREEN, Stringers);
SendClientMessage(playerid, COLOR_WHITE, "Отправляйтесь на загрузку материалов");
SetPlayerCheckpoint(playerid, -1469.2386, 1489.3304, 8.2501, 10.0);
VertMats[playerid] = 1;//Отправляем на загрузку
}
}
else
{
SendClientMessage(playerid, COLOR_WHITE, "Вы не солдат армии SFa");
RemovePlayerFromVehicle(playerid);
}
return 1;
}
if(newcars < bus[0] && newcars > bus[1])
{
if(PlayerInfo[playerid][pJob] == 1) { }
else
{
SendClientMessage(playerid, COLOR_WHITE, "Вы не автобусник (( /gps - Мэрия ))");
RemovePlayerFromVehicle(playerid);
}
return 1;
}
if(newcars <= taxi[0] && newcars >= taxi[1])
{
if(PlayerInfo[playerid][pJob] == 2) { }
else
{
SendClientMessage(playerid, COLOR_WHITE, "Вы не таксист (( /gps - Мэрия ))");
RemovePlayerFromVehicle(playerid);
}
return 1;
}
if(newcars <= razprod[0] && newcars >= razprod[1])
{
if(PlayerInfo[playerid][pJob] == 4) { }
else
{
SendClientMessage(playerid, COLOR_WHITE, "Вы не развозчик продуктов! (( /gps - Мэрия ))");
RemovePlayerFromVehicle(playerid);
}
return 1;
}
if(newcars <= inkoscar[0] && newcars >= inkoscar[1])
{
if(PlayerInfo[playerid][pJob] == 6)
{
SendClientMessage(playerid, COLOR_WHITE, "(( Команды: /emptykass - открыть машину для загрузки денег!!! ))");
}
else
{
SendClientMessage(playerid, COLOR_WHITE, "Вы не инкассаторщик! (( /gps - Мэрия ))");
RemovePlayerFromVehicle(playerid);
}
}
return 1;
}
if(newstate == PLAYER_STATE_DRIVER && !SpecialVehicle(newcars))
{
STimer[playerid] = SetTimerEx("UpdateSpeedometr", 100, true, "d", playerid);
TextDrawShowForPlayer(playerid, Box[0]);
TextDrawShowForPlayer(playerid, Speedometr[0]);
TextDrawShowForPlayer(playerid, Speedometr[1]);
TextDrawShowForPlayer(playerid, Speedometr[2]);
TextDrawShowForPlayer(playerid, Speedometr[3]);
return 1;
}
if(newstate == PLAYER_STATE_ONFOOT)//выходит скрываем
{
TextDrawHideForPlayer(playerid, Box[0]);
TextDrawHideForPlayer(playerid, Speedometr[0]);
TextDrawHideForPlayer(playerid, Speedometr[1]);
TextDrawHideForPlayer(playerid, Speedometr[2]);
TextDrawHideForPlayer(playerid, Speedometr[3]);
KillTimer(STimer[playerid]);
return 1;
}
return 1;
}
вообщем помогите!!!

iDiego
04.11.2014, 17:13
автомобили точно правильно привязал?

Dima_Tushin
04.11.2014, 22:13
Все правильно!

Wise
04.11.2014, 22:36
Так какое значение переменной pJob присваивается работа таксиста? 2 или 5?
Вот пробуй. Если ID у работы таксиста другой, то замени.

if(newcars <= taxi[0] && newcars >= taxi[1])
{
if(PlayerInfo[playerid][pJob] != 2)
{
SendClientMessage(playerid, COLOR_WHITE, "Вы не таксист (( /gps - Мэрия ))");
RemovePlayerFromVehicle(playerid);
}
else return true;
}

Dima_Tushin
05.11.2014, 20:18
не помогло!

Wise
05.11.2014, 20:50
не помогло!

В проверке всё правильно. Лично проверил, всё хорошо работает.
Скинь код где ты создаёшь транспорт такси.

tspnik
06.11.2014, 07:15
В загрузке аккаунта, не правильно рассчитал sscanf, или вообще не рассчитывал, так же возможно добавил его на другую строку не по счету...

by-web
07.11.2014, 11:59
if(newcars <= taxi[0] && newcars >= taxi[1])
{
printf("%d", PlayerInfo[playerid][pJob]);
if(PlayerInfo[playerid][pJob] == 2) { }
else
{
SendClientMessage(playerid, COLOR_WHITE, "Вы не таксист (( /gps - Мэрия ))");
RemovePlayerFromVehicle(playerid);
}
return 1;
}

Замени этот участок кода и посмотри что напишет в консоль, когда сядешь в такси. Если не напишет, то условие не выполняется, то есть не правильно привязан транспорт к переменной.

Dima_Tushin
09.11.2014, 15:08
В загрузке аккаунта, не правильно рассчитал sscanf, или вообще не рассчитывал, так же возможно добавил его на другую строку не по счету...

а причем тут sscanf?

- - - Добавлено - - -

Решил проблему сам ЗакрытО!