Artemios
Умник
Работа "Дальнобойщик" для мода GodFather. Работает 100%, перенесена в поселок.
Ко всем new добавим:
Потом ко всем 3d текстам и пикапам в public OnGameModeInit() добавим:
Далее идем в public OnPlayerEnterCheckpoint(playerid) и добавляем:
Потом добавим команды в public OnPlayerCommandText(playerid, cmdtext[]):
И
Все связанное с транспортом для этой работы.
В конце мода создадим сток:
Это проверка на прицеп.
Далее ко всем машинам добавим:
Тут и прицепы и тягачи.
---
Дополнительно:
Проверка на машины, когда неработающий игрок сядет в машину дальнобойщика, его выкинет.
Так же ко всем машинам добавим (только с переменными):
Затем в public CarEnter(playerid,carid) добавим:
В данном готовом решении я использовал 16 id работы по счету, меняйте на свою.
Автор урока: Artemios
Оптимизация: Mark_N
Ко всем new добавим:
PHP:
new checkpointd[MAX_PLAYERS];
new acceptgruz[MAX_PLAYERS];
new Float:RandomGRUZ[15][3] = {
{-1888.3518,-1729.9679,21.4561},
{828.0614,854.6743,12.6972},
{2493.7378,2772.9478,10.5368},
{2467.7561,1948.0699,9.9756},
{2792.6357,-2475.4504,13.3700},
{501.2822,-1356.1147,15.8554},
{-2102.5251,208.3739,35.0051},
{1316.2872,-912.7282,37.6074},
{1251.3525,248.5478,19.2124},
{1350.6709,-1753.4606,13.0613},
{-1946.8146,234.8263,33.5364},
{-2712.5488,232.3394,4.0357},
{1053.1881,-1029.8051,31.7937},
{2397.5576,1040.8143,10.5236},
{2397.5576,1040.8143,10.5236} };
PHP:
Create3DTextLabel("Подсказка:\nТут можно устроиться на работу: {7CFC00}Дальнобойщик{FFFFFF}\nЧтоб устроиться введите: {7CFC00}/go{FFFFFF}",0xFFFFFFFF,-50.0121,-269.3635,6.6332,20.0,0,1);
CreatePickup(1239, 23, -50.0121,-269.3635,6.6332);
CreateDynamic3DTextLabel(" Взять груз дальнобойщику\n/delivery ",0xBFF600FF,-22.9128,-273.2436,5.4297,50.0);
CreatePickup(1239,23,-22.9128,-273.2436,5.4297);
PHP:
if(acceptgruz[playerid] != 0)
{
for(new i = 0x0; i < sizeof(RandomGRUZ); i++)
{
if(IsPlayerInRangeOfPoint(playerid,10.0,RandomGRUZ[i][0], RandomGRUZ[i][1], RandomGRUZ[i][2])
{
if(IsPlayerInAnyVehicle(playerid))
{
if(!IsTrailerAttachedToVehicle(GetPlayerVehicleID(playerid))) return SendClientMessage(playerid, COLOR_WHITE,"Нет прицепа! Иди ищи прицеп.");
DisablePlayerCheckpoint(playerid);
acceptgruz[playerid] = 0;
GiveMoney(playerid,random(1000) + 6000);
format(string,sizeof(string),"Вы доставили груз и заработали %i$",rand);
SendClientMessage(playerid, COLOR_ORANGE,string);
}
}
else return SendClientMessage(playerid, COLOR_WHITE,"Вы находитесь не в месте разгрузки груза!");
}
PHP:
if(strcmp(cmd, "/go", true) == 0)
{
if (GetPlayerState(playerid) == 1 && PlayerToPoint(3.0, playerid,-50.0121,-269.3635,6.6332)) return SendClientMessage(playerid, COLOR_GREY, "Server: В этом месте нельзя утроится на работу!");
{
SendClientMessage(playerid, COLOR_LIGHTBLUE, "* Уволиться с работы можно будет только по истечению 5-ти часов отработанных по контракту.");
ShowPlayerDialog(playerid,116,DIALOG_STYLE_MSGBOX,"Контракт","Вам была предложена работа \"Дальнобойщика\", если вы согласны, то подпишите контракт.","Подписать","Отказаться");
GettingJob[playerid] = 16;
return 1;
}
else
{
SendClientMessage(playerid, COLOR_GREY, "Server: У Вас уже есть работа, или у Вас нет паспорта!");
}
}
return 1;
}
PHP:
if(strcmp(cmd,"/delivery",true) == 0)
{
if(PlayerInfo[playerid][pJob] == 16) return SendClientMessage(playerid,COLOR_GREY,"Вы не работаете дальнобойщиком!");
if(IsPlayerInRangeOfPoint(playerid,10.0,-22.9128,-273.2436,5.4297)) return SendClientMessage(playerid,COLOR_GREY,"Вы находитесь не в месте загрузки груза!");
if(!IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playerid,COLOR_GREY,"Вы не в транспорте!");
new carid = GetPlayerVehicleID(playerid);
if(GetVehicleModel(carid) == 514) return SendClientMessage(playerid,COLOR_GREY,"Вы не в машине дальнобойщика!");
if(IsAnyTrailerAttachedToVehicle(carid)) return SendClientMessage(playerid,COLOR_GREY,"У вас не прицеплен прицеп!");
if(acceptgruz[playerid] != 0) return SendClientMessage(playerid,COLOR_GREY,"Вы уже загрузили груз!");
DisablePlayerCheckpoint(playerid);
GameTextForPlayer(playerid, "~r~MEC¦O PA?‚PY?K… ЊOMEЌE®O ®A PAѓAPE", 2500, 1);
SendClientMessage(playerid,COLOR_LIGHTBLUE,"Вы загрузили груз, отвезите его заказчику!");
acceptgruz[playerid] = 1;
new rand = random(sizeof(RandomGRUZ));
SetPlayerCheckpoint(playerid, RandomGRUZ[rand][0], RandomGRUZ[rand][1], RandomGRUZ[rand][2], 8.0);
return true ;
}
В конце мода создадим сток:
PHP:
stock IsAnyTrailerAttachedToVehicle(vehicleid)
{
new trailerid = GetVehicleTrailer(vehicleid);
new modelid = GetVehicleModel(trailerid);
if(modelid == 435 || modelid == 591) return true;
return false;
}
Далее ко всем машинам добавим:
PHP:
AddStaticVehicleEx(514,-61.0347,-324.9564,6.0130,270.8889,-1,-1,CAR_SPAWN_TIME);
AddStaticVehicleEx(514,-61.4161,-317.8141,6.0171,269.9076,-1,-1,CAR_SPAWN_TIME);
AddStaticVehicleEx(514,-61.5548,-310.8012,6.0167,270.9304,-1,-1,CAR_SPAWN_TIME);
AddStaticVehicleEx(514,-61.5602,-303.8195,6.0183,269.4847,-1,-1,CAR_SPAWN_TIME);
AddStaticVehicleEx(514,-39.8904,-376.4206,6.0179,0.5866,-1,-1,CAR_SPAWN_TIME);
AddStaticVehicleEx(514,-46.6055,-376.6276,5.9900,359.6903,-1,-1,CAR_SPAWN_TIME);
AddStaticVehicleEx(591,0.6693,-377.4727,6.0802,1.8403,-1,-1,CAR_SPAWN_TIME);
AddStaticVehicleEx(435,-6.3759,-377.5096,6.0312,1.8223,-1,-1,CAR_SPAWN_TIME);
AddStaticVehicleEx(591,-13.1154,-377.6660,6.0938,358.7585,-1,-1,CAR_SPAWN_TIME);
AddStaticVehicleEx(435,-19.5792,-377.7712,6.0729,359.7721,-1,-1,CAR_SPAWN_TIME);
AddStaticVehicleEx(591,-32.7590,-377.7761,6.0680,2.6862,-1,-1,CAR_SPAWN_TIME);
AddStaticVehicleEx(435,-26.5159,-377.7709,6.1003,2.0099,-1,-1,CAR_SPAWN_TIME);
---
Дополнительно:
Проверка на машины, когда неработающий игрок сядет в машину дальнобойщика, его выкинет.
Так же ко всем машинам добавим (только с переменными):
PHP:
truck[0] = AddStaticVehicleEx(514,-61.0347,-324.9564,6.0130,270.8889,-1,-1,CAR_SPAWN_TIME);
AddStaticVehicleEx(514,-61.4161,-317.8141,6.0171,269.9076,-1,-1,CAR_SPAWN_TIME);
AddStaticVehicleEx(514,-61.5548,-310.8012,6.0167,270.9304,-1,-1,CAR_SPAWN_TIME);
AddStaticVehicleEx(514,-61.5602,-303.8195,6.0183,269.4847,-1,-1,CAR_SPAWN_TIME);
AddStaticVehicleEx(514,-39.8904,-376.4206,6.0179,0.5866,-1,-1,CAR_SPAWN_TIME);
truck[1] = AddStaticVehicleEx(514,-46.6055,-376.6276,5.9900,359.6903,-1,-1,CAR_SPAWN_TIME);
PHP:
if(carid >= truck[0] && carid <= truck[1])
{
if(PlayerInfo[playerid][pJob] == 16) return SendClientMessage(playerid,COLOR_LIGHTRED,"Вы не работаете Дальнобойщиком!");
RemovePlayerFromVehicle(playerid);
}
Автор урока: Artemios
Оптимизация: Mark_N
