Postado Novembro 6, 2017 7 anos Este é um post popular. Olá, tudo bom? Peguei um sistema que o lobão criou e modifiquei para TFS 1.x (eu uso o 1.3 e funcionou certinho).Lembrando que todos os créditos são do @xWhiteWolf. Explicação: O sistema escolhe automáticamente, entre todas as salas de trainers, aquela que está vazia pra te alocar. Fiz em dois scripts de movements, um o action id no teleport para entrar na sala e outro no teleport para sair:trainer_entrar.lua: Spoiler local storage = 5845 local config = { first_room_pos = {x = 173, y = 223, z = 5}, -- posicao da primeira pos (linha 1 coluna 1) distX= 4, -- distancia em X entre cada sala (de uma mesma linha) distY= 8, -- distancia em Y entre cada sala (de uma mesma coluna) rX= 2, -- numero de colunas rY= 2 -- numero de linhas } local function isBusyable(position) local player = Tile(position):getTopCreature() if player then if player:isPlayer() then return false end end local tile = Tile(position) if not tile then return false end local ground = tile:getGround() if not ground or ground:hasProperty(CONST_PROP_BLOCKSOLID) then return false end local items = tile:getItems() for i = 1, tile:getItemCount() do local item = items[i] local itemType = item:getType() if itemType:getType() ~= ITEM_TYPE_MAGICFIELD and not itemType:isMovable() and item:hasProperty(CONST_PROP_BLOCKSOLID) then return false end end return true end local function addTrainers(position, arrayPos) if not isBusyable(position) then for places = 1, #arrayPos do local trainer = Tile(arrayPos[places]):getTopCreature() if not trainer then local monster = Game.createMonster("Trainer", arrayPos[places]) monster:getPosition():sendMagicEffect(CONST_ME_MAGIC_BLUE) end end end end local function calculatingRoom(uid, position, coluna, linha) local player = Player(uid) if coluna >= config.rX then coluna = 0 linha = linha < (config.rY -1) and linha + 1 or false end if linha then local room_pos = {x = position.x + (coluna * config.distX), y = position.y + (linha * config.distY), z = position.z} if isBusyable(room_pos) then player:teleportTo(room_pos) player:getPosition():sendMagicEffect(CONST_ME_TELEPORT) addTrainers(room_pos, {{x = room_pos.x - 1, y = room_pos.y + 1, z = room_pos.z}, {x = room_pos.x + 1 , y = room_pos.y + 1, z = room_pos.z}}) else calculatingRoom(uid, position, coluna + 1, linha) end else player:sendCancelMessage("Couldn't find any position for you right now.") end end function onStepIn(creature, item, position, fromPosition) if not creature:isPlayer() then return false end if creature:getStorageValue(storage) - os.time() > 0 then creature:sendTextMessage(MESSAGE_INFO_DESCR, "You gotta wait a few seconds before you can enter trainning room again") creature:teleportTo(fromPosition, true) return true end calculatingRoom(creature.uid, config.first_room_pos, 0, 0) return true end trainer_sair.lua: Spoiler local storage = 5845 local function removeTrainers(position) local arrayPos = {{x = position.x - 1, y = position.y + 1, z = position.z}, {x = position.x + 1 , y = position.y + 1, z = position.z}} for places = 1, #arrayPos do local trainer = Tile(arrayPos[places]):getTopCreature() if trainer then if trainer:isMonster() then trainer:getPosition():sendMagicEffect(CONST_ME_TELEPORT) trainer:remove() end end end end function onStepIn(creature, item, position, fromPosition) if not creature:isPlayer() then return false end removeTrainers(fromPosition) creature:teleportTo(creature:getTown():getTemplePosition()) creature:setStorageValue(storage, os.time() + 5) return true end É isso pessoal, para melhor entendimento de como funciona ou como instalar veja o tópico do lobão: http://www.tibiaking.com/forum/forums/topic/68031-novo-sistema-de-trainer-036~04/ STYLLER OT 2022
Postado Novembro 6, 2017 7 anos Parabéns, seu tópico de conteúdo foi aprovado! Muito obrigado pela sua contribuição, nós do Tibia King agradecemos. Seu conteúdo com certeza ajudará à muitos outros, você recebeu +1 REP. Spoiler Congratulations, your content has been approved! Thank you for your contribution, we of Tibia King we are grateful. Your content will help many other users, you received +1 REP.
Postado Novembro 6, 2017 7 anos parece estar bem feito. Agradeço o trabalho que você teve para adaptar o sistema. Se depender de mim, aprovadíssimo. Todos os meus trabalhos importantes estão na seção "Sobre mim" no meu perfil; Dá uma passada lá! "Há três caminhos para o fracasso: não ensinar o que se sabe, não praticar o que se ensina, e não perguntar o que se ignora." - São Beda (obg ao @Beeny por fazer essa linda sign <3)
Postado Novembro 6, 2017 7 anos Um dos dois melhores programadores Lua, mt bom, vou adicionar no servidor.
Postado Novembro 6, 2017 7 anos Parabéns luan, muito bom. Links uteis: Spoiler Forúm Spoiler Ferramentas para tibia 11.40(objectbuilder-itemeditor-rme) RME 3.3 Atualizado com animações. Pagina de addons 10.90 Youtube Spoiler Cliente Próprio 11.00--11.56 (NOTPAD++) Configurando MAQUINA VIRTUAL GOOGLE(GRATUITA PARA TESTE VALIDADE 1 ANO) Configurando Puttygen-Fillezila(MAQUINA GOOGLE Compilando OTX-TFS 1.3 LINUX (MAQUINA GOOGLE) Object Builder , criação de items Adicionar imagens na Store.
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.