Displacer Posted December 9, 2011 Posted December 9, 2011 Seems there are more to these than are seen. Looking through the code there are other entries that can be used that are not listed, probably because they do not occur in any of the existing ini files. For instance the following: exit detail_level control_var spawn_time_of_day ai_ea ai_general ai_race ai_class ai_gender auto_buddy spawn_facing_global check_crowd etc. etc. There are quite a few more, not in any order and I'm not sure yet what goes under which [] section (pretty sure exit goes under [spawn_main] but not sure about the others)
i30817 Posted December 9, 2011 Posted December 9, 2011 Could you print out a list and put it here in spoilers? Can you figure out what the arguments are? (0, 1) or something else?
Avenger Posted December 10, 2011 Posted December 10, 2011 The AI_* keywords set the spawned critter to the specific value. spawn_facing_global sets its orientation to the value stored in the global var.
Avenger Posted December 10, 2011 Posted December 10, 2011 detail_level is connected to torment.ini/program_options/detail_level. To filter out unimportant critters, if detail level is low. Btw, only the first letter of detail level counts (High/Medium/Low) Though, there is a bug in the .exe which seems to cause high and medium the same. When parsing the ini file, it sets the value of high when it encounters a 'medium' entry.
Displacer Posted December 10, 2011 Author Posted December 10, 2011 Yea a lot of these appear to be overrides to defaults for individual critters. I suppose that gives a lot of flexibility which apparently they didn't take advantage of, doesn't mean others can't though I'll toss up a list soon and maybe someone can play with them and see what they do quicker than I can trace the code for them
Displacer Posted December 10, 2011 Author Posted December 10, 2011 OK here's the list I've found. Note it does not contain the nameless entries, they are in another section of code I haven't gotten to: :: BlackIsle events spawn_main exit enter detail_level interval critters control_var spawn_time_of_day spec_var spec spec_area spec_qty cre_file create_qty script_name ai_ea ai_general ai_race ai_class ai_gender ai_specifics ai_alignment ai_faction ai_team script_override script_class script_race script_general script_default script_area script_specifics dialog good_mod law_mod lady_mod murder_mod death_scriptname death_faction death_team spawn_point point_select point_select_var facing ignore_can_see check_crowd find_safest_point Save_selected_point save_selected_facing spawn_point_global spawn_facing_global inc_spawn_point_index hold_selected_point_key check_by_view_port do_not_spawn auto_buddy detail_level time_of_day Also I have no idea how many of these actually work, what input they take etc. etc.
Displacer Posted December 17, 2011 Author Posted December 17, 2011 Looks like under [spawn_main] valid entries are events enter exit NOTE: In the IESDP, it says "event=name_of_section2" it should be "events=name_of_section2"
Avenger Posted December 18, 2011 Posted December 18, 2011 I didn't find any examples of exit. It doesn't really make sense to spawn creatures in an area on exit. enter - seems to be an one time spawn when the area is created (at least that's how i implemented it in gemrb). spawn_time_of_day/Blackisle is just a dead string, not used in spawn ini.
Displacer Posted December 18, 2011 Author Posted December 18, 2011 Well I could think of one reason for a spawn on exit. Say you go to an area and wreck the place, it would be a nice touch if you had a army waiting for you on your return looking for revenge. Using exit would spawn them to the area without you knowing about it, making for a unpleasant surprise when you returned... More info on [spawn_main], the events entry, and possibly enter and exit can have several arguments. I don't know if there's a limit yet but the arguments can be separated by either a "," or a "." These arguments can be seen under the actual section label set in "events" (an example would be the "critters" list).
Displacer Posted December 18, 2011 Author Posted December 18, 2011 Found something interesting. At the point where it's processing "interval". It appears that it has a minimum. It checks if it's lower than 0x0f and if it is it sets it to 0x0f. Odd since there's several ini files that have a value less than 0x0f. May have been a last minute hack to the code before they shipped Here's the relevant code: .text:007E9DFE mov edx, [ebp+var_A8] .text:007E9E04 cmp dword ptr [edx+30h], 0Fh .text:007E9E08 jnb short loc_7E9E17 .text:007E9E0A mov eax, [ebp+var_A8] .text:007E9E10 mov dword ptr [eax+30h], 0Fh
Recommended Posts
Archived
This topic is now archived and is closed to further replies.