Pode parecer muito dificil, mas não é assim tanto. Obvio que tem que ter um bocado de paciência e tals...
No topo do GM:
Pawn Code:
new Groove; new Ballas; #define COR_GROOVE 0x00800096 #define COR_BALLAS 0xFF00CDFF forward DominarGrooveGroove(playerid); forward DominarGrooveBallas(playerid); forward DominarBallasBallas(playerid); forward DominarBallasGroove(playerid); forward DinheiroGZ(playerid);
Pawn Code:
new Groove; --> Para podermos criar a GZ new Ballas; --> Para podermos criar a GZ #define COR_GROOVE 0x00800096 --> Definimos a cor de Groove #define COR_BALLAS 0xFF00CDFF --> Definimos a cor de Ballas forward DominarGrooveGroove(playerid); --> Para o SetTimer depois forward DominarGrooveBallas(playerid); --> Para o SetTimer depois forward DominarBallasBallas(playerid); --> Para o SetTimer depois forward DominarBallasGroove(playerid); --> Para o SetTimer depois forward DinheiroGZ(playerid); --> Para o SetTimer dps para dar a grana
Pawn Code:
stock IsPlayerInPlace(playerid,Float:XMin,Float:YMin,Float:XMax,Float:YMax ) { new RetValue = 0; new Float:X,Float:Y,Float:Z; GetPlayerPos(playerid,X,Y,Z ); if( X >= XMin && Y >= YMin && X < XMax && Y < YMax ) { RetValue = 1; } return RetValue; }
Isto já é um bocado avançado, vou ser breve: stock IsPlayerInPlace(playerid,Float:XMin,Float:YMin,Float:XMax,Float:YMax ) --> Cria a função e define a definição para usarmos no /dominar GetPlayerPos(playerid,X,Y,Z ); --> Pega a posição do player
OBS: Sem esta ultima parte, o /dominar não irá funcionar
No OnGameModeInit:
Pawn Code:
Groove = GangZoneCreate(2239.024, -1721.339, 2512.828, -1638.437); Ballas = GangZoneCreate(2282.1401,2425.7576,3.4692,357.7160);
Pawn Code:
Groove = GangZoneCreate(2239.024, -1721.339, 2512.828, -1638.437); --> Cria a GangZone no Servidor Ballas = GangZoneCreate(2282.1401,2425.7576,3.4692,357.7160); --> Cria a GangZone no Servidor
No OnPlayerSpawn:
Pawn Code:
GangZoneShowForPlayer(playerid, Groove, COR_GROOVE); GangZoneShowForPlayer(playerid, Ballas, COR_BALLAS);
GangZoneShowForPlayer(playerid, Groove, COR_GROOVE); --> Mostra a GangZone para o Player quando ele spawnar GangZoneShowForPlayer(playerid, Ballas, COR_BALLAS); --> Mostra a GangZone para o Player quando ele spawnar
Pawn Code:
if (strcmp("/dominar", cmdtext, true, 10) == 0) { if(IsPlayerInPlace(playerid,2239.024,-1721.339, 2512.828, -1638.437)) { if(gTeam == BALLAS) { GangZoneFlashForAll(Groove,COR_BALLAS); SetTimer("DominarBallasGroove",60000,false); } else if(gTeam == GROOVE) { GangZoneFlashForAll(Groove,COR_GROOVE); SetTimer("DominarGrooveGroove",60000,false); } } else if(IsPlayerInPlace(playerid,2282.1401,2425.7576,3.4692,357.7160)) { if(gTeam == BALLAS) { GangZoneFlashForAll(Groove,COR_BALLAS); SetTimer("DominarBallasBallas",60000,false); } else if(gTeam == GROOVE) { GangZoneFlashForAll(Groove,COR_GROOVE); SetTimer("DominarGrooveBallas",60000,false); } } return 1; }
if (strcmp("/dominar", cmdtext, true, 10) == 0) --> Definimos o comando para ser /dominar if(IsPlayerInPlace(playerid,2239.024,-1721.339, 2512.828, -1638.437)) --> Verifica se o player está na GangZone if(gTeam == BALLAS) --> Verifica se o player é dos Ballas GangZoneFlashForAll(Groove,COR_BALLAS); --> Faz A GangZone começar a piscar SetTimer("DominarBallasGroove",60000,false); --> Comeca o tempo para a GangZone ficar dominada else if(gTeam == GROOVE) --> Verifica se o player é da Groove GangZoneFlashForAll(Groove,COR_GROOVE); --> Faz A GangZone começar a piscar SetTimer("DominarGrooveGroove",60000,false); --> Comeca o tempo para a GangZone ficar dominada
Agora Entre public's (não pode estar dentro de nenhum public, pois é um.. xD)
Pawn Code:
public DominarGrooveGroove(playerid) { GangZoneHideForAll(Groove); GangZoneShowForAll(Groove, COR_GROOVE); SetTimer("DinheiroGZ",3*60*1000,false); return 1; } public DominarGrooveBallas(playerid) { GangZoneHideForAll(Groove); GangZoneShowForAll(Groove, COR_BALLAS); SetTimer("DinheiroGZ",3*60*1000,false); return 1; } public DominarBallasBallas(playerid) { GangZoneHideForAll(Ballas); GangZoneShowForAll(Ballas, COR_BALLAS); SetTimer("DinheiroGZ",3*60*1000,false); return 1; } public DominarBallasGroove(playerid) { GangZoneHideForAll(Ballas); GangZoneShowForAll(Ballas, COR_GROOVE); SetTimer("DinheiroGZ",3*60*1000,false); return 1; }
Pawn Code:
public DominarBallasGroove(playerid) --> É a public que definimos no forward e que usamos no SetTimer do /dominar GangZoneHideForAll(Ballas); --> Esconde a GangZone (para ficar sem Cor e nós redefinirmos a cor dela de novo) GangZoneShowForAll(Ballas, COR_GROOVE); --> Cria a GangZone com a cor desejada SetTimer("DinheiroGZ",3*60*1000,false); --> Activa para dar o dinheiro a cada 3 minutos ao player
Pawn Code:
public DinheiroGZ(playerid) { GivePlayerMoney(playerid,3000); SendClientMessage(playerid,0xFFFF00FF,"Você ganhou 3000$ por dominar a gangzone"); SetTimer("DinheiroGZ",3*60*1000,false); return 1; }
GivePlayerMoney(playerid,3000); ---> Dá o dinheiro para o Player SendClientMessage(playerid,0xFFFF00FF,"Você ganhou 3000$ por dominar a gangzone"); ---> Manda uma mensagem SetTimer("DinheiroGZ",3*60*1000,false); ---> Volta a activar o Timer para voltar a dar dinheiro ao fim de 3 min de nv
Tutorial feito por: andmeida10