• Welcome to Freedom Reborn Archive.
 

Strange M25AI problems and other misc w/ ffx 3.3

Started by shadd421, August 06, 2008, 06:22:23 AM

Previous topic - Next topic

shadd421

Hey folks, I have been experiencing some weird AI problems since installing ffx 3.3. Sorry for the long post, I wanted to provide as much detail as possible so if anyone has any idea of whats going on the help would be much appreciated!

I had been playing Team Skirmish mode with 4 heros, 2 'buddies' and the rest of the roster filled with villains. I noticed after installing ffx 3.3 and generating new AI files for the characters that the AI appeared to be breaking for some characters.

The group of villains rarely moves off of the spawn point until one of my characters gets within sight range. Also of the 2 buddy teammates, the AI does not appear to activate for one of them, sometimes both of them. I guessed that somehow the AI had been turned off, but I no longer have 'Start AI' options on any of the character dropdown menus. I'm not sure if this was removed with the latest version or not, but I haven't seen it stated anywhere that it was.

After doing a bunch of testing in the rumble room last night to try to track down the source of the problem, I discovered that the more characters I include in the rumble room session, the more characters' AI appeared not to function. With a full roster, both 'buddy' characters never move from the starting spot. If I remove some from the roster, say 3 or 4, one of the 'buddies' would sometimes be active but the other would still not be moving. I decided to delete the m25ai file for the buddy that was still not working and regenerate it, and to my surprise he began to work, but the other buddy stopped working! I finally discovered that if I want both team members AI to work, I could have no more than 11 slots filled (8 badguys+1 slot for Buddies seperator+2 Team characters). I tried switching out different characters to see if it was some conflict between the actual character files, but it did not seem to make a difference. Once I got to 15 slots or more filled, the 'buddy' ai would start acting screwy. The group of villains do not appear to move at all from their start spawn unless there is only 5 or 6 of them, while in 3.2 they seemed to at least wander as a group until I encountered them on the map.

I have also been having issues with Field Commander attribute under the same conditions I listed above (over 11 slots filled on villain roster) but it also occurs occasionally when there is less on the roster as well. It does not always activate at the beginning to give my characters an extra hero point, sometimes it does but skips over a character or two. Usually if I restart the level 3 or 4 times immediately, the hero points eventually get applied. It seems like its running into a conflict with to many other attributes being applied at the same time at the start of the mission.

Finally, the phermone attribute is very bad for buddy characters! It affects badguys as well as your main team members ( for example I put Spider-woman in as a buddy and immediately upon load in Wonderman one-shotted wasp!  :lol: )

Also I just wanted to ask if the isLiquid tag works with the Metal-Eater/Urban Dweller attributes. I want my Namor character to gain strength/invuln bonus's when near water. It appears when he picks up a fire-hydrant on the City map he gets energized, so it looks like somethings working, but I guess those are the only objects with the Liquid tag because its the only instance I see him gain any bonus's, the fountains and hydrants on other maps don't appear to do anything for him.

Again, sorry for the novel here, I am at work waiting for something to do so I had time to elaborate. I will see if I can post some console info for these problems when I get home if its necessary. Thanks for any assistance!

M25

I've run some tests and everything seems to be working still.

The most likely cause of the problem is the character IDs being out of sync after the new version.  Run the FFX control centre on the ffx3 mod and that should correct the AI issues.

If not, then please post a copy of your script.log (found in the main Freedom Force directory) here and then we can see which errors you are getting.

The option to turn on the AI for player controlled characters got turned off in the 3.3 update.  To re-enable it, go into ffx3/Missions/Scripts, find the m25config.py file, open it up and change the line

M25_PLAYERAITOGGLE = 0

to

M25_PLAYERAITOGGLE = 1




shadd421

Hey M25, thanks for the help!
OK, when you say run control center on ffx3, you just mean launching the CC and branding all the custom characters (with the Data Folder set to ffx3), correct? I have been doing that every time I adjust a character file, so that should not be the issue.

I ran the CC again just now and set up another rumble room session, same set up with the 2 buddies and filled the rest of the villain roster up. The one buddy who I deleted and generated new AI for the other day(Luke Cage) started running towards the other end of map where the badguys spawned, but the other buddy(Ronin) still didn't budge. Villains did not move at all again until I got in sight range. Here is the scriptlog:

[spoiler]
>>> system/init.py executed
>>> system/localinit.py executed
>>> system\tredir.py executed
loading datfiles version 0.254000
loading cshelper ...
Starting ffx.py v. 3.3.0 build 1; branch = Gold v.3.3
Loading m25ai.py v. 3.3.0 build 1; branch = Gold v.3.3
importing missionobjvar.py v1.20
importing MLOG Reader 1.0.22
Starting General Utilities 1.0.1
missionobjvar(FixLongs): Fixing overflow issue with <SCSTATE_BUOYANT>
missionobjvar defining functions for Rumble Room play.
Loading m25cutscene.py v.3.2.0 final; May 27, 2007
CustomHeadCurrentTime 1218155195.953000
Starting Height Check module 1.4
Starting System Utilities 1.5
OBJECTS_HEIGHT: 604 entries
NIF_OBJECTS: 482 entries
BUILDINGS_IN_OBJECTS_DAT: 30 entries
BUILDING_DIMENSIONS: 30 entries
Starting skXMapInfo.py  v 0.79 beta
skXMapInfo: m25ai available
Loading m25aiopt.py v.3.2.0 final; branch = swingman 4
FFX Mission Plugin 'firehydrant' imported
FFX Mission Plugin 'zombie' imported
Loading freeroam_keepbuildingdamage.py v.1.0.0 build 0; branch = main
FFX Mission Plugin 'freeroam_keepbuildingdamage' imported
FFX Mission Plugin 'm25ai_lowjumper' imported
FFX Mission Plugin 'm25ai_realitymanipulation' imported
FFX Mission Plugin 'cutscene_power' imported
Loading     m25enc_OPENDOOR.py v.1.0.0 build 0; branch = main
Loading m25enc.py v.3.2.0 July 5, 2008
FFX Mission Plugin 'm25enc_opendoor' imported
Loading     m25enc_simplechoice.py v.1.0.0 build 0; branch = main
FFX Mission Plugin 'm25enc_simplechoice' imported
Starting Built-In Function Wrapper 1.5
('Object_CalcPrestige', 'js')
ffx3\Missions\Scripts\sk.py importing FFX
ffx3\Missions\Scripts\sk.py loaded
>>> C:\Users\Steve\AppData\Local\Irrational Games\Freedom Force vs the 3rd Reich\temp\cM25 Skirmish Team Mode.py executed
>>> C:\Users\Steve\AppData\Local\Irrational Games\Freedom Force vs the 3rd Reich\temp\danger.py executed
>>> C:\Users\Steve\AppData\Local\Irrational Games\Freedom Force vs the 3rd Reich\temp\cM25 Skirmish Team Mode.py executed
>>> OnReceiveSelectedEnemies(('---Buddies---', 'custom_vil_0', 'custom_vil_1', '------------', 'custom_vil_2', 'custom_vil_3', 'custom_vil_4', 'custom_vil_5', 'custom_vil_6', 'custom_vil_7', 'custom_vil_8', 'custom_vil_9', 'custom_vil_10', 'custom_vil_11'SkirmishSpawnEnemy: custom_vil_0 (luke cage, 1102)
SkirmishSpawnEnemy: custom_vil_1 (ronin, 1126)
SkirmishSpawnEnemy: custom_vil_2 (griffin, 1372)
SkirmishSpawnEnemy: custom_vil_3 (wizard, 1330)
SkirmishSpawnEnemy: custom_vil_4 (vermin, 1317)
SkirmishSpawnEnemy: custom_vil_5 (the hood, 1341)
SkirmishSpawnEnemy: custom_vil_6 (the answer, 1326)
SkirmishSpawnEnemy: custom_vil_7 (shockwave, 1367)
SkirmishSpawnEnemy: custom_vil_8 (scarecrow, 1329)
SkirmishSpawnEnemy: custom_vil_9 (razorfist, 1337)
SkirmishSpawnEnemy: custom_vil_10 (mandrill, 1364)
SkirmishSpawnEnemy: custom_vil_11 (madame masque, 1346)
SkirmishSpawnEnemy: custom_vil_12 (living laser, 1340)
SkirmishSpawnEnemy: custom_vil_13 (deathwatch, 1345)
SkirmishSpawnEnemy: custom_vil_14 (cutthroat, 1318)
SkirmishSpawnEnemy: custom_vil_15 (crossfire, 1327)
SkirmishSpawnEnemy: custom_vil_16 (corruptor, 1336)
SkirmishSpawnEnemy: custom_vil_17 (chemistro, 1328)
SkirmishSpawnEnemy: custom_vil_18 (bushwhacker, 1338)
SkirmishSpawnEnemy: custom_vil_19 (Brother Grimm, 1342)
SkirmishSpawnEnemy: custom_vil_20 (blood brother, 1331)
SkirmishSpawnEnemy: custom_vil_21 (blackout, 1370)
Traceback (innermost last):
  File "<string>", line 1, in ?
  File "C:\Users\Steve\AppData\Local\Irrational Games\Freedom Force vs the 3rd Reich\temp\cM25 Skirmish Team Mode.py", line 59, in OnReceiveSelectedEnemies
    m25skirmish.SkirmishSpawnEnemy(enemy)
  File "C:\Program Files\Irrational Games\Freedom Force vs The 3rd Reich\.\ffx3\missions\scripts\m25skirmish.py", line 137, in SkirmishSpawnEnemy
    SkirmishSetupAI(name, team)
  File "C:\Program Files\Irrational Games\Freedom Force vs The 3rd Reich\.\ffx3\missions\scripts\m25skirmish.py", line 205, in SkirmishSetupAI
    m25ai.SetupAI(name)
  File "C:\Program Files\Irrational Games\Freedom Force vs The 3rd Reich\.\ffx3\missions\scripts\m25ai.py", line 354, in SetupAI
    m25custompowers.AddCustomPowers(char)
  File "C:\Program Files\Irrational Games\Freedom Force vs The 3rd Reich\.\ffx3\missions\scripts\m25custompowers.py", line 85, in AddCustomPowers
    datfiles.Campaign_RewritePowers(ChangePowers=changelist)
  File "C:\Program Files\Irrational Games\Freedom Force vs The 3rd Reich\.\ffx3\missions\scripts\datfiles.py", line 1049, in Campaign_RewritePowers
    blockpos = ppositions[pname]            # where in the DAT the 184 byte block starts
KeyError: zzz106
! GetMapInfo
MLOG_Init(keepRunningModules=0): starting up
mlogreader.MLOG_Init: current mission = 'MP_CITY'
initialising FFX: skirmish=1
mapinfocaliper0 is not a valid explosion object
mapinfocaliper1 is not a valid explosion object
mapinfocaliper2 is not a valid explosion object
mapinfocaliper3 is not a valid explosion object
numberStr=46
storing hero_0: id_1,-46
numberStr=47
storing hero_1: id_2,-47
numberStr=48
storing hero_2: id_3,-48
numberStr=49
storing hero_3: id_4,-49
Traceback (innermost last):
  File "C:\Users\Steve\AppData\Local\Irrational Games\Freedom Force vs the 3rd Reich\temp\cM25 Skirmish Team Mode.py", line 42, in OnPostInit
    m25skirmish.SetupPreexisting()
  File "C:\Program Files\Irrational Games\Freedom Force vs The 3rd Reich\.\ffx3\missions\scripts\m25skirmish.py", line 228, in SetupPreexisting
    m25ai.SetupCharacter(c)
  File "C:\Program Files\Irrational Games\Freedom Force vs The 3rd Reich\.\ffx3\missions\scripts\m25ai.py", line 221, in SetupCharacter
    SetupAI(c)         
  File "C:\Program Files\Irrational Games\Freedom Force vs The 3rd Reich\.\ffx3\missions\scripts\m25ai.py", line 354, in SetupAI
    m25custompowers.AddCustomPowers(char)
  File "C:\Program Files\Irrational Games\Freedom Force vs The 3rd Reich\.\ffx3\missions\scripts\m25custompowers.py", line 85, in AddCustomPowers
    datfiles.Campaign_RewritePowers(ChangePowers=changelist)
  File "C:\Program Files\Irrational Games\Freedom Force vs The 3rd Reich\.\ffx3\missions\scripts\datfiles.py", line 1049, in Campaign_RewritePowers
    blockpos = ppositions[pname]            # where in the DAT the 184 byte block starts
KeyError: zzz106
initialising FFQ_initialiseExtras()
FFX_UpdateSun: getting default sun
FFX_UpdateSun: setting = (-140.0, 70.0, 1.0, 0.800000011921, (0.699999988079, 0.600000023842, 0.600000023842))
Traceback (innermost last):
  File "C:\Program Files\Irrational Games\Freedom Force vs The 3rd Reich\.\ffx3\missions\scripts\ffx.py", line 662, in initAttribs
    object=initialiseChar(object)
  File "C:\Program Files\Irrational Games\Freedom Force vs The 3rd Reich\.\ffx3\missions\scripts\ffx.py", line 851, in initialiseChar
    m25ai.SetupCharacter(char)
  File "C:\Program Files\Irrational Games\Freedom Force vs The 3rd Reich\.\ffx3\missions\scripts\m25ai.py", line 221, in SetupCharacter
    SetupAI(c)         
  File "C:\Program Files\Irrational Games\Freedom Force vs The 3rd Reich\.\ffx3\missions\scripts\m25ai.py", line 354, in SetupAI
    m25custompowers.AddCustomPowers(char)
  File "C:\Program Files\Irrational Games\Freedom Force vs The 3rd Reich\.\ffx3\missions\scripts\m25custompowers.py", line 85, in AddCustomPowers
    datfiles.Campaign_RewritePowers(ChangePowers=changelist)
  File "C:\Program Files\Irrational Games\Freedom Force vs The 3rd Reich\.\ffx3\missions\scripts\datfiles.py", line 1049, in Campaign_RewritePowers
    blockpos = ppositions[pname]            # where in the DAT the 184 byte block starts
KeyError: zzz106
initAttribsForChar: working on custom_vil_18_19 (bushwhacker)
initAttribsForChar (bushwhacker): looking at attribute metaleater
execInitAttrib: init metaleater attribute
    on custom_vil_18_19 of template custom_vil_18 (bushwhacker)
initAttribsForChar (bushwhacker): looking at attribute crack shot
initAttribsForChar (bushwhacker): looking at attribute combatskill2
execInitAttrib: init combatskill2 attribute
    on custom_vil_18_19 of template custom_vil_18 (bushwhacker)
initAttribsForChar (bushwhacker): looking at attribute cybernetic brain
initAttribsForChar (bushwhacker): looking at attribute lesserregeneration
execInitAttrib: init lesserregeneration attribute
    on custom_vil_18_19 of template custom_vil_18 (bushwhacker)
initAttribsForChar: working on custom_vil_17_18 (chemistro)
initAttribsForChar (chemistro): looking at attribute atomtouch
execInitAttrib: init atomtouch attribute
    on custom_vil_17_18 of template custom_vil_17 (chemistro)
initAttribsForChar: working on custom_vil_15_16 (crossfire)
initAttribsForChar (crossfire): looking at attribute combatskill2
execInitAttrib: init combatskill2 attribute
    on custom_vil_15_16 of template custom_vil_15 (crossfire)
initAttribsForChar (crossfire): looking at attribute crack shot
initAttribsForChar (crossfire): looking at attribute telepathy
execInitAttrib: init telepathy attribute
    on custom_vil_15_16 of template custom_vil_15 (crossfire)
initAttribsForChar: working on custom_vil_16_17 (corruptor)
initAttribsForChar (corruptor): looking at attribute hatemonger
execInitAttrib: init hatemonger attribute
    on custom_vil_16_17 of template custom_vil_16 (corruptor)
initAttribsForChar (corruptor): looking at attribute presence
execInitAttrib: init presence attribute
    on custom_vil_16_17 of template custom_vil_16 (corruptor)
initAttribsForChar: working on hero_2 (spider-man)
initAttribsForChar (spider-man): looking at attribute danger sense
initAttribsForChar (spider-man): looking at attribute wall climbing
initAttribsForChar (spider-man): looking at attribute ffqtrapezist
execInitAttrib: init nimble attribute inside ['ffqtrapezist', 'nimble', 'acrobatic', 'superleaper', 'ffqlowjumper', 'ffqropeswinger'] combo
    on hero_2 of template custom_template_48 (spider-man)
execInitAttrib: init acrobatic attribute inside ['ffqtrapezist', 'nimble', 'acrobatic', 'superleaper', 'ffqlowjumper', 'ffqropeswinger'] combo
    on hero_2 of template custom_template_48 (spider-man)
execInitAttrib: init superleaper attribute inside ['ffqtrapezist', 'nimble', 'acrobatic', 'superleaper', 'ffqlowjumper', 'ffqropeswinger'] combo
    on hero_2 of template custom_template_48 (spider-man)
execInitAttrib: init ffqlowjumper attribute inside ['ffqtrapezist', 'nimble', 'acrobatic', 'superleaper', 'ffqlowjumper', 'ffqropeswinger'] combo
    on hero_2 of template custom_template_48 (spider-man)
execInitAttrib: init ffqropeswinger attribute inside ['ffqtrapezist', 'nimble', 'acrobatic', 'superleaper', 'ffqlowjumper', 'ffqropeswinger'] combo
    on hero_2 of template custom_template_48 (spider-man)
initAttribsForChar (spider-man): looking at attribute webslinger
execInitAttrib: init webslinger attribute
    on hero_2 of template custom_template_48 (spider-man)
initAttribsForChar (spider-man): looking at attribute blitzkrieg
initAttribsForChar: working on hero_1 (ironfist)
initAttribsForChar (ironfist): looking at attribute blitzkrieg
initAttribsForChar (ironfist): looking at attribute nimble
initAttribsForChar (ironfist): looking at attribute disciplined
initAttribsForChar (ironfist): looking at attribute extra heroic
initAttribsForChar (ironfist): looking at attribute combatskill2
execInitAttrib: init combatskill2 attribute
    on hero_1 of template custom_template_47 (ironfist)
initAttribsForChar: working on hero_3 (wolverine)
initAttribsForChar (wolverine): looking at attribute claws
initAttribsForChar (wolverine): looking at attribute blitzkrieg
initAttribsForChar (wolverine): looking at attribute solid skeleton
initAttribsForChar (wolverine): looking at attribute wall climbing
initAttribsForChar (wolverine): looking at attribute superhealer
execInitAttrib: init superhealer attribute
    on hero_3 of template custom_template_49 (wolverine)
initAttribsForChar: working on hero_0 (Echo)
initAttribsForChar (Echo): looking at attribute acrobatic
execInitAttrib: init acrobatic attribute
    on hero_0 of template custom_template_46 (Echo)
initAttribsForChar (Echo): looking at attribute blitzkrieg
initAttribsForChar (Echo): looking at attribute combatskill2
execInitAttrib: init combatskill2 attribute
    on hero_0 of template custom_template_46 (Echo)
initAttribsForChar (Echo): looking at attribute ffqlowjumper
execInitAttrib: init ffqlowjumper attribute
    on hero_0 of template custom_template_46 (Echo)
initAttribsForChar (Echo): looking at attribute nimble
initAttribsForChar: working on custom_vil_21_22 (blackout)
initAttribsForChar (blackout): looking at attribute claws
initAttribsForChar (blackout): looking at attribute lightcontrol
execInitAttrib: init lightcontrol attribute
    on custom_vil_21_22 of template custom_vil_21 (blackout)
initAttribsForChar (blackout): looking at attribute nocturnal
execInitAttrib: init nocturnal attribute
    on custom_vil_21_22 of template custom_vil_21 (blackout)
initAttribsForChar (blackout): looking at attribute wall climbing
Plugin 'firehydrant' OnPostInit() called
Plugin 'zombie' has no OnPostInit()
Plugin 'freeroam_keepbuildingdamage' OnPostInit() called
Plugin 'm25ai_lowjumper' has no OnPostInit()
Plugin 'm25ai_realitymanipulation' has no OnPostInit()
Plugin 'cutscene_power' has no OnPostInit()
Plugin 'm25enc_opendoor' has no OnPostInit()
Plugin 'm25enc_simplechoice' has no OnPostInit()
2
1
Template_GetMesh() fatal error: template 'custom_vil_12' not found
Template_GetHeight() non-fatal error:
    template 'custom_vil_12' not found in list of template heights.
    To detect approximate height, use
    checkHeight(templateList, precise = 'no', repeat = 0, replace = 0, giants = 1, campaign = 0)
Template_GetMesh() fatal error: template 'custom_vil_14' not found
Template_GetHeight() non-fatal error:
    template 'custom_vil_14' not found in list of template heights.
    To detect approximate height, use
    checkHeight(templateList, precise = 'no', repeat = 0, replace = 0, giants = 1, campaign = 0)
Template_GetMesh() fatal error: template 'custom_vil_15' not found
Template_GetHeight() non-fatal error:
    template 'custom_vil_15' not found in list of template heights.
    To detect approximate height, use
    checkHeight(templateList, precise = 'no', repeat = 0, replace = 0, giants = 1, campaign = 0)
Template_GetMesh() fatal error: template 'custom_vil_21' not found
Template_GetHeight() non-fatal error:
    template 'custom_vil_21' not found in list of template heights.
    To detect approximate height, use
    checkHeight(templateList, precise = 'no', repeat = 0, replace = 0, giants = 1, campaign = 0)
Template_GetMesh() fatal error: template 'custom_vil_4' not found
Template_GetHeight() non-fatal error:
    template 'custom_vil_4' not found in list of template heights.
    To detect approximate height, use
    checkHeight(templateList, precise = 'no', repeat = 0, replace = 0, giants = 1, campaign = 0)
Template_GetMesh() fatal error: template 'custom_vil_7' not found
Template_GetHeight() non-fatal error:
    template 'custom_vil_7' not found in list of template heights.
    To detect approximate height, use
    checkHeight(templateList, precise = 'no', repeat = 0, replace = 0, giants = 1, campaign = 0)
custom_vil_10_11 is jumping low
[/spoiler]

stumpy

You may want to open up FFEdit and check your Powers (and Defences) tab to make sure there are powers zzz1 through zzz300. The error in your script.log may be indicating that zzz106 is missing. It could be something else, too, but I would check that zzz106 (and the rest) appear to be there.

If they aren't, it may be that your powers.dat file is corrupt and a re-install of FFX may be needed.

shadd421

Thanks stumpy! That did the trick. I was missing zzz100, and I just remerged my backup powers.dat with the ffx3.3 one. The ai is behaving normally now. The help is much appreciated guys. :thumbup:

Epimethee

Thanks for the bug reports. I'll see what can be done for Field Commander.

shadd421

The problem I was having with field commander seems to have been resolved with remerging the powers.dat, but the phermones attribute is still effecting your main characters when they have a buddy with the attribute. It seems to work fine when the character with the attribute is on your main team though.