Ir para conteúdo

Naze

Membro
  • Registro em

  • Última visita

Tudo que Naze postou

  1. 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
  2. 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.
  3. posso te ajudar com scripts, meu discord tá na assinatura, não sou profissional, mas estou estudando e te ajuda vai me ajuda tbm.
  4. Resolvido. Conta era antiga.
  5. 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.
  6. O erro realmente era devido ao servidor, o ot está puxando mais memória do que era suportável. Resolvido
  7. 50mb @edit tentei diminuir o tamanho do map mas deu na mesma
  8. 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
  9. 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.
  10. 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.
  11. 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
  12. 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
  13. 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
  14. No config.lua coloca IP 127.0.0.1, você deve ter colocado 192.168.10.100
  15. 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:
  16. 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.
  17. Naze postou uma resposta no tópico em Suporte Tibia OTServer
    Tenta esse, o que ta usando deve ser para tfs 0.4 e seu tfs acredito que seja versão maior.
  18. Naze postou uma resposta no tópico em Códigos C++
    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.
  19. 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
  20. Naze postou uma resposta no tópico em Formação de Equipe
    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
  21. 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
  22. Vou ver se consigo algo tbm, seria bom ter no servidor pra novos players
  23. 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
  24. 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ê.
  25. Não sabia de montaria em servidor 8.6 se poder me manda os script dela posso tenta, mas não prometo rsrs

Informação Importante

Confirmação de Termo