urbanyoung / Phasor

Phasor is a server extension for Halo PC which focuses on giving the end-user the ability to deeply customize gameplay. Phasor does this via its scripting system, which uses the Lua language. Scripters are able to react to and change many different aspects of the game.
MIT License
19 stars 9 forks source link

Ability to create/change nav points #53

Open urbanyoung opened 11 years ago

chrisk123999 commented 11 years ago

I don't think nav points sync.

urbanyoung commented 11 years ago

I'm not sure if they do or not, but there must be some way to specify a target seeing as target slayer works.

chrisk123999 commented 11 years ago

As I remember it, the race nav points are simply netgame flags setup in the map file. You most likely can change the target for Slayer, but race points are hard codded. If you move a race netgameflag via modding the clients don't see it.

urbanyoung commented 11 years ago

Right, but if I can get object targets working you can simulate it reasonably effectively.

twhitcomb commented 11 years ago

Just now saw this. If it can happen, that would be amazing.

RadWolfie commented 10 years ago

80% are unlikely going to sync the nav points. Around 20% might be able to if there's some sort of netcode for nav point... I was tampering with the objective list and see if there's any changes going through the client side which it didn't. So there's no "official" server-side fix for the custom oddball and/or flag spawn to the client-side causing the nav point corruption. I have made a bug fix for client-side for this issue only.

Devieth commented 10 years ago

If your trying to do this on slayer then you should be able to do this. Also you should update the targets every time a player spawns.

local m_player = getplayer(player)

One of these should work. writeword(m_player, 0x88, target) -- option 1 writeword(m_player + 0x88, target) -- option 2

-- fucntions by Wizard function takenavsaway() -- writes navs above players heads for i = 0,15 do local m_player = getplayer(i) if m_player then writeword(m_player, 0x88, i) end end end

function WriteNavsToTarget(target) -- writes the navs above a specific target for i = 0,15 do local m_player = getplayer(i) if m_player then local slayer_target = readword(m_player, 0x88) if slayer_target < 16 and slayer_target > -1 then writeword(m_player, 0x88, target) end end end end