Postado Dezembro 3, 2017 7 anos Opa galera beleza? estou criando um script de que vc entra em um piso, abre um modal aonde vc escolhe 1 posiçao... porem eu n estou conseguindo fazer com que o jogador seja teleportado ! Aonde estou errando, lembrando que estou fazendo isso para poupar meu tempo em construir locais de quest's/hunts, o pessoal ja logo escolhe aonde deseja ir ! entao vai haver pos1, pos2, pos3... o script ja foi feito por mim, o problema esta na hr de funcionar os botoes... (lembrando que o sistema sera postado no forum aqui do TK) criado por mim e creditos de quem ajudar ! SISTEMA IMAGENS (imagens) -- Spoiler (isso poupara tempo para os criadores de mapa) para n precisar criar área com teleport's. preciso que alguem me ajude... estou com problemas na hora de adicionar a funçao de teleport ! o que sera esse erro? Lua Script Error: [CreatureScript Interface] data/creaturescripts/scripts/modalwindowhelper.lua:onModalWindow data/lib/teste.lua:8: attempt to call global 'setDestination' (a nil value) stack traceback: [C]: in function 'setDestination' data/lib/teste.lua:8: in function 'callback' data/creaturescripts/scripts/modalwindowhelper.lua:26: in function <data/creaturescripts/scripts/modalwindowhelper.lua:1:> (lembrando... o script sera postado aqui no forum com os creditos de quem ajudou.) Local do erro : Spoiler for t = 1, #config.system do setDestination(config.system[t].pos) player:say('voce foi teleportado para a hunt !', TALKTYPE_MONSTER_SAY) end Edit1: (movements) Spoiler local config = { -- Configuracao da Janela Modal mainTitleMsg = "Teleport To, by : tataboy67", -- TITUTLO DA JANELA QUE ABRE mainMsg = "script criado e desenvolvido por mim com intuito de poupar tempo de mapper's por ai.", -- MENSAGEM DA JANELA -- Fim da config Janela Modal -- Configuracoes de Crafting system = { [1] = {vocation = "Dragon", -- Isto e apenas uma categoria, nao influencia em nada pos = {x = 1275, y = 1454, z = 6}, }, [2] = {vocation = "Dragon Lord", -- Isto e apenas uma categoria, nao influencia em nada pos = {x = 1000, y = 1000, z = 7}, }, [3] = {vocation = "Demon", -- Isto e apenas uma categoria, nao influencia em nada pos = {x = 1000, y = 1000, z = 7}, }, [4] = {vocation = "Behemoth", -- Isto e apenas uma categoria, nao influencia em nada pos = {x = 1000, y = 1000, z = 7}, }, [5] = {vocation = "Giant Spider", -- Isto e apenas uma categoria, nao influencia em nada pos = {x = 1000, y = 1000, z = 7}, }, [6] = {vocation = "Serpent Spawn", -- Isto e apenas uma categoria, nao influencia em nada pos = {x = 1000, y = 1000, z = 7}, }, [7] = {vocation = "Medusa", -- Isto e apenas uma categoria, nao influencia em nada pos = {x = 1000, y = 1000, z = 7}, }, [8] = {vocation = "Hydra", -- Isto e apenas uma categoria, nao influencia em nada pos = {x = 1000, y = 1000, z = 7}, }, [9] = {vocation = "Strong Rat", -- Isto e apenas uma categoria, nao influencia em nada pos = {x = 1000, y = 1000, z = 7}, }, [10] = {vocation = "Vampire", -- Isto e apenas uma categoria, nao influencia em nada pos = {x = 1000, y = 1000, z = 7}, }, }, } local creature = Creature(cid) function onStepIn(creature, item, position, fromPosition) creature:sendMainTelWindow(config) return true end (lib) Spoiler function Player:sendMainTelWindow(config) local function buttonCallback(button, choice) -- funcionalidade do modal if button.text == "Teleportar" then -- uso do for no script for t = 1, #config.system do setDestination(config.system[t].pos) player:say('voce foi teleportado para a hunt !', TALKTYPE_MONSTER_SAY) end end end local window = ModalWindow { title = config.mainTitleMsg, message = config.mainMsg.."\n" } window:addButton("Teleportar", buttonCallback) window:addButton("Exit", buttonCallback) -- uso do for no script for i = 1, #config.system do window:addChoice(config.system.vocation) end window:setDefaultEnterButton("Teleportar") window:setDefaultEscapeButton("Exit") window:sendToPlayer(self) end Editado Dezembro 4, 2017 7 anos por tataboy67 (veja o histórico de edições) Meus trabalhos: [Movements] TFS 1.1+ Area Hardcore [Movements] TFS 1.1+ Tile Party [Action] TFS 1.1+ Bau diário [Action] TFS 1.1+ Guild Dungeon Lever [Talkactions] TFS 0.3.6 / 0.4 Quest Hunt por Tempo Contato: Discord: Tataboy67#4934
Postado Dezembro 4, 2017 7 anos Por gentileza, publique o script inteiro para que os membros do TibiaKing possam lhe ajudar, dessa forma seria um 'chute' adivinhar qual variável utilizar para teletransporte. https://github.com/Cjaker/ , _ , ( o o ) /'` ' `'\ ESTOU TE OBSERVANDO O_O |'''''''| |\\'''//| """
Postado Dezembro 4, 2017 7 anos Autor 8 minutos atrás, Cjaker disse: Por gentileza, publique o script inteiro para que os membros do TibiaKing possam lhe ajudar, dessa forma seria um 'chute' adivinhar qual variável utilizar para teletransporte. topico atualizado ! Meus trabalhos: [Movements] TFS 1.1+ Area Hardcore [Movements] TFS 1.1+ Tile Party [Action] TFS 1.1+ Bau diário [Action] TFS 1.1+ Guild Dungeon Lever [Talkactions] TFS 0.3.6 / 0.4 Quest Hunt por Tempo Contato: Discord: Tataboy67#4934
Postado Dezembro 4, 2017 7 anos Solução Tá bem bagunçado isso aí carinha, na verdade não ia funcionar nada rsrsr. Testa assim: lib Spoiler local config = { mainMsg = "Decida onde você quer ir:", title = "Teleportar", system = { [1] = {vocation = "Dragon", pos = {x = 1275, y = 1454, z = 6}}, [2] = {vocation = "Dragon Lord", pos = {x = 1000, y = 1000, z = 7}}, [3] = {vocation = "Demon", pos = {x = 1000, y = 1000, z = 7}}, [4] = {vocation = "Behemoth", pos = {x = 1000, y = 1000, z = 7}}, [5] = {vocation = "Giant Spider", pos = {x = 1000, y = 1000, z = 7}}, [6] = {vocation = "Serpent Spawn", pos = {x = 1000, y = 1000, z = 7}}, [7] = {vocation = "Medusa", pos = {x = 1000, y = 1000, z = 7}}, [8] = {vocation = "Hydra", pos = {x = 1000, y = 1000, z = 7}}, [9] = {vocation = "Strong Rat", pos = {x = 1000, y = 1000, z = 7}}, [10] = {vocation = "Vampire", pos = {x = 1000, y = 1000, z = 7}} }, modal_tile = 7654 } function Player:doModalTileTpChoice(windowId, buttonId, choiceId) if (windowId == config.modal_tile) then if buttonId == 1 then local x = config.system[choiceId] if not x then return true end self:teleportTo(x.pos) Position(x.pos):sendMagicEffect(CONST_ME_TELEPORT) self:say("Você foi teleportado para a hunt!", TALKTYPE_MONSTER_SAY) return true end return false end return false end function Player:sendMainTelWindow() local window = ModalWindow(config.modal_tile, config.title, config.mainMsg) window:addButton(1, "Teleportar") window:addButton(2, "Exit") for index, x in spairs(config.system) do window:addChoice(index, x.vocation) end window:setDefaultEnterButton(1) window:setDefaultEscapeButton(2) window:sendToPlayer(self) return true end function spairs(t, order) local keys = {} for k in pairs(t) do keys[#keys+1] = k end if order then table.sort(keys, function(a,b) return order(t, a, b) end) else table.sort(keys) end local i = 0 return function() i = i + 1 if keys[i] then return keys[i], t[keys[i]] end end end Em creaturescripts/scripts, crie um arquivo.lua: Spoiler function onModalWindow(player, modalWindowId, buttonId, choiceId) player:doModalTileTpChoice(modalWindowId, buttonId, choiceId) return true end No login.lua, registre o evento: player:registerEvent("tptile_modal") No creaturescripts.xml, adicione a tag: <event type="modalwindow" name="tptile_modal" script="NOMEDOARQUIVO.lua"/> Em movements/scripts, crie um arquivo.lua (ou substitua pelo que tem dentro do arquivo que você já possui): Spoiler function onStepIn(creature, item, position, fromPosition) if not creature:isPlayer() then return true end creature:sendMainTelWindow() return true end No movements.xml, adicione a tag: <movevent event="StepIn" actionid="ACTION_ID_DO_PISO" script="NOMEDOARQUIVO.lua" /> Contato: Email: [email protected] Discord: Dwarfer#2715
Postado Dezembro 5, 2017 7 anos Autor esquece... foi erro meu. vou tenta dnv Editado Dezembro 5, 2017 7 anos por tataboy67 (veja o histórico de edições) Meus trabalhos: [Movements] TFS 1.1+ Area Hardcore [Movements] TFS 1.1+ Tile Party [Action] TFS 1.1+ Bau diário [Action] TFS 1.1+ Guild Dungeon Lever [Talkactions] TFS 0.3.6 / 0.4 Quest Hunt por Tempo Contato: Discord: Tataboy67#4934
Participe da conversa
Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.