PDA

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



kala4iks
22.07.2016, 16:40
Добрый день, помогите пожалуйста после того как переделал систему заведения двигателя. перестал заводится двигатель.

Вот как было. команда встроена была в
newkeys


CMD:eng(playerid)
{
if(GetPlayerVehicleID(playerid) == INVALID_VEHICLE_ID) return 1;
if(GetPlayerState(playerid) != PLAYER_STATE_DRIVER) return 1;
if(GetPVarInt(playerid, "TIME_ZAVEL") > gettime()) return SCM(playerid, -1, "{AC0000}< Ошибка > {ffffff}Пожалуйста, не флудите.");
GetVehicleParamsEx(GetPlayerVehicleID(playerid),engine, lights, alarm, doors, bonnet, boot, objective);
if(engine <= 0)
{
new modelid = GetVehicleModel(GetPlayerVehicleID(playerid)) - 400;
if(modelid < 0) return 1;
if(VehInfo[GetPlayerVehicleID(playerid)][vFuel] <= 0.0) return SCM(playerid,-1,"{AC0000}< Ошибка > {ffffff}В машине нет бензина");
engine = 1;
}
else engine = 0;
SetVehicleParamsEx(GetPlayerVehicleID(playerid),engine, lights, alarm, doors, bonnet, boot, objective);
if(engine) MeAction(playerid, "завел(а) двигатель"), GameTextForPlayer(playerid, "~n~~n~~n~~n~~n~~n~~n~~n~~n~~n~~w~ENGINE STARTING...", 2000, 3), Engines{GetPlayerVehicleID(playerid)} = true;
else MeAction(playerid, "заглушил(а) двигатель"), GameTextForPlayer(playerid, "~n~~n~~n~~n~~n~~n~~n~~n~~n~~n~~r~ENGINE OFF", 3000, 3), Engines{GetPlayerVehicleID(playerid)} = false;
SetPVarInt(playerid, "TIME_ZAVEL", gettime()+3);
return 1;
}

Вот так я переделал


if(newkeys & 128 && GetPlayerState(playerid) == 2)
{
new Float:vhealth;
GetVehicleHealth(GetPlayerVehicleID(playerid),vhealth);
if(vhealth < 350) GameTextForPlayer(playerid,"???™a¦e?© ?a™?ox",10000,3);
if(VehInfo[GetPlayerVehicleID(playerid)][vFuel] <= 0.0) return SCM(playerid,-1,"{AC0000}< Ошибка > {ffffff}В машине нет бензина");
SetVehicleParamsEx(GetPlayerVehicleID(playerid),engine,lights,alarm,doors,bonnet,boot,objective);
if(engine == 0)
{
SetVehicleParamsEx(GetPlayerVehicleID(playerid),engine,lights,alarm,doors,bonnet,boot,objective);
MeAction(playerid,"завел(а) двигатель"),GameTextForPlayer(playerid, "~n~~n~~n~~n~~n~~n~~n~~n~~n~~n~~w~ENGINE STARTING...", 2000, 3),Engines{GetPlayerVehicleID(playerid)} = true;
}
return 1;
}

По принцепу этого.


if(newkeys & 128 && GetPlayerState(playerid) == 2 && !IsAVelo(GetPlayerVehicleID(playerid)))
{
if(Engine[GetPlayerVehicleID(playerid)] == 0)
{
new engine,lights,alarm,doors,bonnet,boot,objective,string[50];
new Float:VehHealth;
GetVehicleHealth(GetPlayerVehicleID(playerid),VehHealth);
if(VehHealth < 350) GameTextForPlayer(playerid,"ѓўњ™a¦eћ© џa™ћox",10000,3);
else
{
Engine[GetPlayerVehicleID(playerid)] = 1;
GetVehicleParamsEx(GetPlayerVehicleID(playerid),engine,lights,alarm,doors,bonnet,boot,objective);
SetVehicleParamsEx(GetPlayerVehicleID(playerid),1,lights,alarm,doors,bonnet,boot,objective);
TextDrawHideForPlayer(playerid,Mission);
GameTextForPlayer(playerid,"~w~~n~~n~~n~~n~~n~~n~~n~~n~~n~~n~ѓB…‚AЏE‡’~g~ €AЊYЉEм",3000,3);
switch(Player[playerid][pMaskuse])
{
case 0:
{
switch(Player[playerid][pSex])
{
case 1:f(string,"* %s успешно завел двигатель.",Player[playerid][pName]);
case 2:f(string,"* %s успешно завела двигатель.",Player[playerid][pName]);
}
}
case 1:f(string,"* Неизвестный успешно завёл двигатель.");
}
ProxDetector(20.0,playerid,string,COLOR_PURPLE);
return 1;
}
}
}

ziggi
22.07.2016, 18:28
if(newkeys & 128 && GetPlayerState(playerid) == 2)
Не надо так делать.

По вопросу:
SetVehicleParamsEx(GetPlayerVehicleID(playerid),engine,lights,alarm,doors,bonnet,boot,objective);
if(engine == 0)

Нужно исправить на GetVehicleParamsEx.

kala4iks
23.07.2016, 16:19
if(newkeys & 128 && GetPlayerState(playerid) == 2)
Не надо так делать.

По вопросу:
SetVehicleParamsEx(GetPlayerVehicleID(playerid),engine,lights,alarm,doors,bonnet,boot,objective);
if(engine == 0)

Нужно исправить на GetVehicleParamsEx.

Не помогло.

VVWVV
23.07.2016, 16:27
if(newkeys & 128 && GetPlayerState(playerid) == 2)
{
new Float:vhealth;
new engine,lights,alarm,doors,bonnet,boot,objective;
GetVehicleHealth(GetPlayerVehicleID(playerid),vhealth);
if(vhealth < 350) GameTextForPlayer(playerid,"???™a¦e?© ?a™?ox",10000,3);
if(VehInfo[GetPlayerVehicleID(playerid)][vFuel] <= 0.0) return SCM(playerid,-1,"{AC0000}< Ошибка > {ffffff}В машине нет бензина");
GetVehicleParamsEx(GetPlayerVehicleID(playerid),engine,lights,alarm,doors,bonnet,boot,objective);
if(engine == 0)
{
SetVehicleParamsEx(GetPlayerVehicleID(playerid),1,lights,alarm,doors,bonnet,boot,objective);
MeAction(playerid,"завел(а) двигатель");
GameTextForPlayer(playerid, "~n~~n~~n~~n~~n~~n~~n~~n~~n~~n~~w~ENGINE STARTING...", 2000, 3);
Engines{GetPlayerVehicleID(playerid)} = true;
}
return 1;
}

kala4iks
23.07.2016, 16:42
if(newkeys & 128 && GetPlayerState(playerid) == 2)
{
new Float:vhealth;
new engine,lights,alarm,doors,bonnet,boot,objective;
GetVehicleHealth(GetPlayerVehicleID(playerid),vhealth);
if(vhealth < 350) GameTextForPlayer(playerid,"???™a¦e?© ?a™?ox",10000,3);
if(VehInfo[GetPlayerVehicleID(playerid)][vFuel] <= 0.0) return SCM(playerid,-1,"{AC0000}< Ошибка > {ffffff}В машине нет бензина");
GetVehicleParamsEx(GetPlayerVehicleID(playerid),engine,lights,alarm,doors,bonnet,boot,objective);
if(engine == 0)
{
SetVehicleParamsEx(GetPlayerVehicleID(playerid),1,lights,alarm,doors,bonnet,boot,objective);
MeAction(playerid,"завел(а) двигатель");
GameTextForPlayer(playerid, "~n~~n~~n~~n~~n~~n~~n~~n~~n~~n~~w~ENGINE STARTING...", 2000, 3);
Engines{GetPlayerVehicleID(playerid)} = true;
}
return 1;
}

Чет тоже не чего.

VVWVV
23.07.2016, 17:00
Чет тоже не чего.

В каком паблике данный код (OnPlayerKeyStateChange)? И, правильно ли вы выбрали идентификатор кнопки (128 (в машине) - пробел)?

kala4iks
23.07.2016, 17:02
Ну да на пробел нажимаю.и толку 0 и newkeys в OnPlayerKeyStateChange publick .

VVWVV
23.07.2016, 17:09
Ну да на пробел нажимаю.и толку 0 и newkeys в OnPlayerKeyStateChange publick .

Быть может, нет функции ManualVehicleEngineAndLights в OnGameModeInit/OnFilterScriptInit?

kala4iks
23.07.2016, 17:18
Быть может, нет функции ManualVehicleEngineAndLights в OnGameModeInit/OnFilterScriptInit?

Честно говоря даже не знаю просто пока я не переделал было вот так



else if (newkeys == KEY_SUBMISSION) cmd::eng(playerid);
if(newkeys == KEY_WALK)

Я переделал под пробел и стало не работать.