Advertisement
HR_Shaft

Driver Is Temporary Gunner - for SAPP

Jun 27th, 2015
201
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 2.38 KB | None | 0 0
  1. --[[ Driver Is Temporary Gunner by H® Shaft ]]--
  2.  
  3. -- Driver Is Temporary Gunner (primarily for warthogs)
  4.  
  5.     -- Gun Seat Entry
  6.     -- if entering gun seat and there is no driver
  7.     -- places player in gun seat, then moves to driver seat (driver is also gunner)
  8.     -- gunner and passenger can still enter, when gunner enters, driver ceases to be gunner
  9.    
  10.     -- Driver Seat Entry
  11.     -- if entering driver seat, and there is no gunner
  12.     -- places player in gun seat, then move to driver seat (driver is also gunner)
  13.     -- gunner and passenger can still enter, when gunner enters, driver ceases to be gunner
  14.        
  15.     -- Notes:
  16.     -- If the gunner dies, driver must exit and re-enter the warthog to resume being both driver and gunner
  17.     -- when a driver is also gunner, there is no aiming reticle, and the driver camera is tilted down, which makes aiming difficult - so
  18.     -- (look up) center your target in the screen and fire, reload works, but reticle & reload icon do not display on screen for driver gunners.
  19.    
  20. -- SAPP api version --
  21. api_version = "1.8.0.0"
  22.  
  23. function OnScriptLoad()
  24.     register_callback(cb['EVENT_VEHICLE_ENTER'], "OnVehicleEnter")
  25. end
  26.  
  27. function OnScriptUnload()
  28. end
  29.  
  30. function OnVehicleEnter(PlayerIndex, Seat)
  31.     local m_object = get_dynamic_player(PlayerIndex)
  32.     local vehicleId = read_dword(m_object + 0x11C)
  33.     local veh_obj = get_object_memory(vehicleId)
  34.    
  35.     -- gunner seat
  36.     if Seat == "2" then
  37.         if (veh_obj ~= 0) then
  38.             local driver = read_dword(veh_obj + 0x324)
  39.             local gunner = read_dword(veh_obj + 0x328)         
  40.             if (driver == 0xFFFFFFFF) then
  41.                 enter_vehicle(vehicleId, PlayerIndex, 0)
  42.                 enter_vehicle(vehicleId, PlayerIndex, 2)
  43.                 enter_vehicle(vehicleId, PlayerIndex, 0)
  44.                 say(PlayerIndex, get_var(PlayerIndex, "$name") .. ": You are driver and gunner! " )
  45.             elseif (driver ~= 0xFFFFFFFF) then
  46.                 enter_vehicle(vehicleId, PlayerIndex, 2)
  47.             end
  48.         end
  49.        
  50.     -- driver seat 
  51.     elseif Seat == "0" then
  52.         if (veh_obj ~= 0) then
  53.             local driver = read_dword(veh_obj + 0x324)
  54.             local gunner = read_dword(veh_obj + 0x328)
  55.             if (gunner == 0xFFFFFFFF) then
  56.                 enter_vehicle(vehicleId, PlayerIndex, 2)
  57.                 enter_vehicle(vehicleId, PlayerIndex, 0)
  58.                 say(PlayerIndex, get_var(PlayerIndex, "$name") .. ": You are driver and gunner! " )
  59.             else
  60.                 enter_vehicle(vehicleId, PlayerIndex, 0)
  61.             end
  62.         end
  63.        
  64.     end
  65.    
  66. end
  67.  
  68. -- Created by H® Shaft
  69. -- Visit http://halorace.org
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement