SSGamers - 12 Anos online por você.

#SSGamers - A Comunidade que mais crescer no brasil!

Participe do fórum, é rápido e fácil

SSGamers - 12 Anos online por você.

#SSGamers - A Comunidade que mais crescer no brasil!
Chegou o novo tema 6.5.5 - SSGamers - Servidores online de qualidade - Aproveite e entre para nossa comunidade, inscreva-se já! - Ouça nossa web radio - Veja nossas novidades - Participe dos nossos setores de jogos online - Parcerias aberta fale já com um administrador.


3 resultados encontrados para EDIT

[Tutorial] Criando gangzone dominável por checkpoint - Sáb 8 Abr 2023 - 6:27

Um amigo me pediu pra mim fazer um tutorial para ele de como criar gangzones domináveis ​​(sei que ja tem inъmeros, mas nunca vi um que mostre o nome da gang ), entгo resolvi postar aqui para todos Farei esse tutorial em 4 partes pra Tópicos com a tag edit em SSGamers - 12 Anos online por você. Mrgreenninguйm Tópicos com a tag edit em SSGamers - 12 Anos online por você. Razz

endoidar Tópicos com a tag edit em SSGamers - 12 Anos online por você. Mrgreen

Parte 1
peão Код:

Código:
#include <cpstream> // include para que os checkpoints funcionem

#define MAX_GANGS 3 // maximo de gangs, aqui no caso serгo 3 gangs

#define ZONE_TIME 20 // tempo para dominar em segundos

forward ZoneCheckpointChecker ( ) ; // declara o callback para checar as gangzones

static cpzone [ MAX_PLAYERS ] [ MAX_GANGS + 1 ] ,lastcp [ MAX_PLAYERS ] ; // getar checkpoint e salvar o ultimo checkpoint em que você passou

new gang1,gang2,gang3,cpgang1,cpgang2,cpgang3; // declaração dos checkpoints e das gangzones

new GangNames [ 3 ] [ ]  =  // nome das gangues para aparecer 'A gangue X doiminou mais um território'
{
    "Gang 1" ,
    "Gang 2" ,
    "Gang 3"
} ;

new pgzcolor [ MAX_GANGS + 1 ]  =  // cores para os jogadores
     0x007900AA, 0xFF0080AA, 0x400040AA   // igual
} ;
new gzcolor [ MAX_GANGS + 1 ]  =  // núcleos para as gangzones
{
     0x007900AA, 0xFF0080AA, 0x400040AA  // igual
} ;



Explicação parte 1:

1- As cores para as gangzones e para os players devem ser as mesmas nas duas arrays para não bugar.

2- É nescessário esses dois arrarys, pois na callback a coré setada pelo player que domina, ai caso o player saia do server a gangzone ainda
estará com a mesma cor e nгo a original.

3- Caso for add mais gangs atualize o MAX_GANGS de acordo com a quantidade de gangs e os nomes delas na array GangNames.

4- Para alterar o tempo que levará para dominar a área, basta alterar o valor de ZONE_TIME em segundos.

Parte 2
peão Код:

Código:
public OnGameModeInit ( )
{
     SetTimer ( "ZoneCheckpointChecker" , 1000 , true ) ; // timer para um callback
    //gang 1
     AddPlayerClass ( 101 , 2303.6819 , - 1630.4944 , 14.5754 , 189.4422 , 0 , 0 , 0 , 0 , 0 , 0 ) ; // skin para uma gangue 1
    //gang 2
     AddPlayerClass ( 105 ,2532.4045 , - 1667.5391 , 15.1688 , 83.0852 , 0 , 0 , 0 , 0 , 0 , 0 ) ; // skin paga a gang 2
    // gang 3
     AddPlayerClass ( 108 , 2155.7913 , - 1665.1510 , 15.0859 , 36.2461 , 0 , 0 , 0 , 0 , 0 , 0 ) ; // pele para uma gangue 3

    gang1 = GangZoneCreate ( 2406.349 , -1764.764 , 2573.673 , -1606.855 ) ; _ _ // cria gangzone para uma gangue 1     gang2 = GangZoneCreate ( 1584.936 , - 1745.026 , 1828.318 , - 1516.057 ) ; // cria gangzone para uma gangue 2     gang3 = GangZoneCreate ( 1835.923 , - 1267.349 , 2075.502 , - 1121.283

) ; // cria gangzone para uma gangue 3

     cpgang1 = CPS_AddCheckpoint ( 2495.0383 , -1686.9420 , 13.5140 , 2.0 , 80 ) ; // cria checkpoint para gangue 1     cpgang2 = CPS_AddCheckpoint ( 1722.3857 , -1607.7697 , 13.5469 , 2.0 , 80 ) ; // cria checkpoint para gang 2     cpgang3 = CPS_AddCheckpoint ( 1976.1494 , -

1234.6455 , 20.0469 , 2.0 , 80 ) ; // cria checkpoint para gangue 3
    #pragma não utilizado cpgang1,cpgang2,cpgang3 // declaraзгo de nгo uso para nгo dar warning
    return  1 ;
}



Explicação parte 2 :

1- Mantenha sempre a mesma ordem entre os checkpoints e as gangzones e os GangZoneShowForPlayer para que sejam dominadas corretamente.

2- Adicione as Classes sempre dividindo as gangues para você não se enrolar depois.

3- O pragma ali serve para nгo ficar warning de item nгo usado, sempre que for add uma gangue declare ali o checkpoint para nгo dar warning.

Parte 3

peão Код:

Código:
public OnPlayerRequestClass ( playerid, classid )
{
    switch ( classid )
    {
        case  0 :
        {
             GameTextForPlayer ( playerid, GangNames [ 0 ] , 2000 , 3 ) ;  // nome da gangue
             SetPlayerTeam ( playerid, 0 ) ; // define o tempo para nгo ocorrer teamkill
        }
        case  1 :
        {
             GameTextForPlayer ( playerid, GangNames [1 ] , 2000 , 3 ) ; // nome da gangue
             SetPlayerTeam ( playerid, 1 ) ; // define o tempo para nгo ocorrer teamkill
        }
        case  2 :
        {
             GameTextForPlayer ( playerid, GangNames [ 2 ] , 2000 , 3 ) ; // nome da gangue
             SetPlayerTeam ( playerid, 2 ) ; // seta o tempo para nгo ocorrer teamkill
        }
     }
     return 1 ;
}




Código:
public OnPlayerLeaveCheckpoint ( playerid )
{
    if ( lastcp [ playerid ]  >  0  && lastcp [ playerid ]  <= MAX_GANGS + 1 )
    {
         cpzone [ playerid ] [ lastcp [ playerid ] ]  =  0 ;                   // quando o player sai do checkpoint a contagem é reiniciada e o dominio é abortado
         GangZoneStopFlashForAll (lastcp [ playerid ] -1 ) ; _ } retorna 1 ; } public OnPlayerSpawn ( playerid ) { if ( GetPlayerTeam ( playerid ) == 0 ) SetPlayerColor ( playerid, pgzcolor [ 0 ] ) ; // seta o player com a cor da gangue 1 if ( GetPlayerTeam ( playerid ) == 1 ) SetPlayerColor (

[size=13]

   
     




     
   
[/size]
Código:
  ID do jogador, pgzcolor [ 1 ] ) ; // define o jogador com a cor da gangue 2
    if ( GetPlayerTeam ( playerid )  ==  2 ) SetPlayerColor ( playerid, pgzcolor [ 2 ] ) ; // define o player com a cor da gangue 3

     GangZoneShowForPlayer ( playerid, gang1, gzcolor [ 0 ] ) ; // mostra a gangzone da gangue 1
     GangZoneShowForPlayer ( playerid, gang2, gzcolor [ 1 ] ) ;// mostra a gangzone da gang 2
     GangZoneShowForPlayer ( playerid, gang3, gzcolor [ 2 ] ) ; // mostra a gangzone da gang 3
    return  1 ;
}



Explicação parte 3:

1- Em OnPlayerRequestClass caso tenha mais de uma class para a mesma gangue, você coloca por exemplo: "case 0 .. 5" caso a classid for de 0 à 5 elas pertencem à gangue X, sempre aumentando os números do SetPlayerTeam de acordo com o número de gangues e ajustando o nome das gangues na matriz GangNames.

2- A ordem das classids (skins) deve ser a mesma da array GangNames.

3- Em OnPlayerSpawn mantenha sempre a mesma ordem entre as GangZoneShowForPlayer e os os itens da OnGameModeInit para que sejam dominadas corretamente.

4- Em GetPlayerTeam e SetPlayerColor as cores são definidas pela array 'pgzcolor' (mantenha sempre na mesma ordem das gangues).

5- Em GangZoneShowForPlayer as cores são definidas pela array 'gzcolor'


Parte 4
peão Код:

Código:
public ZoneCheckpointChecker ( )  // callback para checar as gangzones
{
    new string [ 75 ] ,tmp [ 10 ] ;
    for ( new i; i != MAX_PLAYERS; ++ i )
    {
        if ( ! IsPlayerConnected ( i ) )  continue ;
        if ( CPS_GetPlayerCheckpoint ( i )  >  0  && CPS_GetPlayerCheckpoint ( i ) <= MAX_GANGS + 1  && gzcolor [ CPS_GetPlayerCheckpoint ( i ) - 1 ]  != GetPlayerColor ( i ) )
        {
            if ( cpzone [ i ] [ CPS_GetPlayerCheckpoint ( i ) ]  < ZONE_TIME )
            {
                 cpzone [ i ] [ CPS_GetPlayerCheckpoint ( i ) ] + + ;
                formato (tmp, sizeof tmp, "~g~%2d/20" , cpzone [ i ] [ CPS_GetPlayerCheckpoint ( i ) ] ) ;
                GameTextForPlayer ( i, tmp, 1001 , 4 ) ;
                GangZoneFlashForAll ( CPS_GetPlayerCheckpoint ( i ) -1 , GetPlayerColor ( i ) ) ;
            }
            senão  se ( cpzone [ i ] [CPS_GetPlayerCheckpoint ( i ) ]  == ZONE_TIME )
            {
                 GameTextForPlayer ( i, "~r~Area ~w~Conquistada" , 4000 , 1 ) ;
                GivePlayerMoney ( i,GetPlayerMoney ( i )  +  100000 ) ;
                gzcolor [ CPS_GetPlayerCheckpoint ( i ) -1 ] = GetPlayerColor ( i ) ; _
                GangZoneStopFlashForAll ( CPS_GetPlayerCheckpoint ( i ) -1 ) ; _                 GangZoneHideForAll ( CPS_GetPlayerCheckpoint ( i ) -1 ) ; _                 GangZoneShowForAll ( CPS_GetPlayerCheckpoint ( i ) -1 , GetPlayerColor ( i ) ) ; formato ( string, sizeof ( string ) ,


                "*>> [GANGZONES]: Uma gangue '{00FF00}%s{FFFF00}' domina mais um territуrio!" ,GangNames [ GetPlayerTeam ( i ) ] [ 0 ] ) ;
                PlayerPlaySound ( i, 1058 , 0 , 0 , 0 ) ;
                SendClientMessageToAll ( 0xFFFF00AA, " " ) ;
                SendClientMessageToAll ( 0xFFFF00AA, string ) ;
                SendClientMessageToAll ( 0xFFFF00AA, " " );
            }
        }
    }
    retorna  0 ;
}



Explicação parte 4:

1- Quando for mudar o tempo de dominio coloque o mesmo valor no format da callback em ~g~%2d/20, caso for por, por exemplo, 15 segundos, você escreve ~g~%2d/15.

2- Caso queria mudar a mensagem de dominio apenas mude o formato das gangzones (sem esquecer os parâmeros %s, %d, etcTópicos com a tag edit em SSGamers - 12 Anos online por você. Mrgreen).

#edit

3- Caso queria mudar a quantia de dinheiro quando dominar a área é so alterar GivePlayerMoney(i,GetPlayerMoney(i) + 100000) para o valor desejado seTópicos com a tag edit em SSGamers - 12 Anos online por você. Mrgreen

falei algum absurdo ai me corrijam Tópicos com a tag edit em SSGamers - 12 Anos online por você. Mrgreen, thx - Crueliz0n

Brasil Start Life 3.0 ( com bugs concertados ) - Sex 11 Fev 2022 - 11:25

Nando_Crazzy escreveu:Eis o link do game mode que fez muito sucesso 2011... 2015... 2019... Antes do vazamento...
https://www.mediafire.com/file/ckm148zqypfchtq/Brasil+Start+Life+-+3.0.rar/file

Certo mas cade as informações sobre os sistemas do BSL?
#edit
Re-organize o topico ou ele sera apagado em 24h

sK_Samp

[GameMode] Connection Life [EXCLUSIVO] - Sáb 7 Nov 2015 - 23:37

Link Off =/



#EDIT > Consegui . nao ta off rs


Ir para o topo

Data/hora atual: Sáb 27 Abr 2024 - 10:59