Guest User

Exp on Kill - MHLab

a guest
Jun 18th, 2013
101
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 2.75 KB | None | 0 0
  1. ---------------------------------
  2. -- EXP on Kill quest by ManHunter
  3. ---------------------------------
  4. quest exp_kill begin
  5.     state start begin
  6.         -------------------
  7.         -- Inizio functions
  8.         -------------------
  9.         function GetScriptData(data)
  10.             local questData = { ['expConstMul'] = 3,
  11.                                 ['expMul'] = 25,
  12.                                 ['goldConstMul'] = 4,
  13.                                 ['goldMul'] = 20,
  14.                                 ['successProb'] = 65,
  15.                                 ['extraSuccessProb'] = 20,
  16.                                 ['numOfRewards'] = 2}
  17.             return rawget(questData, data)
  18.         end
  19.        
  20.         function GetRewardItem(reward, extra)
  21.             if extra == 1 then
  22.                 local extraRewardList = {   4592,
  23.                                             7676 }
  24.                 return extraRewardList[reward]
  25.             else
  26.                 local rewardList = {    1000,
  27.                                         3902 }
  28.                 return rewardList[reward]
  29.             end
  30.         end
  31.        
  32.         function GetRewardExp(mul)
  33.             local expGained = 0
  34.             if math.random(1, 100) <= GetScriptData('successProb') then
  35.                 expGained = (exp_kill.GetScriptData('expConstMul') * math.random(1, exp_kill.GetScriptData('expMul')) * pc.level * mul ) + exp_kill.GetScriptData('expMul')
  36.                 return expGained
  37.             else
  38.                 expGained = math.random(1, exp_kill.GetScriptData('expMul'))
  39.                 return expGained
  40.             end
  41.         end
  42.        
  43.         function GetRewardGold(mul)
  44.             local goldGained = 0
  45.             if math.random(1, 100) <= GetScriptData('successProb') then
  46.                 goldGained = (exp_kill.GetScriptData('goldConstMul') * math.random(1, exp_kill.GetScriptData('goldMul')) * pc.level * mul ) + exp_kill.GetScriptData('goldMul')
  47.                 return goldGained
  48.             else
  49.                 goldGained = math.random(1, exp_kill.GetScriptData('expMul'))
  50.                 return goldGained
  51.             end
  52.         end
  53.         -----------------
  54.         -- Fine functions
  55.         -----------------
  56.        
  57.         when kill with npc.is_pc() and pc.level >= 15 and pc.level < 100 and npc.get_empire() ~= pc.get_empire() begin
  58.             if math.random(1, 100) <= exp_kill.GetScriptData('successProb') then
  59.                 pc.give_item2(exp_kill.GetRewardItem(math.random(1, exp_kill.GetScriptData('numOfRewards')), 0), 1)
  60.                 if math.random(1, 100) <= exp_kill.GetScriptData('extraSuccessProb') then
  61.                     pc.give_item2(exp_kill.GetRewardItem(math.random(1, exp_kill.GetScriptData('numOfRewards')), 1), 1)
  62.                 end
  63.             end
  64.             if math.random(1, 100) <= exp_kill.GetScriptData('successProb') then
  65.                 local expGained = exp_kill.GetRewardExp(100)
  66.                 if math.random(1, 100) <= exp_kill.GetScriptData('extraSuccessProb') then
  67.                     expGained = expGained + exp_kill.GetRewardExp(25)
  68.                 end
  69.                 pc.give_exp2(expGained)
  70.             end
  71.             if math.random(1, 100) <= exp_kill.GetScriptData('successProb') then
  72.                 local goldGained = exp_kill.GetRewardGold(10)
  73.                 if math.random(1, 100) <= exp_kill.GetScriptData('extraSuccessProb') then
  74.                     goldGained = goldGained + exp_kill.GetRewardGold(2)
  75.                 end
  76.                 pc.changegold(goldGained)
  77.             end
  78.         end
  79.     end
  80. end
Advertisement
Add Comment
Please, Sign In to add comment