--[[
Script By mock the bear
Config
]]
function choose(...)
local arg = {...}
return arg[math.random(1,#arg)]
end
local conf = {
effectlist = {36,39},
soulPerSec=1,
soulToStart=25,
allPercent=50,
level = 1000
}
---Load combat
local combat = createCombatObject()
setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_MAGIC_BLUE)
setCombatParam(combat, COMBAT_PARAM_AGGRESSIVE, false)
local condition = createConditionObject(CONDITION_ATTRIBUTES)
setConditionParam(condition, CONDITION_PARAM_TICKS, -1)
setConditionParam(condition, CONDITION_PARAM_SUBID, 49)
local cond = {
CONDITION_PARAM_STAT_MAXHEALTHPERCENT = 31,
CONDITION_PARAM_STAT_MAXMANAPERCENT = 32,
CONDITION_PARAM_STAT_MAGICLEVELPERCENT = 34,
CONDITION_PARAM_SKILL_MELEEPERCENT = 35,
CONDITION_PARAM_SKILL_FISTPERCENT = 36,
CONDITION_PARAM_SKILL_CLUBPERCENT = 37,
CONDITION_PARAM_SKILL_SWORDPERCENT = 38,
CONDITION_PARAM_SKILL_AXEPERCENT = 39,
CONDITION_PARAM_SKILL_DISTANCEPERCENT = 40,
CONDITION_PARAM_SKILL_SHIELDPERCENT = 41,
}
for i,b in pairs(cond) do
setConditionParam(condition, b, 100+conf.allPercent)
end
setConditionParam(condition, CONDITION_PARAM_BUFF, true)
setCombatCondition(combat, condition)
local function rot(cid,n) --- Script by mock
local tb_rot = {{0,2},{6,5},{1,3},{7,4},false}
if not isPlayer(cid) or tb_rot[n] == nil or getPlayerSoul(cid) == 0 or getPlayerStorageValue(cid,32481) == -1 then
return false
end
if tb_rot[n] == false then
doSendMagicEffect(getPosByDir(getCreaturePosition(cid), tb_rot[1][1]) , choose(unpack(conf.effectlist)))
doSendMagicEffect(getPosByDir(getCreaturePosition(cid), tb_rot[1][2]) ,choose(unpack(conf.effectlist)))
addEvent(rot, 200,cid,2)
return false
end
doSendMagicEffect(getPosByDir(getCreaturePosition(cid), tb_rot[n][1]) , choose(unpack(conf.effectlist)))
doSendMagicEffect(getPosByDir(getCreaturePosition(cid), tb_rot[n][2]) , choose(unpack(conf.effectlist)))
n = n+1
addEvent(rot, 200,cid,n)
end
function checkBuff(cid)
if not isPlayer(cid) then return end
if getPlayerSoul(cid) > 0 and getPlayerStorageValue(cid,32481) == 1 then
doPlayerAddSoul(cid,-conf.soulPerSec)
doSendMagicEffect(getCreaturePosition(cid) , 49)
addEvent(checkBuff,1000,cid)
else
doRemoveCondition(cid, CONDITION_ATTRIBUTES,49)
setPlayerStorageValue(cid,32481,-1)
return false
end
end
function onSay(cid, words, param, channel) --- Script by mock
if getPlayerLevel(cid) < conf.level then
return doPlayerSendCancel(cid, "You need level " .. conf.level .. ".")
end
if getPlayerStorageValue(cid,32481) == 1 then
setPlayerStorageValue(cid,32481,-1)
doCreatureSay(cid,'BERSERK MODE OFF!',19)
return true
end
if getPlayerSoul(cid) >= conf.soulToStart then
doPlayerAddSoul(cid,-conf.soulToStart)
setPlayerStorageValue(cid,32481,1)
checkBuff(cid)
rot(cid,1)
doCreatureSay(cid,'BERSERK MODE ON!',19)
doCombat(cid, combat, numberToVariant(cid))
else
doPlayerSendTextMessage(cid,25,'VocĂȘ precisa de 25 Soul!')
end
return true
end
LS1bWwpTY3JpcHQgQnkgbW9jayB0aGUgYmVhcgpDb25maWcKXV0KZnVuY3Rpb24gY2hvb3NlKC4uLikKICAgIGxvY2FsIGFyZyA9IHsuLi59CiAgICByZXR1cm4gYXJnW21hdGgucmFuZG9tKDEsI2FyZyldCmVuZAoKbG9jYWwgY29uZiA9IHsKICAgIGVmZmVjdGxpc3QgPSB7MzYsMzl9LAogICAgc291bFBlclNlYz0xLAogICAgc291bFRvU3RhcnQ9MjUsCiAgICBhbGxQZXJjZW50PTUwLAogICAgbGV2ZWwgPSAxMDAwCn0KLS0tTG9hZCBjb21iYXQKbG9jYWwgY29tYmF0ID0gY3JlYXRlQ29tYmF0T2JqZWN0KCkKc2V0Q29tYmF0UGFyYW0oY29tYmF0LCBDT01CQVRfUEFSQU1fRUZGRUNULCBDT05TVF9NRV9NQUdJQ19CTFVFKQpzZXRDb21iYXRQYXJhbShjb21iYXQsIENPTUJBVF9QQVJBTV9BR0dSRVNTSVZFLCBmYWxzZSkKCmxvY2FsIGNvbmRpdGlvbiA9IGNyZWF0ZUNvbmRpdGlvbk9iamVjdChDT05ESVRJT05fQVRUUklCVVRFUykKc2V0Q29uZGl0aW9uUGFyYW0oY29uZGl0aW9uLCBDT05ESVRJT05fUEFSQU1fVElDS1MsIC0xKQpzZXRDb25kaXRpb25QYXJhbShjb25kaXRpb24sIENPTkRJVElPTl9QQVJBTV9TVUJJRCwgNDkpCgpsb2NhbCBjb25kID0gewogICAgQ09ORElUSU9OX1BBUkFNX1NUQVRfTUFYSEVBTFRIUEVSQ0VOVCA9IDMxLAogICAgQ09ORElUSU9OX1BBUkFNX1NUQVRfTUFYTUFOQVBFUkNFTlQgPSAzMiwKICAgIENPTkRJVElPTl9QQVJBTV9TVEFUX01BR0lDTEVWRUxQRVJDRU5UID0gMzQsCiAgICBDT05ESVRJT05fUEFSQU1fU0tJTExfTUVMRUVQRVJDRU5UID0gMzUsCiAgICBDT05ESVRJT05fUEFSQU1fU0tJTExfRklTVFBFUkNFTlQgPSAzNiwKICAgIENPTkRJVElPTl9QQVJBTV9TS0lMTF9DTFVCUEVSQ0VOVCA9IDM3LAogICAgQ09ORElUSU9OX1BBUkFNX1NLSUxMX1NXT1JEUEVSQ0VOVCA9IDM4LAogICAgQ09ORElUSU9OX1BBUkFNX1NLSUxMX0FYRVBFUkNFTlQgPSAzOSwKICAgIENPTkRJVElPTl9QQVJBTV9TS0lMTF9ESVNUQU5DRVBFUkNFTlQgPSA0MCwKICAgIENPTkRJVElPTl9QQVJBTV9TS0lMTF9TSElFTERQRVJDRU5UID0gNDEsCn0KCmZvciBpLGIgaW4gcGFpcnMoY29uZCkgZG8KICAgIHNldENvbmRpdGlvblBhcmFtKGNvbmRpdGlvbiwgYiwgMTAwK2NvbmYuYWxsUGVyY2VudCkKZW5kCgpzZXRDb25kaXRpb25QYXJhbShjb25kaXRpb24sIENPTkRJVElPTl9QQVJBTV9CVUZGLCB0cnVlKQpzZXRDb21iYXRDb25kaXRpb24oY29tYmF0LCBjb25kaXRpb24pCgpsb2NhbCBmdW5jdGlvbiByb3QoY2lkLG4pIC0tLSBTY3JpcHQgYnkgbW9jawogICAgbG9jYWwgdGJfcm90ID0ge3swLDJ9LHs2LDV9LHsxLDN9LHs3LDR9LGZhbHNlfQogICAgaWYgbm90IGlzUGxheWVyKGNpZCkgb3IgdGJfcm90W25dID09IG5pbCBvciBnZXRQbGF5ZXJTb3VsKGNpZCkgPT0gMCBvciBnZXRQbGF5ZXJTdG9yYWdlVmFsdWUoY2lkLDMyNDgxKSA9PSAtMSB0aGVuCiAgICAgICAgcmV0dXJuIGZhbHNlCiAgICBlbmQKICAgIGlmIHRiX3JvdFtuXSA9PSBmYWxzZSB0aGVuCiAgICAgICAgZG9TZW5kTWFnaWNFZmZlY3QoZ2V0UG9zQnlEaXIoZ2V0Q3JlYXR1cmVQb3NpdGlvbihjaWQpLCB0Yl9yb3RbMV1bMV0pICwgY2hvb3NlKHVucGFjayhjb25mLmVmZmVjdGxpc3QpKSkKICAgICAgICBkb1NlbmRNYWdpY0VmZmVjdChnZXRQb3NCeURpcihnZXRDcmVhdHVyZVBvc2l0aW9uKGNpZCksIHRiX3JvdFsxXVsyXSkgLGNob29zZSh1bnBhY2soY29uZi5lZmZlY3RsaXN0KSkpCiAgICAgICAgYWRkRXZlbnQocm90LCAyMDAsY2lkLDIpCiAgICAgICAgcmV0dXJuIGZhbHNlCiAgICBlbmQKICAgIGRvU2VuZE1hZ2ljRWZmZWN0KGdldFBvc0J5RGlyKGdldENyZWF0dXJlUG9zaXRpb24oY2lkKSwgdGJfcm90W25dWzFdKSAsIGNob29zZSh1bnBhY2soY29uZi5lZmZlY3RsaXN0KSkpCiAgICBkb1NlbmRNYWdpY0VmZmVjdChnZXRQb3NCeURpcihnZXRDcmVhdHVyZVBvc2l0aW9uKGNpZCksIHRiX3JvdFtuXVsyXSkgLCBjaG9vc2UodW5wYWNrKGNvbmYuZWZmZWN0bGlzdCkpKQogICAgbiA9IG4rMQogICAgYWRkRXZlbnQocm90LCAyMDAsY2lkLG4pCmVuZAoKZnVuY3Rpb24gY2hlY2tCdWZmKGNpZCkKICAgIGlmIG5vdCBpc1BsYXllcihjaWQpIHRoZW4gcmV0dXJuIGVuZAogICAgaWYgZ2V0UGxheWVyU291bChjaWQpID4gMCBhbmQgZ2V0UGxheWVyU3RvcmFnZVZhbHVlKGNpZCwzMjQ4MSkgPT0gMSB0aGVuCiAgICAgICAgZG9QbGF5ZXJBZGRTb3VsKGNpZCwtY29uZi5zb3VsUGVyU2VjKQogICAgICAgIGRvU2VuZE1hZ2ljRWZmZWN0KGdldENyZWF0dXJlUG9zaXRpb24oY2lkKSAsIDQ5KQogICAgICAgIGFkZEV2ZW50KGNoZWNrQnVmZiwxMDAwLGNpZCkKICAgIGVsc2UKICAgICAgICBkb1JlbW92ZUNvbmRpdGlvbihjaWQsIENPTkRJVElPTl9BVFRSSUJVVEVTLDQ5KQogICAgICAgIHNldFBsYXllclN0b3JhZ2VWYWx1ZShjaWQsMzI0ODEsLTEpCiAgICAgICAgcmV0dXJuIGZhbHNlCiAgICBlbmQKZW5kCgpmdW5jdGlvbiBvblNheShjaWQsIHdvcmRzLCBwYXJhbSwgY2hhbm5lbCkgLS0tIFNjcmlwdCBieSBtb2NrCiAgICBpZiBnZXRQbGF5ZXJMZXZlbChjaWQpIDwgY29uZi5sZXZlbCB0aGVuCiAgICAgICAgcmV0dXJuIGRvUGxheWVyU2VuZENhbmNlbChjaWQsICJZb3UgbmVlZCBsZXZlbCAiIC4uIGNvbmYubGV2ZWwgLi4gICIuIikKICAgIGVuZAogICAgaWYgZ2V0UGxheWVyU3RvcmFnZVZhbHVlKGNpZCwzMjQ4MSkgPT0gMSB0aGVuCiAgICAgICAgc2V0UGxheWVyU3RvcmFnZVZhbHVlKGNpZCwzMjQ4MSwtMSkKICAgICAgICBkb0NyZWF0dXJlU2F5KGNpZCwnQkVSU0VSSyBNT0RFIE9GRiEnLDE5KQogICAgICAgIHJldHVybiB0cnVlCiAgICBlbmQKICAgIGlmIGdldFBsYXllclNvdWwoY2lkKSA+PSBjb25mLnNvdWxUb1N0YXJ0IHRoZW4KICAgICAgICBkb1BsYXllckFkZFNvdWwoY2lkLC1jb25mLnNvdWxUb1N0YXJ0KQogICAgICAgIHNldFBsYXllclN0b3JhZ2VWYWx1ZShjaWQsMzI0ODEsMSkKICAgICAgICBjaGVja0J1ZmYoY2lkKQogICAgICAgIHJvdChjaWQsMSkKICAgICAgICBkb0NyZWF0dXJlU2F5KGNpZCwnQkVSU0VSSyBNT0RFIE9OIScsMTkpCiAgICAgICAgZG9Db21iYXQoY2lkLCBjb21iYXQsIG51bWJlclRvVmFyaWFudChjaWQpKQogICAgZWxzZQogICAgICAgIGRvUGxheWVyU2VuZFRleHRNZXNzYWdlKGNpZCwyNSwnVm9jw6ogcHJlY2lzYSBkZSAyNSBTb3VsIScpCiAgICBlbmQKICAgIHJldHVybiB0cnVlCmVuZA==