02.01.2013, 20:02
(
Last edited by EditPawn; 03/01/2013 at 08:19 PM.
)
• eDistance System •
Introduction
It is an include that lets you check the distance a vehicle has traveled in being Meters, Kilometers or Miles.
Natives
• GetMeters(vehicleid);.........................Checks the distance traveled in meters
• GetKilometers(vehicleid);...............Checks the distance traveled in kilometers
• GetMiles(vehicleid);..............................Checks the distance traveled in miles
• ResetMetersTraveled(vehicleid);.............Reset the footage covered the vehicle
Method of Use
• GetMeters(vehicleid) - returns the integer numbers, or:
Example: The vehicle 542 traveled 1265 meters.
...
• GetKilometers(vehicleid) - returns the floating numbers, or:
Example: The vehicle 542 traveled 1.265 kilometers. (Equivalent to 1265m)
...
• GetKilometers(vehicleid) - returns the floating numbers, or:
Example: The vehicle 542 traveled 0.786 miles. (Equivalent to 1265m)
Bugs / Questions / Suggestions
Comment below
Download
Pastebin
Comments
№It took me a few minutes to create and 1 day to test and improve the optimization of some codes.
ІThis is my first include that do, may contain errors or inattention to, if it contains something you do not agree please comment below.
іI'm not good at English because I'm Brazilian so I translate to a better understanding to post my project to you.
IMPORTANT: Save as e_km.inc
Credits
Include created by EditPawn
Paulor e BlueX for helping me in some functions
Lordz tutorial by connecting Functions and Callbacks https://sampforum.blast.hk/showthread.php?tid=392061
Source of Calculations: http://www.convertworld.com/pt/comprimento/
Hope you enjoy
Introduction
It is an include that lets you check the distance a vehicle has traveled in being Meters, Kilometers or Miles.
Natives
• GetMeters(vehicleid);.........................Checks the distance traveled in meters
• GetKilometers(vehicleid);...............Checks the distance traveled in kilometers
• GetMiles(vehicleid);..............................Checks the distance traveled in miles
• ResetMetersTraveled(vehicleid);.............Reset the footage covered the vehicle
Method of Use
• GetMeters(vehicleid) - returns the integer numbers, or:
pawn Code:
public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger) {
static String[56]; //We define a string with 56 cells
format(String, sizeof(String), "The vehicle %d traveled %d meters.", vehicleid, GetMeters(vehicleid));
//We formatted string showing the ID of the vehicle and walked footage
SendClientMessage(playerid, -1, String); //We show the player the message
return true;
}
...
• GetKilometers(vehicleid) - returns the floating numbers, or:
pawn Code:
public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger) {
static String[56]; //We define a string with 56 cells
format(String, sizeof(String), "The vehicle %d traveled %0.3f kilometers.", vehicleid, GetKilometers(vehicleid));
//We formatted string showing the ID and vehicle mileage
SendClientMessage(playerid, -1, String); //We show the player the message
return true;
}
...
• GetKilometers(vehicleid) - returns the floating numbers, or:
pawn Code:
public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger) {
static String[56]; //We define a string with 56 cells
format(String, sizeof(String), "The vehicle %d traveled %0.3f miles.", vehicleid, GetMiles(vehicleid));
//We formatted string showing the ID of the vehicle and the miles traveled
SendClientMessage(playerid, -1, String); //We show the player the message
return true;
}
Bugs / Questions / Suggestions
Comment below
Download
pawn Code:
///////////////////////////////////////////////////////////////////////////////////
//
// |*|*|*|*|*|*|*|*|*|*|*|*|*|*|*|*|
// |*| eDistance System |*|
// |*|*|*|*|*|*|*|*|*|*|*|*|*|*|*|*|
//
// =====================================
// INTRODUCTION
// =====================================
//
// This allows you to check include
// as a vehicle traveled in meters,
// Kilometers or Miles.
//
// =====================================
// NATIVES
// =====================================
//
// native GetMeters(vehicleid);
// native GetKilometers(vehicleid);
// native GetMiles(vehicleid);
// native ResetMetersTraveled(vehicleid);
//
// =====================================
// EXAMPLES (METHOD OF USE)
// =====================================
//
// *-- | METERS TRAVELED | --*
// format(string, sizeof(string), "This vehicle traveled %d Meters Traveled.", GetMeters(GetPlayerVehicleID(playerid)));
// SendClientMessage(playerid, -1, string);
//
// *-- | KILOMETERS TRAVELED | --*
// format(string, sizeof(string), "This vehicle traveled %s Kilometers Traveled.", GetKilometers(GetPlayerVehicleID(playerid)));
// SendClientMessage(playerid, -1, string);
//
// *-- | MILES TRAVELED | --*
// format(string, sizeof(string), "This vehicle traveled %s Miles Traveled.", GetMiles(GetPlayerVehicleID(playerid)));
// SendClientMessage(playerid, -1, string);
//
// =====================================
// CREDITS
// =====================================
//
// * Include Built by EditPawn *
// * BlueX Paulor and for helping me with some functions *
// * Lordz tutorial by calling Functions and Callbacks *
//
// =====================================
// BUGS, SUGGESTIONS AND QUESTIONS
// =====================================
//
// Visit: http://forum.sa-mp.com
//
//
///////////////////////////////////////////////////////////////////////////////////
/* ----- INCLUDE ----- */
#include a_samp
/* ----- VARS ----- */
new E@_R[MAX_VEHICLES] = 0,
Float:v@_P[3],
E@_Timer[MAX_PLAYERS],
E@_S[12];
/* ----- DEFINES ----- */
#define GetMeters(%0) E@_R[%0]
#define GetKilometers(%0) (E@_R[%0] * 0.001)
#define GetMiles(%0) (E@_R[%0] * 0.000621)
#define ResetMetersTraveled(%0) E@_R[%0] = 0;
/* ----- FORWARDS ----- */
forward E@_OnPlayerDisconnect(playerid, reason);
forward E@_OnPlayerStateChange(playerid, newstate, oldstate);
forward E@_At(playerid);
/* ----- CALLBACKS ----- */
public OnPlayerDisconnect(playerid, reason) {
KillTimer(E@_Timer[playerid]);
return CallLocalFunction("E@_OnPlayerDisconnect", "id", playerid, reason);
}
public OnPlayerExitVehicle(playerid, vehicleid) {
KillTimer(E@_Timer[playerid]);
return CallLocalFunction("E@_OnPlayerExitVehicle", "id", playerid, vehicleid);
}
public E@_At(playerid) {
if(GetVehicleDistanceFromPoint(GetPlayerVehicleID(playerid), v@_P[0], v@_P[1], v@_P[2]) <= 100) {
E@_R[GetPlayerVehicleID(playerid)] += floatround(GetVehicleDistanceFromPoint(GetPlayerVehicleID(playerid), v@_P[0], v@_P[1], v@_P[2]));
}
GetVehiclePos(GetPlayerVehicleID(playerid), v@_P[0], v@_P[1], v@_P[2]);
/*
OBS: If you want to test, just abilite this part will appear and all forms of distance that the vehicle is running.
new E@_Str[129];
format(E@_Str, sizeof(E@_Str), "(%d) Meters - (%s) Kilometers - (%s) Miles", GetMeters(GetPlayerVehicleID(playerid)), GetKilometers(GetPlayerVehicleID(playerid)), GetMiles(GetPlayerVehicleID(playerid)));
SendClientMessage(playerid, -1, E@_Str);
*/
}
public OnPlayerStateChange(playerid, newstate, oldstate) {
if(oldstate == PLAYER_STATE_ONFOOT && newstate == PLAYER_STATE_DRIVER) {
GetVehiclePos(GetPlayerVehicleID(playerid), v@_P[0], v@_P[1], v@_P[2]);
E@_Timer[playerid] = SetTimerEx("E@_At", 1000, true, "i", playerid);
}
else if(oldstate == PLAYER_STATE_DRIVER && newstate == PLAYER_STATE_ONFOOT) KillTimer(E@_Timer[playerid]);
return CallLocalFunction("E@_OnPlayerStateChange", "idd", playerid, newstate, oldstate);
}
/* ----- HOOKS ----- */
#if defined _ALS_OnPlayerDisconnect
#undef OnPlayerDisconnect
#else
#define _ALS_OnPlayerDisconnect
#endif
#define OnPlayerDisconnect E@_OnPlayerDisconnect
#if defined _ALS_OnPlayerStateChange
#undef OnPlayerStateChange
#else
#define _ALS_OnPlayerStateChange
#endif
#define OnPlayerStateChange E@_OnPlayerStateChange
#if defined _ALS_OnPlayerExitVehicle
#undef OnPlayerExitVehicle
#endif
#define OnPlayerExitVehicle E@_OnPlayerExitVehicle
Comments
№It took me a few minutes to create and 1 day to test and improve the optimization of some codes.
ІThis is my first include that do, may contain errors or inattention to, if it contains something you do not agree please comment below.
іI'm not good at English because I'm Brazilian so I translate to a better understanding to post my project to you.
IMPORTANT: Save as e_km.inc
Credits
Include created by EditPawn
Paulor e BlueX for helping me in some functions
Lordz tutorial by connecting Functions and Callbacks https://sampforum.blast.hk/showthread.php?tid=392061
Source of Calculations: http://www.convertworld.com/pt/comprimento/
Hope you enjoy