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!

SSGamers - 12 Anos online por você.

Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.
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.

    [Tutorial] Criação de gangzones de um modo simples!

    Weslley_Script
    Weslley_Script
    SS - Fundador
    SS - Fundador


    Steam Steam : WeslleySSGames
    Zello : WeslleySSGames
    Mensagens : 11378
    Moedas : 1031971
    Data de inscrição : 06/10/2011
    Idade : 28
    Localização : Brasil

    [Tutorial] Criação de gangzones de um modo simples! Empty [Tutorial] Criação de gangzones de um modo simples!

    Mensagem por Weslley_Script Dom 23 Abr 2023 - 19:52

    Bom galera, decidi fazer um tutorial sobre um assunto que estava me deixando meio chateado por mim dar um pouco de dor de cabeça.. Náo sei se
    isso aconteceu com todos de ao tentar criar uma gangzone ela ficar meio que "bugada", mas enfim , vamos começar!

    Para resolver este problema fui ler na wiki sa-mp sobre a função GangZoneCreate e vi a seguinte dica para pegar as coordenadas:
    Код:

    Código:
    // Como pegar as coordenadas.
     (Norte)
     ymax
     |----------|
     | |
    (Oeste) xmin | | xmax (Leste)
     | |
     |----------|
     ymin
     (Sul)


    Então encontrei uma alternativa para criar gangzone de um modo simples, apenas criando duas funções.
    As funções criadas foram estas:
    peão Код:

    Código:
    stock GangZoneCreateIG ( vargz, Float : radius, Float : X, Float : Y )
    {
         vargz = GangZoneCreate ( X - radius, Y - radius, X + radius, Y + radius ) ;
        GangZoneShowForAll ( vargz, 0xC0C0C096 ) ;
        printf ( "(%f, %f, %f, %f)" , X - raio, Y - raio, X + raio, Y + raio) ;
        retornar verdadeiro;
    }

    stock DeleteGangZone ( vargz )
        return GangZoneHideForAll ( vargz ) ;


    Acredito que as funções não precisam de explicações, porém, vou resumir o cálculo simples que fiz:
    peão Код:

    Código:
    X Min = X - radius // Raio é o perimetro da gangzone.
    Y Min = Y - radius // Raio é o perimetro da gangzone.
    X Max = X + radius // Radius й o perimetro da gangzone.
    Z Max = Y + radius // Radius й o perimetro da gangzone.


    Quando usamos a função GangZoneCreateIG ela imprime no servidor sa-mp as coordenadas para serem colocadas no GangZoneCreate na sequência correta,
    para criar uma gangzone e ajustar da forma que eu queria criar um gamemode para testes, ele ficou assim:
    peão Код:

    Código:
    #include a_samp
    #include zcmd
    #include sscanf2

     main ( )  return  print ( "Gamemode para testes." ) ;

    novo gztest;

    CMD : criargz ( playerid, params [ ] )
    {
        new  Float : radius, Float : pos [ 3 ] ;
        if ( sscanf ( params, "f" , radius ) )
            return SendClientMessage ( playerid, 0xC0C0C0AA,"Use: /criargz [raio]" ) ;
        GetPlayerPos ( playerid, pos [ 0 ] , pos [ 1 ] , pos [ 2 ] ) ;
        GangZoneCreateIG ( gztest, radius, pos [ 0 ] , pos [ 1 ] ) ;
        retornar verdadeiro;
    }

    CMD : deletergz ( playerid )
    {
         DeleteGangZone ( gztest ) ;
        retornar verdadeiro;
    }


    Pronto! a partir dai é sу criar e deletar a gangzone aumentando/diminuindo o parâmetro "radius" até ficar como deseja..
    por agora й sу isso, é meu primeiro tutorial entгo por favor peguem leve.. Obrigado pela atenção!


    Creditos: Rodrigues2015



    [Tutorial] Criação de gangzones de um modo simples! D07Xwqb
    [Tutorial] Criação de gangzones de um modo simples! Yjab9HN

      Data/hora atual: Qui 2 maio 2024 - 2:48