A Community discussion forum for Halo Custom Edition, Halo 2 Vista, Portal and Halo Machinima

Home  Search Register  Login Member ListRecent Posts
  
 
Viewing User Profile for: JadeMcLain
About Contact
Joined: Nov 13, 2018 08:31 PM
Last Post: Feb 12, 2019 08:38 AM
Last Visit: Today @ 07:53 PM
Website:  
Location:
Occupation:
Interests:
Your Age:
What Games do you play:


Send Private Message
Post Statistics
JadeMcLain has contributed to 25 posts out of 468131 total posts (.01%) in 95 days (.26 posts per day).

20 Most recent posts:
Halo CE General Discussion » Halo CE campaign compiling error Feb 12, 2019 08:38 AM (Total replies: 2)

Quote: --- Original message by: Tobymac01

Sorry this might be a simple error but I haven't modded this game for about a year and even then I was a rookie so any help is welcome and appreciated.

Couldn't read map file './toolbeta.map'
game globals didn't specify multiplayer information
the meter definition ui\hud\cyborg shield does not specify a stencil bitmap group.
the meter definition ui\hud\cyborg body does not specify a stencil bitmap group.
WARNING: 1 clusters in structure_bsp levels\a10\a10_space have no background sound or sound environment.
WARNING: command list look_at_halo could be ambiguously attached to BSPs #1 and #8
WARNING: command list look_at_halo could be ambiguously attached to BSPs #1 and #8
### FAILED TO LOAD SCENARIO.
Edited by Tobymac01 on Feb 11, 2019 at 02:23 PM


I copied this from the rebel army discord, these should be useful

Quote:
This channel contains links to the tagsets used to build the refined singleplayer, multiplayer, and ui maps
Base multiplayer/singleplayer/ui tagset (extracted from PC and CE maps)
https://www.dropbox.com/s/j6fb3ox6z1xmzzq/fresh_mp_sp_custom_edition_tagset.7z?dl=1
Refined tagset (constant work in progress until we consider it finished)
https://www.dropbox.com/s/p2d76dsu47axrao/refined_halo1_replacement_tags.7z?dl=1
MIRROR:
http://www.proxeninc.net/Halo/Refined/refined_halo1_replacement_tags.7z
If you wish to compile the maps yourself, download the base tagset, and paste any of the refined mini-tagsets over them. Read the readme to see what each tagset offers. If you wish to use the "sotr_shader_fixes" AND the "xbox_bsps_and_scenarios" tagsets, make sure to paste the shader fixes in AFTER the scenario fixes.
The files at these links will be updated whenever I push updates to the archive in my dropbox


I use the mek for extracting tags.

https://cdn.discordapp.com/attachments/441425266523504640/542441638400753679/MEK_Essentials_Setup.exe

Try these out and most of the annoying errors with campaign maps will be gone.
Edited by JadeMcLain on Feb 12, 2019 at 08:39 AM

Halo CE General Discussion » Dual Wielding AI Idea Feb 8, 2019 09:26 AM (Total replies: 1)

We can give bipeds seats that can be loaded with blank bipeds that only serve to shoot. It can mimic the parents AI. Has this idea been touched on before, I'm thinking of developing this further with AI that can wield swords and also shoot you.
https://www.youtube.com/watch?v=t-5B5qGPAdw


Mo's Editing Kit has a tool for converting collision models into gbx models which you can then import. Saved me a bunch of time.
http://forum.halomaps.org/index.cfm?page=topic&topicID=50076

Halo CE General Discussion » Bipeds - Work in Process thread [WIP] Feb 1, 2019 11:37 PM (Total replies: 8491)

Working on porting the reach drones, using the drones ported by altheros as the base. Making them sort of a hybrid between the reach and Halo 2 drones.









EDIT
https://www.youtube.com/watch?v=Kfi0G337JQU
Edited by JadeMcLain on Feb 6, 2019 at 11:02 PM


Have you tried setting the radiosity_quality to 1 before running it?
http://hce.halomaps.org/hek/index.html?start=references/level_design/mp_level_design/mp_ld_level_radiosity.html


Does anyone here have experience using these? I can only get them to work half the time. The damage and health/shield range part works for me, but they don't transform when the encounter or the single actor goes into searching mode like I want them to for testing.

Halo CE General Discussion » How do I increase the scale of an ai? Jan 3, 2019 10:11 PM (Total replies: 2)

Quote: --- Original message by: Stuffy_Junk
I know that to increase the scale of a player, you would put in the command:
object_set_scale (list_get (players) 0) 10 100

But how would I go about increasing the scale of an ai? For example, I have a grunt_major_needler that I want to increase the scale of.


Try using this.
object_set_scale (unit (list_get (ai_actors EncounterName) 0)) 10 100
Edited by JadeMcLain on Jan 3, 2019 at 10:14 PM


I like colors on the gold sentinel, looks rad. I re-skinned the default ones a while back to be like that.





Quote: --- Original message by: Pabeung
Try that with the flood and I've already setup bipeds that has animations for wall climbing, the halo 2 one.


I've been working on that, but I don't have a way for them to detect when they are on walls right now. Maybe if there was a way to attach something it could only see at a certain angle.. I'm not sure but I want this working as much as anyone else here would. I think the flood climbing on stuff was scripted, I don't remember them ever going back to climb on stuff after they detached. I could set them up the way the buggers climb but it wouldn't look nearly as good.

I used trigger vols and bipeds to get the buggers perching on walls, but I abandoned that in favor of giving them the ability to just walk on walls and be able to fly on any surface. I was thinking of using trigger volumes but that would just suck with this flood climbing idea. I'm open to ideas.


Quote: --- Original message by: DeadHamster
I like it, looking much better and the walking on walls part is cool.

But I do think they fire too often. Curious how turning on "must crouch to shoot" would affect that.


Thanks! I could adjust their firing rates. Right now they start off slower like you would expect, but after a couple seconds of being tracked on you their burst firing thing kicks in that makes them fire that way.

I'm glad you think the walking on walls part is cool because I think its crazy awesome, I can plant encounters on the wall now. Normally this would be impossible unless you set them up in a very specific way like infection forms, and that would sacrifice most of their AI to be simple and unable to fire among other things.
Edited by JadeMcLain on Dec 21, 2018 at 08:45 PM


This will be a better thread where I can post my progress.

If we check the flying bitmask in the actor tag, ground units can walk on walls. Flood infection forms can do this by default because they are set to a different type and other crap. Normally units that are not infection forms are not able to climb on walls, sometimes not even with the flying bitmask in the actor tag, but these units can, and they can fly when they get stuck.

I've abandoned using migration to make them land, instead using their attack/defend state. We make one encounter and can duplicate that for as many AI as we need, we can set these encounters to search and attack depending on eachother, making them like one encounter, but allowing units to individually go into searching state among other things.

This is an early test of my new system and I hope to iron everything out so we can have a new working feature.

https://www.youtube.com/watch?v=C47u3nEQ1Y4


(global boolean is_host false)
(global boolean is_dedicated false)


(script startup host_detector
(if (!= (unit_get_health hog1) -1)
(set is_host true)
)
(if (= (list_count (players)) 0)
(set is_dedicated true)
)
)

(script static unit player0 (unit (list_get (players) 0)))
(script static unit player1 (unit (list_get (players) 1)))
(script static unit player2 (unit (list_get (players) 2)))
(script static unit player3 (unit (list_get (players) 3)))
(script static unit player4 (unit (list_get (players) 4)))
(script static unit player5 (unit (list_get (players) 5)))
(script static unit player6 (unit (list_get (players) 6)))
(script static unit player7 (unit (list_get (players) 7)))
(script static unit player8 (unit (list_get (players) 8)))
(script static unit player9 (unit (list_get (players) 9)))
(script static unit player10 (unit (list_get (players) 10)))
(script static unit player11 (unit (list_get (players) 11)))
(script static unit player12 (unit (list_get (players) 12)))
(script static unit player13 (unit (list_get (players) 13)))
(script static unit player14 (unit (list_get (players) 14)))
(script static unit player15 (unit (list_get (players) 15)))

(global object_definition bug_fly_def "characters\bugger\bipeds\bug_fly")
(global object_definition bug_ground_def "characters\bugger\bipeds\bug_ground")

(script static unit g1_driver (vehicle_driver g1))
(script static unit g1_boarder (vehicle_driver g1))

(script startup startup_crap
(sleep 30)
(set allow_client_side_weapon_projectiles false)
(set cheat_bottomless_clip true)
(object_create g1)
(object_create g1b)
(object_pvs_set_camera cam1)
(ai_braindead red true)
(ai_braindead blue true)
(ai_force_active red true)
(ai_force_active blue true)
)

(global short index0 0)

(global unit DroneGroundEncounter (unit (list_get (ai_actors red_bug_ground_base0) 0)))
(global unit DroneAirEncounter (unit (list_get (ai_actors red_bug_fly_base0) 0)))

(global ai DroneGroundEncounterName "red_bug_ground_base0")
(global ai DroneAirEncounterName "red_bug_fly_base0")

;----------------------------------------------------------------------------------------------------------------------------------------------------------------------"update encounter name for ai status"
(script continuous SetDroneEncounter
(if (= 0 index0)
(begin
(set DroneGroundEncounterName "red_bug_ground_base0")
(set DroneAirEncounterName "red_bug_fly_base0")
(set DroneGroundEncounter (unit (list_get (ai_actors red_bug_ground_base0) 0)))
(set DroneAirEncounter (unit (list_get (ai_actors red_bug_fly_base0) 0)))
)
)

(if (= 1 index0)
(begin
(set DroneGroundEncounterName "red_bug_ground_base1")
(set DroneAirEncounterName "red_bug_fly_base1")
(set DroneGroundEncounter (unit (list_get (ai_actors red_bug_ground_base1) 0)))
(set DroneAirEncounter (unit (list_get (ai_actors red_bug_fly_base1) 0)))
)
)

(if (= 2 index0)
(begin
(set DroneGroundEncounterName "red_bug_ground_base2")
(set DroneAirEncounterName "red_bug_fly_base2")
(set DroneGroundEncounter (unit (list_get (ai_actors red_bug_ground_base2) 0)))
(set DroneAirEncounter (unit (list_get (ai_actors red_bug_fly_base2) 0)))
)
)

(if (= 3 index0)
(begin
(set DroneGroundEncounterName "red_bug_ground_base3")
(set DroneAirEncounterName "red_bug_fly_base3")
(set DroneGroundEncounter (unit (list_get (ai_actors red_bug_ground_base3) 0)))
(set DroneAirEncounter (unit (list_get (ai_actors red_bug_fly_base3) 0)))
)
)

(if (= 4 index0)
(begin
(set DroneGroundEncounterName "red_bug_ground_base4")
(set DroneAirEncounterName "red_bug_fly_base4")
(set DroneGroundEncounter (unit (list_get (ai_actors red_bug_ground_base4) 0)))
(set DroneAirEncounter (unit (list_get (ai_actors red_bug_fly_base4) 0)))
)
)

(if (= 5 index0)
(begin
(set DroneGroundEncounterName "red_bug_ground_base5")
(set DroneAirEncounterName "red_bug_fly_base5")
(set DroneGroundEncounter (unit (list_get (ai_actors red_bug_ground_base5) 0)))
(set DroneAirEncounter (unit (list_get (ai_actors red_bug_fly_base5) 0)))
)
)
)

;----------------------------------------------------------------------------------------------------------------------------------------------------------------------"update encounter name for ai status"
(script static "void" bug0a
(ai_command_list DroneGroundEncounterName jump)
(sleep 15)
(objects_attach DroneGroundEncounter "head" DroneAirEncounter "head")
(objects_detach DroneGroundEncounter DroneAirEncounter)

(ai_braindead DroneAirEncounterName false)

(object_teleport DroneGroundEncounter bugoff)

(ai_braindead DroneGroundEncounterName true)

(ai_set_current_state DroneAirEncounterName "search")
(ai_set_current_state DroneGroundEncounterName "none")

(ai_magically_see_players DroneAirEncounterName)
)

(script static "void" bug0b
(ai_attack DroneAirEncounterName)
(sleep 15)
(objects_attach DroneAirEncounter "head" DroneGroundEncounter "head")
(objects_detach DroneAirEncounter DroneGroundEncounter)

(ai_braindead DroneGroundEncounterName false)

(object_teleport DroneAirEncounter bugoff)

(ai_braindead DroneAirEncounterName true)

(ai_defend DroneAirEncounterName)

(ai_set_current_state DroneGroundEncounterName "search")
(ai_set_current_state DroneAirEncounterName "none")

(ai_magically_see_players DroneGroundEncounterName)

)

(script continuous bug0

(if (and (= (volume_test_objects highestpoint (players)) 1)
(!= (ai_status DroneAirEncounterName) 1)
)
(begin
(ai_attack DroneAirEncounterName)
(ai_command_list DroneAirEncounterName goup)
)
)

;----------------------------------------------------------------------------------------------------------------------------------------------------------------------"check health, respawn"
(if (= (unit_get_health DroneAirEncounter) 0)
(begin
(unit_doesnt_drop_items DroneGroundEncounter)
(unit_kill_silent DroneGroundEncounter)

)
)

(if (= (unit_get_health DroneGroundEncounter) 0)
(begin
(unit_kill_silent DroneAirEncounter)
)
)

;----------------------------------------------------------------------------------------------------------------------------------------------------------------------"check AI status for switching"
(if (and (= (ai_status DroneGroundEncounterName) 3)
(= (volume_test_objects bugoffvol DroneAirEncounter) 1)
)
(begin
(sleep 15)
(if (and (= (ai_status DroneGroundEncounterName) 3)
(= (volume_test_objects bugoffvol DroneAirEncounter) 1)
)
(begin
(bug0a)
)
)
)
)

(if (and (= (ai_status DroneGroundEncounterName) 4)
(= (volume_test_objects bugoffvol DroneAirEncounter) 1)
)
(begin
(sleep 15)
(if (and (= (ai_status DroneGroundEncounterName) 4)
(= (volume_test_objects bugoffvol DroneAirEncounter) 1)
)
(begin
(bug0a)
)
)
)
)


(if (and (= (ai_status DroneAirEncounterName) 6)
(= (volume_test_objects bugoffvol DroneGroundEncounter) 1)
)
(begin
(sleep 15)
(if (and (= (ai_status DroneAirEncounterName) 6)
(= (volume_test_objects bugoffvol DroneGroundEncounter) 1)
)
(begin
(bug0b)
)
)
)
)


(set index0 (+ index0 1))
(if (< 5 index0)
(set index0 0)
)

)





EDIT: Vid of them walking on the canyon walls, it looks really cool
https://youtu.be/rS28uOgk8so
https://www.youtube.com/watch?v=pChyrPuMrTk




Edited by JadeMcLain on Dec 21, 2018 at 07:27 PM
Edited by JadeMcLain on Dec 21, 2018 at 08:05 PM

Halo CE Technical / Map Design » Unwrap error during radiosity Dec 17, 2018 09:11 AM (Total replies: 2)

Is there a "debug.wrl"? Try importing that instead.
Edited by JadeMcLain on Dec 17, 2018 at 09:13 AM

Halo CE General Discussion » Vehicle Boarding Dec 15, 2018 07:12 AM (Total replies: 6)

Quote: --- Original message by: SOI_7
Quote: --- Original message by: JadeMcLain

Quote: --- Original message by: SOI_7
B-but... how did you manage to get inside the boarding seat while the ghost is used by another AI? Iirc in stock Halo you can't do that unless you and the driver are on the same team


Just found this out, but you can attach the player with AI on the same team as the enemy, and then quickly detach the player and it will still let you inside the vehicle.

I updated the link:

Edit: Im not sure why the player freezes after killing the boarded enemy, but I'll find out soon enough.

Edit2: We can just attach the player to a blank encounter instead of detaching, that fixes it.

Edit3: The fixed map.
https://mega.nz/#!EHIjRKCB!cMa_XXwfjLoQF6pIf_BEI8SpknBr_8ZRcMklIkAq3iA
Edited by JadeMcLain on Dec 14, 2018 at 07:14 PM


Very interesting. For my mod I used to create a temporary allegiance between the player and the AIs, but the concept is the same. Which conditions are you using to perform the attach? Distance to object? I made a "portable trigger volume" with attached bipeds checking when they both see the player, but your method seems to be better


That portable trigger vol and allegiance is a great idea. For conditions, I'm going to attach the player with some AI that has a short sight and hear distance, and that can detect when the enemy is near, and also if "g1_driver" exists, and is in a large trigger vol near me. Think I'm going to try out that portable trigger vol, objects_can_see_objects seems like it would be useful for this.

Edit: I think migration by unit would be very useful for this.

Edit2: We can duplicate seats and markers, force the AI into these seats they wont be able to exit. This is better than making them braindead so they dont exit vehicles when the enemy hops in.


(script continuous g1_board
(if (= (vehicle_test_seat_list g1 "ghost-b-b" (players)) 1)
(begin
(vehicle_load_magic g1 "driver2" (g1_driver))
(damage_object "weapons\pistol\bullet" (g1_driver))
(sleep 30)
)
)
)


https://youtu.be/SXjAstlzj4Y

I recommend stalking it when the ghost is still and distracted by the flood.

Edit3: If you enter the driver seat while its being occupied by an enemy, it will kick the enemy out of his diver seat, and its really cool. If you enter from the front of the ghost the Drone will beat the enemy to death.

Edit4: Better script.


(script continuous g1_board
(if (= (vehicle_test_seat_list g1 "ghost-b-b" (players)) 1)
(begin
(vehicle_load_magic g1 "driver2" (g1_driver))
(damage_object "weapons\pistol\bullet" (g1_driver))
(sleep 30)
(if (= (vehicle_test_seat_list g1 "ghost-b-b" (players)) 0)
(begin
(vehicle_load_magic g1 "driver" (g1_driver))
)
)
)
)
)


Updated map.
https://mega.nz/#!EXQ0gSYJ!RNMzxlU7MGc2Yr6gufNwwomjiZM2OoIISn-jlBfiMYA

Edit5: I have ways of detecting player team for online multiplayer, and I'm going to use this to fix the reticle issue with everyone being considered an enemy or friend.
Edited by JadeMcLain on Dec 16, 2018 at 05:08 PM

Halo CE General Discussion » Vehicle Boarding Dec 14, 2018 08:35 PM (Total replies: 6)

I'm using ai_attach on the player to allow them into enemy vehicles. I gave the ghost a custom seat that only drones can enter.
https://youtu.be/eWcBr3K7htg
Edited by JadeMcLain on Dec 14, 2018 at 09:22 PM

Halo CE General Discussion » Vehicle Boarding Dec 14, 2018 06:23 PM (Total replies: 6)

Quote: --- Original message by: SOI_7
B-but... how did you manage to get inside the boarding seat while the ghost is used by another AI? Iirc in stock Halo you can't do that unless you and the driver are on the same team


Just found this out, but you can attach the player with AI on the same team as the enemy, and then quickly detach the player and it will still let you inside the vehicle.

I updated the link:

Edit: Im not sure why the player freezes after killing the boarded enemy, but I'll find out soon enough.

Edit2: We can just attach the player to a blank encounter instead of detaching, that fixes it.

Edit3: The fixed map.
https://mega.nz/#!EHIjRKCB!cMa_XXwfjLoQF6pIf_BEI8SpknBr_8ZRcMklIkAq3iA
Edited by JadeMcLain on Dec 14, 2018 at 07:14 PM

Halo CE General Discussion » Vehicle Boarding Dec 14, 2018 04:39 PM (Total replies: 6)

We can manipulate the driver with:
(script static unit g1_driver (vehicle_driver g1))


(script continuous board0
(if (= (vehicle_test_seat_list g1 "ghost-b-b" (players)) 1)
(begin
(ai_command_list_by_unit (g1_driver) pause0)
(damage_object "weapons\pistol\bullet" (g1_driver))
(sleep_until (= (ai_command_list_status (g1_driver)) 0))
)
)
)


https://www.youtube.com/watch?v=fjfcXutjVNo

I can make him exit after a couple seconds, or do whatever.

Edited by JadeMcLain on Dec 14, 2018 at 06:28 PM

Halo CE General Discussion » Air/Ground Unit Hybrid Dec 11, 2018 03:04 PM (Total replies: 23)

Quote: --- Original message by: DeadHamster

AI index is a global value I created, not an actual engine value. A variable, an integer in this case.


I know, and I finally got this working with migration. I've switched back from named bipeds to encounters now. Need to tweak some parameters but this will iron out nicely.

https://www.youtube.com/watch?v=B2560MBQJcM

I also have a way for them to judge distance by attaching them with detector AI. Working on implementing that again with this new system.

EDIT: Forget what I said, I have something way better now and a massive update coming soon.
Edited by JadeMcLain on Dec 20, 2018 at 11:38 PM

Halo CE General Discussion » Air/Ground Unit Hybrid Dec 10, 2018 11:49 AM (Total replies: 23)

Thanks for the advice, its been very helpful. I'll be sure to keep that formatting tip in mind. I would love to use the ai_index but I can't get this to work with migration, so I had to revert back to using named bipeds.

I have started on this new system, and I fixed up the drone animation tag to use the proper animations for ground combat. This vid is to show them landing before switching over, I will give them better reasons to land or fly.

https://www.youtube.com/watch?v=7aLYQ42H88I

I need to get the drones moving like this in ground mode.
https://www.youtube.com/watch?v=KrEybLLh3Rw

I'm trying to study how these things behave in the air.
https://www.youtube.com/watch?v=zSoo0o1rg7M
https://www.youtube.com/watch?v=4Q6LQ9mGvRw
Edited by JadeMcLain on Dec 10, 2018 at 01:55 PM

Halo CE General Discussion » simple way to sync device machines Dec 5, 2018 04:49 PM (Total replies: 0)

This works by having AI detect the presence of a biped. When the biped is detected, it powers the device. It runs on both client and server, so the client will have his own AI that detects the server biped.

The AI cant move and is basically blank, it can only detect things.

https://www.youtube.com/watch?v=-MwUIyt1DFQ

When the client joins, the devices will be updated. I'm working on a way of updating them instantly.

EDIT: I have a better script for this now.

Tested this with bridges , doors, and pistons that can move the player horizontally. They work great. The only small issue is giant elevators that change speed tend to be slightly offset sometimes. Normal elevators work good like they did in the vid.

https://www.youtube.com/watch?v=fmmxIlkB244

EDIT2: This is the script I use now.

I have a much better script system in the works that should allow for even better elevator functionality.

EDIT3: The updated script and I have a video coming soon. The giant elevator that was giving me problems works near flawlessly now.

(script startup spawn
(ai_place detect_ai)
)

(script continuous door1
(if (= (device_get_position control1) 1)
(object_create_containing detectme)
)
(if (= (device_get_position control1) 0)
(object_destroy_containing detectme)
)
)

(script continuous door1a
(sleep 1)
(if (!= (ai_status detect_ai) 1)
(device_set_position lift1 1)
)
(if (!= (ai_status detect_ai) 6)
(device_set_position lift1 0)
)
)

(script continuous door1aclient
(sleep_until (= is_host false))
(if (!= (ai_status detect_ai) 1)
(device_set_position lift1 1)
)
(if (!= (ai_status detect_ai) 6)
(device_set_position lift1 0)
)
)

EDIT4: The update vid.
https://www.youtube.com/watch?v=vow3KouqWik

Sorry about the crappy vid quality and such. I've tested this multiple times, and on dedicated servers. I'm actually surprised at how well the big elevator works now.
Edited by JadeMcLain on Dec 6, 2018 at 01:18 PM

Halo CE General Discussion » Air/Ground Unit Hybrid Dec 4, 2018 12:58 PM (Total replies: 23)

Quote: --- Original message by: Kal_El
as far as the climbing walls feature, I have noticed as you fly closer to that wall while in flight; and move about that wall, it appears you are climbing anyways?


If you were flying, the moment you enter the trigger vol, which would be placed along the wall, you would enter the seat of an invisible biped just like the one you're playing as, this seat would make you play the right animations, and the biped can walk on walls. This feature would be ideal for AI.

Walk on walls doesn't really work for most characters, so you would be kicked out of this biped after leaving the vol. This walk feature could work on some surfaces though. I haven't tested this enough.
Edited by JadeMcLain on Dec 4, 2018 at 01:04 PM


Time: Fri February 15, 2019 9:28 PM 219 ms.
A Halo Maps Website