Caro membro, seu tópico foi movido de Otserv > Programação para Otserv > Suporte Otserv.
info
Grupo: Conde
Registrado: 14/04/15
Posts: 956
Reputação: +333
Gênero: Masculino

Caro membro, seu tópico foi movido de Otserv > Programação para Otserv > Suporte Otserv.
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?
info
Grupo: Visconde
Registrado: 10/02/11
Posts: 377
Reputação: +78

otx tfs 0.3.7
o ruim é q se n conseguir um jeito para arrumar isso
n vai adiantar ter uma bag pra certo item =/
Editado Outubro 6 por rohfagundes
info
Grupo: Marquês
Registrado: 25/09/10
Posts: 1.3k
Reputação: +446
Gênero: Masculino

Cria uma bag com id diferente porém com a mesma sprite ![]()
info
Grupo: Visconde
Registrado: 10/02/11
Posts: 377
Reputação: +78

4 minutos atrás, Caronte disse:Cria uma bag com id diferente porém com a mesma sprite
?? 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
info
Grupo: Marquês
Registrado: 25/09/10
Posts: 1.3k
Reputação: +446
Gênero: Masculino

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 Outubro 6 por Caronte
info
Grupo: Visconde
Registrado: 10/02/11
Posts: 377
Reputação: +78

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
info
Grupo: Marquês
Registrado: 25/09/10
Posts: 1.3k
Reputação: +446
Gênero: Masculino

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.
info
Grupo: Visconde
Registrado: 10/02/11
Posts: 377
Reputação: +78

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
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?
info
Grupo: Visconde
Registrado: 10/02/11
Posts: 377
Reputação: +78

13 minutos atrás, dalvorsn disse:É só esse id de bag em especifico que tu quer colocar essa limitação ou tem mais items nesse estilo?
na verdade sao uns 5 itens assim
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
info
Grupo: Visconde
Registrado: 10/02/11
Posts: 377
Reputação: +78

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 =/
info
Grupo: Visconde
Registrado: 10/02/11
Posts: 377
Reputação: +78
Ola, estou com um problema no doPlayerAddItem que é o seguinte
eu arrumei aqui no meu servidor para algumas bags so receberem certos itens
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?
Editado Outubro 6 por Drazyn