rendered paste body/*
Checktest - bug testing
by switch
*/
#include <a_samp>
#define COLOR_YELLOW 0xFFFF00AA
//Time to switch to new checkpoint, has to be bigger than 25.
#define CHECKTIME 1000
new gSize = 0;
main()
{
print("\n----------------------------------");
print("checktest");
print("----------------------------------\n");
}
public OnGameModeInit()
{
print("GameModeInit()");
SetGameModeText("checktest");
//PLAYER SPAWNS
AddPlayerClass(0,1556.0880,-899.4401,48.2526,181.6974,0,0,0,0,0,0); //
return 1;
}
public OnPlayerRequestClass(playerid, classid)
{
SetPlayerInterior(playerid,0);
SetPlayerPos(playerid,2682.7673,-1680.1404,9.4193);
SetPlayerFacingAngle(playerid, 352.2312);
SetPlayerCameraPos(playerid,2683.1050,-1674.7749,9.4287);
SetPlayerCameraLookAt(playerid,2682.0964,-1691.6710,9.4207);
return 1;
}
public OnGameModeExit()
{
print("GameModeExit()");
return 1;
}
public OnPlayerConnect(playerid)
{
SendClientMessage(playerid, COLOR_YELLOW, "Hi!");
return 1;
}
public OnPlayerSpawn(playerid)
{
SetPlayerInterior(playerid,0);
SendClientMessage(playerid, COLOR_YELLOW, "Commands:");
SendClientMessage(playerid, COLOR_YELLOW, "/instacheck SIZE (or /ic SIZE)");
SendClientMessage(playerid, COLOR_YELLOW, "/timedcheck SIZE (or /tc SIZE)");
SendClientMessage(playerid, COLOR_YELLOW, "/removecheck (or /rc)");
return 1;
}
public OnPlayerEnterCheckpoint(playerid)
{
return 1;
}
public SetCheckpoint()
{
SetPlayerCheckpoint(0,1544.7168,-920.5952,43.6180, gSize);
new msg[128];
format(msg,sizeof(msg),"Checkpoint Set, Size:%d",gSize);
SendClientMessage(0, COLOR_YELLOW, msg);
}
public EndGame()
{
GameModeExit();
}
public OnPlayerCommandText(playerid, cmdtext[])
{
new cmd[256], idx, cmd2[256], size;
cmd = strtok(cmdtext, idx);
if (strcmp(cmd, "/timedcheck", true)==0 || strcmp(cmd, "/tc", true)==0)
{
cmd2 = strtok(cmdtext, idx);
size = strval(cmd2);
if (size >= 1 && size <= 1000)
{
gSize = size;
DisablePlayerCheckpoint(playerid);
SetTimer("SetCheckpoint",CHECKTIME,0);
SendClientMessage(playerid,COLOR_YELLOW,"Check Removed, Setting new one in 1 second...");
} else {
SendClientMessage(playerid,COLOR_YELLOW,"Enter a size from 1 - 1000");
}
return 1;
}
if (strcmp(cmd, "/instacheck", true)==0 || strcmp(cmd, "/ic", true)==0)
{
cmd2 = strtok(cmdtext, idx);
size = strval(cmd2);
if (size >= 1 && size <= 1000)
{
gSize = size;
DisablePlayerCheckpoint(playerid);
SendClientMessage(playerid,COLOR_YELLOW,"Check Removed...");
SetCheckpoint();
} else {
SendClientMessage(playerid,COLOR_YELLOW,"Enter a size from 1 - 1000");
}
return 1;
}
if (strcmp(cmd, "/removecheck", true)==0 || strcmp(cmd, "/rc", true)==0)
{
DisablePlayerCheckpoint(playerid);
SendClientMessage(playerid,COLOR_YELLOW,"Check Removed...");
return 1;
}
return 0;
}
public strtok(const string[], &index)
{
new length = strlen(string);
while ((index < length) && (string[index] <= ' '))
{
index++;
}
new offset = index;
new result[20];
while ((index < length) && (string[index] > ' ') && ((index - offset) < (sizeof(result) - 1)))
{
result[index - offset] = string[index];
index++;
}
result[index - offset] = EOS;
return result;
}