Tudo que Naze postou
-
Script de fazer a SpellWand Virar um item que vende o loot igual NPC Mad
Ta na mao local items = { -- [id do item] = {id = id do item, price = valor da venda}, [2487] = {id = 2487, price = 100000}, -- crown armor [2488] = {id = 2488, price = 110000}, -- crown legs [2514] = {id = 2514, price = 110000}, -- mastermind shield } function onUse(cid, item,fromPosition, itemEx, toPosition) for _,ii in pairs(items) do if itemEx.itemid == ii.id then local i = items[itemEx.itemid] if itemEx.itemid == i.id then doRemoveItem(itemEx.uid) doPlayerAddMoney(cid, i.price) end else doPlayerSendTextMessage(cid, 25,"Não foi possivel vender esse item.") end end return true end
-
Script de fazer a SpellWand Virar um item que vende o loot igual NPC Mad
adiciona essa tag em actions.xml <action itemid=7735 script="spellwand.lua"/> depois adiciona esse script em um arquivo chamado spellwand.lua na pasta scripts do seu actions. -- by Naze to TibiaKing local items = { -- [id do item] = {id = id do item, price = valor da venda}, [2487] = {id = 2487, price = 100000}, -- crown armor [2488] = {id = 2488, price = 110000}, -- crown legs [2514] = {id = 2514, price = 110000}, -- mastermind shield } function onUse(cid, item,fromPosition, itemEx, toPosition) local i = items[itemEx.itemid] if itemEx.itemid == i.id then doRemoveItem(itemEx.uid) doPlayerAddMoney(cid, i.price) end return true end Está bem simples, se quiser mensagens e efeito me fala q adiciono. Para adicionar itens pra vender vc vai ter que adicionando mais linha como está [id do item] = {id = id do item, << aqui vc coloca o id do item, o mesmo id nos dois lugar price = valor da venda} << aqui o valor q o player vai receber por vender o item Ficando assim se fosse vender um magic plate armor por 15 crystal coins. [2472] = {id = 2472, price = 150000}, Para identificar depois pode colcar 2 iféns e o nome. [2472] = {id = 2472, price = 150000}, -- magic plate armor Não esqueça da virgula no fim, e no meio.
-
Procuro Alguem que edite meu otserv!
posso te ajudar com scripts, meu discord tá na assinatura, não sou profissional, mas estou estudando e te ajuda vai me ajuda tbm.
-
(Resolvido)RetPagseguro -- Em branco e nao gera.
Resolvido. Conta era antiga.
-
(Resolvido)RetPagseguro -- Em branco e nao gera.
Estou tentando colocar pagseguro automático, mas não estou conseguindo, está dando o seguint erro quando tento adicionar o retpagseguro.php, no site. Também o retpagseguro.php q uso do tutorial está toda em branco a pagina https://paradise-server.com/retpagseguro.php codigo abaixo Tentei adaptar um retorno mais antigo que achei A pagina funciona, mas o erro no pagseguro continua.
-
(Resolvido)TFS nao abre depois de load mapa
O erro realmente era devido ao servidor, o ot está puxando mais memória do que era suportável. Resolvido
-
(Resolvido)TFS nao abre depois de load mapa
-
(Resolvido)TFS nao abre depois de load mapa
Uso TFS 0.4 , compilei em ubutu 14, e estou tentando abrir o servidor, mas toda tentativa acontece isso, a pois a tela de load mapa, sai, e nao abre o servidor o tfs simplismente fecha. Alguém tem ideia doq pode ser? talvez o tamanho do mapa? servidor Núcleos do Processador 1 Velocidade Total do Procesador 2.4Ghz Memória 1Gb Espaço em disco 20Gb Largura de Banda 1000Gb no putty
-
(Resolvido)Auxilio com scripts de spells
o 1° como não explicou que tipo de magia seria, vou entende que essa magia normal seja uma targetiada, usei o exori mort como exemplo, mas se quiser outra apenas me fala a magia base. local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_DEATHDAMAGE) setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_MORTAREA) setCombatParam(combat, COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_SUDDENDEATH) setCombatFormula(combat, COMBAT_FORMULA_LEVELMAGIC, -1, -10, -1, -20, 5, 5, 1.4, 2.1) function onCastSpell(cid, var) if getCreatureTarget(cid) == isPlayer(getCreatureTarget(cid)) or isMonster(getCreatureTarget(cid)) then local target = getCreatureTarget(cid) local life = (getCreatureMaxHealth(target)*0.01)*30 if getCreatureHealth(target) <= life then doSendAnimatedText(getThingPos(target), getCreatureHealth(target), TEXTCOLOR_RED) doSendDistanceShoot(getCreaturePosition(cid), getThingPos(target), CONST_ANI_SUDDENDEATH) doCreatureAddHealth(target, -getCreatureHealth(target)) else doCombat(cid, combat, var) end else doCombat(cid, combat, var) end return true end se desejar colocar em outra magia, você deve colocar todo esse codigo abaixo \/ no lugar da função onCastSpell da magia que queira, função normalmente do modo abaixo \/ depois é so trocar os efeito CONST_ANI_SUDDENDEATH, por o da magia.
-
quero criar meu ot offline
Nessa sessão https://tibiaking.com/search/?type=forums_topic&nodes=162&tags=8.5x - 8.7x Você vai encontra vários ot para download escolha um do seu gosto, extraia e abra config.lua, depois copie tudo e manda aqui que ajeito para vc. Se não conseguir, me manda o link de qual você escolhe, ou foto de outra dúvidas.
-
(Resolvido)[SCRIPT] Por tempo na quest
Mudei a função tente agora. local level = 130 local redo = {status = false, storageValue = 61111} -- true para ilimitado, false para somente uma vez local posi = {x=xxxx, y=yyyy, z=z} -- posição topo esquerdo da sala local posf = {x=xxxx, y=yyyy, z=z} -- posição parte inferior esquerda da sala local function getPlayersInRange(pos1, pos2) local creaturesList = {} for px = pos1.x, pos2.x do for py = pos1.y, pos2.y do if not (x == 0 and y == 0) then local creature = getTopCreature({x = px, y = py, z = pos1.z}) if creature.type == 1 then table.insert(creaturesList, creature.uid) end end end end return creaturesList end local config = { { vocations = {3, 7}, playerPos = {x=1117, y=1150, z=6}, -- Initial position in the Stone tile newPos = {x=1114, y=1142, z=8}, -- Position of the reward room. }, { vocations = {2, 6}, playerPos = {x=1123, y=1157, z=6}, -- Initial position in the Stone tile newPos = {x=1114, y=1142, z=8}, -- Position of the reward room. }, { vocations = {1, 5}, playerPos = {x=1127, y=1155, z=6}, -- Initial position in the Stone tile newPos = {x=1114, y=1142, z=8}, -- Position of the reward room. }, { vocations = {4, 8}, playerPos = {x=1123, y=1147, z=6}, -- Initial position in the Stone tile newPos = {x=1114, y=1142, z=8}, --Position of the reward room. } } local msgs = { [1] = "Todos os jogadores devem estar em seus respectivos pisos!", [2] = "Todos os players devem ser level " .. level .. " ou maior.", [3] = "Um jogador em seu time ja fez a Fishing Rod and Pick Quest!", [4] = "Não há jogadores suficientes.", [5] = "Já existe players na quest. Aguardem." } function onUse(cid, fromPosition, toPosition) local players, msgID = {}, 0 for i, v in pairs(config) do local player = getTopCreature(v.playerPos).uid if player ~= 0 and isPlayer(player) then if not isInArray(v.vocations, getPlayerVocation(player)) then msgID = 1 break elseif getPlayerLevel(player) < level then msgID = 2 break elseif #getPlayersInRange(posi, posf) >= 1 then msgID = 5 break elseif not redo.status then if getPlayerStorageValue(player, redo.storageValue) ~= -1 then msgID = 3 break end end table.insert(players, {player = player, newPos = v.newPos}) end end if msgID ~= 0 then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, msgs[msgID]) return true end if #players ~= #config then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, msgs[4]) return true end for i = 1, #players do local p = players if not redo.status then end doSendMagicEffect(getPlayerPosition(p.player), CONST_ME_POFF) doTeleportThing(p.player, p.newPos) doSendMagicEffect(p.newPos, CONST_ME_TELEPORT) end return true end
-
[AJUDA] vocações mudando sozinhas
Cara eu já tive um problema parecido, e surgia por causa da bless, sempre q tava de bless e morria hr q logava a vocation mudo e o lvl voltava a 1, pra resolver só troquei os scripts, não consegui achar o motivo, mas alguma coisa deve tá dando interferência no seu tbm, tenta criar acc nova ir fazendo teste com tudo, relogando, quando o player morre, é um logout e hr q volta é um login, q seria mesmo que reiniciar ou um logar é desloga normal, então tem q apurar tudo
-
(Resolvido)[SCRIPT] Por tempo na quest
Tente assim Edita as posições de acorda com a sala q quer verificar os players local level = 130 local redo = {status = false, storageValue = 61111} -- true para ilimitado, false para somente uma vez local posi = {x=xxxx, y=yyyy, z=z} -- posição topo esquerdo da sala local posf = {x=xxxx, y=yyyy, z=z} -- posição parte inferior esquerda da sala local pos = getCreaturePosition(cid) local config = { { vocations = {3, 7}, playerPos = {x=1117, y=1150, z=6}, -- Initial position in the Stone tile newPos = {x=1114, y=1142, z=8}, -- Position of the reward room. }, { vocations = {2, 6}, playerPos = {x=1123, y=1157, z=6}, -- Initial position in the Stone tile newPos = {x=1114, y=1142, z=8}, -- Position of the reward room. }, { vocations = {1, 5}, playerPos = {x=1127, y=1155, z=6}, -- Initial position in the Stone tile newPos = {x=1114, y=1142, z=8}, -- Position of the reward room. }, { vocations = {4, 8}, playerPos = {x=1123, y=1147, z=6}, -- Initial position in the Stone tile newPos = {x=1114, y=1142, z=8}, --Position of the reward room. } } local msgs = { [1] = "Todos os jogadores devem estar em seus respectivos pisos!", [2] = "Todos os players devem ser level " .. level .. " ou maior.", [3] = "Um jogador em seu time ja fez a Fishing Rod and Pick Quest!", [4] = "Não há jogadores suficientes.", [5] = "Já existe players na quest. Aguardem." } function onUse(cid, fromPosition, toPosition) local players, msgID = {}, 0 for i, v in pairs(config) do local player = getTopCreature(v.playerPos).uid if player ~= 0 and isPlayer(player) then if not isInArray(v.vocations, getPlayerVocation(player)) then msgID = 1 break elseif getPlayerLevel(player) < level then msgID = 2 break elseif isInArea(pos, posi, posf) and isPlayer(cid) == true then msgID = 5 break elseif not redo.status then if getPlayerStorageValue(player, redo.storageValue) ~= -1 then msgID = 3 break end end table.insert(players, {player = player, newPos = v.newPos}) end end if msgID ~= 0 then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, msgs[msgID]) return true end if #players ~= #config then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, msgs[4]) return true end for i = 1, #players do local p = players if not redo.status then end doSendMagicEffect(getPlayerPosition(p.player), CONST_ME_POFF) doTeleportThing(p.player, p.newPos) doSendMagicEffect(p.newPos, CONST_ME_TELEPORT) end return true end
-
error ao tentar entrar no otserv
No config.lua coloca IP 127.0.0.1, você deve ter colocado 192.168.10.100
-
Momstros que dropam books
Acredito q oq está pedidindo seria feito por creaturescritp, vou ver se consigo aqui. Pronto. Dei um a simplificada. em livro = id do livro, text = "texto do tamanho q quiser", chance = porcentagem de drop sempre que adicionar uma nova linha lembre de colocar virgula adiciona esse script no seu creaturescripts/scripts com o nome de livroloot.lua -- by Naze to tibia king local config = { {livro = 1950, text = "texto1", chance = 80}, -- ID DO LIVRO, TEXTO DO LIVRO, CHANCE DE DROP {livro = 1955, text = "texto2", chance = 80}, {livro = 1960, text = "texto3", chance = 80}, {livro = 1961, text = "texto4", chance = 80} } function onDeath(cid, corpse, killers) if isMonster(cid) then local result = config[math.random(1, #config)] if math.random(1,100) <= result.chance then local corps = doAddContainerItem(corpse.uid, result.livro, 1) doSetItemText(corps, result.text) end end return true end e essa tag em seu creatuscripts.xml <event type="death" name="livroloot" event="script" value="livroloot.lua"/> Agora todos monstro que quiser que dropa ele você tem q adicionar essa tag no final de seu scripts, MAS ANTES DO </monsters> <script> <event name="livroloot"/> </script> Por exemplo adicionei no Demon.xml, tem q ficar assim:
-
[AJUDA] vocações mudando sozinhas
Acontece quando? Em jogo do nada? quando reloga? da algum erro na distro? Teve alguma edição q fez que acha que pode ter gerado isso? Não entendo nada de NTO, mas talvez de pra ajuda.
-
Npc bank não funciona
Tenta esse, o que ta usando deve ser para tfs 0.4 e seu tfs acredito que seja versão maior.
-
OtClient v8 - BOT
Bom, estava pesquisando sobre OtClient e acabei achando esse OtClientV8, feito por Kondra -- link em pt-br dizendo sobre ele External Link -- tópico feito pelo próprio criado External Link Comecei pesquisar sobre, e realmente me parasse um OtClient muito bom, o que mais me interessou e oq venho mostrar é a parte do BOT, ele ja vem com um bot incluso que me interessou muito, pois qualquer um pode criar as funções dele em lua. O tópico falando do bot so vou deixar escrito oque ta la, mas se quiserem ver as imagens o link é esse -- External Link Quando baixei o OtClient o bot ja vem um com 'example' com bastante comandos ja adicionado, mas vou deixar alguns exemplo aqui para poderem entender: Aqui tem todas funções e mais informações sobre o bot -- https://github.com/OTCv8/otclientv8_bot Meu objetivo com esse post é só compartilhar, já que não achei nada sobre ele no Tibia King, no momento tenho outros projeto, e não posso estuda as funções do bot, mas acredito que como eu tenha mais pessoas que se interesse. Mas logo pretendo estuda pois acho que esse seria o melhor client e bot que pode substituir o tibia.exe elf/magebot q sempre usamos. @edit Não sei se estou na area certa, se estiver errado me desculpe e favor mover.
-
(Resolvido)Task System 4.0 (Vodkart) - Alterar getCreatureName(target)
Exato, por isso quero outra função outro meio de verificar, vou tenta usando HealthMax ou MaxaMax, ai eu faço um "id" com o final da life kkkk uma gambiarra mas talvez de, se alguem tiver uma ideia melhor para verificar o monstro agradeço @EDIT Fiz dessa forma com a função getCreatureMaxHealth, e deu certo. Troquei essa linha if t and getPlayerStorageValue(cid, t.start) > 0 and isInArray(t.monsters_list, getCreatureMaxHealth(target)) and getPlayerStorageValue(cid, task_sys_storages[3]) < t.count then
-
Poke X Heat: O PROJETO
Se precisar também estou interessado, manjo um pouco de Programação, mas não mexi muito com poketibia mas já joguei muito, dês da época q pxg era svke e refizeram como tá hj naze#3578
-
(Resolvido)Task System 4.0 (Vodkart) - Alterar getCreatureName(target)
Uso TFS 0.4, Estou fazem um servidor, onde tera um novo mapa, e os monstro desse mapa são mais forte então coloquei seus nomes como Ancient Cyclops por exemplo. No monster.xml esta dessa forma. Mas em sua pasta .../ancient cyclops.xml na parte 'name=' está somente Cyclops, assim em jogo ele aparece seu nome como Cyclops normal, mas sera um ancient cyclops. ex: Acontece que queria fazer task para esses monstros, mas a função getCreatureName(target) não reconhece, se eu mudar apenas para cyclops contara os cyclops normal tbm. Então existe alguma forma de ele verificar o monstro a ser morto sem ser por isso. vou deixar o codigo da task, pq fiz algumas alteração: @EDIT Pensei em outra forma de verificar o monstro que seria por sua HealthMax, seria mais uma gambiarra, mas é unica forma q sei por enquanto, se alguem souber outra forma de identidade para monstro que eu posso checar por função
-
[PEDIDO] Fast Attack Fixo TFS 0.4
Vou ver se consigo algo tbm, seria bom ter no servidor pra novos players
-
(Resolvido)Script com erro no time.
Que bom que resolveu, só consegui vim posta agora mas editei o seu mesmo quiser testa também. function onUse(cid, item, frompos, item2, topos) local StorageExaust = 722404 -- Mude Aqui caso queira trocar a storage. local Time = 120 -- Valores em segundos que ele terá que esperar. local pos = getThingPos(item.uid) if getPlayerStorageValue(cid, StorageExaust) > os.time() then doPlayerSendCancel(cid, "Você não pode usar este item agora.") return true end local rand = math.random(1, 100) if item.itemid == 11253 and item.actionid == 45492 then if getPlayerStorageValue(cid, 45490) <= 0 then return doPlayerSendCancel(cid, "Speak with Sandomo to use this item.") else if rand > 25 then doTransformItem(item.uid, 12688) doDecayItem(item.uid) addEvent(function() item2 = getThingfromPos(pos) doTransformItem(item2.uid,11253) end, 2*60*1000) doCreateMonster("guzzlemaw", getCreaturePosition(cid), false, true); doPlayerSendTextMessage(cid, MESSAGE_EVENT_ADVANCE, "You ransack the pile but fail to find any useful parts."); doSendMagicEffect(topos, CONST_ME_MAGIC_RED) setPlayerStorageValue(cid, StorageExaust, os.time() + Time) else doTransformItem(item.uid, 12688) doDecayItem(item.uid) addEvent(function() item2 = getThingfromPos(pos) doTransformItem(item2.uid,11253) end, 2*60*1000) local stor = getPlayerStorageValue(cid, 45491) + 1 setPlayerStorageValue(cid, 45491, stor) doPlayerSendTextMessage(cid, MESSAGE_EVENT_ADVANCE, "Amidst the pile of various bones you find a large, hollow part, similar to a pipe."); doSendMagicEffect(topos, CONST_ME_MAGIC_GREEN) setPlayerStorageValue(cid, StorageExaust, os.time() + Time) end end elseif item.itemid == 12688 and item.actionid == 45492 then return doCreatureSay(cid, "Wait 2 minutes to use a pile.", TALKTYPE_ORANGE_1, false, 0, getCreaturePosition(cid)) end return true end
-
(Resolvido)Script com erro no time.
Deixa ver se entendi certo, se for me avisa. Se o player tiver a storage e usar o pilar ele vai ter 25% de cria um monstro ou de ganhar +1 e tal storage e o pilar vira outro, depois de 2 min o pilar volta ao normal e ele pode usa de novo? Agr não consigo ajeita pra tu, mas hr q tiver em casa se for assim mesmo q funciona arrumo pra você.
-
AJUDA.. CREATURESCRIPT, STORAGE URGENTE
Não sabia de montaria em servidor 8.6 se poder me manda os script dela posso tenta, mas não prometo rsrs