Ir para conteúdo

Gnius

Membro
  • Registro em

  • Última visita

Tudo que Gnius postou

  1. Galera estou precisando de uma script onde o player clique em x bau e ganhe um pokemon que dura por x tempo apos esse tempo ser terminado o pokemon sumiria.
  2. Agora sim esta perfeito, obrigado Mais sem querer ser chato, teria como por pra aparecer x efeito a cada % usado? Por exemplo: Ele tirou 20% ira aparecer x effect Ele tirou 10% ira aparecer x effect Cada effect para cada porcento
  3. Quase perfeito, mas a vida não esta em %, assim alguns seria prejudicado por ter menas vida. Teria como por em porcento?
  4. Muito bom, mais eu queria que eu colocasse os dano, e não fosse entre 10% a 60% por exemplo Eu gostaria que ele tomasse apenas 10% ou 20% então ele tomaria só um desses dois dano e não um dano entre 10% a 20% Teria como? Mas mesmo assim ja dei rep+
  5. Galera estou com um problema, eu estou com uma script que ela da x porcento de dano ao pisar em cima do piso, gostaria de saber como faço esse dano ficar aleatorio Por exemplo Gostaria que eu conseguisse colocar os dano nas pessoas Por exemplo: Pisou e tirou 50% de vida, pisou e tirou 60%, pisou e tirou 20% No caso acho que seria o math.random mais infelizmente não consegui. Aqui esta o script que estou usando function onStepIn(cid, item, position, fromPosition) local percent = 30 if not isPlayer(cid) then return true end local hp = (percent*getCreatureMaxHealth(cid) doSendMagicEffect(getThingPos(cid),6) doSendAnimatedText(getCreaturePosition(cid), "- "..hp, TEXTCOLOR_LIGHTBLUE) doCreatureAddHealth(cid, -hp) return true end
  6. Olá pessoal do TK, procurei muitos e muitos tópicos e não consegui resolver meu caso. Eu quero que um NPC de ginásio possa batalhar com o player etc Os padrão das maioria dos servidores vem bugado, tentei adicionar as função na source mais não obtive sucesso. Caso alguém consiga me ajudar passando as função da source ou me passando uma script sem erro de ginasio ficarei grato de mais. Erro que da no script do npc [15/08/2018 17:49:23] [Error - Npc interface] [15/08/2018 17:49:23] In a timer event called from: [15/08/2018 17:49:23] datapack/npc/scripts/sabrina.lua:onCreatureSay [15/08/2018 17:49:23] Description: [15/08/2018 17:49:23] datapack/npc/scripts/sabrina.lua:34: attempt to call global 'doSetMonsterGym' (a nil value) [15/08/2018 17:49:23] stack traceback: [15/08/2018 17:49:23] datapack/npc/scripts/sabrina.lua:34: in function <datapack/npc/scripts/sabrina.lua:20>
  7. Olá galera do TK, eu tentei diversas vezes procurar alguma barra de vida para pokebar mais não obtive sucesso, então quem souber, da uma ajuda ai pls No caso quero que apareça uma barra de HP do pokemon na PokeBar REP+ Pra quem ajudar
  8. Olá pessoal, quando eu uso um pokemon pela pokebar, ela remove a addon do pokemon Script function createBallByStatus(cid, status, id) slot = getPlayerSlotItem(cid, 8) if slot.uid == 0 then item = doPlayerAddItem(cid, id) else item = addItemInFreeBag(getPlayerSlotItem(cid, 3).uid, id, 1) end setStatusPokeballByStatusStr(item, status) end function getPokemonByName(cid, pokemon) local arraypoke = {} local container = getPlayerSlotItem(cid, 3).uid local pokeballs = getPokeballsInContainer(container) for i =1, #pokeballs do name = getItemAttribute(pokeballs[i], "poke") if pokemon == name then table.insert(arraypoke, pokeballs[i]) return arraypoke[1] end end return false end function tranfBallInShiny(pokeball) doItemSetAttribute(pokeball, "shiny", "shiny") return true end function getShinyByPokeball(pokeball) local shiny = getItemAttribute(pokeball, "shiny") return shiny == "shiny" and true or false end function getShinyNameByPokeball(pokeball) local shiny = getItemAttribute(pokeball, "shiny") return shiny and "Shiny "..getItemAttribute(pokeball, "poke").."" or getItemAttribute(pokeball, "poke") end function setStatusPokeballByStatusStr(pokeball, status) local attr = string.explode(status, ",") local x = {"poke", "hp", "offense", "defense", "speed", "vitality", "specialattack", "happy", "gender", "hands", "description", "fakedesc", "boost", "ball", "defeated", "shiny", "level"} for i =1, #attr do doItemSetAttribute(pokeball, x[i], attr[i]) end end function copieAllStatusBalls(pokeball) local x = {"poke", "hp", "offense", "defense", "speed", "vitality", "specialattack", "happy", "gender", "hands", "description", "fakedesc", "boost", "ball", "defeated", "shiny", "level"} str = "" sep = "," for i =1, #x do local attr = getItemAttribute(pokeball, x[i]) or 0 local t = attr ..sep str = str..t end return str end function atualizaPokes(cid) local item = getPlayerSlotItem(cid, 8) if item.uid <= 0 then return true end if not getItemAttribute(item.uid, "poke") then return true end for i, x in pairs(fotos) do if string.lower(getItemAttribute(item.uid, "poke")) == string.lower(i) then doTransformItem(getPlayerSlotItem(cid, 7).uid, fotos[i]) if useOTClient then doPlayerSendCancel(cid, '12//,show') end if useKpdoDlls then useOTClient = true useKpdoDlls = true doUpdateMoves(cid) end end end end function doSendPokemon(cid, pokemon) if getPlayerStorageValue(cid, 17000) >= 1 or getPlayerStorageValue(cid, 17001) >= 1 or getPlayerStorageValue(cid, 63215) >= 1 or getPlayerStorageValue(cid, 75846) >= 1 or getPlayerStorageValue(cid, 5700) >= 1 then --alterado v1.9 << return true end if exhaustion.get(cid, 6666) and exhaustion.get(cid, 6666) > 0 then return true end if #getCreatureSummons(cid) > 1 and getPlayerStorageValue(cid, 212124) <= 0 then --alterado v1.6 if getPlayerStorageValue(cid, 637501) == -2 or getPlayerStorageValue(cid, 637501) >= 1 then BackTeam(cid) end end if #getCreatureSummons(cid) > 0 then t = getPlayerSlotItem(cid, 8) local btype = getPokeballType(t.itemid) local effect = pokeballs[btype].effect or 21 doReturnPokemon(cid, getCreatureSummons(cid)[1], t,effect) end t = getPlayerSlotItem(cid, 8) if t.uid ~= 0 then pokeslot = getItemAttribute(t.uid, "poke") if pokeslot == pokemon then t = getPlayerSlotItem(cid, 8) doGoPokemon(cid, t) atualizaPokes(cid) return true end if getPokemonByName(cid, pokemon) then local poke = getPokemonByName(cid, pokemon) local attr = copieAllStatusBalls(t.uid) local id = t.itemid doRemoveItem(t.uid) local attr2 = copieAllStatusBalls(poke) local id2 = getThing(poke).itemid doRemoveItem(getPokemonByName(cid, pokemon)) createBallByStatus(cid, attr2, id2) createBallByStatus(cid, attr, id) t = getPlayerSlotItem(cid, 8) doGoPokemon(cid, t) atualizaPokes(cid) return true end end if getPokemonByName(cid, pokemon) then local id = getThing(getPokemonByName(cid, pokemon)).itemid local attr = copieAllStatusBalls(getPokemonByName(cid, pokemon)) doRemoveItem(getPokemonByName(cid, pokemon)) createBallByStatus(cid, attr, id) t = getPlayerSlotItem(cid, 8) doGoPokemon(cid, t) atualizaPokes(cid) return true end return false end function sendPokeInfo(cid) local activeimg = true local poke = getPlayerSlotItem(cid, 8) local pokeslot = getItemAttribute(poke.uid, "poke") local pokeboost = getItemAttribute(poke.uid, "boost") or 0 local pokehappy = getPlayerStorageValue(getCreatureSummons(cid)[1], 1008) or 1 doPlayerSendCancel(cid, "NewInfo/"..pokeslot.."/"..pokeboost.."/"..pokehappy.."") if activeimg then local img = "ShowPoke/" doPlayerSendCancel(cid, img..pokeslot) end end function sendAudio(cid, audio) local function getSpectatorsFromArea(fromPosition, toPosition, multifloor) local lenght = ((math.max(fromPosition.x, toPosition.x) - math.min(fromPosition.x, toPosition.x)) * 0.5) + 1 local width = ((math.max(fromPosition.y, toPosition.y) - math.min(fromPosition.y, toPosition.y)) * 0.5) + 1 if multifloor == true then local ret = {} for f = math.min(fromPosition.z, toPosition.z), math.max(fromPosition.z, toPosition.z) do local tmp = getSpectators({x = math.min(fromPosition.x, toPosition.x) + lenght, y = math.min(fromPosition.y, toPosition.y) + width, z = f}, lenght, width, false) for k = 1, #tmp do table.insert(ret, tmp[k]) end end return ret end return getSpectators({x = math.min(fromPosition.x, toPosition.x) + lenght, y = math.min(fromPosition.y, toPosition.y) + width, z = fromPosition.z}, lenght, width, false) end local pos = getThingPos(cid) local pos = getThingPos(cid) local t = 5 local pos1 = {x = pos.x-t, y = pos.y-t, z = pos.z} local pos2 = {x = pos.x+t, y = pos.y+t, z = pos.z} for _, pid in pairs(getSpectatorsFromArea(pos1, pos2, true)) do if isPlayer(pid) then doPlayerSendCancel(pid, "Audio "..audio.."") end end end function doShowSelectChar(cid) doPlayerSendCancel(cid, "ShowChar") end function doCloseSelectChar(cid) doPlayerSendCancel(cid, "CloseChar") end function doShowLookPlayer(cid, target, msg) doPlayerSendCancel(cid, "ShowLook/"..getPlayerStorageValue(target, 21121).."/"..msg.."") end function doCloseInfoPoke(cid) local activeimg = true doPlayerSendCancel(cid, "InfoClosed") if activeimg then local close = "ClosePoke" doPlayerSendCancel(cid, close) end end function sendAllPokemonsBarPoke(cid) local container = getPlayerSlotItem(cid, 3).uid local pokes = "Pokebar" local t = getPlayerSlotItem(cid, 8) if t.uid ~= 0 then pokeslot = getItemAttribute(t.uid, "poke") pokes = pokes.."/"..pokeslot.."" end local pokeballs = getPokeballsInContainer(container) for i =1, #pokeballs do pokemons = getItemAttribute(pokeballs[i], "poke") pokes = pokes.."/"..pokemons.."" end doPlayerSendCancel(cid, pokes) end
  9. Olá pessoa do TK, estou com um problema, tentei arrumar porém não obtive sucesso. Eu uso o sistema de PokeBar(Barra de pokemons) porém ao usar o pokemon pela pokebar e trocar de pokemon pela pokebar a addon some. Por exemplo: Usei um alakazam com addon pela pokebar, ai logo em seguida uso um charizard também pela pokebar ai a addon do alakazam some. Script do PokeBar Data/lib/some functions.lua function sendAllPokemonsBarPoke(cid) local container = getPlayerSlotItem(cid, 3).uid local pokes = "Pokebar" local t = getPlayerSlotItem(cid, 8) if t.uid ~= 0 then pokeslot = getItemAttribute(t.uid, "poke") pokes = pokes.."/"..pokeslot.."" end local pokeballs = getPokeballsInContainer(container) for i =1, #pokeballs do pokemons = getItemAttribute(pokeballs[i], "poke") pokes = pokes.."/"..pokemons.."" end doPlayerSendCancel(cid, pokes) end Data/talkactions.lua function onSay(cid, words, param) local cfg = { exhausted = 1, -- Time you are exhausted in seconds. storage = 5858, -- Storage used for "exhaust." exp = 2.0 -- this means 2x more experence then default } if(getPlayerStorageValue(cid, cfg.storage) > os.time() and getPlayerStorageValue(cid, cfg.storage) < 100+os.time()) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_RED, "Voce tem que esperar " .. getPlayerStorageValue(cid, cfg.storage) - os.time() .. ' segundos' .. ((getPlayerStorageValue(cid, cfg.storage) - os.time()) == 1 and "" or "s") .. " para usar seu pokemon.") else if doSendPokemon(cid, param) then sendAllPokemonsBarPoke(cid) setPlayerStorageValue(cid, cfg.storage, os.time() + cfg.exhausted) return true end doPlayerSendTextMessage(cid, 27, "Sua barra esta desatualizada") sendAllPokemonsBarPoke(cid) end return true end
  10. Olá pessoa do TK, estou com um problema, tentei arrumar porém não obtive sucesso. Eu uso o sistema de PokeBar(Barra de pokemons) porém ao usar o pokemon pela pokebar e trocar de pokemon pela pokebar a addon some. Por exemplo: Usei um alakazam com addon pela pokebar, ai logo em seguida uso um charizard também pela pokebar ai a addon do alakazam some. Script do PokeBar Data/lib/some functions.lua function sendAllPokemonsBarPoke(cid) local container = getPlayerSlotItem(cid, 3).uid local pokes = "Pokebar" local t = getPlayerSlotItem(cid, 8) if t.uid ~= 0 then pokeslot = getItemAttribute(t.uid, "poke") pokes = pokes.."/"..pokeslot.."" end local pokeballs = getPokeballsInContainer(container) for i =1, #pokeballs do pokemons = getItemAttribute(pokeballs[i], "poke") pokes = pokes.."/"..pokemons.."" end doPlayerSendCancel(cid, pokes) end Data/talkactions.lua function onSay(cid, words, param) local cfg = { exhausted = 1, -- Time you are exhausted in seconds. storage = 5858, -- Storage used for "exhaust." exp = 2.0 -- this means 2x more experence then default } if(getPlayerStorageValue(cid, cfg.storage) > os.time() and getPlayerStorageValue(cid, cfg.storage) < 100+os.time()) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_RED, "Voce tem que esperar " .. getPlayerStorageValue(cid, cfg.storage) - os.time() .. ' segundos' .. ((getPlayerStorageValue(cid, cfg.storage) - os.time()) == 1 and "" or "s") .. " para usar seu pokemon.") else if doSendPokemon(cid, param) then sendAllPokemonsBarPoke(cid) setPlayerStorageValue(cid, cfg.storage, os.time() + cfg.exhausted) return true end doPlayerSendTextMessage(cid, 27, "Sua barra esta desatualizada") sendAllPokemonsBarPoke(cid) end return true end Você tem alguma imagem que possa auxiliar no problema? Se sim, coloque-a aqui.
  11. Gnius postou uma resposta no tópico em Suporte OTServer Derivados
    Não testei ainda local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_HEALING) setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_MAGIC_BLUE) setCombatParam(combat, COMBAT_PARAM_TARGETCASTERORTOPMOST, 1) setCombatParam(combat, COMBAT_PARAM_AGGRESSIVE, 0) setCombatParam(combat, COMBAT_PARAM_DISPEL, CONDITION_PARALYZE) --setCombatFormula(combat, COMBAT_FORMULA_LEVELMAGIC, 1.3, -30, 1.7, 0) function onGetFormulaValues(cid, level, maglevel) min = (level * 4 + maglevel * 5) * 2.3 - 25 max = (level * 5 + maglevel * 6) * 2.9 if min < 550 then min = 750 end return min, max end doCreatureSay( "Frase aqui", TALKTYPE_ORANGE_1) setCombatCallback(combat, CALLBACK_PARAM_LEVELMAGICVALUE, "onGetFormulaValues") function onCastSpell(cid, var) return doCombat(cid, combat, var) end
  12. Qual seria os ID dos items que éra pra ir?
  13. Estranho. Vai em data/movements/scripts/swimming.lua Ve se as bordas estão certo
  14. Eu não sei mais oque possa ser,essas scripts funcionou aqui
  15. Amigo nãoa adianta colocar só nas tags.xml. Tem que colocar dentro do arquivo.lua Data/movements/surf.lua
  16. É só colocar as bordas no movements,xml assim os pokemons não irão passar por cima. Da REP+ pra ajudar.
  17. É só desativar o block das bordas,fazendo com que ela fosse um piso normal. É só ir no objector builder procurar as bordas e tirar o block pra poder passar por cima,depois faz o mesmo no item editor.
  18. Gnius postou uma resposta no tópico em Suporte Tibia OTServer
    Tente
  19. Seu sistema de surf deve ser aqueles que só ao andar na borda da água ja surfa. Tens que colocar as bordas pelo objector builder e pelo items.otb fazendo com que de pra passar por cimas dela. Depois é só entrar no serve e andar por cima da agua e pronto.
  20. Certamente sua sprite de effects está alterada. Vá no seu client Abra o objector builder,da replace nessa effects colocando a effects de quando da fail.
  21. Sempre que for criar um tópico pedindo ajuda sobre alguma script sempre poste aqui para podermos ver o erro.

Informação Importante

Confirmação de Termo