All pastes #243719 Raw Edit

Untitled

public text v1 · immutable
·published 2006-11-08 20:45 UTC
rendered paste body
#include <a_samp>

#define TEAM_COP 1

new gCurrentCP[MAX_PLAYERS];
new gTeam [MAX_PLAYERS];
new bool:gJailed[MAX_PLAYERS];

main()
{
	print("\n----------------------------------");
	print("  This is a blank GameModeScript");
	print("----------------------------------\n");
}

public timer() {
	CheckPlayerLocations();
}


public OnGameModeInit()
{
	print("GameModeInit()");
	SetGameModeText("Blank Script");
	AddPlayerClass(0, 1958.3783, 1343.1572, 15.3746, 269.1425, 0, 0, 0, 0, 0, 0);
	AddPlayerClass(286, 1958.3783, 1343.1572, 15.3746, 269.1425, 0, 0, 0, 0, 0, 0);
	SetTimer("CheckPlayerLocations",200,1);
	return 1;
}

public OnPlayerRequestClass(playerid, classid)
{
	printf("OnPlayerRequestClass(%d, %d)", playerid, classid);
	SetPlayerPos(playerid, 1958.3783, 1343.1572, 15.3746);
	SetPlayerCameraPos(playerid, 1955.3783, 1343.1572, 15.3746);
	SetPlayerCameraLookAt(playerid, 1958.3783, 1343.1572, 15.3746);
	if (classid == 1) {
		gTeam[playerid] = TEAM_COP;
	} else {
		gTeam[playerid] = 0;
	}
	return 1;
}

public OnGameModeExit()
{
	print("GameModeExit()");
	return 1;
}

public OnPlayerConnect(playerid)
{
	printf("OnPlayerConnect(%d)", playerid);
	return 1;
}

public OnPlayerDisconnect(playerid)
{
	printf("OnPlayerDisconnect(%d)", playerid);
	return 1;
}

public OnPlayerSpawn(playerid)
{
	printf("OnPlayerSpawn(%d)", playerid);
	return 1;
}

public OnPlayerDeath(playerid, killerid, reason)
{
	printf("OnPlayerDeath(%d, %d, %d)", playerid, killerid, reason);
	return 1;
}

public OnVehicleSpawn(vehicleid)
{
	printf("OnVehicleSpawn(%d)", vehicleid);
	return 1;
}

public OnVehicleDeath(vehicleid, killerid)
{
	printf("OnVehicleDeath(%d, %d)", vehicleid, killerid);
	return 1;
}

public OnPlayerText(playerid)
{
	printf("OnPlayerText(%d)", playerid);
	return 1;
}

public OnPlayerCommandText(playerid, cmdtext[])
{
	new cmd[255],idx;
	new pid;
	
	cmd = strtok(cmdtext,idx);

	if (strcmp(cmd, "/jail", true)==0)
	{
	    if (gTeam[playerid] == TEAM_COP) {
			cmd = strtok(cmdtext,idx);
			if (!strlen(cmd)) {
			    SendClientMessage(playerid, 0xFFFF00FF, "* Syntax: /jail <playerid>");
			    return 1;
			}
			pid = strval(cmd);

			if (IsPlayerConnected(pid)) {
			    if (gJailed[pid]) {
			    	SendClientMessage(playerid, 0xFFFF00FF, "* This player is already jailed!");
			    } else {
				    if (IsPlayerInAnyVehicle(playerid)) {
				        RemovePlayerFromVehicle(playerid);
				    }
				    SetPlayerInterior(pid,10);
				    SetPlayerPos(pid,223.4799,111.2091,999.0156);
				    SetPlayerFacingAngle(playerid,0);
				    gJailed[pid] = true;
				}
			} else {
			    SendClientMessage(playerid, 0xFFFF00FF, "* This is not an active player!");
			}
		} else {
  			SendClientMessage(playerid, 0xFFFF00FF, "* You are not a cop!");
		}
		
	    return 1;
	}

	if (strcmp(cmd, "/unjail", true)==0)
	{
	    if (gTeam[playerid] == TEAM_COP) {
			cmd = strtok(cmdtext,idx);
			if (!strlen(cmd)) {
			    SendClientMessage(playerid, 0xFFFF00FF, "* Syntax: /unjail <playerid>");
			    return 1;
			}
			pid = strval(cmd);

			if (IsPlayerConnected(pid)) {
			    if (!gJailed[pid]) {
			    	SendClientMessage(playerid, 0xFFFF00FF, "* This player is not jailed!");
			    } else {
				    if (IsPlayerInAnyVehicle(playerid)) {
				        RemovePlayerFromVehicle(playerid);
				    }
				    SetPlayerInterior(pid,0);
				    SetPlayerPos(pid,1963.4655,1343.0079,16.5774);
				    SetPlayerFacingAngle(playerid,270);
				    gJailed[pid] = false;
				}
			} else {
			    SendClientMessage(playerid, 0xFFFF00FF, "* This is not an active player!");
			}
		} else {
  			SendClientMessage(playerid, 0xFFFF00FF, "* You are not a cop!");
		}

	    return 1;
	}
	return 0;
}

public OnPlayerInfoChange(playerid)
{
	printf("OnPlayerInfoChange(%d)");
	return 1;
}

public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
{
	printf("OnPlayerEnterVehicle(%d, %d, %d)", playerid, vehicleid, ispassenger);
	return 1;
}

public OnPlayerExitVehicle(playerid, vehicleid)
{
	printf("OnPlayerExitVehicle(%d, %d)", playerid, vehicleid);
	return 1;
}

public OnPlayerStateChange(playerid, newstate, oldstate)
{
	printf("OnPlayerStateChange(%d, %d, %d)", playerid, newstate, oldstate);
	return 1;
}

public OnPlayerEnterCheckpoint(playerid)
{
	DisablePlayerCheckpoint(playerid);
	
	switch (gCurrentCP[playerid]) {
	case 1: //cp to sf pd
	    {
	        SetPlayerInterior(playerid,10);
	        SetPlayerPos(playerid,246.40,110.84,1003.22);
	    }
	case 2: //cp to hidden safehouse
	    {
	        SetPlayerInterior(playerid,12);
	        SetPlayerPos(playerid,2324.33,-1144.79,1050.71);
	    }
	case 3: //cp out of sf pd
	    {
	        SetPlayerInterior(playerid,0);
	        SetPlayerPos(playerid,1961.1506,1345.8337,15.3746);
	    }
	case 4: //cp out of hidden safehouse
	    {
	        SetPlayerInterior(playerid,0);
	        SetPlayerPos(playerid,1960.6218,1339.8765,15.3746);
	    }
	}
	return 1;
}

public OnPlayerLeaveCheckpoint(playerid)
{
	printf("OnPlayerLeaveCheckpoint(%d)", playerid);
	return 1;
}

public CheckPlayerLocations() {

  new Float:X, Float:Y, Float:Z;

  new currentplayer;
  for (currentplayer = 0; currentplayer <  MAX_PLAYERS; currentplayer++) {
    GetPlayerPos(currentplayer, X, Y, Z);
        if(IsPlayerInCircle(currentplayer, 1962.3502,1345.9735,4)) {    //goto sf pd
			if (gCurrentCP[currentplayer] != 1) {
				SetPlayerCheckpoint(currentplayer,1962.5,1345.9735,16.0142,1);
				gCurrentCP[currentplayer] = 1;
			}
        } else if (IsPlayerInCircle(currentplayer, 1962.5535,1339.8729,4)) {    //goto hidden safehouse
			if (gCurrentCP[currentplayer] != 2) {
				SetPlayerCheckpoint(currentplayer,1962.5,1339.8729,16.0142,1);
				gCurrentCP[currentplayer] = 2;
			}
        } else if (IsPlayerInCircle(currentplayer, 246.2313,108.8046,4)) {    //go out of sf pd
			if (gCurrentCP[currentplayer] != 3) {
				SetPlayerCheckpoint(currentplayer,246.2313,108.8046,1003.2188,1);
				gCurrentCP[currentplayer] = 3;
			}
        } else if (IsPlayerInCircle(currentplayer, 2324.5632,-1148.2930,4)) {    //go out of hidden safehouse
			if (gCurrentCP[currentplayer] != 4) {
				SetPlayerCheckpoint(currentplayer,2324.5632,-1148.2930,1050.7101,1);
				gCurrentCP[currentplayer] = 4;
			}
        } else {
			DisablePlayerCheckpoint(currentplayer);
            gCurrentCP[currentplayer] = 0;
        }
      }
  return 1;
}

public IsPlayerInCircle(playerid,Float:x,Float:y,radius)
{
	if(GetPlayerDistanceToPoint(playerid,x,y) < radius){
		return 1;
	}
	return 0;
}

public GetPlayerDistanceToPoint(playerid,Float:x,Float:y)
{
	new Float:x1,Float:y1,Float:z1;
	new Float:tmpdis;
	GetPlayerPos(playerid,x1,y1,z1);
	tmpdis = floatsqroot(floatpower(floatabs(floatsub(Float:x,x1)),2)+floatpower(floatabs(floatsub(Float:y,y1)),2));
	return floatround(tmpdis);
}

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;
}