shape1
shape2
shape3
shape4
shape7
shape8

Пробег с сохранением

Basis

chto tut doljno bit`!?
Пользователь
24.06.2014
824
1
271
0
23
Всем привет,недавно на форуме увидел несколько просьб сделать пробег с сохранением делать буду на ini,подойдёт если у вас есть система авто и бензин
и так начнём
для начала в enum системы машин добавим

Float:cMilliage,
дальше в загрузку машин

ini_getFloat(inicOpen, "cMilliage", CarInfo[car][cMilliage]);
в сохранение машин

ini_setFloat(iniccOpen, "cMilliage", CarInfo[car][cMilliage]);
и в создание машин у меня это  stock CreateCars(car)

ini_setFloat(iniccOpen, "cMilliage", CarInfo[car][cMilliage]);
дальше будет у большинства по разному
ищем паблик где у вас отнимается бензин и ищем примерно такие строки

if(GetPlayerDistanceFromPoint(playerid, CarInfo[v][cX], CarInfo[v][cY], CarInfo[v][cZ]) > 50.0)
        {
Код:
CarInfo[v][cMilliage] += 0.1;
весь паблик у меня выглядит так

forward UpdateSpeed(playerid);
public UpdateSpeed(playerid)
{
new string[256];
new v = GetPlayerVehicleID(playerid);
format(string,sizeof(string),"SPEED: %d",SpeedVehicle(playerid));
PlayerTextDrawSetString(playerid, CarSpeed[playerid], string);
format(string,sizeof(string),"FUEL: %d",floatround(CarInfo[v][cBenzin] ));
PlayerTextDrawSetString(playerid, CarFuel[playerid], string);
format(string,sizeof(string),"MILLIAGE: %d",floatround(CarInfo[v][cMilliage] ));
PlayerTextDrawSetString(playerid, CarMilliage[playerid], string);
switch(CarInfo[v][cLights])
{
case 0: PlayerTextDrawSetString(playerid, CarLights[playerid], "~w~L");
case 1: PlayerTextDrawSetString(playerid, CarLights[playerid], "~b~L");
}
if(CarInfo[v][cEngine]) PlayerTextDrawSetString(playerid, CarEngine[playerid], "~b~E");
else PlayerTextDrawSetString(playerid, CarEngine[playerid],"~w~E");
if(CarInfo[v][cBenzin] <= 0)
{
CarInfo[v][cEngine] = 0;
CarInfo[v][cBenzin] = 0.0;
SetVehicleParamsEx(v, CarInfo[v][cEngine], CarInfo[v][cLights],0,0,0,0,0);
}
if(GetPlayerDistanceFromPoint(playerid, CarInfo[v][cX], CarInfo[v][cY], CarInfo[v][cZ]) > 50.0)
{
CarInfo[v][cMilliage] += 0.1;             <---вот тут
CarInfo[v][cBenzin] -= 0.05;
GetPlayerPos(playerid, CarInfo[v][cX],CarInfo[v][cY],CarInfo[v][cZ]);
}
return 1;
}
пробег будет работать на всём транспорте,но сохранятся будет только на личном,текстдрав вам придется делать самим,всем спасибо за внимание 

 
Последнее редактирование модератором:

djuice

Освоившийся
Пользователь
02.05.2014
86
18
0
31
Что то както слишком просто =/

Был бы благодарен за систему которая использует другой расчет,видел во многих модах что там совсем подругому расчитывает пробег, очень похоже на то как высчитывается скорость.