Ir para conteúdo

xWhiteWolf

Héroi
  • Registro em

  • Última visita

Tudo que xWhiteWolf postou

  1. velho olha a imagem e olha oque tu me falou.. Não tem nada a ver, óbvio que deu erro, eu fiz o script pra um mapa que não é o teu. Tá vendo porque não dá certo? Agora eu to puto da vida e você vai ficar sem o sistema, não era muito mais fácil vc ter passado as drogas das posições de inicio? Você me falou que era uma cabana de trainer a cada 11 sqms pra > e 12 pra /\, o script foi feito pra trainers em uma linha e não pra duas linhas. Caramba cara. O erro no script foi que eu esqueci uma virgula, agora se vc quiser usar esse sistema vai ter que refazer o mapa pra uma linha só de trainers e colocar rangey = 0.
  2. seria uma espécie de provocação que obrigaria o player/monstro a ir pra cima de você te atacar, seria uma evolução do exeta res que funcione em players tb kkk
  3. Fala galera, vou mostrar agora como usar o novo sistema de cast imbutido na New Lib, é bem simples: Pegarei como exemplo a spell Taunt, aqui está o código dela: 1- Pra adicionar o sistema de channelling nessa spell eu preciso inicialmente passar todas as funções dela pra um addEvent, ficando assim: 2- Agora pro segundo evento acontecer eu preciso de um time, que se encontra ali antes do return true e que em nenhum momento eu disse oque era. Agora que entra a função onCastChannel(uid, target, delay, effect, key) mas note que essa função requer um delay próprio, um efeito e uma id de storage então vou precisar alterar o config, ficando + ou - assim: 3- Agora note que temos uma key onde ficará salvo se o channelling foi realizado com sucesso, mas como saber? Simples, o valor dessa storage ficará 11 caso ele tenha sido realizado completamente com sucesso, então o passo final é colocar um checador no addEvent para o valor do Storage antes de soltar a spell, afinal, a spell só deverá sair se o channelling foi feito com sucesso. 4- A spell está perfeita e funcional agora, só q se vc for soltar vc vai perceber que o exhaust dela é bem menor que o tempo de channelling então o cara pode soltar ela diversas vezes só carregando e soltando. Pra controlar melhor isso já que se trata de uma spell praticamente mortal num x1 contra um knight nós usaremos um sistema de cooldown por storage, ficando assim: Espero que vocês tenham aprendido como usar o cast System, agora um pequeno gif do funcionamento dele:
  4. xWhiteWolf postou uma resposta no tópico em Sistemas, Mods & Funções .lua
    edit: adicionei a versão pra quem usa a new lib.
  5. Eae galera, hoje vou fazer uma pequena demonstração de como usar a função doShowTimeByPos, uma das mais novas funções adicionadas na New Lib, que agora está em versão 1.2. A função: Se seu server for 0.3.6/0.4 você só vai precisar adicionar essa linha marcada: do contrário, se ele for das revs mais novas como 1.0 você irá adicionar essa linha: Esses valores são a duração (20 segundos que é o tempo de duração da magic wall) e 20/35 é o TALKTYPE do tipo monster (cor laranja), seguindo a tabela do data\lib\constant.lua: TALKTYPE_FIRST = 1 TALKTYPE_WHISPER = 2 TALKTYPE_YELL = 3 TALKTYPE_PRIVATE_PN = 4 TALKTYPE_PRIVATE_NP = 5 TALKTYPE_PRIVATE = 6 TALKTYPE_CHANNEL_Y = 7 TALKTYPE_CHANNEL_W = 8 TALKTYPE_RVR_CHANNEL = 9 TALKTYPE_RVR_ANSWER = 10 TALKTYPE_RVR_CONTINUE = 11 TALKTYPE_BROADCAST = 12 TALKTYPE_CHANNEL_RN = 13 TALKTYPE_PRIVATE_RED = 14 TALKTYPE_CHANNEL_O = 15 TALKTYPE_CHANNEL_RA = 17 TALKTYPE_MONSTER = 19 TALKTYPE_MONSTER_YELL = 20 Aqui tem uma imagem de como fica no server. Note que eu fiz pra magic wall mas vale pra qualquer item que tenha duration, pra quests, pra contar tempo de invencibilidade de alguma spell ou oque você quiser, use a criatividade e explore o máximo dessa função. Abraços.
  6. Ótima iniciativa mas pela twitch acho que as aulas se perderiam com o tempo, tenta gravar vídeos e trazer pro TK que eu consigo te ajudar com as edições e tal, assim não será algo cansativo e será melhor planejado. Claro que por twitch você tem a interatividade mas acho que muitos players deixariam de ver pelo tempo e pelo fato de não puder pular "pra parte que eu não entendo"
  7. local config = { --[vocation id] = { level, looktype, efeito} [9] = { 30, 30, 32}, [10] = { 40, 261, 32}, [11] = { 50, 261, 33}, [12] = { 75, 261, 33}, [13] = { 100, 261, 33}, [14] = { 150, 261, 33}, [15] = { 180, 261, 33}, [16] = { 200, 261, 33}, [17] = { 40, 261, 33}, [18] = { 40, 261, 33}, [19] = { 40, 261, 33}, [20] = { 40, 261, 33}, [21] = { 40, 261, 33}, [22] = { 40, 261, 33}, [23] = { 40, 261, 33} } function onSay(cid, words, param, channel) doPlayerSay(cid, "transformar") local voc = config[getPlayerVocation(cid)] if voc then if getPlayerLevel(cid) >= voc[1] then doPlayerSendTextMessage(cid, MESSAGE_STATUS_WARNING, "Você Transformou!") local outfit = {lookType = voc[2]} doCreatureChangeOutfit(cid, outfit) doSendMagicEffect(getCreaturePosition(cid), voc[3]) else doPlayerSendTextMessage(cid, MESSAGE_STATUS_WARNING, "Você precisa estar no level " .. voc[1] .. " para transformar.") end else doPlayerSendCancel(cid, "Você não pode se Transformar!") end return true end [vocação que vai poder usar essa transformação] = {level necessário, Looktype que vai transformar, efeito que sai}
  8. wow such reps auhieuhiau, não imaginei q ia fazer sucesso assim.. realmente é algo bem simples mas q vai fazer seu server ter um diferencial forte
  9. Bom galera, tem uma coisa bem simples que nem o tibia global fez e que eu to trazendo aqui pra vocês. Trata-se de um pequeno sistema que fará você sempre virar pra direção do seu target ao atacar. Testado em TFS 0.3.6 Cliente 8.54. Imagem auto explicativa: Chega de atacar de costas! Agora pra instalar é bem tranquilo. Abra um arquivo .lua em data\creaturescripts\scripts chamado target e coloque o seguinte conteudo dentro dele: Feito isso adicione essa linha no creaturescripts.xml: <event type="attack" name="targetCreature" script="target.lua"/> E para finalizar adicione a seguinte tag em creaturescripts\scripts\login.lua: registerCreatureEvent(cid, "targetCreature") Espero que vcs tenham curtido, é algo bem simples mas ninguém havia pensado nisso antes (nem o próprio Tibia), é uma coisa bem básica e que torna o jogo bem mais importante e sério. EDIT:: Usem essa versão que está mais completa, na anterior se o target estivesse na diagonal ele não virava.
  10. empurrar puxar: daí só coloca o nome do monstro ali na tabela de exceptions.
  11. realmente ja existe mas saca só uma coisa: Tá lendo o lua-made ali em cima? Essas são as funções que não existem na source e foram criadas em alguma lib do server, isso implica que não é todo server que vai ter ela, além do mais desconhecemos o propósito do player ou a versão do servidor que ele está utilizando (funções do tipo lua made surgiram por volta de 8.1+) então acho que é mais apropriado mostrar pra ele onde ele errou doque apresentar algo novo que talvez não vá ser utilizável. Mas em todo caso foi muito bem lembrado falar dessas funções.
  12. function getPlayerExhaust(player, number) local before = getPlayerStorageValue(player,number) exhaust = (before - os.time()) > 0 and (before - os.time()) or 0 return exhaust end pronto, ele retorna o exhaust que o player tem naquele determinado storage. De quebra ainda fiz uma função pra setar o exhaust no storage function setPlayerExhaust(player, number, time) local before = getPlayerStorageValue(player,number) a = before > os.time() and before or os.time() return setPlayerStorageValue(player, number, a + time) end Pra escrever em uma action é só fazer: doPlayerSendTextMessage(cid, 22, "Espere ".. getPlayerExhaust(cid, >STORAGE VEM AQUI<).." segundo(s).")
  13. local config = { number = 130, --- numero de salas firstPos = {x = 160, y = 54, z = 7}, --- pos da primeira sala (coloque a pos de onde o player irá ficar ao entrar) rangex = 11, --- distancia em X entre cada uma das pos de cada sala rangey = 12 --- distancia em Y entre cada uma das pos de cada sala } function onStepIn(cid, item, position, fromPosition) local room = nil for i = 0, (config.number - 1) do pos = {x = config.firstPos.x + (i * config.rangex), y = config.firstPos.y + (i * config.rangey), z = config.firstPos.z} if isWalkable(pos, true, true, true) then room = pos break end end if room ~= nil then doTeleportThing(cid, room) else doPlayerSendCancel(cid, "All rooms are full") doTeleportThing(cid, fromPosition) doSendMagicEffect(fromPosition, 2) end return true end coloca em movements por actionid/uniqueid e coloca esse action/unique no teleporte. Abraço
  14. xWhiteWolf postou uma resposta no tópico em Sistemas, Mods & Funções .lua
    @Gabuuh, não troca de atacante? Pra trocar os atacantes tem que estar no máximo a 3 sqms de distancia. Testa ai e coloca o percent = 70 como sendo percent = 100 ra ele sempre trocar de personagem. Se mesmo assim não der certo, onde está percent = {} troca por local percent = {}
  15. xWhiteWolf postou uma resposta no tópico em Suporte Tibia OTServer
    condition:setParameter(CONDITION_PARAM_TICKS, 10000)
  16. Hoje vim trazer uma spell que eu considero muito legal que eu tenho no meu servidor ja faz alguns meses e esqueci completamente de postar haha Trata-se de nada mais nada menos que uma troca entre dois personagens, eles trocam de posição e de outfit confundindo lindamente os adversários. Não tenho gif da spell e nem imagem pq to com uma baita preguiça e daqui a 8 minutos eu tenho que ir pra faculdade então testem aí porque é bem legal essa spell. Ps: só funciona em players. Instalando: Crie um arquivo chamado swap em data\spells\scripts\especiais que seja com extensão .lua e coloque isso dentro dele: e no spells.xml: <instant name="Swap" words="swap" lvl="23" mana="25" range="1" needtarget="1" params="1" exhaustion="3000" blockwalls="1" needlearn="0" event="script" value="especiais/swap.lua"> </instant> Para usá-la basta dizer swap "nome do player e tem que estar à 1 sqm de distancia dele. Você irá trocar de posição com ele e ambos trocarão de outfit, confundindo os outros players.
  17. a muito tempo skill pegava a soma de todas suas skills mas hj em dia acho que só retorna a maior skill que vc tem.
  18. Seguinte meu caro, os combats/conditions tem que ser colocados antes do script rodar, certo? (antes do callback). Porém, você só pode usar coisas relacionadas ao cid após o callback rodar!. O problema está justamente aqui: pois até você executar a magia o server não server oque é esse cid. E ele só executa a magia no final do script; O tibia tem uma maneira de resolver esse tipo de coisa porém a maneira deles é uma maneira meio bronze (ruim) e que não funciona em todos os servers aparentemente, que é fazendo um combat callback de alguma informação do player. Eu não vou entrar em detalhes porque é uma solução burra mas você pode fazer essa mesma spell através de scripts dentro do callback, tendo um resultado idêntico ao que vc quer e deixado o script mais bonito e configurável. Veja: http://www.tibiaking.com/forum/topic/44593-mass-healing/
  19. xWhiteWolf postou uma resposta no tópico em Sistemas, Mods & Funções .lua
    deu algum erro amigo?
  20. xWhiteWolf postou uma resposta no tópico em Sistemas, Mods & Funções .lua
    sim, ela foi feita pra versões 8.54 e 8.6 mas se vc não quiser ela é só adicionar a função logo dps do final } do config;
  21. me chama skype e se possivel me passa o seu server pra eu fazer uns testes. Deve ser algum conflito com o nome das variáveis.
  22. xWhiteWolf postou uma resposta no tópico em Sistemas, Mods & Funções .lua
    vc precisa da função isWalkable.. coloca isso antes de function doBlast que vai funcionar perfeito: function isWalkable(pos, creature, proj, pz)-- by Nord if getTileThingByPos({x = pos.x, y = pos.y, z = pos.z, stackpos = 0}).itemid == 0 then return false end if getTopCreature(pos).uid > 0 and creature then return false end if getTileInfo(pos).protection and pz then return false, true end local n = not proj and 3 or 2 for i = 0, 255 do pos.stackpos = i local tile = getTileThingByPos(pos) if tile.itemid ~= 0 and not isCreature(tile.uid) then if hasProperty(tile.uid, n) or hasProperty(tile.uid, 7) then return false end end end return true end Ou se preferir use a minha lib que já contem essa função. Abraços
  23. Eu havia negativado porque você tirou sarro do membro ao ficar rindo da piada do Beeny mas agora que você veio reclamar aqui (ao invés de me mandar uma PM) você realmente cometeu flood. Se tiver qualquer reclamação mande PM pra não prolongar mais isso.
  24. Chegou moderação pra negativar os flooders... @Topic http://www.tibiaking.com/forum/topic/42420-pedido-quest-que-d%C3%A1-outfit/ Aí esta o seu script de clicar em baú e ganhar outfit. Quando tiver alguma dúvida, procure se já existe algo parecido antes de criar o tópico. E se deseja aprender a linguagem Lua, você pode ver uns tutoriais aqui no TK como o MaX bem disse; Espero que consiga fazer tudo oque está pensando para o seu server , e caso tenha mais algum problema aqui não tenha vergonha de procurar alguém da equipe. Se alguém te incomodar novamente apenas clique em "Relatar para a equipe!" embaixo do comentário dele(a).

Informação Importante

Confirmação de Termo