Action:
local config = {
time = 10, --Tempo para fazer a quest, em minutos.
toPosition = {x = x, y = y, z = z}, --Para onde os jogadores serão teleportados.
positions = {
{x = x, y = y, z = z}, --Posições que os jogadores devem ficar.
{x = x, y = y, z = z},
{x = x, y = y, z = z},
{x = x, y = y, z = z},
},
level = 100, --Level mínimo para fazer a quest.
storages = {8605, 8606},
}
function onUse(cid)
local pid = {}
if getPlayerStorageValue(cid, config.storages[2]) > -1 then
return doPlayerSendCancel(cid, "You already completed that quest.")
end
for _, online in pairs(getPlayersOnline()) do
if getPlayerStorageValue(online, config.storages[1]) > -1 then
return doPlayerSendCancel(cid, "Someone is at the quest right now.")
end
end
for i, position in pairs(config.positions) do
local p = getTopCreature(position).uid
if p < 1 or not isPlayer(p) then
return doPlayerSendCancel(cid, "Not enough players to start the quest.")
elseif getPlayerLevel(p) < config.level then
return doPlayerSendCancel(cid, "Some player is at a level below "..config.level..".")
end
pid[#pid + 1] = p
end
for _, player in pairs(pid) do
doPlayerSendTextMessage(player, MESSAGE_STATUS_CONSOLE_ORANGE, "Good luck at the quest!\nTime: "..config.time.." minutes.")
doTeleportThing(player, getClosestFreeTile(player, config.toPosition))
setPlayerStorageValue(player, config.storages[1], 1)
end
addEvent(function()
for _, player in pairs(pid) do
if isPlayer(player) and getPlayerStorageValue(player, config.storages[1]) > -1 then
doPlayerSendTextMessage(player, 27, "Oh, timeout. Sorry. :/")
setPlayerStorageValue(player, config.storages[1], -1)
doTeleportThing(player, getTownTemplePosition(getPlayerTown(player)))
end
end
end, config.time * 60 * 1000)
return true
end
Tag:
<action actionid="xxx" event="script" value="nome_do_arquivo.lua"/>
Troque xxx pelo actionid.
Creaturescript:
function onLogout(cid)
if getPlayerStorageValue(cid, 8605) > -1 then
return doPlayerSendCancel(cid, "You can't logout on the quest.") and false
end
return true
end
function onLogin(cid)
if getPlayerStorageValue(cid, 8605) > -1 then
setPlayerStorageValue(cid, 8605, -1)
end
return true
end
Tags:
<event type="logout" name="questLogout" event="script" value="nome_do_arquivo.lua"/>
<event type="login" name="questLogin" event="script" value="nome_do_arquivo.lua"/>
Em data/creaturescripts/scripts, abra o arquivo exp2.0.lua. Acima de:
if getPlayerStorageValue(cid, 6598754) >= 1 or getPlayerStorageValue(cid, 6598755) >= 1 then
Coloque:
if getPlayerStorageValue(cid, 8605) > -1 then
for _, pid in pairs(getPlayersOnline()) do
if getPlayerStorageValue(pid, 8605) > -1 then
doTeleportThing(pid, getTownTemplePosition(getPlayerTown(pid)))
doPlayerSendTextMessage(pid, 27, "Someone died and you lost the quest. Better luck on the next time!")
setPlayerStorageValue(pid, 8605, -1)
end
end
doCreatureAddHealth(cid, getCreatureMaxHealth(cid))
return false
end
No código de premiação da quest, coloque as seguintes linhas:
setPlayerStorageValue(cid, 8605, -1)
setPlayerStorageValue(cid, 8606, 1)