Jest ktoś zainteresowany napisaniem skryptu, który będzie działać na takiej zasadzie, że gracz używa tego scrolla i jego exp rate zmienia się x1,5 na 2h ?
Lol, w czym problem?
Zamiast Ringa Wstawiasz scroola i ustawiasz, ze ma 1 uzycie...
A wogole nie napisales, ile do ma dzialac...
data/actions/scripts/other/eexss
-- Credits: Slawkens and Edit By Shakaal
local config = {
rate = 1.5, -- 1.5 = 1.5x faster than normal
time = 120, -- in minutes
storage = 20532
}
local function experienceEnd(cid)
if isPlayer(cid) then
doPlayerSetExperienceRate(cid, 1.0)
setPlayerStorageValue(tid, config.storage, -1)
doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Your extra experience rate has passed.")
end
end
function onUse(cid, item, fromPosition, itemEx, toPosition)
local tid = itemEx.uid or cid
if(not isPlayer(tid)) then
return false
end
local status = getPlayerStorageValue(tid, config.storage)
if(status ~= -1) then
doPlayerSendTextMessage(tid, MESSAGE_INFO_DESCR, "Your extra experience rate is already activated!(Script by Shakaal) It will expire at: " .. os.date("%X", status))
return true
end
doPlayerSendTextMessage(tid, MESSAGE_INFO_DESCR, "Your extra experience rate has been activated!(Script by Shakaal) It is now: " .. config.rate .. ".")
doPlayerSetExperienceRate(tid, config.rate)
setPlayerStorageValue(tid, config.storage, os.time() + config.time * 60 * 1000)
doRemoveItem(item.uid, 1)
addEvent(experienceEnd, config.time * 60 * 1000, tid)
return true
end
data/actions/actions.xml
<action itemid="id scrolla" script="other/eexss.lua"/>
local storage = 20011
function onLogin(cid)
if(getPlayerStorageValue(cid, storage) == 1) then
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Your extra exp rate will expire at: " .. os.date("%X", getPlayerStorageValue(cid, storage)))
else
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_RED, "You do not have any extra experience time.")
end
return true
end
local config = {
rate = 2.0, -- 2x More Experience
time = 60, -- Minutes of Exp Time
storage = 20011
}
function onUse(cid, item, fromPosition, itemEx, toPosition)
local tid = itemEx.uid or cid
if(isPlayer(tid) ~= TRUE) then
return false
end
if(getPlayerStorageValue(tid, config.storage) == 1) then
doPlayerSendTextMessage(tid, MESSAGE_STATUS_CONSOLE_BLUE, "Your extra exp rate will expire at: " .. os.date("%X", getPlayerStorageValue(tid, config.storage)))
return true
end
doPlayerSendTextMessage(tid, MESSAGE_STATUS_CONSOLE_ORANGE, "Your extra experience rate has been activated! It is now: " .. config.rate .. ".")
doPlayerSetRate(tid, SKILL__LEVEL, config.rate)
setPlayerStorageValue(tid, config.storage, os.time() + config.time * 60 * 1000)
addEvent(endExpRate, config.time * 60 * 1000, tid)
doRemoveItem(item.uid, 1)
return true
end
local function endExpRate(tid)
doPlayerSetRate(tid, SKILL__LEVEL, 1.0) --config.lua rate
setPlayerStorageValue(tid, config.storage, -1)
doPlayerSendTextMessage(tid, MESSAGE_STATUS_CONSOLE_RED, "Your extra experience time has ended.")
end
registerCreatureEvent(cid, "expRate")
local storage = 20011
function onLogin(cid)
if(getPlayerStorageValue(cid, storage) == 1) then
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Your extra exp rate will expire at: " .. os.date("%X", getPlayerStorageValue(tid, config.storage)).")
else
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_RED, "You do not have any extra experience time.")
setPlayerStorageValue(cid, storage, -1)
end
return true
end
function onUse(cid, item, frompos, item2, topos)
local exp = 900000
local pos = getPlayerPosition(cid)
doPlayerAddExp(cid,exp)
doSendMagicEffect(pos, CONST_ME_ENERGYAREA)
end
<action itemid="5958" script="expzwoj.lua" />