Доступ к архиву

Переход в группу "Пользователь"

300.00 ₽
Одноразовый платёж
Быстрый переход в группу "Пользователи", без надобности написания постов и ожидания.

Покупка дает возможность:
Быть полноправным участником форума
Нормальное копирование кода
Создавать темы
Скачивать файлы
Доступ к архиву Pawno-Info

Баг с бенизином

Статус
В этой теме нельзя размещать новые ответы.

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;
}
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху Снизу