Advertisement
Guest User

Untitled

a guest
Apr 7th, 2020
4,441
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 58.70 KB | None | 0 0
  1. ///////////////////////////// Zeros GenLab //////////////////////////////////
  2.  
  3. // Developed by ZeroChain:
  4. // http://steamcommunity.com/id/zerochain/
  5. // https://www.gmodstore.com/users/view/76561198013322242
  6. // https://www.artstation.com/zerochain
  7.  
  8. /////////////////////////////////////////////////////////////////////////////
  9.  
  10.  
  11. /*
  12.  
  13.     Tool Gun:
  14.         HotSpot Spawner - Spawns / Removes / Saves Virus Hotspots
  15.  
  16.     Console Commands:
  17.         zbl_debug_VHS_AddPos - Adds a new position for a VirusHotSpot to grow at where you looking
  18.         zbl_debug_VHS_SavePos - Saves all the HotSpot positions for the current map
  19.         zbl_debug_VHS_RemovePos - Removes all the HotSpot positions for the current map
  20.  
  21.     For more debug console commands look at zeros_bloodlab\lua\zblood\sh\zbl_debug.lua
  22.  
  23.     Chat Commands:
  24.         !zbl_save - Saves all the NPCs and VirusHotSpots for the Map (Admin Only)
  25.         !dropmask - Drops the current Respirator if the player has any equipt
  26.  
  27.     Functions:
  28.         zbl.f.Lab_Data_AddPoints(ply,points) - Gives the specified Player the specified amount of DNA Points
  29.         zbl.f.Lab_Data_RemovePoints(ply,points) - Removes the specified Player the specified amount of DNA Points
  30. */
  31.  
  32.  
  33. // Switches between FastDl and Workshop
  34. zbl.config.FastDl = false
  35.  
  36. // This enables the Debug Mode
  37. zbl.config.Debug = false
  38.  
  39. // The language , en , de , fr , cn , ru , pl
  40. zbl.config.SelectedLanguage = "en"
  41.  
  42. // These Ranks are admins, if one of the following scripts is installed then you can ignore this table
  43. // If xAdmin is installed then this table can be ignored
  44. zbl.config.AdminRanks = {
  45.     ["superadmin"] = true,
  46.     ["owner"] = true,
  47. }
  48.  
  49. // The Currency symbol
  50. zbl.config.Currency = "$"
  51.  
  52. // If true then the Currency symbol will be on the left side of the number
  53. zbl.config.CurrencyPosInvert = true
  54.  
  55. // Those Jobs can use the Lab entities and sell to the npcs
  56. zbl.config.Jobs = {
  57.     [TEAM_ZBL_RESEARCHER] = true,
  58. }
  59.  
  60.  
  61.  
  62. // Requires McPhone https://www.gmodstore.com/market/view/mcphone-advanced-phone-system-1
  63. // The McPhone App can be used to tell the player if there are infected player or objects near by
  64. // It also shows him if he currently is wearing a respirator
  65. zbl.config.McPhone = {
  66.     scan_radius = 750,
  67.  
  68.     scan_duration = 1,
  69. }
  70.  
  71.  
  72. // The Fence entity can be used to cut of certain parts of the city, it also scans any person which goes through the gate
  73. zbl.config.Fence = {
  74.     // Can the fence be unfolded?
  75.     unfold = true,
  76.  
  77.     // Should we restrict the unfold action to certain player ranks? (Leave empty to allow any rank to unfold it)
  78.     ranks = {
  79.         //["vip"] = true,
  80.     },
  81.  
  82.     // This is the max lenght the unfolded fence can have
  83.     length = 1000,
  84.  
  85.     // How much damage does the player get if he touches the fence
  86.     dmg_per_touch = 10,
  87.  
  88.     // Since vehicles cant collide with the custom generated physics mesh of the fence, should we kill the driver if he drives throug the fence?
  89.     kill_driver = true,
  90.  
  91.     // How much damaged needs to be inflicted on the fence before he gets destroyed? (Set to -1 to disable the fence getting damaged)
  92.     health = -1,
  93.  
  94.     // Should we punish the player if he constantly goes through the scanner?
  95.     AntiSpam = true,
  96.  
  97.     // Should we contaminate the player if he has a occopating virus?
  98.     contaminate = true,
  99. }
  100.  
  101.  
  102.  
  103. // Corpses get created when a player dies while being infected
  104. zbl.config.Corpse = {
  105.  
  106.     // Do we want corpses to get created when a player dies while being infected
  107.     enabled = true,
  108.  
  109.     // How long till the corpse gets removed
  110.     life_time = 60,
  111.  
  112.     // Should the virus material be visible on the corpse?
  113.     infection_visible = true,
  114.  
  115.     // Should the corpse explode when it despawns, this will infect anyone near it
  116.     ExplodeOnDespawn = true,
  117.  
  118.     // One of those animations will be used for the corpse
  119.     anim = {"zombie_slump_idle_01"}
  120. }
  121.  
  122.  
  123.  
  124. // Here you can add custom protection checks against viruses
  125. // Return a value between 0 - 100 , 0 = Not protected at all, 100 = Fully Protected
  126. // This check goes both ways so if a player is infected but is protected by a respirator then the chance of him infecting other people is low aswell.
  127. zbl.config.ProtectionCheck = function(ply,vac_id,vac_stage)
  128.  
  129.     local chance = 0
  130.  
  131.     // If the Protection chance is higher or equal 100 then it prevents the player from picking up respirators
  132.  
  133.     // A Hazmat Suit, nothing goes in or out
  134.     if ply:GetModel() == "models/zerochain/props_bloodlab/zbl_hazmat.mdl" then
  135.         chance = 100
  136.  
  137.     // Technicly this model is wearing a respirator so he is fully protected from virus spores
  138.     elseif ply:GetModel() == "models/player/police.mdl" then
  139.         chance = 100
  140.  
  141.     // Does the player wear a respirator
  142.     elseif ply:GetNWInt("zbl_RespiratorUses",0) > 0 then
  143.  
  144.         // This should NEVER be higher then 99
  145.         chance = 80
  146.     end
  147.  
  148.     return chance
  149. end
  150.  
  151.  
  152.  
  153. // Protects the player with style :D
  154. zbl.config.Respirator = {
  155.     // How often can the respirator be used before it gets used up and removed
  156.     // The Repsirator gets used when protecting against viruses
  157.     Uses = 15,
  158.  
  159.     // Should the player get a random respirator style assigned when opening a respirator box
  160.     random_style = true,
  161.  
  162.     // If random_style = false then we can define which respirator style people gonna wear
  163.     style = -1,
  164.  
  165.     // Here we define the styles
  166.     styles = {
  167.         // n95 Mask
  168.         [1] = {
  169.             model = "models/zerochain/props_bloodlab/zbl_n95mask.mdl",
  170.             skin = 0
  171.         },
  172.  
  173.         // Blank Mask
  174.         [2] = {
  175.             model = "models/zerochain/props_bloodlab/zbl_mask.mdl",
  176.             skin = 0
  177.         },
  178.  
  179.         // Beard01
  180.         [3] = {
  181.             model = "models/zerochain/props_bloodlab/zbl_mask.mdl",
  182.             skin = 1
  183.         },
  184.  
  185.         // Beard02
  186.         [4] = {
  187.             model = "models/zerochain/props_bloodlab/zbl_mask.mdl",
  188.             skin = 2
  189.         },
  190.  
  191.         // Blushsmile
  192.         [5] = {
  193.             model = "models/zerochain/props_bloodlab/zbl_mask.mdl",
  194.             skin = 3
  195.         },
  196.  
  197.         // Cat
  198.         [6] = {
  199.             model = "models/zerochain/props_bloodlab/zbl_mask.mdl",
  200.             skin = 4
  201.         },
  202.  
  203.         // Kawai
  204.         [7] = {
  205.             model = "models/zerochain/props_bloodlab/zbl_mask.mdl",
  206.             skin = 5
  207.         },
  208.  
  209.         // Kiss
  210.         [8] = {
  211.             model = "models/zerochain/props_bloodlab/zbl_mask.mdl",
  212.             skin = 6
  213.         },
  214.  
  215.         // Panda
  216.         [9] = {
  217.             model = "models/zerochain/props_bloodlab/zbl_mask.mdl",
  218.             skin = 7
  219.         },
  220.  
  221.         // Smile
  222.         [10] = {
  223.             model = "models/zerochain/props_bloodlab/zbl_mask.mdl",
  224.             skin = 8
  225.         },
  226.  
  227.         // Vampire
  228.         [11] = {
  229.             model = "models/zerochain/props_bloodlab/zbl_mask.mdl",
  230.             skin = 9
  231.         },
  232.  
  233.         // Zipper
  234.         [12] = {
  235.             model = "models/zerochain/props_bloodlab/zbl_mask.mdl",
  236.             skin = 10
  237.         },
  238.     }
  239. }
  240.  
  241.  
  242.  
  243. // Disinfectant Spray is used to decontaminate objects/players and fight virus nodes
  244. zbl.config.DisinfectantSpray = {
  245.     // How much liquid does the spray have?
  246.     Amount = 70,
  247.  
  248.     // How much liquid get used per click
  249.     UsagePerClick = 1,
  250.  
  251.     // How much damage gets inflicted on the virus node if you spray on him
  252.     VirusNode_Damage = 10
  253. }
  254.  
  255.  
  256.  
  257. // The Injector gun is used to inject/extract liquid from players and entities
  258. zbl.config.InjectorGun = {
  259.  
  260.     //https://wiki.facepunch.com/gmod/Enums/KEY
  261.     Keys = {
  262.         // Open Help menu
  263.         Help = KEY_H,
  264.  
  265.         // Injects the selected vaccine in to yourself
  266.         SelfInject = KEY_B,
  267.  
  268.         // Emptys the gun of any substance
  269.         EmptyFlask = KEY_X,
  270.  
  271.         // Switches to the next flask
  272.         SwitchFlask = KEY_R,
  273.  
  274.         // Extracts the substance of the gun in to a flask and drops it
  275.         ExtractFlask = MOUSE_MIDDLE,
  276.  
  277.         // Scan the area arround you
  278.         ScanArea = KEY_T,
  279.     },
  280.  
  281.     // This defines how many chambers the gun has
  282.     // Should not be smaller then 3 or bigger then 12
  283.     // This also defines how many flasks the player can drop on the floor
  284.     flask_capacity = {
  285.         ["default"] = 6,
  286.         ["vip"] = 8,
  287.         ["superadmin"] = 12,
  288.     },
  289.  
  290.     // The scan can be used to detect infected objects/players
  291.     Scan = {
  292.  
  293.         // How long will the scanned objects show their infection status
  294.         duration = 3,
  295.  
  296.         // The scan radius arround the player
  297.         radius = 500,
  298.  
  299.         // How long does the player need to wait before he can scan again
  300.         interval = {
  301.             ["default"] = 3,
  302.             ["vip"] = 2,
  303.             ["superadmin"] = 0.1,
  304.         },
  305.  
  306.         // Should we display what virus has infected the scanned object/player and at whichs tage it is
  307.         show_info = true
  308.     }
  309. }
  310.  
  311.  
  312.  
  313. // The flask entity is a storage container for DNA Samples, Viruses, Cures and Abillity Boosts
  314. zbl.config.Flask = {
  315.     // Can it be destroyed?
  316.     Breakable = true,
  317.  
  318.     // How fast does the flask have to be on colliion in order to break?
  319.     Break_speed = 400,
  320.  
  321.     // Should the flask infect/cure players in proximity with the vaccine it holds?
  322.     InfectOnDestruction = true,
  323.  
  324.     // How close does a player needs to be in order to get infected?
  325.     Infect_Radius = 200,
  326.  
  327.     // Should the flask create virus nodes on destruction if the liquid is a virus
  328.     // It will only create virus nodes if it finds a valid position
  329.     NodeOnDestruction = true,
  330. }
  331.  
  332.  
  333.  
  334. // Here we can define which entities can be used to get DNA samples from
  335. zbl.config.SampleTypes = {
  336.     // Entity Class
  337.     ["player"] = {
  338.  
  339.         // How many DNA points do we get when analyzing this sample
  340.         dna_points = 5,
  341.  
  342.         // This defines the name of the sample
  343.         name = function(ent)
  344.  
  345.             if zbl.f.Player_IsInfected(ent) then
  346.                 return zbl.f.Player_GetName(ent) .. " (Infected)"
  347.             else
  348.                 return zbl.f.Player_GetName(ent)
  349.             end
  350.         end,
  351.  
  352.         // This can be used to modify DNA points generated from this sample
  353.         // ply = Swep Owner , ent = Target , points = dna_points
  354.         points_modify = function(ply,ent,points)
  355.  
  356.             // If the (blood) sample is from a infected player then we get double the DNA points
  357.             if zbl.f.Player_IsInfected(ent) then
  358.                 points = points * 2
  359.             end
  360.             return points
  361.         end,
  362.  
  363.         // How do samples of this type differentiate? (Needs to be a int)
  364.         identifier = function(ent)
  365.             return ent:AccountID()
  366.         end,
  367.  
  368.         // This will be called on the entity we are harvesting the sample from
  369.         OnCollect = function(ply,ent)
  370.  
  371.             // Damage the Player we are collecting the sample from
  372.             local d = DamageInfo()
  373.             d:SetDamage( 5 )
  374.             d:SetAttacker( ply )
  375.             d:SetDamageType( DMG_SLASH )
  376.             ent:TakeDamageInfo( d )
  377.  
  378.             zbl.f.Player_PlaySound_Ouch(ent)
  379.         end,
  380.     },
  381.     ["zbl_virusnode"] = {
  382.         dna_points = 3,
  383.         name = function(ent)
  384.             return zbl.config.Vaccines[ent.Virus_ID].name
  385.         end,
  386.         points_modify = function(ply,ent,points)
  387.             return points
  388.         end,
  389.         identifier = function(ent)
  390.             return ent.Virus_ID
  391.         end,
  392.         OnCollect = function(ply,ent)
  393.             zbl.f.VN_TakeDamage(ent,50)
  394.         end,
  395.     },
  396.     ["npc_headcrab"] = {
  397.         dna_points = 10,
  398.         name = function(ent)
  399.             return ent:GetClass()
  400.         end,
  401.         points_modify = function(ply,ent,points)
  402.             return points
  403.         end,
  404.         identifier = function(ent)
  405.             // Creates a unique id using the entities model path
  406.             return zbl.f.StringToUniqueID(ent:GetModel())
  407.         end,
  408.         OnCollect = function(ply,ent)
  409.             ent:TakeDamage( ent:Health(), ply, ply:GetActiveWeapon() )
  410.         end,
  411.     },
  412.     ["zbl_corpse"] = {
  413.         dna_points = 10,
  414.         name = function(ent)
  415.  
  416.             return ent:GetPlayerName()
  417.         end,
  418.         points_modify = function(ply,ent,points)
  419.             return points
  420.         end,
  421.  
  422.         // How do samples of this type differentiate? (Needs to be a int)
  423.         identifier = function(ent)
  424.             return ent:GetPlayerID()
  425.         end,
  426.  
  427.         // This will be called on the entity we are harvesting the sample from
  428.         OnCollect = function(ply,ent)
  429.  
  430.             SafeRemoveEntity(ent)
  431.         end,
  432.     },
  433.     ["contaminated_objects"] = {
  434.         dna_points = 5,
  435.         name = function(ent)
  436.  
  437.             return zbl.config.Vaccines[ent:GetNWInt("zbl_Vaccine",1)].name
  438.         end,
  439.         points_modify = function(ply,ent,points)
  440.             return points
  441.         end,
  442.  
  443.         // How do samples of this type differentiate? (Needs to be a int)
  444.         identifier = function(ent)
  445.             return ent:GetNWInt("zbl_Vaccine",1)
  446.         end,
  447.  
  448.         // This will be called on the entity we are harvesting the sample from
  449.         OnCollect = function(ply,ent)
  450.         end,
  451.     },
  452. }
  453.  
  454.  
  455. // The GenLab is used to create DNA Points from Samples and create Vaccines/Viruses from DNA Points
  456. zbl.config.GenLab = {
  457.  
  458.     // How long does it take to analyze one sample
  459.     time_per_sample = 25, // seconds
  460.  
  461.     // Once a sample got used on the lab , how long does the player need to wait til the same sample gives full points again
  462.     sample_cooldown = 300, // seconds
  463.  
  464.     // How much value does a sample has which was previous researched in this lab, aka a sample with a cooldown
  465.     cooldown_penalty = 0.1, // 0 - 1
  466.  
  467.     // How much value does a sample has which is multiple times in the lab
  468.     duplicate_penalty = 0, // 0 - 1
  469.  
  470.     // Changes the analyze/create speed according to what rank the player has
  471.     // 1 = NoChange, 2 = Double duration , 0.5 = Half duration
  472.     time_modify = {
  473.         // Dont remove the default value
  474.         ["default"] = 1,
  475.         ["vip"] = 0.9,
  476.         ["superadmin"] = 0.5,
  477.     },
  478.  
  479.     Data = {
  480.         // Should the DNA Points be saved on the server?
  481.         Save = true,
  482.  
  483.         // How often should we auto save the data of players. Set to -1 to disable the autosave.
  484.         // The data will also get saved when the player disconnects from the Server so the autosave is just a safety measure.
  485.         Save_Interval = 600,
  486.  
  487.         // If specified then only data for Players with these Ranks get saved. Leave empty to save the data for every player.
  488.         Whitelist = {
  489.             ["superadmin"] = true,
  490.             ["vip"] = true
  491.         }
  492.     }
  493. }
  494.  
  495.  
  496.  
  497. // Here you can define perception effects for the player which changes how the player sees and hears.
  498. zbl.config.PerceptionEffects = {
  499.     ["visual_distortion_weak"] = {
  500.  
  501.         // What audio filter should be applied? (Changes how the player hears ingame)
  502.         //https://developer.valvesoftware.com/wiki/Dsp_presets
  503.         //audio_filter = 15,
  504.  
  505.         // A diffuse material which get layered over the players screen
  506.         //mat = "zerochain/zblood/screeneffects/zbl_scfx_braincells",
  507.  
  508.         // A refract material which get layered over the players screen
  509.         //warp_mat = "zerochain/zblood/screeneffects/zbl_scfx_braincells_warp",
  510.  
  511.         // The Bloom Color
  512.         bloom = {0, 0, 0.1},
  513.  
  514.         // The blur effect
  515.         m_blur = 0.5,
  516.  
  517.         // The DrawColorModify data
  518.         colormodify = {
  519.  
  520.             ["pp_colour_addr"] = 0,
  521.             ["pp_colour_addg"] = 0,
  522.             ["pp_colour_addb"] = 0.05,
  523.  
  524.             ["pp_colour_brightness"] = 0,
  525.             ["pp_colour_contrast"] = 1,
  526.             ["pp_colour_colour"] = 0.8,
  527.  
  528.             ["pp_colour_mulr"] = 0,
  529.             ["pp_colour_mulg"] = 0,
  530.             ["pp_colour_mulb"] = 0.5
  531.         }
  532.     },
  533.     ["visual_distortion_strong"] = {
  534.  
  535.         // What audio filter should be applied? (Changes how the player hears ingame)
  536.         //https://developer.valvesoftware.com/wiki/Dsp_presets
  537.         audio_filter = 15,
  538.  
  539.         // A diffuse material which get layered over the players screen
  540.         mat = "zerochain/zblood/screeneffects/zbl_scfx_zombiemeat",
  541.  
  542.         // A refract material which get layered over the players screen
  543.         warp_mat = "zerochain/zblood/screeneffects/zbl_scfx_zombiemeat_warp",
  544.  
  545.         // The Bloom Color
  546.         bloom = {0.125, 0.125, 1},
  547.  
  548.         // The blur effect
  549.         m_blur = 1,
  550.  
  551.         // The DrawColorModify data
  552.         colormodify = {
  553.  
  554.             ["pp_colour_addr"] = 0.5,
  555.             ["pp_colour_addg"] = 0.1,
  556.             ["pp_colour_addb"] = 0.1,
  557.  
  558.             ["pp_colour_brightness"] = -0.4,
  559.             ["pp_colour_contrast"] = 1,
  560.             ["pp_colour_colour"] = 1,
  561.  
  562.             ["pp_colour_mulr"] = 0,
  563.             ["pp_colour_mulg"] = 0,
  564.             ["pp_colour_mulb"] = 0.0
  565.         }
  566.     },
  567.     ["visual_distortion_mutant"] = {
  568.         audio_filter = 15,
  569.         mat = "zerochain/zblood/screeneffects/zbl_scfx_mutant",
  570.         warp_mat = "zerochain/zblood/screeneffects/zbl_scfx_mutant_warp",
  571.         bloom = {1, 0.125, 1},
  572.         m_blur = 1,
  573.         colormodify = {
  574.  
  575.             ["pp_colour_addr"] = 0.2,
  576.             ["pp_colour_addg"] = 0.5,
  577.             ["pp_colour_addb"] = 0.2,
  578.  
  579.             ["pp_colour_brightness"] = -0.6,
  580.             ["pp_colour_contrast"] = 1,
  581.             ["pp_colour_colour"] = 1,
  582.  
  583.             ["pp_colour_mulr"] = 0,
  584.             ["pp_colour_mulg"] = 0,
  585.             ["pp_colour_mulb"] = 0.0
  586.         }
  587.     },
  588.     ["visual_blindness_weak"] = {
  589.         m_blur = 0.5,
  590.         b_blur = 50,
  591.         colormodify = {
  592.  
  593.             ["pp_colour_addr"] = 0,
  594.             ["pp_colour_addg"] = 0,
  595.             ["pp_colour_addb"] = 0,
  596.  
  597.             ["pp_colour_brightness"] = 0.1,
  598.             ["pp_colour_contrast"] = 1,
  599.             ["pp_colour_colour"] = 0.8,
  600.  
  601.             ["pp_colour_mulr"] = 0,
  602.             ["pp_colour_mulg"] = 0,
  603.             ["pp_colour_mulb"] = 0
  604.         }
  605.     },
  606.     ["visual_blindness_medium"] = {
  607.         m_blur = 1,
  608.         b_blur = 200,
  609.         colormodify = {
  610.  
  611.             ["pp_colour_addr"] = 0,
  612.             ["pp_colour_addg"] = 0,
  613.             ["pp_colour_addb"] = 0,
  614.  
  615.             ["pp_colour_brightness"] = 0.5,
  616.             ["pp_colour_contrast"] = 1,
  617.             ["pp_colour_colour"] = 0.8,
  618.  
  619.             ["pp_colour_mulr"] = 0,
  620.             ["pp_colour_mulg"] = 0,
  621.             ["pp_colour_mulb"] = 0
  622.         }
  623.     },
  624.     ["visual_blindness_strong"] = {
  625.         m_blur = 1.2,
  626.         b_blur = 500,
  627.         colormodify = {
  628.  
  629.             ["pp_colour_addr"] = 0,
  630.             ["pp_colour_addg"] = 0,
  631.             ["pp_colour_addb"] = 0,
  632.  
  633.             ["pp_colour_brightness"] = 0.5,
  634.             ["pp_colour_contrast"] = 1,
  635.             ["pp_colour_colour"] = 0.8,
  636.  
  637.             ["pp_colour_mulr"] = 0,
  638.             ["pp_colour_mulg"] = 0,
  639.             ["pp_colour_mulb"] = 0
  640.         }
  641.     },
  642.     ["visual_headache_weak"] = {
  643.         m_blur = 0.5,
  644.         b_blur = 55,
  645.         warp_mat = "zerochain/zblood/screeneffects/zbl_scfx_headache_warp",
  646.         colormodify = {
  647.  
  648.             ["pp_colour_addr"] = 0.3,
  649.             ["pp_colour_addg"] = 0.1,
  650.             ["pp_colour_addb"] = 0.1,
  651.  
  652.             ["pp_colour_brightness"] = -0.1,
  653.             ["pp_colour_contrast"] = 1,
  654.             ["pp_colour_colour"] = 1,
  655.  
  656.             ["pp_colour_mulr"] = 0,
  657.             ["pp_colour_mulg"] = 0,
  658.             ["pp_colour_mulb"] = 0.0
  659.         }
  660.     },
  661.     ["visual_headache_strong"] = {
  662.         m_blur = 1,
  663.         b_blur = 75,
  664.         warp_mat = "zerochain/zblood/screeneffects/zbl_scfx_headache_warp",
  665.         colormodify = {
  666.  
  667.             ["pp_colour_addr"] = 0.4,
  668.             ["pp_colour_addg"] = 0.1,
  669.             ["pp_colour_addb"] = 0.1,
  670.  
  671.             ["pp_colour_brightness"] = -0.1,
  672.             ["pp_colour_contrast"] = 1,
  673.             ["pp_colour_colour"] = 1,
  674.  
  675.             ["pp_colour_mulr"] = 0,
  676.             ["pp_colour_mulg"] = 0,
  677.             ["pp_colour_mulb"] = 0.0
  678.         }
  679.     },
  680.     ["visual_sars_strong"] = {
  681.         m_blur = 1,
  682.         b_blur = 15,
  683.         warp_mat = "zerochain/zblood/screeneffects/zbl_scfx_sars_warp",
  684.         colormodify = {
  685.  
  686.             ["pp_colour_addr"] = 0.2,
  687.             ["pp_colour_addg"] = 0.2,
  688.             ["pp_colour_addb"] = 0.2,
  689.  
  690.             ["pp_colour_brightness"] = -0.3,
  691.             ["pp_colour_contrast"] = 1,
  692.             ["pp_colour_colour"] = 0.1,
  693.  
  694.             ["pp_colour_mulr"] = 0,
  695.             ["pp_colour_mulg"] = 1,
  696.             ["pp_colour_mulb"] = 1
  697.         }
  698.     },
  699.     ["visual_covid_strong"] = {
  700.         audio_filter = 15,
  701.         mat = "zerochain/zblood/screeneffects/zbl_scfx_covid",
  702.         warp_mat = "zerochain/zblood/screeneffects/zbl_scfx_braincells_warp",
  703.         bloom = {1, 0.125, 0},
  704.         m_blur = 1,
  705.         colormodify = {
  706.  
  707.             ["pp_colour_addr"] = 0.3,
  708.             ["pp_colour_addg"] = 0.1,
  709.             ["pp_colour_addb"] = 0.1,
  710.  
  711.             ["pp_colour_brightness"] = -0.5,
  712.             ["pp_colour_contrast"] = 0.9,
  713.             ["pp_colour_colour"] = 0.1,
  714.  
  715.             ["pp_colour_mulr"] = 2,
  716.             ["pp_colour_mulg"] = 0,
  717.             ["pp_colour_mulb"] = 0.0
  718.         }
  719.     },
  720. }
  721.  
  722.  
  723.  
  724. // Here you can define diffrent appearances for the player
  725. zbl.config.AppearanceEffects = {
  726.     ["appearance_rhizome"] = {
  727.  
  728.         // What wound material should be applied to the infected player?
  729.         /*
  730.             "zerochain/zblood/wounds/zbl_wound_braincells_diff",
  731.             "zerochain/zblood/wounds/zbl_wound_flesh_diff",
  732.             "zerochain/zblood/wounds/zbl_wound_mutant_diff",
  733.             "zerochain/zblood/wounds/zbl_wound_rhizome_diff",
  734.             "zerochain/zblood/wounds/zbl_wound_zombiemeat_diff",
  735.         */
  736.         MaterialOverlay = "zerochain/zblood/wounds/zbl_wound_rhizome_diff",
  737.  
  738.         // What wound color should be applied to the infected player?
  739.         //ColorOverlay = Color(178,48,32),
  740.  
  741.         // What player model should be applied to the infected player?
  742.         //PlayerModel = "models/player/charple.mdl"
  743.     },
  744.     ["appearance_braincells"] = {
  745.         MaterialOverlay = "zerochain/zblood/wounds/zbl_wound_braincells_diff",
  746.         ColorOverlay = Color(178,48,32),
  747.         PlayerModel = "models/player/charple.mdl"
  748.     },
  749.     ["appearance_armor"] = {
  750.         MaterialOverlay = "zerochain/zblood/misc/zbl_armored_diff",
  751.     },
  752. }
  753.  
  754.  
  755.  
  756. // Here you can define what objects can be contaminated with a virus
  757. zbl.config.Contamination = {
  758.  
  759.     // Should objects get contaminated when used by a infected player?
  760.     enabled = true,
  761.  
  762.     // If set to true then the contaminated objects will have the virus material applied which makes it easier to identify them
  763.     // Setting this to false means only the scan function of the injector gun will show if entities/players are infected
  764.     visible = false,
  765.  
  766.     // Those entities can be contaminated with a virus
  767.     // Only entities which can be interacted via USE can be used
  768.     ents = {
  769.         ["func_door"] = true,
  770.         ["func_door_rotating"] = true,
  771.         ["prop_door_rotating"] = true,
  772.         ["prop_vehicle_jeep"] = true,
  773.         ["money_printer"] = true,
  774.         ["func_button"] = true,
  775.         ["prop_vehicle_prisoner_pod"] = true,
  776.         ["darkrp_tip_jar"] = true,
  777.         ["spawned_shipment"] = true,
  778.         ["spawned_weapon"] = true,
  779.         ["spawned_money"] = true,
  780.         ["spawned_food"] = true,
  781.         ["spawned_ammo"] = true,
  782.         ["gunlab"] = true,
  783.         ["gmod_button"] = true,
  784.         ["keypad"] = true,
  785.         ["keypad_wire"] = true,
  786.     },
  787.  
  788.     // Here you can limit how many objects can be contaminated at once
  789.     limit = 50,
  790.  
  791.     // Can the contamination be collected? This gives the player a sample of the virus
  792.     collectable = true,
  793.  
  794.     // This system automaticly contaminates a object on the server which matches the entity class above
  795.     AutoContaminate = {
  796.  
  797.         enabled = true,
  798.  
  799.         // How often should we try to contaminate a object
  800.         interval = 1200, // seconds
  801.  
  802.         // Should Objects which gets used a lot be prioritised when choosing what entity to contaminate?
  803.         // Setting this to true will reduce the list of possible contaminated entities from all to only those which got touched since the last interval.
  804.         HeavyUsePriority = true,
  805.  
  806.         // Defines which virus should be used
  807.         virus_chance = {
  808.             // [virus_id] = chance
  809.             // Cold
  810.             [1] = 50, // %
  811.  
  812.             // SARS
  813.             [2] = 25,
  814.  
  815.             //COVID19
  816.             [3] = 25,
  817.         },
  818.     }
  819. }
  820.  
  821.  
  822.  
  823. // This system creates a virus outbreak on predefind locations and grows over time.
  824. // There can only be one active virus hotspot at a time, if the master node dies then the system will search for a new area to setup a new hotspot but any virusnode still alive will stay
  825. zbl.config.VirusHotspots = {
  826.  
  827.     // Should we create virus outbreaks on predefind locations?
  828.     enabled = true,
  829.  
  830.     // Should the virus hotspots grow only if one of the players has one of those jobs zbl.config.Jobs
  831.     GrowOnJobOnly = true,
  832.  
  833.     // The growth interval in seconds
  834.     // Keep in mind that finding grow positions for the nodes according to the world geometry is a expensive progress, short interval = more expensive
  835.     growth_interval = 60,
  836.  
  837.     // Here you can define spawn chances for diffrent virus ids
  838.     // The higher the percentage, the higher the chance of this virus getting used for the virus hotspot
  839.     virus_chance = {
  840.         // [virus_id] = chance
  841.         // Cold
  842.         [1] = 50, // %
  843.  
  844.         // SARS
  845.         [2] = 25,
  846.  
  847.         //COVID19
  848.         [3] = 25,
  849.     },
  850.  
  851.     // How many virus nodes (entities) is the system allowed to create?
  852.     node_limit = 15,
  853.  
  854.     // Can virus nodes be damaged with normal weapons?
  855.     node_damage = true,
  856.  
  857.     // Default health of a node
  858.     node_health_default = 100,
  859.  
  860.     // How much health can a virus node have total
  861.     node_health_max = 200,
  862.  
  863.     // How much health does a virus node gain over time.
  864.     node_health_increment = 10,
  865.  
  866.     // If a node has more then this amount of health then it can spread to a new location
  867.     node_health_spread = 50,
  868. }
  869.  
  870.  
  871.  
  872. // Virus nodes can spawn randomly arround the map or get created when a infected player dies
  873. // A virus node stores the virus data in it and can be harvested to generate new DNA points in the lab.
  874. // It also explodes and infects everyone near it if you touch it!
  875. zbl.config.VirusNodes = {
  876.  
  877.     // How long does a virus node exist before it gets removed
  878.     // This is the default value but can be overriden in the Vaccine Config
  879.     // This only affects virus nodes created on player death or by exploding flasks and doesent affect virus nodes created by virus hotspots
  880.     life_time = 5000,
  881.  
  882.     // Defines the maximal model scale of a virus node if it reaches max health
  883.     max_scale = 3,
  884.  
  885.     // Should the virus node explode on touch?
  886.     KillOnTouch = false
  887. }
  888.  
  889.  
  890.  
  891. // Here we create all the viruses and the abillity boosts
  892. zbl.config.Vaccines = {}
  893.  
  894. // For easier vaccine creation
  895. function zbl.f.Vaccine_CreateConfig(vaccine)
  896.     return table.insert(zbl.config.Vaccines, vaccine)
  897. end
  898.  
  899. // Cold
  900. zbl.f.Vaccine_CreateConfig({
  901.     // Name of the Vaccine
  902.     name = "Cold",
  903.  
  904.     // Description of the vaccine
  905.     desc = "A regular cold.",
  906.  
  907.     // How much money is this vaccine worth?
  908.     price = 1000,
  909.  
  910.     // Just to tell the script if this vaccine is a abillity boost or a virus
  911.     isvirus = true,
  912.  
  913.     // Duration of the Vaccine / Virus per mutation stage
  914.     // You can override the duration of each mutation stage individually bellow, then this value wont get used
  915.     duration = 60,
  916.  
  917.     cure = {
  918.  
  919.         // If the player gets cured by the cure , how long will he be immun against this virus?
  920.         immunity_time = 1200,
  921.  
  922.         // Should this vaccine/virus remove itself when the player dies?
  923.         // Setting this to false will keep the player infected even after he respawns.
  924.         ondeath = true,
  925.  
  926.         // How much money is the vaccine cure worth?
  927.         price = 2000,
  928.     },
  929.  
  930.     // This material gets applied on virus nodes and contaminated objects
  931.     // If this vaccine is not a virus then just remove this part
  932.     // The materials bellow come with the script but you can also use your own
  933.     /*
  934.         "zerochain/zblood/wounds/zbl_wound_braincells_diff"
  935.         "zerochain/zblood/wounds/zbl_wound_flesh_diff"
  936.         "zerochain/zblood/wounds/zbl_wound_inflorescence_diff"
  937.         "zerochain/zblood/wounds/zbl_wound_mold_diff"
  938.         "zerochain/zblood/wounds/zbl_wound_moss_diff"
  939.         "zerochain/zblood/wounds/zbl_wound_mutant_diff"
  940.         "zerochain/zblood/wounds/zbl_wound_rhizome_diff"
  941.         "zerochain/zblood/wounds/zbl_wound_zombiemeat_diff"
  942.     */
  943.     mat = "zerochain/zblood/wounds/zbl_wound_moss_diff",
  944.  
  945.     // The research info for the Lab
  946.     research = {
  947.         // How much DNA points are needed to create this Vaccine
  948.         ["vaccine_points"] = 15,
  949.  
  950.         // How long does it take to create this vaccine
  951.         ["vaccine_time"] = 120,
  952.  
  953.         // How much DNA points are needed to create a cure for this vaccine?
  954.         ["cure_points"] = 20,
  955.  
  956.         // How long does it take to create a cure this vaccine?
  957.         ["cure_time"] = 200,
  958.  
  959.         // Those ranks are allowed to create this vaccine / cure
  960.         ["ranks"] = {
  961.             //["superadmin"] = true,
  962.         }
  963.     },
  964.  
  965.     // Before the virus starts to develop any symptomes its gonna be in its occopation stage were it secretly infects other players arround the infected player every 10 seconds
  966.     // Simple remove this block if you dont want your virus/vaccine to have a occopation stage
  967.     occopation = {
  968.       // How long does the occopation stage last?
  969.       time = 5,
  970.  
  971.       // How high is the chance for players near the infected player getting infected
  972.       infection_chance = 50,
  973.  
  974.       // How close does a player need to be to the infected player in order to get infected
  975.       infection_radius = 200,
  976.     },
  977.  
  978.     // Should objects get contaminated with the virus if the player interacts with them
  979.     // Simple remove this block if you dont want it
  980.     contamination = {
  981.  
  982.         // How long will the object be contaminated?
  983.         time = 100,
  984.  
  985.         // How high is the chance that players infected with this virus contaminate objects they interact with.
  986.         chance = 50,
  987.     },
  988.  
  989.     // Mutation Chance
  990.     // The current Mutation Stage has ended this value defines if the vaccine stops or mutates which switches the mutation_stages to the next stage and restarts the vaccine timer
  991.     // -1 Disables the mutation
  992.     mutation_chance = 50,
  993.  
  994.     // Here you can define the diffrent stages of the vaccine/virus, effects,symptomes,perception and appearance
  995.     mutation_stages = {
  996.         [1] = {
  997.             // This can be used to override the duration
  998.             duration = 60,
  999.  
  1000.             // How the vaccine affects the player
  1001.             // Here is a list of all effects
  1002.             /*
  1003.                 ["movement_speed"] = 0.8, // (0.1 - 2)
  1004.                 ["movement_distortion"] = 1, // (1 - 5)
  1005.                 ["movement_invert"] = true, // true
  1006.  
  1007.                 ["damage_modify"] = 1.1, // (0.1 - 2)
  1008.                 ["damage_fall_modify"] = 1.1, // (0.1 - 2)
  1009.                 ["damage_fire_modify"] = 1.1, // (0.1 - 2)
  1010.                 ["damage_bullet_modify"] = 1.1, // (0.1 - 2)
  1011.  
  1012.                 ["jump_modify"] = 180, // Default is 200
  1013.             */
  1014.             effects = {
  1015.                 ["movement_speed"] = 0.8, // (0.1 - 2)
  1016.                 ["damage_modify"] = 1.1, // (0.1 - 2)
  1017.                 ["jump_modify"] = 180, // Default is 200
  1018.             },
  1019.  
  1020.             // Symptomes which can cause the vaccine to spread or to modify the player in some way (Usally just used for viruses)
  1021.             // Here is a list of all Symptomes
  1022.             /*
  1023.                 ["coughing"] = {interval = 1, infect_distance = 100, infect_chance = 50, damage = 0},
  1024.                 ["projectile_vomit"] = {interval = 5, damage = 0},
  1025.                 ["explosive_diarrhea"] = {interval = 5, damage = 0},
  1026.                 ["head_swelling"] = {scale = 2, damage = 0},
  1027.                 ["legs_swelling"] = {scale = 1.75, damage = 0},
  1028.                 ["explosive_head"] = {infect_distance = 300, infect_chance = 60},
  1029.             */
  1030.             symptomes = {
  1031.                 // Coughing can infect other players in close proximity
  1032.                 ["coughing"] = {interval = 10, infect_distance = 100, infect_chance = 50, damage = 0},
  1033.             },
  1034.         },
  1035.         [2] = {
  1036.             duration = 15,
  1037.             effects = {
  1038.                 ["movement_speed"] = 0.5,
  1039.                 ["damage_modify"] = 1.5,
  1040.                 ["jump_modify"] = 100,
  1041.             },
  1042.             symptomes = {
  1043.                 ["coughing"] = {interval = 5, infect_distance = 100, infect_chance = 90, damage = 15},
  1044.             },
  1045.             perception = "visual_distortion_strong",
  1046.         },
  1047.     },
  1048. })
  1049.  
  1050. // SARS
  1051. zbl.f.Vaccine_CreateConfig({
  1052.     name = "SARS",
  1053.     desc = "A deadly virus which causes projectile vomit on its host.",
  1054.     price = 1000,
  1055.     isvirus = true,
  1056.     duration = 300,
  1057.     cure = {
  1058.         immunity_time = 1200,
  1059.         ondeath = true,
  1060.         price = 2000,
  1061.     },
  1062.     mat = "zerochain/zblood/wounds/zbl_wound_inflorescence_diff",
  1063.     research = {
  1064.         ["vaccine_points"] = 15,
  1065.         ["vaccine_time"] = 200,
  1066.         ["cure_points"] = 20,
  1067.         ["cure_time"] = 250,
  1068.         ["ranks"] = {
  1069.             ["superadmin"] = true,
  1070.             ["vip"] = true,
  1071.         }
  1072.     },
  1073.     occopation = {
  1074.       time = 60,
  1075.       infection_chance = 60,
  1076.       infection_radius = 200,
  1077.     },
  1078.     contamination = {
  1079.         time = 35,
  1080.         chance = 75,
  1081.     },
  1082.     mutation_chance = 90,
  1083.     mutation_stages = {
  1084.         [1] = {
  1085.             effects = {
  1086.                 ["movement_speed"] = 0.8,
  1087.                 ["damage_modify"] = 1.1,
  1088.                 ["jump_modify"] = 180,
  1089.             },
  1090.             symptomes = {
  1091.                 ["projectile_vomit"] = {interval = 5, damage = 0},
  1092.             },
  1093.             perception = "visual_distortion_weak",
  1094.         },
  1095.         [2] = {
  1096.             effects = {
  1097.                 ["movement_speed"] = 0.5,
  1098.                 ["damage_modify"] = 1.5,
  1099.                 ["jump_modify"] = 100,
  1100.             },
  1101.             symptomes = {
  1102.                 ["projectile_vomit"] = {interval = 1, damage = 5},
  1103.                 ["explosive_diarrhea"] = {interval = 5, damage = 0},
  1104.             },
  1105.             perception = "visual_sars_strong",
  1106.             appearance = "appearance_rhizome",
  1107.         },
  1108.     },
  1109. })
  1110.  
  1111. // COVID19
  1112. zbl.f.Vaccine_CreateConfig({
  1113.     name = "COVID-19",
  1114.     desc = "Highly infectious virus which causes heavy coughing followed by death.",
  1115.     price = 1000,
  1116.     isvirus = true,
  1117.     duration = 500,
  1118.     cure = {
  1119.         immunity_time = 1200,
  1120.         ondeath = true,
  1121.         price = 2000,
  1122.     },
  1123.     mat = "zerochain/zblood/wounds/zbl_wound_braincells_diff",
  1124.     research = {
  1125.         ["vaccine_points"] = 30,
  1126.         ["vaccine_time"] = 250,
  1127.         ["cure_points"] = 40,
  1128.         ["cure_time"] = 300,
  1129.         ["ranks"] = {
  1130.             ["superadmin"] = true,
  1131.             ["vip"] = true,
  1132.         }
  1133.     },
  1134.     occopation = {
  1135.       time = 100,
  1136.       infection_chance = 80,
  1137.       infection_radius = 200,
  1138.     },
  1139.     contamination = {
  1140.         time = 500,
  1141.         chance = 75,
  1142.     },
  1143.     mutation_chance = 90,
  1144.     mutation_stages = {
  1145.         [1] = {
  1146.             effects = {
  1147.                 ["movement_speed"] = 1.2,
  1148.                 ["damage_modify"] = 1.1,
  1149.             },
  1150.             symptomes = {
  1151.                 ["coughing"] = {interval = 6, infect_distance = 200, infect_chance = 75, damage = 0},
  1152.             },
  1153.             perception = "visual_distortion_weak",
  1154.         },
  1155.         [2] = {
  1156.             effects = {
  1157.                 ["movement_speed"] = 2,
  1158.                 ["damage_modify"] = 1.5,
  1159.             },
  1160.             symptomes = {
  1161.                 ["coughing"] = {interval = 3, infect_distance = 300, infect_chance = 90, damage = 15},
  1162.             },
  1163.             perception = "visual_covid_strong",
  1164.             appearance = "appearance_braincells",
  1165.         },
  1166.     },
  1167. })
  1168.  
  1169. // Eye Cancer
  1170. zbl.f.Vaccine_CreateConfig({
  1171.     name = "Eye Cancer",
  1172.     desc = "Causes the host to gradully lose their eye sight.",
  1173.     price = 1000,
  1174.     isvirus = true,
  1175.     duration = 60,
  1176.     cure = {
  1177.         immunity_time = 1200,
  1178.         ondeath = true,
  1179.         price = 2000,
  1180.     },
  1181.     mat = "zerochain/zblood/wounds/zbl_wound_rhizome_diff",
  1182.     research = {
  1183.         ["vaccine_points"] = 25,
  1184.         ["vaccine_time"] = 150,
  1185.         ["cure_points"] = 25,
  1186.         ["cure_time"] = 200,
  1187.         ["ranks"] = {
  1188.             ["superadmin"] = true,
  1189.             ["vip"] = true,
  1190.         }
  1191.     },
  1192.     occopation = {
  1193.       time = 60,
  1194.       infection_chance = 50,
  1195.       infection_radius = 200,
  1196.     },
  1197.     contamination = {
  1198.         time = 60,
  1199.         chance = 60,
  1200.     },
  1201.     mutation_chance = 35,
  1202.     mutation_stages = {
  1203.         [1] = {
  1204.             perception = "visual_blindness_weak",
  1205.         },
  1206.         [2] = {
  1207.             perception = "visual_blindness_medium",
  1208.         },
  1209.         [3] = {
  1210.             perception = "visual_blindness_strong",
  1211.         },
  1212.     },
  1213. })
  1214.  
  1215. // Ebola
  1216. zbl.f.Vaccine_CreateConfig({
  1217.     name = "Ebola",
  1218.     desc = "Causes explosive diarrhea on its host which creates contaminated areas!",
  1219.     price = 1000,
  1220.     isvirus = true,
  1221.     duration = 60,
  1222.     cure = {
  1223.         immunity_time = 1200,
  1224.         ondeath = true,
  1225.         price = 2000,
  1226.     },
  1227.     mat = "zerochain/zblood/wounds/zbl_wound_mold_diff",
  1228.     research = {
  1229.         ["vaccine_points"] = 30,
  1230.         ["vaccine_time"] = 200,
  1231.         ["cure_points"] = 25,
  1232.         ["cure_time"] = 250,
  1233.         ["ranks"] = {
  1234.             ["superadmin"] = true,
  1235.             ["vip"] = true,
  1236.         }
  1237.     },
  1238.     occopation = {
  1239.       time = 100,
  1240.       infection_chance = 80,
  1241.       infection_radius = 200,
  1242.     },
  1243.     contamination = {
  1244.         time = 500,
  1245.         chance = 75,
  1246.     },
  1247.     mutation_chance = 90,
  1248.     mutation_stages = {
  1249.         [1] = {
  1250.             effects = {
  1251.                 ["movement_speed"] = 1.2,
  1252.                 ["damage_modify"] = 1.1,
  1253.             },
  1254.             symptomes = {
  1255.                 ["explosive_diarrhea"] = {interval = 5, damage = 0},
  1256.             },
  1257.             perception = "visual_distortion_weak",
  1258.         },
  1259.         [2] = {
  1260.             effects = {
  1261.                 ["movement_speed"] = 2,
  1262.                 ["damage_modify"] = 1.5,
  1263.             },
  1264.             symptomes = {
  1265.                 ["explosive_diarrhea"] = {interval = 2, damage = 10},
  1266.             },
  1267.             perception = "visual_distortion_mutant",
  1268.             appearance = "appearance_braincells",
  1269.         },
  1270.     },
  1271. })
  1272.  
  1273. // Explosive Headache
  1274. zbl.f.Vaccine_CreateConfig({
  1275.     name = "Explosive Headache",
  1276.     desc = "Causes a strong Headache which untreated can cause the patients head to explode.",
  1277.     price = 1000,
  1278.     isvirus = true,
  1279.     duration = 60,
  1280.     cure = {
  1281.         immunity_time = 1200,
  1282.         ondeath = true,
  1283.         price = 2000,
  1284.     },
  1285.     mat = "zerochain/zblood/wounds/zbl_wound_zombiemeat_diff",
  1286.     research = {
  1287.         ["vaccine_points"] = 40,
  1288.         ["vaccine_time"] = 215,
  1289.         ["cure_points"] = 25,
  1290.         ["cure_time"] = 250,
  1291.         ["ranks"] = {
  1292.             ["superadmin"] = true,
  1293.             ["vip"] = true,
  1294.         }
  1295.     },
  1296.     occopation = {
  1297.       time = 60,
  1298.       infection_chance = 50,
  1299.       infection_radius = 200,
  1300.     },
  1301.     contamination = {
  1302.         time = 300,
  1303.         chance = 60,
  1304.     },
  1305.     mutation_chance = 100,
  1306.     mutation_stages = {
  1307.         [1] = {
  1308.             effects = {
  1309.                 ["jump_modify"] = 300,
  1310.                 ["damage_fall_modify"] = 0
  1311.             },
  1312.             symptomes = {
  1313.                 ["head_swelling"] = {scale = 1.5, damage = 0},
  1314.             },
  1315.             perception = "visual_headache_weak"
  1316.         },
  1317.         [2] = {
  1318.             effects = {
  1319.                 ["jump_modify"] = 400,
  1320.                 ["damage_fall_modify"] = 0
  1321.             },
  1322.             symptomes = {
  1323.                 ["head_swelling"] = {scale = 2, damage = 0},
  1324.             },
  1325.             perception = "visual_headache_weak"
  1326.         },
  1327.         [3] = {
  1328.             effects = {
  1329.                 ["jump_modify"] = 500,
  1330.                 ["damage_fall_modify"] = 0
  1331.             },
  1332.             symptomes = {
  1333.                 ["head_swelling"] = {scale = 2.5, damage = 0},
  1334.             },
  1335.             perception = "visual_headache_strong"
  1336.         },
  1337.         [4] = {
  1338.             effects = {
  1339.                 ["jump_modify"] = 600,
  1340.                 ["damage_fall_modify"] = 0
  1341.             },
  1342.             symptomes = {
  1343.                 ["head_swelling"] = {scale = 3, damage = 0},
  1344.             },
  1345.             perception = "visual_headache_strong"
  1346.         },
  1347.         [5] = {
  1348.             symptomes = {
  1349.                 ["explosive_head"] = {infect_distance = 300, infect_chance = 60},
  1350.             },
  1351.         },
  1352.     },
  1353. })
  1354.  
  1355. // Fire Resistance
  1356. zbl.f.Vaccine_CreateConfig({
  1357.     name = "Fire Resitance",
  1358.     desc = "Makes the patient Immune against fire.",
  1359.     price = 1000,
  1360.     isvirus = false,
  1361.     duration = 60,
  1362.     cure = {
  1363.         immunity_time = 200,
  1364.         ondeath = true,
  1365.         price = 2000,
  1366.     },
  1367.     research = {
  1368.         ["vaccine_points"] = 10,
  1369.         ["vaccine_time"] = 100,
  1370.         ["cure_points"] = 20,
  1371.         ["cure_time"] = 100,
  1372.         ["ranks"] = {
  1373.             //["superadmin"] = true,
  1374.         }
  1375.     },
  1376.     mutation_chance = -1,
  1377.     mutation_stages = {
  1378.         [1] = {
  1379.             effects = {
  1380.                 ["damage_fire_modify"] = 0,
  1381.             },
  1382.         },
  1383.     },
  1384. })
  1385.  
  1386. // Mobility Boost
  1387. zbl.f.Vaccine_CreateConfig({
  1388.     name = "Mobility Boost",
  1389.     desc = "Increases the patients move speed.",
  1390.     price = 1000,
  1391.     isvirus = false,
  1392.     duration = 60,
  1393.     cure = {
  1394.         immunity_time = 200,
  1395.         ondeath = true,
  1396.         price = 2000,
  1397.     },
  1398.     research = {
  1399.         ["vaccine_points"] = 10,
  1400.         ["vaccine_time"] = 35,
  1401.         ["cure_points"] = 20,
  1402.         ["cure_time"] = 50,
  1403.         ["ranks"] = {
  1404.             //["superadmin"] = true,
  1405.         }
  1406.     },
  1407.     mutation_chance = -1,
  1408.     mutation_stages = {
  1409.         [1] = {
  1410.             effects = {
  1411.                 ["movement_speed"] = 2,
  1412.             },
  1413.         },
  1414.     },
  1415. })
  1416.  
  1417. // Super Legs
  1418. zbl.f.Vaccine_CreateConfig({
  1419.     name = "Super Legs",
  1420.     desc = "Increases the patients jump height.",
  1421.     price = 1000,
  1422.     isvirus = false,
  1423.     duration = 60,
  1424.     cure = {
  1425.         immunity_time = 200,
  1426.         ondeath = true,
  1427.         price = 2000,
  1428.     },
  1429.     research = {
  1430.         ["vaccine_points"] = 10,
  1431.         ["vaccine_time"] = 35,
  1432.         ["cure_points"] = 20,
  1433.         ["cure_time"] = 40,
  1434.         ["ranks"] = {
  1435.             //["superadmin"] = true,
  1436.         }
  1437.     },
  1438.     mutation_chance = -1,
  1439.     mutation_stages = {
  1440.         [1] = {
  1441.             effects = {
  1442.                 ["damage_fall_modify"] = 0,
  1443.                 ["jump_modify"] = 500,
  1444.             },
  1445.  
  1446.             symptomes = {
  1447.                 ["legs_swelling"] = {scale = 1.75, damage = 0},
  1448.             },
  1449.         },
  1450.     },
  1451. })
  1452.  
  1453. // Invinsibility
  1454. zbl.f.Vaccine_CreateConfig({
  1455.     name = "Invinsibility",
  1456.     desc = "Makes the player Immune against any damage.",
  1457.     price = 1000,
  1458.     isvirus = false,
  1459.     duration = 60,
  1460.     cure = {
  1461.         immunity_time = 200,
  1462.         ondeath = true,
  1463.         price = 2000,
  1464.     },
  1465.     research = {
  1466.         ["vaccine_points"] = 75,
  1467.         ["vaccine_time"] = 60,
  1468.         ["cure_points"] = 25,
  1469.         ["cure_time"] = 60,
  1470.         ["ranks"] = {
  1471.             ["superadmin"] = true,
  1472.             ["vip"] = true,
  1473.         }
  1474.     },
  1475.     mutation_chance = -1,
  1476.     mutation_stages = {
  1477.         [1] = {
  1478.             effects = {
  1479.                 ["damage_modify"] = 0.05,
  1480.             },
  1481.             appearance = "appearance_armor",
  1482.         },
  1483.     },
  1484. })
  1485.  
  1486.  
  1487.  
  1488.  
  1489. // The NPC buys your Viruses/Cures/Abillity Boosts and also has quests for you
  1490. zbl.config.NPC = {
  1491.  
  1492.     // Name of the npc
  1493.     name = "Kane - Genetic Engineer",
  1494.  
  1495.     // Color of the NPC/Interface
  1496.     SkinColor = Color(190,58,64,255),
  1497.  
  1498.     // How long till the player can do another quest / a new quest gets offered
  1499.     quest_cooldown = 300,
  1500.  
  1501.     // This will be filled with the quest configs bellow
  1502.     quests = {}
  1503. }
  1504.  
  1505. // Bring 3  unique blood samples (collected from 3 diffrent players) to the npc
  1506. zbl.f.Quest_CreateConfig({
  1507.     // The Type of Quest
  1508.     q_type = ZBL_SUPPLY_UNIQUE_PLAYER_SAMPLES,
  1509.  
  1510.     // The Name of the Quest
  1511.     name = "Blood Thief",
  1512.  
  1513.     // The Description of the Quest
  1514.     desc = "I need you to get me 3 unique blood samples.",
  1515.  
  1516.     // Count of items
  1517.     count = 3,
  1518.  
  1519.     // Money Reward
  1520.     money_reward = 5000,
  1521.  
  1522.     // DNA Points Reward (Remove this if you dont want to give the player DNA Points)
  1523.     dna_reward = 20,
  1524.  
  1525.     // Quest Time
  1526.     time = 600,
  1527. })
  1528.  
  1529. // Bring 3 samples of the specified virus (which were harvested from a virus node) to the npc
  1530. zbl.f.Quest_CreateConfig({
  1531.     q_type = ZBL_SUPPLY_VIRUS_SAMPLES,
  1532.     name = "Virus Sample Delivery",
  1533.     desc = "I need you to get me 3 samples from the Cold virus.",
  1534.     virus_id = 1,
  1535.     sample_class = "zbl_virusnode",
  1536.     count = 3,
  1537.     money_reward = 4000,
  1538.     dna_reward = 10,
  1539.     time = 600,
  1540. })
  1541.  
  1542. // Bring 1 fire resistance vaccine to the npc
  1543. zbl.f.Quest_CreateConfig({
  1544.     q_type = ZBL_SUPPLY_VACCINE,
  1545.     name = "Vaccine Delivery",
  1546.     desc = "I need you to get me 1 Fire Resistance vaccine.",
  1547.     virus_id = 7,
  1548.     count = 1,
  1549.     money_reward = 3000,
  1550.     dna_reward = 10,
  1551.     time = 600
  1552. })
  1553.  
  1554. // Bring 3 Cold Cures to the npc
  1555. zbl.f.Quest_CreateConfig({
  1556.     q_type = ZBL_SUPPLY_CURE,
  1557.     name = "Cure Delivery",
  1558.     desc = "I need you to get me 3 Cold cures.",
  1559.     virus_id = 1,
  1560.     count = 3,
  1561.     money_reward = 8000,
  1562.     time = 600
  1563. })
  1564.  
  1565. /*
  1566. This only is usefull if you have headcrabs on the server
  1567. // Bring 3 samples from a headcrab to the npc
  1568. zbl.f.Quest_CreateConfig({
  1569.     q_type = ZBL_SUPPLY_SAMPLES,
  1570.     name = "Sample Delivery",
  1571.     desc = "I need you to get me 3 samples from a Headcrab.",
  1572.     virus_id = nil,
  1573.     sample_class = "npc_headcrab",
  1574.     count = 3,
  1575.     money_reward = 5000,
  1576.     time = 600
  1577. })
  1578. */
  1579.  
  1580. // Bring 2 Sars Cures to the npc
  1581. zbl.f.Quest_CreateConfig({
  1582.     q_type = ZBL_SUPPLY_CURE,
  1583.     name = "Cure Delivery",
  1584.     desc = "I need you to get me 2 SARS cures.",
  1585.     virus_id = 2,
  1586.     count = 2,
  1587.     money_reward = 8000,
  1588.     dna_reward = 10,
  1589.     time = 600
  1590. })
  1591.  
  1592.  
  1593.  
  1594.  
  1595.  
  1596. // Here you can specify if the model is male or female, so the script knows what sound to play
  1597. // For none specified models it will just play male/female sounds at random
  1598. zbl.SoundByModel = {}
  1599.  
  1600.  
  1601. zbl.SoundByModel["models/player/alyx.mdl"] = "female"
  1602. zbl.SoundByModel["models/player/p2_chell.mdl"] = "female"
  1603. zbl.SoundByModel["models/player/mossman.mdl"] = "female"
  1604.  
  1605. zbl.SoundByModel["models/player/kleiner.mdl"] = "male"
  1606. zbl.SoundByModel["models/player/monk.mdl"] = "male"
  1607. zbl.SoundByModel["models/player/corpse1.mdl"] = "male"
  1608. zbl.SoundByModel["models/player/police.mdl"] = "male"
  1609. zbl.SoundByModel["models/player/breen.mdl"] = "male"
  1610. zbl.SoundByModel["models/player/barney.mdl"] = "male"
  1611. zbl.SoundByModel["models/player/gman_high.mdl"] = "male"
  1612. zbl.SoundByModel["models/player/odessa.mdl"] = "male"
  1613. zbl.SoundByModel["models/player/eli.mdl"] = "male"
  1614. zbl.SoundByModel["models/player/charple.mdl"] = "male"
  1615. zbl.SoundByModel["models/player/soldier_stripped.mdl"] = "male"
  1616.  
  1617. zbl.SoundByModel["models/player/group02/male_02.mdl"] = "male"
  1618. zbl.SoundByModel["models/player/group02/male_04.mdl"] = "male"
  1619. zbl.SoundByModel["models/player/group02/male_06.mdl"] = "male"
  1620. zbl.SoundByModel["models/player/group02/male_08.mdl"] = "male"
  1621.  
  1622.  
  1623. zbl.SoundByModel["models/player/group01/male_01.mdl"] = "male"
  1624. zbl.SoundByModel["models/player/group01/male_02.mdl"] = "male"
  1625. zbl.SoundByModel["models/player/group01/male_03.mdl"] = "male"
  1626. zbl.SoundByModel["models/player/group01/male_04.mdl"] = "male"
  1627. zbl.SoundByModel["models/player/group01/male_05.mdl"] = "male"
  1628. zbl.SoundByModel["models/player/group01/male_06.mdl"] = "male"
  1629. zbl.SoundByModel["models/player/group01/male_07.mdl"] = "male"
  1630. zbl.SoundByModel["models/player/group01/male_08.mdl"] = "male"
  1631. zbl.SoundByModel["models/player/group01/male_09.mdl"] = "male"
  1632.  
  1633.  
  1634. zbl.SoundByModel["models/player/group03/male_01.mdl"] = "male"
  1635. zbl.SoundByModel["models/player/group03/male_02.mdl"] = "male"
  1636. zbl.SoundByModel["models/player/group03/male_03.mdl"] = "male"
  1637. zbl.SoundByModel["models/player/group03/male_04.mdl"] = "male"
  1638. zbl.SoundByModel["models/player/group03/male_05.mdl"] = "male"
  1639. zbl.SoundByModel["models/player/group03/male_06.mdl"] = "male"
  1640. zbl.SoundByModel["models/player/group03/male_07.mdl"] = "male"
  1641. zbl.SoundByModel["models/player/group03/male_08.mdl"] = "male"
  1642. zbl.SoundByModel["models/player/group03/male_09.mdl"] = "male"
  1643.  
  1644. zbl.SoundByModel["models/player/group03/female_01.mdl"] = "female"
  1645. zbl.SoundByModel["models/player/group03/female_02.mdl"] = "female"
  1646. zbl.SoundByModel["models/player/group03/female_03.mdl"] = "female"
  1647. zbl.SoundByModel["models/player/group03/female_04.mdl"] = "female"
  1648. zbl.SoundByModel["models/player/group03/female_05.mdl"] = "female"
  1649. zbl.SoundByModel["models/player/group03/female_06.mdl"] = "female"
  1650.  
  1651.  
  1652. zbl.SoundByModel["models/player/group03m/male_01.mdl"] = "male"
  1653. zbl.SoundByModel["models/player/group03m/male_02.mdl"] = "male"
  1654. zbl.SoundByModel["models/player/group03m/male_03.mdl"] = "male"
  1655. zbl.SoundByModel["models/player/group03m/male_04.mdl"] = "male"
  1656. zbl.SoundByModel["models/player/group03m/male_05.mdl"] = "male"
  1657. zbl.SoundByModel["models/player/group03m/male_06.mdl"] = "male"
  1658. zbl.SoundByModel["models/player/group03m/male_07.mdl"] = "male"
  1659. zbl.SoundByModel["models/player/group03m/male_08.mdl"] = "male"
  1660. zbl.SoundByModel["models/player/group03m/male_09.mdl"] = "male"
  1661.  
  1662. zbl.SoundByModel["models/player/group03m/female_01.mdl"] = "female"
  1663. zbl.SoundByModel["models/player/group03m/female_02.mdl"] = "female"
  1664. zbl.SoundByModel["models/player/group03m/female_03.mdl"] = "female"
  1665. zbl.SoundByModel["models/player/group03m/female_04.mdl"] = "female"
  1666. zbl.SoundByModel["models/player/group03m/female_05.mdl"] = "female"
  1667. zbl.SoundByModel["models/player/group03m/female_06.mdl"] = "female"
  1668.  
  1669. zbl.SoundByModel["models/player/group01/female_01.mdl"] = "female"
  1670. zbl.SoundByModel["models/player/group01/female_02.mdl"] = "female"
  1671. zbl.SoundByModel["models/player/group01/female_03.mdl"] = "female"
  1672. zbl.SoundByModel["models/player/group01/female_04.mdl"] = "female"
  1673. zbl.SoundByModel["models/player/group01/female_05.mdl"] = "female"
  1674. zbl.SoundByModel["models/player/group01/female_06.mdl"] = "female"
  1675.  
  1676. zbl.SoundByModel["models/player/hostage/hostage_01.mdl"] = "male"
  1677. zbl.SoundByModel["models/player/hostage/hostage_02.mdl"] = "male"
  1678. zbl.SoundByModel["models/player/hostage/hostage_03.mdl"] = "male"
  1679. zbl.SoundByModel["models/player/hostage/hostage_04.mdl"] = "male"
  1680.  
  1681. zbl.SoundByModel["models/zerochain/props_bloodlab/zbl_hazmat.mdl"] = "male"
  1682.  
  1683.  
  1684.  
  1685. // This defines a offsets for diffrent models so the gasmask allways fits perfect
  1686. zbl.ModelOffsets = {}
  1687. /*
  1688. zbl.ModelOffsets["Path/To/The/Model.mdl"] = {
  1689.     pos = Offset Position from ValveBiped.Bip01_Head1,
  1690.     ang = Offset Angle from ValveBiped.Bip01_Head1,
  1691.     scale = Size of the Respirator Model (can be removed if not needed)
  1692. }
  1693.  
  1694. Those console commands can help adding new ModelOffsets
  1695.     zbl_debug_SetPlayermodel model/path
  1696.     zbl_debug_GetPlayermodel
  1697.     zbl_debug_GasMask_EquiptID RespiratorID
  1698. */
  1699. zbl.ModelOffsets["Default"] = {pos = Vector(2.9, 0, 0.6),ang = Angle(-5, 0, 0)}
  1700. zbl.ModelOffsets["models/player/kleiner.mdl"] = {pos = Vector(3.1, 0, 1),ang = Angle(0, 0, 0)}
  1701. zbl.ModelOffsets["models/player/monk.mdl"] = {pos = Vector(3.6, 0, 0.85),ang = Angle(10, 0, 0)}
  1702. zbl.ModelOffsets["models/player/corpse1.mdl"] = {pos = Vector(3.6, 0, 0),ang = Angle(10, 0, 0)}
  1703. zbl.ModelOffsets["models/player/police.mdl"] = {pos = Vector(6, 0, 0),ang = Angle(10, 0, 0)}
  1704. zbl.ModelOffsets["models/player/breen.mdl"] = {pos = Vector(3.3, 0, 0),ang = Angle(10, 0, 0)}
  1705. zbl.ModelOffsets["models/player/alyx.mdl"] = {pos = Vector(2.6, 0, 0.6),ang = Angle(-5, 0, 0)}
  1706. zbl.ModelOffsets["models/player/p2_chell.mdl"] = {pos = Vector(2.8, 0, 0.8),ang = Angle(-5, 0, 0)}
  1707. zbl.ModelOffsets["models/player/barney.mdl"] = {pos = Vector(3.6, 0, 0.9),ang = Angle(-5, 0, 0)}
  1708. zbl.ModelOffsets["models/player/gman_high.mdl"] = {pos = Vector(3, 0, 1.9),ang = Angle(0, 0, 0)}
  1709. zbl.ModelOffsets["models/player/odessa.mdl"] = {pos = Vector(3.7, 0, 1),ang = Angle(0, 0, 0)}
  1710. zbl.ModelOffsets["models/player/mossman.mdl"] = {pos = Vector(3, 0.1, 0.7),ang = Angle(0, 0, 0)}
  1711. zbl.ModelOffsets["models/player/eli.mdl"] = {pos = Vector(3, 0.1, 0.7),ang = Angle(0, 0, 0)}
  1712. zbl.ModelOffsets["models/player/charple.mdl"] = {pos = Vector(1, 0, 0),ang = Angle(0, 0, 0)}
  1713. zbl.ModelOffsets["models/player/soldier_stripped.mdl"] = {pos = Vector(2, 0, 0),ang = Angle(0, 0, 0)}
  1714.  
  1715.  
  1716. zbl.ModelOffsets["models/player/group02/male_02.mdl"] = {pos = Vector(3.5, 0, 0.6),ang = Angle(5, 0, 0)}
  1717. zbl.ModelOffsets["models/player/group02/male_04.mdl"] = {pos = Vector(3.5, 0, 1),ang = Angle(5, 0, 0)}
  1718. zbl.ModelOffsets["models/player/group02/male_06.mdl"] = {pos = Vector(4, 0, 0.9),ang = Angle(5, 0, 0)}
  1719. zbl.ModelOffsets["models/player/group02/male_08.mdl"] = {pos = Vector(3, 0, 0.5),ang = Angle(5, 0, 0)}
  1720.  
  1721.  
  1722. zbl.ModelOffsets["models/player/group01/male_01.mdl"] = {pos = Vector(3.9, 0, 1),ang = Angle(0, 0, 0)}
  1723. zbl.ModelOffsets["models/player/group01/male_02.mdl"] = {pos = Vector(3.5, 0, 1),ang = Angle(0, 0, 0)}
  1724. zbl.ModelOffsets["models/player/group01/male_03.mdl"] = {pos = Vector(3.7, 0, 0.7),ang = Angle(10, 0, 0)}
  1725. zbl.ModelOffsets["models/player/group01/male_04.mdl"] = {pos = Vector(3.2, 0, 1),ang = Angle(5, 0, 0)}
  1726. zbl.ModelOffsets["models/player/group01/male_05.mdl"] = {pos = Vector(3, 0, 0.5),ang = Angle(10, 0, 0)}
  1727. zbl.ModelOffsets["models/player/group01/male_06.mdl"] = {pos = Vector(4, 0, 1),ang = Angle(0, 0, 0)}
  1728. zbl.ModelOffsets["models/player/group01/male_07.mdl"] = {pos = Vector(3, 0, 0.5),ang = Angle(5, 0, 0)}
  1729. zbl.ModelOffsets["models/player/group01/male_08.mdl"] = {pos = Vector(3, 0, 0.5),ang = Angle(5, 0, 0)}
  1730. zbl.ModelOffsets["models/player/group01/male_09.mdl"] = {pos = Vector(3.7, 0, 0.7),ang = Angle(10, 0, 0)}
  1731.  
  1732.  
  1733. zbl.ModelOffsets["models/player/group03/male_01.mdl"] = {pos = Vector(3.9, 0, 1),ang = Angle(0, 0, 0)}
  1734. zbl.ModelOffsets["models/player/group03/male_02.mdl"] = {pos = Vector(3.5, 0, 1),ang = Angle(0, 0, 0)}
  1735. zbl.ModelOffsets["models/player/group03/male_03.mdl"] = {pos = Vector(3.7, 0, 0.7),ang = Angle(10, 0, 0)}
  1736. zbl.ModelOffsets["models/player/group03/male_04.mdl"] = {pos = Vector(3.2, 0, 1),ang = Angle(5, 0, 0)}
  1737. zbl.ModelOffsets["models/player/group03/male_05.mdl"] = {pos = Vector(3, 0, 0.5),ang = Angle(10, 0, 0)}
  1738. zbl.ModelOffsets["models/player/group03/male_06.mdl"] = {pos = Vector(4, 0, 1),ang = Angle(0, 0, 0)}
  1739. zbl.ModelOffsets["models/player/group03/male_07.mdl"] = {pos = Vector(3, 0, 0.5),ang = Angle(5, 0, 0)}
  1740. zbl.ModelOffsets["models/player/group03/male_08.mdl"] = {pos = Vector(3, 0, 0.5),ang = Angle(5, 0, 0)}
  1741. zbl.ModelOffsets["models/player/group03/male_09.mdl"] = {pos = Vector(3.7, 0, 0.7),ang = Angle(10, 0, 0)}
  1742.  
  1743. zbl.ModelOffsets["models/player/group03/female_01.mdl"] = {pos = Vector(3, 0, 0.3),ang = Angle(0, 0, 0)}
  1744. zbl.ModelOffsets["models/player/group03/female_02.mdl"] = {pos = Vector(3.2, 0, 0.3),ang = Angle(0, 0, 0)}
  1745. zbl.ModelOffsets["models/player/group03/female_03.mdl"] = {pos = Vector(3.1, 0, 0.3),ang = Angle(0, 0, 0)}
  1746. zbl.ModelOffsets["models/player/group03/female_04.mdl"] = {pos = Vector(3.2, 0, 0.3),ang = Angle(0, 0, 0)}
  1747. zbl.ModelOffsets["models/player/group03/female_05.mdl"] = {pos = Vector(3.2, 0, 0.3),ang = Angle(0, 0, 0)}
  1748. zbl.ModelOffsets["models/player/group03/female_06.mdl"] = {pos = Vector(3.2, 0, 0.3),ang = Angle(0, 0, 0)}
  1749.  
  1750.  
  1751. zbl.ModelOffsets["models/player/group03m/male_01.mdl"] = {pos = Vector(3.9, 0, 1),ang = Angle(0, 0, 0)}
  1752. zbl.ModelOffsets["models/player/group03m/male_02.mdl"] = {pos = Vector(3.5, 0, 1),ang = Angle(0, 0, 0)}
  1753. zbl.ModelOffsets["models/player/group03m/male_03.mdl"] = {pos = Vector(3.7, 0, 0.7),ang = Angle(10, 0, 0)}
  1754. zbl.ModelOffsets["models/player/group03m/male_04.mdl"] = {pos = Vector(3.2, 0, 1),ang = Angle(5, 0, 0)}
  1755. zbl.ModelOffsets["models/player/group03m/male_05.mdl"] = {pos = Vector(3, 0, 0.5),ang = Angle(10, 0, 0)}
  1756. zbl.ModelOffsets["models/player/group03m/male_06.mdl"] = {pos = Vector(4, 0, 1),ang = Angle(0, 0, 0)}
  1757. zbl.ModelOffsets["models/player/group03m/male_07.mdl"] = {pos = Vector(3, 0, 0.5),ang = Angle(5, 0, 0)}
  1758. zbl.ModelOffsets["models/player/group03m/male_08.mdl"] = {pos = Vector(3, 0, 0.5),ang = Angle(5, 0, 0)}
  1759. zbl.ModelOffsets["models/player/group03m/male_09.mdl"] = {pos = Vector(3.7, 0, 0.7),ang = Angle(10, 0, 0)}
  1760.  
  1761. zbl.ModelOffsets["models/player/group03m/female_01.mdl"] = {pos = Vector(3, 0, 0.3),ang = Angle(0, 0, 0)}
  1762. zbl.ModelOffsets["models/player/group03m/female_02.mdl"] = {pos = Vector(3.2, 0, 0.3),ang = Angle(0, 0, 0)}
  1763. zbl.ModelOffsets["models/player/group03m/female_03.mdl"] = {pos = Vector(3.1, 0, 0.3),ang = Angle(0, 0, 0)}
  1764. zbl.ModelOffsets["models/player/group03m/female_04.mdl"] = {pos = Vector(3.2, 0, 0.3),ang = Angle(0, 0, 0)}
  1765. zbl.ModelOffsets["models/player/group03m/female_05.mdl"] = {pos = Vector(3.2, 0, 0.3),ang = Angle(0, 0, 0)}
  1766. zbl.ModelOffsets["models/player/group03m/female_06.mdl"] = {pos = Vector(3.2, 0, 0.3),ang = Angle(0, 0, 0)}
  1767.  
  1768.  
  1769. zbl.ModelOffsets["models/player/group01/female_01.mdl"] = {pos = Vector(3, 0, 0.3),ang = Angle(0, 0, 0)}
  1770. zbl.ModelOffsets["models/player/group01/female_02.mdl"] = {pos = Vector(3.2, 0, 0.3),ang = Angle(0, 0, 0)}
  1771. zbl.ModelOffsets["models/player/group01/female_03.mdl"] = {pos = Vector(3.1, 0, 0.3),ang = Angle(0, 0, 0)}
  1772. zbl.ModelOffsets["models/player/group01/female_04.mdl"] = {pos = Vector(3.2, 0, 0.3),ang = Angle(0, 0, 0)}
  1773. zbl.ModelOffsets["models/player/group01/female_05.mdl"] = {pos = Vector(3.2, 0, 0.3),ang = Angle(0, 0, 0)}
  1774. zbl.ModelOffsets["models/player/group01/female_06.mdl"] = {pos = Vector(3.2, 0, 0.3),ang = Angle(0, 0, 0)}
  1775.  
  1776.  
  1777. zbl.ModelOffsets["models/player/hostage/hostage_01.mdl"] = {pos = Vector(3, 0, 1),ang = Angle(0, 0, 0)}
  1778. zbl.ModelOffsets["models/player/hostage/hostage_02.mdl"] = {pos = Vector(3.9, 0, 1),ang = Angle(0, 0, 0)}
  1779. zbl.ModelOffsets["models/player/hostage/hostage_03.mdl"] = {pos = Vector(3, 0, 0.2),ang = Angle(10, 0, 0)}
  1780. zbl.ModelOffsets["models/player/hostage/hostage_04.mdl"] = {pos = Vector(3, 0, 1),ang = Angle(0, 0, 0)}
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement