Welcome to Open Carnage

A resource for Halo 1 modding and tech, with unique means of rewarding individual content creation and support. Have a wander to see why we're worth the time! EST. 2012

# Team-based bipeds

34 posts in this topic

Members of Open Carnage never see off-site ads.

Ok - next question, or rather assumption: since the switching of bipeds to a different 3rd person model is viable, is there any way to simultaneously alter the FP arms? Or will my arms look like spartan hands regardless of what my body looks like to everyone else? I'm assuming that's a no, since I've never heard anything about FP being anything other than client-side.

While I do see the HUD changes, since that's referenced (somewhat) from the biped itself, it's the fp gbxmodel that is referenced in the globals that I wonder about. Surely there'd be a way to dynamically change the pointer there to reference a different set of fp arms, but that'd be getting pretty down and dirty for something so small.

The applications for this as a zombie-type map are excellent as well...I may start a little side project, since I'm a bit ahead of schedule with Rev so far...

Also, more important than visuals: how is the hit detection?

Edited by NeX

##### Share on other sites

Ok - next question, or rather assumption: since the switching of bipeds to a different 3rd person model is viable, is there any way to simultaneously alter the FP arms? Or will my arms look like spartan hands regardless of what my body looks like to everyone else? I'm assuming that's a no, since I've never heard anything about FP being anything other than client-side.

While I do see the HUD changes, since that's referenced (somewhat) from the biped itself, it's the fp gbxmodel that is referenced in the globals that I wonder about. Surely there'd be a way to dynamically change the pointer there to reference a different set of fp arms, but that'd be getting pretty down and dirty for something so small.

The applications for this as a zombie-type map are excellent as well...I may start a little side project, since I'm a bit ahead of schedule with Rev so far...

Also, more important than visuals: how is the hit detection?

Changing the third person model was only done so the server would not crash, and I changed the model of the elite tag, not the cyborg tag. It had no visual effect, as I swapped the actual BIPED that the object was attached to. Changing any model of any kind will have no visual effect if done server-side, to answer your question.

It can be done client-side, though. I could write a plugin in HaloMD in no time to swap the first person arms.

Edited by 002

##### Share on other sites

Could you upload the map as well, so I can take a look at it?

##### Share on other sites

Could you upload the map as well, so I can take a look at it?

I'd love to do that, but I can't, because it would be plagiarism. The map I got the elite biped from is at: http://hce.halomaps.org/index.cfm?fid=2536 Edited by 002
NeX likes this

##### Share on other sites

Good enough for me =) thanks

##### Share on other sites

You could go further in your scripting and have the elite only able to pickup covenant weapons, and cyborg only human weapons.  Then - modify the first person models of each respectively covenant to covenant first person, and leave human weapons as is.

Then, update marker labels on weapons (flag/oddball)  and vehicles (human and covenant)  to add elite hands/feet/body marker labels to they can be used by either team.  Add another script portion and determine team, then assign only the correct weapons for that player (not shown below) which blocks/allows players to pickup their own team weapons, blocks opposing team weapons.

Once that is done, add this to your phasor script to restrict weapon pickups to right teams:

function OnObjectInteraction(player, objId, mapId)

local Pass = nil
local name, type = gettaginfo(mapId)
local team = getteam(player)
if type == "weap" then

if team == 0 then

if name == "weapons\\ball\\ball" or
name == "weapons\\flag\\flag" or
name == "weapons\\needler\\mp_needler" or
name == "weapons\\plasma pistol\\plasma pistol" or
name == "weapons\\plasma rifle\\plasma rifle" or
name == "weapons\\plasma_cannon\\plasma_cannon" then
Pass = true
else
Pass = false
end

elseif team == 1 then

if name == "weapons\\ball\\ball" or
name == "weapons\\flag\\flag" or
name == "weapons\\flamethrower\\flamethrower" or
name == "weapons\\pistol\\pistol" or
name == "weapons\\assault rifle\\assault rifle" or
name == "weapons\\rocket launcher\\rocket launcher" or
name == "weapons\\shotgun\\shotgun" then
Pass = true
else
Pass = false
end

end

elseif type == "eqip" then

if team == 0 then

if name == "powerups\\active camouflage" or
name == "powerups\\over shield" or
Pass = true
else
Pass = false
end

elseif team == 1 then

if name == "powerups\\active camouflage" or
name == "powerups\\over shield" or
Pass = true
else
Pass = false
end

Pass = true

end

return Pass
end


of course, it's laborious to do this "per map" so perhaps maps with classic stock weaponset only, or update script for each map.  Then ensure that weapon spawns include grenades and weapons for each team - so, a plasma pistol and pistol spawn next to each other, and so on with each weapon and nade group.

There is another way as well.  Have a spawn area for blue, and red separately.  When a player spawns, their team biped is created at xyz, the player spawns above it, with bump possession turned on for that spawn area only, they collide/bump their new team biped, script destroys map default spawn biped, creates new one waiting for next spawn.  Theoretically, you could do this for free for all as well, and select a random player team biped - free for all is not opposite of team play, free for all is actually 16 teams (or number of maxplayers if less)  So - there could be 16 different bipeds (too much work to be practical, due to weapon sets and weapon huds/first person models, vehicles - unless theer are only two sets, if so, you could default human to human, covenant to covenant)

And - phasor is currently being updated to higher standards - and will be about 15x faster than it presently is, will likely include features that Sapp and HAC2 have such as no-lead, and multiteam vehicles.

Edited by NerveBooger

##### Share on other sites

You could go further in your scripting and have the elite only able to pickup covenant weapons, and cyborg only human weapons.  Then - modify the first person models of each respectively covenant to covenant first person, and leave human weapons as is.

Then, update marker labels on weapons (flag/oddball)  and vehicles (human and covenant)  to add elite hands/feet/body marker labels to they can be used by either team.  Add another script portion and determine team, then assign only the correct weapons for that player (not shown below) which blocks/allows players to pickup their own team weapons, blocks opposing team weapons.

Once that is done, add this to your phasor script to restrict weapon pickups to right teams:

function OnObjectInteraction(player, objId, mapId)

local Pass = nil
local name, type = gettaginfo(mapId)
local team = getteam(player)
if type == "weap" then

if team == 0 then

if name == "weapons\\ball\\ball" or
name == "weapons\\flag\\flag" or
name == "weapons\\needler\\mp_needler" or
name == "weapons\\plasma pistol\\plasma pistol" or
name == "weapons\\plasma rifle\\plasma rifle" or
name == "weapons\\plasma_cannon\\plasma_cannon" then
Pass = true
else
Pass = false
end

elseif team == 1 then

if name == "weapons\\ball\\ball" or
name == "weapons\\flag\\flag" or
name == "weapons\\flamethrower\\flamethrower" or
name == "weapons\\pistol\\pistol" or
name == "weapons\\assault rifle\\assault rifle" or
name == "weapons\\rocket launcher\\rocket launcher" or
name == "weapons\\shotgun\\shotgun" then
Pass = true
else
Pass = false
end

end

elseif type == "eqip" then

if team == 0 then

if name == "powerups\\active camouflage" or
name == "powerups\\over shield" or
Pass = true
else
Pass = false
end

elseif team == 1 then

if name == "powerups\\active camouflage" or
name == "powerups\\over shield" or
Pass = true
else
Pass = false
end

Pass = true

end

return Pass
end


of course, it's laborious to do this "per map" so perhaps maps with classic stock weaponset only, or update script for each map.  Then ensure that weapon spawns include grenades and weapons for each team - so, a plasma pistol and pistol spawn next to each other, and so on with each weapon and nade group.

There is another way as well.  Have a spawn area for blue, and red separately.  When a player spawns, their team biped is created at xyz, the player spawns above it, with bump possession turned on for that spawn area only, they collide/bump their new team biped, script destroys map default spawn biped, creates new one waiting for next spawn.  Theoretically, you could do this for free for all as well, and select a random player team biped - free for all is not opposite of team play, free for all is actually 16 teams (or number of maxplayers if less)  So - there could be 16 different bipeds (too much work to be practical, due to weapon sets and weapon huds/first person models, vehicles - unless theer are only two sets, if so, you could default human to human, covenant to covenant)

And - phasor is currently being updated to higher standards - and will be about 15x faster than it presently is, will likely include features that Sapp and HAC2 have such as no-lead, and multiteam vehicles.

Forcing only covenant/human weapons would be an interesting idea, but it wouldn't work like this, as it would be unfair. You'd need to make a lot of modifications to balance it out.

Covenant stuff -

All of the Covenant weapons in stock Halo PC are close-combat weapons. The plasma pistol is only good for EMPs, and then it's useless. The plasma grenade is very difficult to stick given Halo's netcode, even with no-lead turned on. The plasma rifle is only good for draining shields quickly, which the plasma pistol does better. Its poor accuracy makes its high headshot damage unreliable. The needler has horrible ammunition, and is way too easy to dodge. The only good Covenant weapon, the fuel rod gun, does not spawn in classic gametypes, which you mentioned "classic", further making the Covenant team inferior.

In fact, one of the reasons why I dislike Blood Gulch is because you're forced to spawn with a plasma pistol on default Slayer. Who's idea was that? Meanwhile, everyone has a pistol and they're all spawnkilling you before you have a chance to take cover. Spawning at the bases was also stupid.

Human stuff -

The human weapons in stock Halo PC are much more versatile than Covenant weapons. The assault rifle is a decent close combat weapon, which you can trade for the shotgun for a potential instant kill in one shot. You can reload three shells faster than the elite has to wait for his weapon to cool down. The Covenant's team have no sniper weapon to speak of. Next, you've got the sniper rifle, which is a long-distance potential one shot kill. Lastly, you've got the pistol, which is both medium range and close range and kills nearly anything in three headshots or less.

Basically, the Covenant have less weapons, and their weapons are very often crap against the human weapons. The only strength stock elites (if we were using them) would be that they have 33% more health and shield than a cyborg, which gets thrown out due to the pistol's three shot headshot kill.

If you really want something cool for Phasor, I've written a script for custom player colors, even outside of the FFA colors, since the colors are only RGB values. And... it works on team games.

Edited by 002

##### Share on other sites

Yeah 002 I had the same thoughts on that, though I'm far too lazy for a write up. Booger - I'm also not sure what you mean by change the firstp person models respectively to match the human or covenant biped, as the fp model is referenced directly in the globals, and as far as I know, you're stuck with exactly 1. Unless perhaps you can select a permutation with an hsc script, based on the biped, but

1) I don't 3d model,

2) the hacky method of changing bipeds server side would likely make any hsc script basing permus of fp arms on current biped to go FUBAR,

3) hsc scripts have no way to determine hosts and clients, so only player with rcon index 1 would be affected (like the idea for backpack weapons icons I made for revolution - it worked, but only for player 1, everyone elses reflected theirs).

4) I don't 3d model

Also, I have a decent bit of experience with phasor, and am actually a decent programmer, even though I don't ever flex that particular muscle for halo

Edited by NeX

##### Share on other sites

3) hsc scripts have no way to determine hosts and clients, so only player with rcon index 1 would be affected (like the idea for backpack weapons icons I made for revolution - it worked, but only for player 1, everyone elses reflected theirs).

Lies, you just weren't being creative enough Nex. ;]