Ir para conteúdo

gabriel28

Membro
  • Registro em

  • Última visita

Tudo que gabriel28 postou

  1. Porque provavelmente o nome pra magias que botaram na source, é diferente das do seu server. Ex: A magia que você está usando é CONST_ME_EXPLOSAO, mas nas source não tem nenhuma magia registrada com esse nome (EXPLOSAO_. Talvez seja isso que esteja acontecendo.
  2. local level_difference = x --Diferença de level. function onTarget(cid, target) if isPlayer(cid) and isPlayer(target) then local level = math.abs(getPlayerLevel(cid) - getPlayerLevel(target)) return level < level_difference end return true end function onStatsChange(cid, attacker, type, combat, value) if isPlayer(cid) and isPlayer(attacker) and type == STATSCHANGE_HEALTHLOSS then local level = math.abs(getPlayerLevel(cid) - getPlayerLevel(attacker)) return level < level_difference end return true end
  3. local config = { day = { {"Sunday", "12:00"}, {"Thursday", "00:11"}, -- só copiar uma linha e add mais dias. se quiser só um dia deixe só a primeia linha }, pos = {x=151, y=56, z=7}, -- Posição aonde sera criado o teleport topos = {x=284, y=516, z=5}, -- Posição pra onde o teleport ira levar o player time = 5, -- tempo que o teleport ira sumir em minutos msg_open = "Teste.", -- mensagem ao abrir o teleport msg_close = "Event acabou." -- mensagem ao fechar o teleport }, local function DelTp() local t = getTileItemById(config.pos, 1387) if t then doRemoveItem(t.uid, 1) doSendMagicEffect(config.pos, CONST_ME_POFF) end end function onTimer() local d, h = os.date("%A"), os.date("%H:%M") for a, b in pairs(config.day) do if d == b[1] then if h == b[2] then doCreateTeleport(1387, config.topos, config.pos) doBroadcastMessage(config.msg_open) addEvent(DelTp, config.time *60 * 1000) addEvent(doBroadcastMessage, config.time *60 * 1000, config.msg_close) break end end end return true end
  4. Vai no spell.xml e adiciona isso na magia que você quer: maglv="X". No 'X' você poem o valor de ml que quiser.
  5. De nada Se der, poem como melhor resposta pra fecharem o tópico.
  6. function onGetFormulaValues(cid, level, skill, attack, factor) min = -(level * 0.5 + skill * 0.5 + attack * 2) * 1 max = -(level * 0.5 + skill * 0.5 + attack * 3) * 1 return min, max end Testa essa formula do jeito que está, pra ver se realmente o ataque da arma, que o player está usando, está contando. Testa o mesmo char com uma arma attack 10 ou menor, e de novo com uma de attack 40 ou maior. Se o valor do attack da arma estiver contando, você vai ver uma diferença grande no dano da skill, dai vai ver que está funcionando certinho, dai você altera pros valores de sua preferência. Espero ter sido claro. kkkkk
  7. Você quer baseado no ataque de uma arma específica ou pode ser com base na arma que o player estiver usando?
  8. Como assim? Fala de roupas que o player pode mudar a cor delas?
  9. Ainda não testei, mas tem como por só pra knight usar?
  10. Na verdade o código é esse: E está com esse erro: input:14: 'end' expected (to close 'function' at line 2) near 'else' O que mandei antes foi uma tentativa minha fracassada de corrigir o script e acrescentar um limite de vocações. Gostaria que alguém experiente o fizesse por mim, corrigir esse erro e por o limite de vocação, e verificar se também está com o limite de uso de apenas umas vez por dia.
  11. Valeu, cara. Achei que essa função era apenas pra itens. Muito obrigado mesmo.
  12. Estou com um código que peguei em outro fórum, que é bem legal, que pode dar uma dinâmica diferente ao jogo. O código consiste em permitir que no vocations.xml, acrescente-se a cada vocação, um aumento ou diminuição da proteção contra determinado elemento a escolha do dono do server. Ex: <vocation id="1" name="Sorcerer" description="a sorcerer" needpremium="0" gaincap="10" gainhp="5" gainmana="30" gainhpticks="5" gainhpamount="4" gainmanaticks="4" gainmanaamount="8" manamultiplier="1.1" attackspeed="1500" soulmax="100" gainsoulticks="120" fromvoc="1" energyDamage="80" fireDamage="90"> No exemplo, a vocação sorcerer está recebendo apenas 80% de dano de energy e 90% de dano de fire. Quando não acrescentados no xml, os outros danos ficam todos normais. Enfim, vamos ao código. < Quem puder ajudar, ficarei muito agradecido. Eu vi no outro fórum, falando que quando era dado utamo vita, o player voltava a sofrer dano normal, sem o acréscimo nem decréscimo alterado no xml. Então, se puderem ajudar nisso também, seria uma ótima
  13. Deu esse erro: ..../sumon.lua:onCastSpell Description: ..../sumon.lua:21: bad argument #1 to 'lower' <string expected, got nil> stack traceback: [C]: in function 'lower' ....sumon.lua:21: in fuction <data/spells/scripts/summon/sumon.lua:13>
  14. Como o título já diz, gostaria que alguém transformasse esse talkaction em uma spell. Segue o script: local storage = 79845 --storage para o exhaustion local tempo = 5 --em segundos local monsters = { [1] = {summons = {["rat"] = {level = 10, mana = 20}, ["dragon"] = {level = 100, mana = 200} }, maxSummons = 2 }, [2] = {summons = {["rat"] = {level = 10, mana = 20}, ["dragon"] = {level = 100, mana = 200} }, maxSummons = 4 }, [5] = {summons = {["rat"] = {level = 10, mana = 20}, ["dragon"] = {level = 100, mana = 200} }, maxSummons = 4 }, [6] = {summons = {["rat"] = {level = 10, mana = 20}, ["dragon"] = {level = 100, mana = 200} }, maxSummons = 6 }, [9] = {summons = {["rat"] = {level = 10, mana = 20}, ["dragon"] = {level = 100, mana = 200} }, maxSummons = 6 }, [10] = {summons = {["rat"] = {level = 10, mana = 20}, ["dragon"] = {level = 100, mana = 200} }, maxSummons = 8 }, } function onSay(cid, words, param, channel) if exhaustion.check(cid, storage) then doPlayerSendTextMessage(cid, 22, "You are exhausted.") return true end --Player Status local playerpos = getPlayerPosition(cid) param = string.lower(param) local loop = 0 function checkSummon() for k, v in pairs(monsters[getPlayerVocation(cid)].summons) do if param == k then return true end end return false end if not checkSummon() then doPlayerSendCancel(cid, "You can't summon this monster.") return true end for k, v in pairs(monsters[getPlayerVocation(cid)].summons) do if (param == k) then if (monsters[getPlayerVocation(cid)]) and #getCreatureSummons(cid) >= monsters[getPlayerVocation(cid)].maxSummons then return doPlayerSendCancel(cid, "Você já tem sumons demais.") else --Summon if getPlayerLevel(cid) < v.level then return doPlayerSendCancel(cid, "Você não possui level suficiente.") elseif getCreatureMana(cid) < v.mana then return doPlayerSendCancel(cid, "Você não possui mana suficiente.") end doConvinceCreature(cid, doCreateMonster(param, playerpos)) doPlayerAddMana(cid, -v.mana, false) exhaustion.set(cid, storage, tempo) doSendMagicEffect(playerpos, 2) return true end end end return true end
  15. Eu estava tentando por um limite de vocação em um script que acrescenta bônus de hp, só que sempre da erro, e meus conhecimentos em lua beiram a nada. Alguém pode dar uma luz pondo esse limite de vocação, e ver se o limite de uso por dia está certo? Segue o script: local storage = 80777 local vocs = {9,10,11,12} function onUse(cid, item, frompos, item2, topos) local value = getCreatureMaxHealth(cid) / 10 if getPlayerLevel(cid) >= 8 and getPlayerVocation(cid, vocs) then setCreatureMaxHealth(cid, math.floor(getCreatureMaxHealth(cid)+ value)) doCreatureAddHealth(cid, getCreatureMaxHealth(cid)) doPlayerSendTextMessage(cid, 22, "You add 10% hp to you health!") doCreatureSetStorage(cid, storage, math.max(0, getCreatureStorage(cid, storage)) + 1) doSendMagicEffect(getCreaturePosition(cid), 30) doRemoveItem(item.uid, 1) end doPlayerSendTextMessage(cid, 27, "You have received "..it[2].." "..getItemNameById(it[1])..". You can take your reward in "..time.." minutes.") setPlayerStorageValue(cid, storage, os.time() + time * 60) else return doPlayerSendCancel(cid, "You have already received your reward for today.") elseif getPlayerVocation(cid, vocs) = false return doPlayerSendCancel(cid, "Your vocation don't use it.") return true end Agradeço desde já.
  16. Não entendo muito disso, mas se seu server não tem nenhum sistema que precisou de alteração nas sources, podes pegar outra distro compatível com teu servidor, que tenha o que você quer, e executar teu server por ela. Fiz isso no server que estou trabalhando. Eu não tinhas as sources do server, mas ele não usava nenhuma alteração nela, então, baixei as sources de uma distro compatível, compilei com o que eu queria e rodei meu server com ela.
  17. gabriel28 postou uma resposta no tópico em Suporte Tibia OTServer
    Vai na pasta data/XML, abre o arquivo stage.xml e modifica.
  18. Então eu realmente não sei como ajudar. =/
  19. Fui ver a foto que você mandou, e só percebi agora que o diretório onde está sendo buscado esses dois scripts, está como: data/npc/scripts/data/npc/scripts. Tem alguma coisa que está fazendo com que esse script seja buscado nesse diretório bugado.
  20. Pela foto, ele não está encontrando um arquivo salvo com o nome grizzlyadams.lua, e não Grizzly Adams.lua. Salve um arquivo com esse nome: grizzlyadams.lua, e veja se o erro persiste. Ele também não está encontrando um arquivo chamado default.lua. Você pode pegar o script que o colega passou e salva-lo com esse nome.

Informação Importante

Confirmação de Termo