ProjectsWhat's NewDownloadsCommunitySupportCompany
Forum Index » S.T.A.L.K.E.R.: Shadow of Chernobyl Forum » Mod discussion
Of smart terrains, space restrictors and gulags

1 2 3 4 5 6 ... 13 | Next 10 events »| All Messages
Posted by/on
Question/AnswerMake Newest Up Sort by Descending
  21:17:56  25 January 2011
profilee-mailreply Message URLTo the Top
Kaidonni
First the Zone, then the world!
(Resident)

 

 
On forum: 08/30/2008
Messages: 1072
Of smart terrains, space restrictors and gulags

Okay, so I've figured out smart terrains, edited gulag_escape.ltx and gulag_escape.script, but all for a monster spawn. Now I'm on to spawning soldiers to esc_bridge. Only problem is, while I can spawn them, they won't obey the logic I've put into gulag_escape.ltx to follow their waypoints. I've got three entries in gulag_escape.script, the ones for their logic. They've got a number of waypoints also. The thing is, I have no idea what I'm doing even having read the tutorial on smart terrains, not for the waypoint thing anyway (they are certainly attached to the correct smart terrain, one soldier didn't respond to me in a hostile manner after I paid the bridge commander in a test).

On top of that, what of spawns to a smart terrain when there is no initial spawn? I'm putting a Pseudogiant into the Cordon, and I don't want it there from the get-go. I've got a smart terrain, I've got the gulag_escape.ltx entry (although I changed it to general_lair), and I've got a respawner...am I missing anything, or will one spawn eventually?
  05:56:48  26 January 2011
profilee-mailreply Message URLTo the Top
Vintar
a bit of this and a lot of that
(Resident)

 

 
On forum: 08/08/2008
Messages: 6349
For esc_bridge, not sure you have to but did you increase the smart terrain capacity?
As for the giant. Easiest thing is to have a spawn condition ie: add this to logic
[spawner]
cond = {+has_my_info}
  12:53:42  26 January 2011
profilee-mailreply Message URLTo the Top
Kaidonni
First the Zone, then the world!
(Resident)

 

 
On forum: 08/30/2008
 

Message edited by:
Kaidonni
01/26/2011 12:54:51
Messages: 1072
I didn't at first, but then once I realised this, I changed it to 9 (it was 6, and by the looks of the all.spawn I am using, there were 6 possible NPCs that could be spawned - my three increased it to 9). I'll post the actual entries I've made...

EDIT: Damn smiley faces...ignore those. They don't appear in my files . If they did, then there really would be something wrong...

In the all.spawn alife_l01_escape.ltx file:

---QUOTATION---

[928]
; cse_abstract properties
section_name = stalker
name = esc_bridge_soldier6
position = 129.81861877441,20.195039749146,161.47930908203
direction = 0,0.0479119718074799,-0.120960518717766

; cse_alife_trader_abstract properties
money = 5000
character_profile = esc_soldier_regular

; cse_alife_object properties
game_vertex_id = 240
distance = 14
level_vertex_id = 433753
object_flags = 0xffffffbf
custom_data = <<END
[smart_terrains]
esc_bridge = true
END

; cse_visual properties
visual_name = actors\soldier\soldier_bandana_4

; cse_alife_creature_abstract properties
g_team = 0
g_squad = 1
g_group = 2
health = 1
dynamic_out_restrictions =
dynamic_in_restrictions =

upd:health = 1
upd:timestamp = 0
upd:creature_flags = 0
upd osition = 129.81861877441,20.195039749146,161.47930908203
upd _model = 0
upd _torso = 0.0479119718074799,-0.120960518717766,0
upd:g_team = 0
upd:g_squad = 1
upd:g_group = 2

; cse_alife_monster_abstract properties

upd:next_game_vertex_id = 65535
upd rev_game_vertex_id = 65535
upd:distance_from_point = 0
upd:distance_to_point = 0

; cse_alife_human_abstract properties
predicate5 = 0,0,0,1,0
predicate4 = 1,1,1,1

; cse_ph_skeleton properties

upd:start_dialog =

; se_stalker properties

[929]
; cse_abstract properties
section_name = stalker
name = esc_bridge_soldier7
position = 126.84487915039,19.889032363892,163.25434875488
direction = 0,0.0479119718074799,-0.120960518717766

; cse_alife_trader_abstract properties
money = 5000
character_profile = esc_soldier_regular

; cse_alife_object properties
game_vertex_id = 240
distance = 14
level_vertex_id = 430680
object_flags = 0xffffffbf
custom_data = <<END
[smart_terrains]
esc_bridge = true
END

; cse_visual properties
visual_name = actors\soldier\soldier_bandana_3

; cse_alife_creature_abstract properties
g_team = 0
g_squad = 1
g_group = 2
health = 1
dynamic_out_restrictions =
dynamic_in_restrictions =

upd:health = 1
upd:timestamp = 0
upd:creature_flags = 0
upd osition = 126.84487915039,19.889032363892,163.25434875488
upd _model = 0
upd _torso = 0.0479119718074799,-0.120960518717766,0
upd:g_team = 0
upd:g_squad = 1
upd:g_group = 2

; cse_alife_monster_abstract properties

upd:next_game_vertex_id = 65535
upd rev_game_vertex_id = 65535
upd:distance_from_point = 0
upd:distance_to_point = 0

; cse_alife_human_abstract properties
predicate5 = 0,0,0,1,0
predicate4 = 1,1,1,1

; cse_ph_skeleton properties

upd:start_dialog =

; se_stalker properties

[930]
; cse_abstract properties
section_name = stalker
name = esc_bridge_soldier8
position = 128.01405334473,19.839218139648,158.3790435791
direction = 0,0.0479119718074799,-0.120960518717766

; cse_alife_trader_abstract properties
money = 5000
character_profile = esc_soldier_regular

; cse_alife_object properties
game_vertex_id = 240
distance = 14
level_vertex_id = 432198
object_flags = 0xffffffbf
custom_data = <<END
[smart_terrains]
esc_bridge = true
END

; cse_visual properties
visual_name = actors\soldier\soldier_bandana_3

; cse_alife_creature_abstract properties
g_team = 0
g_squad = 1
g_group = 2
health = 1
dynamic_out_restrictions =
dynamic_in_restrictions =

upd:health = 1
upd:timestamp = 0
upd:creature_flags = 0
upd osition = 128.01405334473,19.839218139648,158.3790435791
upd _model = 0
upd _torso = 0.0479119718074799,-0.120960518717766,0
upd:g_team = 0
upd:g_squad = 1
upd:g_group = 2

; cse_alife_monster_abstract properties

upd:next_game_vertex_id = 65535
upd rev_game_vertex_id = 65535
upd:distance_from_point = 0
upd:distance_to_point = 0

; cse_alife_human_abstract properties
predicate5 = 0,0,0,1,0
predicate4 = 1,1,1,1

; cse_ph_skeleton properties

upd:start_dialog =

; se_stalker properties

[931]
; cse_abstract properties
section_name = space_restrictor
name = escape_bridge_patrol
position = 179.70855712891,20.200191497803,182.37139892578
direction = 0,0,0

; cse_alife_object properties
game_vertex_id = 0
distance = 0
level_vertex_id = 481460
object_flags = 0xfffffffe

; cse_shape properties
shapes = shape0
shape0:type = box
shape0:axis_x = 150,0,0
shape0:axis_y = 0,10,0
shape0:axis_z = 0,0,150
shape0 ffset = 0,0,0

; cse_alife_space_restrictor properties
restrictor_type = 0
---END QUOTATION---



In the way_l01_escape.ltx file...


---QUOTATION---
[esc_bridge_day_patrol_look1]
points = p0,p1
p0:name = wp00|a=guard
p0:flags = 0x1
p0 osition = 129.65994262695,20.193014144897,161.58546447754
p0:game_vertex_id = 240
p0:level_vertex_id = 433753
p0:links = p1(1)

p1:name = wp01|a=guard
p1:flags = 0x2
p1 osition = 219.4727935791,20.197284698486,201.95442199707
p1:game_vertex_id = 148
p1:level_vertex_id = 511250


[esc_bridge_day_patrol_walk1]
points = p0,p1,p2
p0:name = wp00|a=patrol
p0:flags = 0x1
p0 osition = 129.75164794922,20.197113037109,161.31021118164
p0:game_vertex_id = 240
p0:level_vertex_id = 433752
p0:links = p1(1)

p1:name = wp01|a=patrol
p1 osition = 135.87490844727,20.19898223877,163.11978149414
p1:game_vertex_id = 241
p1:level_vertex_id = 440393
p1:links = p0(1),p2(1)

p2:name = wp02|a=patrol
p2 osition = 219.4727935791,20.197284698486,201.95442199707
p2:game_vertex_id = 148
p2:level_vertex_id = 511250
p2:links = p1(1)
---END QUOTATION---



In gulag_escape.ltx (above the rest of the logic for the soldiers on the bridge)...


---QUOTATION---
[logic@esc_bridge_patrol1]
active = patrol@esc_bridge_day_patrol_commander

[patrol@esc_bridge_day_patrol_commander]
path_walk = day_patrol_walk1
path_look = day_patrol_look1
formation = back
commander = true


[logic@esc_bridge_follower1]
active = patrol@esc_bridge_day_patrol_follower1

[patrol@esc_bridge_day_patrol_follower1]
path_walk = day_patrol_walk1
path_look = day_patrol_look1
formation = back
commander = false


[logic@esc_bridge_follower2]
active = patrol@esc_bridge_day_patrol_follower2

[patrol@esc_bridge_day_patrol_follower2]
path_walk = day_patrol_walk1
path_look = day_patrol_look1
formation = back
commander = false
---END QUOTATION---



And finally, in gulag_escape.script (after the rest of the logic@escape_bridge_blah-blah stuff)...


...
		table.insert(sj, t)
		t = { section = "logic@esc_bridge_patrol1",
			idle = 0,
			prior = 8, state = {1},
			in_rest = "", out_rest = "esc_bridge_patrol_restrictor"
		}
		table.insert(sj, t)
		t = { section = "logic@esc_bridge_follower1",
			idle = 0,
			prior = 7, state = {1},
			in_rest = "", out_rest = "esc_bridge_patrol_restrictor"
		}
		table.insert(sj, t)
		t = { section = "logic@esc_bridge_follower2",
			idle = 0,
			prior = 7, state = {1},
			in_rest = "", out_rest = "esc_bridge_patrol_restrictor"
		}
	end

  13:28:57  26 January 2011
profilee-mailreply Message URLTo the Top
Vintar
a bit of this and a lot of that
(Resident)

 

 
On forum: 08/08/2008
 

Message edited by:
Vintar
01/26/2011 13:29:37
Messages: 6349
Try change their state to 0 IE: state = {0}

You have told them what to do at night {1} and not in the day {0}

EDIT: to stop the smilies, use pre and /pre instead of quote.
  13:47:03  26 January 2011
profilee-mailreply Message URLTo the Top
Kaidonni
First the Zone, then the world!
(Resident)

 

 
On forum: 08/30/2008
 

Message edited by:
Kaidonni
01/26/2011 13:57:19
Messages: 1072
Just tried that, no luck. I'm trying to alter the structure of gulag_escape.ltx so the entries are at the end of the esc_bridge section, like they are in gulag_escape.script (maybe that messed it up?).

EDIT: Now it seems to be working, at least partially. Two of the soldiers, after initially looking like they were about to walk off, circle around and then walk along the railroad, just like I want (although they only seem to stop and look around at the train car near the bridge, they simply turn back at the other end near the breach in the fence). I need more waypoints I suppose if I want them to more closely follow the railroad bend, although there's probably no way to stop them from walking right on top of the metal railing (the waypoints are just a rough guide, aren't they?). Next thing is to get them to stop when they are are the end of their patrol, and also to get the third guy doing his job...but how? Why are only two doing their job?
  13:58:40  26 January 2011
profilee-mailreply Message URLTo the Top
Vintar
a bit of this and a lot of that
(Resident)

 

 
On forum: 08/08/2008
 

Message edited by:
Vintar
01/26/2011 14:06:52
Messages: 6349
here where you had this in the look_path :
p1:name = wp01|a=guard
p1:flags = 0x2


Theres no mention of flag 0x2 in any path_walk, but I dunno if this is a problem.

EDIT: also dunno if it will matter but usually there will be :

squad = squad, groups = groups[1],

included when doing table.insert(sj, t)
  14:25:52  26 January 2011
profilee-mailreply Message URLTo the Top
Kaidonni
First the Zone, then the world!
(Resident)

 

 
On forum: 08/30/2008
Messages: 1072
Ah, yes, because I copied and pasted the basic waypoint structure from the Blockpost patrol, and deleted some of the waypoints before I put in the new co-ordinates, I ended up deleting the final waypoint which references 0x2...which is why they don't stop and look. Ouch. Ah, it also demonstrates how to get NPCs to look in the middle of a patrol, and not just at the beginning and ending (I was wondering how to get NPCs to stop in the very middle of a patrol and look somewhere, it must be the flags...lol).

However, as for the squads and groups thing, there isn't any of that for the Blockpost patrol in gulag_escape.script...unless my third guy is behind the hill and still tagging along? Gonna test that now, just in case I only need to tweak their spawning positions. I spawn them virtually on top of the first waypoint...no wonder - since I spawn the actor nearby for convenience in testing - they appear to not follow their path in the beginning (however, previously, they didn't follow their path at all).
  14:32:02  26 January 2011
profilee-mailreply Message URLTo the Top
Vintar
a bit of this and a lot of that
(Resident)

 

 
On forum: 08/08/2008
 

Message edited by:
Vintar
01/26/2011 14:38:51
Messages: 6349
Yeah if you spawn too close to them they might stop what theyre doing and focus on you.

EDIT: and I`ll say it again : its easier in SDK
  14:40:55  26 January 2011
profilee-mailreply Message URLTo the Top
crucifist
(Senior)
 
On forum: 12/14/2009
 

Message edited by:
crucifist
01/26/2011 14:41:36
Messages: 105

---QUOTATION---
Yeah if you spawn too close to them they might stop what theyre doing and focus on you.

EDIT: and I`ll say it again : its easier in SDK
---END QUOTATION---



With the SK, you can create smart terrain, gulag and logics bound to it? I don't know how works the SDK, but it is a multi-SDK, doesn't it?
  14:45:01  26 January 2011
profilee-mailreply Message URLTo the Top
{imperialreign}
Звуковой Шаман
(Resident)

 

 
On forum: 10/29/2008
Messages: 3075
Just to throw this out, too - I've found with some ST that you need to have the capacity sometimes 2 or 3 higher than the actual number of NPCs you intend to assign there.

I had a similar issue at the bandit_fabrika and blokpost ST, and ended up with a few NPCs that just stood around the St point like they had nothing to do - even though there were additional patrols and kamper logics for them.


I think what happens in these instances is that NPCs are spawned onto different maps, and the engine assigns them to that ST if it's the only one with available slots . . . they just haven't arrived yet, so the ST keeps those slots open, and everyone else there just stands around. Not sure on this, though

If that is the case, you might be able to get around it by creating a new faction type that's used only for that ST. Change all the NPCs spawning there to that faction, set the ST to only accept this new faction, and throw in a respawn point (how I got around the issue at the blokpost).
 
Each word should be at least 3 characters long.
Search:    
Search conditions:    - spaces as AND    - spaces as OR   
 
Forum Index » S.T.A.L.K.E.R.: Shadow of Chernobyl Forum » Mod discussion
 

All short dates are in Month-Day-Year format.


 

Copyright © 1995-2020 GSC Game World. All rights reserved.
This site is best viewed in Internet Explorer 4.xx and up and Javascript enabled. Webmaster.
Opera Software products are not supported.
If any problem concerning the site functioning under Opera Software appears apply
to Opera Software technical support service.