Advertisement
Guest User

help

a guest
Mar 18th, 2018
69
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.96 KB | None | 0 0
  1.  
  2. local Tunnel = module("vrp", "lib/Tunnel")
  3. local Proxy = module("vrp", "lib/Proxy")
  4. local Lang = module("vrp", "lib/Lang")
  5. local cfg = module("vrp_basic_mission", "cfg/missions")
  6.  
  7. -- load global and local languages
  8. local glang = Lang.new(module("vrp", "cfg/lang/"..cfg.lang) or {})
  9. local lang = Lang.new(module("vrp_basic_mission", "cfg/lang/"..cfg.lang) or {})
  10.  
  11. vRP = Proxy.getInterface("vRP")
  12. vRPclient = Tunnel.getInterface("vRP","vRP_basic_mission")
  13.  
  14. function task_mission()
  15. -- REPAIR
  16. for k,v in pairs(cfg.repair) do -- each repair perm def
  17. -- add missions to users
  18. local users = vRP.getUsersByPermission({k})
  19. for l,w in pairs(users) do
  20. local user_id = w
  21. local player = vRP.getUserSource({user_id})
  22. if not vRP.hasMission({player}) then
  23. if math.random(1,v.chance) == 1 then -- chance check
  24. -- build mission
  25. local mdata = {}
  26. mdata.name = lang.repair({v.title})
  27. mdata.steps = {}
  28.  
  29. -- build steps
  30. for i=1,v.steps do
  31. local step = {
  32. text = lang.repair({v.title}).."<br />"..lang.reward({v.reward}),
  33. onenter = function(player, area)
  34. if vRP.tryGetInventoryItem({user_id,"repairkit",1,true}) then
  35. vRPclient.playAnim(player,{false,{task="WORLD_HUMAN_WELDING"},false})
  36. SetTimeout(15000, function()
  37. vRP.nextMissionStep({player})
  38. vRPclient.stopAnim(player,{false})
  39.  
  40. -- last step
  41. if i == v.steps then
  42. vRP.giveMoney({user_id,v.reward})
  43. vRPclient.notify(player,{glang.money.received({v.reward})})
  44. end
  45. end)
  46. end
  47. end,
  48. position = v.positions[math.random(1,#v.positions)]
  49. }
  50.  
  51. table.insert(mdata.steps, step)
  52. end
  53.  
  54. vRP.startMission({player,mdata})
  55. end
  56. end
  57. end
  58. end
  59.  
  60. -- DELIVERY
  61. for k,v in pairs(cfg.delivery) do -- each repair perm def
  62. -- add missions to users
  63. local users = vRP.getUsersByPermission({k})
  64. for l,w in pairs(users) do
  65. local user_id = w
  66. local player = vRP.getUserSource({user_id})
  67. if not vRP.hasMission({player}) then
  68. -- build mission
  69. local mdata = {}
  70. mdata.name = lang.delivery.title()
  71.  
  72. -- generate items
  73. local todo = 0
  74. local delivery_items = {}
  75. for idname,data in pairs(v.items) do
  76. local amount = math.random(data[1],data[2])
  77. if amount > 0 then
  78. delivery_items[idname] = amount
  79. todo = todo+1
  80. end
  81. end
  82.  
  83. local step = {
  84. text = "",
  85. onenter = function(player, area)
  86. for idname,amount in pairs(delivery_items) do
  87. if amount > 0 then -- check if not done
  88. if vRP.tryGetInventoryItem({user_id,idname,amount,true}) then
  89. local reward = v.items[idname][3]*amount
  90. vRP.giveMoney({user_id,reward})
  91. vRPclient.notify(player,{glang.money.received({reward})})
  92. todo = todo-1
  93. delivery_items[idname] = 0
  94. if todo == 0 then -- all received, finish mission
  95. vRP.nextMissionStep({player})
  96. end
  97. end
  98. end
  99. end
  100. end,
  101. position = v.positions[math.random(1,#v.positions)]
  102. }
  103.  
  104. -- mission display
  105. for idname,amount in pairs(delivery_items) do
  106. local name = vRP.getItemName({idname})
  107. step.text = step.text..lang.delivery.item({name,amount}).."<br />"
  108. end
  109.  
  110. mdata.steps = {step}
  111.  
  112. if todo > 0 then
  113. vRP.startMission({player,mdata})
  114. end
  115. end
  116. end
  117. end
  118.  
  119. SetTimeout(60000,task_mission)
  120. end
  121. task_mission()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement