Jump to content

engine||fuel systeem


Recommended Posts

Geplaatst:

hallo, ik heb sinds een paar dagen een engine systeem in mn server zitten, maar op een of andere manier krijg ik het niet voor elkaar om de fietsen zonder motor en fuel te krijgenXD. hier is een voorbeeld van de fuel:

public FuelUpdate()
{
new string[256];
for(new i=0;i<MAX_PLAYERS;i++)
{
 new VID = GetPlayerVehicleID(i);
 new MOD = GetVehicleModel(i);
 if(GetPlayerState(i) == PLAYER_STATE_DRIVER)
 {
  if(IsPlayerConnected(i))
  {
if(Filling[i] == 0 && VehicleStarted[VID] == 1 && MOD != 510 && MOD != 509 && MOD != 481)
{
 if(VehicleGas[VID] >= 1)
 {
  VehicleGas[VID] -= 1;
  format(string, sizeof(string),"~n~~n~~n~~n~~n~~n~~n~~n~~n~~w~|~b~FUEL: ~w~%d%|",VehicleGas[VID]);
  GameTextForPlayer(i,string,11500,3);
 }
 else
 {
  TogglePlayerControllable(i,0);
  GameTextForPlayer(i,"~n~~n~~n~~n~~b~Your car is without fuel!",2500,3);
  SendClientMessage(i,WHITE,"* Your Vehicle is without an Gas! Use '/exitveh' to get out.");
 }
}
  }
 }
}
return 1;
}

een van het refuelen:

 if(strcmp(cmdtext, "/gas", true) == 0)
{
 if(IsPlayerConnected(playerid))
 {
  if(!IsPlayerInAnyVehicle(playerid) || MOD == 510 || MOD == 509 || MOD == 481)
  {
		 SendClientMessage(playerid,WHITE,"* You are not in a Vehicle / You can't fill that Vehicle!");
		 return 1;
  }
  if(!IsAtGasStation(playerid))
  {
	   SendClientMessage(playerid,WHITE,"* You are not at the Gas Station!");
	  return 1;
  }
	 if(VehicleGas[VID] < MAX_GAS)
	 {
		 //ShowMenuForPlayer(Gas,playerid);
  GameTextForPlayer(playerid,"~w~Refueling vehicle ~n~~g~Please wait..",4000,3);
RefillTimer = SetTimerEx("ReFill",2000,1,"i",playerid);
Filling[playerid] = 1;
	 }
	 else
  {
   SendClientMessage(playerid,WHITE,"* The Tank is full!");
  }
 }
 return 1;
}

en van de motor:

public OnPlayerStateChange(playerid, newstate, oldstate)
{
new VID = GetPlayerVehicleID(playerid);
new MOD = GetVehicleModel(playerid);
new string[128];

if(newstate == PLAYER_STATE_DRIVER)
{
 format(string, sizeof(string), "~g~%s",VehicleTittle[GetVehicleModel(VID)-400]);
 GameTextForPlayer(playerid,string,3500,1);
 if(VehicleStarted[VID] == 0 && MOD != 510 && MOD != 509 && MOD != 481)
 {
  TogglePlayerControllable(playerid,0);
  SendClientMessage(playerid,WHITE,"* This Vehicle is not Started yet. You can start it with key: 'SPRINT'");
 }
 else
 {
  SendClientMessage(playerid,YELLOW,"* This Vehicle is already started!");
 }
 if(VehicleGas[VID] < 1)
 {
  SendClientMessage(playerid,WHITE,"* No fuel in Vehicle!");
 }
}
return 1;
}

zoals je ziet staan de fiets-id's er bij, maar het wil nog nie werken.

ik hoop dat iemand me ermee kan helpen.

Geplaatst:

Plaats dit voordat je de fuel ziet of krijgt:

if(VehicleFuelAllowed(GetPlayerVehicleID(playerid)))
{

Plaats dit ergens onderaan:

VehicleFuelAllowed(vehicleid)
{
vehicleid = GetVehicleModel(vehicleid);
for(new i=0;i<sizeof(FuelAllowedVehicles);i++)
{
	if(vehicleid == FuelAllowedVehicles[i]){return 1;}
}
return 0;
}

Plaats dit ergens anders (meestal bovenaan je script):

new FuelAllowedVehicles[] = {
400,401,402,403,404,405,406,407,408,409,410};

Hier boven staan een paar id's als voorbeeld, maar je moet hier zelf maar invullen welke id's wel fuel mogen hebben :)

Geplaatst:

if(VehicleFuelAllowed(GetPlayerVehicleID(playerid)))
{

Plaats dit ergens onderaan:

VehicleFuelAllowed(vehicleid)
{
new Bikes[] = {481, 509, 510};
vehicleid = GetVehicleModel(vehicleid);
for(new i=0;i<sizeof(Bikes);i++)
{
	if(vehicleid == Bikes[i]){return 0;}
}
return 1;
}

Zo kan het ook :) Heb je geen grote array nodig :puh:

Geplaatst:

hmm, ik heb gwoon om ff te proberen alleen het engine gedeelte veranderd, maar hij zegt nog steeds dat de motor gestart moet worden. hier dat stukje script:

public OnPlayerStateChange(playerid, newstate, oldstate)
{
new VID = GetPlayerVehicleID(playerid);
//	new MOD = GetVehicleModel(playerid);
new string[128];

if(newstate == PLAYER_STATE_DRIVER)
{
 format(string, sizeof(string), "~g~%s",VehicleTittle[GetVehicleModel(VID)-400]);
 GameTextForPlayer(playerid,string,3500,1);
 if(VehicleFuelAllowed(GetPlayerVehicleID(playerid)))
 {
  TogglePlayerControllable(playerid,0);
  SendClientMessage(playerid,WHITE,"* This Vehicle is not Started yet. You can start it with key: 'SPRINT'");
 }
 else
 {
  SendClientMessage(playerid,YELLOW,"* This Vehicle is already started!");
 }
 if(VehicleGas[VID] < 1)
 {
  SendClientMessage(playerid,WHITE,"* No fuel in Vehicle!");
 }
}
return 1;
}

geen errors of warnings, maar werkt niet

Geplaatst:

Mag ik je OnPlayerKeyStateChange eens zien? Ik ben er namelijk niet helemaal zeker van of de Sprint Key wel werkt als je in een vehicle zit.

Geplaatst:

dat werkt wel, dat weet ik zeker, want het werkt wel in een auto, en op de fiets ook, maar dat wil ik er dus uit halen

Een reactie plaatsen

Je kan nu een reactie plaatsen en pas achteraf registreren. Als je al lid bent, log eerst in om met je eigen account een reactie te plaatsen.

Gast
Op dit onderwerp reageren...

×   Je hebt text geplaatst met opmaak.   Opmaak verwijderen

  Only 75 emoji are allowed.

×   Je link is automatisch ingevoegd.   In plaats daarvan weergeven als link

×   Je vorige bewerkingen zijn hersteld.   Alles verwijderen

×   You cannot paste images directly. Upload or insert images from URL.

  • Recent actief   0 leden

    • Er zijn hier geen geregistreerde gebruikers aanwezig.
×
×
  • Create New...