16.10.2015, 13:29
Код HTML:
Veh[r][ServerID] = CreateVehicleEx(Veh[r][Model], Veh[r][PosX], Veh[r][PosY], Veh[r][PosZ], Veh[r][VAngle], Veh[r][Color1], Veh[r][Color2], -1);
KMVeh[Veh[r][ServerID]] = Veh[r][KM];
SetDistanceTraveled(Veh[r][ServerID], KMVeh[Veh[r][ServerID]]);
printf("KMVeh: %0.1f", KMVeh[Veh[r][ServerID]]);
printf("Server ID: %d", Veh[r][ServerID]);
printf("Distance: %0.1f", GetDistanceTraveled(Veh[r][ServerID])/1000);
Код HTML:
[18:29:43] KMVeh: 69.4 [18:29:43] Server ID: 352 [18:29:43] Distance: 0.0
Код HTML:
stock SetDistanceTraveled(vehicleid, Float:value)
{
Percorreu[vehicleid] = value;
return 1;
}
Код HTML:
/************************* FORWARDS ***************************/
forward ModeInit();
forward StateChange(playerid, newstate, oldstate);
forward GetPositionAll();
forward Corrida(vehicleid);
/********************** VARIБVEIS ****************************/
new Float:VehicleX[MAX_VEHICLES];
new Float:VehicleY[MAX_VEHICLES];
new Float:VehicleZ[MAX_VEHICLES];
new Float:Percorreu[MAX_VEHICLES];
new Timer[MAX_VEHICLES];
new ppID[MAX_PLAYERS];
/************************************************************/
public OnGameModeInit()
{
SetTimer("GetPositionAll", 5000, false);
return CallLocalFunction("ModeInit", "");
}
public GetPositionAll()
{
for(new v; v < MAX_VEHICLES; v++)
{
if(GetVehicleModel(v) != 0) GetVehiclePos(v, VehicleX[v], VehicleY[v], VehicleZ[v]);
}
return 1;
}
public OnPlayerStateChange(playerid, newstate, oldstate)
{
if(newstate == PLAYER_STATE_DRIVER)
{
ppID[playerid] = GetPlayerVehicleID(playerid);
Timer[ppID[playerid]] = SetTimerEx("Corrida", 5000, true, "i", ppID[playerid]);
}
if(oldstate == PLAYER_STATE_DRIVER)
{
KillTimer(Timer[ppID[playerid]]);
}
return CallLocalFunction("StateChange", "iii",playerid, newstate, oldstate);
}
public Corrida(vehicleid)
{
Percorreu[vehicleid] += GetVehicleDistanceFromPoint(vehicleid, VehicleX[vehicleid], VehicleY[vehicleid], VehicleZ[vehicleid]);
GetVehiclePos(vehicleid, VehicleX[vehicleid], VehicleY[vehicleid], VehicleZ[vehicleid]);
return 1;
}
/********************************** STOCKS ***************************************/
stock Float:GetDistanceTraveled(vehicleid)
{
Corrida(vehicleid);
return Percorreu[vehicleid];
}
stock SetVehiclePosEx(vehicleid, Float:X, Float:Y, Float:Z)
{
SetVehiclePos(vehicleid, X, Y, Z);
VehicleX[vehicleid] = X;
VehicleY[vehicleid] = Y;
VehicleZ[vehicleid] = Z;
return 1;
}
stock CreateVehicleEx(modelid, Float:x, Float:y, Float:z, Float:angle, color1, color2, respawn_delay)
{
new nID = CreateVehicle(modelid, Float:x, Float:y, Float:z, Float:angle, color1, color2, respawn_delay);
GetVehiclePos(nID,VehicleX[nID], VehicleY[nID], VehicleZ[nID]);
return nID;
}
stock SetDistanceTraveled(vehicleid, Float:value)
{
Percorreu[vehicleid] = value;
return 1;
}
/********** HOOKS **************/
#if defined _ALS_OnGameModeInit
#undef OnGameModeInit
#else
#define _ALS_OnGameModeInit
#endif
#if defined _ALS_OnPlayerStateChange
#undef OnPlayerStateChange
#else
#define _ALS_OnPlayerStateChange
#endif
#define OnGameModeInit ModeInit
#define OnPlayerStateChange StateChange


