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