09.02.2011, 19:59
Bom Galera, Ja Vi Muita Gente Procurando GangZones Dominaveis e Muitos Tutoriais, mais sempre chega um e pergunta algo que nao tem no turotial, intгo eu resolvi postar aqui as gangzones dominaveis muito comuns em serevr RP (Elite Brothers,PlayHard,Start Life,Style of Life) que й akela que vc domina, salva a cor da gang que dominou e ganha grana a cada um determinado tempo..
Comeзando, Vou Fazer Como Se Estivesse Criando a GZ Com o Nome Morro..no Topo do Seu GM:
Agora No OnGameModeInit:
No OnPlayerConnect:
No OnPlayerDisconnect:
No SetPlayerSpawn:
No OnPlayerDeath:
No Seu Comando /dominar, vo posta com o cmd junto pra quem nao tem..
No Final do Seu GM:
Ainda No Final do GM:
Ainda No Final do GMІ:
OBS: Isso Nгo й um Tutorial, й Mais Um COD, Intao So De Vc Olhar Vc Ja Entende Tudinho..
Vlw!
Comeзando, Vou Fazer Como Se Estivesse Criando a GZ Com o Nome Morro..no Topo do Seu GM:
pawn Код:
#define GranadoMorro 40
pawn Код:
new GZMorro;
pawn Код:
forward GuerraMorro(playerid);
pawn Код:
new GuerranoMorro;
pawn Код:
new TempoGuerraMorro;
pawn Код:
new ProvocoMorro[MAX_PLAYERS];
pawn Код:
new donomorro;
pawn Код:
new MorreuNoMorro[MAX_PLAYERS];
pawn Код:
donomorro = 0; //Serve Para Quando o Server Reiniciar/Iniciar/GMX Fazer Com Que as GZ Voltem ao Estado Nao Dominado
pawn Код:
GZMorro = GangZoneCreate(minx, miny, maxx, maxy); //Coordenadas da GZ, Normalmente Qdo Pega Coordenada da GZ Com o programa, Vem 4 Coordenadas..
pawn Код:
if(donomorro == 0)
{
GangZoneShowForPlayer(playerid, GZMorro, 0xC0C0C0AA);
}
if(donomorro == 1)
{
GangZoneShowForPlayer(playerid, GZMorro, TEAM_GROVE_COLOR);
}
if(donomorro == 2)
{
GangZoneShowForPlayer(playerid, GZMorro, TEAM_BALLAS_COLOR);
}
if(donomorro == 3)
{
GangZoneShowForPlayer(playerid, GZMorro, TEAM_VAGOS_COLOR);
}
if(donomorro == 4)
{
GangZoneShowForPlayer(playerid, GZMorro, TEAM_AZTECAS_COLOR);
}
if(donomorro == 5)
{
GangZoneShowForPlayer(playerid, GZMorro, COLOR_LIGHTBLUE);
}
if(donomorro == 6)
{
GangZoneShowForPlayer(playerid, GZMorro, COLOR_RED);
}
if(donomorro == 7)
{
GangZoneShowForPlayer(playerid, GZMorro, LARANJA1);
}
if(donomorro == 8)
{
GangZoneShowForPlayer(playerid, GZMorro, 0xC0C0C0AA);
}
if(donomorro == 9)
{
GangZoneShowForPlayer(playerid, GZMorro, TEAM_LOW_COLOR);
}
if(donomorro == 10)
{
GangZoneShowForPlayer(playerid, GZMorro, PURPLE);
}
vc pode ir adicionando mais conforme qtas orgs irao dominar o morro, mais atenзгo,esses numero quem vem junto ao donomorro == estao relacionados no cmd de /dominar, no meu gm o donomorro 1 й a grove, intao eu setei a cor TEAM GROVE COLOR que й pra salvar a cor de qauem esta dominando..
pawn Код:
if(ProvocoMorro[playerid] == 1)
{
GangZoneStopFlashForAll(GZMorro);
GangZoneShowForAll(GZMorro, 0xFFFFFF96);
GuerranoMorro = 0;
ProvocoMorro[playerid] = 0;
donomorro = 0;
Dominando[playerid] = 0;
KillTimer(TempoGuerraMorro);
}
pawn Код:
if(ProvocoMorro[playerid] == 1)
{
GangZoneStopFlashForAll(GZMorro);
GangZoneShowForAll(GZMorro, 0xFFFFFF96);
GuerranoMorro = 0;
ProvocoMorro[playerid] = 0;
donomorro = 0;
Dominando[playerid] = 0;
KillTimer(TempoGuerraMorro);
}
pawn Код:
if(IsPlayerInMorro(playerid))
{
MorreuNoMorro[playerid] = 1;
SetTimerEx("MorreuMorroTimer", 600000, false, "i", playerid);
}
pawn Код:
if(strcmp(cmd, "/dominar", true) == 0 || strcmp(cmd, "/do", true) == 0)
{
if(PlayerInfo[playerid][pMember] == IDDAORG || PlayerInfo[playerid][pLeader] == IDDAORG)
{
if(IsPlayerInMorro(playerid))
{
if(Dominando[playerid] == 1)
{
SendClientMessage(playerid, COLOR_GRAD5, "Vocк jб estб dominando um territуrio.");
return 1;
}
if(MorreuNoMorro[playerid] == 1)
{
SendClientMessage(playerid, COLOR_GRAD5, "Vocк morreu nessa GZ em menos de 10 minutos e nгo pode domina-la.");
return 1;
}
if(GuerranoMorro == 1)
{
SendClientMessage(playerid, COLOR_GRAD5, "Jб estб tendo uma guerra nesse territуrio.");
return 1;
}
GetPlayerName(playerid, playername, MAX_PLAYER_NAME);
format(string, sizeof(string), "%s e a org tal estб dominando o Morro!",playername);
SendClientMessageToAll(TEAM_COMANDO_COLOR, string);
SendClientMessage(playerid, COLOR_GRAD3, "Fique esperto, todas as gangues foram avisadas!");
SendClientMessage(playerid, COLOR_GRAD5, "Espere 1 minuto para dominar esta бrea .");
GangZoneFlashForAll(GZMorro,TEAM_COMANDO_COLOR);
Dominando[playerid] = 1;
ProvocoMorro[playerid] = 1;
GuerranoMorro = 1;
TempoGuerraMorro = SetTimerEx("GuerraMorro", 60000, 0, "i", playerid);
return 1;
}
}
pawn Код:
stock IsPlayerInMorro(playerid)
{
new Float:x,Float:y,Float:z;
GetPlayerPos(playerid, x, y, z);
if(x >= minx && y >= miny && x <= maxx && y <= maxy) return 1; //msm coordenadas que vc colocou na gangzonecreate
else return 0;
}
pawn Код:
public GuerraMorro(playerid)
{
new string[256];
new playername[MAX_PLAYER_NAME];
if(PlayerInfo[playerid][pMember] == IDDAORG || PlayerInfo[playerid][pLeader] == IDDAORG)
{
if(ProvocoMorro[playerid] == 1)
{
if(IsPlayerInMorro(playerid))
{
GetPlayerName(playerid, playername, MAX_PLAYER_NAME);
format(string, sizeof(string), "%s e a org tal Dominaram o Morro!",playername);
SendClientMessageToAll(TEAM_GROVE_COLOR, string);
SendClientMessage(playerid, COLOR_GRAD5, "Vocк dominou o morro, a cada 4 minutos vocк ganharб grana.");
GangZoneStopFlashForAll(GZMorro);
GangZoneShowForAll(GZMorro,TEAM_GROVE_COLOR);
Dominando[playerid] = 0;
ProvocoMorro[playerid] = 0;
GuerranoMorro = 0;
donomorro = 1;
KillTimer(TempoGuerraMorro);
return 1;
}
else
{
SendClientMessage(playerid, TEAM_GROVE_COLOR, "[Fail] Vocк nгo estб no morro.");
Dominando[playerid] = 0;
GangZoneStopFlashForAll(GZMorro);
GangZoneShowForAll(GZMorro, 0xFFFFFF96);
ProvocoMorro[playerid] = 0;
GuerranoMorro = 0;
donomorro = 0;
KillTimer(TempoGuerraMorro);
return 1;
}
}
return 1;
}
}
pawn Код:
public GranaTerritorios()
{
new string[256];
for(new i = 0; i < MAX_PLAYERS; i++)
{
// Morro
if(PlayerInfo[i][pMember] == IDDAORG && donomorro == 1)
{
GivePlayerGP(i, GranadoMorro);
format(string, sizeof(string), "[GZ] Vocк recebeu R$%d, por manter o Morro sob controle.",GranadoMorro);
SendClientMessage(i, COLOR_WHITE, string);
}
Vlw!