All pastes #199205 Raw Edit

Properties!

public cpp v1 · immutable
#199205 ·published 2006-10-12 11:54 UTC
rendered paste body
#include <a_samp>//Color Define#define COLOR_GREY 0xAFAFAFAA#define COLOR_GREEN 0x33AA33AA#define COLOR_RED 0xFF0000AA#define COLOR_YELLOW 0xFFFF00AA#define COLOR_DARKYELLOW 0xE3B515AA#define COLOR_PINK 0xFF66FFAA#define COLOR_BLUE 0x0000BBAA#define COLOR_LIGHTBLUE 0x33CCFFAA#define COLOR_DARKRED 0x660000AA#define COLOR_ORANGE 0xFF9900AA#define COLOR_WHITE 0xFFFFFFAA#define COLOR_LIGHTGREEN 0x00FF00AA//End Color Define//------------------------------------------------------------------------------#define CP_CHEMIST         0#define CP_ELECTRIC        1#define P_CHEMIST           0#define P_ELECTRIC          1#define P_OFFSET    3//------------------------------------------------------------------------------new playerCheckpoint[MAX_PLAYERS];#define MAX_POINTS 2new Float:checkCoords[MAX_POINTS][4] = {{-2112.1587,-1880.4966,-1079.9663,-733.0032},     //CHEMIST{-2135.6433,-1887.8292,-1066.3611,-671.8706} //ELECTRIC// I will add a lot of properties!!!};new Float:checkpoints[MAX_POINTS][3] = {{-1954.8829,-858.4899,32.0312},     //CHEMIST{-2541.2253,-624.2522,132.7179} //ELECTRIC// I will add a lot of properties!!!};new checkpointType[MAX_POINTS] = {	CP_CHEMIST,	CP_ELECTRIC// I will add a lot of properties!!!	};#define MAX_PROPERTIES 2new propertyNames[MAX_PROPERTIES][100] = {    "Chemist Studios",	"Electric Station"// I will add a lot of properties!!!};new propertyValues[MAX_PROPERTIES] = {	14554,	31254// I will add a lot of properties!!!};new propertyEarnings[MAX_PROPERTIES] = {	10000,	4000// I will add a lot of properties!!!};new propertyOwner[MAX_PROPERTIES] = {999,999};// numer of propmain(){	print("\n----------------------------------");	print("  This is a blank GameModeScript");	print("----------------------------------\n");}public OnGameModeInit(){	print("GameModeInit()");	SetGameModeText("Blank Script");	AddPlayerClass(0, -2541.2253,-624.2522,132.7179, 269.1425, 22, 5677,38, 8888, 29, 45454);		AddStaticVehicle(478, -2541.2253,-628.2522,135.7179,random(360), 0, 0);	AddStaticVehicle(478, -2541.2253,-628.2522,155.7179,random(360), 0, 0);	AddStaticVehicle(478, -2541.2253,-628.2522,145.7179,random(360), 0, 0);	AddStaticVehicle(478, -2541.2253,-628.2522,136.7179,random(360), 0, 0);	AddStaticVehicle(478, -2541.2253,-638.2522,135.7179,random(360), 0, 0);	AddStaticVehicle(478, -2521.2253,-628.2522,155.7179,random(360), 0, 0);	AddStaticVehicle(478, -2501.2253,-628.2522,145.7179,random(360), 0, 0);	AddStaticVehicle(478, -2541.2253,-618.2522,136.7179,random(360), 0, 0);	SetTimer("PropertyScoreUpdate", 40005, 1);    SetTimer("checkpointUpdate", 1100, 1);    	return 1;}public OnPlayerRequestClass(playerid, classid){	SetPlayerPos(playerid, 1958.3783, 1343.1572, 15.3746);	SetPlayerCameraPos(playerid, 1958.3783, 1343.1572, 15.3746);	SetPlayerCameraLookAt(playerid, 1958.3783, 1343.1572, 15.3746);	return 1;}public OnGameModeExit(){	print("GameModeExit()");	return 1;}public OnPlayerConnect(playerid){	printf("OnPlayerConnect(%d)", playerid);	playerCheckpoint[playerid]=999;	GivePlayerMoney(playerid, 1000000);	return 1;}public OnPlayerDisconnect(playerid){	for(new i = 0; i < MAX_PROPERTIES; i++)	{		if(propertyOwner[i]==playerid)		{		    propertyOwner[i] = 999;		    GivePlayerMoney(playerid, propertyValues[i]);  		}	}}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[256]; 	    new idx;	    cmd = strtok(cmdtext, idx);	    	    new giveplayer[MAX_PLAYER_NAME];	        	new property=999;		new string[512];	       if(strcmp(cmd, "/buy", true) == 0) {			if(IsPlayerInCheckpoint(playerid)) {			switch (playerCheckpoint[playerid])			{				case CP_CHEMIST:{					property = P_CHEMIST;				}				case CP_ELECTRIC:{					property = P_ELECTRIC;				}						}			if(property==999) {				SendClientMessage(playerid, COLOR_YELLOW, "You need to be in a property checkpoint to /buy it.");				return 1;			}//			property--;			if(GetPlayerMoney(playerid) < propertyValues[property]) {				SendClientMessage(playerid, COLOR_RED, "You don't have enough money to buy this property.");				return 1;			}			if(propertyOwner[property]==playerid) {				SendClientMessage(playerid, COLOR_RED, "You already own this property.");				return 1;			}			if(propertyOwner[property] < 999) {				GetPlayerName(playerid, giveplayer, sizeof(giveplayer));				GivePlayerMoney(propertyOwner[property], propertyValues[property]);				format (string, sizeof(string), "Your property, the %s, has been bought out by %s (id: %d).",propertyNames[property],giveplayer,playerid);				SendClientMessage(propertyOwner[property], COLOR_RED, string);			}			GivePlayerMoney(playerid, 0-propertyValues[property]);			propertyOwner[property]=playerid;			format(string, sizeof(string), "You have purchased the %s!", propertyNames[property]);			SendClientMessage(playerid, COLOR_GREEN, string);		} else {			SendClientMessage(playerid, COLOR_YELLOW, "You need to be in a property checkpoint to /buy it.");			return 1;		}		return 1;	}	//------------------- /properties	if(strcmp(cmd, "/properties", true) == 0) {		SendClientMessage(playerid, COLOR_GREEN, "Property Owners:");		for(new i = 0; i < MAX_PROPERTIES; i++) {			if(propertyOwner[i] < 999) {				GetPlayerName(propertyOwner[i], giveplayer, sizeof(giveplayer));				format(string, sizeof(string), "%d. %s - %s", i, propertyNames[i], giveplayer);			} else				format(string, sizeof(string), "%d. %s - None", i, propertyNames[i]);			SendClientMessage(playerid, COLOR_YELLOW, string);		}		return 1;	}  // I would like to add command /sellif(strcmp(cmd, "/sell", true) == 0)    {	// help me !  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){	new string[256];	new ownplayer[MAX_PLAYER_NAME];	switch(getCheckpointType(playerid))	{			case CP_CHEMIST:		{			SendClientMessage(playerid, COLOR_YELLOW, "You can buy the Chemist-Studious $000 with /buy.");  		}		case CP_ELECTRIC:		{			SendClientMessage(playerid, COLOR_YELLOW, "You can buy the Electric-Station for $000 with /buy.");		}	}	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);			}    	}  }public OnPlayerLeaveCheckpoint(playerid){	printf("OnPlayerLeaveCheckpoint(%d)", playerid);	return 1;}public getCheckpointType(playerID) {	return checkpointType[playerCheckpoint[playerID]];}public isPlayerInArea(playerID, Float:data[4]){	new Float:X, Float:Y, Float:Z;	GetPlayerPos(playerID, X, Y, Z);	if(X >= data[0] && X <= data[2] && Y >= data[1] && Y <= data[3]) {		return 1;	}	return 0;}public PayPlayerInArea(playerID, Float:x1, Float:y1, Float:x2, Float:y2, cash){	if(IsPlayerConnected(playerID))	{		new Float:X, Float:Y, Float:Z;		GetPlayerPos(playerID, X, Y, Z);		if(X >= x1 && X <= x2 && Y >= y1 && Y <= y2)		{			GivePlayerMoney(playerID, cash);			return 1;		}	}	return 0;}public checkpointUpdate(){	for(new i=0; i<MAX_PLAYERS; i++)	{	    if(IsPlayerConnected(i)) {	        for(new j=0; j < MAX_POINTS; j++) {	            if(isPlayerInArea(i, checkCoords[j])) {	                if(playerCheckpoint[i]!=j) {	                    DisablePlayerCheckpoint(i);						SetPlayerCheckpoint(i, checkpoints[j][0],checkpoints[j][1],checkpoints[j][2],2);						playerCheckpoint[i] = j;					}	            } else {	            	if(playerCheckpoint[i]==j) {	            	    DisablePlayerCheckpoint(i);	            	    playerCheckpoint[i] = 999;         	    	}	            }	        }		}	}}public PropertyScoreUpdate(){	new owners[MAX_PROPERTIES];	new payments[MAX_PROPERTIES];	for(new i=0; i < MAX_PROPERTIES; i++)	    owners[i]=999;	for(new i=0; i < MAX_PROPERTIES; i++)	{		if(propertyOwner[i] < 999) {			for(new j=0; j < MAX_PROPERTIES; j++) {			    if(owners[j]==propertyOwner[i]) {			        payments[j]+=propertyEarnings[i];			        j = MAX_PROPERTIES;			    } else if (owners[j]==999) {					owners[j]=propertyOwner[i];					payments[j]+=propertyEarnings[i];			        j = MAX_PROPERTIES;				}			}		}	}	for(new i=0; i < MAX_PROPERTIES; i++) {		if(owners[i] < 999 && IsPlayerConnected(owners[i])) {			new string[256];			GivePlayerMoney(owners[i], payments[i]);			format(string, sizeof(string), "You earned $%d from your properties.", payments[i]);			SendClientMessage(owners[i], COLOR_GREEN, string);		}	}}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;}