rendered paste bodypublic OnPlayerEnterCheckpoint(playerid)
{
new string[256];
new ownplayer[MAX_PLAYER_NAME];
playercheck[playerid] = playercheck[playerid] + 1;
if (raceon == 0){
if (playercheck[playerid] >= 1 && playercheck[playerid] <=MAXCP-2){
DisablePlayerCheckpoint(playerid);
SetPlayerCheckpoint(playerid,racecheckpoints[playercheck[playerid]][0],racecheckpoints[playercheck[playerid]][1],racecheckpoints[playercheck[playerid]][2],7.0);
PlayerPlaySound(playerid,1053,racecheckpoints[playercheck[playerid]][0],racecheckpoints[playercheck[playerid]][1],racecheckpoints[playercheck[playerid]][2]);
format(msg,sizeof(msg),"~r~cp %d of %d",playercheck[playerid],MAXCP-1);
GameTextForPlayer(playerid,msg,2000,6);
if (playercp[playercheck[playerid]] == 999)
{
playercp[playercheck[playerid]] = playerid;
}
}
if (playercheck[playerid] == MAXCP-1)
{
DisablePlayerCheckpoint(playerid);
timeend[playerid] = tickcount();
timetotal[playerid] = timeend[playerid] - timestart[playerid];
timeconvert(playerid);
PlayerPlaySound(playerid,1132,racecheckpoints[playercheck[playerid]][0],racecheckpoints[playercheck[playerid]][1],racecheckpoints[playercheck[playerid]][2]);
finished = finished + 1;
playerposition[playerid] = finished;
GetPlayerName(playerid, pname, MAX_PLAYER_NAME);
new pos[] = "th";
if (playerposition[playerid] == 1 || playerposition[playerid] == 21 || playerposition[playerid] == 31 || playerposition[playerid] == 41 || playerposition[playerid] == 51 || playerposition[playerid] == 61 || playerposition[playerid] == 71 || playerposition[playerid] == 81 || playerposition[playerid] == 91)
{
pos = "st";
}
if (playerposition[playerid] == 2 || playerposition[playerid] == 22 || playerposition[playerid] == 32 || playerposition[playerid] == 42 || playerposition[playerid] == 52 || playerposition[playerid] == 62 || playerposition[playerid] == 72 || playerposition[playerid] == 82 || playerposition[playerid] == 92)
{
pos = "nd";
}
if (playerposition[playerid] == 3 || playerposition[playerid] == 23 || playerposition[playerid] == 33 || playerposition[playerid] == 43 || playerposition[playerid] == 53 || playerposition[playerid] == 63 || playerposition[playerid] == 73 || playerposition[playerid] == 83 || playerposition[playerid] == 93)
{
pos = "rd";
}
format(msg,sizeof(msg),"you finished %d%s in %dmin %d.%dsec",playerposition[playerid],pos,minutes[playerid],seconds[playerid],mseconds[playerid]);
GameTextForPlayer(playerid,msg,3000,3);
format(msg,sizeof(msg),"%s finished %d%s in %dmin %d.%dsec",pname,playerposition[playerid],pos,minutes[playerid],seconds[playerid],mseconds[playerid]);
SendClientMessageToAll(0x00FF00FF,msg);
if (fexist(RECORDFILE))
{
new dataname[50];
new dataminutes[10];
new dataseconds[10];
new datamseconds[10];
fileh = fopen(RECORDFILE);
new filedata[100];
new n[] = " ";
new j;
new k;
fread(fileh,filedata,100);
for (new i=0; i<100; i++)
{
j=i;
if (filedata[i] == n[0])
{
break;
}
dataname[i] = filedata[i];
}
k=j+1;
for (new i=k; i<100; i++)
{
j=i;
if (filedata[i] == n[0])
{
break;
}
dataminutes[i-k] = filedata[i];
}
k=j+1;
for (new i=k; i<100; i++)
{
j=i;
if (filedata[i] == n[0])
{
break;
}
dataseconds[i-k] = filedata[i];
}
k=j+1;
for (new i=k; i<100; i++)
{
j=i;
if (filedata[i] == n[0])
{
break;
}
datamseconds[i-k] = filedata[i];
}
fclose(fileh);
new old = 1;
if (minutes[playerid] < strval(dataminutes))
{
old = 0;
}
else if (minutes[playerid] == strval(dataminutes) && seconds[playerid] < strval(dataseconds))
{
old = 0;
}
else if (minutes[playerid] == strval(dataminutes) && seconds[playerid] == strval(dataseconds) && mseconds[playerid] < strval(datamseconds))
{
old = 0;
}
if (old == 0)
{
fileh = fopen(RECORDFILE);
format(msg,sizeof(msg),"%s %d %d %d ",pname,minutes[playerid],seconds[playerid],mseconds[playerid]);
fwrite(fileh,msg);
fclose(fileh);
format(msg,sizeof(msg),"new best time");
SendClientMessageToAll(0x00FF00FF,msg);
}
else if (old == 1)
{
format(msg,sizeof(msg),"%s holds the best time of %smin and %s:%ssec ",dataname,dataminutes,dataseconds,datamseconds);
SendClientMessageToAll(0x00FF00FF,msg);
}
}
else
{
fileh = fopen(RECORDFILE);
format(msg,sizeof(msg),"%s %d %d %d ",pname,minutes[playerid],seconds[playerid],mseconds[playerid]);
fwrite(fileh,msg);
fclose(fileh);
format(msg,sizeof(msg),"new best time");
SendClientMessageToAll(0x00FF00FF,msg);
}
playerinrace[playerid] = 0;
if (trigg == 0)
{
trigg = 1;
// GameTextForAll("Race will begin in 20 seconds",3000,3);
// SendClientMessageToAll(0x00FF00FF,"you have 20 seconds to get a car");
// SendClientMessageToAll(0x00FF00FF,"and type /joinrace");
SetTimer("WaitBeforeRaceEnd",20000,0);
}
// raceon = 0;
// racers = 0;
// rcount = 0;
}
}
if (raceon == 1){
switch (getCheckpointType(playerid)) {
case CP_BANK: {
SendClientMessage(playerid, COLOR_GREEN, "* You are at an ATM. To store money use '/bank amount', to withdraw");
SendClientMessage(playerid, COLOR_GREEN, "* money use '/get amount', and '/balance' to see your balance.");
}
case CP_PIRATE: {
SendClientMessage(playerid, COLOR_LIGHTBLUE, "* You can hold the pirate ship area to gain money.");
}
case CP_AMMU: {
SendClientMessage(playerid, COLOR_GREEN, "* Spawn Weapons Can Be Purchased At Weapon Shops. (in bars)");
}
case CP_BAR: {
GameTextForPlayer(playerid,"~r~Welcome To The ~g~Weapon Shop",5000,5);
SendClientMessage(playerid, COLOR_GREEN, "* You can purchase weapons here so that you have them every time you spawn.");
SendClientMessage(playerid, COLOR_LIGHTBLUE, "* Type /b(melee,pistol,shotgun,smg,rifle) (weaponid) (ammo)");
SendClientMessage(playerid, COLOR_LIGHTBLUE, "* /weaplist for a list of weapons.");
SendClientMessage(playerid, COLOR_LIGHTBLUE, "* EXAMPLE: /bsmg 2 400");
}
/*case CP_WANGEXPORTS: {
SellWangExportVehicle(playerid);
}*/
}
if (getCheckpointType(playerid) >= P_OFFSET) {
format(string, sizeof(string), "* You can buy the %s for $%d with /buy.", propertyNames[playerCheckpoint[playerid]-P_OFFSET], propertyValues[playerCheckpoint[playerid]-P_OFFSET]);
SendClientMessage(playerid, COLOR_YELLOW, string);
format(string, sizeof(string), "* You will earn $%d regularly.", propertyEarnings[playerCheckpoint[playerid]-P_OFFSET]);
SendClientMessage(playerid, COLOR_YELLOW, string);
if (propertyOwner[playerCheckpoint[playerid]-P_OFFSET] < 999) {
GetPlayerName(propertyOwner[playerCheckpoint[playerid]-P_OFFSET], ownplayer, sizeof(ownplayer));
format(string, sizeof(string), "* This property is currently owned by %s.", ownplayer);
SendClientMessage(playerid, COLOR_RED, string);
}
}
}
}