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:
Код: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 Код:As funções criadas foram estas:
- 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 Код:para criar uma gangzone e ajustar da forma que eu queria criar um gamemode para testes, ele ficou assim:
- 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!
por agora й sу isso, é meu primeiro tutorial entгo por favor peguem leve.. Obrigado pela atenção!
Creditos: Rodrigues2015