Ir para conteúdo

Night Wolf

Herói
  • Total de itens

    341
  • Registro em

  • Última visita

  • Dias Ganhos

    18

Tudo que Night Wolf postou

  1. uhauheuhauhe nao fica chutando... tenta entender oque o código faz :33
  2. @@Caronte, chegou perto uhauhauheuhauh
  3. @@Gabrieltxu, isso que você falou está tudo correto, com excessão dessa parte aqui: 3° função = chama uma Wave , com uma dificuldade e um delay , com uma variavel alfa com o valor getDifficult setada , e um loop de +7 para aumentar a dificuldade? (0-0) e um se for menor de 1 a diferença da dificuldade vai tirar o Objeto (UP) e vai criar o objeto (Down) e fim --- versao recursiva 1° função vai chamar uma wave n = 1 , vai ter dificuldade e um delay , vai criar o Objeto Down e vai retirar o Objeto Up , se o n for menor do que a diferença do alfa +7 vai fazer com que sempre chame uma wave aumenta a dificuldade e pronto Tem dois números que são muito utilizados em códigos no tibia (7 e 5). Aquele +7 tem uma razão de estar ali e não tem a ver com dificuldade de wave e sim com uma razão estética. Não é a diferença que tem que ser menor que 1 porque dif ali está se referindo à tabela dif. Não é diferença e a wave não aumenta a dificuldade. Uma wave não chama outra, somente a si mesma (por isso o nome recursiva).
  4. @@Lumus, nops ahauhauh PS: to gostando de ver vcs tentando, continuem
  5. @, vou te dar um ponto de reputação porque você acertou o esquema da sequencia certa.. mas não é pra entrar em nada e não é de abrir um caminho
  6. @@Daniel, thanks maninho. Vou tentar transformar esse tópico num desafio mensal e trazer novidades pra essa seção enquanto eu volto a scriptar *-* @, foi um bom palpite hahaha mas não é não.. tenta dar uma lida no código, mesmo quem não tá familiarizado com a linguagem pode achar dicas lá. Essa é a idéia do tópico @@Caronte, poderia ser.. mas em nenhum momento eu coloquei alguma função de criar monstros
  7. Olá pessoal, antes de tudo gostaria de me apresentar.. me chamo Anderson mas alguns de vocês devem me conhecer pelo nick de xWhiteWolf; Bom, hoje eu venho propor um desafio para a equipe do xtibia, eu vou apresentar um pseudo-código em lua de um script que desenvolvi. Eu fiz o pseudo-código bem porcamente em mais ou menos uns 20 minutos, já o script em si demorou algumas horinhas :x porém eles estão bem parecidos. O desafio é o seguinte: vocês tem que tentar adivinhar do que se trata esse código. Isso vale tanto para explicar partes do código quanto para explicar a idéia por trás dele. A cada dia irei postar uma dica para ajudá-los nesse desafio, podendo ser uma dica explicando partes do código ou dicas sobre a funcionalidade dele. "Mas lobo, por que eu iria tentar descobrir do que se trata seu código estúpido?" Bem meu caro, será uma tarefa legal e esse script é uma idéia bem inovadora.. só o fato de você tentar ler irá ajudá-lo a treinar seu cérebro para a linguagem Lua. E também há uma recompensa!! aquele que acertar ou chegar mais perto verá e terá acesso ao código antes de todo mundo!!111 Espero que vocês animem pra participar disso, se postei na seção errada peço que movam para a seção correta para que tenha melhor visibilidade. Dicas = { [1] = "Trata-se de um mini game no tibia" } Toda resposta certa irá receber um ponto de reputação minha (se a equipe permitir). Boa sorte e que os jogos comecem!! Edit: pro sistema funcionar precisaria também de um movements, eu fiz +- um modelo de como seria pra ajudar vcs a descobrirem:
  8. nesse caso eu não sei te ajudar, era pra dar certo isso aí vc seguiu o modelo de algum ring, certo?
  9. pensa cmg rapaz, vc equipa o item 2649 no slot legs e aí vc ativa o callback onEquipItem.. esse callback transforma o seu item equipado para o item 1997. Ao ser transformado ele dá um conflito pois você ativa o callback onDeEquipItem no item 2649 ao mesmo tempo que ativa o callback onEquipItem no 1997. Acredito que seu movements.xml esteja errado e que o correto seja apenas 2649 onEquip e 1997 onDeEquip;
  10. desse jeito q tá ele só vai funcionar se vc der use with na wand e clicar num dos ids que tá dentro de config.sands, e aí no actions.xml vc bota o id da wand vinculado com esse script aqui local config = { sands = {4614, 4615, 4616, 4617, 4618, 4619, 4620, 4621, 4622, 4623, 4624, 4625, 4665, 4666, 4820, 4821, 4822, 4823, 4824, 4825} } function onUse(cid, item, fromPosition, itemEx, toPosition) if(isInArray(config.sands, itemEx.itemid)) then doSendMagicEffect(toPosition, CONST_ME_LOSEENERGY) doItemSetAttribute(item.uid, "soul_charges", 1000) doItemSetAttribute(item.uid, "description", "[Soul Charges: ".. 1000 .."]") return true else doPlayerSendDefaultCancel(cid, RETURNVALUE_NOTPOSSIBLE) end end
  11. Ja tem no look.. doItemSetAttribute(w, "description", "[Soul Charges: ".. charges - 1 .."]") Se ngm fizer a action até hj a noite, eu tento tirar um tempo pra fazer
  12. o zipter e eu fizemos esse daqui pra wand: e no weapons.xml: <wand id="2190" level="7" event="script" value="mace.lua"> <!-- Wand of Vortex --> <vocation id="1"/> </wand> Pra recarregar tem que fazer uma action que ao clicar na wand e clicar na areia (usa itemEx.itemid pra verificar se o id do segundo item que deu use With tá dentro de um array pré definido de chãos que são possiveis de recarregar sua wand)
  13. zipter, me chama no skype e vamo discutir esse código aí.. eu pensei em várias maneiras de fazer mas nenhuma que fosse eficiente eu tive uma ótima ideia pra fazer de forma eficiente mas rodei uns testes ontem e aparentemente não deu certo.
  14. gostei muito da ideia mas uma coisa me confundiu no seu pedido: as cargas vem com o tempo ou será carregado por outro item?
  15. adiciona essas 3 funções na sua lib: -- 14º function getFloorsBetweenPos(fromPos, toPos) return math.abs(fromPos.z - toPos.z) end -- 15º function getLowestFloor(fromPos, toPos) return fromPos.z > toPos.z and toPos.z or fromPos.z end -- 16º function getAllPlayersInArea(fromPos, toPos) local players = {} local andares = getFloorsBetweenPos(fromPos, toPos) for index, creature in ipairs(getPlayersOnline()) do local z = getLowestFloor(fromPos, toPos) local frompos = {x = fromPos.x, y = fromPos.y, z = fromPos.z} local topos = {x = toPos.x, y = toPos.y, z = toPos.z} for i = 0, andares do z = z or 0 frompos.z = z + i topos.z = z + i if isInArea(getThingPos(creature), frompos, topos) then table.insert(players, creature) end end end return players end Agora vc vai fazer o seguinte, chamar essa função getAllPlayersInArea(posicao1, posicao2) e aí ele vai pegar todos os players entre a area da posicao 1 e posicao 2. Só que vc vai colocar o valor dessa função numa variavel: local totalplayers = getAllPlayersInArea(posicao1, posicao2) Feito isso você vai ter uma lista de todos os players que estão nessa area. Agora tudo que você precisa fazer é verificar se a condição de ter somente 1 player é verdadeira e teleportar ele caso seja: if #totalplayers == 1 then doTeleportThing(totalplayers[1], posicaofinal) end EDIT: não vi que era pra 1.2, foi mal, mas é só adaptar as funções que mudaram de nome que vai dar certo.
  16. adiciona isso embaixo do doPlayerSetStorageValue doPlayerSendTextMessage(cid, 20, "Killed ".. getCreatureName(target) .."s [".. getPlayerStorageValue(cid, tasks.storagecount) .."/"..tasks.count .."].")
  17. vc tem que garantir que ela tá como convinceable no XML, do contrário apenas GOD's vão poder controlá-la
  18. promotelevel vc define no npc ou no script que dá a promote.
  19. Dá algum erro no seu console? Você tem que garantir que sua source tem absorbPercentAll compilado pra poder usá-lo em movements.
  20. ao mudar a vocation por script, se o server for 8.6 ou maior vc tem que alterar tb o promoteLevel.. e no XML você tem que definir fromvocation pra mostrar de qual classe aquela classe se deriva. Se não fizer isso, toda vez que logar vai estar a classe anterior.
  21. ele tá com chances iguais pra todos os atributos: local l = choose('hp','mp','ml','cas','shield','dist') todos tem 1/6 de chance de entrar. Oque dá pra fazer é escrever mais de uma vez outros atributos pra dar prioridade maior pra eles: local l = choose('hp','mp','ml','cas','shield','dist', 'ml','cas','shield','dist') Dessa forma hp e mp ficam com 10% cada e os outros com 20% cada;
  22. a melhor solução nesse caso é resetar a mana ou diminuir a quantidade de mana ganha por level, como o ot é 9999x ninguém vai perceber e vc vai extender a quantidade possível de resets sem bugar.
  • Quem Está Navegando   0 membros estão online

    • Nenhum usuário registrado visualizando esta página.
×
×
  • Criar Novo...