[TUT]Como criar uma GangZone Dominavel
Autor: SuYaNw | Publicado: 2010-05-09T11:28:00-07:00

No topo do GM:PAWN Code:new Groove;new Ballas;#define COR_GROOVE 0x00800096#define COR_BALLAS 0xFF00CDFFforward DominarGrooveGroove(playerid);forward DominarGrooveBallas(playerid);forward DominarBallasBallas(playerid);forward DominarBallasGroove(playerid);forward DinheiroGZ(playerid);Code:new Groove; --&gt; Para podermos criar a GZnew Ballas; --&gt; Para podermos criar a GZ#define COR_GROOVE 0x00800096 --&gt; Definimos a cor de Groove#define COR_BALLAS 0xFF00CDFF --&gt; Definimos a cor de Ballasforward DominarGrooveGroove(playerid); --&gt; Para o SetTimer depoisforward DominarGrooveBallas(playerid); --&gt; Para o SetTimer depoisforward DominarBallasBallas(playerid); --&gt; Para o SetTimer depoisforward DominarBallasGroove(playerid); --&gt; Para o SetTimer depoisforward DinheiroGZ(playerid); --&gt; Para o SetTimer dps para dar a granaAgora, também entre public (aconselho ser no fim ou topo do GM)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 &gt;= XMin &amp;&amp; Y &gt;= YMin &amp;&amp; X &lt; XMax &amp;&amp; Y &lt; YMax ){&nbsp;&nbsp; &nbsp;RetValue = 1;}return RetValue;}Code:Isto já é um bocado avançado, vou ser breve:stock IsPlayerInPlace(playerid,Float:XMin,Float:YMin,Float:XMax,Float:YMax ) --&gt; Cria a função e define a definição para usarmos no /dominarGetPlayerPos(playerid,X,Y,Z ); --&gt; Pega a posição do playerOBS: Sem esta ultima parte, o /dominar não irá funcionarNo OnGameModeInit:&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;PAWN Code:Groove = GangZoneCreate(2239.024, -1721.339, 2512.828, -1638.437);Ballas = GangZoneCreate(2282.1401,2425.7576,3.4692,357.7160);Code:Groove = GangZoneCreate(2239.024, -1721.339, 2512.828, -1638.437); --&gt; Cria a GangZone no ServidorBallas = GangZoneCreate(2282.1401,2425.7576,3.4692,357.7160); --&gt; Cria a GangZone no ServidorNo OnPlayerSpawn:PAWN Code:GangZoneShowForPlayer(playerid, Groove, COR_GROOVE);GangZoneShowForPlayer(playerid, Ballas, COR_BALLAS);Code: GangZoneShowForPlayer(playerid, Groove, COR_GROOVE); --&gt; Mostra a GangZone para o Player quando ele spawnar GangZoneShowForPlayer(playerid, Ballas, COR_BALLAS); --&gt; Mostra a GangZone para o Player quando ele spawnarNo OnPlayerCommandText:PAWN Code:if (strcmp("/dominar", cmdtext, true, 10) == 0){if(IsPlayerInPlace(playerid,2239.024,-1721.339, 2512.828, -1638.437))&nbsp;&nbsp; {&nbsp;&nbsp; if(gTeam == BALLAS)&nbsp;&nbsp; &nbsp; &nbsp; {&nbsp;&nbsp; &nbsp; &nbsp; GangZoneFlashForAll(Groove,COR_BALLAS);&nbsp;&nbsp; &nbsp; &nbsp; SetTimer("DominarBallasGroove",60000,false);&nbsp;&nbsp; &nbsp; &nbsp; }else if(gTeam == GROOVE)&nbsp;&nbsp; {&nbsp;&nbsp; GangZoneFlashForAll(Groove,COR_GROOVE);&nbsp;&nbsp; SetTimer("DominarGrooveGroove",60000,false);&nbsp;&nbsp; }&nbsp;&nbsp; }else if(IsPlayerInPlace(playerid,2282.1401,2425.7576,3.4692,357.7160))&nbsp;&nbsp; {&nbsp;&nbsp; if(gTeam == BALLAS)&nbsp;&nbsp; &nbsp; &nbsp; {&nbsp;&nbsp; &nbsp; &nbsp; GangZoneFlashForAll(Groove,COR_BALLAS);&nbsp;&nbsp; &nbsp; &nbsp; SetTimer("DominarBallasBallas",60000,false);&nbsp;&nbsp; &nbsp; &nbsp; }else if(gTeam == GROOVE)&nbsp;&nbsp; {&nbsp;&nbsp; GangZoneFlashForAll(Groove,COR_GROOVE);&nbsp;&nbsp; SetTimer("DominarGrooveBallas",60000,false);&nbsp;&nbsp; }&nbsp;&nbsp; }&nbsp;&nbsp;&nbsp;return 1;}Code:if (strcmp("/dominar", cmdtext, true, 10) == 0) --&gt; Definimos o comando para ser /dominarif(IsPlayerInPlace(playerid,2239.024,-1721.339, 2512.828, -1638.437)) --&gt; Verifica se o player está na GangZoneif(gTeam == BALLAS) --&gt; Verifica se o player é dos BallasGangZoneFlashForAll(Groove,COR_BALLAS); --&gt; Faz A GangZone começar a piscarSetTimer("DominarBallasGroove",60000,false); --&gt; Comeca o tempo para a GangZone ficar dominadaelse if(gTeam == GROOVE) --&gt; Verifica se o player é da GrooveGangZoneFlashForAll(Groove,COR_GROOVE); --&gt; Faz A GangZone começar a piscarSetTimer("DominarGrooveGroove",60000,false); --&gt; Comeca o tempo para a GangZone ficar dominadaAgora 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;}Code:public DominarBallasGroove(playerid) --&gt; É a public que definimos no forward e que usamos no SetTimer do /dominarGangZoneHideForAll(Ballas); --&gt; Esconde a GangZone (para ficar sem Cor e nós redefinirmos a cor dela de novo)GangZoneShowForAll(Ballas, COR_GROOVE); --&gt; Cria a GangZone com a cor desejadaSetTimer("DinheiroGZ",3*60*1000,false); --&gt; Activa para dar o dinheiro a cada 3 minutos ao playerNo final do GM: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;}Code:GivePlayerMoney(playerid,3000); ---&gt; Dá o dinheiro para o PlayerSendClientMessage(playerid,0xFFFF00FF,"Você ganhou 3000$ por dominar a gangzone"); ---&gt; Manda uma mensagemSetTimer("DinheiroGZ",3*60*1000,false); ---&gt; Volta a activar o Timer para voltar a dar dinheiro ao fim de 3 min de nv__________________________________________________________________________________________________Tutorial criado por: andmeida10