Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- --[[ ### Random Weapons Infinite Ammo v1 ###]]--
- --[[ ### by H® Shaft for Phasor v2 ###]]--
- -- gametype MUST have weapons set to generic
- -- Players will be given a randomly selected weapon with unlimited ammo each time they die/respawn.
- team_play = false
- weapons = {}
- mybattery = {}
- function GetRequiredVersion()
- return 200
- end
- function OnScriptLoad(process, game, persistent)
- if game == true or game == "PC" then
- GAME = "PC"
- gametype_base = 0x671340
- map_name = readstring(0x698F21)
- else
- GAME = "CE"
- gametype_base = 0x5F5498
- map_name = readstring(0x61D151)
- end
- for i=0,15 do
- if getplayer(i) then
- mybattery[i] = 0
- weapons[i] = {}
- end
- end
- gametype = readbyte(gametype_base + 0x30)
- if getteamplay() == true then team_play = true else team_play = false end
- end
- function OnNewGame(map)
- if GAME == "PC" then
- gametype_base = 0x671340
- map_name = readstring(0x698F21)
- elseif GAME == "CE" then
- gametype_base = 0x5F5498
- map_name = readstring(0x61D151)
- end
- for i=0,15 do
- if getplayer(i) then
- mybattery[i] = 0
- weapons[i] = {}
- end
- end
- gametype = readbyte(gametype_base + 0x30)
- if getteamplay() == true then team_play = true else team_play = false end
- end
- function getteamplay()
- if readbyte(gametype_base + 0x34) == 1 then
- return true
- else
- return false
- end
- end
- function OnPlayerJoin(player)
- if getplayer(player) then
- mybattery[player] = 0
- weapons[player] = nil
- sendconsoletext(player, "Random weapons with unlimited ammo!")
- end
- end
- function OnPlayerKill(killer, victim, mode)
- if getplayer(victim) then
- weapons[victim] = nil
- mybattery[victim] = 0
- end
- end
- function OnPlayerLeave(player)
- if getplayer(player) then
- weapons[player] = nil
- mybattery[player] = nil
- end
- end
- function OnTeamChange(player, old_team, new_team, relevant)
- if getplayer(player) then
- weapons[player] = nil
- mybattery[player] = 1
- end
- return nil
- end
- function OnPlayerSpawn(player, m_objectId)
- if getplayer(player) then
- weapons[player] = nil
- mybattery[player] = 0
- local m_objectId = getplayerobjectid(player)
- if m_objectId then
- gameweap = registertimer(0, "AssignGameWeapons", player)
- end
- end
- end
- function AssignGameWeapons(id, count, player)
- if getplayer(player) then
- local m_objectId = getplayerobjectid(player)
- local m_object = getobject(m_objectId)
- local clip = 0
- local ammo = 9999
- local battery = 0
- if m_objectId then
- for i = 0,3 do
- local weapID = readdword(getobject(m_objectId), 0x2F8 + i*4)
- if weapID ~= 0xFFFFFFFF then
- destroyobject(weapID)
- end
- end
- if m_object then
- writebyte(m_object + 0x31E, 1)
- writebyte(m_object + 0x31F, 1)
- end
- local randomweap = getrandomnumber(1, 11)
- if randomweap == 1 then
- clip = 12
- weapons[player] = "weapons\\shotgun\\shotgun"
- sendconsoletext(player, "Shotgun")
- elseif randomweap == 2 then
- clip = 60
- weapons[player] = "weapons\\assault rifle\\assault rifle"
- sendconsoletext(player, "Assault Rifle")
- elseif randomweap == 3 then
- clip = 100
- weapons[player] = "weapons\\flamethrower\\flamethrower"
- sendconsoletext(player, "Flame-Thrower")
- elseif randomweap == 4 then
- clip = 20
- weapons[player] = "weapons\\needler\\mp_needler"
- sendconsoletext(player, "Needler")
- elseif randomweap == 5 then
- clip = 12
- weapons[player] = "weapons\\pistol\\pistol"
- sendconsoletext(player, "Pistol")
- elseif randomweap == 6 then
- battery = 0
- weapons[player] = "weapons\\plasma pistol\\plasma pistol"
- sendconsoletext(player, " Plasma Pistol")
- elseif randomweap == 7 then
- battery = 0
- weapons[player] = "weapons\\plasma rifle\\plasma rifle"
- sendconsoletext(player, "Plasma Rifle")
- elseif randomweap == 8 then
- battery = 0
- weapons[player] = "weapons\\plasma_cannon\\plasma_cannon"
- sendconsoletext(player, "Fuel-Rod Gun")
- elseif randomweap == 9 then
- clip = 2
- weapons[player] = "weapons\\rocket launcher\\rocket launcher"
- sendconsoletext(player, "Rocket Launcher")
- elseif randomweap == 10 then
- clip = 4
- weapons[player] = "weapons\\sniper rifle\\sniper rifle"
- sendconsoletext(player, "Sniper Rifle")
- end
- local m_weaponId = createobject(gettagid("weap", weapons[player]), 0, 10, false, 0, 0, 0)
- assignweapon(player, m_weaponId)
- local m_weapon = getobject(m_weaponId)
- if randomweap == 6 or randomweap == 7 or randomweap == 8 then
- if m_weapon then
- writefloat(m_weapon + 0x240, battery)
- updateammo(m_weaponId)
- infbattery = registertimer(1000, "InfBattery", {m_weapon, player})
- mybattery[player] = 1
- end
- else
- if m_weapon then
- writeword(m_weapon + 0x2B6, ammo)
- writeword(m_weapon + 0x2B8, clip)
- updateammo(m_weaponId)
- end
- end
- end
- end
- return false
- end
- function InfBattery(id, count, arg)
- local m_weapon = arg[1]
- local player = arg[2]
- if m_weapon then
- if readfloat(m_weapon + 0x240) == 1 and mybattery[player] == 1 then
- destroyplayerweaps(player)
- replaceplasmaweap = registertimer(0, "ReplacePlasmaWeap", {player, m_weapon})
- mybattery[player] = 0
- end
- end
- return true
- end
- function ReplacePlasmaWeap(id, count, arg)
- local player = arg[1]
- local m_weapon = arg[2]
- if count == 1 then
- if player then
- local m_weaponId = createobject(gettagid("weap", weapons[player]), 0, 10, false, 0, 0, 0)
- assignweapon(player, m_weaponId)
- privatesay(player, "Battery recharged.")
- end
- mybattery[player] = 0
- end
- return false
- end
- function getweaponobjectid(player, slot)
- local m_objectId = getplayerobjectid(player)
- if m_objectId then return readdword(getobject(m_objectId) + 0x2F8 + slot*4) end
- end
- function destroyplayerweaps(player)
- for i=0,3 do
- local weap_id = getweaponobjectid(player, i)
- if weap_id ~= 0xFFFFFFFF then destroyobject(weap_id) end
- end
- end
- function OnObjectInteraction(player, objId, mapId)
- local Pass = nil
- local name, type = gettaginfo(mapId)
- if type == "weap" then
- if gametype == 1 or gametype == 3 then
- if name == "weapons\\ball\\ball" or name == "weapons\\flag\\flag" then
- Pass = true
- elseif weapons[player] ~= nil then
- if name ~= weapons[player] then
- Pass = false
- end
- end
- else
- if weapons[player] ~= nil then
- if name ~= weapons[player] then
- Pass = false
- end
- end
- end
- end
- return Pass
- end
- function OnGameEnd(stage)
- if stage == 1 then
- if gameweap then
- removetimer(gameweap)
- gameweap = nil
- end
- if infbattery then
- removetimer(infbattery)
- infbattery = nil
- end
- if replaceplasmaweap then
- removetimer(replaceplasmaweap)
- replaceplasmaweap = nil
- end
- end
- end
- -- Created by H® Shaft thank you to Oxide, AelitePrime, Nugget & Wizard.
- -- Visit http://halorace.org/forum/index.php?topic=514.0 or
- -- Visit http://pastebin.com/u/HR_Shaft for more phasor scripts
Advertisement
Add Comment
Please, Sign In to add comment