[Tutorial] Criando GangZones dominaveis em Checkpoints
#1

# Edit

Ae galera eu n arrumei com esse bug pq nгo queria mais nem mecher com samp direito mais eu arrumei e uma settime que esqueci de colocar


Pro Noob que falo que o code nгo й meu e nгo sei arrumar ta ae pdc?


Coloque em OnGameModeInit

pawn Код:
SetTimer("ZoneCheckpointCheckerbyRangel", 1000, true);
Coloque isso tambem no comeзo do game mode

pawn Код:
new Gang[MAX_PLAYERS];

Vo mostrar aki pra vocкs hoje como criar GZs dominaveis em Checkpoints
As includes necessarias sгo as
pawn Код:
#include <a_samp>
#include <cpstream>
Aconselho bota isso tambem no comeзo do seu GM
pawn Код:
#pragma tabsize 0
depois crie defines para definir as gangs
pawn Код:
#define SOLDADO 1
#define CHINES 2
depois cria a forward para riar a public com as funзoes para dominar o territorio na check
pawn Код:
forward ZoneCheckpointCheckerbyRangel();
depois crie uma new com as cores das gzs
pawn Код:
new gzcolor[3] = //2+1 = (3) pois tem 2 GZs...
{
    0x33AA33AA, 0xFF9900AA
};
Crie uma variavel para definir as gzs
pawn Код:
new cpzone[MAX_PLAYERS][3]; //2+1 (3) pois tem 2 GZs...
Depois crie novamente outra variavel
pawn Код:
new lastcp[MAX_PLAYERS];
Agora criando as GZs
pawn Код:
new Soldado;
new Chines;
Defininado as ckecks para dominar nelas
pawn Код:
new cpsoldado;
new cpchines;
Agora em OnGameModeInit

coloque as skins
pawn Код:
AddPlayerClass(287,-1324.0948,497.2354,11.1953,137.1467,0,0,0,0,0,0);//Soldado
AddPlayerClass(123,-2185.7253,706.9626,53.8906,225.8146,0,0,0,0,0,0);//Chines
Agora as GZs em OnGameModeInit mesmo
pawn Код:
Soldado = GangZoneCreate(-1753.477, 246.9049, -1007.979, 613.7866);
 Chines = GangZoneCreate(-2379.232, 577.1168, -1988.689, 1489.569);
Agora as Checks em OnGameModeInit denovo
Checkpont (crie os checkpoins na mesma ordem das GZs, senгo da erro na hora de conquistar)
pawn Код:
cpsoldado = CPS_AddCheckpoint(-1371.5627,492.2494,11.1953,2.0,80);
cpchines = CPS_AddCheckpoint(-2206.7749,701.3187,49.4375,2.0,80);
denovo em OnGameModeInit

Coloque isso para definir as checks
pawn Код:
#pragma unused cpchines, cpsoldado
Agora o RequestClass

Vos criar esse basico aki depois vocк modificao ai
pawn Код:
if(classid == 0)//Isso define a posisao das skins no OnGameModeInit
    {
    Gang[playerid] = SOLDADO;
    GameTextForPlayer(playerid,"~y~Soldado",6000,6);
    SetPlayerInterior(playerid,3);
    SetPlayerPos(playerid, -2669.8770,1410.3972,912.7240);
    SetPlayerFacingAngle(playerid, 267.7684);
    SetPlayerCameraPos(playerid, -2663.8770,1410.3972,912.7240);
    SetPlayerCameraLookAt(playerid, -2669.8770,1410.3972,912.7240);
    ApplyAnimation(playerid,"PED","WALK_DRUNK",4.0,1,1,1,1,0);
    }
    else if(classid == 1)//Isso define a posisao das skins no OnGameModeInit
    {
    Gang[playerid] = CHINES;
    GameTextForPlayer(playerid,"~y~Chines",6000,6);
    SetPlayerInterior(playerid,3);
    SetPlayerPos(playerid, -2669.8770,1410.3972,912.7240);
    SetPlayerFacingAngle(playerid, 267.7684);
    SetPlayerCameraPos(playerid, -2663.8770,1410.3972,912.7240);
    SetPlayerCameraLookAt(playerid, -2669.8770,1410.3972,912.7240);
    ApplyAnimation(playerid,"PED","WALK_DRUNK",4.0,1,1,1,1,0);
    }
OnPlayerRequestSpawn a cor das gangs

pawn Код:
if(Gang[playerid] == SOLDADO)
    {
    SetPlayerInterior(playerid,0);
    SetPlayerColor(playerid, 0x33AA33AA); //Verde Claro
    }
    else if(Gang[playerid] == CHINES)
    {
    SetPlayerInterior(playerid,0);
    SetPlayerColor(playerid, 0xFF9900AA); //Rosa
    }
Em public OnPlayerSpawn

As coreas das GZs

pawn Код:
GangZoneShowForPlayer(playerid, Soldado, gzcolor[0]);
    GangZoneShowForPlayer(playerid, Chines, gzcolor[1]);
Se for adicionr mais GZs.. ja sabe que tem que acompanhar os numeros "gzcolor[numero]"...

Na public OnPlayerLeaveCheckpoint

coloque isso
pawn Код:
new checkpointid = lastcp[playerid];
    if(checkpointid > 0 && checkpointid <= 2) //sгo 2 checkpoints, entгo mude se for colocar mais...
    {
    cpzone[playerid][checkpointid] = 0; //saiu do CP...
    GangZoneStopFlashForAll(checkpointid-1);
    }
Agora a public que criandos a Forward la no comeзo
pawn Код:
public ZoneCheckpointCheckerbyRangel()
{
    for(new i; i < MAX_PLAYERS; i++)
    {
        if(!IsPlayerConnected(i))continue;
        if(CPS_GetPlayerCheckpoint(i) > 0 && CPS_GetPlayerCheckpoint(i) <= 2 &&
            //sгo 2 checkpoints, entгo mude se for colocar mais...
            gzcolor[CPS_GetPlayerCheckpoint(i)-1] != GetPlayerColor(i))
        {
            if(cpzone[i][CPS_GetPlayerCheckpoint(i)] < 30)
            {
                cpzone[i][CPS_GetPlayerCheckpoint(i)]++;
                new tmp[10];
                format(tmp, sizeof tmp, "~w~%2d/30", cpzone[i][CPS_GetPlayerCheckpoint(i)]);
                GameTextForPlayer(i, tmp, 1001, 4);
                GangZoneFlashForAll(CPS_GetPlayerCheckpoint(i)-1, GetPlayerColor(i));
            } else if(cpzone[i][CPS_GetPlayerCheckpoint(i)] == 30) //passou 30 segundos dentro do checkpoint
            {
                GameTextForPlayer(i, "~w~Conquistado", 4000, 1);
                gzcolor[CPS_GetPlayerCheckpoint(i)-1] = GetPlayerColor(i);
                GangZoneStopFlashForAll(CPS_GetPlayerCheckpoint(i)-1);
                GangZoneHideForAll(CPS_GetPlayerCheckpoint(i)-1);
                GangZoneShowForAll(CPS_GetPlayerCheckpoint(i)-1, GetPlayerColor(i));//Ficar piscando a cor do player na GZ
            }
        }
    }
}
Bom achu que e isso ai se tiver algum erro faal ai que eu ajudo '.' valeu

By eu mesmo xD
Reply


Messages In This Thread

Forum Jump:


Users browsing this thread: 1 Guest(s)