Ir para conteúdo

xWhiteWolf

Héroi
  • Registro em

  • Última visita

Tudo que xWhiteWolf postou

  1. gostei, vou refazer o script dessa forma e já criar o npc. Só me dá uns dias q to meio ocupado com coisas da faculdade e fds eu fico sem sentar no pc praticamente
  2. me explica melhor o lance de 50~100k, vai ser percentualmente dividido ou teria um mínimo? Por ex: 50- 0 acertos 75k - acertar metade 100k - acertar tudo OU 50k - menos que metade dos acertos aí a cada acerto a partir da metade vai garantindo mais grana até chegar em 100k.
  3. http://www.tibiaking.com/forum/topic/11335-criando-suas-raids/ aí vc vai dizer /raid nomedasuaraid e ela vai fazer oque vc quer..
  4. 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í.
  5. 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.
  6. 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.
  7. eu sabia menos de Lua que você.. só treinei bastante hahaha
  8. 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?
  9. 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/
  10. if creature > 0 then coloca if creature > 0 and (isMonster(creature) or (isInParty(creature) and getPlayerParty(cid) ~= getPlayerParty(creature))) then
  11. 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
  12. 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
  13. 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.
  14. 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 function onCastSpell(batata, variavel) doCombat(batata, combat, variavel) end vai funcionar ;ç. Pensando em funções matemáticas: function somaCinco(x) return x + 5 end é uma função que retorna x + 5 dependendo do x que eu colocar ali. Se eu fizer function somaCinco(cid) return cid + 5 end dá na mesma. Entendeu a lógica?
  15. debug? tem ctza q tem a ver com esse script aqui?
  16. 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
  17. 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"
  18. 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
  19. 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.
  20. 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 oque vc quiser com a sequência de dices que caiu.. se cair 3 no primeiro, 4 no segundo e 1 no terceiro o numero salvo em dmg será 143. Entendeu agora?
  21. 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.
  22. 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ê
  23. 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ão vai separar os hits de cada player, se 10 caras atacarem eles vão stackar o bang no mob rapidão.
  24. nao sei se isso se aplica à poketibia mas nos servidores normais é pelo config.lua: emoteSpells = false coloca true.

Informação Importante

Confirmação de Termo