Ir para conteúdo
Close

Conheça já nossa seção de classificados, faça já gratuitamente o seu anuncio ou apenas procure por produtos relacionados ao OTServ! Acesse através do nosso menu ou clique aqui e confira já!

lordzetros

Membro
  • Total de itens

    331
  • Registro em

  • Última visita

  • Dias Ganhos

    18

lordzetros venceu a última vez em Novembro 11

lordzetros teve o conteúdo mais curtido!

3 Seguidores

Sobre lordzetros

  • Rank
    Não derivo e nem integro.
  • Data de Nascimento 14/11/1998

Informação de Perfil

  • Genero
    Masculino
  • Localização
    Ceará
  • Eu sou
    Tibiano
  • Meu personagem
    Jr
  • Interesses
    Aprender e ensinar.

Últimos Visitantes

963 visualizações
  1. 0.4 ou 1.3? Teleport aparece quando o evento abre? Ou é uma passagem que é aberta?
  2. <?xml version="1.0" encoding="UTF-8"?> <!-- ULTIMATE SURVIVAL - Codigo feito por Omega / Pedido por vinnevinne Informacoes: http://www.xtibia.com/forum/topic/221415-ultimate-survival/ --> <mod name="Ultimate Survival" version="1.0" author="Omega" enabled="yes"> <config name="ultimatelib"><![CDATA[ USurvival = { posi = {x=1785, y=269, z=9}, -- parte esquerda superior da arena posf = {x=1798, y=290, z=9}, -- parte direita inferior da arena posc = {x=1791, y=280, z=9}, -- onde o player entra na arena waves = { [1] = {monsters = {'wolf', 'wolf'}, count = 10, reward = {exp = 0, item = 2160, amount = 1, money = 1000000}}, [2] = {monsters = {'wolf', 'fighter', 'paikuhan'}, count = 13, reward = {exp = 0, item = 2160, amount = 1, money = 5000000}}, [3] = {monsters = {'bandit scout', 'ice elemental', 'fire elemental'}, count = 15, reward = {exp = 0, item = 2160, amount = 1, money = 10000000}}, [4] = {monsters = {'namekjin', 'ice elemental', 'gohan ssj2', 'paikuihan'}, count = 20, reward = {exp = 0, item = 2160, amount = 1, money = 1000000}}, [5] = {monsters = {'namekjin', 'space soldier', 'android evolution v1', 'giat bandit'}, count = 25, reward = {exp = 0, item = 2160, amount = 1, money = 1000000}}, [6] = {monsters = {'giat bandit', 'namekjin', 'boo', 'frontal cyborg'}, count = 25, reward = {exp = 0, item = 2160, amount = 1, money = 1000000}}, [7] = {monsters = {'android evolution v2', 'namekjin mindcontroller', 'android evolution v1', 'dragon'}, count = 26, reward = {exp = 0, item = 2160, amount = 1, money = 1000000}}, [8] = {monsters = {'black dragon', 'dragon', 'licantropo', 'undead dragon'}, count = 28, reward = {exp = 0, item = 2160, amount = 1, money = 1000000}}, [9] = {monsters = {'paikuhan', 'bandit', 'super paikuhan', 'giant bandit', 'goku ssj3'}, count = 20, reward = {exp = 0, item = 2160, amount = 1, money = 1000000}}, [10] = {monsters = {'trunks ssj2', 'goku ssj3', 'boo', 'gohan ssj2', 'golden oozaru'}, count = 21, reward = {exp = 0, item = 2160, amount = 1, money = 1000000}}, [11] = {monsters = {'ryan shenlong', 'goku ssj4', 'undead dragon', 'raditz ssj4', 'black dragon', 'mini black', 'li shenron'}, count = 22, reward = {exp = 0, item = 2160, amount = 1, money = 1000000}}, [12] = {monsters = {'li shenron', 'goku ssj4', 'li shenron max', 'king vegeta', 'san shenron'}, count = 25, reward = {exp = 0, item = 2160, amount = 1, money = 1000000}}, [13] = {monsters = {'hell scorpion v1', 'suu shenron', 'hell janemba teach', 'li shenron max', 'vegetto', 'san shenron', 'suu shenron'}, count = 24, reward = {exp = 0, item = 2160, amount = 1, money = 1000000}}, [14] = {monsters = {'hell scorpion v1', 'ryan shenlong', 'turles ssj5', 'boo', 'namekjin v1', 'licantropo', 'black dragon'}, count = 27, reward = {exp = 0, item = 2160, amount = 1, money = 1000000}}, [15] = {monsters = {'san shenron', 'ryan shenlong'}, count = 26, reward = {exp = 0, item = 2160, amount = 1, money = 1000000}}, [16] = {monsters = {'vegetto', 'dog', 'namekjin v1', 'oturles ssj5', 'hell scorpion v1', 'li shenron', 'king vegeta'}, count = 27, reward = {exp = 0, item = 2160, amount = 1, money = 1000000}}, [17] = {monsters = {'goku ssj5', 'Anbu'}, count = 28, reward = {exp = 0, item = 2160, amount = 1, money = 1000000}}, [18] = {monsters = {'vegeta ssj5', 'Anbu'}, count = 28, reward = {exp = 0, item = 2160, amount = 1, money = 1000000}}, [19] = {monsters = {'hell janemba teach', 'Anbu'}, count = 28, reward = {exp = 0, item = 2160, amount = 1, money = 1000000}}, [21] = {monsters = {'hell scorpion ssj5', 'Anbu'}, count = 28, reward = {exp = 0, item = 2160, amount = 1, money = 1000000}}, [22] = {monsters = {'turles ssj5', 'black dragon'}, count = 29, reward = {exp = 0, item = 2160, amount = 1, money = 1000000}}, [23] = {monsters = {'raditz ssj5', 'mini black'}, count = 29, reward = {exp = 0, item = 2160, amount = 1, money = 1000000}}, [24] = {monsters = {'tsuful ssj5', 'black dragon'}, count = 29, reward = {exp = 0, item = 2160, amount = 1, money = 1000000}}, [25] = {monsters = {'furie gogeta', 'black dragon'}, count = 29, reward = {exp = 0, item = 2160, amount = 1, money = 1000000}}, [26] = {monsters = {'freeza rage', 'mini black'}, count = 29, reward = {exp = 0, item = 2160, amount = 1, money = 1000000}}, [27] = {monsters = {'strong boo', 'furie cell'}, count = 29, reward = {exp = 0, item = 2160, amount = 1, money = 1000000}}, [28] = {monsters = {'hell janemba teach', 'Anbu'}, count = 29, reward = {exp = 0, item = 2160, amount = 1, money = 1000000}}, [29] = {monsters = {'freeza rage', 'hell scorpion v1'}, count = 29, reward = {exp = 0, item = 2160, amount = 1, money = 1000000}}, [30] = {monsters = {'vegeta ssj5', 'freeza rage'}, count = 29, reward = {exp = 0, item = 2160, amount = 1, money = 1000000}}, [31] = {monsters = {'black dragon', 'mini black'}, count = 29, reward = {exp = 0, item = 2160, amount = 1, money = 1000000}}, [33] = {monsters = {'furie gogeta', 'black dragon'}, count = 29, reward = {exp = 0, item = 2160, amount = 1, money = 1000000}}, [34] = {monsters = {'freeza rage', 'li shenron max'}, count = 30, reward = {exp = 0, item = 2160, amount = 1, money = 1000000}}, [35] = {monsters = {'furie cell', 'furie gogeta'}, count = 30, reward = {exp = 0, item = 2160, amount = 1, money = 1000000}}, }, exhaust = 1 * 24 * 60 * 60, -- Tempo em segundos ate poder entrar novamente na arena (1 * 24 * 60 * 60 = 1 dia) final_reward = {item = 2160, amount = 100, exp = 10000000, money = 0}, storage_ex = 607069, storage_wave = 607089, }   function isWalkable(pos)-- by Nord / editado por Omega if getTileThingByPos({x = pos.x, y = pos.y, z = pos.z, stackpos = 0}).itemid == 0 then return false elseif isCreature(getTopCreature(pos).uid) then return false elseif getTileInfo(pos).protection then return false elseif hasProperty(getThingFromPos(pos).uid, 3) or hasProperty(getThingFromPos(pos).uid, 7) then return false end return true end   function doSpawnMonsters(monsters, pos, radius, limit) if not pos.x or not pos.y or not pos.z or not type(monsters) == 'table' then return false end local radius = tonumber(radius) if radius > 5 then radius = 5 elseif radius < 2 then radius = 2 end if not limit or limit < 1 then limit = 1 elseif limit > radius ^ 2 then limit = math.floor((radius*1.5) ^ 2) end local k = 0 local tries = 0 repeat for x = pos.x - radius, pos.x + radius do for y = pos.y - radius, pos.y + radius do if isWalkable({x=x, y=y, z=pos.z}) then local monster = monsters[math.random(1, #monsters)] local chance = math.random(1, 100) if k == limit then break elseif chance <= 8 and doCreateMonster(monster, {x=x, y=y, z=pos.z}) then k = k + 1 end end end end tries = tries + 1 until k >= limit or tries >= 500 return k >= limit and true or false end   function getPlayersInArea(pos1,pos2) local players = {} if pos1.x and pos1.y and pos2.x and pos2.y and pos1.z == pos2.z then for a = pos1.x, pos2.x do for b = pos1.y,pos2.y do local pos = {x=a,y=b,z=pos1.z} if isPlayer(getTopCreature(pos).uid) then table.insert(players,getTopCreature(pos).uid) end end end return players else return false end end   function getMonstersInArea(pos1,pos2) local players = {} if pos1.x and pos1.y and pos2.x and pos2.y and pos1.z == pos2.z then for a = pos1.x, pos2.x do for b = pos1.y,pos2.y do local pos = {x=a,y=b,z=pos1.z} if isMonster(getTopCreature(pos).uid) then table.insert(players,getTopCreature(pos).uid) end end end return players else return false end end   function doCleanArena() local monsters = getMonstersInArea(USurvival.posi, USurvival.posf) for _, cid in pairs(monsters) do doRemoveCreature(cid) end end   function doStartWave(waveID, cid) if not isCreature(cid) then return false end if USurvival.waves[waveID] then wave = USurvival.waves[waveID] doSpawnMonsters(wave.monsters, USurvival.posc, 5, wave.count) doPlayerSendTextMessage(cid, 21, 'Wave '..waveID..' inicie abatalha! FIGHT!') end end ]]></config>   <action actionid="4599" event="script" override="yes"><![CDATA[ domodlib('ultimatelib') function onUse(cid, item) if getPlayerStorageValue(cid, USurvival.storage_ex) <= os.time() then if #getPlayersInArea(USurvival.posi, USurvival.posf) == 0 then doCleanArena() doTeleportThing(cid, USurvival.posc) doPlayerSendTextMessage(cid, 21, 'O jogo de sobrevicencia vai iniciar em 10 segundos') addEvent(doStartWave, 10000, 1, cid) setPlayerStorageValue(cid, USurvival.storage_wave, 1) setPlayerStorageValue(cid, USurvival.storage_ex, os.time() + USurvival.exhaust) if item.itemid % 2 == 1 then doTransformItem(item.uid, item.itemid+1) else doTransformItem(item.uid, item.itemid-1) end else doPlayerSendCancel(cid, 'Someone is already in the arena.') doSendMagicEffect(getThingPos(cid), 2) end else local left = getPlayerStorageValue(cid, USurvival.storage_ex) - os.time() left = {hour = math.floor(left/3600), minutes = math.ceil((left % 3600)/60)} doPlayerSendCancel(cid, 'You have to wait '.. left.hour ..'h and '..left.minutes..'min.') doSendMagicEffect(getThingPos(cid), 2) end return true end ]]></action>   <event type="login" name="US Login" event="script"><![CDATA[ domodlib('ultimatelib') function onLogin(cid) registerCreatureEvent(cid,'UltimateSurvival1') registerCreatureEvent(cid,'UltimateSurvival2') if isInArea(getThingPos(cid), USurvival.posi, USurvival.posf) then doTeleportThing(cid, getTownTemplePosition(getPlayerTown(cid))) doSendMagicEffect(getThingPos(cid), 10) end return true end ]]></event>   <event type="kill" name="UltimateSurvival1" event="script"><![CDATA[ domodlib('ultimatelib') function onKill(cid, target) if isInArea(getThingPos(cid), USurvival.posi, USurvival.posf) then if #getMonstersInArea(USurvival.posi, USurvival.posf) == 1 then local wave = getPlayerStorageValue(cid, USurvival.storage_wave) if USurvival.waves[wave+1] then setPlayerStorageValue(cid, USurvival.storage_wave, wave + 1) addEvent(doStartWave, 5000, wave + 1, cid) doPlayerSendTextMessage(cid, 22, 'Voce passou de wave! proxima em 5 segundos') else doPlayerSendTextMessage(cid, 22, 'CONGRATULATIONS! YOU HAVE BEATEN THE ULTIMATE SURVIVAL!') local reward = USurvival.final_reward if reward.item then doPlayerAddItem(cid, reward.item, (reward.amount or 1), false) end if reward.exp then doPlayerAddExp(cid, reward.exp) end if reward.money then doPlayerAddMoney(cid, reward.money) end local medal = doPlayerAddItem(cid, 5785, 1, false) if medal then doItemSetAttribute(medal, 'description', 'This was given to '..getCreatureName(cid)..' by completing the Ultimate Survival.') doItemSetAttribute(medal,'name', 'Ultimate Survival Medal') end doTeleportThing(cid, getTownTemplePosition(getPlayerTown(cid))) end end end return true end   ]]></event>   <event type="preparedeath" name="UltimateSurvival2" event="script"><![CDATA[ domodlib('ultimatelib') function onPrepareDeath(cid, killers) if isInArea(getThingPos(cid), USurvival.posi, USurvival.posf) then doCreatureAddHealth(cid, getCreatureMaxHealth(cid), 65535, 256, true) doRemoveConditions(cid, false) doTeleportThing(cid, getTownTemplePosition(getPlayerTown(cid))) doPlayerSendTextMessage(cid, 21, 'Too bad, you couldn\'t defeat the Ultimate Survival... Better luck next time.') doCleanArena() local reward = USurvival.waves[getPlayerStorageValue(cid, USurvival.storage_wave)].reward if reward.item then doPlayerAddItem(cid, reward.item, reward.amount or 1) end if reward.exp then doPlayerAddExp(cid, reward.exp) end if reward.money then doPlayerAddMoney(cid, reward.money) end return false end return true end ]]></event>   </mod>
  3. @Darci Santos Verificou todas as etapas se estão instaladas corretamente no servidor? Registrou no monster o script? @elielder Abre o notepad++ com este código que está dando errado, lá em cima tem uma aba chamada 'Formatação', você clicka lá e seleciona a opção 'Codificação em ANSI', após isso salve o arquivo e faça o teste.
  4. Gostei bastante, eu gostaria muito de ver coisas assim com outros tipos de ambientes. Parabéns.
  5. lordzetros

    Outro Fim dos otserv?

    Como já falaram, acho que servidores pequenos não precisam se preocupar com isso por agora, mas veja bem, se um servidor pequeno crescer e venha a 'chamar' atenção, isso daí, pode gerar um 'problemão' como esse.
  6. Em data/creaturescripts/scripts/login.lua 1 - TFS 1.x if (player:getStorageValue(VALOR_STORAGE) == -1) then player:setStorageValue(VALOR_STORAGE, X_VALOR) end 2 - TFS 0.4 if (getPlayerStorageValue(cid, VALOR_STORAGE) == -1) then setPlayerStorageValue(cid, VALOR_STORAGE, X_VALOR) end Acredito que desta forma seja mais simples.
  7. Em data/actions/scripts/ adicione um arquivo chamado packetPremiada.lua e cole este código dentro dele: local config = { {item = 2160, qntd_max = 100}, -- Segue a ordem: ID do item, quantidade maxima deste item que o player pode ganhar {item = 8303, qntd_max = 8}, {item = 8306, qntd_max = 6}, {item = 8326, qntd_max = 11}, {item = 9059, qntd_max = 1}, {item = 9969, qntd_max = 3}, -- para adicionar um novo, copie esta linha e adicione abaixo desta. } local qntd_max_itens = #config local msg_sucesso = "Opa, que caixa interessante!" -- Mensagem apos o player usar function onUse(cid, item, fromPos, itemEx, toPos) local random_qntd = math.random(1, qntd_max_itens) for i = 1, random_qntd do doPlayerAddItem(cid, config[i].item, math.random(1, config[i].qntd_max)) end doRemoveItem(item.uid,1) doCreatureSay(cid, msg_sucesso, TALKTYPE_ORANGE_1) doSendMagicEffect(getCreaturePosition(cid), 49) return true end E em data/actions/actions.xml adicione este código abaixo de uma linha semelhante: <action itemid="id_da_Packet" event="script" value="packetPremiada.lua"/> Não esqueça de mudar acima o ID da Packet (id_da_Packet) que você quer que dê os itens.
  8. @Jeanzeraa Não precisa 'chamar' o evento, quando você adicione o evento, o código já será executado futuramente. Você tá passando um argumento para função sem nem mesmo utilizá-lo, entende? E quando você utiliza este tipo de addEvent (múltiplas linhas), o argumento é passado no final, após o tempo (500000). Veja um exemplo de como seria sua função: addEvent(function() musicChannel:enqueue(musicFilename, 3) end, 500000) Se mesmo assim entrar em um loop, o problema não está nesta parte de AddEvent.
  9. Em data/actions/scripts/ crie um arquivo chamado boxPremiada.lua local config = { {item = 2160, qntd = 100, chance = 65}, -- Segue a ordem: ID_do_item, quantidade_do_item, chance_do_item {item = 7417, qntd = 1, chance = 10}, {item = 9969, qntd = 1, chance = 20}, -- para adicionar um novo, copie esta linha e adicione abaixo desta. } local msg_sucesso = "Parabens! Voce ganhou um item premiado." -- Caso o player ganhe local msg_falha = "Nao foi desta vez, quem sabe na proxima, certo?" -- caso ele perca function onUse(cid, item, fromPos, itemEx, toPos) local c = config[math.random(1, #config)] if (c.chance >= math.random(1,100)) then doSendMagicEffect(fromPos, 49) doPlayerSendCancel(cid, msg_sucesso) doPlayerAddItem(cid, c.item, c.qntd) doRemoveItem(item.uid, 1) else doSendMagicEffect(fromPos, 3) doPlayerSendCancel(cid, msg_falha) doRemoveItem(item.uid, 1) end return true end Em data/actions/actions.xml adicione este código abaixo de uma semelhante: <action itemid="2331" event="script" value="boxPremiada.lua"/> Faz o teste e depois me dá um feedback se funcionou ou não, infelizmente ainda não testei.
  10. Olá, Colega, fala a versão de sua base e o ID da box que deseja.
  11. lordzetros

    Mapper King 2018

    Mapa 01. Gostei de ambos, os dois estão com ótimos detalhes e é totalmente fiel ao tema. Não escolhi o 02 por conta dessas paredes que dão impressão que estão flutuando na água ou que sai do terreno firme, então, como os dois inicialmente estavam empatados para mim, isso mudou minha opinião. Em relação ao 01, eu só tiraria essa árvore da entrada. 😁
  12. Verifique se o arquivo config está como .lua e não .txt
  13. @maicao22 compat.lua Créditos: Ninjalulz
  14. Depende do script, pode ser que sim, CASO você tenha o compat.lua. Ele é um arquivo onde tem funções de versões anteriores e retornam em formato de funções de TFS 1.X. Para uma melhor explicação: A função em TFS 0.4: function doCreateItem(itemid, type/count, pos) Você utilizando no TFS 1.X sem o arquivo de compatibilidade (que faz as mesmas ações que tal função executava em 0.4), provavelmente iria dá erro falando que a função não existia. Mas quando você tem ela no arquivo que faz essa "conversão", você consegue utilizar ela chamando no modelo antigo, porém, internamente ela trabalha no modelo novo (TFS 1.X). Veja o exemplo da função acima em TFS 1.X: function doCreateItem(itemid, count, pos) local tile = Tile(pos) if not tile then return false end local item = Game.createItem(itemid, count, pos) if item then return item:getUniqueId() end return false end 😁
  15. @Cleiton Felipi Disponha! 😄 @Semideus Haha, esse daí é o mito. 🤣

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 partindo do zero.

Redes Sociais

Anuncie no Tibia King

Precisa de mais visibilidade em seus projetos? Quer publicidade 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! A publicação do seu anuncio é instantânea!

×