Szerző Téma: Benzin script porbléma  (Megtekintve 684 alkalommal)

Benzin script porbléma
« Dátum: 2013. augusztus 08. - 08:09:33 »
0 Show voters
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:

Nem elérhető fabianpatrik

  • 124
  • fabianpatrik
    • Profil megtekintése
Benzin script porbléma
« Válasz #1 Dátum: 2013. augusztus 08. - 08:21:23 »
0 Show voters
elméletben kell egy  OnVehicleSpawn callback és ez alá
fuel[vehicleid] = 100;
és újra el kell indítani a timert is ha jól tudom, de lehet hogy tévedek.

Benzin script porbléma
« Válasz #2 Dátum: 2013. augusztus 08. - 17:30:28 »
0 Show voters
Enyi  Lenne?

Dupla hozzászólás automatikusan összefûzve. ( 2013. augusztus 09. - 08:52:34 )

Nem jó úgy sem.
« Utoljára szerkesztve: 2013. augusztus 09. - 08:52:34 írta narancs741 »

Nem elérhető fabianpatrik

  • 124
  • fabianpatrik
    • Profil megtekintése
Benzin script porbléma
« Válasz #3 Dátum: 2013. augusztus 09. - 10:44:38 »
0 Show voters
és ha külön létrehozol neki egy benzint úgy értem szintén az OnVehicleSpawn alá még ezt is beírni new fuel[vehicleid];
itt a kód
 
public OnVehicleSpawn(vehicleid)
{
new fuel[vehicleid];
fuel[vehicleid] = 100;
és ha kell a timert is indíts újra
 
}

 
[mod]Máskor CODE tagek![/mod]
« Utoljára szerkesztve: 2013. augusztus 09. - 10:46:23 írta Benceee »

 

SimplePortal 2.3.7 © 2008-2024, SimplePortal