HR_Shaft

Death-Kill Messages v3 for Phasor v2

Oct 11th, 2013
192
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 7.42 KB | None | 0 0
  1. --[[ ### Death-Kill Messages ###]]--
  2. --[[ ###   v3  by H® Shaft   ###]]--
  3. --[[ ###    for Phasor v2    ###]]--
  4. --[[ ###  thanks to Aelite   ###]]--
  5.  
  6. team_change = {}
  7. last_damage = {}
  8.  
  9. function GetRequiredVersion()
  10.     return 200
  11. end
  12.  
  13. function OnScriptLoad(process, game, persistent)
  14.     for i=0,15 do
  15.         if getplayer(i) then
  16.             team_change[i] = false
  17.         end
  18.     end
  19. end
  20.  
  21. function OnNewGame(map)
  22.     for i=0,15 do
  23.         if getplayer(i) then
  24.             team_change[i] = false
  25.         end
  26.     end
  27.     last_damage = {}
  28.     team_change = {}   
  29. end
  30.  
  31. function OnPlayerJoin(player)
  32.     team_change[player] = false
  33. end
  34.  
  35.  -- Thanks to Elite Prime for this
  36. function OnDamageApplication(receiving, causing, tagid, hit, backtap)
  37.     if receiving then
  38.         local r_object = getobject(receiving)
  39.         if r_object then
  40.             local receiver = objectaddrtoplayer(r_object)
  41.             if receiver then
  42.                 if not backtap then
  43.                     local r_hash = gethash(receiver)
  44.                     local tagname,tagtype = gettaginfo(tagid)
  45.                     last_damage[r_hash] = tagname
  46.                 else
  47.                     last_damage[r_hash] = "backtap"
  48.                 end
  49.             end
  50.         end
  51.     end
  52. end
  53.  
  54. function OnPlayerSpawnEnd(player, m_objectId)
  55.     local hash = gethash(player)
  56.     last_damage[hash] = nil
  57. end
  58.    
  59. function OnPlayerKill(killer, victim, mode)
  60.     local response = false
  61.     if mode == 0 then
  62.         response = false
  63.         local killedmsg = generatekilltype(killslang)
  64.         say(getname(victim) .. " was terminated by the server script or an admin. ")   
  65.     elseif mode == 1 then -- player was killed by falling or team-change
  66.         local vhash = gethash(victim)
  67.         if not team_change[victim] then
  68.             response = false
  69.             if last_damage[vhash] == "globals\\distance" or last_damage[vhash] == "globals\\falling" then
  70.                 say(getname(victim) .. " fell and died. ")
  71.             end
  72.         else
  73.             response = false
  74.             say(getname(victim) .. " changed teams.")
  75.             team_change[victim] = false    
  76.         end        
  77.     elseif mode == 2 then -- player was killed by the guardians
  78.         response = false
  79.         say(getname(victim) .. " was killed by the guardians. ")
  80.     elseif mode == 3 then -- player was killed by vehicle
  81.         local v_name = getname(victim)
  82.         local vhash = gethash(victim)
  83.         response = false
  84.         say(getname(victim) .. " was killed by a vehicle. ")   
  85.     elseif mode == 4 then -- player was killed by another player
  86.         local vhash = gethash(victim)
  87.         local killedmsg = generatekilltype(killslang)
  88.         response = false
  89.         if killer == nil then k_name = "UNKNOWN" else k_name = getname(killer) end
  90.         if gethash(killer) == nil then khash = "XOXO10101010101OXOX" else khash = gethash(killer) end
  91.         if last_damage[vhash] then 
  92.             if string.find(last_damage[vhash], "melee") then           
  93.                 say(k_name .. " smacked " .. getname(victim) .. " upside the head! ")                  
  94.             elseif last_damage[vhash] == "globals\\distance" or last_damage[vhash] == "globals\\falling" then
  95.                 say(getname(victim) .. " fell and died. ")
  96.             elseif last_damage[vhash] == "globals\\vehicle_collision" then
  97.                 say(k_name .. " ran over " .. getname(victim))                 
  98.             elseif string.find(last_damage[vhash], "banshee") then
  99.                 say(k_name .. " " .. killedmsg .. " " .. getname(victim) .. " with a banshee. ")
  100.             elseif last_damage[vhash] == "vehicles\\c gun turret\\mp bolt" then
  101.                 say(k_name .. " " .. killedmsg .. " " .. getname(victim) .. " with the covenant turret. ")
  102.             elseif last_damage[vhash] == "vehicles\\ghost\\ghost bolt" then
  103.                 say(k_name .. " " .. killedmsg .. " " .. getname(victim) .. " with the ghost plasma guns. ")
  104.             elseif last_damage[vhash] == "vehicles\\scorpion\\bullet" then
  105.                 say(k_name .. " " .. killedmsg .. " " .. getname(victim) .. " with the scorpion guns. ")
  106.             elseif last_damage[vhash] == "vehicles\\scorpion\\shell explosion" then
  107.                 say(k_name .. " " .. killedmsg .. " " .. getname(victim) .. " with the scorpion cannon. ")
  108.             elseif last_damage[vhash] == "vehicles\\warthog\\bullet" then
  109.                 say(k_name .. " " .. killedmsg .. " " .. getname(victim) .. " with a warthog chain-gun. ")
  110.             elseif last_damage[vhash] == "weapons\\assault rifle\\bullet" then
  111.                 say(k_name .. " " .. killedmsg .. " " .. getname(victim) .. " with an assault rifle. ")        
  112.             elseif last_damage[vhash] == "weapons\\flamethrower\\burning" or last_damage[vhash] == "weapons\\flamethrower\\explosion" or last_damage[vhash] == "weapons\\flamethrower\\impact damage" then
  113.                 say(k_name .. " " .. killedmsg .. " " .. getname(victim) .. " with a flame-thrower. ")
  114.             elseif last_damage[vhash] == "weapons\\frag grenade\\explosion" then
  115.                 say(k_name .. " " .. killedmsg .. " " .. getname(victim) .. " with a frag grenade. ")                  
  116.             elseif last_damage[vhash] == "weapons\\needler\\detonation damage" or last_damage[vhash] == "weapons\\needler\\explosion" or last_damage[vhash] == "weapons\\needler\\impact damage" then
  117.                 say(k_name .. " " .. killedmsg .. " " .. getname(victim) .. " with a needler. ")                   
  118.             elseif last_damage[vhash] == "weapons\\pistol\\bullet" then
  119.                 say(k_name .. " " .. killedmsg .. " " .. getname(victim) .. " with a pistol. ")
  120.             elseif last_damage[vhash] == "weapons\\plasma grenade\\attached" or last_damage[vhash] == "weapons\\plasma grenade\\explosion" then
  121.                 say(k_name .. " " .. killedmsg .. " " .. getname(victim) .. " with a plasma grenade. ")
  122.             elseif last_damage[vhash] == "weapons\\plasma pistol\\bolt" or last_damage[vhash] == "weapons\\plasma rifle\\charged bolt" then
  123.                 say(k_name .. " " .. killedmsg .. " " .. getname(victim) .. " with a plasma pistol. ")
  124.             elseif last_damage[vhash] == "weapons\\plasma rifle\\bolt" then
  125.                 say(k_name .. " " .. killedmsg .. " " .. getname(victim) .. " with a plasma rifle. ")  
  126.             elseif last_damage[vhash] == "weapons\\plasma_cannon\\effects\\plasma_cannon_explosion" or last_damage[vhash] == "weapons\\plasma_cannon\\impact damage" then
  127.                 say(k_name .. " " .. killedmsg .. " " .. getname(victim) .. " with a fuel-rod gun. ")  
  128.             elseif last_damage[vhash] == "weapons\\rocket launcher\\explosion" then
  129.                 if isinvehicle(killer) then
  130.                     say(k_name .. " " .. killedmsg .. " " .. getname(victim) .. " with a warthog rocket. ")
  131.                 else
  132.                     say(k_name .. " " .. killedmsg .. " " .. getname(victim) .. " with a rocket launcher. ")
  133.                 end
  134.             elseif last_damage[vhash] == "weapons\\shotgun\\pellet" then
  135.                 say(k_name .. " " .. killedmsg .. " " .. getname(victim) .. " with a shotgun. ")   
  136.             elseif last_damage[vhash] == "weapons\\sniper rifle\\sniper bullet" then
  137.                 say(k_name .. " " .. killedmsg .. " " .. getname(victim) .. " with a sniper rifle. ")
  138.             end
  139.         end
  140.     elseif mode == 5 then -- player was killed by teammate
  141.         response = true
  142.         if killer then
  143.             privatesay(killer, " -- DON'T BETRAY! --")
  144.         end
  145.     elseif mode == 6 then --suicides   
  146.         response = true
  147.     end
  148.     return response
  149. end
  150.  
  151.  
  152. function OnTeamChange(player, old_team, new_team, relevant)
  153.     team_change[player] = true
  154.     return nil
  155. end
  156.  
  157. function generatekilltype(killslang)
  158.     local killcount = #killtype
  159.     local kill_verb = getrandomnumber(1, killcount+1)
  160.     local kill_type = string.format("%s",  killtype[kill_verb])
  161.     if kill_type then
  162.         return kill_type
  163.     else
  164.         return "killed"
  165.     end
  166. end
  167.  
  168. killtype = {"destroyed", "fubbared", "disemboweled", "violated", "eviscerated", "assassinated", "slaughtered", "exterminated", "murdered", "dispatched", "eradicated", "executed", "snuffed", "eliminated", "liquidated"}
  169.  
  170. -- Created by H® Shaft thank you to Oxide, AelitePrime, Nugget & Wizard.
  171. -- Visit http://halorace.org/forum/index.php?topic=514.0 or
  172. -- Visit http://pastebin.com/u/HR_Shaft for more phasor scripts
Advertisement
Add Comment
Please, Sign In to add comment