Ir para conteúdo
  • Cadastre-se

xWhiteWolf

Héroi
  • Total de itens

    3604
  • Registro em

  • Última visita

  • Dias Ganhos

    158

Tudo que xWhiteWolf postou

  1. ué, usa o sistema de raid.. tem a talkaction já feita /raid nome_da_raid. Você só declara frases e onde os bixos/bixo vão/vai nascer. Dá uma pesquisada aí.
  2. local storage = 48291 if getPlayerStorageValue(cid, storage) < 1 then setPlayerStorageValue(cid, storage, 1) doCreatureSetNoMove(cid, true) else setPlayerStorageValue(cid, storage, 0) doCreatureSetNoMove(cid, false) end a base é isso daqui, agr vc coloca dentro de function onSay pra talkaction e bota a tag do jeito q vc quer. Nao esquece de botar uns efeitos e umas mensagens dizendo que ativou/desativou.
  3. um servidor perfeito pra mim tinha que ter um monte de source editing e eu faria uma mistura dessa Lib com a lib do Skulls do outro fórum, outro cara muito bom.
  4. attempt to call global 'isInWallArray' (a nil value) Tentativa de chamada global "isInWallArray" (um valor nulo) o erro tá dizendo que essa função não existe, vc fez ela como e aonde?
  5. usa um sistema de trainer diferenciado... esse aqui por ex: http://www.tibiaking.com/forum/topic/43091-como-eu-fa%C3%A7o-o-sistema-training-igual-ao-nto-br/
  6. if creature > 0 then coloca if creature > 0 and (isMonster(creature) or (isInParty(creature) and getPlayerParty(cid) ~= getPlayerParty(creature))) then
  7. não pode, mas sempre tem um jeito de colocar return false pra casos específicos. Exemplo: o player ataca e gera um numero X, se esse numero X for igual a 5 então pelos próximos 5 segundos o player não vai tirar dano. function onStatschange(cid, attacker, type, combat, value) if getPlayerStorageValue(cid, storage) - os.time() >= 0 then return false end if math.random(1,10) == 5 then setPlayerStorageValue(cid, storage, os.time() + 5) end return true end
  8. vc pode fazer isso de não atacar somente retornando false no statschange. Se quiser q isso dure um X tempo é só salvar no storage o os.time() + tempo e sempre checar: se storage - os.time() >= 0 then return false end
  9. flag é uma uma espécie de definição de liberdades e restrições de um determinado grupo, vc altera em data\XML\groups.xml em algumas linguagens não, em Lua sim. Mas com algumas atribuições de variaveis vc diminui as linhas.
  10. não tem diferença fora do callback, dentro do callback cid representa o primeiro parametro do callback (na maioria dos callbacks). Cid é a abreviação pra creatureid e em geral tá associado ao uid (unique id) da criatura que tá executando o callback. function onCastSpell(cid, var) o cid é o creatureid de quem está castando a spell. function onDeath(cid, killer) o cid é o creatureid da criatura que morreu e ativou o callback. Por convenção a gente usa uid em funções que estão fora do callback e cid para coisas que estão dentro do callback mas é só o nome da variável. Se eu fizer
  11. vc tava querendo pegar a vida do atacante fora do callback (nesse momento não existe atacante ainda) e tava falando pro uid falar as frases.. na vdd tinha que ser o cid
  12. se vc usar dice1..dice2..dice3 ele retorna uma string com os 3 valores de dice. vamos supor 1, 4, e 2 vai retornar "142"
  13. sim, toda vez que for executado o callback ele irá gerar um novo math.random mas cada vez que vc usar dice o valor será do primeiro math.random
  14. não precisa abrir mão, dá pra vc fazer uma lógica que inclua isso. guardar os storages multiplicáveis? como assim? Dá pra configurar de forma precisa sim, uma vez que vc tem todos os valores salvos por ordem e por valor. Se vc declarar dice ele vai pegar o valor salvo pelo primeiro math.random gerado, se vc quiser fazer outro use a função math.random(1,6) ao invés da variável.
  15. vê se vc entende agora: o storage inicialmente é -1 então ele cai no else ali e vai setar o valor como sendo o valor do dice (1~6). Aí no próximo ataque ele vai cair no elseif stor > 0 e setar o valor que estava (1~6) + 10 * (1~6), ou seja vai ficar (10~60)+ (1~6). No próximo ataque ele vai cair no elseif stor > 10 e setar o valor que estava (10~60)+ (1~6) + 100* (1~6) ou seja, vai ficar (100~600)+(10~60)+ (1~6). No ultimo ataque ele vai cair no if stor > 100 e aí ele passa o valor pra variável dmg e zera o storage. Nessa parte que ele faz isso, vc pode fazer
  16. tá bem dificil de entender oque vc quis fazer aqui mas em todo caso arrumei uns erros que vc tinha cometido (de código, de lógica ainda tem vários ao meu ver) e coloquei da forma que eu tinha proposto anteriormente.
  17. fazendo dessa maneira fica feio mas se vc quiser q seja sempe o quarto ataque de um mesmo player pra tem q ser assim (vou dar uma melhorada nesse código pra vc mas a ideia é essa). Agora se vc não ligar de ativar sempre no quarto ataque q o bixo toma (independente de quem atacou) aí da pra fazer ficar pequeninho o código. Me fala qual das duas vc quer q eu faço já tudo pra você
  18. bom, tem dois jeitos ao meu ver: criar uma tabela fora do escopo do callback e checar se o #table % 4 == 0 (se o numero de elementos na tabela é multiplo de 4) e dar concat nos 3 ultimos elementos for i = #table - 2, #table do -- end A outra opção é fazer assim if storage > 100 then zera o storage e faz o golpe pegando o valor do storage. elseif storage > 10 then salva como sendo valor antigo + (100* valor atual) elseif storage > 0 then salva como sendo valor antigo + (10 * valor atual) else salva como sendo valor antigo end mas lembra que isso nã
  19. nao sei se isso se aplica à poketibia mas nos servidores normais é pelo config.lua: emoteSpells = false coloca true.
  20. pra fazer rank é só fazer uma query no banco de dados do servidor. Calma q esse papo tá muito disléxico, oque vc quer especificamente? pra cada problema a forma de solucionar varia, se vc quer q eu te explique qnd usar cada forma eu posso fazer mas preciso primeiro entender oque vc quer..
  21. vc quer salvar a posicao do player pra usar no mesmo script ou em outro? Pq usar tabelas ou variáveis depende muito do que vc quer fazer, ag se se for pra usar em outro script tem q salvar no player
  22. http://www.tibiaking.com/forum/topic/53090-getcreaturepathto/ em Lua vc faz um addEvent pra ele ir caminhando por esses passos e a cada passo q ele der ele checa se tem alguma criatura na tela q ele possa dar target, se tiver ele dá target nela. Aí vc faz um onKill que qnd a criatura morrer vc faz ela caminhar dnv até o nexus. Só cuidado q essa função tem um limite de 50 sqms se nao me engano, mas dá pra fazer ele andar até o meio e depois andar do meio até o fim
×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo