Ir para conteúdo
  • Cadastre-se

(Resolvido)ajuda em sistema (postarei aqui no fórum)


Ir para solução Resolvido por Dwarfer,

Posts Recomendados

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

image.thumb.png.317b6835deb9b34c2d2a0c129152aeff.png
image.thumb.png.dbb0a624ad7b5d13e45aa2dc04575859.png 
(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 por tataboy67 (veja o histórico de edições)
Link para o post
Compartilhar em outros sites

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.

ichigo.gif
https://github.com/Cjaker/

  , _ ,
 ( o o )
/'` ' `'\                     ESTOU TE OBSERVANDO O_O
|'''''''|
|\\'''//|
   """

 

Link para o post
Compartilhar em outros sites
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 !

Link para o post
Compartilhar em outros sites
  • 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:

 

Link para o post
Compartilhar em outros sites

esquece... foi erro meu. vou tenta dnv

 

Editado por tataboy67 (veja o histórico de edições)
Link para o post
Compartilhar em outros sites

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.

Visitante
Responder

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emojis são permitidos.

×   Seu link foi automaticamente incorporado.   Mostrar como link

×   Seu conteúdo anterior foi restaurado.   Limpar o editor

×   Não é possível colar imagens diretamente. Carregar ou inserir imagens do URL.

  • Quem Está Navegando   0 membros estão online

    Nenhum usuário registrado visualizando esta página.

×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo