Advertisement
Guest User

warships

a guest
Nov 14th, 2018
796
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.84 KB | None | 0 0
  1. local service = {}
  2. local service_mt = {}
  3. service_mt.__index = function(t, k)
  4. return game:GetService(k)
  5. end
  6.  
  7. setmetatable(service, service_mt)
  8.  
  9. getgenv().service = service
  10.  
  11. getgenv().print = function(...)
  12. local arg = {...} -- what?
  13. local builder = ""
  14. for k, v in pairs(arg) do
  15. builder = builder .. tostring(v) .. "\t"
  16. end
  17. local time = os.date("*t", tick())
  18. printoutput("[" .. string.format("%02d:%02d:%02d", time.hour, time.min, time.sec) .. "] " .. builder)
  19. end
  20.  
  21. local function getfcontext(f)
  22. local env = debug.getfenv(f) or {} -- ??
  23. for k, v in next, debug.getupvalues(f) do
  24. env[k] = v
  25. end
  26. return env
  27. end
  28.  
  29. getgenv().getfcontext = getfcontext
  30.  
  31. local function setfcontext(fn, cf)
  32. local env = debug.getfenv(cf) or {} -- ?????
  33. for k, v in next, debug.getupvalues(cf) do
  34. env[k] = v
  35. end
  36. setfenv(fn, env)
  37. end
  38.  
  39. getgenv().setfcontext = setfcontext
  40.  
  41. local game_mt = getrawmetatable(game)
  42. make_writeable(game_mt)
  43. local old_index = game_mt.__index
  44.  
  45. _G.network = nil
  46. getgenv().bait = print
  47. getgenv().bait_stack_level = 1
  48.  
  49. local game_mt = getrawmetatable(game)
  50. make_writeable(game_mt)
  51. local old_namecall = game_mt.__namecall
  52.  
  53. local xhook = {}
  54. getgenv().xhook = xhook
  55. function xhook.yInvoke(name, args, rets)
  56. print("Invoke! from " .. name)
  57. print("ARGS--")
  58. table.foreach(args, print)
  59. print("RETS--")
  60. table.foreach(rets, print)
  61. end
  62. function xhook.yFire(name, args)
  63. print("Fire! from " .. name)
  64. print("ARGS--")
  65. table.foreach(args, print)
  66.  
  67. end
  68.  
  69. xhook.ship = {
  70. speed = 60;
  71. turn = 10;
  72. damage_mult = 40;
  73. }
  74.  
  75. game_mt.__namecall = function(t, ...)
  76. local tb = {...}
  77. k = tb[#tb]
  78. table.remove(tb)
  79. --if not stick[k] then stick[k] = true printoutput(xformat(...)) end
  80. if k == "InvokeServer" then
  81. if t:IsDescendantOf(game.ReplicatedStorage.ServerEvents) then
  82. local invoke = {old_namecall(t, ...)}
  83. local shiprv = invoke[1]
  84. if t.Name == "SpawnShip" then
  85. shiprv[2] = xhook.ship.speed;
  86. shiprv[1] = xhook.ship.turn;
  87. end
  88. xhook.yInvoke(t.Name, tb, invoke)
  89. return unpack(invoke)
  90. end
  91. elseif k == "FireServer" then
  92. if t:IsDescendantOf(game.ReplicatedStorage.ServerEvents) then
  93. if t.Name == 'RegisterDamage' then
  94. local GAY = {...}
  95. GAY[2] = GAY[2] * xhook.ship.damage_mult;
  96. return old_namecall(t, unpack(GAY))
  97. end
  98. xhook.yFire(t.Name, tb)
  99. end
  100. end
  101. return old_namecall(t, ...)
  102. end
  103.  
  104. --[[
  105. local ev = game.ReplicatedStorage.Event:FireServer("Combat", sb2util.rpckey, {
  106. "Attack",
  107. nil,
  108. sb2util.last_attack[3][3],
  109. sb2util.nextkey()
  110. })
  111. ]]
  112.  
  113. print("hookd")
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement