Sziasztok.
Lenne egy olyan problémám hogy van egy benzin szkriptem ami a szerver indulásakor le spawnolo jármûveknek szabályozza a benzin szintjét szóval ha megy a motor akkor fogy a benzin.Ez eddig rendben is van, de amikor én lehozok egy jármûvet az már nem tartozik a benzin szkirptbe bele
amit én hoztam le jármûvet neki már nem írja a benzin szintet és nem is fogy a benzine.
Segítségeteket elõre is köszönöm.
KÓD:
#include <a_samp>
#include <zcmd>
#undef MAX_VEHICLES
#define MAX_VEHICLES 50
#undef MAX_PLAYERS
#define MAX_PLAYERS 30
new fuel[MAX_VEHICLES];
forward timer_fuel_lower();
forward timer_refuel(playerid);
new isrefuelling[MAX_PLAYERS] = 0;
new Text:td_fuel[MAX_PLAYERS];
public OnFilterScriptInit()
{
for(new i=0;i<MAX_VEHICLES;i++) {
fuel = 100;
}
SetTimer(\"timer_fuel_lower\",9200,true);
return 1;
}
public OnPlayerSpawn(playerid)
{
td_fuel[playerid] = TextDrawCreate(45,324,\"Benzin: 100\");
TextDrawBackgroundColor(td_fuel[playerid],0x00000033);
TextDrawFont(td_fuel[playerid],3);
TextDrawLetterSize(td_fuel[playerid],0.699999,1.700000);
TextDrawColor(td_fuel[playerid],0x0affffAA);
TextDrawSetShadow(td_fuel[playerid],3);
return 1;
}
public OnPlayerStateChange(playerid, newstate, oldstate)
{
if (newstate == PLAYER_STATE_DRIVER || newstate == PLAYER_STATE_PASSENGER)
{
new vid = GetPlayerVehicleID(playerid);
new string[125];format(string,sizeof string,\"Benzin:%i\",fuel[vid]);
TextDrawSetString(td_fuel[playerid],string);
TextDrawShowForPlayer(playerid,td_fuel[playerid]);
}
else {
TextDrawHideForPlayer(playerid,td_fuel[playerid]);
}
return 1;
}
CMD:tankol(playerid,params[])
{
if(IsPlayerInRangeOfPoint(playerid, 20.0, 2115.9160,920.2363,10.4779))
{
if (!IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playerid,0xFFC800FF,\"Nem vagy kocsiban\");
if (isrefuelling[playerid]) return SendClientMessage(playerid,0xFFC800FF,\"Elkezdtél tankolni\");
if (GetPlayerMoney(playerid) - 1250 <0) return SendClientMessage(playerid,0xFFC800FF,\"Nincs elég pénzed\");
GivePlayerMoney(playerid,-1250);
SendClientMessage(playerid,0xff0000AA,\"Elkezdtél tankolni!A tankolás ára 1250$.A tank tele lessz!\");
SetCameraBehindPlayer(playerid);
TogglePlayerControllable(playerid,0);
isrefuelling[playerid] = 1;
TextDrawSetString(td_fuel[playerid],\"Tankolás\");
SetTimerEx(\"timer_refuel\",4500,false,\"i\",playerid); /
}
else if(IsPlayerInRangeOfPoint(playerid, 20.0, 2640.1543,1106.2999,10.4506))
{
if (!IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playerid,0xFFC800FF,\"Nem vagy kocsiban\");
if (isrefuelling[playerid]) return SendClientMessage(playerid,0xFFC800FF,\"Elkezdtél tankolni\");
if (GetPlayerMoney(playerid) - 1620 <0) return SendClientMessage(playerid,0xFFC800FF,\"Nincs elég pénzed\");
SendClientMessage(playerid,0xff0000AA,\"Elkezdtél tankolni!A tankolás ára 1620$.A tank tele lessz!\");
GivePlayerMoney(playerid,-1620);
SetCameraBehindPlayer(playerid);
TogglePlayerControllable(playerid,0);
isrefuelling[playerid] = 1;
TextDrawSetString(td_fuel[playerid],\"Tankolás\");
SetTimerEx(\"timer_refuel\",4500,false,\"i\",playerid);
}
else if(IsPlayerInRangeOfPoint(playerid, 20.0, 2202.7407,2473.6682,10.4785))
{
if (!IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playerid,0xFFC800FF,\"Nem vagy kocsiban\"); //Ha a játékos nincs jármûben MEGÁLÍTJUK a parancsot
if (isrefuelling[playerid]) return SendClientMessage(playerid,0xFFC800FF,\"Elkezdtél tankolni\"); //Ha már a játékos tankol akkor MEGÁLÍTJUK a parancsot
if (GetPlayerMoney(playerid) - 1500 <0) return SendClientMessage(playerid,0xFFC800FF,\"Nincs elég pénzed\"); //Ha a játékosnak NINCS elég pénze akkor visszalökjük!
SendClientMessage(playerid,0xff0000AA,\"Elkezdtél tankolni!A tankolás ára 1500$.A tank tele lessz!\");
GivePlayerMoney(playerid,-1500); //De ha van akkor leveszünk -80$-t
SetCameraBehindPlayer(playerid); //A játékos mögé rakjuk a kamerát mert õ így jobban lát mikor megvan fagyasztva
TogglePlayerControllable(playerid,0); //Megfagyasztjuk a játékost
isrefuelling[playerid] = 1; //Beálítjuk a refuel értéket 1 re hogy ne tudjon SPAMOLNI
TextDrawSetString(td_fuel[playerid],\"Tankolas\"); //Kicseréli a TextDrawot
SetTimerEx(\"timer_refuel\",4500,false,\"i\",playerid); //És beálítjuk az ujratöltési idõt
}
else if(IsPlayerInRangeOfPoint(playerid, 20.0, 1938.6686,-1772.6189,13.1642))//4
{
if (!IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playerid,0xFFC800FF,\"Nem vagy kocsiban\"); //Ha a játékos nincs jármûben MEGÁLÍTJUK a parancsot
if (isrefuelling[playerid]) return SendClientMessage(playerid,0xFFC800FF,\"Elkezdtél tankolni\"); //Ha már a játékos tankol akkor MEGÁLÍTJUK a parancsot
if (GetPlayerMoney(playerid) - 1500 <0) return SendClientMessage(playerid,0xFFC800FF,\"Nincs elég pénzed\"); //Ha a játékosnak NINCS elég pénze akkor visszalökjük!
SendClientMessage(playerid,0xff0000AA,\"Elkezdtél tankolni!A tankolás ára 1500$.A tank tele lessz!\");
GivePlayerMoney(playerid,-1500); //De ha van akkor leveszünk -80$-t
SetCameraBehindPlayer(playerid); //A játékos mögé rakjuk a kamerát mert õ így jobban lát mikor megvan fagyasztva
TogglePlayerControllable(playerid,0); //Megfagyasztjuk a játékost
isrefuelling[playerid] = 1; //Beálítjuk a refuel értéket 1 re hogy ne tudjon SPAMOLNI
TextDrawSetString(td_fuel[playerid],\"Tankolas\"); //Kicseréli a TextDrawot
SetTimerEx(\"timer_refuel\",4500,false,\"i\",playerid); //És beálítjuk az ujratöltési idõt
}
else if(IsPlayerInRangeOfPoint(playerid, 20.0, 1003.4471,-933.0402,41.9593))//5
{
if (!IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playerid,0xFFC800FF,\"Nem vagy kocsiban\"); //Ha a játékos nincs jármûben MEGÁLÍTJUK a parancsot
if (isrefuelling[playerid]) return SendClientMessage(playerid,0xFFC800FF,\"Elkezdtél tankolni\"); //Ha már a játékos tankol akkor MEGÁLÍTJUK a parancsot
if (GetPlayerMoney(playerid) - 1500 <0) return SendClientMessage(playerid,0xFFC800FF,\"Nincs elég pénzed\"); //Ha a játékosnak NINCS elég pénze akkor visszalökjük!
SendClientMessage(playerid,0xff0000AA,\"Elkezdtél tankolni!A tankolás ára 1500$.A tank tele lessz!\");
GivePlayerMoney(playerid,-1500); //De ha van akkor leveszünk -80$-t
SetCameraBehindPlayer(playerid); //A játékos mögé rakjuk a kamerát mert õ így jobban lát mikor megvan fagyasztva
TogglePlayerControllable(playerid,0); //Megfagyasztjuk a játékost
isrefuelling[playerid] = 1; //Beálítjuk a refuel értéket 1 re hogy ne tudjon SPAMOLNI
TextDrawSetString(td_fuel[playerid],\"Tankolas\"); //Kicseréli a TextDrawot
SetTimerEx(\"timer_refuel\",4500,false,\"i\",playerid); //És beálítjuk az ujratöltési idõt
}
else if(IsPlayerInRangeOfPoint(playerid, 20.0, -91.7949,-1170.8586,2.1484))//6
{
if (!IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playerid,0xFFC800FF,\"Nem vagy kocsiban\"); //Ha a játékos nincs jármûben MEGÁLÍTJUK a parancsot
if (isrefuelling[playerid]) return SendClientMessage(playerid,0xFFC800FF,\"Elkezdtél tankolni\"); //Ha már a játékos tankol akkor MEGÁLÍTJUK a parancsot
if (GetPlayerMoney(playerid) - 1500 <0) return SendClientMessage(playerid,0xFFC800FF,\"Nincs elég pénzed\"); //Ha a játékosnak NINCS elég pénze akkor visszalökjük!
SendClientMessage(playerid,0xff0000AA,\"Elkezdtél tankolni!A tankolás ára 1500$.A tank tele lessz!\");
GivePlayerMoney(playerid,-1500); //De ha van akkor leveszünk -80$-t
SetCameraBehindPlayer(playerid); //A játékos mögé rakjuk a kamerát mert õ így jobban lát mikor megvan fagyasztva
TogglePlayerControllable(playerid,0); //Megfagyasztjuk a játékost
isrefuelling[playerid] = 1; //Beálítjuk a refuel értéket 1 re hogy ne tudjon SPAMOLNI
TextDrawSetString(td_fuel[playerid],\"Tankolas\"); //Kicseréli a TextDrawot
SetTimerEx(\"timer_refuel\",4500,false,\"i\",playerid); //És beálítjuk az ujratöltési idõt
}
else if(IsPlayerInRangeOfPoint(playerid, 20.0, -1677.9883,411.3183,6.8844))//7
{
if (!IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playerid,0xFFC800FF,\"Nem vagy kocsiban\"); //Ha a játékos nincs jármûben MEGÁLÍTJUK a parancsot
if (isrefuelling[playerid]) return SendClientMessage(playerid,0xFFC800FF,\"Elkezdtél tankolni\"); //Ha már a játékos tankol akkor MEGÁLÍTJUK a parancsot
if (GetPlayerMoney(playerid) - 1100 <0) return SendClientMessage(playerid,0xFFC800FF,\"Nincs elég pénzed\"); //Ha a játékosnak NINCS elég pénze akkor visszalökjük!
SendClientMessage(playerid,0xff0000AA,\"Elkezdtél tankolni!A tankolás ára 1100$.A tank tele lessz!\");
GivePlayerMoney(playerid,-1100); //De ha van akkor leveszünk -80$-t
SetCameraBehindPlayer(playerid); //A játékos mögé rakjuk a kamerát mert õ így jobban lát mikor megvan fagyasztva
TogglePlayerControllable(playerid,0); //Megfagyasztjuk a játékost
isrefuelling[playerid] = 1; //Beálítjuk a refuel értéket 1 re hogy ne tudjon SPAMOLNI
TextDrawSetString(td_fuel[playerid],\"Tankolas\"); //Kicseréli a TextDrawot
SetTimerEx(\"timer_refuel\",4500,false,\"i\",playerid); //És beálítjuk az ujratöltési idõt
}
else if(IsPlayerInRangeOfPoint(playerid, 20.0, -2029.7627,156.8426,28.5407))//8
{
if (!IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playerid,0xFFC800FF,\"Nem vagy kocsiban\");
if (isrefuelling[playerid]) return SendClientMessage(playerid,0xFFC800FF,\"Elkezdtél tankolni\");
if (GetPlayerMoney(playerid) - 1705 <0) return SendClientMessage(playerid,0xFFC800FF,\"Nincs elég pénzed\");
SendClientMessage(playerid,0xff0000AA,\"Elkezdtél tankolni!A tankolás ára 1705$.A tank tele lessz!\");
GivePlayerMoney(playerid,-1705);
SetCameraBehindPlayer(playerid);
TogglePlayerControllable(playerid,0);
isrefuelling[playerid] = 1;
TextDrawSetString(td_fuel[playerid],\"Tankolas\");
SetTimerEx(\"timer_refuel\",4500,false,\"i\",playerid);
}
else if(IsPlayerInRangeOfPoint(playerid, 20.0, -2533.0508,1221.5062,37.1297))
{
if (!IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playerid,0xFFC800FF,\"Nem vagy kocsiban\");
if (isrefuelling[playerid]) return SendClientMessage(playerid,0xFFC800FF,\"Elkezdtél tankolni\");
if (GetPlayerMoney(playerid) - 1400 <0) return SendClientMessage(playerid,0xFFC800FF,\"Nincs elég pénzed\");
SendClientMessage(playerid,0xff0000AA,\"Elkezdtél tankolni!A tankolás ára 1400$.A tank tele lessz!\");
GivePlayerMoney(playerid,-1400);
SetCameraBehindPlayer(playerid);
TogglePlayerControllable(playerid,0);
isrefuelling[playerid] = 1;
TextDrawSetString(td_fuel[playerid],\"Tankolas\");
SetTimerEx(\"timer_refuel\",4500,false,\"i\",playerid);
}
else SendClientMessage(playerid,0xff0000AA,\"Nem vagy benzinkútnál\");
return 1;
}
CMD:bkut(playerid,params[])
{
SetPlayerMapIcon( playerid, 1, 2115.9160,920.2363,10.4779, 55, 0, MAPICON_GLOBAL_CHECKPOINT );
SetPlayerMapIcon( playerid, 2, 2640.1543,1106.2999,10.4506, 55, 0, MAPICON_GLOBAL_CHECKPOINT );
SetPlayerMapIcon( playerid, 3, 2202.7407,2473.6682,10.4785, 55, 0, MAPICON_GLOBAL_CHECKPOINT );
SetPlayerMapIcon( playerid, 4, 1938.6686,-1772.6189,13.1642, 55, 0, MAPICON_GLOBAL_CHECKPOINT );
SetPlayerMapIcon( playerid, 5, 1003.4471,-933.0402,41.9593, 55, 0, MAPICON_GLOBAL_CHECKPOINT );
SetPlayerMapIcon( playerid, 6, -91.7949,-1170.8586,2.1484, 55, 0, MAPICON_GLOBAL_CHECKPOINT );
SetPlayerMapIcon( playerid, 7, -1677.9883,411.3183,6.8844, 55, 0, MAPICON_GLOBAL_CHECKPOINT );
SetPlayerMapIcon( playerid, 8, -2029.7627,156.8426,28.5407, 55, 0, MAPICON_GLOBAL_CHECKPOINT );
SetPlayerMapIcon( playerid, 9, -2533.0508,1221.5062,37.1297, 55, 0, MAPICON_GLOBAL_CHECKPOINT );
return 1;
}
CMD:ekut(playerid,params[])
{
RemovePlayerMapIcon( playerid, 1 );
RemovePlayerMapIcon( playerid, 2 );
RemovePlayerMapIcon( playerid, 3 );
RemovePlayerMapIcon( playerid, 4 );
RemovePlayerMapIcon( playerid, 5 );
RemovePlayerMapIcon( playerid, 6 );
RemovePlayerMapIcon( playerid, 7 );
RemovePlayerMapIcon( playerid, 8 );
RemovePlayerMapIcon( playerid, 9 );
return 1;
}
CMD:bhelp(playerid,params[])
{
SendClientMessage(playerid,0xff0000AA,\"Benzin szkript by:Nyerucz\");
SendClientMessage(playerid,0xff0000AA,\"Ha elõ akarod hozni hogy mely benzín kutatok lehet tankolni, /bkut\");
SendClientMessage(playerid,0xff0000AA,\"Ha ép elakarod rejteni a MAP ICON-t akkor /ekut\");
SendClientMessage(playerid,0xff0000AA,\"Tankolni a /tankol parancsal tudsz.\");
return 1;
}
public timer_fuel_lower()
{
for(new i=0;i<MAX_PLAYERS;i++) {
if (isrefuelling) continue;
new vid = GetPlayerVehicleID(i);
if (GetPlayerVehicleSeat(i) == 0) {
fuel[vid] = fuel[vid] -1;
if (fuel[vid]<1)
{
new engine, lights, alarm, doors, bonnet, boot, objective;
fuel[vid] = 0;
SetVehicleParamsEx(0, engine, lights, alarm, doors , bonnet, boot, objective);
RemovePlayerFromVehicle(i);
GameTextForPlayer(i,\"~r~Elfogyott a ~w~Benzin~r~!\",5000,4);
}
}
new string[125];format(string,sizeof string,\"Benzin:%i\",fuel[vid]);
TextDrawSetString(td_fuel,string);
}
return 1;
}
public timer_refuel(playerid) //Amikor tankol
{
new vid = GetPlayerVehicleID(playerid);
fuel[vid] = fuel[vid] = 100;
isrefuelling[playerid] = 0;
TextDrawSetString(td_fuel[playerid],\"Benzin:100\");
TogglePlayerControllable(playerid,1);
}
:wall: