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