Postado Julho 7, 2018 6 anos Este é um post popular. Opa galera beleza? Como prometido eu tentei fazer 1 script e vim posta-lo no TibiaKing...O script é simples e com uma boa configuração: Numero de membros da Party Nível necessário Se precisa de PZ para entrarem Se precisa que todos estejam perto Se só o Leader poderá entrar Teleporte que os jogadores irão Items necessários Como o script funciona? O script ele serve como uma forma de o jogador poder entrar em 1 Sala com a necessidade de uma Party, nível necessário e alguns Items.Meu intuito em fazer esses tipos de scripts: Estou cada vez mais tentando aprender um pouco mais em relação a scripts Lua... Sou um pouco leigo nessa parte, mas vou continuar treinando e estudando para alimentar meu conhecimento na linguagem e o conteúdo no Fórum. Espero que vocês me apoiem no que estou tentando fazer, e agradeço a todos que estão me ajudando a entender um pouco do assunto.Sem mais delongas, vamos ao Script: Adicione a linha em:(data/movements/movements.xml) <movevent event="StepIn" actionid="5900" script="Tile_Party.lua"/> Crie um arquivo em:(data/movements/scripts/Tile_Party.lua) local config = { members = 2, -- membros ou +. level = 300, -- nivel que todos os membros devem ter para entrar. leader = false, -- somente o leader pode entrar no teleport. pz = true, -- só irá funcionar se todos os membros tiverem em PZ area. pos_to = {x = 1143, y = 1064, z = 7}, -- posição que os jogadores serão teleportados. other = { pert = true, -- só poderá entrar se os membros tiverem na quant_sqm de distancia. quant_sqm = 7 -- jogadores tem que estar a 7 sqm de distancia do jogador que entrou no TP. }, items = { -- itens necessários para que os players entrem. [1] = {item = 2160, count = 1}, [2] = {item = 2159, count = 1} -- [3] = {item = ItemID, count = Quantidade} }, } function onStepIn(player, item, position, fromPosition) local party = player:getParty() if not party then player:teleportTo(fromPosition) player:getPosition():sendMagicEffect(CONST_ME_TELEPORT) position:sendMagicEffect(CONST_ME_MAGIC_RED) return player:sendCancelMessage("You don't have a party.") end local leader = party:getLeader() local member = party:getMembers() if config.leader and player ~= leader then player:teleportTo(fromPosition) player:getPosition():sendMagicEffect(CONST_ME_TELEPORT) position:sendMagicEffect(CONST_ME_MAGIC_RED) player:sendCancelMessage("Somente o leader pode entrar por aqui.") return false end table.insert(member, leader) local ready = {} if #member >= config.members-1 then for _, var in pairs(member) do if var:getLevel() > config.level then if config.other.pert then if player:getPosition():getDistance(var:getPosition()) >= config.other.quant_sqm then player:teleportTo(fromPosition) player:getPosition():sendMagicEffect(CONST_ME_TELEPORT) player:sendCancelMessage("Seu time tem que esta proximo de voce.") return end end if config.pz then if not getTileInfo(getThingPos(var)).protection then player:teleportTo(fromPosition) player:getPosition():sendMagicEffect(CONST_ME_TELEPORT) return player:sendCancelMessage("Seu time tem que estar em protection zone.") end end for k, v in pairs(config.items) do if var:getItemCount(v.item) < v.count then player:teleportTo(fromPosition) player:getPosition():sendMagicEffect(CONST_ME_TELEPORT) player:sendTextMessage(22,string.format("O membro (corno) %s não possui %sx %s.", var:getName(), v.count, ItemType(v.item):getName())) return false end end table.insert(ready, var) else player:sendTextMessage(22,"Um dos membros da party não possui nivel superior a "..config.level..".") player:teleportTo(fromPosition) player:getPosition():sendMagicEffect(CONST_ME_TELEPORT) return false end end if rawequal(#ready, #member) then for _, var in pairs(member) do for k, v in pairs(config.items) do var:removeItem(v.item, v.count) end var:sendTextMessage(22,"Your team join the room.") var:teleportTo(config.pos_to) var:getPosition():sendMagicEffect(CONST_ME_TELEPORT) end end else player:teleportTo(fromPosition) player:getPosition():sendMagicEffect(CONST_ME_TELEPORT) position:sendMagicEffect(CONST_ME_MAGIC_RED) player:sendTextMessage(20,"Somente party's com " .. config.members-1 .. " ou mais jogadores, poderão passar.") end return true end Deixe seu REP+ Para me motivar ainda mais a postar novos scripts para vocês. Créditos:@Snowsz@KotZletY@Vodkart@LyuEstá atualizado o script... Algumas configurações foram adicionadas ! local config = { members = 2, -- membros ou +. level = 300, -- nivel que todos os membros devem ter para entrar. leader = false, -- somente o leader pode entrar no teleport. pz = true, -- só irá funcionar se todos os membros tiverem em PZ area. pos_to = {x = 1143, y = 1064, z = 7}, -- posição que os jogadores serão teleportados. other = { pert = true, -- só poderá entrar se os membros tiverem na quant_sqm de distancia. quant_sqm = 7 -- jogadores tem que estar a 7 sqm de distancia do jogador que entrou no TP. }, items = { -- itens necessários para que os players entrem. [1] = {item = 2160, count = 1}, [2] = {item = 2159, count = 1} -- [3] = {item = ItemID, count = Quantidade} }, } Editado Julho 7, 2018 6 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 Julho 7, 2018 6 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. Mostrar conteúdo oculto 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. eu fiz um sistema parecido uma vez para tfs 1.2+ que os jogadores para entrar numa cave eles teriam que falar com o npc e todos teriam que ter level, storage, etc... Porém aconselho a colocar no seu script que os jogadores deveriam estar perto, digamos no máximo 8 sqm's perto do jogador que ativou a movements, porque digamos que eu estava na hunt ou sei lá num pvp e do nada sou teleportado... Só uma ideia para acrescentar no código!! ta mto maneiro. então se puder para checar se está infight ou perto do jogador, ficaria supimpa [*Ninguém será digno do sucesso se não usar suas derrotas para conquistá-lo.*] DISCORD: vodkart#6090
Postado Julho 7, 2018 6 anos Autor Em 07/07/2018 em 00:19, Vodkart disse: 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. Mostrar conteúdo oculto Mostrar conteúdo oculto 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. eu fiz um sistema parecido uma vez para tfs 1.2+ que os jogadores para entrar numa cave eles teriam que falar com o npc e todos teriam que ter level, storage, etc... Porém aconselho a colocar no seu script que os jogadores deveriam estar perto, digamos no máximo 8 sqm's perto do jogador que ativou a movements, porque digamos que eu estava na hunt ou sei lá num pvp e do nada sou teleportado... Só uma ideia para acrescentar no código!! ta mto maneiro. então se puder para checar se está infight ou perto do jogador, ficaria supimpa Com certeza irei aderir à isso também ! Amanhã vou estudar um pouco de como fazer esse negocio do SQM, creio que o infight vai ser moleza!! Eu estou com uma ideia legal e inovadora tbm para postar aqui no fórum hehehhe ... Nunca postado nem em versões anteriores. Editado Julho 7, 2018 6 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 Julho 7, 2018 6 anos Em 07/07/2018 em 00:41, tataboy67 disse: Com certeza irei aderir à isso também ! Amanhã vou estudar um pouco de como fazer esse negocio do SQM, creio que o infight vai ser moleza!! Eu estou com uma ideia legal e inovadora tbm para postar aqui no fórum hehehhe ... Nunca postado nem em versões anteriores. vou aguardar!!! sobre a pos é simples, por exemplo: local MyPos, maxSqm = player:getPosition(), 7 -- demais blocos if MyPos:getDistance(var:getPosition()) >= maxSqm then -- o 'var' é dentro do seu looping player:sendCancelMessage("tem que estar perto.") end [*Ninguém será digno do sucesso se não usar suas derrotas para conquistá-lo.*] DISCORD: vodkart#6090
Postado Julho 7, 2018 6 anos Autor Em 07/07/2018 em 01:44, Vodkart disse: vou aguardar!!! sobre a pos é simples, por exemplo: local MyPos, maxSqm = player:getPosition(), 7 -- demais blocos if MyPos:getDistance(var:getPosition()) >= maxSqm then -- o 'var' é dentro do seu looping player:sendCancelMessage("tem que estar perto.") end Vou atualizar amanhã aqui no script e já adiciono seus créditos !! 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.