Jump to content
Close

Estronda

Member
  • Content Count

    11
  • Joined

  • Last visited

About Estronda

  • Rank
    Baker

Profile Information

  • Gender
    Masculino
  • Localization
    i'dont have
  • I am
    Tibiano
  • My character
    i'dont have
  • Favorite OTServ
    i'dont have
  • Bot preferred
    i'dont have

Recent Profile Visitors

307 profile views
  1. Tem como colocar para barrier mudar de outfit depedendo da Vida? Tipo, 75% de life muda o outfit para 1483. 50% ela muda para 1482.. etc Ou adicionar novos outfit, pq só consigo adicionar 2. Tô fazendo uma Barrier com os seguinte outfit Id: 1481, 1482, 1483, 1484 e 1485
  2. Desculpe reviver o tópico, mas tem um problema aí. Quando eu coloco ' /i 2150 ' o script bloqueia normalmente, mas se eu usar ' /i small amethyst ' ele acaba criando o item. Tem como arrumar isso ?
  3. Uma perguntinha aqui rapidex. O Script faz os Barrier automático ? Se tiver, onde ? Se for no Remere, não da para colocar. " http://prntscr.com/6m1awz", pq ?
  4. Ou manow, por enquanto não achei nenhum erro, mas seguinte. Quando junta uma Guild e ataca a Gran Tower, apenas 1 ganha a aura e o resto da Guild ainda pode mata a Tower. E se outro player sem Guild ou de outra mata a Tower, ele ganha a aura, mas o player antigo que mato ela, ainda continua com a Aura. EDIT : Os meu char que estão na guild e mato a Tower, os 2 ficarão com a aura, mas apenas 1 fico com o efeito das shurikens e trocando o outfist. O que fica sem o efeito na hr do evento, tem que deslogar para conseguir o efeito. EDIT : /\ Tirando essa parte aqui, Vlw manow, me ajudo bastante, funcionando normalmente.
  5. Eu baixei aqui uma Distro junto com seus lib, lua e etc. Barrier não está dando mas nenhum erro, Vlw. Mas agora acho que tem problemas básicos. O problema e que o evento não finaliza, e não tem como testa se o evento está funcionando. Existe alguma forma de finalizar o evento para que eu possa testar ?
  6. Valeu pela lib, agora meu chars com Guild podem entrar. O problema e que eu sou novato em Ot, tem como me explicar como funciona essa parte de soucer e datapack e como trocalas ?
  7. Infelizmente não deu certo trocar isInArea por isInRange. [27/03/2015 09:23:55] [Error - Npc interface] [27/03/2015 09:23:55] data/npc/scripts/Melkrapo.lua:onCreatureSay [27/03/2015 09:23:55] Description: [27/03/2015 09:23:55] data/lib/032-position.lua:2: attempt to index global 'position' (a nil value) [27/03/2015 09:23:55] stack traceback: [27/03/2015 09:23:55] data/lib/032-position.lua:2: in function 'isInRange' [27/03/2015 09:23:55] data/lib/046-Gran Tower.lua:119: in function 'getGranTowerGuild' [27/03/2015 09:23:55] data/npc/scripts/Melkrapo.lua:22: in function 'callback' [27/03/2015 09:23:55] data/npc/lib/npcsystem/npchandler.lua:383: in function 'onCreatureSay' [27/03/2015 09:23:55] data/npc/scripts/Melkrapo.lua:8: in function <data/npc/scripts/Melkrapo.lua:8> E do Barrier também não funciono e não achei a função parecida. [27/03/2015 09:25:59] [Error - CreatureScript Interface] [27/03/2015 09:25:59] data/creaturescripts/scripts/Barrier.lua:onStatsChange [27/03/2015 09:25:59] Description: [27/03/2015 09:25:59] data/creaturescripts/scripts/Barrier.lua:4: attempt to call global 'getPlayerHealth' (a nil value) [27/03/2015 09:25:59] stack traceback: [27/03/2015 09:25:59] data/creaturescripts/scripts/Barrier.lua:4: in function <data/creaturescripts/scripts/Barrier.lua:1> E aqui está meu 032-position. function isInRange(pos, fromPosition, toPosition) return (position.x >= fromPosition.x and position.y >= fromPosition.y and position.z >= fromPosition.z and position.x <= toPosition.x and position.y <= toPosition.y and position.z <= toPosition.z) end function getDistanceBetween(firstPosition, secondPosition) local x, y = math.abs(firstPosition.x - secondPosition.x), math.abs(firstPosition.y - secondPosition.y) local diff = math.max(x, y) if(firstPosition.z ~= secondPosition.z) then diff = diff + 9 + 6 end return diff end function getDirectionTo(pos1, pos2) local dir = NORTH if(pos1.x > pos2.x) then dir = WEST if(pos1.y > pos2.y) then dir = NORTHWEST elseif(pos1.y < pos2.y) then dir = SOUTHWEST end elseif(pos1.x < pos2.x) then dir = EAST if(pos1.y > pos2.y) then dir = NORTHEAST elseif(pos1.y < pos2.y) then dir = SOUTHEAST end else if(pos1.y > pos2.y) then dir = NORTH elseif(pos1.y < pos2.y) then dir = SOUTH end end return dir end function getCreatureLookPosition(cid) return getPosByDir(getThingPos(cid), getCreatureLookDirection(cid)) end function getPosByDir(fromPosition, direction, size) local n = size or 1 local pos = fromPosition if(direction == NORTH) then pos.y = pos.y - n elseif(direction == SOUTH) then pos.y = pos.y + n elseif(direction == WEST) then pos.x = pos.x - n elseif(direction == EAST) then pos.x = pos.x + n elseif(direction == NORTHWEST) then pos.y = pos.y - n pos.x = pos.x - n elseif(direction == NORTHEAST) then pos.y = pos.y - n pos.x = pos.x + n elseif(direction == SOUTHWEST) then pos.y = pos.y + n pos.x = pos.x - n elseif(direction == SOUTHEAST) then pos.y = pos.y + n pos.x = pos.x + n end return pos end function doComparePositions(pos, posEx) return pos.x == posEx.x and pos.y == posEx.y and pos.z == posEx.z end function getArea(pos, rangeX, rangeY) local t = {} for i = (pos.x - rangeX), (pos.x + rangeX) do for j = (pos.y - rangeY), (pos.y + rangeY) do table.insert(t, {x = i, y = j, z = pos.z}) end end return t end
  8. Provável que eu coloquei tudo certo, mas o meu ainda está dando erros. Eu estou usando New Slayer Yurots 8.6 Quando meu personagem tem Guild, da esse erro aqui. [26/03/2015 17:04:11] [Error - Npc interface] [26/03/2015 17:04:11] data/npc/scripts/Melkrapo.lua:onCreatureSay [26/03/2015 17:04:11] Description: [26/03/2015 17:04:12] data/lib/032-position.lua:2: attempt to index global 'position' (a nil value) [26/03/2015 17:04:12] stack traceback: [26/03/2015 17:04:12] data/lib/032-position.lua:2: in function 'isInArea' [26/03/2015 17:04:12] data/lib/046-Gran Tower.lua:119: in function 'getGranTowerGuild' [26/03/2015 17:04:12] data/npc/scripts/Melkrapo.lua:22: in function 'callback' [26/03/2015 17:04:12] data/npc/lib/npcsystem/npchandler.lua:383: in function 'onCreatureSay' [26/03/2015 17:04:12] data/npc/scripts/Melkrapo.lua:8: in function <data/npc/scripts/Melkrapo.lua:8> Quando eu ataco uma Barrier, da esse erro. [26/03/2015 17:05:40] [Error - CreatureScript Interface] [26/03/2015 17:05:40] data/creaturescripts/scripts/Barrier.lua:onStatsChange [26/03/2015 17:05:40] Description: [26/03/2015 17:05:40] data/creaturescripts/scripts/Barrier.lua:4: attempt to call global 'getCreatureHealth' (a nil value) [26/03/2015 17:05:40] stack traceback: [26/03/2015 17:05:40] data/creaturescripts/scripts/Barrier.lua:4: in function <data/creaturescripts/scripts/Barrier.lua:1> Ele também não está sumonando o Gran Tower é o evento nunca acaba, esperei por 30 min mas o evento não fecha, já até tentei reiniciar o server. Vou postar meu lib aqui para vocês verem se tem algum erro. 046-Gran Tower.lua GRANTOWER = {} GRANTOWER.PREPARETIME = 2 -- Tempo até liberar a entrada para o evento. GRANTOWER.CLOSETIME = 3 -- Tempo em minutos de duração do evento. GRANTOWER.LEVEL = 80 -- Mínimo de level para participar do evento. GRANTOWER.MAXGUILD = 7 -- Máximo de players por guild dentro do evento. GRANTOWER.DATES = {{"Monday", "19:00"}, {"Tuesday", "19:00"}, {"Saturday", "19:00"}, {"Sunday", "22:30"}} -- Dias e horários que ocorrem o evento. GRANTOWER.ENTER = {x = 312, y = 785, z = 7} -- A posição da entrada do castelo, aonde os players são mandados pelo NPC. GRANTOWER.TOWERPOSITION = {x = 312, y = 760, z = 6} -- Posição aonde fica o Gran Tower (o monstro). GRANTOWER.AREA = {{x = 287, y = 735, z = 7}, {x = 319, y = 789, z = 6}} --[[A primeira posição é o canto superior esquerdo do mapa do castelo, e a segunda é o canto direito inferior OBSERVAÇÃO IMPORTANTE: O script foi modificado por mim (xWhiteWolf) para aguentar diferentes andares, apenas coloque a posição dos cantos e o primeiro até o ultimo andar que ele irá remover todo mundo em todos os andares quando alguém matar a gran tower, pra remover isso apenas coloque o z do mesmo andar da gran tower e apenas os membros que estão nesse andar serão teleportados, contudo isso pode ocasionar que pessoas consigam ficar dentro do castelo mesmo após o evento ter sido encerrado!]] GRANTOWER.AURAPERCENT = 0.8 --- porcentagem do dano que irá levar (0.8 = 80%) significa que ele ignora 20% de dano! (adicionado por xWhiteWolf) GRANTOWER.SHURIAURA = true --- colocar true/false se quiser ativar/desativar a aura de shurikens pro player que tem a gran aura. (adicionado por xWhiteWolf) --// Favor não mexer daqui para baixo se não souber oque está fazendo!!! GRANTOWER.EMPTYWINNER = "# [Nobody] #" GRANTOWER.PREPARE = 201405051746 GRANTOWER.RUNNING = 201405051747 GRANTOWER.AURA = 201405052018 GRANTOWER.DESTROYCOUNT = 201405051800 GRANTOWER.FINALWINNER = 201405051805 GRANTOWER.SAVELASTWINNER = 201405061333 GRANTOWER.SAVEWINNERGUILDID = 201405061403 function doPrepareGranTower() if ((getGlobalStorageValue(GRANTOWER.PREPARE) ~= 1) and (getGlobalStorageValue(GRANTOWER.RUNNING) ~= 1)) then setGlobalStorageValue(GRANTOWER.PREPARE, 1) addEvent(doStartGranTower, GRANTOWER.PREPARETIME * 60 * 1000) addEvent(doBroadcastMessage, ((GRANTOWER.PREPARETIME / 2) * 60 * 1000), "[Gran Tower] Missing "..tostring((GRANTOWER.PREPARETIME / 2)).." minutes NPC Melkrapo will release the entrance to the event, get ready!") doBroadcastMessage("[Gran Tower] The event will be started in "..tostring(GRANTOWER.PREPARETIME).." minutes, please prepare your weapons and your team.") else print("[Erro] Gran Tower tentou ser iniciado ja ligado, favor verificar o codigo. (Roksas).") end return true end function doStartGranTower() if ((getGlobalStorageValue(GRANTOWER.PREPARE) ~= -1) and (getGlobalStorageValue(GRANTOWER.RUNNING) ~= 1)) then setGlobalStorageValue(GRANTOWER.RUNNING, 1) setGlobalStorageValue(GRANTOWER.PREPARE, -1) setGlobalStorageValue(GRANTOWER.SAVEWINNERGUILDID, -1) setGlobalStorageValue(GRANTOWER.FINALWINNER, GRANTOWER.EMPTYWINNER) setGlobalStorageValue(GRANTOWER.SAVELASTWINNER, GRANTOWER.EMPTYWINNER) setGlobalStorageValue(GRANTOWER.DESTROYCOUNT, 0) doCreateMonster("Gran Tower", GRANTOWER.TOWERPOSITION) addEvent(doBroadcastMessage, ((GRANTOWER.CLOSETIME - 1) * 60 * 1000), "[Gran Tower] The event will be closed in one minute. Hurry up!") addEvent(doCloseGranTower, GRANTOWER.CLOSETIME * 60 * 1000) doBroadcastMessage("[Gran Tower] Open event! Run to destroy the Gran Tower.") else print("[Erro] Gran Tower tentou ser iniciado já ligado, favor verificar o código.") end return true end function doCloseGranTower() if ((getGlobalStorageValue(GRANTOWER.PREPARE) ~= 1) and (getGlobalStorageValue(GRANTOWER.RUNNING) ~= -1)) then for index, creature in ipairs(getGranTowerPlayers()) do doTeleportThing(creature, getTownTemplePosition(getPlayerTown(creature))) end for index, creature in ipairs(getPlayersOnline()) do if (getPlayerGuildId(creature) >= 1) then if getPlayerGuildId(creature) ~= getGlobalStorageValue(GRANTOWER.SAVEWINNERGUILDID) then setPlayerStorageValue(creature, GRANTOWER.AURA, -1) end end end setGlobalStorageValue(GRANTOWER.RUNNING, -1) if (getCreatureByName("Gran Tower")) then doRemoveCreature(getCreatureByName("Gran Tower"), true) end local TMP_WINNER = getGlobalStorageValue(GRANTOWER.FINALWINNER) doBroadcastMessage("[Gran Tower] The event was completed with "..tostring(getGlobalStorageValue(GRANTOWER.DESTROYCOUNT)).." wrecks to Gran Tower, the final winner was "..(TMP_WINNER)..".") setGlobalStorageValue(GRANTOWER.DESTROYCOUNT, -1) setGlobalStorageValue(GRANTOWER.SAVELASTWINNER, TMP_WINNER) setGlobalStorageValue(GRANTOWER.FINALWINNER, -1) local TMP_WINNER = nil end return true end function getGranTowerPlayers() -- xWhiteWolf local players = {} local andares = math.abs(GRANTOWER.AREA[1].z - GRANTOWER.AREA[2].z) for index, creature in ipairs(getPlayersOnline()) do local z = 0 local pos1 = {x = GRANTOWER.AREA[1].x, y = GRANTOWER.AREA[1].y, z = GRANTOWER.AREA[1].z} local pos2 = {x = GRANTOWER.AREA[2].x, y = GRANTOWER.AREA[2].y, z = GRANTOWER.AREA[2].z} for i = 0, andares do z = z or 0 pos1.z = pos1.z > pos2.z and pos2.z + z or pos1.z + z pos2.z = pos1.z z = 1 if isInArea(getThingPos(creature), pos1, pos2) then table.insert(players, creature) end end end return players end function getGranTowerGuild(guild_id) -- xWhiteWolf local players = {} local andares = math.abs(GRANTOWER.AREA[1].z - GRANTOWER.AREA[2].z) for index, creature in ipairs(getPlayersOnline()) do local z = 0 local pos1 = {x = GRANTOWER.AREA[1].x, y = GRANTOWER.AREA[1].y, z = GRANTOWER.AREA[1].z} local pos2 = {x = GRANTOWER.AREA[2].x, y = GRANTOWER.AREA[2].y, z = GRANTOWER.AREA[2].z} for i = 0, andares do z = z or 0 pos1.z = pos1.z > pos2.z and pos2.z + z or pos1.z + z pos2.z = pos1.z z = 1 if isInArea(getThingPos(creature), pos1, pos2) then if (getPlayerGuildId(creature) == guild_id) then table.insert(players, creature) end end end end return players end -- // Gran Aura \/ function newColor(n) local n = tonumber(n) or 0 local n = n + 19 return tonumber(n) or 0 end function newColor(n) local n = tonumber(n) or 132 local n = n - 19 return tonumber(n) or 132 end -- comentario: se a cor for preta o addon vai para branco sendo que o certo é diminuir 19.. local events = {} function changeOutfit(uid) -- arrumado por xWhiteWolf e adicionado a opção da Shuri local sec = 0.5 local temp = getCreatureOutfit(uid) if (type(temp) == "number") then return true end if getGlobalStorageValue(GRANTOWER.SAVELASTWINNER) ~= getCreatureName(uid) then if getGlobalStorageValue(GRANTOWER.SAVEWINNERGUILDID) ~= getPlayerGuildId(uid) then return true end end if GRANTOWER.SHURIAURA then local effectPositions = getPositionsByDirection(uid) doSendDistanceShoot(effectPositions[math.random(#effectPositions)], effectPositions[math.random(#effectPositions)], 18) doSendDistanceShoot(effectPositions[math.random(#effectPositions)], effectPositions[math.random(#effectPositions)], 18) end local outfit = { lookType = temp.lookType, lookHead = newColor(temp.lookHead), lookBody = newColor(temp.lookBody), lookLegs = newColor(temp.lookLegs), lookFeet = newColor(temp.lookFeet), lookAddons = getCreatureOutfit(uid).lookAddons, } doSetCreatureOutfit(uid, outfit, sec) local event = addEvent(function() if isCreature(uid) then changeOutfit(uid) end end, 3.0 * sec * 450) events[uid] = event return true end
  9. Simples, vai em data/spells/spells.lua , substitua sua tag antiga por essa. <instant name="Flames Wave" words="Flames Wave" lvl="1" mana="25" direction="1" exhaustion="2000" needlearn="0" event="script" value="attack/hells core.lua"> Espero ter ajudado.
  10. Ot : Subwat Versão : 8.6 Distro : Tfs Eae Galera do TibiaKing ! Gostaria que vocês me ajudassem, eu queria que minha sd só poderia ser usada a parti de 250 resets. Já tem umas tags ae de resets, mas essa não funciona, se puder editar para mim eu agradeço. Runa2.lua local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_FIREDAMAGE) setCombatParam(combat, COMBAT_PARAM_EFFECT, 26) setCombatParam(combat, COMBAT_PARAM_DISTANCEEFFECT, 3) setCombatFormula(combat, COMBAT_FORMULA_LEVELMAGIC, -6500, 0, -7300, 0) local condition = createConditionObject(CONDITION_PARALYZE) setConditionParam(condition, CONDITION_PARAM_TICKS, 20000) setConditionFormula(condition, -0.9, 0, -0.9, 0) setCombatCondition(combat, condition) function onCastSpell(cid, var) local resets = 100 if getPlayerReset(cid) < resets then doPlayerSendCancel(cid, "Você precisa ter "..resets.." resets para usar essa runa.") return false end return doCombat(cid, combat, var) end Eu não tenho o script de tp, mas gostaria de 1, se puderem fação para min..

Open Tibia Server

Quer aprender a criar seu próprio servidor de Tibia? Então está no lugar certo, aqui você encontrará milhares de tutorias, scripts, códigos, mapas e utilitários para que você possa fazer o seu próprio servidor de Tibia começando do zero.

Redes Sociais

Anuncie no Tibia King

Precisa de mais visibilidade em seus projetos? Quer fazer um plano publicitário para o seu servidor? Anuncie no Tibia King e faça sua divulgação, possuímos centenas de acessos simultâneos e milhares diários, com certeza será a sua solução!

×
×
  • Create New...