Postado Maio 12, 2014 11 anos Autor Solução pior q nem é um problema sem lógica uhauhauh eu coloquei pra toda vez que desequipar uma determinada arma da mão, ela fosse removida.. só que quando o player passa de uma mão pra outra ele remove ela e já conta como se tivesse equipado, ao remover ela pela função doRemoveItem é como se tivesse desequipado (da outra mão agora) e ele vai remover algo que já foi removido, por isso dá erro na distro. Eu pensei em um monte de formas mas a maioria delas inclui repetir o id do item pra outro movement onEquip (oque vai dar erro no console), eu consegui resolver certinho de uma maneira meio escrota e pras minhas necessidades acabou dando certo.... mas a idéia era fazer um scrip 100% funcional pra que outros pudessem mudar à vontade pra postar aqui. Enfim né, até amanhã vou postar o script da forma que tá e te convido pra dar uma olhada e ver se vc pensa em alguma outra forma de resolver o problema. Abração Max. Todos os meus trabalhos importantes estão na seção "Sobre mim" no meu perfil; Dá uma passada lá! "Há três caminhos para o fracasso: não ensinar o que se sabe, não praticar o que se ensina, e não perguntar o que se ignora." - São Beda (obg ao @Beeny por fazer essa linda sign <3)
Postado Maio 12, 2014 11 anos AH, então o que acontece é um callback overflow, algo assim. Por exemplo. Se você coloca um movement pra quando pisar em um tile, teletransportar pro mesmo tile. O onStepIn vai ser executado várias vezes até dar debug no client e_e. Já passei por uma situação parecida, quando eu precisava mudar a outfit de um player, dentro do método onOutfit. Pra solucionar foi só colocar uma storage no player, aí quando essa storage tem um valor positivo, o bloco principal não é executado. Exemplo: function onOutfit(cid) if getPlayerStorageValue(cid, 60000) > 0 then return true end setPlayerStorageValue(cid, 60000, 1) doCreatureChangeOutfit(cid, newOutfit) setPlayerStorageValue(cid, 60000, -1) return false end Algo tipo isso ahuahua -"Supra Omnes Lux Lucis" - Acima de todos brilha a Luz -
Postado Maio 12, 2014 11 anos Autor isso não resolveria o problema kkk pq eu queria que o player pudesse mudar livremente a mão que está a arma, mas se o slot fosse diferente de "hands" o item fosse removido, contudo, a unica forma de fazer isso é usando o callback onDeEquip (cid, item, slot) mas daí se o cara pegar o item e jogar no rio o server crasha. Pra que não crashe tem que usar onDeEquip(cid, item, position, fromPosition); Enfim, hoje ou amanhã vc dá uma olhada no sistema como um todo e me fala qq vc achou, combinado? Todos os meus trabalhos importantes estão na seção "Sobre mim" no meu perfil; Dá uma passada lá! "Há três caminhos para o fracasso: não ensinar o que se sabe, não praticar o que se ensina, e não perguntar o que se ignora." - São Beda (obg ao @Beeny por fazer essa linda sign <3)
Participe da conversa
Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.