Ir para conteúdo
  • 0

Problema com doPlayerAddItem


rohfagundes

Pergunta

Ola, estou com um problema no doPlayerAddItem que é o seguinte

eu arrumei aqui no meu servidor para algumas bags so receberem certos itens

lXA7yqZ.png

no caso ate esse erro ai da imagem eu ja arrumei
porem quando se usa o doPlayerAddItem
o item pode ser criado dentro dessa bag
alguem sabe aonde eu poderia arrumar isso?

lXA7yqZ.png.6a92d8a6bf97b456c7f4f8a28db3da74.png

Editado por Drazyn
Link para o comentário
Compartilhar em outros sites

13 respostass a esta questão

Posts Recomendados

  • 0

Complicado brow, geralmente essa função adiciona com a flag no_limit, isso fode com o __queryAdd, bypassa um monte de verificação x=

Qual distro tu ta usando?

Link para o comentário
Compartilhar em outros sites

  • 0
4 minutos atrás, Caronte disse:

Cria uma bag com id diferente porém com a mesma sprite :ok:

?? n entendi o q vc quis dizer

o problema é só quando usa o doPlayerAddItem

ex:

quiver = uma bag q só pode colocar arrows

só q quando usa o doPlayerAddItem

ele cria o item na quiver q pelo certo era para aceitar só arrows

Link para o comentário
Compartilhar em outros sites

  • 0
6 minutos atrás, rohfagundes disse:

?? n entendi o q vc quis dizer

o problema é só quando usa o doPlayerAddItem

ex:

quiver = uma bag q só pode colocar arrows

só q quando usa o doPlayerAddItem

ele cria o item na quiver q pelo certo era para aceitar só arrows

 

ahhh sim, então seu OT tem o callback onMoveItem? (acho que é esse nome). Ou você tá fazendo gambiarra em C++? 

você pode fazer a função addItem só funcionar caso o player tenha um Slot vazio, como a mão e etc..., aí caso não tiver você pode pedir para o player tirar algo da mão ou do slot das flexas etc...

depende de como você criou o sistema, se for pelo callback onMoveItem não vai dar certo com o addItem.

A bag também tem uns slots, mas são uns slots com pos estranha, você pode tentar ver se tem diferença de uma bag entre uma bag dentro de uma bag, só você ver a posição do slot, use funções print() para isso.

Editado por Caronte
Link para o comentário
Compartilhar em outros sites

  • 0
1 minuto atrás, Caronte disse:

 

ahhh sim, então seu OT tem o callback onMoveItem? (acho que é esse nome). Ou você tá fazendo gambiarra em C++? 

você pode fazer a função addItem só funcionar caso o player tenha um Slot vazio, como a mão e etc..., aí caso não tiver você pode pedir para o player tirar algo da mão ou do slot das flexas etc...

depende de como você criou o sistema, se for pelo callback onMoveItem não vai dar certo com o addItem.

foi com onMoveItem msm

 

Link para o comentário
Compartilhar em outros sites

  • 0
Agora, rohfagundes disse:

foi com onMoveItem msm

 

Então acho que o @dalvorsn vai poder lhe ajudar melhor que eu, pois os métodos que eu estou falando são meio que gambiarras, porque não são soluções muito boas de usar. o onMoveItem deixa brecha para a função addItem entrar dentro da bag, pois a função do onMoveItem é para quando alguém troca a posição do item, seja no slot ou seja no chão. A minha solução era ver a posição do item, pois até mesmo nos slots o item tem posição, assim você poderia permitir que o item fosse adicionado só na primeira bag, mas mesmo assim se o player colocasse a bag no slot da bag poderia burlar, mas tem como você verificar o nome/id da bag antes de adicionar, é só usar uns ifs, mas criar um script para fazer isso toda vez, não sei se vai sobrecarregar seu ot, mas vai ajudar a não ficar organizado como tem que ser. Mas também não sei se alterar a função addItem seria inteligente também.

Link para o comentário
Compartilhar em outros sites

  • 0
3 minutos atrás, Caronte disse:

 

Então acho que o @dalvorsn vai poder lhe ajudar melhor que eu, pois os métodos que eu estou falando são meio que gambiarras, porque não são soluções muito boas de usar. o onMoveItem deixa brecha para a função addItem entrar dentro da bag, pois a função do onMoveItem é para quando alguém troca a posição do item, seja no slot ou seja no chão. A minha solução era ver a posição do item, pois até mesmo nos slots o item tem posição, assim você poderia permitir que o item fosse adicionado só na primeira bag, mas mesmo assim se o player colocasse a bag no slot da bag poderia burlar, mas tem como você verificar o nome/id da bag antes de adicionar, é só usar uns ifs, mas criar um script para fazer isso toda vez, não sei se vai sobrecarregar seu ot, mas vai ajudar a não ficar organizado como tem que ser. Mas também não sei se alterar a função addItem seria inteligente também.

vou ver se consigo arrumar desse jeito q vc falou
eu teria q fazer uma função para checar se a bag tem espaço e se ela n é ammo(q no caso a quiver é uma bag q só pode ser equipada no slot ammo)
vlw ai vou tentar ver aqui qlq coisa eu faloa qui

Link para o comentário
Compartilhar em outros sites

  • 0
30 minutos atrás, rohfagundes disse:

vou ver se consigo arrumar desse jeito q vc falou

eu teria q fazer uma função para checar se a bag tem espaço e se ela n é ammo(q no caso a quiver é uma bag q só pode ser equipada no slot ammo)

vlw ai vou tentar ver aqui qlq coisa eu faloa qui

É só esse id de bag em especifico que tu quer colocar essa limitação ou tem mais items nesse estilo?

Link para o comentário
Compartilhar em outros sites

  • 0
7 minutos atrás, rohfagundes disse:

na verdade sao uns 5 itens assim

é, isso tem que ser feito nas sources

se fosse um item só era moleza, mas como são mais o ideal era ate criar um xml pra serializar isso

porem eu to sem tempo pra fazer isso, tu entende algo de c++? se entender eu posso te guiar como fazer

Link para o comentário
Compartilhar em outros sites

  • 0
12 minutos atrás, dalvorsn disse:

é, isso tem que ser feito nas sources

se fosse um item só era moleza, mas como são mais o ideal era ate criar um xml pra serializar isso

porem eu to sem tempo pra fazer isso, tu entende algo de c++? se entender eu posso te guiar como fazer

n entendo muito n =/

 

Link para o comentário
Compartilhar em outros sites

×
×
  • Criar Novo...