Advertisement
Guest User

Untitled

a guest
Apr 25th, 2017
69
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.14 KB | None | 0 0
  1. Classes = {}
  2.  
  3. Base_Class = {}
  4. Base_Class.Stats = {}
  5. Base_Class.Name = ""
  6. Base_Class.Desc = ""
  7. Base_Class.Mdl = ""
  8.  
  9. function GenerateClassDesc(cls)
  10. if !cls || !cls.Stats then return end
  11. local de = ""
  12. //PrintTable(cls)
  13. for k,v in pairs(cls.Stats) do
  14. if k && v then
  15. de = de .. Item_Effects[k].disp(v) .. "\n"
  16. end
  17. end
  18. cls.Desc = de
  19. return de
  20. end
  21.  
  22. //Put Classes Here
  23. //=====================================================
  24.  
  25. //Models
  26. //models/player/combine_super_soldier.mdl
  27. //models/player/Alyx.mdl
  28. //models/player/breen.mdl
  29. //models/player/barney.mdl
  30. //models/player/Combine_Soldier.mdl
  31. //models/player/Police.mdl
  32. //models/player/gman_high.mdl
  33.  
  34. Classes.Elite = table.Copy(Base_Class)
  35. Classes.Elite.Name = "Elite"
  36. Classes.Elite.Stats = {Hlt = 115, Con = 65, Sls = 65}
  37. Classes.Elite.Mdl = "models/player/combine_super_soldier.mdl"
  38. Classes.Elite.Vo = {}
  39. Classes.Elite.Vo.Greet =
  40. {"vo/sniper_specialcompleted04.wav",
  41. "vo/sniper_battlecry01.wav"}
  42.  
  43. Classes.Elite.Vo.Hit =
  44. {"vo/sniper_specialcompleted19.wav",
  45. "vo/sniper_specialcompleted17.wav"}
  46.  
  47. Classes.Elite.Vo.Struck =
  48. {"vo/sniper_painsharp01.wav",
  49. "vo/sniper_painsharp02.wav",
  50. "vo/sniper_painsharp03.wav",
  51. "vo/sniper_painsharp04.wav"}
  52.  
  53. Classes.Elite.Vo.DieNear =
  54. {"vo/sniper_goodjob03.wav",
  55. "vo/sniper_niceshot03.wav",
  56. "vo/sniper_niceshot02.wav"}
  57.  
  58. Classes.Elite.Vo.Death =
  59. {"vo/sniper_paincrticialdeath01.wav"}
  60.  
  61. Classes.Elite.Vo.Buy =
  62. {"vo/sniper_cheers02.wav",
  63. "vo/sniper_cheers05.wav",
  64. "vo/sniper_cheers08.wav"}
  65.  
  66.  
  67.  
  68. Classes.Raider = table.Copy(Base_Class)
  69. Classes.Raider.Name = "Raider"
  70. Classes.Raider.Stats = {Pwr = 90, Dex = 80, Bac = 10}
  71. Classes.Raider.Mdl = "models/player/Alyx.mdl"
  72. Classes.Raider.Vo = {}
  73.  
  74. Classes.Raider.Vo.Greet =
  75. {"vo/npc/Alyx/al_excuse03.wav",
  76. "vo/Streetwar/Alyx_gate/al_readywhenyou.wav"}
  77.  
  78. Classes.Raider.Vo.Hit =
  79. {"vo/npc/Alyx/getback01.wav",
  80. "vo/npc/Alyx/youreload02.wav"}
  81.  
  82. Classes.Raider.Vo.Struck =
  83. {"vo/npc/Alyx/hurt04.wav",
  84. "vo/npc/Alyx/hurt05.wav",
  85. "vo/npc/Alyx/hurt06.wav"}
  86.  
  87. Classes.Raider.Vo.DieNear =
  88. {"vo/npc/Alyx/brutal02.wav"}
  89.  
  90. Classes.Raider.Vo.Death =
  91. {"vo/npc/Alyx/uggh02.wav"}
  92.  
  93.  
  94. Classes.Spy = table.Copy(Base_Class)
  95. Classes.Spy.Name = "Spy"
  96. Classes.Spy.Stats = {Chm = 70, Alt = 40, Bfs = 20}
  97. Classes.Spy.Mdl = "models/player/breen.mdl"
  98. Classes.Spy.Vo = {}
  99. Classes.Spy.Vo.Greet =
  100. {"vo/Citadel/br_bidder_b.wav"}
  101.  
  102. Classes.Spy.Vo.Hit =
  103. {"vo/Citadel/br_mock05.wav"}
  104.  
  105. Classes.Spy.Vo.Kill =
  106. {"vo/Citadel/br_mock06.wav",
  107. "vo/Citadel/br_mock09.wav",
  108. "vo/Citadel/br_mock13.wav"}
  109.  
  110. Classes.Spy.Vo.Death =
  111. {"vo/Citadel/br_youneedme.wav"}
  112.  
  113. Classes.Spy.Vo.Buy =
  114. {"vo/Citadel/br_laugh01.wav"}
  115.  
  116.  
  117. Classes.Assault = table.Copy(Base_Class)
  118. Classes.Assault.Name = "Assault"
  119. Classes.Assault.Stats = {Pwr = 60, Alt = 40, Jmp = 25}
  120. Classes.Assault.Mdl = "models/player/barney.mdl"
  121. Classes.Assault.Vo = {}
  122. Classes.Assault.Vo.Greet =
  123. {"vo/npc/Barney/ba_bringiton.wav",
  124. "vo/npc/Barney/ba_letsdoit.wav"}
  125.  
  126. Classes.Assault.Vo.Hit =
  127. {"vo/npc/Barney/ba_letsgo.wav",
  128. "vo/npc/Barney/ba_letsdoit.wav"}
  129.  
  130. Classes.Assault.Vo.Struck =
  131. {"vo/npc/Barney/ba_pain01.wav",
  132. "vo/npc/Barney/ba_pain02.wav",
  133. "vo/npc/Barney/ba_pain03.wav",
  134. "vo/npc/Barney/ba_pain04.wav"}
  135.  
  136. Classes.Assault.Vo.DieNear =
  137. {"vo/npc/Barney/ba_imwithyou.wav",
  138. "vo/npc/Barney/ba_laugh01.wav",
  139. "vo/npc/Barney/ba_laugh02.wav"}
  140.  
  141. Classes.Assault.Vo.Death =
  142. {"vo/npc/Barney/ba_ohshit03.wav"}
  143.  
  144. Classes.Assault.Vo.Buy =
  145. {"vo/npc/Barney/ba_ohyeah.wav",
  146. "vo/npc/Barney/ba_laugh01.wav",
  147. "vo/npc/Barney/ba_laugh03.wav"}
  148.  
  149. Classes.SpecOps = table.Copy(Base_Class)
  150. Classes.SpecOps.Name = "SpecOps"
  151. Classes.SpecOps.Stats = {Arm = 20, Con = 150}
  152. Classes.SpecOps.Mdl = "models/player/Combine_Soldier.mdl"
  153. Classes.SpecOps.Vo = {}
  154. Classes.SpecOps.Vo.Greet =
  155. {"vo/pyro_battlecry01.wav",
  156. "vo/pyro_battlecry02.wav"}
  157.  
  158. Classes.SpecOps.Vo.Hit =
  159. {"vo/pyro_jeers02.wav",
  160. "vo/pyro_laughhappy01.wav"}
  161.  
  162. Classes.SpecOps.Vo.Struck =
  163. {"vo/pyro_painsharp01.wav",
  164. "vo/pyro_painsharp02.wav",
  165. "vo/pyro_painsharp03.wav",
  166. "vo/pyro_painsharp04.wav"}
  167.  
  168. Classes.SpecOps.Vo.Death =
  169. {"vo/pyro_paincrticialdeath01.wav"}
  170.  
  171. Classes.SpecOps.Vo.Buy =
  172. {"vo/pyro_thanks01.wav",
  173. "vo/pyro_laughhappy01.wav"}
  174.  
  175. Classes.Sniper = table.Copy(Base_Class)
  176. Classes.Sniper.Name = "Sniper"
  177. Classes.Sniper.Stats = {Pwr = 120, Bac = 20}
  178. Classes.Sniper.Mdl = "models/player/Police.mdl"
  179. Classes.Sniper.Vo = {}
  180. Classes.Sniper.Vo.Greet =
  181. {"npc/metropolice/vo/wearesociostablethislocation.wav",
  182. "npc/metropolice/vo/visceratordeployed.wav"}
  183.  
  184. Classes.Sniper.Vo.Hit =
  185. {"npc/metropolice/vo/thereheis.wav",
  186. "npc/metropolice/vo/readytoprosecutefinalwarning.wav"}
  187.  
  188. Classes.Sniper.Vo.Struck =
  189. {"npc/metropolice/pain1.wav",
  190. "npc/metropolice/pain2.wav",
  191. "npc/metropolice/pain3.wav",
  192. "npc/metropolice/pain4.wav"}
  193.  
  194. Classes.Sniper.Vo.Kill =
  195. {"npc/metropolice/vo/nowgetoutofhere.wav",
  196. "npc/metropolice/vo/chuckle.wav"}
  197.  
  198. Classes.Sniper.Vo.DieNear =
  199. {"npc/metropolice/vo/tagonenecrotic.wav",
  200. "npc/metropolice/vo/protectioncomplete.wav"}
  201.  
  202. Classes.Sniper.Vo.Death =
  203. {"npc/metropolice/die1.wav"}
  204.  
  205. Classes.Sniper.Vo.Buy =
  206. {"npc/metropolice/vo/prepareforjudgement.wav",
  207. "npc/metropolice/vo/chuckle.wav"}
  208.  
  209. //=====================================================
  210.  
  211. timer.Simple(0.1, function()
  212.  
  213. for key,val in pairs(Classes) do
  214. val.Desc = GenerateClassDesc(val)
  215. end
  216.  
  217. end)
  218.  
  219. function ApplyClass(ply, cls)
  220. if ply.Class then
  221. UnapplyClass(ply, Classes[ply.Class])
  222. end
  223. for n,v in pairs(cls.Stats) do
  224. local fx = Item_Effects[n]
  225. if fx && fx.stat then
  226. local stat = fx.stat
  227. if type(stat) == "string" then
  228. ply.st[stat] = ply.st[stat] + v
  229. else
  230. for k, s in pairs(stat) do
  231. ply.st[s] = ply.st[s] + v
  232. end
  233. end
  234. end
  235. end
  236. ply.Class = cls.Name
  237. ply.pClass = cls
  238. ply:SyncStats()
  239. end
  240.  
  241. function UnapplyClass(ply, cls)
  242. ply.Class = nil
  243. ply.pClass = nil
  244. for n,v in pairs(cls.Stats) do
  245. local fx = Item_Effects[n]
  246. if fx && fx.stat then
  247. local stat = fx.stat
  248. if type(stat) == "string" then
  249. ply.st[stat] = ply.st[stat] - v
  250. else
  251. for k, s in pairs(stat) do
  252. ply.st[s] = ply.st[s] - v
  253. end
  254. end
  255. end
  256. end
  257. ply:SyncStats()
  258. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement