posta essa quest ai que talvez eu consiga arruma !
info
Grupo: Lorde
Registrado: 22/07/12
Posts: 2.2k
Reputação: +453
Char no Tibia: Kissy

info
Grupo: Cavaleiro
Registrado: 19/11/10
Posts: 190
Reputação: +36
Char no Tibia: Frenesy

posta essa quest ai que talvez eu consiga arruma !
Bem meu amigo, essa é minha idéia de Quest. Mas o Ponto forte do meu pedido é apenas a Parte dos Grupos. Não sei usar as funções .lua sobre eles (getPlayerParty(cid) | getPartyMembers(lid) | getPartyLeader(cid) ... ).
Não é preciso fazer a Quest inteira, sobre criar estátua, e blá, blá, blá. Gostaria apenas de uma parte do Script me ensinando a como fazer a parte dos grupos mencionado no Post Original acima.
Abraços !! ![]()
Fiz aqui correndo, mas acho que vai funcionar.. testa aí.
Em data/actions/scripts crie um arquivo.lua e cole isto dentro:
local t = {
level = 100, --- level necessário para ser teleportado
party = 2, --- minimo de players na party
quest = {x=1,y=1,z=1} --- local da quest
}
local fromPos,toPos = {x = 1, y = 1, z = 1},{x = 1, y = 1, z = 1} -- começo e final da área
function onUse(cid, item, position, fromPosition, itemEx, toPosition)
local test = {}
if (getPlayerParty(cid)) then
if(getPlayerParty(cid) == cid) then
local players = getPartyMembers(getPartyLeader(cid))
if #players >= t.party then
for x = fromPos.x, toPos.x do
for y = fromPos.y, toPos.y do
local pos = {x=x, y=y, z=fromPos.z}
local m = getTopCreature(pos).uid
if m ~= 0 and isPlayer(m) then return doPlayerSendCancel(cid, "Alguém está fazendo a quest") end
end
end
for i, k in ipairs(players) do
if (getPlayerLevel(k) < t.level) then
doPlayerSendCancel(cid, "Todos os players devem ter level "..t.level.." ou mais para entrar na quest.")
return true
end
table.insert(test, k)
end
for i, tid in ipairs(test) do
doSendMagicEffect(getCreaturePosition(tid), CONST_ME_POFF)
doTeleportThing(tid, t.quest, true)
doSendMagicEffect(t.quest, CONST_ME_ENERGYAREA)
end
else
return doPlayerSendCancel(cid, "É necessário pelo menos "..t.party.." players na party.")
end
else
return doPlayerSendCancel(cid, "O líder da party deve usar a estátua primeiro.")
end
else
for x = fromPos.x, toPos.x do
for y = fromPos.y, toPos.y do
local pos = {x=x, y=y, z=fromPos.z}
local m = getTopCreature(pos).uid
if m ~= 0 and isPlayer(m) then return doPlayerSendCancel(cid, "Alguém está fazendo a quest") end
end
end
doTeleportThing(cid, t.quest)
doSendMagicEffect(t.quest, 10)
end
return true
end
Em actions.xml cole a tag: <action actionid="ACTION_ID_DA_ESTATUA" script="NOMEDOSEUARQUIVO.lua"/>
Testa aí, se aparecer algum erro.. posta que eu vejo quando voltar. Vlw, espero ter ajudado.
info
Grupo: Cavaleiro
Registrado: 19/11/10
Posts: 190
Reputação: +36
Char no Tibia: Frenesy

elsereturn doPlayerSendCancel(cid, "É necessário pelo menos "..t.party.." players na party.")
end
Essa parte aí não é nescessário. Para o Jogador, há duas opções :. Fazer a Quest Solo, ou fazer em Grupo.
Não é Obrigatório ir em Grupo para realizar a Quest.
PS :. Notei que você não usou em nenhum momento alguma Storage ou GlobalStorage. Você meio que mandou Scannear toda a área da Quest procurando por um jogador. Caso tenha algum lá, manda a mensagem. É bem interessante isso. Eu ainda não testei, mas se realmente funcionar, será de grande ajuda para futuros Scrips.
Abraços !! ![]()
Mas ele pode ir solo
Aquela parte é quantos players em party podem ir, ou seja, um grupo de quantas pessoas. Ali não tem a ver com ir solo.....
-- Sim, não usei globalstorage ou storage, fiz um loop para checkar se já tinha algum player no local.
Quando testar e se funcionar, avise no tópico que sua dúvida foi sanada para que possam mover o tópico, caso tenha alguma dúvida, poste aqui mesmo que te respondo.
Editado Julho 26 por Leoxtibia
info
Grupo: Cavaleiro
Registrado: 19/11/10
Posts: 190
Reputação: +36
Char no Tibia: Frenesy

Mas ele pode ir soloAquela parte é quantos players em party podem ir, ou seja, um grupo de quantas pessoas. Ali não tem a ver com ir solo.....
Aah é? Desculpe meu erro então. ![]()
-- Sim, não usei globalstorage ou storage, fiz um loop para checkar se já tinha algum player no local.Quando testar e se funcionar, avise no tópico que sua dúvida foi sanada para que possam mover o tópico, caso tenha alguma dúvida, poste aqui mesmo que te respondo.
Testarei agora mesmo. Caso funcione logo Editarei aqui.
Edit :.
Meu amigo... Ficou Perfeita. Melhor do que eu esperava. Muito Obrigado pela ajuda.
REP+
Editado Julho 27 por Frenesy
info
Grupo: Artesão
Registrado: 21/08/11
Posts: 130
Reputação: +29

Duvida Sanada.
Reportado para moverem. Abraço.





info
Grupo: Cavaleiro
Registrado: 19/11/10
Posts: 190
Reputação: +36
Char no Tibia: Frenesy
Olá pessoal.
Estou 'batendo cabeça' aqui tentando resolver algo... Mas ainda não obtive sucesso. Espero que possam me ajudar.
Segue Abaixo :.
Criei uma Quest, onde é preciso Clicar em uma 'Estátua' para ser Teleportado para lá.
Essa Quest pode ser feita tanto Solo, quanto em Grupo. A Questão é a Seguinte :.
Caso o Player clique na Estátua, e esse jogador não está em Nenhum Grupo, ele é 'Teleportado para dentro da Quest' e nenhum outro jogador poderá entrar no mesmo local até ele sair de lá.
Mas, caso o Player clique na Estátua, e esse jogador 'Está em um Grupo', ele é teleportado para dentro da Quest. E qualquer outro jogador 'que esteja no mesmo grupo daquele que está dentro da Quest' poderá, ao clicar na estátua, ser teleportado para dentro da Quest. Mas qualquer outro jogador que não esteja dentro do Grupo, seja Barrado de entrar.
Espero que tenha ficado claro.
Abraços !!