Ir para conteúdo

Straikar

Membro
  • Registro em

  • Última visita

Tudo que Straikar postou

  1. UEEE mais como assim não estou usando ela em outro lugar
  2. Boa tarde. não sei se estou na area correta. Está me dando esse bug e não sei oque fazer a database trava e não da para abrir!!! por favor me ajudem pfff sqlite3_step(): SQLITE ERROR: database is locked SQLITE ERROR: cannot start a transaction within a transaction
  3. Ele editou, está logo a cima
  4. Tudo certo, resolvemos por discord, obrigado a força
  5. Salve pessoaaall, eu gostaria de adicionar uma maquina de summon. A que eu tenho é esta e o erro que ela dá é o seguinte, tem hora que vc puxa ela exemplo puxei 3 vezes e não apareceu a menssagem ai depois do nada aparece que nasceu 3 monstros TFS 0.3.6 tibia 8.60 function onUse(cid, item, fromPos, itemEx, toPos) -- [[INICIO CONFIG - Beyond Sky]] monstros = { [1] = {chance = 25, name = "Demon"}, --[[Monstro do shirine fire e item fire]] [2] = {chance = 25, name = "Fire Elemental"}, --[[Monstro do shirine fire e item fire]] [3] = {chance = 25, name = "Hellfire Fighter"}, --[[Monstro do shirine fire e item fire]] [4] = {chance = 1, name = "Dourado"}, --[[Monstro do shirine fire e item fire]] [5] = {chance = 25, name = "Gigante de Gelo"}, --[[Monstro do shirine ice e item ice]] [6] = {chance = 25, name = "Frost Dragon"}, --[[Monstro do shirine ice e item ice]] [7] = {chance = 25, name = "Papao"}, --[[Monstro do shirine ice e item ice]] [8] = {chance = 1, name = "Orghus"}, --[[Monstro do shirine ice e item ice]] [9] = {chance = 25, name = "Multi"}, --[[Monstro do shirine tera e item tera]] [10] = {chance = 25, name = "Juggernaut"}, --[[Monstro do shirine tera e item tera]] [11] = {chance = 25, name = "Hydra"}, --[[Monstro do shirine tera e item tera]] [12] = {chance = 1, name = "Guardiao da Montanha"}, --[[Monstro do shirine tera e item tera]] [13] = {chance = 25, name = "Minotaur Mage"}, --[[Monstro do shirine energy e item energ]] [14] = {chance = 25, name = "Dragon Guardian"}, --[[Monstro do shirine energy e item energ]] [15] = {chance = 25, name = "Thunder Dragon"}, --[[Monstro do shirine energy e item energ]] [16] = {chance = 1, name = "Nephthys"} --[[Monstro do shirine energy e item energ]] } local uniqid = 9999 --[[UNIQUE ID DA ALAVANCA - Beyond Sky]] local ItemIdFire = 6550 --[[Item do shrine Fire]] local ItemIdIce = 6551 --[[Item do shrine Ice]] local ItemIdTera = 6549 --[[Item do shrine Tera]] local ItemIdEnergy = 6548 --[[Item do shrine Energy]] local PosNameFire = {x=324, y=1265, z=9} --[[Pos do monster da shrine Fire]] local PosNameIce = {x=324, y=1258, z=9} --[[Pos do monster da shrine Ice]] local PosNameTera = {x=324, y=1255, z=9} --[[Pos do monster da shrine Tera]] local PosNameEnergy = {x=324, y=1267, z=9} --[[Pos do monster da shrine Energy]] local PosItem = {x=350, y=1261, z=9, stackpos = 255} --[[Posição do item que vai ser preciso]] local getitem = getThingfromPos(PosItem) -- [[FIM CONFIG - Beyond Sky]] for i = 1, 4 do if item.uid == uniqid and getitem.itemid == ItemIdFire and item.itemid == 9825 and (monstros[i].chance >= math.random(1, 100)) then doSummonCreature(monstros[i].name, PosNameFire) doRemoveItem(getitem.uid,1) doCreatureSay(cid, "A máquina de summon criou um "..monstros[i].name..".", TALKTYPE_ORANGE_1) doSendMagicEffect(PosItem, 13) elseif item.uid == uniqid and getitem.itemid == ItemIdIce and item.itemid == 9825 and (monstros[i+4].chance >= math.random(1, 100)) then doSummonCreature(monstros[i+4].name, PosNameIce) doRemoveItem(getitem.uid,1) doCreatureSay(cid, "A máquina de summon criou um "..monstros[i+4].name..".", TALKTYPE_ORANGE_1) doSendMagicEffect(PosItem, 13) elseif item.uid == uniqid and getitem.itemid == ItemIdTera and item.itemid == 9825 and (monstros[i+8].chance >= math.random(1, 100)) then doSummonCreature(monstros[i+8].name, PosNameTera) doRemoveItem(getitem.uid,1) doCreatureSay(cid, "A máquina de summon criou um "..monstros[i+8].name..".", TALKTYPE_ORANGE_1) doSendMagicEffect(PosItem, 13) elseif item.uid == uniqid and getitem.itemid == ItemIdEnergy and item.itemid == 9825 and (monstros[i+12].chance >= math.random(1, 100)) then doSummonCreature(monstros[i+12].name, PosNameEnergy) doRemoveItem(getitem.uid,1) doCreatureSay(cid, "A máquina de summon criou um "..monstros[i+12].name..".", TALKTYPE_ORANGE_1) doSendMagicEffect(PosItem, 13) elseif item.uid == uniqid and item.itemid == 9826 then doTransformItem(item.uid, item.itemid - 1) return TRUE end end end
  6. deu erro é quando clica na primeira estatua
  7. Sim somente uma pessoa entre, por favor
  8. Valeu pela força anderson, muito obrigado mesmo! descobri um erro, não esta checando se um jogador está la em baixo um outro consegue entrar junto
  9. Bom dia pessoal, gostaria que alguem adiciona exausted nesse mod para mim <?xml version="1.0" encoding="UTF-8"?> <mod name="AdvancedExpPotionSystem" enabled="yes" author="MatheusMkalo" forum="XTibia.com"> <!-- Configs and Functions --> <config name="PotionExpConfigs"><![CDATA[ ------ CONFIGURE SEU SCRIPT ------ TRUE ou FALSE configs = { time = 60, ---- TIME IN MINUTES needpa = FALSE, needlvl = {FALSE, level = 50}, costmana = {TRUE, mana = 30000}, addrate = 10, -- Exp que vai adicionar em % removeonuse = TRUE } function getTime(s) local n = math.floor(s / 60) s = s - (60 * n) return n, s end CreatureEventChecker = function(event, ...) -- Colex if isCreature(arg[1]) then event(unpack(arg)) end end creatureEvent = function(event, delay, ...) -- Colex addEvent(CreatureEventChecker, delay, event, unpack(arg)) end function getPlayerExtraExpRate(cid) -- By MatheusMkalo return (getPlayerRates(cid)[8]-1)*100 end ]]></config> <!-- exppotion.lua --> <action itemid="12505" event="script"><![CDATA[ domodlib('PotionExpConfigs') if getPlayerStorageValue(cid, 62162) >= 1 then return doPlayerSendCancel(cid, "Você ja esta com o efeito ativo deste item") end if configs.needpa and not isPremium(cid) then return doPlayerSendCancel(cid, "Você precisa ser premium para usar este item.") end if configs.needlvl[1] and getPlayerLevel(cid) < configs.needlvl.level then return doPlayerSendCancel(cid, "You need to be level " .. configs.needlvl.level .. " to use this item.") end if configs.costmana[1] then if getCreatureMana(cid) < configs.costmana.mana then return doPlayerSendCancel(cid, "Voce percisa " .. configs.costmana.mana .. " mana para usar esse item.") else doCreatureAddMana(cid, -configs.costmana.mana) end end if configs.removeonuse then doRemoveItem(item.uid, 1) end for i = configs.time*60, 1, -1 do local a = math.floor(i/60) .. ":" .. i - (60 * math.floor(i/60)) if #a < 4 then a = string.sub(a,1,2) .. "0" .. string.sub(a, 3) end if i == configs.time*60 then creatureEvent(doPlayerSendCancel, configs.time*60*1000, cid, "O efeito da poção terminou.") end creatureEvent(doPlayerSendCancel, (configs.time*60-i)*1000, cid, "O efeito da poção exp terminara em "..a..".") end doPlayerSetExperienceRate(cid, (1+(configs.addrate/100))+(getPlayerExtraExpRate(cid)/100)) creatureEvent(doPlayerSetExperienceRate, configs.time *60*1000, cid, 1+(getPlayerExtraExpRate(cid)/100-(configs.addrate/100))) doCreatureSay(cid, "O Jogador "..getPlayerName(cid).." usou uma poçao de experiencia.") doSendMagicEffect(getThingPos(cid), 31) setPlayerStorageValue(cid, 62164, os.time()) creatureEvent(setPlayerStorageValue, configs.time *60*1000, cid, 62164, 0) return TRUE ]]></action> <creaturescript type="login" name="ExpPotion" event="script"><![CDATA[ domodlib('PotionExpConfigs') local time = configs.time if os.time()-getPlayerStorageValue(cid, 62164) < time *60 then doPlayerSetExperienceRate(cid, (1+(configs.addrate/100))+(getPlayerExtraExpRate(cid)/100)) creatureEvent(doPlayerSetExperienceRate, (time*60-(os.time()-getPlayerStorageValue(cid, 62164))) * 1000, cid, 1+(getPlayerExtraExpRate(cid)/100-(configs.addrate/100))) creatureEvent(setPlayerStorageValue, (time*60-(os.time()-getPlayerStorageValue(cid, 62164))) * 1000 , cid, 62164, 0) for i = (time*60-(os.time()-getPlayerStorageValue(cid, 62164))), 1, -1 do local a = math.floor(i/60) .. ":" .. i - (60 * math.floor(i/60)) if #a < 4 then a = string.sub(a,1,2) .. "0" .. string.sub(a, 3) end if i == (time*60-(os.time()-getPlayerStorageValue(cid, 62164))) then creatureEvent(doPlayerSendCancel, (time*60-(os.time()-getPlayerStorageValue(cid, 62164)))*1000, cid, "O efeito da poção terminou.") end creatureEvent(doPlayerSendCancel, ((time*60-(os.time()-getPlayerStorageValue(cid, 62164)))-i)*1000, cid, "O efeito da poção exp terminara em "..a..".") end end return TRUE ]]></creaturescript> </mod> <?xml version="1.0" encoding="UTF-8"?> <mod name="AdvancedExpPotionSystem" enabled="yes" author="MatheusMkalo" forum="XTibia.com"> <!-- Configs and Functions --> <config name="PotionExpConfigs"><![CDATA[ ------ CONFIGURE SEU SCRIPT ------ TRUE ou FALSE configs = { time = 60, ---- TIME IN MINUTES needpa = FALSE, needlvl = {FALSE, level = 50}, costmana = {TRUE, mana = 30000}, addrate = 10, -- Exp que vai adicionar em % removeonuse = TRUE } function getTime(s) local n = math.floor(s / 60) s = s - (60 * n) return n, s end CreatureEventChecker = function(event, ...) -- Colex if isCreature(arg[1]) then event(unpack(arg)) end end creatureEvent = function(event, delay, ...) -- Colex addEvent(CreatureEventChecker, delay, event, unpack(arg)) end function getPlayerExtraExpRate(cid) -- By MatheusMkalo return (getPlayerRates(cid)[8]-1)*100 end ]]></config> <!-- exppotion.lua --> <action itemid="12505" event="script"><![CDATA[ domodlib('PotionExpConfigs') if getPlayerStorageValue(cid, 62162) >= 1 then return doPlayerSendCancel(cid, "Você ja esta com o efeito ativo deste item") end if configs.needpa and not isPremium(cid) then return doPlayerSendCancel(cid, "Você precisa ser premium para usar este item.") end if configs.needlvl[1] and getPlayerLevel(cid) < configs.needlvl.level then return doPlayerSendCancel(cid, "You need to be level " .. configs.needlvl.level .. " to use this item.") end if configs.costmana[1] then if getCreatureMana(cid) < configs.costmana.mana then return doPlayerSendCancel(cid, "Voce percisa " .. configs.costmana.mana .. " mana para usar esse item.") else doCreatureAddMana(cid, -configs.costmana.mana) end end if configs.removeonuse then doRemoveItem(item.uid, 1) end for i = configs.time*60, 1, -1 do local a = math.floor(i/60) .. ":" .. i - (60 * math.floor(i/60)) if #a < 4 then a = string.sub(a,1,2) .. "0" .. string.sub(a, 3) end if i == configs.time*60 then creatureEvent(doPlayerSendCancel, configs.time*60*1000, cid, "O efeito da poção terminou.") end creatureEvent(doPlayerSendCancel, (configs.time*60-i)*1000, cid, "O efeito da poção exp terminara em "..a..".") end doPlayerSetExperienceRate(cid, (1+(configs.addrate/100))+(getPlayerExtraExpRate(cid)/100)) creatureEvent(doPlayerSetExperienceRate, configs.time *60*1000, cid, 1+(getPlayerExtraExpRate(cid)/100-(configs.addrate/100))) doCreatureSay(cid, "O Jogador "..getPlayerName(cid).." usou uma poçao de experiencia.") doSendMagicEffect(getThingPos(cid), 31) setPlayerStorageValue(cid, 62164, os.time()) creatureEvent(setPlayerStorageValue, configs.time *60*1000, cid, 62164, 0) return TRUE ]]></action> <creaturescript type="login" name="ExpPotion" event="script"><![CDATA[ domodlib('PotionExpConfigs') local time = configs.time if os.time()-getPlayerStorageValue(cid, 62164) < time *60 then doPlayerSetExperienceRate(cid, (1+(configs.addrate/100))+(getPlayerExtraExpRate(cid)/100)) creatureEvent(doPlayerSetExperienceRate, (time*60-(os.time()-getPlayerStorageValue(cid, 62164))) * 1000, cid, 1+(getPlayerExtraExpRate(cid)/100-(configs.addrate/100))) creatureEvent(setPlayerStorageValue, (time*60-(os.time()-getPlayerStorageValue(cid, 62164))) * 1000 , cid, 62164, 0) for i = (time*60-(os.time()-getPlayerStorageValue(cid, 62164))), 1, -1 do local a = math.floor(i/60) .. ":" .. i - (60 * math.floor(i/60)) if #a < 4 then a = string.sub(a,1,2) .. "0" .. string.sub(a, 3) end if i == (time*60-(os.time()-getPlayerStorageValue(cid, 62164))) then creatureEvent(doPlayerSendCancel, (time*60-(os.time()-getPlayerStorageValue(cid, 62164)))*1000, cid, "O efeito da poção terminou.") end creatureEvent(doPlayerSendCancel, ((time*60-(os.time()-getPlayerStorageValue(cid, 62164)))-i)*1000, cid, "O efeito da poção exp terminara em "..a..".") end end return TRUE ]]></creaturescript> </mod>
  10. Bom dia galera, eu gostaria de uma script de um npc que troca os seguintes itens ( uso TFS 0.3.6 ) 5x de cada id > 8976 + 5x 8978 pelo 8980 1x > 4863 pelo 4864 10x 5894 ou o id 10x 5898 pelo id 5904 ( o player escolhe qual item dar )
  11. Não deu certo no actions.xml esta assim <action actionid="5001;5002" script="desafio2.lua" /> e na script assim local config = { -- actions ID da estatua da entrada [25486] = {storage_timer = 5341352, posPlayer = {x = 940, y = 1274, z = 9}, monster_name = "Papao", posMonstro = {x = 940, y = 1273, z = 9}, posSaida = {x = 941, y = 1277, z = 9}, fromP={x = 938, y = 1270, z = 9}, toP={x = 942, y = 1276, z = 9}}, [25487] = {storage_timer = 5341353, posPlayer = {x = 1001, y = 1001, z = 7}, monster_name = "Papao2", posMonstro = {x = 1001, y = 1001, z = 7}, posSaida = {x = 1001, y = 1001, z = 7}, fromP={x = 931, y = 1270, z = 9}, toP={x = 936, y = 1276, z = 9}}, -- caso queira colocar outros, só repetir ^ e mudar a storage, o action id e as posições etc.. use_cooldown_global = false, -- se vc colocar true aqui, TODAS as salas de quest onde o player tentar entrar, vão ter o mesmo cooldown ou seja 1 sala a cada 5 mins, se for false, pode entrar em outra sala logo em seguida storage_timer_global = 5341350, -- storage de exaust pra entrar de novo exaust_entrar_denovo = 5 * 60, -- 5*60 = 5 minutos need_level = 100, -- level necessário para entrar / caso não precise coloque 1 ou 8 remover_player_tempo = true, -- remover o player depois de tanto tempo la dentro? / evita o player ficar la trapando o dia todo remover_timer = 10*60, -- quando tempo la dentro pra remover? / 10*60 = 10 minutos } local REWARD = { --[action id] = {rewards = {{item, quantidade}, {item, quantidade}}}, -- pode colocar quantas rewards quiser [5002] = {storage_reward = 5441400, rewards = {{2160, 1}}}, [5033] = {storage_reward = 5441401, rewards = {{2160, 1}}}, -- quando diminuir a quantidadede recompensa, ceritifique que deixou certo a quantidade de {} pra n bugar o script repetir_reward = false, -- ganhar a recompensa sempre que fizer a quest? teleportar_final = {x=1000,y=1000,z=7}, -- pra onde teleportar quando ele clicar na estatua de recompensa? (normalmente eh o templo) } -- função de tempo local function getTimeString(self) local format = { {'dia', self / 60 / 60 / 24}, {'hora', self / 60 / 60 % 24}, {'minuto', self / 60 % 60}, {'segundo', self % 60} } local out = {} for k, t in ipairs(format) do local v = math.floor(t[2]) if(v > 0) then table.insert(out, (k < #format and (#out > 0 and ', ' or '') or ' e ') .. v .. ' ' .. t[1] .. (v ~= 1 and 's' or '')) end end local ret = table.concat(out) if ret:len() < 16 and ret:find('segundo') then local a, b = ret:find(' e ') ret = ret:sub(b+1) end return ret end -- FUNÇÃO PARA KICKAR O PLAYER DA SALA APÓS TANTO TEMPO local function removePlayersTime(frompos, topos) for x = frompos.x, topos.x do for y = frompos.y, topos.y do local remove, clean = true, true local pos = {x = x, y = y, z = frompos.z} local m = getTopCreature(pos).uid if m ~= 0 and isPlayer(m) then doTeleportThing(m, getTownTemplePosition(1)) end end end return true end -- FUNÇÃO PARA REMOVER O BOSS AO KICKAR O PLAYER DA SALA local function verificaBoss(frompos, topos) for x = frompos.x, topos.x do for y = frompos.y, topos.y do if isMonster(getThingFromPos({x = x, y = y, z = frompos.z, stackpos = 253}).uid) then doRemoveCreature(getThingFromPos({x = x, y = y, z = frompos.z, stackpos = 253}).uid) end end end end local function give_reward(cid, entregar) local text = 'você recebeu ' -- string que salvará o nome das recompensas if entregar then -- existe as rewards? for i=1, #entregar do doPlayerAddItem(cid, entregar[i][1], entregar[i][2]) -- adiciona os item ao player text = text..entregar[i][2]..getItemNameById(entregar[i][1])..entregar[i][1] > 1 and "s" or "" if i == #entregar then text = text.."." -- caso seja o ultimo coloca ponto final else text = text..", " -- se não, bota virgula end end doPlayerSendTextMessage(cid, 22, text) end return true end local saveEvent = {} -- evento pra checkar o player na sala de espera function onUse(cid, item, frompos, itemEx, topos) local check = {} local actionID = item.actionid if config[actionID] then -- checa o cooldown e se pode entrar na sala if config.use_cooldown_global then if getPlayerStorageValue(cid, config.storage_timer_global) - os.time() > 0 then doPlayerSendCancel(cid, 'Aguarde, você ainda não pode entrar, está com cooldown de'..getTimeString(getPlayerStorageValue(cid, config.storage_timer_global) - os.time())..'.') return true end else if getPlayerStorageValue(cid, config[actionID].storage_timer) > 0 then doPlayerSendCancel(cid, 'Aguarde, você ainda não pode entrar, está com cooldown de'..getTimeString(getPlayerStorageValue(cid, config[actionID].storage_timer) - os.time())..'.') return true end end if #getPlayersInArea(config.[actionID].fromP, config.[actionID].toP) > 0 then doPlayerSendCancel(cid, 'Aguarde, tem jogadores la dentro.') return true end if getPlayerLevel(cid) < config.need_level then doPlayerSendCancel(cid, 'Você não tem o level necessário.') return true end -- caso tenha o level, e não tenha player la dentro, então faz a quest acontecer verificaBoss(config.[actionID].fromP, config.[actionID].to) -- remove o boss do antigo player caso haja doTeleportThing(cid, config[actionID].posPlayer) -- teleporta o player pra posição doCreateMonster(config[actionID].monster_name, config[actionID].posMonstro, false, true) -- cria o monstro na posição if config.remover_player_tempo then -- se remover o player depois de tanto tempo for true saveEvent[getPlayerGUID(cid)] = addEvent(function() removePlayersTime(config.[actionID].fromP, config.[actionID].toP) end, config.remover_timer * 1000) -- remover o player depois do tempo end if config.use_cooldown_global then setPlayerStorageValue(cid, config.storage_timer_global, os.time() + config.exaust_entrar_denovo) -- cooldown caso seja de todas as salas / n mexer else setPlayerStorageValue(cid, config[actionID].storage_timer, os.time() + config.exaust_entrar_denovo) -- cooldown pra entrar de novo / n mexer end return true end -- ESTATUA DE RECOMPENSA if REWARD[actionID] then -- caso tenha clicado na estatua de recompensa local entregar = REWARD[actionID].rewards if getPlayerStorageValue(cid, REWARD[actionID].storage_reward) == -1 then -- caso nunca tenha recebido a recompensa give_reward(cid, entregar) else -- caso ja tenha recebido if REWARD.repetir_reward then -- checa se pode repetir a recompensa give_reward(cid, entregar) else -- se não só da a mensagem q ja recebeu doPlayerSendTextMessage(cid, 22, "Você já recebeu sua recompensa.") end end doTeleportThing(cid, REWARD.teleportar_final) -- teleporta o player pra posição quando clicar na estatua de recompensa stopEvent(saveEvent[getPlayerGUID(cid)]) -- para o evento de jogar ele pro templo saveEvent[getPlayerGUID(cid)] = nil end return true end
  12. Galera eu descobri o erro, voce tem que ser vip para comprar... caso nao for so gasta o item e nao vem nada... teria como remover essa parte da storage vip? e so deixar o tempo? setPlayerStorageValue(cid,11548,os.time()+30) if(param == "super divine sword") then if getPlayerItemCount(cid, 9971) >= 60 then local bag = doPlayerAddItem(cid, 1997, 1) local new_item = doAddContainerItem(bag, 8980, 1) doItemSetAttribute(new_item, "description", "Este item pode ser adquirido através do shopping. Adquirido dia " .. os.date("%d/%m/%Y - %X") .." por ".. getPlayerName(cid) ..". Serial: ".. getPlayerGUID(cid) ..".") doPlayerRemoveItem(cid, 9971, 60) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você comprou um super divine sword com sucesso.") setPlayerStorageValue(cid,11548,os.time()+30) return TRUE else doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você não possui a quantidade necessária para comprar.") return TRUE end end -------------------------------------------------------------------------------------- talkactions.lua q é o erro la que esta dando na distro if(talkAction) { for(TalkActionsMap::iterator it = talksMap.begin(); it != talksMap.end(); ++it) { if(it->first == "illegalWords") { talkAction = it->second; break; } } if(talkAction && talkAction->isScripted()) return talkAction->executeSay(creature, words, "", channelId); return false; } else if(talkAction->getChannel() != -1 && talkAction->getChannel() != channelId) return false;
  13. Galera alguem me ajuda urgente?? por favor? estou com esse erro quando eu compro no adm o item vem mais no personagem não
  14. Boa tarde galera do tk, estou precisando de uma ajuda, o sistema funciona da seguinte forma é uma estatua que voce clica e é teleportado pra x local para fazer a quest em 3 sqm só na vertical, ai ao clicar você é teleportado nasce um monstro na sua frente ( obs: caso alguem tente entrar na quest não vai conseguir, caso tente aparece uma mensagem na parte de baixo ( nao no chat ) avisando que tem jogador la dentro. ) Ai apos matar o monstro atras dele tem outra estatua que quando vc clica vc ganha x item e é teleportado para cima novamente! Esta quest é possivel entrar sempre porém o item só ganha uma vez! TFS 0.3.6
  15. sim é um npc barqueiro igual os da cidade so q a diferença dele é q precisa de itens para viajar alem de dinheiro o 2 erro eu descobri o seguinte se eu invoco ele no /n funciona normal porem se eu tenho 2 npc da mesma script ele pega so a primeira script nao entendi o pq
  16. Straikar postou uma resposta no tópico em Suporte Tibia OTServer
    Boa galera do tk tudo bom? eu encontrei um sistema e gostaria de adicionar uma coisa a mais... gostaria que quando o personagem sentisse fome aparecesse uma mensagem em laranja em cima do personagem ( exemplo do jeito que quero: quando ele come algo BIFE BOM! ) SEGUE O SCRIPT
  17. Boa tarde pessoal do tk, tudo bom? eu encontrei um tópico uma script de barqueiro e nela encontrei dois erros 1 erro é que se eu não tiver x dinheiro exato ele não teleporta, se eu colocar 15 platina ele precisa exatamente dos 15 platina, ele não desfaz os 10k 2 erro por algum sinal eu coloco ele pelo rme ele da essa mensagem 14:33 capitao ghost: Este lugar nao existe. Por favor diga outro. Segue a script local TELEPORT_EFFECT = 10 local config = { ['ghostland'] = { position = { x=750, y=1770, z=11 }, items = { [9020] = { count = 1 }, [2152] = { count = 35 } } }, ['browville'] = { position = { x=244, y=1467, z=8 }, items = { [2152] = { count = 14 }, [10219] = { count = 1 }, } }, } local keywordHandler = KeywordHandler:new() local npcHandler = NpcHandler:new(keywordHandler) NpcSystem.parseParameters(npcHandler) local talkState = {} function onCreatureAppear(cid) npcHandler:onCreatureAppear(cid) end function onCreatureDisappear(cid) npcHandler:onCreatureDisappear(cid) end function onCreatureSay(cid, type, msg) npcHandler:onCreatureSay(cid, type, msg) end function onThink() npcHandler:onThink() end function creatureSayCallback(cid, type, msg) if(not npcHandler:isFocused(cid)) then return false end if (not checkDestinyExists(msg)) then selfSay('Este lugar nao existe. Por favor diga outro.', cid) return false end local destinyData = getDestinyData(msg) if msgcontains(string.lower(msg), string.lower(destinyData.destiny)) then local items = {} for item, data in pairs(destinyData.data.items) do if (getPlayerItemCount(cid, item) < data.count) then table.insert(items, { item = item }) end end if (#items <= 0) then removePlayerItems(cid, destinyData.data.items) doTeleportThing(cid, destinyData.data.position) doSendMagicEffect(getThingPos(cid), TELEPORT_EFFECT) return true end selfSay('desculpa voce nao tem os itens para viajar.', cid) end return TRUE end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new()) function checkDestinyExists(destiny) for dest, _ in pairs(config) do if (string.lower(dest) == string.lower(destiny)) then return true end end return false end function getDestinyData(destiny) for dest, data in pairs(config) do if (string.lower(dest) == string.lower(destiny)) then return { destiny = dest, data = data } end end end function removePlayerItems(cid, items) for item, data in pairs(items) do doPlayerRemoveItem(cid, item, data.count) end end Galera descobri o erro Numero 2, só não sei por que esta dando isso... o erro é o seguinte se eu tiver mais que uma script funcionando igual a esta só funciona a inicial ( a primeira que coloquei )
  18. alguem para ajudar? eu consegui adicionar porem não consigo adicionar um item novo no lugar desse mining
  19. não entendi nada me explica do 0? passo a passo oq tenho q fazer
  20. Nao entendi onde eu coloco isso... minha lib no talkactions e talkactions.lua if(talkAction) { for(TalkActionsMap::iterator it = talksMap.begin(); it != talksMap.end(); ++it) { if(it->first == "illegalWords") { talkAction = it->second; break; } } if(talkAction && talkAction->isScripted()) return talkAction->executeSay(creature, words, "", channelId); return false; } else if(talkAction->getChannel() != -1 && talkAction->getChannel() != channelId) return false;

Informação Importante

Confirmação de Termo