fork download
  1. --[[
  2. Script By mock the bear
  3. Config
  4. ]]
  5. function choose(...)
  6. local arg = {...}
  7. return arg[math.random(1,#arg)]
  8. end
  9.  
  10. local conf = {
  11. effectlist = {36,39},
  12. soulPerSec=1,
  13. soulToStart=25,
  14. allPercent=50,
  15. level = 1000
  16. }
  17. ---Load combat
  18. local combat = createCombatObject()
  19. setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_MAGIC_BLUE)
  20. setCombatParam(combat, COMBAT_PARAM_AGGRESSIVE, false)
  21.  
  22. local condition = createConditionObject(CONDITION_ATTRIBUTES)
  23. setConditionParam(condition, CONDITION_PARAM_TICKS, -1)
  24. setConditionParam(condition, CONDITION_PARAM_SUBID, 49)
  25.  
  26. local cond = {
  27. CONDITION_PARAM_STAT_MAXHEALTHPERCENT = 31,
  28. CONDITION_PARAM_STAT_MAXMANAPERCENT = 32,
  29. CONDITION_PARAM_STAT_MAGICLEVELPERCENT = 34,
  30. CONDITION_PARAM_SKILL_MELEEPERCENT = 35,
  31. CONDITION_PARAM_SKILL_FISTPERCENT = 36,
  32. CONDITION_PARAM_SKILL_CLUBPERCENT = 37,
  33. CONDITION_PARAM_SKILL_SWORDPERCENT = 38,
  34. CONDITION_PARAM_SKILL_AXEPERCENT = 39,
  35. CONDITION_PARAM_SKILL_DISTANCEPERCENT = 40,
  36. CONDITION_PARAM_SKILL_SHIELDPERCENT = 41,
  37. }
  38.  
  39. for i,b in pairs(cond) do
  40. setConditionParam(condition, b, 100+conf.allPercent)
  41. end
  42.  
  43. setConditionParam(condition, CONDITION_PARAM_BUFF, true)
  44. setCombatCondition(combat, condition)
  45.  
  46. local function rot(cid,n) --- Script by mock
  47. local tb_rot = {{0,2},{6,5},{1,3},{7,4},false}
  48. if not isPlayer(cid) or tb_rot[n] == nil or getPlayerSoul(cid) == 0 or getPlayerStorageValue(cid,32481) == -1 then
  49. return false
  50. end
  51. if tb_rot[n] == false then
  52. doSendMagicEffect(getPosByDir(getCreaturePosition(cid), tb_rot[1][1]) , choose(unpack(conf.effectlist)))
  53. doSendMagicEffect(getPosByDir(getCreaturePosition(cid), tb_rot[1][2]) ,choose(unpack(conf.effectlist)))
  54. addEvent(rot, 200,cid,2)
  55. return false
  56. end
  57. doSendMagicEffect(getPosByDir(getCreaturePosition(cid), tb_rot[n][1]) , choose(unpack(conf.effectlist)))
  58. doSendMagicEffect(getPosByDir(getCreaturePosition(cid), tb_rot[n][2]) , choose(unpack(conf.effectlist)))
  59. n = n+1
  60. addEvent(rot, 200,cid,n)
  61. end
  62.  
  63. function checkBuff(cid)
  64. if not isPlayer(cid) then return end
  65. if getPlayerSoul(cid) > 0 and getPlayerStorageValue(cid,32481) == 1 then
  66. doPlayerAddSoul(cid,-conf.soulPerSec)
  67. doSendMagicEffect(getCreaturePosition(cid) , 49)
  68. addEvent(checkBuff,1000,cid)
  69. else
  70. doRemoveCondition(cid, CONDITION_ATTRIBUTES,49)
  71. setPlayerStorageValue(cid,32481,-1)
  72. return false
  73. end
  74. end
  75.  
  76. function onSay(cid, words, param, channel) --- Script by mock
  77. if getPlayerLevel(cid) < conf.level then
  78. return doPlayerSendCancel(cid, "You need level " .. conf.level .. ".")
  79. end
  80. if getPlayerStorageValue(cid,32481) == 1 then
  81. setPlayerStorageValue(cid,32481,-1)
  82. doCreatureSay(cid,'BERSERK MODE OFF!',19)
  83. return true
  84. end
  85. if getPlayerSoul(cid) >= conf.soulToStart then
  86. doPlayerAddSoul(cid,-conf.soulToStart)
  87. setPlayerStorageValue(cid,32481,1)
  88. checkBuff(cid)
  89. rot(cid,1)
  90. doCreatureSay(cid,'BERSERK MODE ON!',19)
  91. doCombat(cid, combat, numberToVariant(cid))
  92. else
  93. doPlayerSendTextMessage(cid,25,'VocĂȘ precisa de 25 Soul!')
  94. end
  95. return true
  96. end
Runtime error #stdin #stdout 0.02s 2492KB
stdin
Standard input is empty
stdout
Standard output is empty