SA:MP Races - Create races, add and remove players from them, start them and end them.
- The most basic example on getting started with using the library:
public OnRaceCreate(racename[], maxplayers, Float:startX, Float:startY, Float:startZ,
Float:finishX, Float:finishY, Float:finishZ, Float:checkpoint_size)
{
printf("OnRaceCreate: %s, %i, %f,%f,%f,%f,%f,%f,%f", racename,
maxplayers, Float:startX, Float:startY, Float:startZ,
Float:finishX, Float:finishY, Float:finishZ, Float:checkpoint_size);
return 1;
}
public OnPlayerJoinRace(playerid, racename[])
{
fmargs_SendClientMessage(playerid, -1, "You joined the race %s!", racename);
return 1;
}
public OnPlayerLeaveRace(playerid, racename[])
{
fmargs_SendClientMessage(playerid, -1, "You left the race %s!", racename);
return 1;
}
public OnPlayerFinishRace(playerid, racename[], place)
{
fmargs_SendClientMessage(playerid, -1, "Congrats! You finished %s! Your place: %ith", racename, place);
return 1;
}
public OnRaceStart(racename[])
{
fmargs_SendClientMessageToAll(-1, "Race %s started", racename);
return 1;
}
public OnRaceFinish(racename[])
{
fmargs_SendClientMessageToAll(-1, "Race %s finished", racename);
return 1;
}
@command(.type = SLASH_COMMAND) joinrace(playerid, params[])
{
CreateRace("My race", 1, 811.1299,-1616.0647,13.5469,825.6589,-1614.8202,13.5469);
AddPlayerToRace(playerid, "My race");
StartRace("My race");
return 1;
}native CreateRace(const name[], maxplayers, Float:startX, Float:startY, Float:startZ, Float:finishX, Float:finishY, Float:finishZ, Float:checkpoint_size = 5.0);native DestroyRace(const name[]);native AddPlayerToRace(playerid, const name[]);native StartRace(const name[]);native GetRaceRemainingPlayers(const name[]);native GetRaceWinnerID(const name[]);native GetPlayerRace(playerid);native bool:IsValidRace(id);native bool:IsValidRaceName(const name[]);native GetRaceNameByID(id, dest[], size = sizeof dest);native bool:IsPlayerInRace(playerid, const name[]);native bool:IsPlayerInAnyRace(playerid);native GetRaceMaxPlayers(const name[]);native GetRaceFinishedPlayers(const name[]);native RemovePlayerFromRace(playerid);public OnRaceCreate(racename[], maxplayers, Float:startX, Float:startY, Float:startZ, Float:finishX, Float:finishY, Float:finishZ, Float:checkpoint_size)
{
return 1;
}public OnRaceDestroy(racename[])
{
return 1;
}public OnPlayerJoinRace(playerid, racename[])
{
return 1;
}public OnPlayerLeaveRace(playerid, racename[])
{
return 1;
}public OnPlayerFinishRace(playerid, racename[], place)
{
return 1;
}public OnRaceStart(racename[])
{
return 1;
}public OnRaceFinish(racename[])
{
return 1;
}