Advertisement
Flying_pastaman

Untitled

Jul 19th, 2018
173
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 12.36 KB | None | 0 0
  1. --[[
  2.  
  3. WEAPON BEHAVIOR/EFFECT OVERRIDING MODULE
  4. Created by Black Tea za rebel1324
  5.  
  6. ]]
  7.  
  8. -- skin.refill and skin.craft is designated for Nutscript:Pistachi CityRP: Reborn
  9. TFACW_SKIN_PREFIX = "skin_"
  10. TFACW_SKIN_LIST = {
  11. -- 카르텔 골드
  12. gold = {
  13. name = "Greedy Gold",
  14. price = 22000000,
  15. refill = {
  16. refill_advanced = 10,
  17. },
  18. craft = {
  19. mineral_gold = 200,
  20. }
  21. },
  22. -- 에너지 과응축
  23. space = {
  24. name = "Energy Overload",
  25. price = 7500000,
  26. refill = {
  27. refill_advanced = 10,
  28. },
  29. craft = {
  30. mineral_gold = 250,
  31. }
  32. },
  33. -- 쿼드 데미지
  34. quad = {
  35. name = "Quad Damage",
  36. price = 19000000,
  37. refill = {
  38. refill_advanced = 10,
  39. },
  40. craft = {
  41. mineral_diamond = 50,
  42. }
  43. },
  44. -- 고광택 코팅
  45. moreshine = {
  46. name = "Chrome-like Shine",
  47. price = 10000000,
  48. refill = {
  49. refill_basic = 5,
  50. },
  51. craft = {
  52. mineral_iron = 140,
  53. }
  54. },
  55. -- 히토미 화이트
  56. hitomi = {
  57. name = "Hitomi White",
  58. price = 6500000,
  59. refill = {
  60. refill_basic = 10,
  61. },
  62. craft = {
  63. mineral_platinum = 55,
  64. }
  65. },
  66. -- 헨타이 하트
  67. heart_lewd = {
  68. name = "Hentai Heart",
  69. price = 12000000,
  70. refill = {
  71. refill_advanced = 10,
  72. },
  73. craft = {
  74. mineral_silver = 150,
  75. }
  76. },
  77. -- 레드 하트
  78. heart = {
  79. name = "Realistic Love",
  80. price = 12000000,
  81. refill = {
  82. refill_advanced = 10,
  83. },
  84. craft = {
  85. mineral_silver = 200,
  86. }
  87. },
  88. -- 프랭클린
  89. franklin = {
  90. name = "Franklin",
  91. price = 8000000,
  92. refill = {
  93. refill_advanced = 10,
  94. },
  95. craft = {
  96. mineral_gold = 50
  97. }
  98. },
  99. -- 프랭클린 드리프트
  100. franklin_move = {
  101. name = "Franklin Drift",
  102. price = 11000000,
  103. refill = {
  104. refill_expert = 10,
  105. },
  106. craft = {
  107. mineral_gold = 150,
  108. }
  109. },
  110. -- 은
  111. chrome = {
  112. name = "Silver Ballet",
  113. price = 15000000,
  114. refill = {
  115. refill_advanced = 10,
  116. },
  117. craft = {
  118. mineral_silver = 200,
  119. }
  120. },
  121. -- 피의 분노
  122. bloodgang = {
  123. name = "Bloodlust",
  124. price = 10000000,
  125. refill = {
  126. refill_advanced = 10,
  127. },
  128. craft = {
  129. mineral_platinum = 80,
  130. }
  131. },
  132.  
  133. acu = {
  134. name = "ACU 위장",
  135. price = 10000000,
  136. refill = {
  137. refill_advanced = 10,
  138. },
  139. craft = {
  140. mineral_silver = 80,
  141. mineral_iron = 300,
  142. }
  143. },
  144. banana = {
  145. name = "Banana 위장",
  146. price = 10000000,
  147. refill = {
  148. refill_advanced = 10,
  149. },
  150. craft = {
  151. mineral_silver = 80,
  152. mineral_iron = 300,
  153. }
  154. },
  155. citywhite = {
  156. name = "City White 위장",
  157. price = 10000000,
  158. refill = {
  159. refill_advanced = 10,
  160. },
  161. craft = {
  162. mineral_silver = 80,
  163. mineral_iron = 300,
  164. }
  165. },
  166. clearsky = {
  167. name = "Clear Sky 위장",
  168. price = 10000000,
  169. refill = {
  170. refill_advanced = 10,
  171. },
  172. craft = {
  173. mineral_silver = 80,
  174. mineral_iron = 300,
  175. }
  176. },
  177. desert = {
  178. name = "Desert 위장",
  179. price = 10000000,
  180. refill = {
  181. refill_advanced = 10,
  182. },
  183. craft = {
  184. mineral_silver = 80,
  185. mineral_iron = 300,
  186. }
  187. },
  188. erdl = {
  189. name = "ERDL 위장",
  190. price = 10000000,
  191. refill = {
  192. refill_advanced = 10,
  193. },
  194. craft = {
  195. mineral_silver = 80,
  196. mineral_iron = 300,
  197. }
  198. },
  199. flek = {
  200. name = "FLE 위장",
  201. price = 10000000,
  202. refill = {
  203. refill_advanced = 10,
  204. },
  205. craft = {
  206. mineral_silver = 80,
  207. mineral_iron = 300,
  208. }
  209. },
  210. german = {
  211. name = "German 위장",
  212. price = 10000000,
  213. refill = {
  214. refill_advanced = 10,
  215. },
  216. craft = {
  217. mineral_silver = 80,
  218. mineral_iron = 300,
  219. }
  220. },
  221. gorka = {
  222. name = "GORKA 위장",
  223. price = 10000000,
  224. refill = {
  225. refill_advanced = 10,
  226. },
  227. craft = {
  228. mineral_silver = 80,
  229. mineral_iron = 300,
  230. }
  231. },
  232. jungle = {
  233. name = "Jungle 위장",
  234. price = 10000000,
  235. refill = {
  236. refill_advanced = 10,
  237. },
  238. craft = {
  239. mineral_silver = 80,
  240. mineral_iron = 300,
  241. }
  242. },
  243. multicam = {
  244. name = "Multicam 위장",
  245. price = 10000000,
  246. refill = {
  247. refill_advanced = 10,
  248. },
  249. craft = {
  250. mineral_silver = 80,
  251. mineral_iron = 300,
  252. }
  253. },
  254. russia = {
  255. name = "Russian 위장",
  256. price = 10000000,
  257. refill = {
  258. refill_advanced = 10,
  259. },
  260. craft = {
  261. mineral_silver = 80,
  262. mineral_iron = 300,
  263. }
  264. },
  265. ruswood = {
  266. name = "Russian Wood 위장",
  267. price = 10000000,
  268. refill = {
  269. refill_advanced = 10,
  270. },
  271. craft = {
  272. mineral_silver = 80,
  273. mineral_iron = 300,
  274. }
  275. },
  276. shit = {
  277. name = "Shit 위장",
  278. price = 10000000,
  279. refill = {
  280. refill_advanced = 10,
  281. },
  282. craft = {
  283. mineral_silver = 80,
  284. mineral_iron = 300,
  285. }
  286. },
  287. snake = {
  288. name = "Snake 위장",
  289. price = 10000000,
  290. refill = {
  291. refill_advanced = 10,
  292. },
  293. craft = {
  294. mineral_silver = 80,
  295. mineral_iron = 300,
  296. }
  297. },
  298. urban = {
  299. name = "Urban 위장",
  300. price = 10000000,
  301. refill = {
  302. refill_advanced = 10,
  303. },
  304. craft = {
  305. mineral_silver = 80,
  306. mineral_iron = 300,
  307. }
  308. },
  309. vega = {
  310. name = "VEGA 위장",
  311. price = 10000000,
  312. refill = {
  313. refill_advanced = 10,
  314. },
  315. craft = {
  316. mineral_silver = 80,
  317. mineral_iron = 300,
  318. }
  319. },
  320. woodland = {
  321. name = "Woodland 위장",
  322. price = 10000000,
  323. refill = {
  324. refill_advanced = 10,
  325. },
  326. craft = {
  327. mineral_silver = 80,
  328. mineral_iron = 300,
  329. }
  330. },
  331. woodmul = {
  332. name = "Woodland Multicam 위장",
  333. price = 10000000,
  334. refill = {
  335. refill_advanced = 10,
  336. },
  337. craft = {
  338. mineral_silver = 80,
  339. mineral_iron = 300,
  340. }
  341. },
  342. }
  343. TFACW_SLOT_SKIN = 99
  344.  
  345. hook.Add("TFA_LoadModification", "TFA_SkinRenderingFunc", function()
  346. --[[
  347. SKIN RENDERING
  348. ]]
  349. if (CLIENT) then
  350. local shitRes = {
  351. 256,
  352. 512,
  353. 1024
  354. }
  355. local scrMax = math.min(ScrW(), ScrH())
  356. local renderRes = 128
  357. for _, res in pairs(shitRes) do
  358. if (res < scrMax) then
  359. renderRes = res
  360. else
  361. break
  362. end
  363. end
  364.  
  365. SKIN_RTRENDER = {}
  366. local repCount = 3
  367. local totalReps = 2^repCount
  368. local size = renderRes/repCount
  369. local function drawOverlay(self, mat, ent, overMat)
  370. local vec = mat:GetVector("$color3")
  371. surface.SetDrawColor(vec[1] * 255, vec[2] * 255, vec[3] * 255, 150)
  372.  
  373. for i = 0, totalReps do
  374. local col, row = i%repCount, math.floor(i/repCount)
  375. surface.SetMaterial(overMat)
  376. surface.DrawTexturedRect(size * col, size * row, size, size)
  377. end
  378. end
  379. local repCount = 1
  380. local totalReps = 2^repCount
  381. local size = renderRes/repCount
  382. local function drawOverlayLess(self, mat, ent, overMat, alpha)
  383. local vec = mat:GetVector("$color3")
  384. surface.SetDrawColor(vec[1] * 255, vec[2] * 255, vec[3] * 255, alpha or 150)
  385.  
  386. for i = 0, totalReps - 1 do
  387. local col, row = i%repCount, math.floor(i/repCount)
  388.  
  389. surface.SetMaterial(overMat)
  390. surface.DrawTexturedRect(size * col, size * row, size, size)
  391. end
  392. end
  393. local function energyVariant(self, mat, ent)
  394. drawOverlay(self, mat, ent, Material("skin/energy_overlay"), 200)
  395. end
  396. local function hitomiVariant(self, mat, ent)
  397. drawOverlayLess(self, mat, ent, Material("skin/hitomi_overlay"), 200)
  398. end
  399. local function rainbowVariant(self, mat, ent)
  400. surface.SetDrawColor(255, 255, 255, 100)
  401. surface.SetMaterial(Material("skin/gaypride_overlay"))
  402. surface.DrawTexturedRect(-size, -size, size * 4, size * 4)
  403. end
  404. local function justOverlay(self, mat, ent, overMat)
  405. local vec = mat:GetVector("$color3")
  406. surface.SetDrawColor(vec[1] * 255, vec[2] * 255, vec[3] * 255, 150)
  407. surface.SetMaterial(overMat)
  408. surface.DrawTexturedRect(0, 0, size, size)
  409. end
  410. local function justFranklin(self, mat, ent)
  411. drawOverlay(self, mat, ent, Material("skin/bill_static"), 25)
  412. end
  413. local function justFranklinMove(self, mat, ent)
  414. drawOverlayLess(self, mat, ent, Material("skin/bill_overlay"), 150)
  415. end
  416. local function deepSpaceVariant(self, mat, ent)
  417. drawOverlay(self, mat, ent, Material("skin/deepspace_overlay"), 150)
  418. end
  419. local function heartVariant(self, mat, ent)
  420. drawOverlay(self, mat, ent, Material("skin/love_overlay"), 255)
  421. end
  422.  
  423. local killme = {
  424. ["skin/mr96/"] = {"body"},
  425. ["skin/m1911/"] = {"body"},
  426. ["skin/scars/"] = {"body"},
  427. ["skin/makarov/"] = {"body", "mak", "pb6p9"},
  428. ["skin/ump45/"] = {"body"},
  429. ["skin/p99/"] = {"body"},
  430. ["skin/mac11/"] = {"body"},
  431. ["skin/shorty/"] = {"body"},
  432. ["skin/m3super/"] = {"body"},
  433. ["skin/m14/"] = {"body"},
  434. ["skin/l85a1/"] = {"body"},
  435. ["skin/deagle/"] = {"compd", "a1deagle"},
  436. ["skin/vss/"] = {"body", "sr"},
  437. ["skin/g36c/"] = {"body"},
  438. ["skin/mp5/"] = {"mp5sd", "foregrip", "fullstock", "mp5k"},
  439. ["skin/ak74/"] = {"ak74", "rpk", "ak74u", "ak47"},
  440. ["skin/ar15/"] = {"m16", "m4furniture", "m16furniture", "m16barrel", "rails", "moestock", "carryhandle"},
  441. ["skin/fiveseven/"] = {"body"},
  442. ["skin/g3sg1/"] = {"body"},
  443. ["skin/famas/"] = {"body"},
  444. ["skin/b93r/"] = {"body"},
  445. }
  446. TFACW_SKIN_FUNCS = {
  447. -- M1911
  448. -- RICH GOLD -- UNIQUE
  449. -- SHROUD SILVER -- RARE
  450. -- PLASTIC WHITE -- COMMON
  451. -- CHEAP CHROME -- COMMON
  452. ["space"] = energyVariant, -- ENERGY OVERLOAD -- UNIQUE
  453. ["bloodgang"] = energyVariant, -- BLOODLUST -- UNIQUE
  454. ["quad"] = energyVariant, -- QUAD DAMAGE -- UNIQUE
  455. ["heart"] = heartVariant, -- FALL IN LOVE -- RARE
  456. ["heart_lewd"] = heartVariant, -- HENTAI -- UNIQUE
  457. ["hitomi"] = hitomiVariant, -- HENTAI -- RARE
  458. ["gay"] = rainbowVariant, -- GAYPRIDE -- COMMON
  459. ["deepspace"] = deepSpaceVariant, -- OPTICAL ILLUSION - LEGENDARY
  460. ["franklin_move"] = justFranklinMove, -- FRANKLIN DRIFT -- LEGENDARY
  461. }
  462. for v, parts in pairs(killme) do
  463. for name, func in pairs(TFACW_SKIN_FUNCS) do
  464. for _, part in pairs(parts) do
  465. SKIN_RTRENDER[v .. part .. "/" .. name] = func
  466. end
  467. end
  468. end
  469.  
  470. local renderPool = {}
  471. hook.Add("HUDPaint", "skinRenderHooks", function()
  472. for matName, renda in pairs(renderPool) do
  473. if (renda.renderTime < UnPredictedCurTime()) then
  474. renderPool[matName] = nil
  475. return
  476. end
  477.  
  478. if (SKIN_RTRENDER[matName]) then
  479. render.PushRenderTarget(renda.tex)
  480. render.Clear(0, 0, 0, 0, true, true)
  481. render.Clear(0, 0, 0, 255, true, true)
  482. render.ClearDepth()
  483. cam.Start2D()
  484. SKIN_RTRENDER[matName](renda.self, renda.mat, renda.ent)
  485. cam.End2D()
  486. render.PopRenderTarget()
  487. end
  488. end
  489. end)
  490.  
  491. hook.Add("RenderSkinMaterial", "skinRenderHooks", function(matName, texture, self, mat, ent)
  492. renderPool[matName] = {tex = texture, renderTime = UnPredictedCurTime() + FrameTime() * 5, self = self, mat = mat, ent = ent}
  493. end)
  494.  
  495. matproxy.Add({
  496. name = "TextureOverlayScroll",
  497. init = function(self, mat, values)
  498. local matName = mat:GetName()
  499. self.RTMaterial = GetRenderTargetEx("RENDASKIN_"..matName, renderRes, renderRes, RT_SIZE_NO_CHANGE, MATERIAL_RT_DEPTH_SHARED, 0, CREATERENDERTARGETFLAGS_UNFILTERABLE_OK, IMAGE_FORMAT_ARGB8888)
  500. end,
  501. bind = function(self, mat, ent)
  502. local matName = mat:GetName()
  503. if not self.RTMaterial then
  504. self.RTMaterial = GetRenderTargetEx("RENDASKIN_"..matName, renderRes, renderRes, RT_SIZE_NO_CHANGE, MATERIAL_RT_DEPTH_SHARED, 0, CREATERENDERTARGETFLAGS_UNFILTERABLE_OK, IMAGE_FORMAT_ARGB8888)
  505. end
  506.  
  507. hook.Run("RenderSkinMaterial", matName, self.RTMaterial, self, mat, ent)
  508.  
  509. local matName = mat:GetName()
  510. if (matName) then
  511. if (SKIN_RTRENDER[matName]) then
  512. if (mat:GetInt("$overridebasetexture") == 1) then
  513. mat:SetTexture("$basetexture", self.RTMaterial)
  514. else
  515. mat:SetTexture("$detail", self.RTMaterial)
  516. end
  517.  
  518. if (mat:GetInt("$brightoverlay") == 1) then
  519. mat:SetTexture("$selfillummask", self.RTMaterial)
  520. end
  521. end
  522. end
  523. end
  524. })
  525. end
  526. end)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement