Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- --[[
- WEAPON BEHAVIOR/EFFECT OVERRIDING MODULE
- Created by Black Tea za rebel1324
- ]]
- -- skin.refill and skin.craft is designated for Nutscript:Pistachi CityRP: Reborn
- TFACW_SKIN_PREFIX = "skin_"
- TFACW_SKIN_LIST = {
- -- 카르텔 골드
- gold = {
- name = "Greedy Gold",
- price = 22000000,
- refill = {
- refill_advanced = 10,
- },
- craft = {
- mineral_gold = 200,
- }
- },
- -- 에너지 과응축
- space = {
- name = "Energy Overload",
- price = 7500000,
- refill = {
- refill_advanced = 10,
- },
- craft = {
- mineral_gold = 250,
- }
- },
- -- 쿼드 데미지
- quad = {
- name = "Quad Damage",
- price = 19000000,
- refill = {
- refill_advanced = 10,
- },
- craft = {
- mineral_diamond = 50,
- }
- },
- -- 고광택 코팅
- moreshine = {
- name = "Chrome-like Shine",
- price = 10000000,
- refill = {
- refill_basic = 5,
- },
- craft = {
- mineral_iron = 140,
- }
- },
- -- 히토미 화이트
- hitomi = {
- name = "Hitomi White",
- price = 6500000,
- refill = {
- refill_basic = 10,
- },
- craft = {
- mineral_platinum = 55,
- }
- },
- -- 헨타이 하트
- heart_lewd = {
- name = "Hentai Heart",
- price = 12000000,
- refill = {
- refill_advanced = 10,
- },
- craft = {
- mineral_silver = 150,
- }
- },
- -- 레드 하트
- heart = {
- name = "Realistic Love",
- price = 12000000,
- refill = {
- refill_advanced = 10,
- },
- craft = {
- mineral_silver = 200,
- }
- },
- -- 프랭클린
- franklin = {
- name = "Franklin",
- price = 8000000,
- refill = {
- refill_advanced = 10,
- },
- craft = {
- mineral_gold = 50
- }
- },
- -- 프랭클린 드리프트
- franklin_move = {
- name = "Franklin Drift",
- price = 11000000,
- refill = {
- refill_expert = 10,
- },
- craft = {
- mineral_gold = 150,
- }
- },
- -- 은
- chrome = {
- name = "Silver Ballet",
- price = 15000000,
- refill = {
- refill_advanced = 10,
- },
- craft = {
- mineral_silver = 200,
- }
- },
- -- 피의 분노
- bloodgang = {
- name = "Bloodlust",
- price = 10000000,
- refill = {
- refill_advanced = 10,
- },
- craft = {
- mineral_platinum = 80,
- }
- },
- acu = {
- name = "ACU 위장",
- price = 10000000,
- refill = {
- refill_advanced = 10,
- },
- craft = {
- mineral_silver = 80,
- mineral_iron = 300,
- }
- },
- banana = {
- name = "Banana 위장",
- price = 10000000,
- refill = {
- refill_advanced = 10,
- },
- craft = {
- mineral_silver = 80,
- mineral_iron = 300,
- }
- },
- citywhite = {
- name = "City White 위장",
- price = 10000000,
- refill = {
- refill_advanced = 10,
- },
- craft = {
- mineral_silver = 80,
- mineral_iron = 300,
- }
- },
- clearsky = {
- name = "Clear Sky 위장",
- price = 10000000,
- refill = {
- refill_advanced = 10,
- },
- craft = {
- mineral_silver = 80,
- mineral_iron = 300,
- }
- },
- desert = {
- name = "Desert 위장",
- price = 10000000,
- refill = {
- refill_advanced = 10,
- },
- craft = {
- mineral_silver = 80,
- mineral_iron = 300,
- }
- },
- erdl = {
- name = "ERDL 위장",
- price = 10000000,
- refill = {
- refill_advanced = 10,
- },
- craft = {
- mineral_silver = 80,
- mineral_iron = 300,
- }
- },
- flek = {
- name = "FLE 위장",
- price = 10000000,
- refill = {
- refill_advanced = 10,
- },
- craft = {
- mineral_silver = 80,
- mineral_iron = 300,
- }
- },
- german = {
- name = "German 위장",
- price = 10000000,
- refill = {
- refill_advanced = 10,
- },
- craft = {
- mineral_silver = 80,
- mineral_iron = 300,
- }
- },
- gorka = {
- name = "GORKA 위장",
- price = 10000000,
- refill = {
- refill_advanced = 10,
- },
- craft = {
- mineral_silver = 80,
- mineral_iron = 300,
- }
- },
- jungle = {
- name = "Jungle 위장",
- price = 10000000,
- refill = {
- refill_advanced = 10,
- },
- craft = {
- mineral_silver = 80,
- mineral_iron = 300,
- }
- },
- multicam = {
- name = "Multicam 위장",
- price = 10000000,
- refill = {
- refill_advanced = 10,
- },
- craft = {
- mineral_silver = 80,
- mineral_iron = 300,
- }
- },
- russia = {
- name = "Russian 위장",
- price = 10000000,
- refill = {
- refill_advanced = 10,
- },
- craft = {
- mineral_silver = 80,
- mineral_iron = 300,
- }
- },
- ruswood = {
- name = "Russian Wood 위장",
- price = 10000000,
- refill = {
- refill_advanced = 10,
- },
- craft = {
- mineral_silver = 80,
- mineral_iron = 300,
- }
- },
- shit = {
- name = "Shit 위장",
- price = 10000000,
- refill = {
- refill_advanced = 10,
- },
- craft = {
- mineral_silver = 80,
- mineral_iron = 300,
- }
- },
- snake = {
- name = "Snake 위장",
- price = 10000000,
- refill = {
- refill_advanced = 10,
- },
- craft = {
- mineral_silver = 80,
- mineral_iron = 300,
- }
- },
- urban = {
- name = "Urban 위장",
- price = 10000000,
- refill = {
- refill_advanced = 10,
- },
- craft = {
- mineral_silver = 80,
- mineral_iron = 300,
- }
- },
- vega = {
- name = "VEGA 위장",
- price = 10000000,
- refill = {
- refill_advanced = 10,
- },
- craft = {
- mineral_silver = 80,
- mineral_iron = 300,
- }
- },
- woodland = {
- name = "Woodland 위장",
- price = 10000000,
- refill = {
- refill_advanced = 10,
- },
- craft = {
- mineral_silver = 80,
- mineral_iron = 300,
- }
- },
- woodmul = {
- name = "Woodland Multicam 위장",
- price = 10000000,
- refill = {
- refill_advanced = 10,
- },
- craft = {
- mineral_silver = 80,
- mineral_iron = 300,
- }
- },
- }
- TFACW_SLOT_SKIN = 99
- hook.Add("TFA_LoadModification", "TFA_SkinRenderingFunc", function()
- --[[
- SKIN RENDERING
- ]]
- if (CLIENT) then
- local shitRes = {
- 256,
- 512,
- 1024
- }
- local scrMax = math.min(ScrW(), ScrH())
- local renderRes = 128
- for _, res in pairs(shitRes) do
- if (res < scrMax) then
- renderRes = res
- else
- break
- end
- end
- SKIN_RTRENDER = {}
- local repCount = 3
- local totalReps = 2^repCount
- local size = renderRes/repCount
- local function drawOverlay(self, mat, ent, overMat)
- local vec = mat:GetVector("$color3")
- surface.SetDrawColor(vec[1] * 255, vec[2] * 255, vec[3] * 255, 150)
- for i = 0, totalReps do
- local col, row = i%repCount, math.floor(i/repCount)
- surface.SetMaterial(overMat)
- surface.DrawTexturedRect(size * col, size * row, size, size)
- end
- end
- local repCount = 1
- local totalReps = 2^repCount
- local size = renderRes/repCount
- local function drawOverlayLess(self, mat, ent, overMat, alpha)
- local vec = mat:GetVector("$color3")
- surface.SetDrawColor(vec[1] * 255, vec[2] * 255, vec[3] * 255, alpha or 150)
- for i = 0, totalReps - 1 do
- local col, row = i%repCount, math.floor(i/repCount)
- surface.SetMaterial(overMat)
- surface.DrawTexturedRect(size * col, size * row, size, size)
- end
- end
- local function energyVariant(self, mat, ent)
- drawOverlay(self, mat, ent, Material("skin/energy_overlay"), 200)
- end
- local function hitomiVariant(self, mat, ent)
- drawOverlayLess(self, mat, ent, Material("skin/hitomi_overlay"), 200)
- end
- local function rainbowVariant(self, mat, ent)
- surface.SetDrawColor(255, 255, 255, 100)
- surface.SetMaterial(Material("skin/gaypride_overlay"))
- surface.DrawTexturedRect(-size, -size, size * 4, size * 4)
- end
- local function justOverlay(self, mat, ent, overMat)
- local vec = mat:GetVector("$color3")
- surface.SetDrawColor(vec[1] * 255, vec[2] * 255, vec[3] * 255, 150)
- surface.SetMaterial(overMat)
- surface.DrawTexturedRect(0, 0, size, size)
- end
- local function justFranklin(self, mat, ent)
- drawOverlay(self, mat, ent, Material("skin/bill_static"), 25)
- end
- local function justFranklinMove(self, mat, ent)
- drawOverlayLess(self, mat, ent, Material("skin/bill_overlay"), 150)
- end
- local function deepSpaceVariant(self, mat, ent)
- drawOverlay(self, mat, ent, Material("skin/deepspace_overlay"), 150)
- end
- local function heartVariant(self, mat, ent)
- drawOverlay(self, mat, ent, Material("skin/love_overlay"), 255)
- end
- local killme = {
- ["skin/mr96/"] = {"body"},
- ["skin/m1911/"] = {"body"},
- ["skin/scars/"] = {"body"},
- ["skin/makarov/"] = {"body", "mak", "pb6p9"},
- ["skin/ump45/"] = {"body"},
- ["skin/p99/"] = {"body"},
- ["skin/mac11/"] = {"body"},
- ["skin/shorty/"] = {"body"},
- ["skin/m3super/"] = {"body"},
- ["skin/m14/"] = {"body"},
- ["skin/l85a1/"] = {"body"},
- ["skin/deagle/"] = {"compd", "a1deagle"},
- ["skin/vss/"] = {"body", "sr"},
- ["skin/g36c/"] = {"body"},
- ["skin/mp5/"] = {"mp5sd", "foregrip", "fullstock", "mp5k"},
- ["skin/ak74/"] = {"ak74", "rpk", "ak74u", "ak47"},
- ["skin/ar15/"] = {"m16", "m4furniture", "m16furniture", "m16barrel", "rails", "moestock", "carryhandle"},
- ["skin/fiveseven/"] = {"body"},
- ["skin/g3sg1/"] = {"body"},
- ["skin/famas/"] = {"body"},
- ["skin/b93r/"] = {"body"},
- }
- TFACW_SKIN_FUNCS = {
- -- M1911
- -- RICH GOLD -- UNIQUE
- -- SHROUD SILVER -- RARE
- -- PLASTIC WHITE -- COMMON
- -- CHEAP CHROME -- COMMON
- ["space"] = energyVariant, -- ENERGY OVERLOAD -- UNIQUE
- ["bloodgang"] = energyVariant, -- BLOODLUST -- UNIQUE
- ["quad"] = energyVariant, -- QUAD DAMAGE -- UNIQUE
- ["heart"] = heartVariant, -- FALL IN LOVE -- RARE
- ["heart_lewd"] = heartVariant, -- HENTAI -- UNIQUE
- ["hitomi"] = hitomiVariant, -- HENTAI -- RARE
- ["gay"] = rainbowVariant, -- GAYPRIDE -- COMMON
- ["deepspace"] = deepSpaceVariant, -- OPTICAL ILLUSION - LEGENDARY
- ["franklin_move"] = justFranklinMove, -- FRANKLIN DRIFT -- LEGENDARY
- }
- for v, parts in pairs(killme) do
- for name, func in pairs(TFACW_SKIN_FUNCS) do
- for _, part in pairs(parts) do
- SKIN_RTRENDER[v .. part .. "/" .. name] = func
- end
- end
- end
- local renderPool = {}
- hook.Add("HUDPaint", "skinRenderHooks", function()
- for matName, renda in pairs(renderPool) do
- if (renda.renderTime < UnPredictedCurTime()) then
- renderPool[matName] = nil
- return
- end
- if (SKIN_RTRENDER[matName]) then
- render.PushRenderTarget(renda.tex)
- render.Clear(0, 0, 0, 0, true, true)
- render.Clear(0, 0, 0, 255, true, true)
- render.ClearDepth()
- cam.Start2D()
- SKIN_RTRENDER[matName](renda.self, renda.mat, renda.ent)
- cam.End2D()
- render.PopRenderTarget()
- end
- end
- end)
- hook.Add("RenderSkinMaterial", "skinRenderHooks", function(matName, texture, self, mat, ent)
- renderPool[matName] = {tex = texture, renderTime = UnPredictedCurTime() + FrameTime() * 5, self = self, mat = mat, ent = ent}
- end)
- matproxy.Add({
- name = "TextureOverlayScroll",
- init = function(self, mat, values)
- local matName = mat:GetName()
- self.RTMaterial = GetRenderTargetEx("RENDASKIN_"..matName, renderRes, renderRes, RT_SIZE_NO_CHANGE, MATERIAL_RT_DEPTH_SHARED, 0, CREATERENDERTARGETFLAGS_UNFILTERABLE_OK, IMAGE_FORMAT_ARGB8888)
- end,
- bind = function(self, mat, ent)
- local matName = mat:GetName()
- if not self.RTMaterial then
- self.RTMaterial = GetRenderTargetEx("RENDASKIN_"..matName, renderRes, renderRes, RT_SIZE_NO_CHANGE, MATERIAL_RT_DEPTH_SHARED, 0, CREATERENDERTARGETFLAGS_UNFILTERABLE_OK, IMAGE_FORMAT_ARGB8888)
- end
- hook.Run("RenderSkinMaterial", matName, self.RTMaterial, self, mat, ent)
- local matName = mat:GetName()
- if (matName) then
- if (SKIN_RTRENDER[matName]) then
- if (mat:GetInt("$overridebasetexture") == 1) then
- mat:SetTexture("$basetexture", self.RTMaterial)
- else
- mat:SetTexture("$detail", self.RTMaterial)
- end
- if (mat:GetInt("$brightoverlay") == 1) then
- mat:SetTexture("$selfillummask", self.RTMaterial)
- end
- end
- end
- end
- })
- end
- end)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement