Postado Junho 28, 2020 5 anos Aqui você acha todas as funções do TFS atual: https://github.com/otland/forgottenserver/wiki/Script-Interface Se clica em players nesse link irá ter as funções usadas nos players: https://github.com/otland/forgottenserver/wiki/Metatable%3APlayer Se estudar um pouco de lógica de programação e algoritmos irá perceber que no TFS (e na maioria das coisas na programação) as funções são basicamente escritas em inglês, e no TFS você verifica no início delas o que ela faz: GET (puxa um valor da database), SET (muda algo na database), ADD (adiciona algo na database) e etc. No link que te passei se você procurar por storage vai achar a função que puxa o valor database e a que muda o valor na database ... A tabela da storage na database é formada basicamente pelo chave da storage e pelo valor dela, tudo indicando para determinado player, POR EXEMPLO: O player de ID 1 fez uma quest, você programou para quando ele clicar na quest mudar o valor da chave 2000 para 1, então a chave 2000 terá valor 1 para o PLAYER de ID 1. Se você entender a lógica vai ver que dá para fazer milhares de coisas ... getStorageValue(key) setStorageValue(key, value) Editado Junho 28, 2020 5 anos por luanluciano93 (veja o histórico de edições) STYLLER OT 2022
Postado Junho 28, 2020 5 anos , Editado Julho 1, 2020 5 anos por Npc Bugado (veja o histórico de edições)
Postado Junho 30, 2020 5 anos Autor Em 28/06/2020 em 20:38, Npc Bugado disse: @schibuola Eu estou no celular e não pude testar, mas veja se lhe agrada e me reporte qualquer bug, usei como base o sistema de teleport do membro lordzetros, dito isso, vamos lá:Em data/movements/scripts/ crie um arquivo chamado mov_janela_hunts.lua e adicione dentro: -- Devidos créditos pelo uso da base: lordzetros local config = { titulo = "BEM VINDO(A) A JANELA DE HUNTS!", -- Título da Janela mensagem = "Selecione qual hunt voce deseja ir:", -- Mensagem abaixo do título da janela } CONFIG_TPS_JANELA = { [19090] = { -- ID do action que ficará no portal da hunt {nome = "Demon 01", pos = {x = 98, y = 139, z = 7}}, -- Segue padrão, nome da cave e posição que o player será teleportado {nome = "Demon 02", pos = {x = 93, y = 144, z = 7}}, {nome = "Demon 03", pos = {x = 91, y = 140, z = 7}}, {nome = "Demon 04", pos = {x = 94, y = 138, z = 7}}, {nome = "Demon 05", pos = {x = 95, y = 136, z = 7}}, }, [19091] = { {nome = "Frost 01", pos = {x = 98, y = 140, z = 7}}, {nome = "Frost 02", pos = {x = 93, y = 145, z = 7}}, {nome = "Frost 03", pos = {x = 91, y = 141, z = 7}}, {nome = "Frost 04", pos = {x = 94, y = 139, z = 7}}, {nome = "Frost 05", pos = {x = 95, y = 137, z = 7}}, }, } function onStepIn(creature, item, pos, fromPosition) if ((CONFIG_TPS_JANELA[item:getActionId()]) and creature:isPlayer()) then JANELA_TP_ACTION = item:getActionId() creature:teleportTo(fromPosition, true) creature:registerEvent("janela hunts") local janela = ModalWindow(1000, config.titulo, config.mensagem) for i, v in ipairs(CONFIG_TPS_JANELA[JANELA_TP_ACTION]) do janela:addChoice(i, v.nome) doPlayerAddExp(cid,500000) doPlayerSay(cid,"Eu ganhei esse exp ai de cima até passar pelo portal novamente :)",1) end janela:addButton(100, "Confirmar") janela:addButton(101, "Fechar") janela:setDefaultEnterButton(100) janela:setDefaultEscapeButton(101) janela:sendToPlayer(creature) end return true end Em data/movements/movements.xml adicione o seguinte código abaixo de um semelhante: <movevent event="StepIn" itemid="5023" script="mov_janela_hunts.lua" /> Agora em data/creaturescripts/scripts/ crie um arquivo chamado creature_janela_hunts.lua e adicione dentro: function onModalWindow(player, modalWindowId, buttonId, choiceId) player:unregisterEvent("janela hunts") if (modalWindowId == 1000) then if (buttonId == 100) then local tele_pos = CONFIG_TPS_JANELA[JANELA_TP_ACTION][choiceId].pos player:teleportTo(tele_pos) local pos_t = Position(tele_pos) pos_t:sendMagicEffect(CONST_ME_MAGIC_BLUE) end end return true end Em data/creaturescripts/creaturescripts.xml adicione o seguinte código abaixo de um semelhante: <event type="ModalWindow" name="janela hunts" script="creature_janela_hunts.lua"/> * Configuração * Bom, apesar de que não seja difícil de configurar, é necessário uma explicação, vamos lá... 1 - [19090] = { -- ID do action que ficará no portal da hunt {nome = "Demon 01", pos = {x = 98, y = 139, z = 7}}, -- Segue padrão, nome da cave e posição que o player será teleportado {nome = "Demon 02", pos = {x = 93, y = 144, z = 7}}, {nome = "Demon 03", pos = {x = 91, y = 140, z = 7}}, {nome = "Demon 04", pos = {x = 94, y = 138, z = 7}}, {nome = "Demon 05", pos = {x = 95, y = 136, z = 7}}, }, Em [19090] este número de dentro é o actionID que ficará no portal. Com ele será identificado de qual monstro se trata, bastando apenas configurar este número e o nome das opções de monstros que você quer aparecendo na janela, em seguida, a posição na qual o jogador será teleportado, seguindo a ordem. Segue imagem de como deve ficar o seu portal: OBS²: VOCÊ EDITA O ACTIONID NO SEU EDITOR DE MAPA COLOCANDO NO ID DO ITEM DE TELEPORTE. OBS³: PARA ADICIONAR NOVAS HUNTS NO SCRIPT, BASTA SEGUIR O PADRÃO QUE ESTÁ NO CÓDIGO, DO 19090 PARA O 19091. 2 - (por fim) Em data/movements/movements.xml <movevent event="StepIn" itemid="5023" script="mov_janela_hunts.lua" /> itemID = Id do item que o player andará para abrir a janela de hunt Está como 5023 por conta que o magic forcefield é 5023, no qual utilizei para teste, aconselho você deixar da mesma forma (caso seja o mesmo id no seu servidor), ou mude, mas cuidado para não cometer algum erro. Olá, Primeiramente obrigado pela ajuda. eu fiz os passos que vc descreveu ai e qnd eu tento pular no tp, o boneco apenas anda pra tras do tp como se estivesse sendo empurrado, e nada acontece. Fui olhar a distro e ta dando esse error lá : Spoiler Lua Script Error: [MoveEvents Interface] data/movements/scripts/others/mov_janela_hunts.lua:onStepIn data/movements/scripts/others/mov_janela_hunts.lua:35: attempt to call global 'doPlayerSay' <a nil value> stack traceback: [C]: in function 'doPlayerSay' data/movements/scripts/others/mov_janela_hunts.lua:35: in function <data/movements/scripts/others/mov_janela_hunts.lua:25> Pelo oq eu pude observar, foi o unico error q deu.
Postado Junho 30, 2020 5 anos @Npc Bugado o script que você postou não faz nada do que ele esta pedindo no tópico. STYLLER OT 2022
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.