Daz_ShadowFox

Kelse's modified NutScript animation table.

Feb 23rd, 2014
377
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 11.83 KB | None | 0 0
  1. --[[
  2.     Purpose: A library to specify which animations should be used by which models and
  3.     contains tables that provide the appropriate act or sequence that is to be used.
  4. --]]
  5.  
  6. nut.anim = nut.anim or {}
  7. nut.anim.classes = nut.anim.classes or {}
  8.  
  9. --[[
  10.     Purpose: Adds a new model to a class. If the class does not exist, a table will be created
  11.     automatically.
  12. --]]
  13. function nut.anim.SetModelClass(class, model)
  14.     model = string.lower(model)
  15.  
  16.     nut.anim.classes[model] = class
  17. end
  18.  
  19. --[[
  20.     Purpose: Translates the model and returns the animation class.
  21. --]]
  22. function nut.anim.GetClass(model)
  23.     return nut.anim.classes[model] or (string.find(model, "female") and "citizen_female" or "citizen_male")
  24. end
  25.  
  26. --[[
  27.     Purpose: Quick utility function that automatically includes the groups of citizens
  28.     based off the gender provided.
  29. --]]
  30. local function defineCitizenClass(prefix)
  31.     for k, v in pairs(file.Find("models/humans/group01/"..prefix.."_*.mdl", "GAME")) do
  32.         nut.anim.SetModelClass("citizen_"..prefix, "models/humans/group01/"..v)
  33.     end
  34.  
  35.     for k, v in pairs(file.Find("models/humans/group02/"..prefix.."_*.mdl", "GAME")) do
  36.         nut.anim.SetModelClass("citizen_"..prefix, "models/humans/group02/"..v)
  37.     end
  38.  
  39.     for k, v in pairs(file.Find("models/humans/group03/"..prefix.."_*.mdl", "GAME")) do
  40.         nut.anim.SetModelClass("citizen_"..prefix, "models/humans/group03/"..v)
  41.     end
  42.  
  43.     for k, v in pairs(file.Find("models/humans/group03m/"..prefix.."_*.mdl", "GAME")) do
  44.         nut.anim.SetModelClass("citizen_"..prefix, "models/humans/group03m/"..v)
  45.     end
  46. end
  47.  
  48. defineCitizenClass("male")
  49. defineCitizenClass("female")
  50.  
  51. nut.anim.SetModelClass("citizen_female", "models/mossman.mdl")
  52. nut.anim.SetModelClass("citizen_female", "models/alyx.mdl")
  53.  
  54. nut.anim.SetModelClass("metrocop", "models/police.mdl")
  55.  
  56. nut.anim.SetModelClass("overwatch", "models/combine_super_soldier.mdl")
  57. nut.anim.SetModelClass("overwatch", "models/combine_soldier_prisonguard.mdl")
  58. nut.anim.SetModelClass("overwatch", "models/combine_soldier.mdl")
  59.  
  60. nut.anim.SetModelClass("vort", "models/vortigaunt.mdl")
  61. nut.anim.SetModelClass("vort", "models/vortigaunt_slave.mdl")
  62.  
  63. nut.anim.SetModelClass("metrocop", "models/dpfilms/metropolice/playermodels/pm_skull_police.mdl")
  64.  
  65. -- Male citizen animation tree.
  66. nut.anim.citizen_male = {
  67.     normal = {
  68.         idle = {ACT_IDLE, ACT_IDLE_ANGRY_SMG1},
  69.         idle_crouch = {ACT_COVER_LOW, ACT_COVER_LOW},
  70.         walk = {ACT_WALK, ACT_WALK_AIM_RIFLE_STIMULATED},
  71.         walk_crouch = {ACT_WALK_CROUCH, ACT_WALK_CROUCH_AIM_RIFLE},
  72.         run = {ACT_RUN, ACT_RUN_AIM_RIFLE_STIMULATED}
  73.     },
  74.     pistol = {
  75.         idle = {ACT_IDLE_PISTOL, ACT_IDLE_ANGRY_PISTOL},
  76.         idle_crouch = {ACT_COVER_PISTOL_LOW, ACT_RANGE_AIM_PISTOL_LOW},
  77.         walk = {ACT_WALK, ACT_WALK_AIM_PISTOL},
  78.         walk_crouch = {ACT_WALK_CROUCH, ACT_WALK_CROUCH_AIM_RIFLE},
  79.         run = {ACT_RUN, ACT_RUN_AIM_PISTOL},
  80.         attack = ACT_GESTURE_RANGE_ATTACK_PISTOL,
  81.         reload = ACT_RELOAD_PISTOL
  82.     },
  83.     smg = {
  84.         idle = {ACT_IDLE_SMG1_RELAXED, ACT_IDLE_ANGRY_SMG1},
  85.         idle_crouch = {ACT_COVER_SMG1_LOW, ACT_RANGE_AIM_SMG1_LOW},
  86.         walk = {ACT_WALK_RIFLE_RELAXED, ACT_WALK_AIM_RIFLE_STIMULATED},
  87.         walk_crouch = {ACT_WALK_CROUCH_RIFLE, ACT_WALK_CROUCH_AIM_RIFLE},
  88.         run = {ACT_RUN_RIFLE_RELAXED, ACT_RUN_AIM_RIFLE_STIMULATED},
  89.         attack = ACT_GESTURE_RANGE_ATTACK_SMG1,
  90.         reload = ACT_GESTURE_RELOAD_SMG1
  91.     },
  92.     shotgun = {
  93.         idle = {ACT_IDLE_SHOTGUN_RELAXED, ACT_IDLE_ANGRY_SMG1},
  94.         idle_crouch = {ACT_COVER_SMG1_LOW, ACT_RANGE_AIM_SMG1_LOW},
  95.         walk = {ACT_WALK_RIFLE_RELAXED, ACT_WALK_AIM_RIFLE_STIMULATED},
  96.         walk_crouch = {ACT_WALK_CROUCH_RIFLE, ACT_WALK_CROUCH_RIFLE},
  97.         run = {ACT_RUN_RIFLE_RELAXED, ACT_RUN_AIM_RIFLE_STIMULATED},
  98.         attack = ACT_GESTURE_RANGE_ATTACK_SHOTGUN
  99.     },
  100.     grenade = {
  101.         idle = {ACT_IDLE, ACT_IDLE_MANNEDGUN},
  102.         idle_crouch = {ACT_COVER_LOW, ACT_COVER_PISTOL_LOW},
  103.         walk = {ACT_WALK, ACT_WALK_AIM_PISTOL},
  104.         walk_crouch = {ACT_WALK_CROUCH, ACT_WALK_CROUCH_AIM_RIFLE},
  105.         run = {ACT_RUN, ACT_RUN_AIM_PISTOL},
  106.         attack = ACT_RANGE_ATTACK_THROW
  107.     },
  108.     melee = {
  109.         idle = {ACT_IDLE_SUITCASE, ACT_IDLE_ANGRY_MELEE},
  110.         idle_crouch = {ACT_COVER_LOW, ACT_COVER_LOW},
  111.         walk = {ACT_WALK, ACT_WALK_AIM_RIFLE},
  112.         walk_crouch = {ACT_WALK_CROUCH, ACT_WALK_CROUCH},
  113.         run = {ACT_RUN, ACT_RUN},
  114.         attack = ACT_MELEE_ATTACK_SWING
  115.     },
  116.     glide = ACT_GLIDE
  117. }
  118.  
  119. -- Female citizen animation tree.
  120. nut.anim.citizen_female = {
  121.     normal = {
  122.         idle = {ACT_IDLE, ACT_IDLE_MANNEDGUN},
  123.         idle_crouch = {ACT_COVER_LOW, ACT_COVER_LOW},
  124.         walk = {ACT_WALK, ACT_RANGE_AIM_SMG1_LOW},
  125.         walk_crouch = {ACT_WALK_CROUCH, ACT_WALK_CROUCH_AIM_RIFLE},
  126.         run = {ACT_RUN, ACT_RUN_AIM_RIFLE_STIMULATED}
  127.     },
  128.     pistol = {
  129.         idle = {ACT_IDLE_PISTOL, ACT_IDLE_ANGRY_PISTOL},
  130.         idle_crouch = {ACT_COVER_LOW, ACT_RANGE_AIM_SMG1_LOW},
  131.         walk = {ACT_WALK, ACT_WALK_AIM_PISTOL},
  132.         walk_crouch = {ACT_WALK_CROUCH, ACT_WALK_CROUCH_AIM_RIFLE},
  133.         run = {ACT_RUN, ACT_RUN_AIM_PISTOL},
  134.         attack = ACT_GESTURE_RANGE_ATTACK_PISTOL,
  135.         reload = ACT_RELOAD_PISTOL
  136.     },
  137.     smg = {
  138.         idle = {ACT_IDLE_SMG1_RELAXED, ACT_IDLE_ANGRY_SMG1},
  139.         idle_crouch = {ACT_COVER_LOW, ACT_RANGE_AIM_SMG1_LOW},
  140.         walk = {ACT_WALK_RIFLE_RELAXED, ACT_WALK_AIM_RIFLE_STIMULATED},
  141.         walk_crouch = {ACT_WALK_CROUCH_RIFLE, ACT_WALK_CROUCH_AIM_RIFLE},
  142.         run = {ACT_RUN_RIFLE_RELAXED, ACT_RUN_AIM_RIFLE_STIMULATED},
  143.         attack = ACT_GESTURE_RANGE_ATTACK_SMG1,
  144.         reload = ACT_GESTURE_RELOAD_SMG1
  145.     },
  146.     shotgun = {
  147.         idle = {ACT_IDLE_SHOTGUN_RELAXED, ACT_IDLE_ANGRY_SMG1},
  148.         idle_crouch = {ACT_COVER_LOW, ACT_RANGE_AIM_SMG1_LOW},
  149.         walk = {ACT_WALK_RIFLE_RELAXED, ACT_WALK_AIM_RIFLE_STIMULATED},
  150.         walk_crouch = {ACT_WALK_CROUCH_RIFLE, ACT_WALK_CROUCH_AIM_RIFLE},
  151.         run = {ACT_RUN_RIFLE_RELAXED, ACT_RUN_AIM_RIFLE_STIMULATED},
  152.         attack = ACT_GESTURE_RANGE_ATTACK_SHOTGUN
  153.     },
  154.     grenade = {
  155.         idle = {ACT_IDLE, ACT_IDLE_MANNEDGUN},
  156.         idle_crouch = {ACT_COVER_LOW, ACT_RANGE_AIM_SMG1_LOW},
  157.         walk = {ACT_WALK, ACT_WALK_AIM_PISTOL},
  158.         walk_crouch = {ACT_WALK_CROUCH, ACT_WALK_CROUCH_AIM_RIFLE},
  159.         run = {ACT_RUN, ACT_RUN_AIM_PISTOL},
  160.         attack = ACT_RANGE_ATTACK_THROW
  161.     },
  162.     melee = {
  163.         idle = {ACT_IDLE_SUITCASE, ACT_IDLE_ANGRY_MELEE},
  164.         idle_crouch = {ACT_COVER_LOW, ACT_COVER_LOW},
  165.         walk = {ACT_WALK, ACT_WALK_AIM_RIFLE},
  166.         walk_crouch = {ACT_WALK_CROUCH, ACT_WALK_CROUCH},
  167.         run = {ACT_RUN, ACT_RUN},
  168.         attack = ACT_MELEE_ATTACK_SWING
  169.     },
  170.     glide = ACT_GLIDE
  171. }
  172.  
  173. -- Metropolice animation tree.
  174. nut.anim.metrocop = {
  175.     normal = {
  176.         idle = {ACT_IDLE, ACT_IDLE_ANGRY_SMG1},
  177.         idle_crouch = {ACT_COVER_PISTOL_LOW, ACT_COVER_SMG1_LOW},
  178.         walk = {ACT_WALK, ACT_WALK_AIM_RIFLE},
  179.         walk_crouch = {ACT_WALK_CROUCH, ACT_WALK_CROUCH},
  180.         run = {ACT_RUN, ACT_RUN}
  181.     },
  182.     pistol = {
  183.         idle = {ACT_IDLE_PISTOL, ACT_IDLE_ANGRY_PISTOL},
  184.         idle_crouch = {ACT_COVER_PISTOL_LOW, ACT_COVER_PISTOL_LOW},
  185.         walk = {ACT_WALK_PISTOL, ACT_WALK_AIM_PISTOL},
  186.         walk_crouch = {ACT_WALK_CROUCH, ACT_WALK_CROUCH},
  187.         run = {ACT_RUN_PISTOL, ACT_RUN_AIM_PISTOL},
  188.         attack = ACT_RANGE_ATTACK_PISTOL,
  189.         reload = ACT_RELOAD_PISTOL
  190.     },
  191.     smg = {
  192.         idle = {ACT_IDLE_SMG1, ACT_IDLE_ANGRY_SMG1},
  193.         idle_crouch = {ACT_COVER_SMG1_LOW, ACT_COVER_SMG1_LOW},
  194.         walk = {ACT_WALK_RIFLE, ACT_WALK_AIM_RIFLE},
  195.         walk_crouch = {ACT_WALK_CROUCH, ACT_WALK_CROUCH},
  196.         run = {ACT_RUN_RIFLE, ACT_RUN_AIM_RIFLE}
  197.     },
  198.     shotgun = {
  199.         idle = {ACT_IDLE_SMG1, ACT_IDLE_ANGRY_SMG1},
  200.         idle_crouch = {ACT_COVER_SMG1_LOW, ACT_COVER_SMG1_LOW},
  201.         walk = {ACT_WALK_RIFLE, ACT_WALK_AIM_RIFLE},
  202.         walk_crouch = {ACT_WALK_CROUCH, ACT_WALK_CROUCH},
  203.         run = {ACT_RUN_RIFLE, ACT_RUN_AIM_RIFLE_STIMULATED}
  204.     },
  205.     grenade = {
  206.         idle = {ACT_IDLE, ACT_IDLE_ANGRY_MELEE},
  207.         idle_crouch = {ACT_COVER_PISTOL_LOW, ACT_COVER_PISTOL_LOW},
  208.         walk = {ACT_WALK, ACT_WALK_ANGRY},
  209.         walk_crouch = {ACT_WALK_CROUCH, ACT_WALK_CROUCH},
  210.         run = {ACT_RUN, ACT_RUN},
  211.         attack = ACT_COMBINE_THROW_GRENADE
  212.     },
  213.     melee = {
  214.         idle = {ACT_IDLE, ACT_IDLE_ANGRY_MELEE},
  215.         idle_crouch = {ACT_COVER_PISTOL_LOW, ACT_COVER_PISTOL_LOW},
  216.         walk = {ACT_WALK, ACT_WALK_ANGRY},
  217.         walk_crouch = {ACT_WALK_CROUCH, ACT_WALK_CROUCH},
  218.         run = {ACT_RUN, ACT_RUN},
  219.         attack = ACT_MELEE_ATTACK_SWING_GESTURE
  220.     },
  221.     glide = ACT_GLIDE
  222. }
  223.  
  224. -- Overwatch soldier animation tree.
  225. nut.anim.overwatch = {
  226.     normal = {
  227.         idle = {"idle_unarmed", "man_gun"},
  228.         idle_crouch = {"crouchidle", "crouchidle"},
  229.         walk = {"walkunarmed_all", ACT_WALK_RIFLE},
  230.         walk_crouch = {"crouch_walkall", "crouch_walkall"},
  231.         run = {"runall", ACT_RUN_AIM_RIFLE}
  232.     },
  233.     pistol = {
  234.         idle = {"idle_unarmed", ACT_IDLE_ANGRY_SMG1},
  235.         idle_crouch = {"crouchidle", "crouchidle"},
  236.         walk = {"walkunarmed_all", ACT_WALK_RIFLE},
  237.         walk_crouch = {"crouch_walkall", "crouch_walkall"},
  238.         run = {"runall", ACT_RUN_AIM_RIFLE}
  239.     },
  240.     smg = {
  241.         idle = {ACT_IDLE_SMG1, ACT_IDLE_ANGRY_SMG1},
  242.         idle_crouch = {"crouchidle", "crouchidle"},
  243.         walk = {ACT_WALK_RIFLE, ACT_WALK_AIM_RIFLE},
  244.         walk_crouch = {"crouch_walkall", "crouch_walkall"},
  245.         run = {ACT_RUN_RIFLE, ACT_RUN_AIM_RIFLE}
  246.     },
  247.     shotgun = {
  248.         idle = {ACT_IDLE_SMG1, ACT_IDLE_ANGRY_SHOTGUN},
  249.         idle_crouch = {"crouchidle", "crouchidle"},
  250.         walk = {ACT_WALK_RIFLE, ACT_WALK_AIM_SHOTGUN},
  251.         walk_crouch = {"crouch_walkall", "crouch_walkall"},
  252.         run = {ACT_RUN_RIFLE, ACT_RUN_AIM_SHOTGUN}
  253.     },
  254.     grenade = {
  255.         idle = {"idle_unarmed", "man_gun"},
  256.         idle_crouch = {"crouchidle", "crouchidle"},
  257.         walk = {"walkunarmed_all", ACT_WALK_RIFLE},
  258.         walk_crouch = {"crouch_walkall", "crouch_walkall"},
  259.         run = {"runall", ACT_RUN_AIM_RIFLE}
  260.     },
  261.     melee = {
  262.         idle = {"idle_unarmed", "man_gun"},
  263.         idle_crouch = {"crouchidle", "crouchidle"},
  264.         walk = {"walkunarmed_all", ACT_WALK_RIFLE},
  265.         walk_crouch = {"crouch_walkall", "crouch_walkall"},
  266.         run = {"runall", ACT_RUN_AIM_RIFLE},
  267.         attack = ACT_MELEE_ATTACK_SWING_GESTURE
  268.     },
  269.     glide = ACT_GLIDE
  270. }
  271.  
  272. -- Half-assed vortigaunt soldier animation tree.
  273. nut.anim.vort = {
  274.     normal = {
  275.         idle = {ACT_IDLE, "actionidle"},
  276.         idle_crouch = {"crouchidle", "crouchidle"},
  277.         walk = {ACT_WALK, "walk_all_holdgun"},
  278.         walk_crouch = {ACT_WALK, "walk_all_holdgun"},
  279.         run = {ACT_RUN, ACT_RUN}
  280.     },
  281.     pistol = {
  282.         idle = {ACT_IDLE, "tcidle"},
  283.         idle_crouch = {"crouchidle", "crouchidle"},
  284.         walk = {ACT_WALK, "walk_all_holdgun"},
  285.         walk_crouch = {ACT_WALK, "walk_all_holdgun"},
  286.         run = {ACT_RUN, "run_all_tc"}
  287.     },
  288.     smg = {
  289.         idle = {ACT_IDLE, "tcidle"},
  290.         idle_crouch = {"crouchidle", "crouchidle"},
  291.         walk = {ACT_WALK, "walk_all_holdgun"},
  292.         walk_crouch = {ACT_WALK, "walk_all_holdgun"},
  293.         run = {ACT_RUN, "run_all_tc"}
  294.     },
  295.     shotgun = {
  296.         idle = {ACT_IDLE, "tcidle"},
  297.         idle_crouch = {"crouchidle", "crouchidle"},
  298.         walk = {ACT_WALK, "walk_all_holdgun"},
  299.         walk_crouch = {ACT_WALK, "walk_all_holdgun"},
  300.         run = {ACT_RUN, "run_all_tc"}
  301.     },
  302.     grenade = {
  303.         idle = {ACT_IDLE, "tcidle"},
  304.         idle_crouch = {"crouchidle", "crouchidle"},
  305.         walk = {ACT_WALK, "walk_all_holdgun"},
  306.         walk_crouch = {ACT_WALK, "walk_all_holdgun"},
  307.         run = {ACT_RUN, "run_all_tc"}
  308.     },
  309.     melee = {
  310.         idle = {ACT_IDLE, "tcidle"},
  311.         idle_crouch = {"crouchidle", "crouchidle"},
  312.         walk = {ACT_WALK, "walk_all_holdgun"},
  313.         walk_crouch = {ACT_WALK, "walk_all_holdgun"},
  314.         run = {ACT_RUN, "run_all_tc"}
  315.     },
  316.     glide = ACT_GLIDE
  317. }
  318.  
  319. local playerMeta = FindMetaTable("Player")
  320.  
  321. if (SERVER) then
  322.     function playerMeta:SetOverrideSeq(sequence, time, startCallback, finishCallback)
  323.         local realSeq, duration = self:LookupSequence(sequence)
  324.         time = time or duration
  325.  
  326.         if (!realSeq or realSeq == -1) then
  327.             return
  328.         end
  329.        
  330.         self:SetNetVar("seq", sequence)
  331.  
  332.         if (startCallback) then
  333.             startCallback()
  334.         end
  335.  
  336.         if (time > 0) then
  337.             timer.Create("nut_Seq"..self:UniqueID(), time, 1, function()
  338.                 if (IsValid(self)) then
  339.                     self:ResetOverrideSeq()
  340.  
  341.                     if (finishCallback) then
  342.                         finishCallback()
  343.                     end
  344.                 end
  345.             end)
  346.         end
  347.  
  348.         return time, realSeq
  349.     end
  350.  
  351.     function playerMeta:ResetOverrideSeq()
  352.         self:SetNetVar("seq", false)
  353.     end
  354. end
  355.  
  356. function playerMeta:GetOverrideSeq()
  357.     return self:GetNetVar("seq", false)
  358. end
Advertisement
Add Comment
Please, Sign In to add comment