DimaBDV
Умник
[МАНУАЛ] Система аккумулятора v1
Dior_Sergelik подкинул очень интересную идейку, сделать аккумулятор, вот первый вариант данной системы.
Внимание использовалась система бензина Исправленый и доработанный Бензин v.2 но вы настроите под себя это не так уж и сложно!
1. Подговорительные работы.
Ко всем new добавим
далее
в пабл OnGameModeInit и ищем там цикл добавления бензы к авто
у меня так(как и у всех
)
и ставим под FuelCar значение
Разберём команду Включения двигателя, добавим к ней (имеено к параметру включения, к параметру выключения ненадо!)
сам параметр выглядид так
А мы его сделаем таким
И так у нас есть аккумулятор он разряжается, но как он разряжается??
Первый способ при включении, но при езде то он тож должен разряжаться так или нет?
Ну и в функцию показа бензина/скорости
которая показывает нам Бензиин добавим
И вот в спойлере смотрим строчки помеченные //!! аккум
и ставим по примеру к себе.
И ещё 1 баг который я заметил исправляется так. (смотрим помеченое //!! аккум)
На данном закончу, Ах да у кого будет ругаться на GetPVehId вот калбек или GetPlayerNameEx
Возможно я что-то забыл сюда вставить
спешил просто, кидаем варны и ерроры посмотрю
Автор: DimaBDV
От + НЕ ОТКАЖУСЬ
Ds™
Dior_Sergelik подкинул очень интересную идейку, сделать аккумулятор, вот первый вариант данной системы.
Внимание использовалась система бензина Исправленый и доработанный Бензин v.2 но вы настроите под себя это не так уж и сложно!
1. Подговорительные работы.
Ко всем new добавим
PHP:
new Text:AkkumDraw[MAX_PLAYERS];//текстдрав аккумулятора
new Akkum[MAX_VEHICLES];//переменная аккумулятора
в пабл OnGameModeInit и ищем там цикл добавления бензы к авто
у меня так(как и у всех
PHP:
for(new i=0; i < MAX_VEHICLES; i++) {
SetVehicleParamsEx(i,false,false,false,false,false,false,false);
FuelCar[i] = 50;
if(i == MAX_VEHICLES) {break;}
}
PHP:
Akkum[i] = 100;//полный заряд аккумулятора
Разберём команду Включения двигателя, добавим к ней (имеено к параметру включения, к параметру выключения ненадо!)
сам параметр выглядид так
PHP:
if(engine == 0)
{
SetVehicleParamsEx(vid,1,1,alarm,doors,bonnet,boot,objective);
format(string, sizeof(string), "*%s заводит двигатель.", GetPlayerNameEx(playerid));//у кого на это ругается можите удалить
ProxDetector(30.0, playerid, string, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,0,0);//у кого на это ругается можите удалить
}
PHP:
if(engine == 0)
{
if(Akkum[GetPlayerVehicleID(playerid)]>0)//аккамулятор ещё живой???
{
SetVehicleParamsEx(vid,1,1,alarm,doors,bonnet,boot,objective);
format(string, sizeof(string), "*%s заводит двигатель.", GetPlayerNameEx(playerid));//у кого на это ругается можите удалить
ProxDetector(30.0, playerid, string, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,0,0);//у кого на это ругается можите удалить
Akkum[vid] = Akkum[vid]- 1;
}
else SendClientMessage(playerid,COLOR_LIGHTRED,"Аккумулятор сдох, купи новый");
}
Первый способ при включении, но при езде то он тож должен разряжаться так или нет?
Ищем в своём моде цикл опустошения бака
у меня выглядит так
и встовляем под FuelCar
у меня выглядит так
PHP:
forward FuelSys ();
public FuelSys ()
{
for(new i=0; i != MAX_VEHICLES; i++)
{
if(CheckEngine(i) && FuelCar[i] != 0)
{
FuelCar[i]--;
}
}
}
PHP:
Akkum[i]--;
Ну и в функцию показа бензина/скорости
PHP:
new Float:speed_x,Float:speed_y,Float:speed_z,Float:final_speed,speed_string[256],final_speed_int;
new Float:vehicle_health,final_vehicle_health,health_string[256],str3[128];
new akkumstring[256];//!! аккум
for(new i=0;i<GetMaxPlayers();i++)
{
if(GetPlayerVehicleID(i) != 0) {
GetVehicleVelocity(GetPlayerVehicleID(i),speed_x,speed_y,speed_z);
final_speed = floatsqroot(((speed_x*speed_x)+(speed_y*speed_y))+(speed_z*speed_z))*250.666667;
final_speed_int = floatround(final_speed,floatround_round);
format(speed_string,256,"Speed: %i kh/h",final_speed_int);
TextDrawSetString(SpeedDraw[i], speed_string);
GetVehicleHealth(GetPlayerVehicleID(i),vehicle_health);
final_vehicle_health = floatround(floatround(vehicle_health - 250)/ 7.5);
format(health_string,256,"Health: %i HP", final_vehicle_health);
TextDrawSetString(HealthDraw[i], health_string);
format(str3,sizeof(str3),"Fuel: %i L",FuelCar[GetPlayerVehicleID(i)]);
TextDrawSetString(FuelDraw[i],str3);
for(new h=0; h != MAX_VEHICLES; h++)
{
if(FuelCar[h] == 0)
{
SetVehicleParamsEx(h,false,false,false,false,false,false,false);
}
if(Akkum[h]==0)
{
SetVehicleParamsEx(h,false,false,false,false,false,false,false);
}
}
format(akkumstring,sizeof(akkumstring),"Battery: %i %",Akkum[GetPlayerVehicleID(i)]);//!! аккум
TextDrawSetString(AkkumDraw[i],akkumstring);//!! аккум
}
else
{
TextDrawSetString(SpeedDraw[i], " ");
TextDrawSetString(HealthDraw[i], " ");
TextDrawSetString(FuelDraw[i], " ");
TextDrawSetString(AkkumDraw[i]," ");//!! аккум
}
}
И вот в спойлере смотрим строчки помеченные //!! аккум
и ставим по примеру к себе.
И ещё 1 баг который я заметил исправляется так. (смотрим помеченое //!! аккум)
PHP:
stock CheckEngine(veh) {
new engine,lights,alarm,doors,bonnet,boot,objective;
GetVehicleParamsEx(veh,engine,lights,alarm,doors,bonnet,boot,objective);
if(engine) {
return 1;
}
if(Akkum[veh] == 0)//!! аккум
{//!! аккум
Akkum[veh] = 1;//!! аккум
return 1;//!! аккум
}//!! аккум
return 0;
}
На данном закончу, Ах да у кого будет ругаться на GetPVehId вот калбек или GetPlayerNameEx
PHP:
stock GetPVehId(playerid)
{
new vehid = GetPlayerVehicleID(playerid);
return vehid;
}
stock GetPlayerNameEx(playerid)
{
new name[MAX_PLAYER_NAME];
GetPlayerName(playerid,name,MAX_PLAYER_NAME);
return name;
}
Автор: DimaBDV
Чтобы видеть скрытое содержание Зарегистрируйтесь на форуме!
Чтобы видеть скрытое содержание Зарегистрируйтесь на форуме!
От + НЕ ОТКАЖУСЬ
Ds™
Последнее редактирование:
