Ir para conteúdo
Banner com Efeitos

Featured Replies

Postado
o player precisa duelar x 1 com esse monstro e caso ele derrote o monstro ele ganha um item e é teleportado para o templo

Você só vai precisar alterar o seu action script e adicionar 3 creature events. Remova o seu script de movement e o portal da arena.

Substitua o seu script da alavanca por este (data/actions/scripts):

local tab = {
	storages = {55554, 55553}, -- {globalstorage, storage},
	pos = {x=1882, y=2080, z=14}, -- pos x, y, z que o player será teleportado
	msgs = {"E que comecem os jogos!!", "Há alguém fazendo a Quest."} -- menssagens {"ao puxar", "aguardando"}
}

function onUse(cid, item, frompos, item2, topos)
	if getGlobalStorageValue(tab.storages[1]) < 1 then
		setGlobalStorageValue(tab.storages[1], 1)
		setPlayerStorageValue(cid, tab.storages[2], 1)
		doTeleportThing(cid, tab.pos)
		doSendMagicEffect(getThingPos(cid), CONST_ME_TELEPORT)
		doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, tab.msgs[1])
	else
		doSendMagicEffect(getThingPos(cid), CONST_ME_POFF)
		doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, tab.msgs[2])
	end
	
	return true
end

survivalarena.lua (data/creaturescripts/scripts):

local tab = {
    storages = {55554, 55553}, -- {globalstorage, storage},
    boss = "Infernatil", -- "Monster Name",
    reward = {2160, 50}, -- a recompensa {itemid, count},
    msg = "Parabéns, você conseguiu sobreviver e recebeu sua recompensa."
}

function onKill(cid, target, lastHit)
    if getCreatureName(target) == tab.boss and getPlayerStorageValue(cid, tab.storages[2]) > 0 then
        setGlobalStorageValue(tab.storages[1], -1)
        setPlayerStorageValue(cid, tab.storages[2], -1)
        doPlayerAddItem(cid, tab.reward[1], tab.reward[2])
        doTeleportThing(cid, getTownTemplePosition(getPlayerTown(cid)))
        doSendMagicEffect(getThingPos(cid), CONST_ME_TELEPORT)
        doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, tab.msg)
    end
    
    return true
end

function onDeath(cid)
    if getPlayerStorageValue(cid, tab.storages[2]) > 0 then
        setGlobalStorageValue(tab.storages[1], -1)
        setPlayerStorageValue(cid, tab.storages[2], -1)
    end
    
    return true
end

function onLogout(cid)
    if getPlayerStorageValue(cid, tab.storages[2]) > 0 then
        setGlobalStorageValue(tab.storages[1], -1)
        setPlayerStorageValue(cid, tab.storages[2], -1)
        doTeleportThing(cid, getTownTemplePosition(getPlayerTown(cid)))
    end
    
    return true
end

Adicione os registros dos creature events (kill/death) no arquivo login.lua (data/creaturescripts/scripts):

registerCreatureEvent(cid, "ArenaKill")
registerCreatureEvent(cid, "ArenaDeath")

Tags - creaturescripts.xml (data/creaturescripts):

<event type="kill" name="ArenaKill" script="survivalarena.lua"/>
<event type="death" name="ArenaDeath" script="survivalarena.lua"/>
<event type="logout" name="ArenaLogout" script="survivalarena.lua"/>

Editado por Suicide (veja o histórico de edições)

The corrupt fear us.

The honest support us.

The heroic join us.

  • Respostas 35
  • Visualizações 2.1k
  • Created
  • Última resposta

Top Posters In This Topic

Most Popular Posts

  • Seguinte, remova todos os scripts relacionados a essa sua arena, pra evitar possíveis erros. Remova também o monstro da arena pelo RME, não vai ser necessário. Adicione esse script ao arquivo da sua

  • falha minha, aqui estão as funções que faltavam: só colocar elas no começo do script logo abaixo da tabela que deve funcionar perfeito function isOnSameFloor(fromPos, toPos) return fromPos.z == to

  • data/creaturescripts/scripts/Login.lua   tente adicionar isso antes do ultimo return true       if getGlobalStorageValue(cid, 55554) == 1 then         setGlobalStorageValue(cid, 55554, -1)     end

Postado
  • Autor

então suicide acabei de implementar seu script aqui e fui testar. porém mesmo eu ainda não ter ido para a arena quando clico sobre a alavanca aparece que ja tem player fazendo a quest. 

Postado
  • Autor

bom primeiramente gostaria de agradecer pela ajuda de todos vocês.

Klipstyle seguindo o script do matheusak funcionou quase 100%, mas ainda tem um pequeno probleminha.

é o seguinte, se o player morrer para o monstro dentro da arena, fica tudo normal e para de contar os minutos zerando tudo. mas se ele chegar ate o final da quest e passar pelo teleport que muda a storage dele e consequentemente era para resetar o tempo isso não ocorre. 

 

é ate possível outro player entrar, mas o tempo continua correndo, assim ele pode estar em qualquer lugar e ja ter feito a quest mas se o tempo acabar ele é teleportado para a posição do templo configurada.

 

ai esta meu script do movements do tile.

 

function onStepIn(cid, item, fromPosition, itemEx, toPosition)

 
doTeleportThing(cid, {x=1645, y=3196, z=0})
doSendMagicEffect(getThingPos(cid), 10)
setGlobalStorageValue(55554, -1)
setPlayerStorageValue(cid, 22038, 0)
return true
end
Postado

no final da arena faça um portal para onde ira pegar o premio, faça uma sala com cara de sala de espera e faça os players esperarem o restante dos minutos na sala do premio claro coloque tudo ant-logout.

coloque um action no portal que teleporte e mande a mensagem dizendo para terminar de esperar o tempo :) acho q resolveria.

www.pokemiw.com
24 Horas Online - 1º 2º 3º 4º 5º 6º 7º gerações 100%
 

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.

Visitante
Responder

Quem Está Navegando 0

  • Nenhum usuário registrado visualizando esta página.

Estatísticas dos Fóruns

  • Tópicos 96.9k
  • Posts 519.7k

Informação Importante

Confirmação de Termo