Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- -- Show Rider Names
- -- by H® Shaft for SAPP
- -- Designed for Halo PC
- -- Script will show names of teammates who are in the same vehicle when they enter,
- -- or when any player in a vehicle types 'WHO IS'
- -- don't edit --
- api_version = "1.9.0.0"
- game_started = false
- player_seat = {}
- vehicles = {}
- function OnScriptLoad()
- register_callback(cb['EVENT_GAME_START'],"OnNewGame")
- register_callback(cb['EVENT_GAME_END'], "OnGameEnd")
- register_callback(cb['EVENT_JOIN'],"OnPlayerJoin")
- register_callback(cb['EVENT_LEAVE'],"OnPlayerLeave")
- register_callback(cb['EVENT_DIE'], "OnPlayerDeath")
- register_callback(cb['EVENT_CHAT'], "OnPlayerChat")
- register_callback(cb['EVENT_VEHICLE_ENTER'], "OnVehicleEnter")
- register_callback(cb['EVENT_VEHICLE_EXIT'], "OnVehicleEject")
- if get_var(0, "$gt") ~= "n/a" then
- game_started = true
- for i=1,16 do
- if player_present(i) then
- player_seat[i] = {}
- end
- end
- end
- end
- function OnScriptUnload()
- player_seat = {}
- vehicles = {}
- end
- function OnNewGame()
- game_started = true
- for i=1,16 do
- if player_present(i) then
- vehicles = {}
- player_seat[i] = {}
- end
- end
- end
- function OnGameEnd()
- game_started = false
- for i=1,16 do
- if player_present(i) then
- vehicles = {}
- player_seat[i] = {}
- end
- end
- end
- function OnPlayerJoin(PlayerIndex)
- player_seat[PlayerIndex] = {}
- end
- function OnPlayerLeave(PlayerIndex)
- if player_present(PlayerIndex) then
- if player_seat[PlayerIndex].seat == 0 then
- vehicles[player_seat[PlayerIndex].vehicleid].driver = nil
- elseif player_seat[PlayerIndex].seat == 1 then
- write_dword(player_seat[PlayerIndex].vehobj + 0x32C, 0xFFFFFFFF)
- vehicles[player_seat[PlayerIndex].vehicleid].passenger = nil
- elseif player_seat[PlayerIndex].seat == 2 then
- vehicles[player_seat[PlayerIndex].vehicleid].gunner = nil
- end
- end
- player_seat[PlayerIndex] = {}
- end
- function OnPlayerDeath(PlayerIndex, KillerIndex)
- if (game_started == true) then
- if player_present(PlayerIndex) then
- local player_object = get_dynamic_player(PlayerIndex)
- local player_object_id = read_dword(get_player(PlayerIndex) + 0x34)
- local vehicle_id = read_dword(player_object + 0x11C)
- local seatIndex = read_byte(player_object + 0x2F0)
- local veh_obj = get_object_memory(vehicle_id)
- if (player_object ~= 0) then
- if (vehicles[vehicle_id] == nil) then
- vehicles[vehicle_id] = {}
- end
- if (seatIndex == 0) then -- driver
- vehicles[vehicle_id].driver = nil
- elseif (seatIndex == 1) then -- passenger
- write_dword(veh_obj + 0x32C, 0xFFFFFFFF)
- vehicles[vehicle_id].passenger = nil
- elseif (seatIndex == 2) then -- gunner
- vehicles[vehicle_id].gunner = nil
- end
- player_seat[PlayerIndex].seat = nil
- player_seat[PlayerIndex].vehicleid = nil
- player_seat[PlayerIndex].vehobj = nil
- end
- end
- end
- end
- function OnVehicleEnter(PlayerIndex, Seat)
- if (game_started == true) then
- if player_present(PlayerIndex) then
- local player_object = get_dynamic_player(PlayerIndex)
- local player_object_id = read_dword(get_player(PlayerIndex) + 0x34)
- local vehicle_id = read_dword(player_object + 0x11C)
- local veh_obj = get_object_memory(vehicle_id)
- if (veh_obj ~= 0) then
- if (vehicles[vehicle_id] == nil) then
- vehicles[vehicle_id] = {}
- end
- if (Seat == "0") then
- player_seat[PlayerIndex].vehicleid = vehicle_id
- player_seat[PlayerIndex].seat = 0
- player_seat[PlayerIndex].vehobj = veh_obj
- vehicles[vehicle_id].driver = PlayerIndex
- show_passenger(PlayerIndex, vehicle_id)
- show_gunner(PlayerIndex, vehicle_id)
- elseif (Seat == "1") then
- player_seat[PlayerIndex].vehicleid = vehicle_id
- player_seat[PlayerIndex].seat = 1
- player_seat[PlayerIndex].vehobj = veh_obj
- vehicles[vehicle_id].passenger = PlayerIndex
- timer(0, "assignpassenger", veh_obj, player_object_id)
- show_driver(PlayerIndex, vehicle_id)
- show_gunner(PlayerIndex, vehicle_id)
- elseif (Seat == "2") then
- player_seat[PlayerIndex].vehicleid = vehicle_id
- player_seat[PlayerIndex].seat = 2
- player_seat[PlayerIndex].vehobj = veh_obj
- vehicles[vehicle_id].gunner = PlayerIndex
- show_driver(PlayerIndex, vehicle_id)
- show_passenger(PlayerIndex, vehicle_id)
- end
- end
- end
- end
- end
- function OnVehicleEject(PlayerIndex)
- if (game_started == true) then
- if player_present(PlayerIndex) then
- local player_object = get_dynamic_player(PlayerIndex)
- local player_object_id = read_dword(get_player(PlayerIndex) + 0x34)
- local vehicle_id = read_dword(player_object + 0x11C)
- local seatIndex = read_byte(player_object + 0x2F0)
- if (vehicles[vehicle_id] == nil) then
- vehicles[vehicle_id] = {}
- end
- if (player_object ~= 0) then
- if (seatIndex == "0") then -- driver
- vehicles[vehicle_id].driver = nil
- elseif (seatIndex == "1") then -- passenger
- resetpassenger(PlayerIndex)
- elseif (seatIndex == "2") then -- gunner
- vehicles[vehicle_id].gunner = nil
- end
- player_seat[PlayerIndex].seat = nil
- player_seat[PlayerIndex].vehicleid = nil
- player_seat[PlayerIndex].vehobj = nil
- end
- end
- end
- end
- function OnPlayerChat(PlayerIndex, Message)
- local response = nil
- local name = get_var(PlayerIndex,"$name")
- local Message = string.lower(Message)
- if (Message == "whois") or (Message == "who is") then
- response = false
- local player_object = get_dynamic_player(PlayerIndex)
- local vehicle_id = read_dword(player_object + 0x11C)
- local veh_obj = get_object_memory(vehicle_id)
- if isinvehicle(PlayerIndex) then
- if (veh_obj ~= nil) then
- show_driver(PlayerIndex, vehicle_id)
- show_passenger(PlayerIndex, vehicle_id)
- show_gunner(PlayerIndex, vehicle_id)
- end
- else
- say(PlayerIndex, "**Who Is** You must be in a vehicle to use this feature.")
- end
- end
- return response
- end
- function show_driver(PlayerIndex, vehicle_id)
- if (vehicles[vehicle_id].driver ~= nil) then
- rprint(PlayerIndex, "|rDriver: " .. get_var(vehicles[vehicle_id].driver,"$name"))
- end
- end
- function show_passenger(PlayerIndex, vehicle_id)
- if (vehicles[vehicle_id].passenger ~= nil) then
- rprint(PlayerIndex, "|rPassenger: " .. get_var(vehicles[vehicle_id].passenger,"$name"))
- end
- end
- function show_gunner(PlayerIndex, vehicle_id)
- if (vehicles[vehicle_id].gunner ~= nil) then
- rprint(PlayerIndex, "|rGunner: " .. get_var(vehicles[vehicle_id].gunner,"$name"))
- end
- end
- function assignpassenger(veh_obj, player_object_id)
- if (game_started == true) then
- write_dword(veh_obj + 0x32C, player_object_id)
- end
- return false
- end
- function resetpassenger(PlayerIndex)
- if player_seat[PlayerIndex].vehicleid then
- write_dword(player_seat[PlayerIndex].vehobj + 0x32C, 0xFFFFFFFF)
- player_seat[PlayerIndex].seat = nil
- player_seat[PlayerIndex].vehicleid = nil
- player_seat[PlayerIndex].vehobj = nil
- end
- end
- function isinvehicle(PlayerIndex)
- if (player_alive(PlayerIndex) == false) then return false end
- local player_object = get_dynamic_player(PlayerIndex)
- local vehicleId = read_dword(player_object + 0x11C)
- if vehicleId == 0xFFFFFFFF then
- return false
- else
- return true
- end
- end
- -- Created by H® Shaft
- -- Visit http://halorace.org/forum/index.php
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement