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 ... 13
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).
  15:14:04  26 January 2011
profilee-mailreply Message URLTo the Top
gannebamm
has abondened XRay and uses Unity3D now
(Resident)

 

 
On forum: 05/02/2007
 

Message edited by:
gannebamm
01/26/2011 15:14:51
Messages: 1077

---QUOTATION---

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).
---END QUOTATION---


This is very likely. SHOC´s spawners only spawn there npcs/mutants if there is any job for them in the zone (so in any level). The job itself is blocked after that so no other npc could enter it.
To get rid of this there are two chances:
1. higher the capacity
- - It´s not the good way, since other npc are "attracted/bound" to the smart which travel to it, but wont find a real job there. This will result in weird npc behaviour at the smart terrain. Otherwise its quite cool to see many npcs travelling to the same smartie. stalker aliVe had done this with some smarts, but also opened them up for more communities (factions) which mostly are hostile to each other ( so mostly will highly reduce the npcs which actually will do a job at the smart site) [multi-gulag feature and advanced smartterrains, aliVe 1.4]
2. make youre new jobs exclusive to your new npcs
- - How to do this? Look into the logic wiki section and/or look into wolves job. With this way you wont get more npcs at the smart as it actually had jobs to offer.

gbamm
  15:15:41  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 15:17:06
Messages: 1072
Strange...the one NPC attacks me on sight, the other two ignore me even if I approach them on the railroad and haven't paid the bridge toll (maybe I need to extend the kill zone restrictor? Only, I haven't got the SDK, can't mess around with the compatibility toolkit, so messing with the size of the kill zone will confuse me no end...).

Perhaps the solution is to make one of them have the necessary logic for the toll? Then if I try to pass them, then they'll shoot...

EDIT: By making the new jobs exclusive...will these NPCs still respawn the same?
  15:23:37  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
You can add this to their logic :

combat_ignore_cond = {+escape_bridge_pass_fire} (I think its called that)

To assign an NPC to a specific job you will use "predicate" check smart terrain tutorial for this. They will have to have a unique name or story id or something to get them with.

Yup they will still spawn at the same time as long as the capacity allows, because you "reserve" (predicate) the job for them so no-one else will take it.
  17:51:07  26 January 2011
profilee-mailreply Message URLTo the Top
gannebamm
has abondened XRay and uses Unity3D now
(Resident)

 

 
On forum: 05/02/2007
Messages: 1077

---QUOTATION---
"Will they respawn?"
-> Yup they will still spawn at the same time as long as the capacity allows, because you "reserve" (predicate) the job for them so no-one else will take it.
---END QUOTATION---


addition:
If the guys you respawn will meet the same predicate condition as the first ones!
eg. if you predicate the job for the character name wolve, you will get it used again if you spawn a new character with the same character name (wolve).
Im not shure if it is allowed to respawn guys with the same story ID, if you use storyID as condition. Vintar?
  20:00:15  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
I`m really not sure on this, I know nothing about respawn.

Only thing I know is that the original planned final battle where you meet all the old storyline characters such as "wolf" and "fox" etc, they are all clones and not the original, so maybe this says something, although its probably because they might still be "alive" I really dunno, thats one for the scripting geniuses
  20:03:52  26 January 2011
profilee-mailreply Message URLTo the Top
Lijenstina
Doom metal in the shade of the flying radiators
(Resident)

 

 
On forum: 07/23/2005
Messages: 1902
That will be easy to do.
The infoportions are already there the only thing that needs to replaced is the meshes and character xmls for the Mono's in the monolith control.
Most of them are given on death of important characters.
  20:17: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
Messages: 6349

---QUOTATION---
That will be easy to do.
The infoportions are already there the only thing that needs to replaced is the meshes and character xmls for the Mono's in the monolith control.
Most of them are given on death of important characters.
---END QUOTATION---


i have already successfully got the final battle working but were not talking about that. Just wondering how to get a respawner to be assigned to the same job as the original spawn, or maybe this is automatic?
  21:35:24  26 January 2011
profilee-mailreply Message URLTo the Top
gannebamm
has abondened XRay and uses Unity3D now
(Resident)

 

 
On forum: 05/02/2007
Messages: 1077

---QUOTATION---
That will be easy to do.
The infoportions are already there the only thing that needs to replaced is the meshes and character xmls for the Mono's in the monolith control.
Most of them are given on death of important characters.
i have already successfully got the final battle working but were not talking about that. Just wondering how to get a respawner to be assigned to the same job as the original spawn, or maybe this is automatic?
---END QUOTATION---


afaik the alifesystem deals with the jobs. So a respawner will shot its spawns if there is any suitable job in gameworld and you cant make it respond only to some jobs.
Otherwise you could define respawners spawn sections and therefore you could tell him to respawn a special kind of npc which could be exclusive to a smart/job. Furthermore you could switch the respawner on/off by a check if the job is currently in use or free...
  00:51:57  27 January 2011
profilee-mailreply Message URLTo the Top
Lijenstina
Doom metal in the shade of the flying radiators
(Resident)

 

 
On forum: 07/23/2005
 

Message edited by:
Lijenstina
01/27/2011 0:52:56
Messages: 1902
They could be spawned through script linked to an timer - by making an unique section with custom data logic - something similar to events and traders in OL.
  15:20:24  28 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/28/2011 17:51:37
Messages: 1072
I've decided to try creating a whole new smart terrain for these guys. I don't really see why they need to be part of esc_bridge. In fact, I'm going for a squad of soldiers at the breach in the fence along the right embankment - if they are going to guard the entrances into the Zone, they aren't going to leave, totally undefended, an obvious and easy-to-reach position. They'll also have the high ground, so it is impossible to approach the position undetected.

I have no idea why the one soldier kept running off. The other two ran back down underneath the bridge to assume guard duty, and two guys ran up to assume the patrol I'd set up (hence the reason why I shouldn't spawn NPCs too close to their first waypoint). In my testing, sadly the two patrol NPCs ignored me, no warning on passing them (highly likely I need a space restrictor that, if I enter it, they shoot on sight - I doubt the esc_bridge_kill_zone extends that far along the railroad). Of course, messing with the logic entries, I did manage to get them to respond if I fired on the bridge guards, and vice versa (before I messed with this part, the guards under the bridge ignored me if I shot the patrol, and the patrol ignored me if I shot the guards).

Still, the one NPC who just walked off remained hostile no matter what (I believe I was able to kill him in the vicinity of the bridge guards without consequence). I was doing something right with this first attempt at smart terrains and spawning new NPCs and the logic they needed to do the tasks I wanted, but I was also doing something wrong...

I do have another question - I'm trying to spawn pseudogiants in Cordon, although not at the start. I took a peek at the Pripyat stadium smarts and respawners for the pseudogiants, and here is what I have for Cordon...


[926]
; cse_abstract properties
section_name = smart_terrain
name = esc_gigant
position = 73.947784423828,6.3712668418884,593.93811035156
direction = 0,0,0

; cse_alife_object properties
game_vertex_id = 215
distance = 4
level_vertex_id = 367077
object_flags = 0xffffffbe
custom_data = <<END
[smart_terrain]
type = esc_gigant
capacity = 2
communities = pseudo_gigant
END

; cse_shape properties
shapes = shape0
shape0:type = sphere
shape0:offset = 0,0,0
shape0:radius = 10.0

; cse_alife_space_restrictor properties
restrictor_type = 3

; se_smart_terrain properties

[927]
; cse_abstract properties
section_name = respawn
name = esc_gigant_respawn
position = 73.947784423828,6.3712668418884,593.93811035156
direction = -0.0328151993453503,-0.00691708410158753,-0.207787200808525

; cse_alife_object properties
game_vertex_id = 215
distance = 16.7999992370605
level_vertex_id = 367077
object_flags = 0xffffff3e
custom_data = <<END
[respawn]
respawn_section = gigant_normal,gigant_strong
;max_count = 10
;min_count = 3
max_spawn = 2
idle_spawn = medium
;conditions = {+escape_stalker_done} 80,0
END

; cse_shape properties
shapes = shape0
shape0:type = sphere
shape0:offset = 0,0,0
shape0:radius = 1

; cse_alife_space_restrictor properties
restrictor_type = 0

; se_respawn properties



I added the entries into gulag_escape.script...


	if type == "esc_gigant" then
		t = { section = "logic@esc_gigant",
			idle = 0,
			prior = 5, state = {0},
			online = true,
			in_rest = "", out_rest = ""
		}
		table.insert(sj, t)
	end
...
	if gulag_type == "esc_gigant" then
		return npc_community == "pseudo_gigant"
	end



...and gulag_escape.ltx...


[logic@esc_gigant]
active = mob_camp@esc_gigant

[mob_camp@esc_gigant]
path_look = look
path_home = walk
time_change_point = 60000
home_min_radius = 15
home_max_radius = 30



Have I done it correctly, and should I just be patient for my pseudogiants to spawn? Yesterday, I had a lock-up on entering the Garbage. It was repeatable. It turned out the game couldn't open a corresponding section to do with my pseudogiant spawn (I was using the incorrect respawn_section, psevdogigant_strong...turns out it's meant to be either gigant_normal or gigant_strong ). This hints that the game might have been trying to spawn my monster. However, on a new test, it hasn't spawned anything within 1 1/2 days...

EDIT: Another question. I'm using GPS beacons as markers so I can figure out what my space restrictors might look like (the area they'd cover). How exactly do they (the space restrictors) work, though? Rather, how are the shapes figured out? I see some with just shape0, but some have multiple shapes, and with offsets. Is it safe to assume that each of these shapes is to be treated partially as a box in itself, and they all overlap to create one big space restrictor of a unique shape? I can imagine only having one big box being awkward, so having multiple 'mini-boxes' overlapping could allow the ability to choose what areas you want in the restrictor as a whole, without forcing you to include areas you don't want (where one shape would force you to include it or miss it out entirely). To that end, do the offsets then say at what point, from the original position of the restrictor as a whole, the mini restrictors are positioned? And then, from what position are the shapes measured? Is the position of a space restrictor the exact centre, or just a corner (and if it's the centre, are the shape values the length, width and height as a whole, or just halves?)?

As you can see, lots of questions there. I can't really use the SDK, as at the moment the computer isn't long for this house (brother is moving out), so I don't want to mess with the Windows Compatibility Toolkit. Then, I'm not sure, but if you need to recompile the AI-map everytime you alter a level in the SDK, that really screws me (Win 7...and I'm aware that even with the compatibility toolkit, it has trouble with AI map compiling).
  22:44:20  29 January 2011
profilee-mailreply Message URLTo the Top
Kaidonni
First the Zone, then the world!
(Resident)

 

 
On forum: 08/30/2008
Messages: 1072
Anyone? Anyone at all?
  19:28:48  30 January 2011
profilee-mailreply Message URLTo the Top
crucifist
(Senior)
 
On forum: 12/14/2009
 

Message edited by:
crucifist
01/30/2011 19:37:59
Messages: 105
I also try to understand how respawn works . My files:

all.spawn:

[9093]
; cse_abstract properties
section_name = stalker
name = village_stalker_1
position = -117.88652038574,37.427352905273,-480.15625
direction = 8.19198430690449e-006,-2.85659980773926,-2.44162747549126e-005

; cse_alife_trader_abstract properties
money = 5000
character_profile = sim_stalker_master

; cse_alife_object properties
game_vertex_id = 2966
distance = 29.3999996185303
level_vertex_id = 191156
object_flags = 0xffffffbf
custom_data = <<END
[smart_terrains]
smart_generators_village = true
END

; cse_visual properties
visual_name = actors\neytral\stalker_neytral_exoskeleton

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

upd:health = 1
upd:timestamp = 0x1d458
upd:creature_flags = 0x59
upd:position = -117.88652038574,37.427352905273,-480.15625
upd:o_model = 0
upd:o_torso = -2.85659980773926,8.19198430690449e-006,0
upd:g_team = 0
upd:g_squad = 18
upd:g_group = 1

; cse_alife_monster_abstract properties

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

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

; cse_ph_skeleton properties

upd:start_dialog = 

; se_stalker properties

[9094]
; cse_abstract properties
section_name = respawn
name = gen_stalker_respawn
position = -110.88652038574,37.427352905273,-480.15625
direction = -0.0328151993453503,-0.00691708410158753,-0.207787200808525

; cse_alife_object properties
game_vertex_id = 2966
distance = 16.7999992370605
level_vertex_id = 191156
object_flags = 0xffffff3e
custom_data = <<END
[respawn]
respawn_section = stalker
;max_count = 10
;min_count = 3
max_spawn = 2
idle_spawn = medium
END

; cse_shape properties
shapes = shape0
shape0:type = sphere
shape0:offset = 0,0,0
shape0:radius = 1

; cse_alife_space_restrictor properties
restrictor_type = 0

; se_respawn properties




spawn_sections.ltx:


[gen_stalker_respawn]:stalker
$spawn 				= "respawn\gen_stalker_respawn"
character_profile	= sim_stalker_master
spec_rank = master
community = stalker



It doesn't seem to work. My smart terrain and my NPC work (including logic). But they don't respawn if I kill them (even after 4/5 days).

I don't know more about it for the moment.
  19:36:58  30 January 2011
profilee-mailreply Message URLTo the Top
exostalker
Novice fashion designer since 2008
(Resident)

 

 
On forum: 08/10/2009
Messages: 1267
Would like to know more about respawns too.
  19:40:12  30 January 2011
profilee-mailreply Message URLTo the Top
crucifist
(Senior)
 
On forum: 12/14/2009
 

Message edited by:
crucifist
01/30/2011 19:50:12
Messages: 105

---QUOTATION---
Would like to know more about respawns too.
---END QUOTATION---



That why I have uploaded my files!

I think you need to add a spawn section in "spawn_sections.ltx", but it seems that more is needed to get it work. Tonight, I'm going to watch how NPCs respawns in the rookie camp in Cordon.
  20:21:07  30 January 2011
profilee-mailreply Message URLTo the Top
Kaidonni
First the Zone, then the world!
(Resident)

 

 
On forum: 08/30/2008
Messages: 1072
I saw one of your old threads, Crucifist, about space restrictors, and think I have them down to a T now. It's the shapes that matter most, as if there is more than one, it's likely I'll need to offset the position (0,0,0 means the position of the restrictor is also the middle of the shape).
  20:34:03  30 January 2011
profilee-mailreply Message URLTo the Top
crucifist
(Senior)
 
On forum: 12/14/2009
 

Message edited by:
crucifist
01/30/2011 20:35:24
Messages: 105

---QUOTATION---
I saw one of your old threads, Crucifist, about space restrictors, and think I have them down to a T now. It's the shapes that matter most, as if there is more than one, it's likely I'll need to offset the position (0,0,0 means the position of the restrictor is also the middle of the shape).
---END QUOTATION---



Hum, don't you confuse me with someone else? In fact I know nothing about space restrictors for the moment (except what I have just read in this topic).

EDIT: you mean that something is wrong in my alife_****.ltx?
  21:10:04  30 January 2011
profilee-mailreply Message URLTo the Top
Kaidonni
First the Zone, then the world!
(Resident)

 

 
On forum: 08/30/2008
Messages: 1072
Sorry, must have confused you with someone else...soopytwist! Ahhh! Darn...
  21:37:01  30 January 2011
profilee-mailreply Message URLTo the Top
crucifist
(Senior)
 
On forum: 12/14/2009
 

Message edited by:
crucifist
01/30/2011 23:30:42
Messages: 105
to Exostalker: I found this:


---QUOTATION---
I just remembered if you have made smart terrains you don't need to add new stalkers... The stalkers will respawn and add themselves via the respawn system. Adding stalkers via all.spawn is only necissary if you want a group of stalkers who are guarenteed to only stay in that place and to be there at the start of the game, like special characters etc.
So if you have smart terrains thye will become populated over time.
---END QUOTATION---



EDIT: I found this (I let you "google translate it" :

http://stalkerin.gameru.net/wiki/index.php/RESPAWN

I have tried to create a spacerestrictor as mentionned in the article, but it doesn't work. In fact I'm not sure to understand the last part of the article ...
  18:07:13  31 January 2011
profilee-mailreply Message URLTo the Top
gannebamm
has abondened XRay and uses Unity3D now
(Resident)

 

 
On forum: 05/02/2007
 

Message edited by:
gannebamm
01/31/2011 18:08:10
Messages: 1077
ok had no time for any infos until yet:
- You dont need to use any kind of space restrictor for a respawner. You could to define his on/offline state and so on, but you dont need them!

- files you need to edit:
all.spawn
maybe spawn_section.ltx
maybe some Npc_profile.xml
maybe smart_terrain_presets.ltx
maybe general_lager.ltx
maybe general_lair.ltx
maybe se_respawn.script

all.spawn stuff:

respawn_section = NAME_respawn_X, 12, NAME_respawn_Y, 9


this defines the sections the respawner will respawn. The numbers after the spawn-IDs describe in which quantitive relation the spawns will be used. So you will get a 12 to 9 relation in numbers between these two sections. Usually its used like: for 3 low rank bandits get me one higher rank bandit ( -> respawn_section = gar_bandit_respawn_1, 3, gar_bandit_respawn_2, 1)


The above will look into:
spawn_section.ltx
To get the info what the section actually is, eg:

[NAME_respawn_X]: stalker
$ spawn = "respawn\NAME_respawn_X"
character_profile =  NAME_character.xml ; without .xml !
spec_rank =  RANKNAME
community =  FACTIONNAME



AFAIK the spec_rank and community info could also be placed into the xml, just like loadout and other stuff.


-- some sidenotes:
A respawner only kicks in if there are any suitable jobs anywhere in the gameworld. So if there arent any smartterrain which offers free jobs, there will be no respawn. End
On the other hand you cant just place a smartie somewhere and think it gets involved into the whole alife system unless you check:
smart_terrain_presets.ltx

In here you will find which smarts are involved in alife system in which levels by which kinds of faction and which state of experience/rank. eg:

;;; aliVe 1.6 !
[l01_escape]

stalker		= novice, experienced
military		= novice, experienced
bandit		= novice, experienced,veteran

boar		=	weak, normal
flesh		=	weak, normal
dog		=	weak, normal, strong
pseudodog	=	weak, normal
rat		=	weak, normal
tushkano		=	weak, normal, strong
cat		=	weak, normal
chimera		=	weak, normal
bloodsucker =	weak


thus will ashure your set smartterrain will get involved into the whole mechanic.

BEWARE if your smart is a general_lager/_lager you should look into:
general_lager.ltx
general_lair.ltx

Furthermore you should get your respawns into se_respawn.script. In there you will find the max amount of respawned mutants/stalkers in the whole gameworld. Beware its called respawned! So if you set the stalker numbers down to 5 per section you will find the zone like usuall. But after some stalkers get killed there wont be more then 5 in the whole world which will get repsawned. - this is the theory and not fully tested!
So in short:
If you get a new respawner, and a new terrain for your npc/mutants maybe its a good idea to higher the sections max amounts, or much more interessting ashure that this section is called in the script at all!

Some specialities for mutant respawning:
You will get your respawn ID not from a ltx and xml but from the sections set into the se_respawn.script. The called sections belong to the mutant.ltx files (eg. m_boar.ltx)

everything clear?


----
what i think you have done wrong:
no settings in
1. se_respawn.script
2. general_lager.ltx
3. general_lair.ltx
4. smart_terrain_presets.ltx
  20:11:11  31 January 2011
profilee-mailreply Message URLTo the Top
crucifist
(Senior)
 
On forum: 12/14/2009
Messages: 105
Thanks for those informations! No time to test it tonight I have to work on metasploit! Erf!
  18:29:30  2 February 2011
profilee-mailreply Message URLTo the Top
crucifist
(Senior)
 
On forum: 12/14/2009
 

Message edited by:
crucifist
02/02/2011 18:34:36
Messages: 105
Here, I have worked a little:

alife_***.ltx:


[9094]
; cse_abstract properties
section_name = respawn
name = gen_stalker_respawn_1
position = -110.88652038574,37.427352905273,-480.15625
direction = -0.0328151993453503,-0.00691708410158753,-0.207787200808525

; cse_alife_object properties
game_vertex_id = 2966
distance = 16.7999992370605
level_vertex_id = 191156
object_flags = 0xffffff3e
custom_data = <<END
[respawn]
respawn_section = gen_stalker_respawn_1,gen_stalker_respawn_2
;max_count = 10
;min_count = 3
max_spawn = 2
idle_spawn = often
END

; cse_shape properties
shapes = shape0
shape0:type = sphere
shape0:offset = 0,0,0
shape0:radius = 1

; cse_alife_space_restrictor properties
restrictor_type = 0

; se_respawn properties



spawn_section.ltx:


[gen_stalker_respawn_1]:stalker
$spawn 				= "respawn\gen_stalker_respawn_1"
character_profile	= sim_stalker_master
spec_rank = master
community = stalker

[gen_stalker_respawn_2]:stalker
$spawn 				= "respawn\gen_stalker_respawn_2"
character_profile	= sim_stalker_master
spec_rank = master
community = stalker



smart_terrain_presets.ltx:


[l13_generators]
monolith		= novice, experienced, veteran, master
pseudo_gigant	= normal, strong
cat 			= normal, strong
giant			= normal, strong
stalker              = novice, experienced, veteran, master




There is a smart terrains near my respawn point filled with stalker. I kill them, use a function to accelerate the speed time, change map and wait during 9 days. No respawn ...

I don't know why ...
  20:30:16  2 February 2011
profilee-mailreply Message URLTo the Top
gannebamm
has abondened XRay and uses Unity3D now
(Resident)

 

 
On forum: 05/02/2007
Messages: 1077
se_respawn.script ?
look into this table:

local simMaxCount = {
	stalker_novice = 53, --...-- , stalker_master = 10, ...


and higher the master number to 99.

and most likely its better to use a vanilla respawn section like "esc_stalker_1" (not tested!) first.
: esc_
: : means its a escape level respawn section

: _stalker_
: : means its community is stalker

: _1
: : means its the first respawn section of this type
  22:42:18  2 February 2011
profilee-mailreply Message URLTo the Top
Stalkerstein
Senior Resident
 

 
On forum: 04/24/2010
Messages: 1975
What does 'smart terrain' mean?
  22:55:57  2 February 2011
profilee-mailreply Message URLTo the Top
crucifist
(Senior)
 
On forum: 12/14/2009
Messages: 105
You mean that I haven't understood something Stalkerstein?

gannebamm: I have change the value in the se_respawn.script, to 99. But in the mod that I use, this value was set to 20 ...

Still not working. Even after 10 or 11 days.
  12:28:21  3 February 2011
profilee-mailreply Message URLTo the Top
gannebamm
has abondened XRay and uses Unity3D now
(Resident)

 

 
On forum: 05/02/2007
Messages: 1077
You try to get the respawner work at generators level? I´ve heard from kany that there are some issues with new levels regarding respawners/smartterrains and AI sometimes. So maybe you should try to get a very simple garbage respawner working and using basic vanilla sections so you could be shure that there arent any issues with these part of the code.
Best would be to duplicate a respawner in garbage and altering its respawn sections to some other vanilla section and look if it works.


@stalkerstein:
smartterrains are places npcs/mutants do jobs.
eg:
bridge post of military is a smartterrain
loner rookie village is a smartterrain
and many many many more (every camp where stalker sit and talk are smartterrains)
  12:34:25  3 February 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
Smart terrains are where npc's get their jobs from. Before, they used to get jobs from traders but this was changed for various reasons.
  12:53:48  3 February 2011
profilee-mailreply Message URLTo the Top
Robberbaron
Bangalore
(Resident)

 

 
On forum: 08/06/2009
 

Message edited by:
Robberbaron
02/03/2011 13:14:44
Messages: 614

---QUOTATION---
You try to get the respawner work at generators level? I´ve heard from kany that there are some issues with new levels regarding respawners/smartterrains and AI sometimes.
---END QUOTATION---



Let me correct this.
There are no issues with generators level or with other new levels itself.
What Kany reported, that happened only with my very first experimental build two years ago. Mostly thanks to an incompatible xrAI tool (and deficiency of knowledge), that build had incorrect ai maps, and bad graph and spawn.

Since then we have a full compatible xrAI. It all depends from the knowledge of the build maker, but with the latest xrAI tool the smart terrains/respawners and ai should work perfectly. The cause must be something else.
  14:38:17  3 February 2011
profilee-mailreply Message URLTo the Top
crucifist
(Senior)
 
On forum: 12/14/2009
Messages: 105
I have to add that I have seen that the sections are called because in my respawn section, I forgot to delete a respawn section. So the game crashed with an error like "unknown section "respawn_generators_3". It was called after 6 days. I don't have the error anymore. But it doesn't seem to spawn.

Is it possible to call the respawn manually to test it?
  14:55:43  3 February 2011
profilee-mailreply Message URLTo the Top
gannebamm
has abondened XRay and uses Unity3D now
(Resident)

 

 
On forum: 05/02/2007
 

Message edited by:
gannebamm
02/03/2011 14:56:09
Messages: 1077
se_respawn.script:

function spawn(name)
  local spawner = respawners[name]
  if spawner == nil then
    return
  end
...


eg.

function spawner_test()
  se_respawn.spawn(gen_stalker_respawn_1)
end


This function should be called from somewhat. eg. you could bind it to a key in mainmenu, look into the wiki for keybinding in main menu. This needs some basic knowledge of LUA.

@Rubber Baron
thx for claryfiing this!
  15:38:58  3 February 2011
profilee-mailreply Message URLTo the Top
Robberbaron
Bangalore
(Resident)

 

 
On forum: 08/06/2009
Messages: 614

---QUOTATION---

@Rubber Baron
thx for claryfiing this!
---END QUOTATION---



It doesn't change the fact, that we don't know, how did crucifist merged the generators level, or from which mappack did he grab it. I believe only in what i can open in level editor and check it with xrai.
  15:55:17  3 February 2011
profilee-mailreply Message URLTo the Top
crucifist
(Senior)
 
On forum: 12/14/2009
 

Message edited by:
crucifist
02/03/2011 15:57:10
Messages: 105

---QUOTATION---

@Rubber Baron
thx for claryfiing this!

It doesn't change the fact, that we don't know, how did crucifist merged the generators level, or from which mappack did he grab it. I believe only in what i can open in level editor and check it with xrai.
---END QUOTATION---



I use Old Storyline Restoration as a base for my modification. I have added NPC with smart terrain, gulag and logic and all works fine.

I know that there are smart terrains in dead city, but none in Generators.

Should I check something with the level editor?

I have this error in my xray (no crash):

! Unknown command: dbg:!-!-!-_Принудительный_Вылет_-!-!-!
! Unknown command: dbg:!-!-!-_Принудительный_Вылет_-!-!-!
! Unknown command: dbg:!-!-!-_Принудительный_Вылет_-!-!-!

The russian words, translated with google, are:"Forced Departure"

I have added the function to lauch the respawn. It is executed (I use
get_console():execute("my_comment") 

to verify), but it doesn't respawn.
  16:13:43  3 February 2011
profilee-mailreply Message URLTo the Top
gannebamm
has abondened XRay and uses Unity3D now
(Resident)

 

 
On forum: 05/02/2007
 

Message edited by:
gannebamm
02/03/2011 16:17:22
Messages: 1077
http://sdk.stalker-game.com/en/index.php?title=Code_execution_by_button

put in there:
http://pastebin.com/vsMjFYyr

that should do the trick.
Btw. i think respawners are sometimes kind of wonky if there isnt a smartterrain on there own level... never tested this

once again i would test a simple respawner on proven ground first to check if the basics are working!
gbamm

:: edited ::
typo in script

:: edited 2::
i would suggest you try the script with a vanilla respawner first! Its not tested and written out of my brain, which mostly leads to little glitches!
  09:15:44  4 February 2011
profilee-mailreply Message URLTo the Top
crucifist
(Senior)
 
On forum: 12/14/2009
Messages: 105
Thanks for your help! It works in Generators with my new spawn_section. I need to call the script in the menu of course! I have also tested in garbage, it works too. Now, I have to understand why it doesn't spawn without manual call of the script ...
  17:02:30  4 February 2011
profilee-mailreply Message URLTo the Top
gannebamm
has abondened XRay and uses Unity3D now
(Resident)

 

 
On forum: 05/02/2007
Messages: 1077

---QUOTATION---
Thanks for your help! It works in Generators with my new spawn_section. I need to call the script in the menu of course! I have also tested in garbage, it works too. Now, I have to understand why it doesn't spawn without manual call of the script ...
---END QUOTATION---


If a spawn call gets your stuff spawned as intended, the spawn call itself isnt fired.
If you understand lua you could check all conditionals set in se_respawner.script to see what prevents the function to get called. Furthermore you could make a advanced search through all script files for the se_respawn.spawn(xyz) function call to get these functions which execute the spawn which are not incorporated into se_respawn.
common conditions are:
spawn_idle
distance to actor
jobs/smarts
zonepopulation

-
if you spawn the guys, what are they doing? Do they go to any kind of smartterrain? Could you paste the complete spawn section in here please?
  20:11:09  4 February 2011
profilee-mailreply Message URLTo the Top
crucifist
(Senior)
 
On forum: 12/14/2009
 

Message edited by:
crucifist
02/04/2011 20:12:42
Messages: 105
The complete section or file?

As I'm not sure:


;-------------------------------Generator -------------------------------


[gen_stalker_respawn_1]:stalker
$spawn 				= "respawn\gen_stalker_respawn_1"
character_profile	= sim_stalker_master
spec_rank = master
community = stalker

[gen_stalker_respawn_2]:stalker
$spawn 				= "respawn\gen_stalker_respawn_2"
character_profile	= sim_stalker_master
spec_rank = master
community = stalker



In fact I think it's a problem bound to smart terrain and gulag. I don't specify that my respawned character has to work for my smart terrain. But it's a little strange ... When I kill the 2 NPCs, my respawned character (called by the menu) takes a job and work for the smart terrain.

Is it bound to the community accepted in the smart terrain?

To test, I kill my two NPCs, then leave to another map. Once I'm there, I call a function wich accelerates time but the respawn doesn't work.

Here's my smart terrain:


[9091]
; cse_abstract properties
section_name = smart_terrain
name = smart_generators_village
position = -110.64280700684,37.96125793457,-490.61651611328
direction = 0,0,0

; cse_alife_object properties
game_vertex_id = 2981
distance = 10.3999977111816
level_vertex_id = 198275
object_flags = 0xffffffbe
offline = false
custom_data = <<END
[smart_terrain]
type = smart_generators_village
capacity = 2
;squad = 8
;groups = 5
communities = stalker
END

; cse_shape properties
shapes = shape0
shape0:type = sphere
shape0:offset = 0,0,0
shape0:radius = 1.64799988269806

; cse_alife_space_restrictor properties
restrictor_type = 0

; se_smart_terrain properties



My respawn:


[9094]
; cse_abstract properties
section_name = respawn
name = gen_stalker_respawn_1
position = -110.88652038574,37.427352905273,-480.15625
direction = -0.0328151993453503,-0.00691708410158753,-0.207787200808525

; cse_alife_object properties
game_vertex_id = 2966
distance = 16.7999992370605
level_vertex_id = 191156
object_flags = 0xffffff3e
custom_data = <<END
[respawn]
respawn_section = gen_stalker_respawn_1
max_count = 2
min_count = 2
max_spawn = 2
idle_spawn = often
END

; cse_shape properties
shapes = shape0
shape0:type = sphere
shape0:offset = 0,0,0
shape0:radius = 1

; cse_alife_space_restrictor properties
restrictor_type = 0

; se_respawn properties



Call of jobs of the ST:


	if type == "smart_generators_village" then
		t = {}
		t.section = "logic@smart_generators_village0"
		t.idle = 0
		t.timeout = 0
		t.prior = 100
		t.state = {0}
		t.squad = squad
		t.group = groups[1]
		t.position_threshold = 100
		t.online = true
		t.in_rest = ""
		t.out_rest = ""
		table.insert(sj, t)	
		
		t.section = "logic@smart_generators_village1"
		t.idle = 0
		t.timeout = 0
		t.prior = 100
		t.state = {0}
		t.squad = squad
		t.group = groups[1]
		t.position_threshold = 100
		t.online = true
		t.in_rest = ""
		t.out_rest = ""
		table.insert(sj, t)	
	end



I'm not a LUA programmer but I have notions in POO (I don't know how to say it in english, so I mean "object language" . So I can understand scripts. I'm going to check that!
  13:32:54  5 February 2011
profilee-mailreply Message URLTo the Top
crucifist
(Senior)
 
On forum: 12/14/2009
 

Message edited by:
crucifist
02/05/2011 15:00:26
Messages: 105
I have done a lot of testes. It's very strange:

In fact, only 1 NPCs can be respawned in my smart terrain (using the call). The two stalker spawned in the smart terrain have to be dead to get respawn work. I have deleted in all.spawn two stalker sections which were spawned in the smart terrain. Now, if I call the respawn function, nothing happened. I don't understand anything ...

No way to get it work. Aaaargh

EDIT: what is the output of the printf() function?

EDIT2: I'm checking the execution of the se_respawn() function.
Actually, when I call the script from the menu, those "instructions" are executed:


function spawn(name)
	local spawner = respawners[name]
	if spawner == nil then
		get_console():execute("nil") --not executed
		return
	end
	
	for i=1,spawner.max_spawn do
		get_console():execute("enter_spanwer_loop") --executed
		if spawner.max_count ~= -1 and table.getn(spawner.spawned_obj) >= spawner.max_count then
			get_console():execute("cant_spawn_max_count_reach") -- not executed
			return
		end		
		if spawner:create(xr_logic.pick_section_from_condlist(db.actor_proxy, spawner, spawner.conditions)) == false then
			get_console():execute("WTF") -- I don't know the goal of this function. It is executed
			return
		end
	end		



EDIT: when I call the respawn and get it work state of the smart terrain is verified. I have also the error that I have mentionned before: dbg:error --! blah blah !--

The smart terrain isn't checked when the respawn doesn't work.
I have also seen that when I kill a respawned NPC I get an error in my log:

v:ge_destroy[2888]: not found on server

EDIT3: only the second job bound to the ST is loaded when respawning.
EDIT4: there was a mistake in my gulag script. I have corrected it. But now, my respawned NPC won't load its logic, bu is bound to ST.
  15:49:41  5 February 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
Firstly i'm shocked that you admit to doing alot of testes
secondly, try increase your capacity
  15:50:33  5 February 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
Firstly i'm shocked that you admit to doing alot of testes
secondly, try increase your capacity
  16:08:43  5 February 2011
profilee-mailreply Message URLTo the Top
crucifist
(Senior)
 
On forum: 12/14/2009
 

Message edited by:
crucifist
02/05/2011 16:14:11
Messages: 105
The smart terrain capacity is set to 10. The capacity in se_repspawn.script is set to 99 for each kind of stalker.

My testes don't help me for the moment erf

EDIT: attribution of the ST is only linked to the NPC community?
  17:08:33  5 February 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
Your smart terrain capacity clearly says 2.
Perhaps more testes are in order
  17:29:59  5 February 2011
profilee-mailreply Message URLTo the Top
crucifist
(Senior)
 
On forum: 12/14/2009
Messages: 105

---QUOTATION---
Your smart terrain capacity clearly says 2.
Perhaps more testes are in order
---END QUOTATION---



Yep, I haven't postesd my updated files. I've changed it to 3 (to make it easier):


[9091]
; cse_abstract properties
section_name = smart_terrain
name = smart_generators_village
position = -110.64280700684,37.96125793457,-490.61651611328
direction = 0,0,0

; cse_alife_object properties
game_vertex_id = 2981
distance = 10.3999977111816
level_vertex_id = 198275
object_flags = 0xffffffbe
offline = false
custom_data = <<END
[smart_terrain]
type = smart_generators_village
capacity = 3
squad = 3
groups = 1,2,3
communities = stalker
END

; cse_shape properties
shapes = shape0
shape0:type = sphere
shape0:offset = 0,0,0
shape0:radius = 1.64799988269806

; cse_alife_space_restrictor properties
restrictor_type = 0

; se_smart_terrain properties

[9094]
; cse_abstract properties
section_name = respawn
name = gen_stalker_respawn_1
position = -119.88652038574,37.427352905273,-480.15625
direction = 0,0,0

; cse_alife_object properties
game_vertex_id = 2966
distance = 16.7999992370605
level_vertex_id = 191156
object_flags = 0xffffff3e
custom_data = <<END
[respawn]
respawn_section = gen_stalker_respawn_1
max_count = 3
min_count = 1
max_spawn = 3
idle_spawn = often
END

; cse_shape properties
shapes = shape0
shape0:type = sphere
shape0:offset = 0,0,0
shape0:radius = 1

; cse_alife_space_restrictor properties
restrictor_type = 0

; se_respawn properties



Gulag:


	if type == "smart_generators_village" then
		get_console():execute("job_village0")
		t = {}
		t.section = "logic@smart_generators_village0"
		t.idle = 0
		t.timeout = 0
		t.prior = 100
		t.state = {0}
		t.squad = squad
		t.group = groups[1]
		t.position_threshold = 100
		t.online = true
		t.in_rest = ""
		t.out_rest = ""
		table.insert(sj, t)	
		
		get_console():execute("job_village1")
		t = {section = "logic@smart_generators_village1",
		idle = 0, timeout = 0, prior = 100, state = {0},squad = squad,
		group = groups[1], position_threshold = 100, online = true, in_rest = "",
		out_rest = "", predicate = function(obj_info) return obj_info.rank >= 900 end}
		get_console():execute("table_insert")
		table.insert(sj, t)
		
		get_console():execute("job_village2")
		t = {section = "logic@smart_generators_village2",
		idle = 0, timeout = 0, prior = 100, state = {0},squad = squad,
		group = groups[1], position_threshold = 100, online = true, in_rest = "",
		out_rest = "", predicate = function(obj_info) return obj_info.rank >= 900 end}
		get_console():execute("table_insert")
		table.insert(sj, t)

	end



Waypoints and logic are of course created.
  18:18:18  5 February 2011
profilee-mailreply Message URLTo the Top
exostalker
Novice fashion designer since 2008
(Resident)

 

 
On forum: 08/10/2009
Messages: 1267
Maybe someone could write an example, which would really be working, on what to write to every file so that in smart terrain would respawn monsters or stalkers. I really got confused by all this thing.
  23:42:44  5 February 2011
profilee-mailreply Message URLTo the Top
Kaidonni
First the Zone, then the world!
(Resident)

 

 
On forum: 08/30/2008
 

Message edited by:
Kaidonni
02/05/2011 23:52:44
Messages: 1072
Okay, so I've got an alpha version of my smart terrain for a railroad soldier squad all ready. It's working. Except...the space restrictor isn't behaving like it should. Here is the item concerned...


; cse_abstract properties
section_name = space_restrictor
name = esc_railroad_kill_zone
position = 190.03401184082,20.19945526123,186.74197387695
direction = 0.859093,0,0.511819

; cse_alife_object properties
game_vertex_id = 0
distance = 0
level_vertex_id = 489164
object_flags = 0xffffff3e
custom_data = <<END
[logic]
active = sr_idle

[sr_idle]
on_actor_inside = {-esc_railroad_pass_on} nil %+esc_railroad_pass_fire%
on_info = {+esc_railroad_pass_on} sr_idle@pass

[sr_idle@pass]
on_game_timer = 3600| sr_idle %+esc_railroad_pass_off%
END

; cse_shape properties
shapes = shape0,shape1
shape0:type = box
shape0:axis_x = 1,0,0
shape0:axis_y = 0,1,0
shape0:axis_z = 0,0,1
shape0:offset = 0,0,0
shape1:type = box
shape1:axis_x = 59.0,0,0
shape1:axis_y = 0,16.9219551086426,0
shape1:axis_z = 0,0,4.0
shape1:offset = 0,0,0

; cse_alife_space_restrictor properties
restrictor_type = 3



The problem is that, well...no matter what, the guard doesn't shoot me unless I'm on top of the space restrictor. Yet, it's meant to span near enough 30 metres on the x axis, covering a fair amount of the railroad. It's certainly high enough. But...the z axis only needs to be small enough so that, if touched even the tiniest amount, they open fire. He doesn't do that unless I am right on top of the position of my restrictor. Now that's just dumb, because it doesn't seem to reflect how restrictors work in the first place. Or is the bloody size just for looks? I can only rely on the search function to find anything out on how space restrictors work, it's a wonder anyone can learn how to mod this game.

I already tried just one shape, with the 59x16.9219551086426x4 dimensions. That's why there are two shapes above, to see if the first was just a dud. Nope. I thought that restrictors covered an area of a certain size in xyz values, and when you entered them, a specific event was triggered. Yet here size means absolutely nothing...
  23:55:17  5 February 2011
profilee-mailreply Message URLTo the Top
Lijenstina
Doom metal in the shade of the flying radiators
(Resident)

 

 
On forum: 07/23/2005
Messages: 1902
on_actor_inside that means when the actor is inside the defined space restrictor the section will switch on.

Try using on_actor_dist_le . That should switch the section if the actor is less than the distance defined.
  00:09:38  6 February 2011
profilee-mailreply Message URLTo the Top
Kaidonni
First the Zone, then the world!
(Resident)

 

 
On forum: 08/30/2008
 

Message edited by:
Kaidonni
02/06/2011 0:11:12
Messages: 1072
That's the point - if the player tries to cross the railroad itself, the grunts will open fire. I am modelling it on the bridge patrol, where the same on_actor_inside logic is called. Only this time, the area is longer and thinner. I tried using the offset option, and dumping the position of the restrictor itself near the breach in the fence. The grunt still only responds with weapons fire if I touch the position of the restrictor. Nothing else sets him off attacking me...a whole portion of the railroad should be off limits. The distance method won't give me that...
  00:37:28  6 February 2011
profilee-mailreply Message URLTo the Top
Lijenstina
Doom metal in the shade of the flying radiators
(Resident)

 

 
On forum: 07/23/2005
Messages: 1902
Define more than one space restrictors.

The one under the bridge should be on actor inside, the ones on the railroad should be switched if the actor is closer than some distance.
  00:46:56  6 February 2011
profilee-mailreply Message URLTo the Top
Kaidonni
First the Zone, then the world!
(Resident)

 

 
On forum: 08/30/2008
 

Message edited by:
Kaidonni
02/06/2011 1:12:14
Messages: 1072
It's a different smart terrain and different logic, it isn't connected to the bridge logic at all. I don't want the patrols to be the same. I tried it before, but it didn't make sense, as attacking the bridge patrol would bring the wrath of the rail patrol, and vice versa (surely the military is smart enough to not fall for possible traps - the guys on the railroad wouldn't all abandon their post to defend the bridge from one wimp, it'd be stupid, and it could even be deception).

I have no idea about anything here because there's next to nothing written up on space restrictors. Nothing in the wiki, and the search function is hardly useful when it comes to specialist problems. There's so much crap out there, also, that sifting through it all would take longer than actually setting up a whole new smartie plus logic and whatever.

Whatever I've read on this part of modding is clearly wrong, or at least this computer has decided it is in charge of how space restrictors work, not the x-ray engine. Space restrictor shapes have about as much use as a banker's bonus. I mean, seriously! Direction means nothing in this case, the xyz size means nothing...aren't space restrictors meant to be triggered when you enter them? Not the centre of them, but the whole of them? Apparently mine are smaller than a quantum singularity, but appear larger in the all.spawn.
  13:59:19  6 February 2011
profilee-mailreply Message URLTo the Top
Kaidonni
First the Zone, then the world!
(Resident)

 

 
On forum: 08/30/2008
Messages: 1072
Anyone at all? Seriously, the documentation on space restrictors is pathetic. I've tried two shapes attached, and still it makes ABSOLUTELY NO DIFFERENCE. None at all. Why the hell are multiple shapes used if they don't do anything? Why the hell are sizes used at all, even? The shapes clearly do not do anything, this is damned proof of that. Otherwise mine would have worked off the bat. I had the exact correct direction and xyz size for it to cover the correct area. But noooooooooo, I have to be smack bang on top no matter what for it to register. This leads me to believe there must be some magical pixie dust to get restrictors to work, because my experience, mirroring another kill zone, proves they don't do what they say they do in the all.spawn. What a waste of my time.
  14:21:35  6 February 2011
profilee-mailreply Message URLTo the Top
crucifist
(Senior)
 
On forum: 12/14/2009
 

Message edited by:
crucifist
02/06/2011 14:25:35
Messages: 105
Have you checked this?:

http://stalkerin.gameru.net/wiki/index.php/Space_restrictor

With google translate, it's understandable.
  14:28:56  6 February 2011
profilee-mailreply Message URLTo the Top
Kaidonni
First the Zone, then the world!
(Resident)

 

 
On forum: 08/30/2008
 

Message edited by:
Kaidonni
02/06/2011 14:42:49
Messages: 1072
Thanks, but it doesn't really tell me anything I didn't already know. The problem here is that the shape really doesn't mean anything at all. Seriously. Whoever wrote that it did was high or something. It certainly has no effect in my case. And direction is certainly important, because I don't want the restrictor parallel to the x axis. If it was, I'd have to create dozens of mini-restrictors (which is already proven will have no effect, I ain't gonna waste my time re-proving that when even just one does nothing).

EDIT: 10 minutes of my life I won't get back proving direction means nothing either. I still have to be smack bang on top of the restrictor even with 0,0,0. Sorry, but I must say this...all the documentation on restrictors is bunkum. Shapes means nothing at all. That's a fact. I have the logic, the info portions, everything. Still, the shape means nothing. You have to be at the position of the restrictor, that's all that matters. The rest is unused. Why the bloody shape was left in is beyond me. It really does do nothing.

Unless some expert can actually answer this, I advise people not to use box shape restrictors, as they don't have any real purpose. Unless shape does something, and it doesn't as is clearly evident here, then sphere's must be used. And they are useless for specific things like not being able to cross the railroad.
  14:38:45  6 February 2011
profilee-mailreply Message URLTo the Top
crucifist
(Senior)
 
On forum: 12/14/2009
Messages: 105
Actually I can't help you (I'm sure you have already guessed it ). I'm still stuck with my respawn problem.
  14:44:45  6 February 2011
profilee-mailreply Message URLTo the Top
Kaidonni
First the Zone, then the world!
(Resident)

 

 
On forum: 08/30/2008
 

Message edited by:
Kaidonni
02/06/2011 14:54:47
Messages: 1072
That's okay, don't sweat it. Stalker is one of the worst games to mod when it clearly doesn't do what it says on the tin. I have a lot less time to mod now, and my patience has plummeted severely. I have big plans this year, and I was hoping for a balance between those plans, having a life, and modding Stalker. Clearly I'm going to waste my weeknights and weekends on a game with multiple personality disorder... I already feel less motivated to mod when I get home from work. I feel even less motivated to mod when I'm taking shots in the dark...and I don't want to lose my free time to shots in the dark. I'm already losing my Sunday to waiting for an answer as to why the shape means nothing, and therefore why the hell it is used in the first place. Unless I get some serious progress in on my mod, and unless the game engine starts co-operating alongside what documentation (or hearsay, as in the case of restrictors) says should happen, then I'm afraid I'm going to have to ditch modding. It's as if the game just doesn't want my stuff to work. It should work, but my version of the game has a mind of it's own. Heck, I've tried scripts out that work for other people (and I mean scripts that don't conflict with other things at all, because they are that small and unrelated...and this is actually as regards hotkeys and unbinding them, so the script commands wouldn't be affected by other things), and they haven't worked for me in the slightest. Nadda, zilch, nothing. Even using the same game version as the other people.
  14:56:13  6 February 2011
profilee-mailreply Message URLTo the Top
crucifist
(Senior)
 
On forum: 12/14/2009
 

Message edited by:
crucifist
02/06/2011 14:59:54
Messages: 105
Same problems for me. Each times I do something it doesn't work as it should. It takes me severals days to solve a problem (almost each time with help).

EDIT: As I don't know, do you have a working respawn section?
  14:59:37  6 February 2011
profilee-mailreply Message URLTo the Top
Kaidonni
First the Zone, then the world!
(Resident)

 

 
On forum: 08/30/2008
Messages: 1072
I'm just fed up. My new NPCs at the start of the thread weren't working like they should have. Only two of the three accepted any jobs from the smartie (and it was an already existing one, with logic correctly added to it for these three new guys). The capacity was higher than needed. There were certainly enough jobs to hand out. But one of the guys was ALWAYS released from the smart, and no one else did his job. Why was this one guy so special?
  15:04:28  6 February 2011
profilee-mailreply Message URLTo the Top
crucifist
(Senior)
 
On forum: 12/14/2009
Messages: 105
I guess that the capacity must match the number of jobs created for ST (and for each states). That why I have reduced my smart terrain capacity to three. I have also added a third job. My smart terrain has only one state, and when my (unique, instead of three) NPC respawns he doesn't load a job and runs stupidly in the ST.
  15:30:03  6 February 2011
profilee-mailreply Message URLTo the Top
mnn
Senior Resident
 

 
On forum: 06/12/2009
 

Message edited by:
mnn
02/06/2011 15:32:57
Messages: 2694

---QUOTATION---
EDIT: Another question. I'm using GPS beacons as markers so I can figure out what my space restrictors might look like (the area they'd cover). How exactly do they (the space restrictors) work, though? Rather, how are the shapes figured out? I see some with just shape0, but some have multiple shapes, and with offsets. Is it safe to assume that each of these shapes is to be treated partially as a box in itself, and they all overlap to create one big space restrictor of a unique shape? I can imagine only having one big box being awkward, so having multiple 'mini-boxes' overlapping could allow the ability to choose what areas you want in the restrictor as a whole, without forcing you to include areas you don't want (where one shape would force you to include it or miss it out entirely). To that end, do the offsets then say at what point, from the original position of the restrictor as a whole, the mini restrictors are positioned? And then, from what position are the shapes measured? Is the position of a space restrictor the exact centre, or just a corner (and if it's the centre, are the shape values the length, width and height as a whole, or just halves?)
---END QUOTATION---


Space restrictor (as any other entity) has position. This position is origin for all shapes.

So when we have 1 sphere shape assigned to an space restrictor, with offset 0,0,0, it is centered on the "origin".

When we have 2 sphere shapes assigned to an SR, with offsets 0,0,0 and 5,0,5, the SR looks something like this:
http://img833.imageshack.us/img833/9131/spheres.png

When we have 2 box shapes assigned to an SR with offsets something like 0,0,0 and 5,0,2, the SR looks something like this:
http://img842.imageshack.us/img842/4634/boxesb.png

(note: the white flag is position of an SR - e.g. the "origin"

In decompiled all.spawn, then each sphere has defined a radius and each box has defined axis_x, axis_y, axis_z, which define dimensions of the given box shape.
  15:51:17  6 February 2011
profilee-mailreply Message URLTo the Top
Kaidonni
First the Zone, then the world!
(Resident)

 

 
On forum: 08/30/2008
Messages: 1072
That's the thing...at the moment, shape and offset are beginning to mean nothing. My box was meant to be x60, y16 and z2. A thin one, yes, but also a very long one that covered the top of the railroad (so that if you passed the track itself, the military would fire on you). Except, despite having the proper position, it certainly doesn't extend x60. I've got the direction correct, checked it out in ZRP. It just doesn't want to use my box...
  15:54:11  6 February 2011
profilee-mailreply Message URLTo the Top
mnn
Senior Resident
 

 
On forum: 06/12/2009
Messages: 2694
I hope you've written axes in this format:
shape0:axis_x = x,0,0
shape0:axis_y = 0,y,0
shape0:axis_z = 0,0,z

  16:02:44  6 February 2011
profilee-mailreply Message URLTo the Top
Kaidonni
First the Zone, then the world!
(Resident)

 

 
On forum: 08/30/2008
Messages: 1072
Oh, I've figured out what's wrong. The esc P data from ZRP, that's what. I move a little in the direction I want my restrictor in, and gather the data. Only it's wrong. I regathered data just, and it was different to before. So the shape is working, the direction is screwed up... I thought I just had to move a little in the direction I wanted in ZRP before using esc P to gather the correct direction data, but apparently not...
  16:17:06  6 February 2011
profilee-mailreply Message URLTo the Top
mnn
Senior Resident
 

 
On forum: 06/12/2009
 

Message edited by:
mnn
02/06/2011 16:17:17
Messages: 2694
If this is what you want, you can use my coordinates:
http://img684.imageshack.us/img684/4176/railroadsr1.jpg
http://img192.imageshack.us/img192/1832/railroadsr2.jpg

position = 53.7927894592285,13.3181047439575,147.33268737793
direction = -0.0275070052593946,-0.0351786464452744,0.0252429619431496

; cse_shape properties
shapes = shape0
shape0:type = box
shape0:axis_x = 228.296417236328,0,0
shape0:axis_y = 0,26.0146045684814,0
shape0:axis_z = 0,0,15.9573993682861
shape0:offset = 0,0,0

And I strongly suggest getting SoC SDK and work within Level Editor. It's much better than fiddling around with correct coordinates, directions and stuff...
  16:24:40  6 February 2011
profilee-mailreply Message URLTo the Top
Kaidonni
First the Zone, then the world!
(Resident)

 

 
On forum: 08/30/2008
Messages: 1072
Thanks, but that's not quite what I'm after. It's the right side railroad track itself, towards the tunnel (right along the track itself). Still can't get the correct data from ZRP, even moving in multiple directions and gathering different info. It always seems to end up at a right angle, or near enough 90 degrees, to the intended direction.

I can't mess with the SDK at the moment, not sure how the compatibility toolkit would mess my brother's computer up (have Win 7). I certainly don't want to cause any damage before he leaves home (which is soon). If there is next to no risk...still. At least he's changed the fan, so the overheating problem is no more *touch wood*.
  16:40:41  6 February 2011
profilee-mailreply Message URLTo the Top
mnn
Senior Resident
 

 
On forum: 06/12/2009
Messages: 2694
This is what you're after?
http://img248.imageshack.us/img248/4176/railroadsr1.jpg
http://img821.imageshack.us/img821/1832/railroadsr2.jpg

position = 317.092864990234,21.8181171417236,243.432678222656
direction = -0.011203708127141,0.488269299268723,0.0356119908392429

; cse_shape properties
shapes = shape0
shape0:type = box
shape0:axis_x = 160.492370605469,0,0
shape0:axis_y = 0,26.0146045684814,0
shape0:axis_z = 0,0,15.9573993682861

  18:07:16  6 February 2011
profilee-mailreply Message URLTo the Top
Kaidonni
First the Zone, then the world!
(Resident)

 

 
On forum: 08/30/2008
Messages: 1072
Yes, thanks. Thanks very much. Well, the position of the restrictor isn't, but the direction is. My main goal was to create the box to cover from near enough the train carriage by the bridge, to the radiation kill zone beyond the breach in the fence. It's just the direction that matters, as the whole section of train track is roughly pointed in the same direction. I wonder why ZRP wasn't giving me the correct values...oh well. I'm going to look into the compatibility toolkit, although I do have a question as regards that - I have Win 7, and when the new computer is fully installed, it will too. I'm aware that Win 7, while allowing use of the SDK with the compatibility toolkit, doesn't allow ai map compiling. If I did modify any of the levels in the SDK, would I need to keep compiling a new ai map? Does everything have to be re-done each time? If so...I'd probably only be able to use the visual feedback (but it beats loading Stalker up dozens of times and moving to the different areas to gather info, etc).
  19:29:22  6 February 2011
profilee-mailreply Message URLTo the Top
mnn
Senior Resident
 

 
On forum: 06/12/2009
Messages: 2694
I still don't understand what area you want to cover with sr, but obviously it doesn't matter anymore...

As for AI map compilation. Who told you that? It's perfectly possible to compile AI map even under Win7 (Compatibility toolkit isn't necessary for it). Actually, I recommend to have 64-bit Win7, so you won't get "out of memory" crashes.

As for recompiling AI map: you don't have to recompile it. If you don't want to modify it, you can keep even vanilla one.
  19:43:22  6 February 2011
profilee-mailreply Message URLTo the Top
Lijenstina
Doom metal in the shade of the flying radiators
(Resident)

 

 
On forum: 07/23/2005
 

Message edited by:
Lijenstina
02/06/2011 19:45:51
Messages: 1902
Use a screenshot taken in demo record and mark the area you want to have excluded with an image editor.
Picture says better than 1000 words.

Orientation is in radians ~= 1.57 is 90 degrees. Pi is 180.

Nord is usually 0 for x as a i remember correctly.
  22:00:21  6 February 2011
profilee-mailreply Message URLTo the Top
crucifist
(Senior)
 
On forum: 12/14/2009
Messages: 105
I'm going crazy ... I can:

- call respawn from the menu. If my 3 NPCs are dead, the will be respawned
- If I quit the map, my NPCs will never respawn (even if I call manually the script).
- I can wait for days, but the NPCs won't respawn if I don't call the function.

No one has seen those problems?
  22:07:39  6 February 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
@kaidonni, forget about ai map and just build. The file/files you need will be :
level.spawn -> newly spawned objects
level.game -> new way points.
  22:11:37  6 February 2011
profilee-mailreply Message URLTo the Top
Kaidonni
First the Zone, then the world!
(Resident)

 

 
On forum: 08/30/2008
Messages: 1072
Okay, the bell tolls for modding Stalker. I'm getting a CTD with no stack trace. Here's my logic for the NPCs...


[logic@esc_railroad_post1]
active = walker@esc_railroad_post1
combat_ignore = combat_ignore@esc_railroad
on_hit = hit@railsoldier
on_death = death@railsoldier

[walker@esc_railroad_post1]
path_walk = post1_walk
path_look = post1_look
meet = meet@railsold_zoneguard
combat_ignore_cond = {-esc_railroad_pass_fire =fighting_actor =is_alive(032)}
on_actor_dist_le_nvis = 35 | remark@esc_railroad_post1_1
on_info = {+esc_railroad_pass_fire} walker3@esc_railroad_post1

[remark@esc_railroad_post1_1]
anim = guard
target = actor
on_actor_dist_le_nvis = 20 | remark@esc_railroad_post1
combat_ignore_cond = {-esc_railroad_pass_fire =fighting_actor =is_alive(032)}
on_info = {+esc_railroad_pass_fire} walker3@esc_railroad_post1

[remark@esc_railroad_post1]
anim = guard
target = actor
snd = esc_bridge_soldiers
on_signal = sound_end| walker2@esc_railroad_post1
combat_ignore_cond = {-esc_railroad_pass_fire =fighting_actor =is_alive(032)}

[walker2@esc_railroad_post1]
path_walk = post1_walk
path_look = post1_look
meet = meet@railsold_zoneguard
combat_ignore_cond = {-esc_railroad_pass_fire =fighting_actor =is_alive(032)}

[walker3@esc_railroad_post1]
path_walk = post1_walk
path_look = post1_look
combat_ignore_cond = {-esc_railroad_pass_fire =fighting_actor =is_alive(032)}

[logic@esc_railroad_patrol1]
active = patrol@esc_railroad_day_patrol_commander
combat_ignore = combat_ignore@esc_railroad
on_hit = hit@railsoldier
on_death = death@railsoldier

[patrol@esc_railroad_day_patrol_commander]
path_walk = dayrail_patrol_walk
path_look = dayrail_patrol_look
formation = back
commander = true
combat_ignore_cond = {-esc_railroad_pass_fire =fighting_actor =is_alive(032)}

[meet@railsold_zoneguard]
meet_state 		= 30| {+esc_railroad_pass_on} guard, guard@ {+esc_railroad_pass_on} talk_hello, wait
meet_state_wpn 	= 30| {+esc_railroad_pass_on} guard, guard@ {+esc_railroad_pass_on} talk_hello, wait
victim 			= 30| actor
victim_wpn 		= 30| actor
use			= true
use_wpn		= true
;zone			= esc_railroad_kill_zone|{-esc_railroad_pass_on} true@ {-esc_railroad_pass_on} esc_bridge_soldiers
meet_dialog		= esc_railroad_soldiers_start
precond = visibility

[combat_ignore@esc_railroad]
combat_ignore_cond = {-esc_railroad_pass_fire =fighting_actor}

[hit@railsoldier]
on_info = {=hit_by_actor} %+esc_railroad_pass_fire%

[death@railsoldier]
on_info = {=killed_by_actor} %+esc_railroad_pass_fire%



Anything stand out as wrong? Whenever I speak to the one NPC (the only one I can talk to, actually), the CTD occurs. I do have info portions and I have the dialogue for the NPCs (esc_railroad_soldiers_start and all the relevant entries underneath it for the discussion, I made sure to go through the .xml files). It was 'working' before, although my NPCs ignored the combat ignore commands and insisted on opening fire whenever I crossed the line (even after paying them the bribe).
  22:27:00  6 February 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
Is "commander = true" a valid statement?
I always thought there is only "leader = true"
  22:37:37  6 February 2011
profilee-mailreply Message URLTo the Top
mnn
Senior Resident
 

 
On forum: 06/12/2009
Messages: 2694
Vintar: xr_patrol.set_scheme(...):
st.commander = utils.cfg_get_bool (ini, section, "commander", npc, false, false)



Kaidonni: esc_railroad_soldiers_start dialog might be invalid, I think.
  23:16:19  6 February 2011
profilee-mailreply Message URLTo the Top
Kaidonni
First the Zone, then the world!
(Resident)

 

 
On forum: 08/30/2008
Messages: 1072
"commander = true" comes from the blokpost patrol logic, so I guess it must be.

That said, I must be missing something to do with the dialogue, then. Not sure where. But apart from that, the guys still open fire when I've bribed them...
  23:31:15  6 February 2011
profilee-mailreply Message URLTo the Top
crucifist
(Senior)
 
On forum: 12/14/2009
 

Message edited by:
crucifist
02/06/2011 23:31:36
Messages: 105
My respawn finally works, but I don't know why ...

I have deleted "hard spawn" in the alife_generators.ltx" file. To fill my ST I only use the respawn section. The spawn is generated entering the map after 2 or 3 days. If it can helps someone ...:


[9091]
; cse_abstract properties
section_name = smart_terrain
name = smart_generators_village
position = -110.64280700684,37.96125793457,-490.61651611328
direction = 0,0,0

; cse_alife_object properties
game_vertex_id = 2981
distance = 10.3999977111816
level_vertex_id = 198275
object_flags = 0xffffffbe
offline = false
custom_data = <<END
[smart_terrain]
type = smart_generators_village
capacity = 3
;squad = 3
groups = 1
communities = stalker
END

; cse_shape properties
shapes = shape0
shape0:type = sphere
shape0:offset = 0,0,0
shape0:radius = 1.64799988269806

; cse_alife_space_restrictor properties
restrictor_type = 0

; se_smart_terrain properties



[9092]
; cse_abstract properties
section_name = respawn
name = village_stalker_respawn_1
position = -119.88652038574,37.427352905273,-480.15625
direction = 0,0,0

; cse_alife_object properties
game_vertex_id = 2966
distance = 16.7999992370605
level_vertex_id = 191156
object_flags = 0xffffff3e
custom_data = <<END
[respawn]
respawn_section = village_stalker_respawn_1,village_stalker_respawn_2,village_stalker_respawn_3
;max_count = 3
;min_count = 3
max_spawn = 2
idle_spawn = often
END

; cse_shape properties
shapes = shape0
shape0:type = sphere
shape0:offset = 0,0,0
shape0:radius = 1

; cse_alife_space_restrictor properties
restrictor_type = 0

; se_respawn properties



spawn_sections.ltx:

[village_stalker_respawn_1]:stalker
$spawn 				= "respawn\village_stalker_respawn_1"
character_profile	= sim_stalker_master
spec_rank = master
community = stalker

[village_stalker_respawn_2]:stalker
$spawn 				= "respawn\village_stalker_respawn_2"
character_profile	= sim_stalker_veteran
spec_rank = veteran
community = stalker

[village_stalker_respawn_3]:stalker
$spawn 				= "respawn\village_stalker_respawn_3"
character_profile	= sim_stalker_novice
spec_rank = novice
community = stalker

  23:41:00  6 February 2011
profilee-mailreply Message URLTo the Top
mnn
Senior Resident
 

 
On forum: 06/12/2009
Messages: 2694

---QUOTATION---
That said, I must be missing something to do with the dialogue, then. Not sure where. But apart from that, the guys still open fire when I've bribed them...
---END QUOTATION---


Post dialog on pastebin.com, and the link here...
  00:45:55  8 February 2011
profilee-mailreply Message URLTo the Top
gannebamm
has abondened XRay and uses Unity3D now
(Resident)

 

 
On forum: 05/02/2007
Messages: 1077

---QUOTATION---

I have deleted "hard spawn" in the alife_generators.ltx" file. To fill my ST I only use the respawn section. The spawn is generated entering the map after 2 or 3 days. If it can helps someone ...:

---END QUOTATION---


You have deleted what?
  14:30:06  8 February 2011
profilee-mailreply Message URLTo the Top
crucifist
(Senior)
 
On forum: 12/14/2009
 

Message edited by:
crucifist
02/08/2011 18:00:40
Messages: 105
I have deleted the stalker sections (bound to my ST) from alife_generators.ltx. I'm sure that it doesn't depend of it, but I don't find what is wrong. I try to make a second respawn section, but with bloodsuckers. It doesn't work at all. The smart terrain is offline and bloodsuckers don't spawn.

Strange ....

EDIT: If you want to see my files:

alife_generators.ltx:


[9092]
; cse_abstract properties
section_name = smart_terrain
name = smart_generators_antenna
position = 17.001342773438,34.851463317871,-258.14599609375
direction = 0,0,0

; cse_alife_object properties
game_vertex_id = 3077
distance = 10.3999977111816
level_vertex_id = 332934
object_flags = 0xffffffbe
offline = false
custom_data = <<END
[smart_terrain]
type = smart_generators_antenna
capacity = 3
;squad = 3
;groups = 1
communities = bloodsucker
END

; cse_shape properties
shapes = shape0
shape0:type = sphere
shape0:offset = 0,0,0
shape0:radius = 1.64799988269806

; cse_alife_space_restrictor properties
restrictor_type = 0

; se_smart_terrain properties

[9094]
; cse_abstract properties
section_name = respawn
name = antenna_blood_respawn_1
position = -116.88652038574,37.427352905273,-480.15625
direction = 0,0,0

; cse_alife_object properties
game_vertex_id = 2966
distance = 16.7999992370605
level_vertex_id = 191156
object_flags = 0xffffff3e
custom_data = <<END
[respawn]
respawn_section = bloodsucker_weak, bloodsucker_normal
;max_count = 3
;min_count = 3
max_spawn = 3
idle_spawn = often
END

; cse_shape properties
shapes = shape0
shape0:type = sphere
shape0:offset = 0,0,0
shape0:radius = 1

; cse_alife_space_restrictor properties
restrictor_type = 0

; se_respawn properties



way_generators.ltx:



[smart_generators_antenna_path_blood1]
points = p0
p0:name = wp00
p0:position = 18.001342773438,34.851463317871,-258.14599609375
p0:game_vertex_id = 3077
p0:level_vertex_id = 332934

[smart_generators_antenna_path_blood2]
points = p0
p0:name = wp00
p0:position = 19.001342773438,34.851463317871,-259.14599609375
p0:game_vertex_id = 3077
p0:level_vertex_id = 332934

[smart_generators_antenna_path_blood3]
points = p0
p0:name = wp00
p0:position = 20.001342773438,34.851463317871,-257.14599609375
p0:game_vertex_id = 3077
p0:level_vertex_id = 332934




gulag_generators.script:

local t = {}
function load_job(sj, gname, type, squad, groups)

	if type == "smart_generators_antenna" then
		get_console():execute("antenna1")
		t = {section = "logic@smart_generators_antenna1",
		idle = 0, timeout = 0, prior = 100, state = {0},squad = squad,
		group = groups[1], position_threshold = 100, online = true, in_rest = "",
		out_rest = "", predicate = function(obj_info) return obj_info.rank >= 900 end}
		get_console():execute("table_insert")
		table.insert(sj, t)
		
		t = {section = "logic@smart_generators_antenna2",
		idle = 0, timeout = 0, prior = 100, state = {0},squad = squad,
		group = groups[1], position_threshold = 100, online = true, in_rest = "",
		out_rest = "", predicate = function(obj_info) return obj_info.rank >= 900 end}
		get_console():execute("table_insert")
		table.insert(sj, t)
		
		t = {section = "logic@smart_generators_antenna3",
		idle = 0, timeout = 0, prior = 100, state = {0},squad = squad,
		group = groups[1], position_threshold = 100, online = true, in_rest = "",
		out_rest = "", predicate = function(obj_info) return obj_info.rank >= 900 end}
		get_console():execute("table_insert")
		table.insert(sj, t)
	end

end

function load_ltx(gname, type)
	return nil
end

function load_states(gname, type)

	if type == "smart_generators_antenna" then
	get_console():execute("check_antenna")
		return function(gulag)
			return 0  -
		end
	end
	
end

function checkMonster(npc_community, gulag_type)

	
if gulag_type == "smart_generators_antenna" then
		return npc_community == "bloodsucker"
	end	
	return false

end



gulag_generators.ltx:

[logic@smart_generators_antenna1]
active = mob_home@smart_generators_antenna1
 
[mob_home@smart_generators_antenna1]
path_home     = path_blood1

[logic@smart_generators_antenna2]
active = mob_home@smart_generators_antenna2
 
[mob_home@smart_generators_antenna2]
path_home     = path_blood2

[logic@smart_generators_antenna3]
active = mob_home@smart_generators_antenna3
 
[mob_home@smart_generators_antenna3]
path_home     = path_blood3



smart_terrains_presets.ltx


[l13_generators]
bloodsucker		= normal, weak, strong
giant			= normal, strong
pseudo_gigant	= normal, strong
cat 			= normal, strong




se_respawns.script:

bloodsucker_weak = 10, bloodsucker_normal = 50, bloodsucker_strong = 20



EDIT: works. I still don't know why ...
EDIT2: it remains another problem: for exemple, if my ST has a capacity of 5, only 4 NPCs will spawn. It's strange because all jobs/logics are written and don't seem to be wrong ...
  22:26:37  12 March 2011
profilee-mailreply Message URLTo the Top
Kaidonni
First the Zone, then the world!
(Resident)

 

 
On forum: 08/30/2008
 

Message edited by:
Kaidonni
03/12/2011 22:32:47
Messages: 1072
*Bump* Necroposting in my own thread...

I've decided to try some more modding again, as the siren call is irresistible...however, once again, I cannot figure out what is wrong with the bloody logic I am using. Excepting the issue with getting separate meet dialogue to work (something entirely different, I tried separate dialogue to the Bridge patrol and got CTDs, probably missed an xml file somewhere), I am still being shot at if I enter the kill zone I have set up AFTER bribing my new NPCs. That isn't supposed to happen, obviously. Here's a link to pastebin and the section that shoots first and doesn't ask questions: http://pastebin.com/Anv1kmRh

I doubt it'd be anything to do with xml editing, since that's to do with the dialogue. Unfortunately, as I said before, I'm missing something there, so I'm defaulting to the Bridge soldiers dialogue (meet_dialog if I am correct). Not that big a deal. What bothers me is I have the logic the same as the bridge soldier logic on the pass_fire part of the equation, and the ignoring of combat.
  23:59:09  12 March 2011
profilee-mailreply Message URLTo the Top
mnn
Senior Resident
 

 
On forum: 06/12/2009
Messages: 2694
Kaidonni: What does the dialog look like?

From an outsider (me), it looks like that you switched info portions esc_railroad_pass_fire and esc_railroad_pass_on in the dialogue...
  00:57:53  13 March 2011
profilee-mailreply Message URLTo the Top
Kaidonni
First the Zone, then the world!
(Resident)

 

 
On forum: 08/30/2008
 

Message edited by:
Kaidonni
03/13/2011 1:03:08
Messages: 1072
Don't quite get what you're asking. Do you mean the file info_l01escape.xml? If so, my entry there is as follows:


  <!-- infoportions for railroad soldiers -->
  <info_portion id="esc_railroad_pass_on">
    <disable>esc_railroad_pass_off</disable>
  </info_portion>
  <info_portion id="esc_railroad_pass_off">
    <disable>esc_railroad_pass_on</disable>
  </info_portion>
  <info_portion id="esc_railroad_pass_fire"></info_portion>



It's identical to the bridge soldiers info portion, save for the naming. And here's dialogs_escape.xml...http://pastebin.com/EVknF2VE (because pre refuses to work for some reason...).
  14:44:10  13 March 2011
profilee-mailreply Message URLTo the Top
Kaidonni
First the Zone, then the world!
(Resident)

 

 
On forum: 08/30/2008
 

Message edited by:
Kaidonni
03/13/2011 14:51:01
Messages: 1072
Would I be correct in assuming that I *need* a unique dialogue for my new NPCs? It seems that it is the dialogue sets in the xml files that activate infoportions, and if I'm giving these guys the bridge dialogue, then it isn't activating the railroad pass, but the bridge pass...

EDIT: Whadya know? That's exactly what is happening. I just tested. Bribed my railroad guys, then ran to Kuznetsov and his bridge pals. Ran through the bridge no-go zone. They didn't fire on me. So, need to figure out exactly what I am missing, as using new dialogue causes a CTD. Dialogs_escape.xml is a bit confusing with all the phrase_id references...anyone know a bit about the file and it's structure they could tell me about so I have a better idea of how to mess with it? Thanks.
  18:21:42  13 March 2011
profilee-mailreply Message URLTo the Top
Lijenstina
Doom metal in the shade of the flying radiators
(Resident)

 

 
On forum: 07/23/2005
Messages: 1902
Get the sdk 0.7 you have an dialog editor there. Makes life much easier.
Load the appropriate string file first then the dialog - and edit the hell out of them.
  00:46:13  14 March 2011
profilee-mailreply Message URLTo the Top
Kaidonni
First the Zone, then the world!
(Resident)

 

 
On forum: 08/30/2008
Messages: 1072
Well, I'm seriously considering moving to COP, so...I've already got the SDK loaded up. Downloaded when I realised I didn't need to mess around with the compatibility toolkit.

Should make *EVERYTHING* much easier. No more asking for space restrictor co-ordinates, or deciding where to go to put an anomaly.
  02:24:18  14 March 2011
profilee-mailreply Message URLTo the Top
insanelazarez
Yeah, Good Luck With That...
(Resident)

 

 
On forum: 01/31/2009
Messages: 1070

---QUOTATION---
Is "commander = true" a valid statement?
I always thought there is only "leader = true"
---END QUOTATION---



'leader = ID number' is used For Follower scheme ONLY.

Example:


---QUOTATION---

[follower1]
leader = 9801;Actor as leader doesn't work.
distance = 2;5
stub_for_corpse = true
dont_change_job = false;true
on_signal = leader_dead | follower2
on_info = {=distance_to_obj_le(9801:1.9)} follower2
on_info2 = {+esc_cop_actor_enemy} %=killactor%
danger = test_danger_condition
combat_ignore_cond = {=fighting_dist_ge(10)}
meet = no_meet

etc, etc

---END QUOTATION---



Btw, in this case '9801' is a new Story ID for actor. This way it works ok. If we want we can call leader to... 'The pripyat hotel'.

Now imagine this, 10 follower bandits (drunk animation, no weapons, totally in 'combat_ignore') following a crow... or maybe a helicopter... a space restrictor... or the decoder... abc sleepbag.

Guess what, i'm not joking (this is serious...)
  02:41:16  14 March 2011
profilee-mailreply Message URLTo the Top
dezodor
level designer
(Resident)

 

 
On forum: 04/08/2007
Messages: 3803

---QUOTATION---


Guess what, i'm not joking (this is serious...)
---END QUOTATION---



my senses told me a video is coming soon
  02:48:06  14 March 2011
profilee-mailreply Message URLTo the Top
SetaKat
Ex modder, Zones only ferret and will someday release a game
(Resident)

 

 
On forum: 02/20/2010
Messages: 6340
Looking forward to this... I enjoy watching insanelazarez's videos.
  04:03:26  14 March 2011
profilee-mailreply Message URLTo the Top
Lijenstina
Doom metal in the shade of the flying radiators
(Resident)

 

 
On forum: 07/23/2005
 

Message edited by:
Lijenstina
03/14/2011 4:05:41
Messages: 1902
Or you can make a new scheme that makes the npc follow the actor (actor is a prick like always)

http://www.xfire.com/video/42e6bc/
  02:12:05  15 March 2011
profilee-mailreply Message URLTo the Top
insanelazarez
Yeah, Good Luck With That...
(Resident)

 

 
On forum: 01/31/2009
Messages: 1070

---QUOTATION---


Guess what, i'm not joking (this is serious...)

my senses told me a video is coming soon
---END QUOTATION---



Speaking of the devil:

[link]http://www.youtube.com/watch?v=MlNDxdByMlY[/link]
  13:54:57  23 March 2011
profilee-mailreply Message URLTo the Top
NatVac
Senior Resident
 

 
On forum: 06/15/2007
Messages: 4286
For test purposes, one should create a new type of stalker to go with a smart terrain that only permits that type of stalker to occupy it. STALKER SoC has a broken respawn mechanism so that any vacancy is instantly "reserved", although it might take some time for the replacement stalker to arrive from a remote spawn location. So it looks like the respawn doesn't work.

>> I'm not a LUA programmer but I have notions in POO (I don't know how to say it in english, so I mean "object language")

It's OOP (object-oriented programming), crucifist, but it can be poo in English, too. It depends on the programmer.
__________

---QUOTATION---
Oh, I've figured out what's wrong. The esc P data from ZRP, that's what. I move a little in the direction I want my restrictor in, and gather the data. Only it's wrong. I regathered data just, and it was different to before. So the shape is working, the direction is screwed up... I thought I just had to move a little in the direction I wanted in ZRP before using esc P to gather the correct direction data, but apparently not...
---END QUOTATION---


The problem is not with the hammer, the problem is that it is not the right tool for the screws. Esc P in ZRP does not help you define shapes directly, it just gives you a position and a couple of forms of direction and tells you how those directions apply, to you (you look in a direction) and to objects that have an orientation (vodka bottles, rifles, electro anomalies, etc.). If you don't get that, maybe you should see the docs, like the psychiatrists and/or the optometrists.

Folks can look here for some additional details:

---QUOTATION---
"Direction parameter in the all.spawn"
https://www.gsc-game.com/main.php?t=community&s=forums&s_game_type=xr&thm_id=17494&sec_id=16#264601
My ZRP thread post for level changer directions is on this page:
https://www.gsc-game.com/main.php?t=community&s=forums&s_game_type=xr&thm_id=11786&sec_id=16&page=188#286997

---END QUOTATION---


The direction of an SR is separate from the shape or shapes associated with it, and at this moment I can't tell you if they are related at all without checking it. Their very definition implies otherwise.

Also, start with a single simple box for testing. I've found that moving quickly through a space restrictor may not trigger the space restrictor at all, but that seems to be a sampling interval issue. If you have a modded game where lots of stuff is happening, any checks performed by the game to see if you are in a particular SR might be delayed.

Speaking of the ZRP: 1.07 has a feature by which you can monitor real-time changes in a variable or function result by displaying the information on the HUD in-game. It's called Variable Watch, and you can enter the variable or function to watch while in the game already. So you can check to see when you are in or out of a space restrictor, or if a smart terrain is fully occupied.

The best advice is by mnn:

---QUOTATION---
And I strongly suggest getting SoC SDK and work within Level Editor. It's much better than fiddling around with correct coordinates, directions and stuff...
---END QUOTATION---


And by Lijenstina:

---QUOTATION---
Get the sdk 0.7 you have an dialog editor there. Makes life much easier.
Load the appropriate string file first then the dialog - and edit the hell out of them.
---END QUOTATION---


It sounds like you might have a solution with the CoP SDK, Kaidonni.
  03:35:25  24 March 2011
profilee-mailreply Message URLTo the Top
gannebamm
has abondened XRay and uses Unity3D now
(Resident)

 

 
On forum: 05/02/2007
Messages: 1077

---QUOTATION---

>> I'm not a LUA programmer but I have notions in POO (I don't know how to say it in english, so I mean "object language")

It's OOP (object-oriented programming), crucifist, but it can be poo in English, too. It depends on the programmer.
---END QUOTATION---


that one made my day
  14:34:28  25 September 2011
profilee-mailreply Message URLTo the Top
exostalker
Novice fashion designer since 2008
(Resident)

 

 
On forum: 08/10/2009
 

Message edited by:
exostalker
09/25/2011 14:36:26
Messages: 1267
One question : what is the difference between those space restrictor types?

restrictor_type = 0

I haven't seen any difference between 0, 1, 2, 3 and 4...
  22:54:10  25 September 2011
profilee-mailreply Message URLTo the Top
insanelazarez
Yeah, Good Luck With That...
(Resident)

 

 
On forum: 01/31/2009
Messages: 1070

---QUOTATION---
One question : what is the difference between those space restrictor types?

restrictor_type = 0

I haven't seen any difference between 0, 1, 2, 3 and 4...
---END QUOTATION---



- Exo, if you want to assign a space restrictor just to keep the npc inside (assuming he spawns inside, right?)... you can use any type.

- But if you want to prevent the AI to penetrate the space, you need the type 2 (so you must be very carefull with it). Example, you have a new dude in the bar map outside of the voronin space. But... Now you need the guy to penetrate the space, right? Trust me, the guy is not going to enter at all (because it is type 2). So, you just need to recompile the all.spawn, and change it for... say type '0'. And now he has no limitations (and the duty soldiers, are still connected with it...)

- If you want the restrictor to call a function, a blowout, a helicopter support, a new timer, or a tip... use the type 3.

I don't know about types '1' and '4', sorry.
  23:40:12  25 September 2011
profilee-mailreply Message URLTo the Top
exostalker
Novice fashion designer since 2008
(Resident)

 

 
On forum: 08/10/2009
 

Message edited by:
exostalker
09/26/2011 0:23:41
Messages: 1267
Thanks, that explains a lot!

EDIT:

So I have added this new space restrictor, and it's type is 2.
Coordinates are right.

But NPC's still go in it like there is no restrictor there, or it doesn't work. I tried box, I tried sphere... nothing...

Here is an example:

[110001]
; cse_abstract properties
section_name = space_restrictor
name = exo_rostok_merc_space
position = -89.49577331543,3.0307149887085,122.55830383301
direction = 0,0,0

; cse_alife_object properties
game_vertex_id = 1421
distance = 0
level_vertex_id = 46511
object_flags = 0xffffff3e

; cse_shape properties
shapes = shape0
shape0:type = sphere
shape0 ffset = 0,0,0
shape0:radius = 3.64168655872345

; cse_alife_space_restrictor properties
restrictor_type = 2

Anyone know why isn't it working?
  09:04:58  26 September 2011
profilee-mailreply Message URLTo the Top
exostalker
Novice fashion designer since 2008
(Resident)

 

 
On forum: 08/10/2009
Messages: 1267
Tried to copy other space restrictor from other alife place, still the same thing. I can't see what is wrong...
  20:39:30  26 September 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
Ah this is why i love working in sdk, you just spawn a space restrictor and thats that
  15:02:44  27 September 2011
profilee-mailreply Message URLTo the Top
exostalker
Novice fashion designer since 2008
(Resident)

 

 
On forum: 08/10/2009
Messages: 1267
Yeah but I'm not willing to wait 48 hours for it to render the map...
  18:27:50  27 September 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

---QUOTATION---
Yeah but I'm not willing to wait 48 hours for it to render the map...
---END QUOTATION---


eh, just for space restrictor?...
  18:52:14  27 September 2011
profilee-mailreply Message URLTo the Top
exostalker
Novice fashion designer since 2008
(Resident)

 

 
On forum: 08/10/2009
Messages: 1267
Yeah. From what I heard even if you put in little things in SDK, you will still have to recompile the map.
  21:16:42  27 September 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
Well i'm not an expert in sdk yet but as far as i know if you dont touch geometry or aimap then you just make game which takes less than a minute. Problem in your case is that if you edited spawn with acdc then those changes will be lost when you build a new spawn.
  21:30:58  14 November 2011
profilee-mailreply Message URLTo the Top
Muad'Dib
Senior Resident
 

 
On forum: 01/24/2011
 

Message edited by:
Muad'Dib
11/14/2011 21:31:36
Messages: 421
Hello,

I add st and mutant in the marsh level map with no problem, but i don't understand the respawn system.

I add respawn in my alife_marsh.ltx, but dog don't respawn.

Can you help me, plesae?

My files:
alife_marsh.ltx:

---QUOTATION---

[11098]
; cse_abstract properties
section_name = smart_terrain
name = marsh_dogs_cemetery
position = 335.759,7.8373,-75.78197
direction = 0,0,0

; cse_alife_object properties
game_vertex_id = 3528
distance = 16.7999992370605
level_vertex_id = 352850
object_flags = 0xffffff3e
custom_data = <<END
[smart_terrain]
type = marsh_dogs_cemetery
capacity = 4
END

; cse_shape properties
shapes = shape0
shape0:type = sphere
shape0 ffset = 0,0,0
shape0:radius = 3.48219966888428

; cse_alife_space_restrictor properties
restrictor_type = 3

; se_smart_terrain properties


[11099]
; cse_abstract properties
section_name = dog_weak
name = marsh_dogs_cemetery_0001
position = 329.23403930664,7.693202495575,-85.953392028809
direction = 0,0,0

; cse_alife_object properties
game_vertex_id = 3533
distance = 18.1999988555908
level_vertex_id = 349146
object_flags = 0xffffffbf
custom_data = <<END
[smart_terrains]
marsh_dogs_cemetery = true
END

; cse_visual properties
visual_name = monsters\dog\dog_white

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

upd:health = 1
upd:timestamp = 0
upd:creature_flags = 0
upd osition = 329.23403930664,7.693202495575,-85.953392028809
upd _model = 0
upd _torso = -0.00269026355817914,-0.0192443951964378,0
upd:g_team = 0
upd:g_squad = 1
upd:g_group = 14

; 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_ph_skeleton properties

; cse_alife_monster_base properties

; se_monster properties

[11100]
; cse_abstract properties
section_name = dog_weak
name = marsh_dogs_cemetery_0002
position = 339.46734619141,7.6898627281189,-64.916900634
direction = 0,0,0

; cse_alife_object properties
game_vertex_id = 3528
distance = 18.1999988555908
level_vertex_id = 355842
object_flags = 0xffffffbf
custom_data = <<END
[smart_terrains]
marsh_dogs_cemetery = true
END

; cse_visual properties
visual_name = monsters\dog\dog_red

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

upd:health = 1
upd:timestamp = 0
upd:creature_flags = 0
upd osition = 339.46734619141,7.6898627281189,-64.916900634
upd _model = 0
upd _torso = -0.00269026355817914,-0.0192443951964378,0
upd:g_team = 0
upd:g_squad = 1
upd:g_group = 14

; 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_ph_skeleton properties

; cse_alife_monster_base properties

; se_monster properties

[111113]
; cse_abstract properties
section_name = respawn
name = marsh_dogs_cemetery_respawn
position = 339.46734619141,7.6898627281189,-64.916900634
direction = -0.0328151993453503,-0.00691708410158753,-0.207787200808525

; cse_alife_object properties
game_vertex_id = 3528
distance = 16.7999992370605
level_vertex_id = 355842
object_flags = 0xffffff3e
custom_data = <<END
[respawn]
respawn_section = dog_weak, dog_normal
;max_count = 10
;min_count = 3
max_spawn = 5
idle_spawn = often
END

; cse_shape properties
shapes = shape0
shape0:type = sphere
shape0 ffset = 0,0,0
shape0:radius = 1

; cse_alife_space_restrictor properties
restrictor_type = 0

; se_respawn properties

---END QUOTATION---



way_marsh.ltx:

---QUOTATION---

[marsh_dogs_cemetery_path1]
points = p0
p0:name = wp00
p0 osition = 335.759,7.8373,-75.78197
p0:game_vertex_id = 3528
p0:level_vertex_id = 352850

[marsh_dogs_cemetery_path2]
points = p0
p0:name = wp00
p0 osition = 335.759,7.8373,-75.78197
p0:game_vertex_id = 3528
p0:level_vertex_id = 352850

---END QUOTATION---



I add good function to call my logic in the gulag_marsh.script and .ltx

More, i didn't modify the se_respawn.script, and i have it:

---QUOTATION---

dog_weak = 53, dog_normal = 126, dog_strong = 130,

---END QUOTATION---



What is the value in the se_respawn.script?
Is it the max number of mutant in the game?

Should I increase these values?

And another question: what is the link between the st and the respawn?
How the respawn (in the alife_marsh.ltx files) know that my dog is for my st?
Is it the name of the respawn?

I search in vanilla files, but i didn't found a link.
  11:18:14  17 November 2011
profilee-mailreply Message URLTo the Top
Bangalore
Robberbaron
(Resident)

 

 
On forum: 02/17/2008
Messages: 1158

---QUOTATION---
Hello,

I add st and mutant in the marsh level map with no problem, but i don't understand the respawn system.

I add respawn in my alife_marsh.ltx, but dog don't respawn.

Can you help me, plesae?

I add good function to call my logic in the gulag_marsh.script and .ltx

More, i didn't modify the se_respawn.script, and i have it:

dog_weak = 53, dog_normal = 126, dog_strong = 130,

What is the value in the se_respawn.script?
Is it the max number of mutant in the game?

Should I increase these values?

And another question: what is the link between the st and the respawn?
How the respawn (in the alife_marsh.ltx files) know that my dog is for my st?
Is it the name of the respawn?

I search in vanilla files, but i didn't found a link.
---END QUOTATION---



There is no direct link between a smart terrain and a respawn.
Smart terrain offers jobs to the games world, and if there is any free job at a smart terrain, the respawn produces the predefined type npc/mutants to occupy this job.

Gannebamm had a better understanding of respawn/smartie system in ShOC, so i quotate some post from him:

"SHOC´s spawners only spawn there npcs/mutants if there is any job for them in the zone (so in any level). The job itself is blocked after that so no other npc could enter it." "A respawner only kicks in if there are any suitable jobs anywhere in the gameworld. So if there arent any smartterrain which offers free jobs, there will be no respawn."

See more info about respawn in this link (its russian, google translate it):
http://stalkerin.gameru.net/wiki/index.php/SoC._Respawn

A typical respawn, and its explanation:

[respawn]
respawn_section = esc_urody_respawn_1, 12, esc_urody_respawn_2, 9
max_count = 8
min_count = 4
max_spawn = 2
idle_spawn = medium
conditions = 100

Where:
respawn_section = id spawn-sections of the file spawn_section.ltx. The numbers after the decimal point, mean ratio of one section to another. If you plan to an equal number of spawn from each section, the numbers do not need to raise.

max_count = Number of spawn requests for a period of time, while HS is on the scene. When moving to another location, the counter is reset max_count. (Not necessarily set)

min_count = minimum number of NPCs to spawn an emergency. (not necessarily to set)

max_spawn = Number of NPCs per spawn cycle.

idle_spawn = type of spawn. Three known types of medium, often, seldom. Usually, the medium type used.

conditions = spawn condition. You can set the test conditions (infoportion), where the spawn will occur only when the condition met. Number indicates the total percentage of completion spawn. For example:

conditions = {+ infoportion} 100, 0 where the spawn will happen to one hundred percent chance, only if the actor have the set infoportion.

Look into
- general_lager.ltx
- general_lair.ltx
- smart_terrain_presets.ltx
  11:54:34  17 November 2011
profilee-mailreply Message URLTo the Top
Lijenstina
Doom metal in the shade of the flying radiators
(Resident)

 

 
On forum: 07/23/2005
Messages: 1902
You can also do what OL did with the events script. You spawn mutants by a call that is time related (in OL is after the AMK blowout). Just make sections with custom data logic that have a mob_home or mob_walker with an appropriate existing waypoint assigned.
  14:53:30  17 November 2011
profilee-mailreply Message URLTo the Top
Bangalore
Robberbaron
(Resident)

 

 
On forum: 02/17/2008
Messages: 1158

---QUOTATION---
Yeah. From what I heard even if you put in little things in SDK, you will still have to recompile the map.
---END QUOTATION---



I noticed this post only now... i must defend the SDK, what you say ExoStalker is bullsh... *errgghh* wrong.
If you dont change the level geometry, you dont have to recompile the level. If you change for example only the spawn (add or remove npc, monster, restrictors, smarties etc. etc. anything you can spawn), just a matter of "Make Game" in SDK level editor, then few minutes xrAI work and you can use the new all.spawn in the game. Its ready within 2-3 minutes.
  22:39:44  17 November 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

---QUOTATION---
Yeah. From what I heard even if you put in little things in SDK, you will still have to recompile the map.

I noticed this post only now... i must defend the SDK, what you say ExoStalker is bullsh... *errgghh* wrong.
If you dont change the level geometry, you dont have to recompile the level. If you change for example only the spawn (add or remove npc, monster, restrictors, smarties etc. etc. anything you can spawn), just a matter of "Make Game" in SDK level editor, then few minutes xrAI work and you can use the new all.spawn in the game. Its ready within 2-3 minutes.
---END QUOTATION---



Yep I already said this, and it usually takes no more than a minute to make game, with some smaller levels just taking 20 seconds or so.
  13:14:48  20 November 2011
profilee-mailreply Message URLTo the Top
Muad'Dib
Senior Resident
 

 
On forum: 01/24/2011
Messages: 421
Thk for explanation about respawn and smart_terrain.

About sdk, this way need to know this tool and how to use it.
It isn't for me.

I will test again the respawn with all.spawn.

Sorry, but i have again the same question, what is this value in se_respawn.script?


---QUOTATION---
-- Òàáëèöà îãðàíè÷åíèé íà ñïàóí: âñåãî â ñèìóëÿöèè íå äîëæíî áûòü áîëüøå, ÷åì óêàçàíî.
local simMaxCount = {
stalker_novice = 43, stalker_regular = 48, stalker_veteran = 43, stalker_master = 20,
monolith_novice = 0, monolith_regular = 30, monolith_veteran = 35, monolith_master = 30,
military_novice = 0, military_regular = 32, military_veteran = 22, military_master = 5,
killer_novice = 0, killer_regular = 18, killer_veteran = 17, killer_master = 10,
ecolog_novice = 1, ecolog_regular = 1, ecolog_veteran = 1, ecolog_master = 1,
dolg_novice = 0, dolg_regular = 33, dolg_veteran = 36, dolg_master = 17,
freedom_novice = 50, freedom_regular = 20, freedom_veteran = 26, freedom_master = 21,
bandit_novice = 40, bandit_regular = 50, bandit_veteran = 18, bandit_master = 10,
zombied_novice = 20, zombied_regular = 15, zombied_veteran = 10, zombied_master = 10,

rat_weak = 0,
tushkano_weak = 150,
flesh_weak = 14, flesh_normal = 38, flesh_strong = 22,
boar_weak = 52, boar_normal = 38, boar_strong = 27,
dog_weak = 53, dog_normal = 126, dog_strong = 130,
pseudodog_weak = 59, pseudodog_normal = 80, pseudodog_strong = 60,
psy_dog_weak = 15, psy_dog_normal = 15, psy_dog_strong = 15,
zombie_weak = 61, zombie_normal = 50, zombie_strong = 35,
snork_weak = 50, snork_normal = 61, snork_strong = 15,
poltergeist_weak = 10,
pseudo_gigant_weak = 23,
controller_weak = 18,
burer_weak = 20,
bloodsucker_weak = 7, bloodsucker_normal = 40, bloodsucker_strong = 15
---QUOTATION---



"-- Таблица ограничений на спаун: всего в симуляции не должно быть больше, чем указано."
translate with googletrad, i obtain it:
"- Table of restrictions on spawn: only in the simulation should not be more than that."

I don't understand it
  04:06:00  26 November 2011
profilee-mailreply Message URLTo the Top
NatVac
Senior Resident
 

 
On forum: 06/15/2007
Messages: 4286
>> Sorry, but i have again the same question, what is this value in se_respawn.script?

In vanilla, simMaxCount is a local table that is NOT USED. The keyword local means that the table is only "visible" (accessible) within the scope of the block that encloses it (here, it can only be seen within the se_respawn.script file). Now look for that simMaxCount in the file. In vanilla, it is only referenced in either code that is commented out or in statistics functions that are not ever called.

This means the values don't matter in vanilla. It is possible that a mod can use the data, but I have not seen any examples of this.

Bangalore quoted gannebamm, and what gannebamm said is what you should be thinking about.
  11:08:11  26 November 2011
profilee-mailreply Message URLTo the Top
Muad'Dib
Senior Resident
 

 
On forum: 01/24/2011
 

Message edited by:
Muad'Dib
11/26/2011 13:38:35
Messages: 421
Thank you all!

For your patience and your explanations.

Now my smarties and my respawn are functionnal!

EDIT: I have a last question about smarties with type = general_lair.

I saw in vanilla files that it need waypoint: as name_of_smarty_home_1 or name_of_smarty_raid_1 in the way_name_of_level.ltx.

How many waypoint do i need to add for each smarty???
As far as the capacity? or not?

Thk
  19:29:26  26 October 2012
profilee-mailreply Message URLTo the Top
Muad'Dib
Senior Resident
 

 
On forum: 01/24/2011
Messages: 421
Hello guys,

I'm back with new question.

So, i tested a little thing. I opened all gulag_xxx.script and i changed the communities like this:

function checkStalker(npc_community, gulag_type, npc_rank, se_obj)
if gulag_type == "esc_fabrika_bandit" then
return npc_community == "dolg"
or npc_community == "bandit"
or npc_community == "freedom"
or npc_community == "killer"
or npc_community == "military"
or npc_community == "ecolog"
or npc_community == "dark_stalker"
or npc_community == "sin"
or npc_community == "monolith"
or npc_community == "stalker"
end
end

function checkMonster(npc_community, gulag_type)

if gulag_type == "esc_dogs_to_fox" then
npc_community == "boar"
or npc_community == "dog"
or npc_community == "flesh"
or npc_community == "cat"
or npc_community == "tushkano"
or npc_community == "pseudodog"
end
end


The effect in game is very strange. As i see, npc and mutants doesn't use smarties.

About mutant, this way create more "life".

But human don't use smarties and travel between them:

Wolf and rookies camp guys was going to garbage.
Nimble and bandits walked in escape and was killed by mutants.

And the must thing was a big troop of military npc in escape.

[link]http://uppix.net/d/2/d/c4c9fd44713893397bc0cb67e9a77.jpg[/link]
[link]http://uppix.net/9/6/6/938a763fcbb0f3438cc36547cda58.jpg[/link]
[link]http://uppix.net/0/0/1/c7ae40e167d5e668ce47e2a5d220d.jpg[/link]

It's as the npc go to another smarties and don't take the time to rest at the same place. They're moving all time.

It's not as with general_lager and general_lair.

So, someone have a explanation?
How increase the travel time between two smarties or increase the time during which the npc rest in the same smarties?

It's only by curiosity.
  22:45:15  26 October 2012
profilee-mailreply Message URLTo the Top
gannebamm
has abondened XRay and uses Unity3D now
(Resident)

 

 
On forum: 05/02/2007
 

Message edited by:
gannebamm
10/26/2012 22:48:19
Messages: 1077

---QUOTATION---
Hello guys,

I'm back with new question.

So, i tested a little thing. I opened all gulag_xxx.script and i changed the communities like this:

function checkStalker(npc_community, gulag_type, npc_rank, se_obj)
if gulag_type == "esc_fabrika_bandit" then
return npc_community == "dolg"
or npc_community == "bandit"
or npc_community == "freedom"
or npc_community == "killer"
or npc_community == "military"
or npc_community == "ecolog"
or npc_community == "dark_stalker"
or npc_community == "sin"
or npc_community == "monolith"
or npc_community == "stalker"
end
end

function checkMonster(npc_community, gulag_type)

if gulag_type == "esc_dogs_to_fox" then
npc_community == "boar"
or npc_community == "dog"
or npc_community == "flesh"
or npc_community == "cat"
or npc_community == "tushkano"
or npc_community == "pseudodog"
end
end


The effect in game is very strange. As i see, npc and mutants doesn't use smarties.

About mutant, this way create more "life".

But human don't use smarties and travel between them:

Wolf and rookies camp guys was going to garbage.
Nimble and bandits walked in escape and was killed by mutants.

And the must thing was a big troop of military npc in escape.

[link]http://uppix.net/d/2/d/c4c9fd44713893397bc0cb67e9a77.jpg[/link]
[link]http://uppix.net/9/6/6/938a763fcbb0f3438cc36547cda58.jpg[/link]
[link]http://uppix.net/0/0/1/c7ae40e167d5e668ce47e2a5d220d.jpg[/link]

It's as the npc go to another smarties and don't take the time to rest at the same place. They're moving all time.

It's not as with general_lager and general_lair.

So, someone have a explanation?
How increase the travel time between two smarties or increase the time during which the npc rest in the same smarties?

It's only by curiosity.
---END QUOTATION---


these functions determine which types/factions can take jobs in that particular smartterrain/gulag. If you put in those various "or" statements it will return "true" for every listed faction/type so they could pick a job there.
I sometimes feel like describing the same stuff over and over again... not your fault!
iirc (which does not have to be since i am out of this since years!) x-ray goes like this:
- load smartterrains/gulags
- determine the jobs there
- fetch jobs for all.spawned characters (if they are not hardcoded anyway)

now the interesting part:
- check respawners for idle
- - if not in idle anymore AND there are possible jobs for the to respawn things (factionmembers/creaturetypes) spawn them and fetch those jobs

So i bet that the respawners for military are fast and since those smartterrains are at escape where the military respawner is near to they will get spammed by those. Other thing is that smartterrains are restricted by both gulag.scripts and the custom data block in all.spawn. I am not shure what restricion will win, maybe both will work together. So you maybe get the checkStalker() for respawners and job binding but the latter will get prevented by the factioninfo in all.spawn (which is just bandits/loner (or is the loner one a second smarty?) in vanilla for fabrica_bandit iirc).

If you want that different factions can take jobs from those smartterrains you should grab a copy of aliVe and look how we made it. iirc we changed the gulag.scripts plus the entries in all.spawn plus a hell of a lot of tinkering in se_respawn and other ltxes to not spam everything with stalkers/mutants.



---QUOTATION---

Bangalore quoted gannebamm, and what gannebamm said is what you should be thinking about.
---END QUOTATION---


  23:31:39  26 October 2012
profilee-mailreply Message URLTo the Top
Muad'Dib
Senior Resident
 

 
On forum: 01/24/2011
Messages: 421
Thanks gannebamm,

And sorry if you repeat again the same answer.
I understand this point, i know it in french forum.

If i understand, it's a balance between the quantity/speed of respawn (so, the quantity of each communities npc) and the disponibility of each smarties.

I think that was a long work to equilibrate this system.

---QUOTATION---

Bangalore quoted gannebamm, and what gannebamm said is what you should be thinking about.
---END QUOTATION---

As i'm the disciple of Bangalore, you're my "Maître à penser" by extension.
  00:07:59  27 October 2012
profilee-mailreply Message URLTo the Top
gannebamm
has abondened XRay and uses Unity3D now
(Resident)

 

 
On forum: 05/02/2007
 

Message edited by:
gannebamm
10/27/2012 0:24:14
Messages: 1077

---QUOTATION---
Thanks gannebamm,

And sorry if you repeat again the same answer.
I understand this point, i know it in french forum.

If i understand, it's a balance between the quantity/speed of respawn (so, the quantity of each communities npc) and the disponibility of each smarties.

I think that was a long work to equilibrate this system.

---QUOTATION---

Bangalore quoted gannebamm, and what gannebamm said is what you should be thinking about.
---END QUOTATION---

As i'm the disciple of Bangalore, you're my "Maître à penser" by extension.
---END QUOTATION---


i´ve read your post once more. I have missed that you actually altered every gulag.script to return jobs for every faction. I am not shure how the gulag-switching* is computed in vanilla and if it is used at all but maybe thats whats happening at your game. And at the very begining of a game in stalker there are much less npcs than jobs in the gameworld (even in vanilla). So the zone gets populated slowly (or fast depends on how much you change the level and reload .> ask NatVac about that or see ZRPs changelog ) and the new spawned npcs travel to their jobs. Since escape has the military respawn it spits out those dozens of mil-stalkers who travel to whatever job they were assigned to. If you would start in bar level there would be dozens of dutiers travelling around. From the pictures i guess you use a quite huge gameworld with more than the vanilla levels? And most of these new levels are setup with gulags but nearly no hardspawned stalkers in all.spawn (like nimble or fox or bes and the loners at loner camp in escape all these are "hardspawned" through all.spawn entries).

*gulag-switch: I can not find it in modwiki but i know theire were values like job idle or something somewhere which determine (or i think in vanilla SHOULD determine but do not do it since they all are set to infinite) how long a (generic)stalker stays at a job. There were 3 or 4 like seldom,medium,fast or so. I thought these are part of customData in all.spawn but the smartterrain entries in modwiki do not have those and i do not have a decompiled all.spawn currently (or a all.spawn in not binary format, i dont think that this would be called decompiled but anyway)


:::
@ NatVac: Are you 100% shure about the se_respawn.script table? Since i think we had to tinker with that table for aliVe long long long ago. In fact it is quite easy to test. Set everything to zero ("0" and look if respawns happen - if they do its crap but if not it gets read from somewhere. Just because a function which is written in LUA isnt called by LUA-part of the game it has not to be disabled does it? I mean the LUA part is called by the compiled c++ core and loaded into the game. You could put a debug statement in there to check that. Isnt LUA even capable to put a function call into a table? It will likely crash but maybe you could put in a simple print to console debug function in these table to check if it gets called - same with statistics block. But you have allready done such stuff iirc cause you had this interesting gamedata without all those not needed functions and LUA code which loads ten times faster than vanilla...

btw. has anybody a copy of aliVe? Links are dead...
  10:48:29  27 October 2012
profilee-mailreply Message URLTo the Top
Muad'Dib
Senior Resident
 

 
On forum: 01/24/2011
Messages: 421
Yes, I changed the check npc function in all gulag scripts files.
And no, i'm not working on a big mod with more levels. Now, i'm only working on vanilla levels (this is only a test, by curiosity, to understand the engine).

But i activated all smarties in all.spawn, i deleted all condition for do it.
So, i increased quickly the free job places.

In consequence, you're right. As i have a lot of empty smarties, the respawn work continuous and npc walk to join empty smart terrains.



---QUOTATION---
There were 3 or 4 like seldom,medium,fast or so. I thought these are part of customData in all.spawn but the smartterrain entries in modwiki do not have those and i do not have a decompiled all.spawn currently (or a all.spawn in not binary format, i dont think that this would be called decompiled but anyway)
---END QUOTATION---



custom_data = <<END
[smart_terrain]
;cond = {-agroprom_military_case_done}
type = esc_flesh_1
capacity = 2
stay = long
END

It's "stay" parameter.
With 3 values. quick/medium/long.

So, with use stay = long for each smart_terrain, a very low going_speed value in m_stalker.ltx, and maybe too a low respawn frequenty, it could balance it.
  17:07:25  27 October 2012
profilee-mailreply Message URLTo the Top
gannebamm
has abondened XRay and uses Unity3D now
(Resident)

 

 
On forum: 05/02/2007
Messages: 1077

---QUOTATION---
Yes, I changed the check npc function in all gulag scripts files.
And no, i'm not working on a big mod with more levels. Now, i'm only working on vanilla levels (this is only a test, by curiosity, to understand the engine).

But i activated all smarties in all.spawn, i deleted all condition for do it.
So, i increased quickly the free job places.

In consequence, you're right. As i have a lot of empty smarties, the respawn work continuous and npc walk to join empty smart terrains.


There were 3 or 4 like seldom,medium,fast or so. I thought these are part of customData in all.spawn but the smartterrain entries in modwiki do not have those and i do not have a decompiled all.spawn currently (or a all.spawn in not binary format, i dont think that this would be called decompiled but anyway)

custom_data = <<END
[smart_terrain]
;cond = {-agroprom_military_case_done}
type = esc_flesh_1
capacity = 2
stay = long
END

It's "stay" parameter.
With 3 values. quick/medium/long.

So, with use stay = long for each smart_terrain, a very low going_speed value in m_stalker.ltx, and maybe too a low respawn frequenty, it could balance it.
---END QUOTATION---


"stay = long" +
"It's "stay" parameter.
With 3 values. quick/medium/long. "
no since in vanilla all those values had a way to high number in some config file or script file i can not recall currently. You have to change the values in that config/script file to get them properly executed.
  23:55:05  28 October 2012
profilee-mailreply Message URLTo the Top
gannebamm
has abondened XRay and uses Unity3D now
(Resident)

 

 
On forum: 05/02/2007
Messages: 1077
I pop in again to add:
As NatVac with the help of some others has discovered are the vanilla respawners badly coded which leads to way to fast spawned npcs/mutants (some timer issue in there). So i would recomenend you to use latest version of ZRP in which this was issue deadled with (iirc again - i haven´t followed all this for quite a time!)
  13:41:57  29 October 2012
profilee-mailreply Message URLTo the Top
Muad'Dib
Senior Resident
 

 
On forum: 01/24/2011
Messages: 421
Hey,

I used ZRP 1.05 R10, the last version is too big for me.
And i used the Natvac respawn population manager too.

About "You have to change the values in that config/script file to get them properly executed."
I'll look at this.
Thanks you again.

Now, i'm working on path_walk and path_look with the level_editor. I need to study the flag system.
  10:51:25  17 November 2012
profilee-mailreply Message URLTo the Top
Storm Shadow
A machine, a Shadow Machine.
(Resident)

 

 
On forum: 11/14/2007
Messages: 1430
@all

hey guys, i just wanted to ask a related question:

how do you extend the distance that monsters can wander from their smart terrains (or gulags, or whatever)?

cheers in advance,

yours.
  22:14:40  14 December 2013
profilee-mailreply Message URLTo the Top
gannebamm
has abondened XRay and uses Unity3D now
(Resident)

 

 
On forum: 05/02/2007
Messages: 1077

---QUOTATION---
@all

hey guys, i just wanted to ask a related question:

how do you extend the distance that monsters can wander from their smart terrains (or gulags, or whatever)?

cheers in advance,

yours.
---END QUOTATION---



Hi, a bit late but who cares!

There are distance values in some config files you could increase AND this is more likely you have some space restrictors which prevent your aLife creature from going any further (in and out restrictors)

cheers, gbamm
 
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-2021 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.