Por
tataboy67
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
@Lyu
Está 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}
},
}
Posts Recomendados
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.