Всем привет делал на сервер ферму и столкнулся с проблемой не могу исправить уже давно все мучаюсь и мучаюсь не могу исправить и теперь решил выложить сюда может вы мне поможете суть ошибки когда садишься в машину фермера Walton едишь на поле да все приехал на чекпоинт 5 сек прошло пикап появился (пикап работает ) потом иду за 2 машиной Walton тоже еду на поле все приехал пикап появился (получается уже 2 пикапа на поле загрузки ) вот суть ошибки: 1 пикап который мы поставили 1 машины Walton не работает а последнюю машину которую поставили на поле пикап работает как сделать чтобы все 2 пикапа функционировали
Код:
PHP код:
new FermPickup;//Пикап для сбора урожая
PHP код:
if(carid >= FermCar[0] && carid <= FermCar[1])
{
if(PlayerInfo[playerid][pFerma] != 255 || PlayerInfo[playerid][pFermaJob] == 3 || PlayerInfo[playerid][pFermaJob] == 2)
{
if(LoadZern[carid-FermCar[0]] < 1000)//Если в машине меньше 0 зёрен то...
{
new string[50+MAX_PLAYER_NAME-2];
static const ferm[] = "В грузовике %d / 1000 зёрен";
format(string, sizeof(string), ferm, LoadZern[carid-FermCar[0]]);
SendClientMessage(playerid, COLOR_GREEN, string);
new rand = random(sizeof(SborFerm_0));//Рандомное значение на собирание кустиков!
SetPlayerCheckpoint(playerid, SborFerm_0[rand][0], SborFerm_0[rand][1], SborFerm_0[rand][2],5.0);
}
else//Если больше 1000 то...
{
LoadZern[carid-FermCar[0]] = 1000;//Приравниваем значение зёрен к 1000 чтобы не было бага с количеством!
new string[50+MAX_PLAYER_NAME-2];
static const ferm[] = "В грузовике %d / 1000 зёрен";
format(string, sizeof(string), ferm, LoadZern[carid-FermCar[0]]);
SendClientMessage(playerid, COLOR_GREEN, string);
SendClientMessage(playerid, COLOR_GREEN, "Сбор урожая завершен. Теперь направляйтесь к ферме и разгрузитесь{FFFFFF} (( Командой: /funload ))");
DestroyDynamicPickup(FermPickup);//Удалили пикап
Delete3DTextLabel(FermText3D[playerid]);//Удалили текст
if(IsPlayerAttachedObjectSlotUsed(playerid, 3)) RemovePlayerAttachedObject(playerid, 3);
DisablePlayerCheckpoint(playerid);//Удалили чекпоинт
}
}
else
{
SendClientMessage(playerid, COLOR_WHITE, "Вы не Фермер/Владелец/Заместитель!");
RemovePlayerFromVehicleAC(playerid);
SetTimerEx("RemovePlayerFromVehicleEx", 3000, false, "i", playerid);
return 1;
}
}
PHP код:
public OnPlayerPickUpDynamicPickup(playerid, pickupid)
{
printf("Ferm pickupid %d", pickupid);
if(pickupid == FermPickup)
{
if(PlayerKist[playerid] == true)
{
for(new f = 0; f < sizeof(FermInfo); f++)
{
new carid = !GetPlayerVehicleID(playerid);
if(LoadZern[carid-FermCar[0]] > 1000)//Если в машине меньше 1000 зерен то...
{
new string[30+MAX_PLAYER_NAME-2];
LoadZern[carid-FermCar[0]] = 1000;
SendClientMessage(playerid, COLOR_WHITE, "Грузовик полон!");
static const ferm_1[] = "Загруженно\n{ffffff}%d / 1000";
format(string, sizeof(string), ferm_1, LoadZern[carid-FermCar[0]]);
DisablePlayerCheckpoint(playerid);
if(IsPlayerAttachedObjectSlotUsed(playerid, 3)) RemovePlayerAttachedObject(playerid, 3);
PlayerKist[playerid] = false;
}
else
{
new string[50+MAX_PLAYER_NAME-2];
FermInfo[f][fZaseeno] -= 5;//Отнимаем -5 засеености!
LoadZern[carid-FermCar[0]] += 5;//Загрузили +5 зерен!
FermZarabotok[playerid] += FermInfo[f][fPayday];//Прибовляем заработок
static const ferm[] = "~b~count:~w~+%d$";
format(string, sizeof(string), ferm, FermZarabotok[playerid]);
GameTextForPlayer(playerid, string, 3000, 1);
DisablePlayerCheckpoint(playerid);//Удалили чекпоинт
GetXYInFrontOfPlayer(playerid, X12, Y12, Z12);
SetPlayerCheckpoint(playerid, X12+random(10), Y12+random(10), Z12, 1.0);
if(IsPlayerAttachedObjectSlotUsed(playerid, 3)) RemovePlayerAttachedObject(playerid, 3);
static const ferm_1[] = "Загруженно\n{ffffff}%d / 1000";
format(string, sizeof(string), ferm_1, LoadZern[carid-FermCar[0]]);
Update3DTextLabelText(FermText3D[playerid], COLOR_YELLOW, string);
PlayerKist[playerid] = false;
if(gettime() - GetPVarInt(playerid, "BotFarm") < 20)
{
if(GetPVarInt(playerid, "BotCount") == 1)
{
static const ferm_2[] = "<<Warning>> Игрок %s[%d]: Возможно бот фермер";
format(string, sizeof(string), ferm_2, PlayerInfo[playerid][pName], playerid);
SendAdminMessage(COLOR_ADMIN, string);
SetPVarInt(playerid, "BotCount", 0);
}
}
SetPVarInt(playerid, "BotFarm", gettime());
SetPVarInt(playerid, "BotCount", GetPVarInt(playerid, "BotCount") +1);
}
}
}
else
{
SendClientMessage(playerid, COLOR_GREEN, "{00D607} Для начала соберите урожай {FFFFFF}(( Встаньте на красный чекпоинт, и ждите 15 секунд ))");
SendClientMessage(playerid, COLOR_GREEN, "{00D607} Когда соберёте положите в кузов автомобиля {FFFFFF}(( Встаньте на желтую стрелку ))");
SendClientMessage(playerid, COLOR_GREEN, "{00D607} Если захотите завершить работу, пройдите к раздевалке {FFFFFF}(( Встаньте на синий пикап у фермы ))");
SendClientMessage(playerid, COLOR_GREEN, "{00D607} Если вы фермер, то просто сядьте в машину для завершения сбора урожая, /funload - разгрузить урожай");
DisablePlayerCheckpoint(playerid);
if(IsPlayerAttachedObjectSlotUsed(playerid, 3)) RemovePlayerAttachedObject(playerid, 3);
GetXYInFrontOfPlayer(playerid, X12, Y12, Z12);
SetPlayerCheckpoint(playerid, X12+random(10), Y12+random(10), Z12, 1.0);
PlayerKist[playerid] = false;
}
}
return 1;
}
таймер после которого ставиться пикап
PHP код:
if(SbotTime_1[i] > 0)
{
SbotTime_1[i]--;
if(SbotTime_1[i] == 0)
{
SbotTime_1[i] = 0;
for(new q = 0; q < 4; q++)//Цикл место сбора урожая
{
if(IsPlayerInRangeOfPoint(i, 5.0, SborFerm_0[q][0], SborFerm_0[q][1], SborFerm_0[q][2]))//Проверяем есть ли игрок в радиусе 5 метров от чекпоинта!
{
new carid = GetPlayerVehicleID(i);
GetVehiclePos(carid, X12, Y12, Z12);
GetXYInFrontOfPlayer(i, X12, Y12,-3.0);
FermPickup = CreateDynamicPickup(19197, 23, X12, Y12, Z12+0.3);
GetVehicleParamsEx(carid, engine, lights, alarm, doors, bonnet, boot, objective);
SetVehicleParamsEx(carid, VEHICLE_PARAMS_OFF, VEHICLE_PARAMS_OFF, alarm, doors, bonnet, boot, objective);
zavodis[i] = false;
new string[30+MAX_PLAYER_NAME-2];
static const ferm[] = "Загруженно\n%d / 1000";
format(string, sizeof(string), ferm, LoadZern[carid-FermCar[0]]);
FermText3D[i] = Create3DTextLabel(string, COLOR_YELLOW, X12, Y12, Z12+0.5, 15.0, 0, 1);
SendClientMessage(i, COLOR_WHITE, "{0289CC}Машина на месте. Теперь вы и ваши рабочие, могут загружать её");
SendClientMessage(i, COLOR_WHITE, "{0289CC}Если решите завершить сбор урожая, /fpanel [9] завершить сбор урожая");
DisablePlayerCheckpoint(i);//Удаляем чекпоинт!
}
}
}
}