01.09.2014, 02:21
Bom galera, decidi fazer um tutorial sobre um assunto que estava me deixando meio chateado por me 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:
Entгo achei uma alternativa para criar gangzone de um modo simples, apenas criando duas funзхes.
As funзхes criadas foram estas:
Acredito que as funзхes nгo precisam de explicaзхes, porйm, vou resumir o calculo simples que fiz:
Quando usamos a funзгo GangZoneCreateIG ela imprime no sa-mp server as coordenadas para serem colocadas no GangZoneCreate na sequencia correta,
para criar a gangzone e ajustar da forma que eu queria eu criei um gamemode para testes, ele ficou assim:
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!
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:
Код:
// Como pegar coordenadas. (North) ymax |----------| | | (West) xmin | | xmax (East) | | |----------| ymin (South)
As funзхes criadas foram estas:
pawn Код:
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-radius, Y-radius, X+radius, Y+radius);
return true;
}
stock DeleteGangZone(vargz)
return GangZoneHideForAll(vargz);
pawn Код:
X Min = X - radius // Radius й o perimetro da gangzone.
Y Min = Y - radius // Radius й o perimetro da gangzone.
X Max = X + radius // Radius й o perimetro da gangzone.
Z Max = Y + radius // Radius й o perimetro da gangzone.
para criar a gangzone e ajustar da forma que eu queria eu criei um gamemode para testes, ele ficou assim:
pawn Код:
#include a_samp
#include zcmd
#include sscanf2
main() return print("Gamemode para testes.");
new gztest;
CMD:criargz(playerid, params[])
{
new Float: radius, Float: pos[3];
if(sscanf(params, "f", radius))
return SendClientMessage(playerid, 0xC0C0C0AA, "Use: /criargz [radius]");
GetPlayerPos(playerid, pos[0], pos[1], pos[2]);
GangZoneCreateIG(gztest, radius, pos[0], pos[1]);
return true;
}
CMD:deletargz(playerid)
{
DeleteGangZone(gztest);
return true;
}
por agora й sу isso, й meu primeiro tutorial entгo por favor peguem leve.. Obrigado pela atenзгo!