[Ajuda] Checar proximidade
#1

Eae gente, bom estou desevolvendo um servidor de Sobrevivкncia..

E eu preciso da ajuda de vocкs para fazer isso:

Bom eu tenho um sistema de "/criar bancada" onde cria uma mesinha, que serve como uma mesa de crafting para fazer as ferramentas, como faca, martelo, vara de pesca etc.. O problema й, como eu checo se o player estб prуximo a uma bancada? Nгo precisa ser a dele prуpria mas sim qualquer bancada.

Por exemplo:
/fazer martelo - "vocк nao estб proximo a uma bancada"
/fazer martelo - "vocк estб em uma bancada, Fazendo martelo"

Entendem?
Reply
#2

Usando Streamer, armazene o ID do objeto em uma variбvel, depois para saber a posiзгo dele:
Код:
new Float:x, Float:y, Float:z;
Streamer_GetFloatData(STREAMER_TYPE_OBJECT, variavelObjeto, E_STREAMER_X, x);
Streamer_GetFloatData(STREAMER_TYPE_OBJECT, variavelObjeto, E_STREAMER_Y, y);
Streamer_GetFloatData(STREAMER_TYPE_OBJECT, variavelObjeto, E_STREAMER_Z, z);
E a condicional:
Код:
if(!IsPlayerInRangeOfPoint(playerid, 5.0, x, y, z)) return SendClientMessage(playerid, 0xFF0000FF, "Vocк nгo estб a 5 metros da bancada!");
Reply
#3

Quote:
Originally Posted by RodrigoMSR
Посмотреть сообщение
Usando Streamer, armazene o ID do objeto em uma variбvel, depois para saber a posiзгo dele:
Код:
new Float:x, Float:y, Float:z;
Streamer_GetFloatData(STREAMER_TYPE_OBJECT, variavelObjeto, E_STREAMER_X, x);
Streamer_GetFloatData(STREAMER_TYPE_OBJECT, variavelObjeto, E_STREAMER_Y, y);
Streamer_GetFloatData(STREAMER_TYPE_OBJECT, variavelObjeto, E_STREAMER_Z, z);
E a condicional:
Код:
if(!IsPlayerInRangeOfPoint(playerid, 5.0, x, y, z)) return SendClientMessage(playerid, 0xFF0000FF, "Vocк nгo estб a 5 metros da bancada!");
PHP код:
if(!IsPlayerInRangeOfPoint(playerid5.0xyz)) return SendClientMessage(playerid0xFF0000FF"Vocк nгo estб a 5 metros da bancada!"); 
Essa parte eu sei utilizar, mas nгo entendi como usar o streamer, poderia demonstrar onde cria-lo e como utilizar?
Reply
#4

Baixe o plugin, adicione ele e a include, mude todos seus objetos de "CreateObject" para "CreateDynamicObject" e nas callbacks em uso faзa o mesmo:
Код:
forward OnDynamicObjectMoved(STREAMER_TAG_OBJECT objectid);
forward OnPlayerEditDynamicObject(playerid, STREAMER_TAG_OBJECT objectid, response, Float:x, Float:y, Float:z, Float:rx, Float:ry, Float:rz);
forward OnPlayerSelectDynamicObject(playerid, STREAMER_TAG_OBJECT objectid, modelid, Float:x, Float:y, Float:z);
forward OnPlayerShootDynamicObject(playerid, weaponid, STREAMER_TAG_OBJECT objectid, Float:x, Float:y, Float:z);
Reply
#5

Quote:
Originally Posted by RodrigoMSR
Посмотреть сообщение
Baixe o plugin, adicione ele e a include, mude todos seus objetos de "CreateObject" para "CreateDynamicObject" e nas callbacks em uso faзa o mesmo:
Код:
forward OnDynamicObjectMoved(STREAMER_TAG_OBJECT objectid);
forward OnPlayerEditDynamicObject(playerid, STREAMER_TAG_OBJECT objectid, response, Float:x, Float:y, Float:z, Float:rx, Float:ry, Float:rz);
forward OnPlayerSelectDynamicObject(playerid, STREAMER_TAG_OBJECT objectid, modelid, Float:x, Float:y, Float:z);
forward OnPlayerShootDynamicObject(playerid, weaponid, STREAMER_TAG_OBJECT objectid, Float:x, Float:y, Float:z);
Ta dando esse probleminha
Код:
error 021: symbol already defined: "Streamer_GetFloatData"
Jб procurei no ****** mas nada.
Reply
#6

Coloque dentro do seu comando antes da condicional (if).
Reply
#7

Obrigado por ajudar Rodrigo, grato!
Reply
#8

Acho que seria melhor vocк fazer com que o jogador abrisse uma dialog mostrando todas as opзхes que ele tem
Reply
#9

Quote:
Originally Posted by Meck
Посмотреть сообщение
Acho que seria melhor vocк fazer com que o jogador abrisse uma dialog mostrando todas as opзхes que ele tem
Visualize as imagens do update nesse link, clique aqui.

Olhe a data do post antes de comentar!
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)