Help with this engine script -
Wolf0211 - 02.09.2017
Hi guys! So I have this piece of script here, what would start the engine if the right conditions are met. It does not tho however, and I can't find out why. Could you please take a look at it?
Код:
public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
{
new string[256];
new sendername[MAX_PLAYER_NAME];
new pveh = GetVehicleModel(GetPlayerVehicleID(playerid));
new newcar = GetPlayerVehicleID(playerid);
if(IsPlayerConnected(playerid))
{
if(newkeys & 16 && IsPlayerInRangeOfPoint(playerid, 0.8, -252.7863,2599.9343,62.8582) || IsPlayerInRangeOfPoint(playerid, 0.8, -1455.0450,2592.4307,55.8359) || IsPlayerInRangeOfPoint(playerid, 0.8, -1455.1647,2592.4180,55.8359) || IsPlayerInRangeOfPoint(playerid, 0.8, -36.0677,-57.1322,1003.5469) || IsPlayerInRangeOfPoint(playerid, 0.8, -33.8136,-186.0253,1003.5469))
{
PlayerInfo[playerid][eseg] += 30;
}
else if(newkeys & 16 && IsPlayerInRangeOfPoint(playerid, 0.8, -19.1941,-57.0468,1003.5469) || IsPlayerInRangeOfPoint(playerid, 0.8, -32.3282,-185.9035,1003.5469) || IsPlayerInRangeOfPoint(playerid, 0.8, -1477.0952,2613.0801,58.7813) || IsPlayerInRangeOfPoint(playerid, 0.8, -252.9242,2597.9163,62.8582))
{
PlayerInfo[playerid][Szomjas] += 30;
}
}
if( newkeys == KEY_SECONDARY_ATTACK && GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
{
TogglePlayerControllable(playerid,1);
RemovePlayerFromVehicle(playerid);
}
if(newkeys == KEY_JUMP)
{
if(IsPlayerInAnyVehicle(playerid))
{
if(IsPlayerConnected(playerid))
{
if(!engineOn[GetPlayerVehicleID(playerid)])
{
if(GetPlayerState(playerid) == PLAYER_STATE_PASSENGER)
{
return 1;
}
if(IsAnOwnableCar(newcar))
{
if(PlayerInfo[playerid][pPcarkey] == newcar) { }
else if(PlayerInfo[playerid][pPcarkey2] == newcar) { }
else if(PlayerInfo[playerid][pPcarkey3] == newcar) { }
else { return 1; }
}
if(pveh == 510 || pveh == 462 || pveh == 481 || pveh == 509)
{
return 1;
}
if(newcar == 59 || newcar == 60)
{
return 1;
}
if(kerekbilincs[GetPlayerVehicleID(playerid)] != 0)
{
SendClientMessage(playerid, COLOR_LIGHTRED, "Kerйkbilincs van az autуn hogy akarod elvinni?");
RemovePlayerFromVehicle(playerid);
TogglePlayerControllable(playerid, 1);
return 1;
}
if(IsAHarvest(newcar))
{
return 1;
}
if(Halaszhajo(newcar))
{
return 1;
}
if(IsAPlane(newcar))
{
return 1;
}
if(IsASweeper(newcar))
{
return 1;
}
if(gEngine[playerid] == 1) { return 1; }
PutPlayerInVehicle(playerid, newcar, 0);
GetPlayerName(playerid, sendername, sizeof(sendername));
format(string, sizeof(string), "* %s Beindнtja a jбrmű motorjбt.", sendername);
ProxDetector(30.0, playerid, string, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
SetPlayerChatBubble(playerid, "Beindнtja a motort.", COLOR_PURPLE, 80.0, 10000);
SetTimerEx("StartingTheVehicle",3500,0,"i",playerid);
GameTextForPlayer(playerid, "~w~~n~~n~~n~~n~Beindul a jбrmű motorja...",3500,3);
gEngine[playerid] = 1;
return 1;
}
}
}
}
else if(newkeys == KEY_SECONDARY_ATTACK)
{
if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
{
if(gEngine[playerid] == 0 && engineOn[newcar] == 0)
{
RemovePlayerFromVehicle(playerid);
TogglePlayerControllable(playerid, 1);
return 1;
}
else if(NoFuel[playerid] == 1)
{
TogglePlayerControllable(playerid, 1);
RemovePlayerFromVehicle(playerid);
NoFuel[playerid] = 0;
return 1;
}
}
}
else if ((newkeys & CCKey) && !(oldkeys & CCKey) && IsPlayerInAnyVehicle(playerid) && GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
{
new vid = GetPlayerVehicleID(playerid);
if (GetVehicleSpeed(vid) == 0) return false;
new Float:x, Float:y, Float:z;
GetVehicleVelocity(vid, x, y, z);
GetVehicleZAngle(vid, PlayerHeadingAngle[playerid]);
DistanceFlat(0, 0, x, y, PlayerCruiseSpeed[playerid]);
SetTimerEx("CruiseControl", 500, false, "d", playerid);
}
else if (PlayerCruiseSpeed[playerid] != 0.00 && (newkeys & KEY_HANDBRAKE))
{
PlayerCruiseSpeed[playerid] = 0.00;
}
return 1;
}
public StartingTheVehicle(playerid)
{
if(IsPlayerConnected(playerid))
{
if(IsPlayerInAnyVehicle(playerid))
{
new RandomStart;
new string[256];
new sendername[MAX_PLAYER_NAME];
RandomStart = random(4);
switch(RandomStart)
{
case 0,1,2,3:
{
engineOn[GetPlayerVehicleID(playerid)] = true;
TogglePlayerControllable(playerid, true);
GetPlayerName(playerid, sendername, sizeof(sendername));
format(string, sizeof(string), "* %s beindнtotta a jбrmű motorjбt.",sendername);
ProxDetector(30.0, playerid, string, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
SetPlayerChatBubble(playerid, "beindнtotta a jбrművet.", COLOR_PURPLE, 80.0, 10000);
gEngine[playerid] = 0;
}
}
}
else
{
gEngine[playerid] = 0;
}
}
return 1;
}
Thanks in advance!
Wolf
Re: Help with this engine script -
Kane - 02.09.2017
Highlight the part that you need help with.
Re: Help with this engine script -
Wolf0211 - 02.09.2017
Well, this whole script is about starting the engine. So I don't know what to highlight. Maybe these?
Код:
if(gEngine[playerid] == 1) { return 1; }
PutPlayerInVehicle(playerid, newcar, 0);
GetPlayerName(playerid, sendername, sizeof(sendername));
format(string, sizeof(string), "* %s Beindнtja a jбrmű motorjбt.", sendername);
ProxDetector(30.0, playerid, string, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
SetPlayerChatBubble(playerid, "Beindнtja a motort.", COLOR_PURPLE, 80.0, 10000);
SetTimerEx("StartingTheVehicle",3500,0,"i",playerid);
GameTextForPlayer(playerid, "~w~~n~~n~~n~~n~Beindul a jбrmű motorja...",3500,3);
gEngine[playerid] = 1;
return 1;
Код:
public StartingTheVehicle(playerid)
{
if(IsPlayerConnected(playerid))
{
if(IsPlayerInAnyVehicle(playerid))
{
new RandomStart;
new string[256];
new sendername[MAX_PLAYER_NAME];
RandomStart = random(4);
switch(RandomStart)
{
case 0,1,2,3:
{
engineOn[GetPlayerVehicleID(playerid)] = true;
TogglePlayerControllable(playerid, true);
GetPlayerName(playerid, sendername, sizeof(sendername));
format(string, sizeof(string), "* %s beindнtotta a jбrmű motorjбt.",sendername);
ProxDetector(30.0, playerid, string, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
SetPlayerChatBubble(playerid, "beindнtotta a jбrművet.", COLOR_PURPLE, 80.0, 10000);
gEngine[playerid] = 0;
}
}
}
else
{
gEngine[playerid] = 0;
}
}
return 1;
}
Re: Help with this engine script -
Kane - 02.09.2017
Can you elaborate on what your problem is? What happens?
Re: Help with this engine script -
Wolf0211 - 02.09.2017
So basically what happens is, you get into the vehicle the chat says, 'Press shift to start the engine', I press it, it says the engine started but it does not, even tho every condition is met, to start the engine.
Re: Help with this engine script -
Kane - 02.09.2017
Well yeah, it isn't going to work because you don't actually turn the engine on.
You're only setting variables.
https://sampwiki.blast.hk/wiki/SetVehicleParamsEx
Example usage:
PHP код:
// If setting a single parameter, you should obtain the current parameters so they aren't ALL changed
new
engine, lights, alarm, doors, bonnet, boot, objective;
GetVehicleParamsEx(vehicleid, engine, lights, alarm, doors, bonnet, boot, objective);
SetVehicleParamsEx(vehicleid, VEHICLE_PARAMS_ON, lights, alarm, doors, bonnet, boot, objective);
// ONLY the engine param was changed to VEHICLE_PARAMS_ON (1)
Re: Help with this engine script -
Wolf0211 - 02.09.2017
How about this?
Код:
if(gEngine[playerid] == 1) { return 1; }
PutPlayerInVehicle(playerid, newcar, 0);
GetPlayerName(playerid, sendername, sizeof(sendername));
format(string, sizeof(string), "* %s Beindнtja a jбrmű motorjбt.", sendername);
ProxDetector(30.0, playerid, string, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
SetPlayerChatBubble(playerid, "Beindнtja a motort.", COLOR_PURPLE, 80.0, 10000);
SetTimerEx("StartingTheVehicle",3500,0,"i",playerid);
GameTextForPlayer(playerid, "~w~~n~~n~~n~~n~Beindul a jбrmű motorja...",3500,3);
GetVehicleParamsEx(GetPlayerVehicleID(playerid), engine, lights, alarm, doors, bonnet, boot, objective);
SetVehicleParamsEx(GetPlayerVehicleID(playerid), VEHICLE_PARAMS_ON, lights, alarm, doors, bonnet, boot, objective);
gEngine[playerid] = 1;
return 1;
Re: Help with this engine script -
Kane - 02.09.2017
Try it and see if it works.
Re: Help with this engine script -
Wolf0211 - 02.09.2017
It does. It locks me tho, but I guess I'll use TogglePlayerControllable(playerid, 1);. Thank you really much for your help!
One more thing, how can I make this to shut down the engine when it runs?