Jump to content

OGR Scripting


GRIM-GENERAL

Recommended Posts

I followed Grin Everts [GR] Tutorial on making a mp coop [GR] mission.

Can anybody tell me whats wrong with this?

I placed three enemies on the map and named the groups for the enemy

enemy01, enemy02, enemy03.

I placed two zones Alpha"Base1" and Bravo "Base2"

I placed three areas using default names area1, area2, area3

Added the AI Graph and exported. Then I modified the script

I'm trying to make it spawn enemy01 at start game in area1

When a player enters area1 I want it to activate enemy02 in area2.

When a player enters area2 I want it to activate enemy03 in area3

When I load the map it crashes with this error:

Crash in application version: grpcrc1.30

data\lib\managers\eventmanager.dsf(-1): cant find member: activate in type <void>

SCRIPT STACK

data\lib\managers\eventmanager.dsf(0)

data\lib\managers\eventmanager.dsf(0)

data\lib\managers\eventmanager.dsf(0)

data\lib\managers\eventmanager.dsf(0)

data\lib\managers\eventmanager.dsf(0)

data\lib\managers\worldmanager.dsf(0)

data\lib\setups\setup.dsf(0)

data\levels\custom_levels\grimdedustv2ogr\grimdedustv2ogr.dsf(27)

The script I have made looks like this:

"the xml bit is in my script I just didnt paste the top line"

<World>

<!-- World -->

<load_scene file="/data/levels/custom_levels/grimdedustv2ogr/grimdedustv2ogr.diesel" use_lightset="true" materials="/data/levels/custom_levels/grimdedustv2ogr/materials.xml">

<object name="world_bb" hidden="true"/>

<object name="room01" hidden="true"/>

<object name="Plane01" hidden="true"/>

<global_ambient color="60 60 40"/>

</load_scene>

<load_scene file="/data/objects/lens/normal_lens.diesel">

<object name="normal_lens" hidden="true"/>

</load_scene>

<load_scene file="/data/objects/lens/zoom_lens.diesel">

<object name="zoom_lens" hidden="true"/>

</load_scene>

<script_data>

<xi:include href="/data/levels/common/common.xml#xpointer(/common/*)"/>

<area_group name="enemy02" area_name="area2" group="mp_players" interval="0.3" condition="1"/>

<area_group name="enemy03" area_name="area3" group="mp_players" interval="0.3" condition="1"/>

<user name="user" type="once">

<trigger type="UnitInArea" area="area1"/>

<event name="activate_enemy02"/>

</user>

<user name="user" type="once">

<trigger type="UnitInArea" area="area2"/>

<event name="activate_enemy03"/>

</user>

<event name="start_game">

<element type="ActivateGroup" group_id="enemy01" start_time="2"/>

<element type="ActivateGroup" group_id="enemy02" start_time="2"/>

<element type="ActivateGroup" group_id="enemy03" start_time="2"/>

<element type="UnitInArea" area="area1" state="activate" start_time="3"/>

<element type="UnitInArea" area="area2" state="activate" start_time="3"/>

</event>

<player name="player1" mod_name="OnFoot">

<spawn unit_name="ghost_player" object="spawn_player1"/>

</player>

<player name="player2" mod_name="OnFoot">

<spawn unit_name="ghost_player" object="spawn_player2"/>

</player>

<player name="player3" mod_name="OnFoot">

<spawn unit_name="ghost_player" object="spawn_player3"/>

</player>

<player name="player4" mod_name="OnFoot">

<spawn unit_name="ghost_player" object="spawn_player4"/>

</player>

<gametype_info name="enemies_to_kill" value="3"/>

<spawn_manager>

<!--<xi:include href="/data/levels/merge_xml/common_spawn.xml#xpointer(/to_include/spawn/*)"/> -->

</spawn_manager>

</script_data>

</World>

Edited by GRIM-GENERAL
Link to comment
Share on other sites

its the scripting for the spawning and line tripping of the area... its not right.

I dont have the time to look at it right now. maybe i will later or ducky can.

but just off the top of my head you dont have everything named, some of the stuff still says "area1" instead of the name of your patrol(s) and you dont have any deactivates after the activate lines

don't worry.. it seems no one understands the tutorial or the editor. both are crap in my opinion.

Edited by JasonFMX
Link to comment
Share on other sites

Ok, I worked this problem out for ya man. The first thing I noticed that you did work is this:

Added the AI Graph and exported. Then I modified the script

Next set up your area like I have in this picture.

mapoe4.th.png

you will see area1, small, just around the set of guys you want to spawn first <enemy01>. Then you make area 2 just cross a long long section of the map like shown. It doesn't have to be around the next set of guys, <enemy02> in order for this to work. Now set up area 3 around the the next set of guys <enemy2> to have <enemy3> spawn when you enter <enemy2>'s area just like my picture shows. Now <enemy3> does not need an area around it because you wont have anything else to trigger after <enemy3>.

Now for the scripting. This one actually took me a while to remember because I don't have anyone spawning right at the start of my map and I do thank you for getting me to do this, because Im going to need this for my next one. But your script should look like this exactly unless you changed area names, and group id's on your guys.

<?xml version="1.0" encoding="ISO-8859-1"?>

<World>

	<!-- World -->

	<load_scene file="/data/levels/custom_levels/my_level/my_level.diesel" use_lightset="true" materials="/data/levels/custom_levels/my_level/materials.xml">


		<object name="world_bb" hidden="true"/>


		<object name="room01" hidden="true"/>

		<object name="Plane01" hidden="true"/>


		<global_ambient color="60 60 40"/>


	</load_scene>


	<load_scene file="/data/objects/lens/normal_lens.diesel">

		<object name="normal_lens" hidden="true"/>

	</load_scene>

	<load_scene file="/data/objects/lens/zoom_lens.diesel">

		<object name="zoom_lens" hidden="true"/>

	</load_scene>


	<script_data>


		<xi:include href="/data/levels/common/common.xml#xpointer(/common/*)"/>


		<!--<area_group name="area1" area_name="area1" group="mp_players" interval="0.3" condition="1"/>-->

		<area_group name="area1" area_name="area1" group="mp_players" interval="0.3" condition="1"/>

		<area_group name="area2" area_name="area2" group="mp_players" interval="0.3" condition="1"/>

		<area_group name="area3" area_name="area3" group="mp_players" interval="0.3" condition="1"/>


		<!--<user name="user" type="once">

			<trigger type="UnitInArea" area="area1"/>

			<event name="event"/>

		</user>-->



		<user name="enemy01" type="once">

			<trigger type="UnitInArea" area="area1"/>

			<event name="enemy01"/>

		</user>


		<user name="enemy02" type="once">

			<trigger type="UnitInArea" area="area2"/>

			<event name="enemy02"/>

		</user>


		<user name="enemy03" type="once">

			<trigger type="UnitInArea" area="area3"/>

			<event name="enemy03"/>

		</user>


		<event name="start_game">

		<element type="ActivateGroup" group_id="enemy01" start_time="1"/>

		<element type="UnitInArea" area="area2" state="activate" start_time="1"/>

		<element type="UnitInArea" area="area3" state="activate" start_time="1"/>


		</event>


		<event name="enemy01">

			<element type="ActivateGroup" group_id="enemy01" start_time="1.0"/>

			<element type="UnitInArea" area="area1" state="deactivate"/>

		</event>



		<event name="enemy02">

			<element type="ActivateGroup" group_id="enemy02" start_time="1.0"/>

			<element type="UnitInArea" area="area2" state="deactivate"/>

		</event>


		<event name="enemy03">

			<element type="ActivateGroup" group_id="enemy03" start_time="1.0"/>

			<element type="UnitInArea" area="area3" state="deactivate"/>

		</event>


		<player name="player1" mod_name="OnFoot">

			<spawn unit_name="ghost_player" object="spawn_player1"/>

		</player>

		<player name="player2" mod_name="OnFoot">

			<spawn unit_name="ghost_player" object="spawn_player2"/>

		</player>

		<player name="player3" mod_name="OnFoot">

			<spawn unit_name="ghost_player" object="spawn_player3"/>

		</player>

		<player name="player4" mod_name="OnFoot">

			<spawn unit_name="ghost_player" object="spawn_player4"/>

		</player>



		<gametype_info name="enemies_to_kill" value="65"/>


		<spawn_manager>

			<!--<xi:include href="/data/levels/merge_xml/common_spawn.xml#xpointer(/to_include/spawn/*)"/> -->

		</spawn_manager>


	</script_data>

</World>

Now that should get the area1 guys to spawn at the start of the map. and then when you cross area2 which is also around area1 guys, you will get the enemy2 guys to spawn and as you walk into area3, which is around the enemy2 guys, you will spawn enemy3 guys. If you want to go test that out to make sure I got that right go ahead and come back and let me know.

-Ducky-

Edited by Evilducky
Link to comment
Share on other sites

Added the AI Graph and exported. Then I modified the script

No one mentioned this, so I thought I would:

I think you need to edit the script before you export. I understood that the exporting process bundles the script into the bundle file. Therefore, even if the script was modified to be correct, it woudn't be in the bundle if you export before editing.

Ducky, can you confirm this?

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...