Lucky_Drug
Умник
- Добрый день.
- Решил сделать заводку двигателя с задержкой, специально для RolePlay серверов.
- Чтобы моментально двигатель не заводился, с учетом заведется он или нет.
1. Создаем переменные:
- Если есть, то не надо.
2.В public OnPlayerKeyStateChange, вставляем:
3. Наш таймер, создаем его:
4. Наши функции:
- Это я сделал, для того чтобы вы взяли за основу, и переделали под свой мод, конечно у Вас там разные функции, меняйте под свой вкус, добавляйте проверок. Получится красиво.
- Решил сделать заводку двигателя с задержкой, специально для RolePlay серверов.
- Чтобы моментально двигатель не заводился, с учетом заведется он или нет.
1. Создаем переменные:
PHP:
new engine,lights,alarm,doors,bonnet,boot,objective;
2.В public OnPlayerKeyStateChange, вставляем:
PHP:
if(newkeys == KEY_FIRE)//можете сменить на свою кнопку, в этом случае ЛКМ.
{
new vehid = GetPlayerVehicleID(playerid);
if(GetPlayerState(playerid) == 2)//проверка, игрок в машине
{
if(BicycleVeh(vehid))return true;//проверка, велосипеды
if(!EngineStatus(vehid))//проверка, заведен, нет
{
if(GetPVarInt(playerid, "EngineStart") == 1) return SendMe(playerid,-1,"Двигатель заводиться! Подождите...");//чтобы не нажимали, проверка
SetPVarInt(playerid, "EngineStart", 1);//заведен, поднимаем
SetTimerEx("StatusVehicle",2500,0,"i",playerid);//таймер заводки двигателя
SendMe(playerid,-1,"подождите двигатель заводиться.");//выводим инструкцию
}
/* аналогично, без таймера и опускаем, что заглушен. */
else if(EngineStatus(carid))
{
SetPVarInt(playerid, "EngineStart", 0);
Engine(carid,false);
SendMe(playerid,-1,"Вы заглушили двигатель.");
return true;
}
}
}
PHP:
forward StatusVehicle(playerid);
public StatusVehicle(playerid)
{
SetPVarInt(playerid, "EngineStart", 0);//опускаем
if(IsPlayerConnected(playerid))
{
new vehid = GetPlayerVehicleID(playerid);
if(IsPlayerInAnyVehicle(playerid))
{
new startrandom = random(4);//рандом, может и не завестись
switch(startrandom)
{
case 0,1,2:
{
SendMe(playerid,-1,"Вы завели двигатель");
Engine(vehid,true);//завелся двигатель
}
case 3:
{
SendMe(playerid,-1,"Вы не завели двигатель");
Engine(vehid,false);//не завелся двигатель
}
}
}
}
return true;
}
PHP:
stock Engine(vehicleid,bool:launched)
{
GetVehicleParamsEx(vehicleid,engine,lights,alarm,doors,bonnet,boot,objective);
return launched ? SetVehicleParamsEx(vehicleid, VEHICLE_PARAMS_ON,lights,alarm,doors,bonnet,boot,objective) : SetVehicleParamsEx(vehicleid, VEHICLE_PARAMS_OFF,lights,alarm,doors,bonnet,boot,objective);
}
stock EngineStatus(vehicleid) {
GetVehicleParamsEx(vehicleid,engine,lights,alarm,doors,bonnet,boot,objective);
return engine;
}
stock BicycleVeh(carid)
{
switch(GetVehicleModel(carid))
{
case 481, 509, 510: return true;//наши id's велосипедов
}
return false;
}
#define SendMe(%0,%2,%1) SendClientMessage(%0, %2,%1)//оптимизация на милесекунды
Последнее редактирование:
