rendered paste body#include <a_samp>#define COLOR_RED 0xAA3333AA#define COLOR_GREEN 0x33AA33AA#define COLOR_GREY 0xAFAFAFAA#define COLOR_ORANGE 0xFF9900AA#define COLOR_YELLOW 0xFFFF00AA#define CP_GZ_AUTOBASE_LV 0#define CP_GZ_CONSTRUCAO_LV 1#define CP_GZ_RECINTO_LV 2#define CP_GZ_FABRICA_LV 3#define CP_GZ_AEROPLACE_LV 4#define CP_GZ_DISNEY_LV 5#define CP_GZ_EXERCITO_LV 6#define CP_GZ_CALIGULAS_LV 7#define CP_GZ_GOLF_LV 8#define P_GZ_AUTOBASE_LV 0#define P_GZ_CONSTRUCAO_LV 1#define P_GZ_RECINTO_LV 2#define P_GZ_FABRICA_LV 3#define P_GZ_AEROPLACE_LV 4#define P_GZ_DISNEY_LV 5#define P_GZ_EXERCITO_LV 6#define P_GZ_CALIGULAS_LV 7#define P_GZ_GOLF_LV 8#define P_OFFSET 14#define MAX_GZS 9#define MAX_GANGS 40#define MAX_GANG_NAME 40forward GzScoreUpdate();forward PayPlayerInGz(playerID, GzID, Float:x1, Float:y1, Float:x2, Float:y2, cash);forward getCheckpointType(playerID);forward isPlayerInArea(playerID, Float:data[4]);forward checkpointUpdate();new gangNames[MAX_GANGS][MAX_GANG_NAME];new playerCheckpoint[MAX_PLAYERS];new gangInfo[MAX_GANGS][3];new gz = 555;new GZ[MAX_GZS];new GZ_EXISTE[MAX_GZS][2];new gangZonaId[MAX_GZS];new gangZonaIdAnter[MAX_GZS];new playerGang[MAX_PLAYERS];new PLAYERLIST_authed[MAX_PLAYERS];#define MAX_POINTS 9new Float:checkCoords[MAX_POINTS][4] = {{1017.134948, 1222.946899, 1096.891235, 1361.736572}, //GZ_AUTOBASE_LV{2372.279052, 1832.521362, 2496.685302, 1962.471801}, //GZ_CONSTRUCAO_LV{2777.4753, 833.6251, 2894.6955, 1022.9479}, //GZ_RECINTO_LV{918.294555, 2043.856567, 996.507202, 2182.339599}, //GZ_FABRICA_LV{1638.5530,1284.3757, 1716.3368,1319.3700}, //GZ_AEROPLACE{2079.743,978.1417, 2329.653,1171.545},{81.74512,1763.359, 362.0141,2055.306}, //GZ_EXERCITO{2099.267,1535.143, 2290.605,1728.547}, //GZ_CALIGULAS_LV{1111.341,2718.771, 1509.635,2842.55} //GZ_GOLF_LV};new Float:checkpoints[MAX_POINTS][3] = {{1040.142578,1305.848266,10.820312}, //GZ_AUTOBASE_LV{2436.580322,1913.306274,6.163729}, //GZ_CONSTRUCAO_LV{2814.641357,969.982727,10.750000}, //GZ_RECINTO_LV{929.612487,2068.309570,10.820312}, //GZ_FABRICA_LV{1647.4393,1301.9464,10.8203}, //GZ_AEROPLACE{2273.6250,1044.2716,10.8203}, //GZ_DISNEY{202.9969,1888.7633,17.6481}, //GZ_EXERCITO{2288.2988,1567.0795,10.8203}, //GZ_CALIGULAS_LV{1457.4954,2773.3105,10.8203} //GZ_GOLF_LV};new checkpointType[MAX_POINTS] = { CP_GZ_AUTOBASE_LV, CP_GZ_CONSTRUCAO_LV, CP_GZ_RECINTO_LV, CP_GZ_FABRICA_LV, CP_GZ_AEROPLACE_LV, CP_GZ_DISNEY_LV, CP_GZ_EXERCITO_LV, CP_GZ_CALIGULAS_LV, CP_GZ_GOLF_LV};#define MAX_PROPERTIES 9new propertyNames[MAX_PROPERTIES][32] = { "Gang Zona Auto Base", "Gang Zona Construção", "Gang Zona Recinto", "Gang Zona Fabrica", "Gang Zona Aero Place", "Gang Zona Disney", "Gang Zona Exercito", "Gang Zona Caligulas", "Gang Zona Golf"};new propertyValues[MAX_PROPERTIES] = { 185000, 175000, 200000, 250000, 190000, 270000, 180000, 210000, 190000};public getCheckpointType(playerID) { return checkpointType[playerCheckpoint[playerID]];}public PayPlayerInGz(playerID, GzID, Float:x1, Float:y1, Float:x2, Float:y2, cash) //ID_GZ{ if(IsPlayerConnected(playerID)) { new Float:X, Float:Y, Float:Z, Float:Health, Float:Armour; GetPlayerPos(playerID, X, Y, Z); GetPlayerHealth(playerID,Health); GetPlayerArmour(playerID,Armour); if((X >= x1) && (X <= x2) && (Y >= y1) && (Y <= y2)) { if(playerGang[playerID] > 0) { if(gangZonaId[GzID] == playerGang[playerID]) { GivePlayerMoney(playerID, cash); GivePlayerWeapon(playerID, 31, 2); if(Health < 105) { SetPlayerHealth(playerID,Health + 2); } if(Armour< 105) { SetPlayerArmour(playerID,Armour + 2); } } else { if(GZ_EXISTE[GzID][0] == 1) { if(Health > 2) { SetPlayerHealth(playerID,Health - 2.5); } } else { return 1; } }// } } else { if(GZ_EXISTE[GzID][0] == 1) { if(Health > 2) { SetPlayerHealth(playerID,Health - 2.5); } } else { return 1; } } } return 1; } return 0;}public GzScoreUpdate(){ for(new i = 0 ; i < MAX_PLAYERS ; i++) { // GZ AUTOBASE_LV PayPlayerInGz(i, 0, 1017.134948, 1222.946899, 1096.891235, 1361.736572, 500); // GZ CONSTRUCAO_LV PayPlayerInGz(i, 1, 2372.279052, 1832.521362, 2496.685302, 1962.471801, 500); // GZ RECINTO_LV PayPlayerInGz(i, 2, 2777.4753, 833.6251, 2894.6955, 1022.9479, 500); // GZ FABRICA_LV PayPlayerInGz(i, 3, 918.294555, 2043.856567, 996.507202, 2182.339599, 500); // GZ AEROPLACE_LV PayPlayerInGz(i, 4, 1638.5530, 1284.3757, 1716.3368, 1319.3700, 500); // GZ Disney_LV PayPlayerInGz(i, 5, 2079.743, 978.1417, 2329.653, 1171.545, 500); // GZ_EXERCITO_LV PayPlayerInGz(i, 6, 81.74512, 1763.359, 362.0141, 2055.306, 500); // GZ CALIGULAS_LV PayPlayerInGz(i, 7, 2099.267, 1535.143, 2290.605, 1728.547, 500); //GZ GOLF_LV PayPlayerInGz(i, 8, 1111.341, 2718.771, 1509.635, 2842.55, 500); } return 1;}public OnPlayerConnect(playerid){ for(new g = 0 ; g < MAX_GZS ; g++) { if(GZ_EXISTE[g][0] == 1) { GangZoneShowForPlayer(playerid, GZ[g], GZ_EXISTE[g][1]); } } PLAYERLIST_authed[playerid]=false; return false;}public OnPlayerCommandText(playerid, cmdtext[]){ new string[256]; new cmd[256]; cmd = strtok(cmdtext) if(strcmp(cmdtext, "/gang zona comprar", true) == 0) { new property = 999; if(IsPlayerInCheckpoint(playerid)) { switch (playerCheckpoint[playerid]) { case CP_GZ_AUTOBASE_LV: { property = P_GZ_AUTOBASE_LV; gz = 0; } case CP_GZ_CONSTRUCAO_LV: { property = P_GZ_CONSTRUCAO_LV; gz = 1; } case CP_GZ_RECINTO_LV: { property = P_GZ_RECINTO_LV; gz = 2; } case CP_GZ_FABRICA_LV: { property = P_GZ_FABRICA_LV; gz = 3; } case CP_GZ_AEROPLACE_LV: { property = P_GZ_AEROPLACE_LV; gz = 4; } case CP_GZ_DISNEY_LV: { property = P_GZ_DISNEY_LV; gz = 5; } case CP_GZ_EXERCITO_LV: { property = P_GZ_EXERCITO_LV; gz = 6; } case CP_GZ_CALIGULAS_LV: { property = P_GZ_CALIGULAS_LV; gz = 7; } case CP_GZ_GOLF_LV: { property = P_GZ_GOLF_LV; gz = 8; } } if(gz == 999 || property == 999) { SendClientMessage(playerid, COLOR_RED, "[GZ INFO] Vá para o checkpoint e digite /gang zona comprar"); return 1; } if(GetPlayerMoney(playerid) < propertyValues[property]) { SendClientMessage(playerid, COLOR_RED, "<GZ INFO> Você não tem dinheiro para comprar essa Gang Zona!"); return 1; } if(playerGang[playerid] > 0) { if(gangZonaId[gz] == playerGang[playerid]) { SendClientMessage(playerid, COLOR_RED, "[GZ]: Essa Gang Zona já é da tua Gang!"); return 1; } new playerCor = gangInfo[playerGang[playerid]][2];// gangInfo[playerGang[playerid]][2] = playerColors[playerid]; if(GZ_EXISTE[gz][0] == 1) { GangZoneDestroy(GZ[gz]); GZ[gz] = 555; } if(gangZonaId[gz] > 0) { gangZonaIdAnter[gz] = gangZonaId[gz]; } switch(gz) { case 0: { if((!GZ[gz]) || (GZ[gz] == 555)) { GZ[gz] = GangZoneCreate(1017.134948, 1222.946899, 1096.891235, 1361.736572); GangZoneShowForAll(GZ[gz], playerCor); gangZonaId[gz] = playerGang[playerid]; GZ_EXISTE[gz][0] = 1; GZ_EXISTE[gz][1] = playerCor; } } case 1: { if((!GZ[gz]) || (GZ[gz] == 555)) { GZ[gz] = GangZoneCreate(2372.279052, 1832.521362, 2496.685302, 1962.471801); GangZoneShowForAll(GZ[gz], playerCor); gangZonaId[gz] = playerGang[playerid]; GZ_EXISTE[gz][0] = 1; GZ_EXISTE[gz][1] = playerCor; } } case 2: { if((!GZ[gz]) || (GZ[gz] == 555)) { GZ[gz] = GangZoneCreate(2777.4753, 833.6251, 2894.6955, 1022.9479); GangZoneShowForAll(GZ[gz], playerCor); gangZonaId[gz] = playerGang[playerid]; GZ_EXISTE[gz][0] = 1; GZ_EXISTE[gz][1] = playerCor; } } case 3: { if((!GZ[gz]) || (GZ[gz] == 555)) { GZ[gz] = GangZoneCreate(918.294555, 2043.856567, 996.507202, 2182.339599); GangZoneShowForAll(GZ[gz], playerCor); gangZonaId[gz] = playerGang[playerid]; GZ_EXISTE[gz][0] = 1; GZ_EXISTE[gz][1] = playerCor; } } case 4: { if((!GZ[gz]) || (GZ[gz] == 555)) { GZ[gz] = GangZoneCreate(1638.5530, 1284.3757, 1716.3368, 1319.3700); GangZoneShowForAll(GZ[gz], playerCor); gangZonaId[gz] = playerGang[playerid]; GZ_EXISTE[gz][0] = 1; GZ_EXISTE[gz][1] = playerCor; } } case 5: { if((!GZ[gz]) || (GZ[gz] == 555)) { GZ[gz] = GangZoneCreate(2079.743, 978.1417, 2329.653, 1171.545); GangZoneShowForAll(GZ[gz], playerCor); gangZonaId[gz] = playerGang[playerid]; GZ_EXISTE[gz][0] = 1; GZ_EXISTE[gz][1] = playerCor; } } case 6: { if((!GZ[gz]) || (GZ[gz] == 555)) { GZ[gz] = GangZoneCreate(81.74512, 1763.359, 362.0141, 2055.306); GangZoneShowForAll(GZ[gz], playerCor); gangZonaId[gz] = playerGang[playerid]; GZ_EXISTE[gz][0] = 1; GZ_EXISTE[gz][1] = playerCor; } } case 7: { if((!GZ[gz]) || (GZ[gz] == 555)) { GZ[gz] = GangZoneCreate(2099.267, 1535.143, 2290.605, 1728.547); GangZoneShowForAll(GZ[gz], playerCor); gangZonaId[gz] = playerGang[playerid]; GZ_EXISTE[gz][0] = 1; GZ_EXISTE[gz][1] = playerCor; } } case 8: { if((!GZ[gz]) || (GZ[gz] == 555)) { GZ[gz] = GangZoneCreate(1111.341, 2718.771, 1509.635, 2842.55); GangZoneShowForAll(GZ[gz], playerCor); gangZonaId[gz] = playerGang[playerid]; GZ_EXISTE[gz][0] = 1; GZ_EXISTE[gz][1] = playerCor; } } default: return 1; } } else { SendClientMessage(playerid, COLOR_RED, "[GZ INFO] É preciso estar em uma gang para poder comprar!"); return 1; } if(GZ_EXISTE[gz][0] == 1) { GivePlayerMoney(playerid, 0-propertyValues[property]); format(string, sizeof(string), "A gang %s comprou a %s da gang %s!", gangNames[gangZonaId[gz]], propertyNames[property], gangNames[gangZonaIdAnter[gz]]); SendClientMessageToAll(COLOR_GREEN, string); } } else { SendClientMessage(playerid, COLOR_RED, "[GZ INFO] Necessario estar no checkpoint para poder /gang zona comprar"); return 1; } return 1; } return 0;}public OnPlayerEnterCheckpoint(playerid){new string[256]; switch(getCheckpointType(playerid)) { case CP_GZ_AUTOBASE_LV: { SendClientMessage(playerid, COLOR_ORANGE, "[GZ]: Gang Zona Auto Base:"); SendClientMessage(playerid, COLOR_YELLOW, "[GZ]: Valor: $185000, Para comprar digite /gang zona comprar"); SendClientMessage(playerid, COLOR_YELLOW, "[GZ]: Ganhe dinheiro + recuperação de vida ficando nela"); gz = 0; } case CP_GZ_CONSTRUCAO_LV: { SendClientMessage(playerid, COLOR_ORANGE, "[GZ]: Gang Zona Construção:"); SendClientMessage(playerid, COLOR_YELLOW, "[GZ]: Valor: $175000, Para comprar digite /gang zona comprar"); SendClientMessage(playerid, COLOR_YELLOW, "[GZ]: Ganhe dinheiro + recuperação de vida ficando nela"); gz = 1; } case CP_GZ_RECINTO_LV: { SendClientMessage(playerid, COLOR_ORANGE, "[GZ]: Gang Zona Recinto:"); SendClientMessage(playerid, COLOR_YELLOW, "[GZ]: Valor: $200000, Para comprar digite /gang zona comprar"); SendClientMessage(playerid, COLOR_YELLOW, "[GZ]: Ganhe dinheiro + recuperação de vida ficando nela"); gz = 2; } case CP_GZ_FABRICA_LV: { SendClientMessage(playerid, COLOR_ORANGE, "[GZ]: Gang Zona Fabrica:"); SendClientMessage(playerid, COLOR_YELLOW, "[GZ]: Valor: $250000, Para comprar digite /gang zona comprar"); SendClientMessage(playerid, COLOR_YELLOW, "[GZ]: Ganhe dinheiro + recuperação de vida ficando nela"); gz = 3; } case CP_GZ_AEROPLACE_LV: { SendClientMessage(playerid, COLOR_ORANGE, "[GZ]: Gang Zona Aero Place:"); SendClientMessage(playerid, COLOR_YELLOW, "[GZ]: Valor: $190000, Para comprar digite /gang zona comprar"); SendClientMessage(playerid, COLOR_YELLOW, "[GZ]: Ganhe dinheiro + recuperação de vida ficando nela"); gz = 4; } case CP_GZ_DISNEY_LV: { SendClientMessage(playerid, COLOR_ORANGE, "[GZ]: Gang Zona Disney:"); SendClientMessage(playerid, COLOR_YELLOW, "[GZ]: Valor: $270000, Para comprar digite /gang zona comprar"); SendClientMessage(playerid, COLOR_YELLOW, "[GZ]: Ganhe dinheiro + recuperação de vida ficando nela"); gz = 5; } case CP_GZ_EXERCITO_LV: { SendClientMessage(playerid, COLOR_ORANGE, "[GZ]: Gang Zona Exercito:"); SendClientMessage(playerid, COLOR_YELLOW, "[GZ]: Valor: $180000, Para comprar digite /gang zona comprar"); SendClientMessage(playerid, COLOR_YELLOW, "[GZ]: Ganhe dinheiro + recuperação de vida ficando nela"); gz = 6; } case CP_GZ_CALIGULAS_LV: { SendClientMessage(playerid, COLOR_ORANGE, "[GZ]: Gang Zona Caligulas:"); SendClientMessage(playerid, COLOR_YELLOW, "[GZ]: Valor: $210000, Para comprar digite /gang zona comprar"); SendClientMessage(playerid, COLOR_YELLOW, "[GZ]: Ganhe dinheiro + recuperação de vida ficando nela"); gz = 7; } case CP_GZ_GOLF_LV: { SendClientMessage(playerid, COLOR_ORANGE, "[GZ]: Gang Zona Golf:"); SendClientMessage(playerid, COLOR_YELLOW, "[GZ]: Valor: $190000, Para comprar digite /gang zona comprar"); SendClientMessage(playerid, COLOR_YELLOW, "[GZ]: Ganhe dinheiro + recuperação de vida ficando nela"); gz = 8; } } if(getCheckpointType(playerid) >= P_OFFSET) { if(GZ_EXISTE[gz][0] == 1) { format(string, sizeof(string), "[GZ]: Essa Gang Zona é atualmente da Gang: %s.", gangNames[gangZonaId[gz]]); SendClientMessage(playerid, COLOR_RED, string); } }}public OnGameModeInit(){ SetTimer("GzScoreUpdate", 2001, true); return 1;}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 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;}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;}