slavik537
Умник
Недавно скачал ФС Бензин
Начал тестить с друзьями и оказалось что бензин расходуется только у одного игрока
Помогите исправить дам ++сик
Вот код:
Начал тестить с друзьями и оказалось что бензин расходуется только у одного игрока
Помогите исправить дам ++сик
Вот код:
PHP:
#include <a_samp>
#define COLOR_YELLOW 0xFFFF00AA
#define TimeRashoda 30000
#define CenaZapravki 3
new Benzin[MAX_VEHICLES];
new CheckBenzin[MAX_VEHICLES];
new lights,alarm,doors,bonnet,boot,objective;
new Text:ShowDatchik[MAX_PLAYERS];
new CheckTimer;
new PickupZapravka;
new CheckZapravka;
new WarnOne;
forward RashodBenzina(playerid);
forward ZapravkaBenzina(playerid);
public OnFilterScriptInit()
{
print("\n--------------------------------------");
print("Скрипт бензина");
print("--------------------------------------\n");
for(new i;i < MAX_VEHICLES;i++)
{
Benzin[i] = 100;
CheckBenzin[i] = 1;
}
PickupZapravka = CreatePickup(18749,14,1944.1565,-1771.6384,13.3906, -1);
return 1;
}
public OnPlayerConnect(playerid)
{
ShowDatchik[playerid] = TextDrawCreate(36.0,321.0,"_");
TextDrawAlignment(ShowDatchik[playerid],0);
TextDrawBackgroundColor(ShowDatchik[playerid],0x000000ff);
TextDrawFont(ShowDatchik[playerid],2);
TextDrawLetterSize(ShowDatchik[playerid],0.5,1.7);
TextDrawColor(ShowDatchik[playerid],0xffffffff);
TextDrawSetOutline(ShowDatchik[playerid],1);
TextDrawSetProportional(ShowDatchik[playerid],1);
TextDrawSetShadow(ShowDatchik[playerid],1);
}
public OnPlayerDisconnect(playerid,reason)
{
TextDrawDestroy(ShowDatchik[playerid]);
}
public OnVehicleDeath(vehicleid,killerid)
{
KillTimer(CheckTimer);
}
public OnVehicleSpawn(vehicleid)
{
Benzin[vehicleid] = 100;
CheckBenzin[vehicleid] = 1;
}
public OnPlayerStateChange(playerid, newstate, oldstate)
{
if(newstate == PLAYER_STATE_DRIVER)
{
new vehid = GetPlayerVehicleID(playerid);
new ShowBenz[64];
format(ShowBenz,64,"FUEL: %d",Benzin[vehid]);
TextDrawSetString(ShowDatchik[playerid],ShowBenz);
TextDrawShowForPlayer(playerid,ShowDatchik[playerid]);
if(CheckBenzin[vehid] == 0)
{
SendClientMessage(playerid,COLOR_YELLOW,"В этой машине нету бензина");
SetVehicleParamsEx(vehid,0,lights,alarm,doors,bonnet,boot,objective);
return true;
}
CheckTimer = SetTimer("RashodBenzina",TimeRashoda,1);
}
if(newstate != PLAYER_STATE_DRIVER)
{
WarnOne = 0;
TextDrawHideForPlayer(playerid,ShowDatchik[playerid]);
KillTimer(CheckTimer);
}
return true;
}
public RashodBenzina(playerid)
{
new vehid = GetPlayerVehicleID(playerid);
if(Benzin[vehid] <= 0)
{
SendClientMessage(playerid,COLOR_YELLOW,"Бензин кончился, машина заглохла...");
SetVehicleParamsEx(vehid,0,lights,alarm,doors,bonnet,boot,objective);
CheckBenzin[vehid] = 0;
KillTimer(CheckTimer);
return true;
}
if(Benzin[vehid] <= 30 && WarnOne == 0)
{
SendClientMessage(playerid,COLOR_YELLOW,"Мало бензина, Нужно заправиться.");
WarnOne = 1;
}
Benzin[vehid] --;
new ShowBenz[64];
format(ShowBenz,64,"FUEL: %d",Benzin[vehid]);
TextDrawSetString(ShowDatchik[playerid],ShowBenz);
return true;
}
public OnPlayerPickUpPickup(playerid, pickupid)
{
if(pickupid == PickupZapravka)
{
if(Benzin[GetPlayerVehicleID(playerid)] > 70) return SendClientMessage(playerid,COLOR_YELLOW,"В вашем автомобиле достаточно бензина");
TogglePlayerControllable(playerid,0);
SetVehicleVelocity(GetPlayerVehicleID(playerid),0.0,0.0,0.0);
KillTimer(CheckTimer);
CheckZapravka = SetTimer("ZapravkaBenzina",100,1);
}
return true;
}
public ZapravkaBenzina(playerid)
{
if(Benzin[GetPlayerVehicleID(playerid)] == 100)
{
KillTimer(CheckZapravka);
CheckTimer = SetTimer("RashodBenzina",TimeRashoda,1);
SendClientMessage(playerid,COLOR_YELLOW,"Автомобиль полностью заправлен.");
TogglePlayerControllable(playerid,1);
return true;
}
Benzin[GetPlayerVehicleID(playerid)] ++;
GivePlayerMoney(playerid,CenaZapravki);
new ShowBenz[64];
format(ShowBenz,64,"FUEL: %d",Benzin[GetPlayerVehicleID(playerid)]);
TextDrawSetString(ShowDatchik[playerid],ShowBenz);
return true;
}
