Avenger Posted March 11, 2015 Share Posted March 11, 2015 spec = [xxx.yyy.zzz.vvv.qqq]xxx, yyy, zzz, vvv, qqq - integer numbers - I have no idea what do they mean These numbers are the ID values. (IDs targeting, EA/General/..etc). If there is a creature fulfilling the 'specification', then the spawn won't occur. It should be set to the ID values of the creature, or infinite spawning will occur. Link to comment
lynx Posted March 11, 2015 Share Posted March 11, 2015 Doesn't it take into account spec_qty for deciding if more should be spawned or not? Link to comment
Avenger Posted March 11, 2015 Author Share Posted March 11, 2015 A lot more fields are taken into account, but if these numbers aren't the same as those in the spawned critter, you're gonna have a bad time. Link to comment
K4thos Posted March 17, 2015 Share Posted March 17, 2015 spec = [xxx.yyy.zzz.vvv.qqq] xxx, yyy, zzz, vvv, qqq - integer numbers - I have no idea what do they mean These numbers are the ID values. (IDs targeting, EA/General/..etc). If there is a creature fulfilling the 'specification', then the spawn won't occur. It should be set to the ID values of the creature, or infinite spawning will occur. thanks for clarification, but I'm afraid this is not precise enough. I read somewhere that you were porting IWD features to EE engine for Beamdog, so it would be great if you could share with us more about this file format, if you have that knowledge that is (not sure if Beamdog received full ini documentation, or if it is obvious from the source code. Hope it's not under NDA). Some truly amazing spawn mods are now possible for BG2:EE (yep, this feature has been backported from IWD:EE to BG2:EE in patch 1.3 and will be probably added to BG:EE in next patch) xxx = spawned creature Allegiance. If you set wrong value here than you will end up with this problem yyy = ? always set to 0 in default IWD/IWD2 ini files) zzz = ? as above vvv = ? as above qqq = probably refers to SPECIFIC.IDS, but from my tests you just need to add the same value to ai_specifics entry and it will work without expanding SPECIFIC.IDS For IESDP maintainers - whole INI documentation is lacking. There are many undocumented options available spawn_point = [xxxx.yyyy:z] xxxx - is x position on the area yyyy - is y position on the area z - is the face direction of spawned creature. this can have multiple values assigned, for example: [0765.0305],[0820.0375],[0680.0330],[0765.0430],[0835.0490],[0600.0355]. Not sure if the spawn will be random or if it will be present in all these places (probably the former based on how cre_file works) cre_file = CRE_file_nameFile name of CRE file without extension that is used for spawned creatures. this one accepts multiple cre files as well. They will be spawned randomly (also see spec_qty) spec_qty = integer number some number, I have seen only value 1, usage unknown, you can set how many cre files will be spawned at once. If you choose multiple cre_file than there will be random spawn, for example: cre_file=wolf01,bearbl,worg and spec_qty=3 will spawn any variation of these 3 creatures (3 wolfs, 2 worgs and 1 black bear, 3 bears etc.). ------ In case someone is interested in helping with testing here is a code that will disable vanilla BG2:EE spawns (useless for IWD:EE as it doesn't have ARE spawn points): COPY_EXISTING_REGEXP GLOB ~.+\.ARE~ ~override~ PATCH_IF NOT ("%SOURCE_SIZE%" = 0) BEGIN READ_LONG 0x60 "spawn_off" ELSE 0 READ_LONG 0x64 "spawn_num" ELSE 0 FOR (index = 0 ; index < spawn_num ; index = index + 1) BEGIN WRITE_SHORT (spawn_off + 0x86 + (0xc8 * index)) 0 END END BUT_ONLY interval= integer numberTime interval before creatures from [name_of_section1] will be spawned. Time is counted in relation 1 minute (of real or game time ?) = 900. The similar definition is given in case of [name_of_section2] or other sections defined by user in [spawn_main] section. At last spawned creatures identifier definitions. and change above mentioned value to 1 in order to make the spawn work without delays. edit: updated list of working BG2:EE arguments is available in this post. Link to comment
lynx Posted March 17, 2015 Share Posted March 17, 2015 My guess is the vars from Avenger's note are likely from the targetting list: [EA.FACTION.TEAM.GENERAL.RACE.CLASS.SPECIFIC.GENDER.ALIGNMNT.SUBRACE.AVCLASS.CLASSMSK] Link to comment
K4thos Posted March 17, 2015 Share Posted March 17, 2015 Yeah, I understand that, but we need to know more details to make it reliable. First value is Allegiance (EA), last is SPECIFIC. Which ones are between them. If you mess up order (at least the first value based on my tests) than you get infinite spawns, so IESDP can't have such vague explanation. Link to comment
Avenger Posted March 17, 2015 Author Share Posted March 17, 2015 7 numbers: ea/general/race/class/specific/gender/alignment They don't use faction, team etc. (At least in IWDEE/IWD/HoW). You can use fewer numbers, they default to 0, this is why there are only five numbers, ending with specific. Link to comment
K4thos Posted March 17, 2015 Share Posted March 17, 2015 thanks, now it makes sense and we know the exact order Link to comment
lynx Posted August 11, 2015 Share Posted August 11, 2015 Ok, some more notes. Previous reverse engineering suggested interval has a lower cap in pst: http://gibberlings3.net/forums/index.php?showtopic=23623&p=194547 pst also has partyarea and partypoint, used at least for entering tno's tomb. Keeps the party out of it. For some reason, the same nice solution wasn't used for the fortress. Neither for the player maze, but that one has multiple entry points, so it's understandable. Link to comment
K4thos Posted August 24, 2017 Share Posted August 24, 2017 Some more notes based on BG2:EE patch 2.x [spawn_main] //section of the file where 'enter' and 'events' type spawns are assigned enter //list of all 'enter' type spawns (spawns that should happen when you enter the area) events //list of all 'events' type spawns (repeating spawns) critters //list of all spawn point names associated with 'events' or 'enter' type spawns interval //how much time should pass before engine re-checks conditions for another spawn (measured in game ticks) spec_var //if GLOBAL variable referenced here is not set, then the spawn won't occur spec //if there is a creature fulfilling the 'spec', then the spawn won't occur. It should be set either to the CRE DV or ID values of the creature [EA.GENERAL.RACE.CLASS.SPECIFIC.GENDER.ALIGN] spec_qty //how many creatures will be spawned (spawn point will re-spawn death creature even if other spawned creatures are still alive) create_qty //how many creatures will be spawned (spawn point will re-spawn creatures only if all of them are death) cre_file //filename of the CRE that should be spawned script_name //overwrite spawned CRE script name (DV) ai_ea //overwrite spawned CRE ea value ai_general //overwrite spawned CRE general value ai_race //overwrite spawned CRE race value ai_class //overwrite spawned CRE class value ai_gender //overwrite spawned CRE gender value ai_specifics //overwrite spawned CRE specifics value ai_alignment //overwrite spawned CRE alignment value script_override //overwrite spawned CRE override script script_class //overwrite spawned CRE class script script_race //overwrite spawned CRE race script script_general //overwrite spawned CRE general script script_default //overwrite spawned CRE default script script_area //overwrite spawned CRE area script (not remembered after game load) script_specifics //overwrite spawned CRE specifics script dialog //overwrite spawned CRE dialog file spawn_point //spawn point coordinates eg. [1200.600:14] (the last argument is facing and can be omitted, several spawn point coordinates can be separated with commas) facing //CRE facing after spawn (can be also set via 'spawn_point') ignore_can_see //if set to 1 spawn point will be active even if you're in a view of a spawn point (default = 0) do_not_spawn //disables spawn point (useless considering there is no way to enable it in-game) Example usage: [spawn_main] enter=ENTER events=8_HOURS [ENTER] critters=SpawnPoint1 interval=1 [8_HOURS] critters=SpawnPoint2 interval=432000 [SpawnPoint1] spec = AASIM cre_file = AASIM spawn_point = [1200.600:14] ignore_can_see = 1 [SpawnPoint2] spec = ABELA cre_file = ABELA spawn_point = [1200.600:14] ignore_can_see = 1 INI spawn points don't work with SpawnPtActivate, SpawnPtDeactivate, SpawnPtSpawn actions. There are several other arguments that either don't work at all (leftovers from other games?) or I don't know what they do or how to use them. If someone has more information regarding them please share the knowledge. [locals] spec_area control_var ai_faction ai_team good_mod law_mod lady_mod murder_mod death_scriptname death_faction death_team point_select point_select_var 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 spawn_time_of_day time_of_day Link to comment
lynx Posted August 24, 2017 Share Posted August 24, 2017 about a third look like from pst, just from their names. Link to comment
argent77 Posted August 24, 2017 Share Posted August 24, 2017 These creature options are only relevant for PST/PST:EE good_mod // Increment global "Good" by specified amount when killed (can be negative) law_mod // Increment global "Law" by specified amount when killed (can be negative) lady_mod // Increment global "Lady" by specified amount when killed (can be negative) murder_mod // Increment global "Murder" by specified amount when killed (can be negative) Link to comment
lynx Posted August 24, 2017 Share Posted August 24, 2017 Same for the faction ones, right? the law and good are for TNO's alignment system, lady is her piss-me-off counter and murder something similar (for that evil book?). Link to comment
Avenger Posted August 24, 2017 Author Share Posted August 24, 2017 Many of these don't work (because they were unneeded in the official campaign). Just talking about IWDEE (and BG*). It is probably easier to tell which ones from that list actually do more than parsing the .ini: spec_area - it allows defining a rectangular/circle area, where it looks for the specific creature (other spec stuff). So you can theoretically limit your respawn condition to a portion of the area. (Untested). You can have 2 3 or 4 data elements. 2 - defines a point, checks if the creature is in that point 3 - defines a point and a radius, checks if the creature is in that circle 4 - defines a rectangular area.... point_select and point_select_var also work. Also the save_* keywords. Link to comment
K4thos Posted August 24, 2017 Share Posted August 24, 2017 thanks for the info. spec_area - it allows defining a rectangular/circle area, where it looks for the specific creature (other spec stuff). So you can theoretically limit your respawn condition to a portion of the area. (Untested). You can have 2 3 or 4 data elements. 2 - defines a point, checks if the creature is in that point 3 - defines a point and a radius, checks if the creature is in that circle 4 - defines a rectangular area.... can't get this one to work as intended. I've just tried following variants with spawn_point set to [1200.600] (confirmed that CRE is spawned exactly at that point via ctrl+M) 1. spec_area = [1200.600] 2. spec_area = [1200.600.100] 3. spec_area = [1000.500.2000.1000] Each one results in infinite spawn from the very beginning. edit: also not exactly sure how this can be tested: point_select and point_select_var also work. Also the save_* keywords. please clarify. In IWD:EE AR6006.INI uses: point_select = R what is R? What "var" refers to in point_select_var? What those save_* keywords are used for? (can't find any examples of them in IWD:EE, PST:EE and IWD2) Thanks in advance. Link to comment
Recommended Posts
Archived
This topic is now archived and is closed to further replies.