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: EcoSurge
About Contact
Joined: Apr 1, 2019 11:36 PM
Last Post: Jun 6, 2019 06:54 PM
Last Visit: Jun 6, 2019 07:07 PM
Website:  
Location:
Occupation:
Interests: Game design
Your Age:
What Games do you play: Halo, Ratchet, Jak, Sly, Crash, Spyro
Avatar:


Send Private Message
Post Statistics
EcoSurge has contributed to 15 posts out of 469058 total posts (0.00%) in 78 days (.19 posts per day).

20 Most recent posts:

Quote: --- Original message by: Reshirom200
My debug.txt :
06.06.19 16:20:39 sapien pc 01.00.09.0620 ----------------------------------------------
06.06.19 16:20:39 reference function: _write_to_error_file
06.06.19 16:20:39 reference address: 401b13
06.06.19 16:20:39 *found 2 adapters...
06.06.19 16:20:39 CreateDevice succeeded with refresh rate = 0
06.06.19 16:20:52 Increasing sound decompression buffer size to 1048576 bytes
06.06.19 16:22:23 the meter definition ui\hud\cyborg shield does not specify a stencil bitmap group.
06.06.19 16:22:23 the meter definition ui\hud\cyborg body does not specify a stencil bitmap group.
06.06.19 16:22:30 EAX: 0x00000000
06.06.19 16:22:30 EBX: 0xFFFFE301
06.06.19 16:22:30 ECX: 0x00000000
06.06.19 16:22:30 EDX: 0x00000000
06.06.19 16:22:30 EDI: 0x0019F1C0
06.06.19 16:22:30 ESI: 0x00000000
06.06.19 16:22:30 EBP: 0x0019F098
06.06.19 16:22:30 ESP: 0x0019F08C
06.06.19 16:22:30 EIP: 0x77EAB78C, C2 08 00 90 ?????
06.06.19 16:22:30 EXCEPTION halt in \halopc\haloce\source\memory\data.c,#495: script node index #74 (0xe3bd004a) is unused or changed


I've been using Mo's fixed scenarios and OS Sapien, any help on this would be greatly appreciated.


Try opening it in normal Sapien and saving the scenario with a different name. If that doesn't work try opening the scenario in OS Guerilla and deleting the script related stuff.

Halo CE General Discussion » Homing Missiles May 3, 2019 01:55 AM (Total replies: 6)

Quote: --- Original message by: Masters1337
With this it will actually lock onto only vehicles. It's a pretty clever, although not complicated way of doing it and I am surprised others including myself never looked at doing it like this.

Nice job OP!


Thanks. Hope this and the flying vehicle stuff can help your project.

Quote: --- Original message by: sparky

Cool, but what happens if there are both vehicles and infantry in a combat zone? Are you forced to shoot at the vehicle, or does the homing rocket lock onto whichever target is closest, including infantry? Would this be solved by using the held trigger to load the secondary projectile for homing? If so, then this script approach could be used to apply what was done with bigass (I'm not sure exactly what that is).

...But doesn't Bigass already have its rocket launcher only lock onto vehicles?

I'm confused.
Edited by sparky on May 2, 2019 at 11:15 PM


The script lets you lock on to whatever object you specify, so you could make it target only vehicles with enemy drivers in them like H2. You have a small angle of vision to see the object.

If you have a rocket launcher, and if you can see the object, and if you press the trigger, it deletes the normal rocket and leaves the homing one. If you cant see the object and press the trigger, it deletes the homing rocket.

The problem with this is that looking away from the target and shooting again while the homing missile still exists will delete the homing missile. I was thinking of fixing this by making it a charged shot that can only be charged when the conditions above are true. This would also force you to look at the object for a small period of time before you can lock on.

You are forced to look directly at the object which means that infantry will probably not get in the way.
Edited by EcoSurge on May 3, 2019 at 02:12 AM

Halo CE General Discussion » Homing Missiles May 1, 2019 10:41 PM (Total replies: 6)

We can have a weapon shoot two different projectiles at once by having one projectiles creation effect spawn another. We load these projectiles into a global object definition and can manipulate them from there.


(script continuous lockon
(if (and (= (unit_has_weapon_readied (player0) "weapons\rocket launcher\rocket launcher") true)
(= (objects_can_see_object (player0) (unit (list_get (ai_actors red_banshee) 0)) 8) true)
)
(begin
(sound_looping_start "weapons\rocket launcher\locked" none 1.00)
(sleep_until (= (objects_can_see_object (player0) (unit (list_get (ai_actors red_banshee) 0)) 8) false))
(sound_looping_set_scale "weapons\rocket launcher\locked" 0)
)
)
)

(script continuous lockon2
(if (and (= (unit_has_weapon_readied (player0) "weapons\rocket launcher\rocket launcher") true)
(!= (objects_can_see_object (player0) (unit (list_get (ai_actors red_banshee) 0)) 16) true)
(= (player_action_test_primary_trigger) true)
)
(begin

(objects_delete_by_definition rocket2)
(player_action_test_reset)
)
)
(if (and (= (unit_has_weapon_readied (player0) "weapons\rocket launcher\rocket launcher") true)
(= (objects_can_see_object (player0) (unit (list_get (ai_actors red_banshee) 0)) 16) true)
)
(begin
(objects_delete_by_definition rocket)
(player_action_test_reset)
)
)
)



Vid:
https://youtu.be/cjw_42Ys3RY


Test map (updated):
https://mega.nz/#!RDICxIAD!4NZOdvwvNnyXgqomsTR-GnGdMdkDKG5zi4YGyqa0cvE
Edited by EcoSurge on May 1, 2019 at 11:27 PM
Edited by EcoSurge on May 1, 2019 at 11:32 PM


Quote: --- Original message by: Giro

04.23.19 20:00:39 sapien pc 01.00.00.0609 ----------------------------------------------
04.23.19 20:00:39 reference function: _write_to_error_file
04.23.19 20:00:39 reference address: 401b13
04.23.19 20:00:39 Couldn't read map file './sapienbeta.map'
04.23.19 20:00:39 CreateDevice succeeded with refresh rate = 0
04.23.19 20:00:39 Increasing sound decompression buffer size to 1048576 bytes
04.23.19 20:00:39 tag reference name too large (this tag is corrupted). [repeats 7 more times]
04.23.19 20:00:39 failed to load scenario tag 'levels\wintersmith\wintersmith'
04.23.19 20:00:39 need to get the following tags: [none]
04.23.19 20:00:39 game_load() failed.

I'm using regular sapien, though I know the map/scenario was made with HEK plus. I have an editted scripts.hsc ready that I would like to put in / replace for Jobalisk's Designation Wintersmith map. I also have no experience with tool.
Edited by Giro on Apr 23, 2019 at 09:47 PM


I had the same error after using regular sapien to edit a scenario previously edited with OS sapien. I would stop using HEK+ entirely for anything and re-extract the map you want to edit using refinery from the MEK.


Quote: --- Original message by: Masters1337
So I have to look into this and what we did in more detail, but how does this differ than our implementation of the sparrow hawk? I was never happy with how that turned out but we just ran out of time to further refine what we were doing, so I am very happy to see someone improve these types of things.


I saw that your script used player_action_test and I messed around with that. This doesn't use any devices, and is more simple.

We attach the flying biped to the vehicle at all times until the vehicle driver exists. When the vehicle driver exists, we magically load that unit into the flying biped, detach that biped from the vehicle and then attach the vehicle to it. The script sleeps until the flying biped driver no longer exists. When that happens the vehicle is detached from that biped, and that biped is attached to the vehicle.

This allows the flying biped to have physics when the driver doesn't exist (exiting that biped will make it fall, stuff can interact with it).

The second part of the script runs when the biped driver exists. It uses player_action_test_jump. When the player presses down the space bar, the script adds velocity to the biped and then uses player_action_test_reset. If the player holds down space then it will continuously add velocity to the biped.

Edit: On another note, I'm thinking about making dropships and other stuff like that into flying bipeds. That might be tremendously easier than using recorded/custom animations, and you have more flexibility with how they can behave.
Edited by EcoSurge on Apr 20, 2019 at 12:37 PM


Quote: --- Original message by: DeadHamster
Is there any way to give that vehicle physics when you're riding it?


I've tried before but it didnt work out. Hopefully I can think of something and I'm always open to ideas.


Quote: --- Original message by: sparky

Thanks! One step closer to emulating behavior in PlanetSide 2 and other open-space flight simulator games like Vendetta Online.
https://planetside.fandom.com/wiki/Liberator
https://www.vendetta-online.com/manual/gam_flight.html

EDIT: In terms of game engine, you basically just added a feature that revises a desired constraint that was determined to be cool by attaching the camera to the model marker's location. https://www.youtube.com/watch?v=_ENjQvnEAJ8

It can apply to first-person and third-person views, as one could see by switching the vehicle's driver view between first and third person options.

Now maybe do a script that toggles between first person and third person views. Has that been done? Could it be done by overwriting the bitmask value in memory? Food for thought.
Edited by sparky on Apr 19, 2019 at 09:30 AM


Glad you are showing interest. Tried my hand at it.


(if (and (!= (unit_get_health (redwasp0driver)) -1)
(= (player_action_test_zoom) 1)
)
(begin
(camera_set_first_person (player0))
(camera_control 1)
(player_action_test_reset)
(sleep_until (= (player_action_test_zoom) 1))
(camera_control 0)
(player_action_test_reset)
)
)


Edit: you would also check if the driver exists, and if they dont then we set the camera back to normal

Vid:
https://youtu.be/cxWDpLvMN_8
Edited by EcoSurge on Apr 19, 2019 at 01:32 PM


Inspired by CMT's use of player_action_test for the Sparrowhawk, I have redone my last thread about strafing flying type vehicles. They can now move up and down. Press the space bar to make the vehicle ascend or descend, unit flashlight state toggles between ascend and descend. Like before this is using a flying type biped to allow strafing.


(script static unit redwasp0driver (vehicle_driver redwasp0))
(script static unit redwasp0vehdriver (vehicle_driver redwasp0veh))

(script static unit bluewasp0driver (vehicle_driver bluewasp0))
(script static unit bluewasp1driver (vehicle_driver bluewasp1))
(script static unit bluewasp2driver (vehicle_driver bluewasp2))
(script static unit bluewasp3driver (vehicle_driver bluewasp3))
(script static unit bluewasp4driver (vehicle_driver bluewasp4))
(script static unit bluewasp5driver (vehicle_driver bluewasp5))
(script static unit bluewasp6driver (vehicle_driver bluewasp6))
(script static unit bluewasp7driver (vehicle_driver bluewasp7))

(script startup startstuff
(set developer_mode 127)

(object_create redwasp0veh)

(ai_disregard redwasp0 1)

(ai_disregard bluewasp0 1)
(ai_disregard bluewasp1 1)
(ai_disregard bluewasp2 1)
(ai_disregard bluewasp3 1)
(ai_disregard bluewasp4 1)
(ai_disregard bluewasp5 1)
(ai_disregard bluewasp6 1)
(ai_disregard bluewasp7 1)

)

(script continuous wasp_gravity
(objects_attach redwasp0 "" redwasp0veh "")
(if (= (unit_get_health (redwasp0driver)) -1)
(begin
(objects_detach redwasp0 redwasp0veh)
(objects_attach redwasp0veh "" redwasp0 "")
(sleep_until (!= (unit_get_health (redwasp0driver)) -1))
(objects_detach redwasp0veh redwasp0)
(objects_attach redwasp0 "" redwasp0veh "")
)
)


)


(script continuous wasp_load
(if (!= (unit_get_health (redwasp0vehdriver)) -1)
(begin
(vehicle_load_magic redwasp0 "driver" (redwasp0vehdriver))
)
)


)

(script continuous wasp_updown
(if (and (!= (unit_get_health (redwasp0driver)) -1)
(= (unit_get_current_flashlight_state redwasp0) 0)
(= (player_action_test_jump) 1)

)
(begin
(object_data_set_real redwasp0 transitional_velocity z 0.3)
(player_action_test_reset)
)
)

(if (and (!= (unit_get_health (redwasp0driver)) -1)
(!= (unit_get_current_flashlight_state redwasp0) 0)
(= (player_action_test_jump) 1)

)
(begin
(object_data_set_real redwasp0 transitional_velocity z -0.3)
(player_action_test_reset)
)
)
)


Test map:
https://drive.google.com/open?id=1Cy6lBuz6RrFrwUechpSXqRzXvO9tvJA7

Use the wasp that spawns on the bridge, the others are not set up for gravity yet.

Vid:
https://youtu.be/9nWYha-egus

Edited by EcoSurge on Apr 16, 2019 at 06:37 PM

Halo CE General Discussion » AI Followers Redo Apr 6, 2019 03:27 AM (Total replies: 0)

Vastly improved over my previous thread. Its now very easy to get AI followers up and running in your map. I can post an update with even more improvements soon.

We have an encounter called "follow", we tell units in this encounter to constantly enter the player with "ai_go_to_vehicle". When the AIs we want to follow us get too far away, we migrate them to the "follower" encounter, and when the unit gets close to us, we migrate them back to their normal encounter.


(global short IndexMarines 0)

(global unit marineman (unit (list_get (ai_actors cyborgs) IndexMarines)))
(global unit marinemanfollower (unit (list_get (ai_actors follow) IndexMarines)))

(script continuous SetMarineMan
(set marineman (unit (list_get (ai_actors cyborgs) IndexMarines)))
)

(script continuous SetMarineManFollower
(set marinemanfollower (unit (list_get (ai_actors follow) IndexMarines)))
)

(script continuous follow
(if (or (and (> (objects_distance_to_object (player0) marineman) 4)
(< (ai_status cyborgs) 3)
)
(> (objects_distance_to_object (player0) marineman) 12)
)
(begin
(ai_migrate_by_unit marineman follow)
)
)

(if (< (objects_distance_to_object (player0) marinemanfollower) 4)
(begin
(ai_migrate_by_unit marinemanfollower cyborgs)
)
)

(set IndexMarines (+ IndexMarines 1))
(if (< 7 IndexMarines)
(set IndexMarines 0)
)

)

(script continuous follow2
(ai_go_to_vehicle_override follow (player0) "")
(ai_command_list follow look)
)


Test map:
EDIT: Better map
https://mega.nz/#!1fgTUCYZ!ZY2ialQyn1lcdNg9LGUIbMLbgXwS42EZ0QMTxoXTUu4

Vid:
https://youtu.be/Lm0WcMilPzg
Edited by EcoSurge on Apr 6, 2019 at 05:21 AM

Halo CE General Discussion » AI DowAI Down and Revival Apr 4, 2019 05:39 AM (Total replies: 1)

We make custom seats for the marines when their health goes below a certain point, make them impervious so they don't play unwanted animations, and make them brain-dead so they don't try anything. If the player is by these units then a control is attached to them that we can activate which makes them normal again.


(global unit marineman (unit (list_get (ai_actors cyborgs) IndexMarines)))

(script continuous SetMarineMan
(set marineman (unit (list_get (ai_actors cyborgs) IndexMarines)))
)

(script continuous down
(if (< (unit_get_health marineman) 0.5)
(begin
(unit_set_seat marineman asleep)
(ai_braindead_by_unit marineman 1)
(unit_impervious (list_get (ai_actors cyborgs) IndexMarines) 1)
)
)
(if (and (< (objects_distance_to_object (player0) marineman) 1)
(< (unit_get_health marineman) 0.5)
(= (device_get_position control0) 0)
)
(begin
(objects_attach marineman "" control0 "")
(objects_detach marineman control0)
)
)

(if (and (< (objects_distance_to_object (player0) marineman) 1)
(< (unit_get_health marineman) 0.5)
(!= (device_get_position control0) 0)
)
(begin
(camera_set_dead (player0))
(camera_control 1)
(sleep 30)
(unit_set_current_vitality marineman 51 (unit_get_shield marineman))
(unit_set_seat marineman stand)
(ai_braindead_by_unit marineman 0)
(unit_impervious (list_get (ai_actors cyborgs) IndexMarines) 0)
(sleep 90)
(camera_control 0)
(device_set_position_immediate control0 0)
)
)
(set IndexMarines (+ IndexMarines 1))
(if (< 3 IndexMarines)
(set IndexMarines 0)
)

)


Test map:
https://mega.nz/#!5LpBRKLR!ZDrEV8yy0Zz62hMExTE2y7A6lIZ6JyoUP8Bco8mI5t8

Vid:
https://youtu.be/FbsTmeb04Eo
Edited by EcoSurge on Apr 4, 2019 at 05:43 AM

Halo CE General Discussion » AI Vehicle Hijacking Apr 4, 2019 02:46 AM (Total replies: 2)

We create a seat that only exists when the driver exists with the "not valid without driver" bitmask, we tell the ai to go to this seat when the driver exists and is the player.

(= (vehicle_test_seat g0 "G-driver" (player0)) 1)

We duplicate the driver seat and change the label to "boarded", uncheck the driver bitmask from this seat. We have another seat called "boarder" with the right markers and animations to board the vehicle, this seat also needs the driver bitmask checked for this to work. We have two drivers when the player is being boarded. The first driver (player) is loaded into the "boarded" seat and is no longer the driver, thus the "boarder" becomes the real driver, and we can manipulate the driver like before with (g0_driver) to load that boarder into the normal driver seat. The unit in the "boarded" seat has an exit animation that ejects them.

Thank CMT for the tags related. I will post updates in this thread.



(global short IndexMarinesHijack 0)

(script startup startstuff
(set developer_mode 127)
(sleep 60)
(set playerman0 (unit (list_get (players) 0)))
(object_create g0)
(object_create g0b)
)


(script static unit g0_driver (vehicle_driver g0))
(script static unit g0b_driver (vehicle_driver g0b))

(script continuous hijack_player
(sleep 15)
(if (and (= (vehicle_test_seat g0 "G-driver" (player0)) 1)
(< (objects_distance_to_object (g0_driver) (unit (list_get (ai_actors cyborgs) IndexMarinesHijack))) 4)
(!= (ai_status cyborgs) 1)
(!= (ai_status cyborgs) 2)
)
(begin
(ai_go_to_vehicle_override cyborgs g0 "ghost-board-side")
)
)

(if (and (= (vehicle_test_seat g0 "G-driver" (player0)) 1)
(= (vehicle_test_seat_list g0 "ghost-board-side" (ai_actors cyborgs)) 1)
(!= (ai_status cyborgs) 1)
(!= (ai_status cyborgs) 2)
)
(begin
(sleep 15)
(vehicle_load_magic g0 "G-driver-boarded" (player0))
(unit_exit_vehicle (player0))
(vehicle_load_magic g0 "driver" (g0_driver))
)
)

(set IndexMarinesHijack (+ IndexMarinesHijack 1))
(if (< 4 IndexMarinesHijack)
(set IndexMarinesHijack 0)
)

)


Test map:
https://mega.nz/#!RbolWC6B!3oU7DakTKS9vxRXTzCu15rg4BNnaXxSGKYNSuD2u44A

Vid:
https://youtu.be/-h87tfd4SfQ
Edited by EcoSurge on Apr 4, 2019 at 03:10 AM

Halo CE General Discussion » Vehicle Boosting Apr 2, 2019 05:16 PM (Total replies: 3)

We can load the vehicle into another custom vehicle based on unit flashlight state.

Edit: Better vid
https://youtu.be/P-b9N8exDUE

Test map:
https://mega.nz/#!9LJ1CawQ!TTeA7mZzZH2nQ0fuomkyLqamspf88WprdpbEUTias5w


(script startup startstuff
(set developer_mode 127)
(sleep 60)
(set playerman0 (unit (list_get (players) 0)))
(object_create g0b)
)


(script static unit g0_driver (vehicle_driver g0))
(script static unit g0b_driver (vehicle_driver g0b))

(script continuous loadinit
(if (!= (unit_get_health (g0b_driver)) -1)
(begin
(recording_play (player0) boost2)
(sleep -1)
)
)
)

(script continuous load
(objects_attach g0 "" g0b "")
(object_data_save_vector g0 transitional_velocity 0)
(if (= (unit_get_current_flashlight_state g0) true)
(begin
(objects_detach g0 g0b)
(vehicle_load_magic g0b "" g0)
(object_data_set_vector g0b transitional_velocity 0)
(object_set_collideable g0b true)
(sleep_until (or (= (unit_get_health (g0_driver)) -1)
(= (unit_get_current_flashlight_state g0b) true)
))
(object_set_collideable g0b false)
(vehicle_unload g0b "")
(object_set_collideable g0 true)

)
)

)

Edited by EcoSurge on Apr 2, 2019 at 05:35 PM

Halo CE General Discussion » walk on moving stuff early idea Apr 2, 2019 08:38 AM (Total replies: 6)

Quote: --- Original message by: Erutypus
Quote: --- Original message by: EcoSurge
They dont see the scarab and will walk right off if they want to.

Could you make some invisible walls that only effect the AI?


I tried something like that with bipeds the AI could detect attached at certain spots. It didnt work out. I was thinking of using recorded animations to give the AI pathfinding on non-bsp, when the AI goes to uncover or search, we detect where they are on the scarab with a biped and "objects_can_see_object", then play the right recorded anims.
Edited by EcoSurge on Apr 2, 2019 at 08:38 AM

Halo CE General Discussion » walk on moving stuff early idea Apr 2, 2019 04:20 AM (Total replies: 6)

Glad people are showing interest in these. I did fix that problem with the device physics by using two devices. The problem I have right now with this is that rotating will not stick the objects on it. Moving front back left and right works fine but any rotation will not carry the player or anything. Also because AI cant pathfind on anything but the BSP, I have to tell the game they are flying by checking the flying bitmask in the actor tag. They dont see the scarab and will walk right off if they want to. I'll probably make a better topic on this.


Time: Mon June 17, 2019 7:50 PM 407 ms.
A Halo Maps Website