News:

Rings of Reznor!

Main Menu

EZScript Comics Vol. 2

Started by BentonGrey, December 31, 2008, 01:36:37 AM

Previous topic - Next topic

M25

Prev's right on both counts.  It's looking for an encounter marker and not finding one.  Put a marker named encounter1 somewhere on the map.  And the second aquaman line is missing the says.




BentonGrey

#31
D'oh!  STILL?  I JUST read through it AGAIN looking for that.  Prev...do the rest of my testing for me. :P  Hmm...I've got an encounter_1.....and I guess that's the problem...apparently I put an underscore in there for no reason...urrghhh...Thanks guys, now on to the next problem caused by my stupidity. :banghead:

Okay, the briefing is now working like a charm, and the next mission as well...BUT, at the very end I had a CTD.  I don't have a clue what caused it, and I can't see anything in the script.log or FF.log.  I'm attaching the pertinent area of the mission.  Unfortunately the pertinent area of the script.log is too big for the boards, so I'm uploading it.

Spoiler
#---------------------------------------

Encounter: Final1
Type: Custom
Actions: Allies Do Not Fight, Allies Can Be Freed, Allies Cower, Villains Fight Heroes, Allies Thank Heroes, Rivals Fight Villains, Heroes Rescue Allies
Villains: warlord, thug_with_grenade, thug_with_gun
Rivals: civilian_martian, civilian_martian
Minions: thug_with_gun, thug_with_grenade, thug_with_grenade, thug_with_gun
Allies: doctor
Marker: escape1
Next: __win__

Alert Cutscene:
Camera on flash
flash says, "Now that I've got all of this under control, its time to catch up with Jonas' kidnappers. I should just be able to catch them before they leave town, but I'll need to search the city at super speed..."

Start Cutscene:
Camera on Villain1
Villain1 turns to flash
Villain1 says, "Jeez you're tenacious ain'cha'? Well, you'd better stay awful still, or the good Professor is liable to have an 'accident?'"
Cinematic camera on Rival1 to Villain1
Rival1 turns to Villain1
Rival1 plays animation melee
Rival1 says, "Fool! You were supposed to keep this one occupied!"
Villain1 turns to Rival1
Villain1 says, "Hey, we ain't pinched yet, just let me handle this!"
Rival1 says, "We did not pay for such incompetence. Do you not realize that he is more than fast enough to take that primitive firearm away from you before you even BEGIN to pull the trigger?"
Rival2 says, "<Enough of this, these morsels have all outlived their usefulness. Let's just kill them all and be done with it!>"
Rival1 turns to Rival2
Rival1 says, "<You're right, our presence has been exposed anyway, we may as well feast!>"
Camera on flash
flash says, "What in the world? This just keeps getting stranger and stranger!"
Camera on Villain1
Villain1 says, "Hey, what are you two yammerin' on about?"
Rival1 says, "Your death, human!"

Ally thanks hero Cutscene:
Camera on flash
Ally1 moves to flash
flash says, "Professor, are you alright?"
Ally1 says, "Yes...yes, I believe I'm uninjured. Thank you Flash, I don't know what they had planned for me, but these...creatures that had hired those thugs seemed positively inhuman!"
flash says, "I believe you may be exactly right Professor. Did they say anything to you that might give us a clue as to what was going on?"
Ally1 says, "No...but they did say that there was a truck waiting for me on the outskirts of town, perhaps you might find something useful inside?"
flash says, "Even better, I think I'll trail it to their destination and see if I can't unravel this mystery."


The crash occured after the main villain had been KOed, along with several of his minions, and at least one of the other villains.  None of the rivals were KOed yet.  It happened JUST as a thug_with_gun was KOed by one of the rivals.

The script.log: http://f1.grp.yahoofs.com/v1/gPBjSdm8DuFTl-DnwrmcnlN41V8zbI1w2rh7irXEBrJQs1qj6M_I-rxcFLa76nH_HQK9Y1yVQryYNh91cTmwZw/script.log
God Bless
"If God came down upon me and gave me a wish again, I'd wish to be like Aquaman, 'cause Aquaman can take the pain..." -Ballad of Aquaman
Check out mymods and blog!
https://bentongrey.wordpress.com/

BentonGrey

#32
Okay, after a second play through, I did not get the same error, so I'm moving on and hoping it was a one time thing.  I've got plenty other troubles to keep me busy.  Let's start with mission 7, which is working perfectly, except for the last encounter.  It won't start, and I've tested it six ways from Sunday.  I've tried removing all of the dialog from the cutscenes in case I made a typo, I've double and triple checked the heading, and everything SEEMS copacetic to me.  I can't tell what the trouble is.  

Here is the encounter in question:

Spoiler
#----------------------------------

Encounter: Final1
Type: Examine
Villains: white_martian, white_martian, white_martian, white_martian
Objects: alien_mineral
Marker: cave1
Next: __win__

Alert Cutscene:
Red Arrow on Villain1
Unfade for 2 seconds
Camera on martian_man
martian_man says, "Now that we've disabled their communications, it is imperative that we destroy the device as well."
flash says, "Well that's great, but how do we go about it, the thing is over ten stories tall!?"
martian_man says, "If we can defeat the last of their guards, I may be able to overload it in the same manner I did their communications array. Their arrogance has not diminished in ten thousand years, and they fear nothing in this isolated region."

Start Cutscene:
Camera on Villain1
Villain1 turns to martian_man
Villain1 says, "It is the last Manhunter, he must be behind the communications blackout! Destroy him and the his ape lackeys!"
Camera on flash
flash says, "Lackeys?"

Examine Cutscene:
Camera on martian_man
martian_man moves to cave1_object1
martian_man says, "Hmm...yes, this should be enough. This machine will no longer aid our enemies!"

End Cutscene:
Camera on batman
batman moves to martain_man
martian_man turns to batman
batman says, "Now we'd better get back to Metropolis, who knows what trouble Superman and the others have gotten into by now."

Here is the script.log
Spoiler
>>> system/init.py executed
>>> system/localinit.py executed
>>> system\tredir.py executed
Starting ffx.py v. 3.2.0 build 11; branch = Gold / Release
Loading m25ai.py v. 3.2.0 build 10; branch = beta 2: m25 branch 2
importing missionobjvar.py v1.18
loading datfiles version 0.251000
importing MLOG Reader 1.0.18 release
Starting General Utilities 1.0
missionobjvar(FixLongs): Fixing overflow issue with <SCSTATE_BUOYANT>
missionobjvar defining functions for Campaign play.
CustomHeadCurrentTime 1231350724.515000
Starting Height Check module 1.4
Starting System Utilities 1.4
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
[SNIP]
FFX Mission Plugin 'firehydrant' imported
FFX Mission Plugin 'zombie' imported
Loading freeroam_keepbuildingdamage.py v.1.0.0 build 0; branch = main
FREEROAM_KBD: initialized
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.py v.3.2.0 July 27, 2008
Loading m25freeroam.py v. 3.2.0 build 7; branch = m25 branch 1
FFX Mission Plugin 'm25encexit' imported
Loading     m25enc_OPENDOOR.py v.1.0.0 build 0; branch = main
FFX Mission Plugin 'm25enc_opendoor' imported
FFX Mission Plugin 'm25enc_reqchar' imported
Loading     m25enc_simplechoice.py v.1.0.0 build 0; branch = main
FFX Mission Plugin 'm25enc_simplechoice' imported
FFX Mission Plugin 'm25encstory' imported
Starting Built-In Function Wrapper 1.5
('Object_CalcPrestige', 'js')
>>> C:\Documents and Settings\Owner\Local Settings\Application Data\Irrational Games\Freedom Force vs the 3rd Reich\temp\mission.py executed
MISSION: EZScript MiniMod/Campaign Precache.
PSTORY: {'name': 'JLA6', 'encounters': [{'marker': 'cave1', 'type': 'Examine', 'timeofday': 'none', 'required_map': [], 'trigger': [], 'next': ['__win__'], 'objectives': [], 'parameters': [['objects', 'alien_mineral']], 'name': 'Final1', 'villains': ['white_martian', 'white_martian', 'white_martian', 'white_martian'], 'cutscenes': [{'replace': [['villain1', 'villain']], 'name': 'Alert', 'required': ['martian_man', 'flash'], 'priority': 1, 'cutscene': ['CS_Start()', "CS_AddArrow('villain1arrow', 'villain1', arrow_type=js.ARROW_RED)", 'CS_UnFade(2)', "CS_Camera('martian_man', dist=-160, yaw=0)", 'CS_Speak(\'martian_man\', "Now that we\'ve disabled their communications, it is imperative that we destroy the device as well.", force=0)', 'CS_Speak(\'flash\', "Well that\'s great, but how do we go about it, the thing is over ten stories tall!?", force=0)', "CS_Speak('martian_man', 'If we can defeat the last of their guards, I may be able to overload it in the same manner I did their communications array. Their arrogance has not diminished in ten thousand years, and they fear nothing in this isolated region.', force=0)", 'CS_End()']}, {'replace': [['villain1', 'villain']], 'name': 'Start', 'required': ['martian_man', 'flash'], 'priority': 1, 'cutscene': ['CS_Start()', "CS_Camera('villain1', dist=-160, yaw=0)", "CS_TurnTo('villain1', 'martian_man')", "CS_Speak('villain1', 'It is the last Manhunter, he must be behind the communications blackout! Destroy him and the his ape lackeys!', force=0)", "CS_Camera('flash', dist=-160, yaw=0)", "CS_Speak('flash', 'Lackeys?', force=0)", 'CS_End()']}, {'replace': [['cave1_object1', 'object']], 'name': 'Examine', 'required': ['martian_man'], 'priority': 1, 'cutscene': ['CS_Start()', "CS_Camera('martian_man', dist=-160, yaw=0)", "CS_MoveTo('martian_man', 'cave1_object1')", "CS_Speak('martian_man', 'Hmm...yes, this should be enough. This machine will no longer aid our enemies!', force=0)", 'CS_End()']}, {'replace': [], 'name': 'End', 'required': ['batman', 'martain_man', 'martian_man'], 'priority': 1, 'cutscene': ['CS_Start()', "CS_Camera('batman', dist=-160, yaw=0)", "CS_MoveTo('batman', 'martain_man')", "CS_TurnTo('martian_man', 'batman')", 'CS_Speak(\'batman\', "Now we\'d better get back to Metropolis, who knows what trouble Superman and the others have gotten into by now.", force=0)', 'CS_End()']}], 'pre': []}], 'start': []}
PSTORY: {'JLA6': {'encounters': {'Final1': {'timeofday': 'none', 'next': ['__win__'], 'trigger': ['start'], 'action': ['DoEncCustom(villains = [\'white_martian\', \'white_martian\', \'white_martian\', \'white_martian\'], cutscenes = [[\'alertcs\', [[\'priority\', 1], [\'replace\', [\'villain1\', \'villain\']], [\'required\', \'martian_man\', \'flash\'], [\'cutscene\', \'CS_Start()\', "CS_AddArrow(\'villain1arrow\', \'villain1\', arrow_type=js.ARROW_RED)", \'CS_UnFade(2)\', "CS_Camera(\'martian_man\', dist=-160, yaw=0)", \'CS_Speak(\\\'martian_man\\\', "Now that we\\\'ve disabled their communications, it is imperative that we destroy the device as well.", force=0)\', \'CS_Speak(\\\'flash\\\', "Well that\\\'s great, but how do we go about it, the thing is over ten stories tall!?", force=0)\', "CS_Speak(\'martian_man\', \'If we can defeat the last of their guards, I may be able to overload it in the same manner I did their communications array. Their arrogance has not diminished in ten thousand years, and they fear nothing in this isolated region.\', force=0)", \'CS_End()\']]], [\'startcs\', [[\'priority\', 1], [\'replace\', [\'villain1\', \'villain\']], [\'required\', \'martian_man\', \'flash\'], [\'cutscene\', \'CS_Start()\', "CS_Camera(\'villain1\', dist=-160, yaw=0)", "CS_TurnTo(\'villain1\', \'martian_man\')", "CS_Speak(\'villain1\', \'It is the last Manhunter, he must be behind the communications blackout! Destroy him and the his ape lackeys!\', force=0)", "CS_Camera(\'flash\', dist=-160, yaw=0)", "CS_Speak(\'flash\', \'Lackeys?\', force=0)", \'CS_End()\']]], [\'examinecs\', [[\'priority\', 1], [\'replace\', [\'cave1_object1\', \'object\']], [\'required\', \'martian_man\'], [\'cutscene\', \'CS_Start()\', "CS_Camera(\'martian_man\', dist=-160, yaw=0)", "CS_MoveTo(\'martian_man\', \'cave1_object1\')", "CS_Speak(\'martian_man\', \'Hmm...yes, this should be enough. This machine will no longer aid our enemies!\', force=0)", \'CS_End()\']]], [\'endcs\', [[\'priority\', 1], [\'required\', \'batman\', \'martain_man\', \'martian_man\'], [\'cutscene\', \'CS_Start()\', "CS_Camera(\'batman\', dist=-160, yaw=0)", "CS_MoveTo(\'batman\', \'martain_man\')", "CS_TurnTo(\'martian_man\', \'batman\')", \'CS_Speak(\\\'batman\\\', "Now we\\\'d better get back to Metropolis, who knows what trouble Superman and the others have gotten into by now.", force=0)\', \'CS_End()\']]]], marker = \'cave1\', actions="villains fight heroes, allies fight villains, object can be examined", objects = [\'alien_mineral\'])'], 'required_map': []}, '__win__': {'action': ['ff.Story_WinMission()']}, '__end__': {'action': ["ff.Story_SetStoryEnded('JLA6')"]}, '__lose__': {'action': ['ff.Story_LoseMission()']}}}}
PSTORY: precaching alien_mineral
PSTORY: precaching white_martian
! GetMapInfo
MISSION: On Post Init... start.
MLOG_Init(keepRunningModules=0): starting up
mlogreader.MLOG_Init: current mission = '06_JLA_FOREST'
initialising FFX: skirmish=0
mapinfocaliper2 is not a valid explosion object
mapinfocaliper0 is not a valid explosion object
mapinfocaliper1 is not a valid explosion object
mapinfocaliper3 is not a valid explosion object
storing hero_1: id_1,168
storing hero_2: id_2,87
MISSION: On Post Init... complete; starting story.
ENCOUNTER: Setting up encounter 1
ENCOUNTER: Start marker found for ['cave1'] 'cave1'
ENCOUNTER: No markers for 1 [['allyleave', 'cave1_allyleave', 'dist500']]
GROUP: '1_minion' set to []
GROUP: '1_minion' set to []
m25obj_2 white_martian cave1_villain1
AI: SetupAI() - setting ai for m25obj_2 ('white_martian')
m25obj_4 white_martian cave1_villain2
AI: SetupAI() - setting ai for m25obj_4 ('white_martian')
m25obj_6 white_martian cave1_villain3
AI: SetupAI() - setting ai for m25obj_6 ('white_martian')
m25obj_8 white_martian cave1_villain4
AI: SetupAI() - setting ai for m25obj_8 ('white_martian')
GROUP: 'm25obj_2' added to group '1_minion'
GROUP: 'm25obj_4' added to group '1_minion'
GROUP: 'm25obj_6' added to group '1_minion'
GROUP: 'm25obj_8' added to group '1_minion'
GROUP: '1_minion' set to ['m25obj_2', 'm25obj_4', 'm25obj_6', 'm25obj_8']
GROUP: '1_ally' set to []
GROUP: '1_ally' set to []
m25obj_10 alien_mineral cave1_object1
GROUP: '1_object' set to []
GROUP: 'm25obj_10' added to group '1_object'
GROUP: '1_object' set to ['m25obj_10']
GROUP: '1_cohort' set to []
GROUP: '1_cohort' set to []
GROUP: '1_cohort' set to []
ENCOUNTER: Encounter spawn complete for 1
ENCOUNTER: Encounter cutscenes complete for 1
ENCOUNTER: Encounter goals complete for 1
ENCOUNTER: Encounter objectives complete for 1
ENCOUNTER: Encounter parameters complete for 1
ENCOUNTER: Encounter post function 'Examine_Setup'
ENCOUNTER: Encounter post function 'EncStartOnEnterMarker_Setup'
ENCOUNTER: Encounter post complete for 1
ENCOUNTER: Saving encounter data for 1
ENCOUNTER: PlayEncCutscene(): 'alertcs' : None
ENCOUNTER: PlayCutsceneFromList(): [['priority', 1], ['replace', ['villain1', 'villain']], ['required', 'martian_man', 'flash'], ['cutscene', 'CS_Start()', "CS_AddArrow('villain1arrow', 'villain1', arrow_type=js.ARROW_RED)", 'CS_UnFade(2)', "CS_Camera('martian_man', dist=-160, yaw=0)", 'CS_Speak(\'martian_man\', "Now that we\'ve disabled their communications, it is imperative that we destroy the device as well.", force=0)', 'CS_Speak(\'flash\', "Well that\'s great, but how do we go about it, the thing is over ten stories tall!?", force=0)', "CS_Speak('martian_man', 'If we can defeat the last of their guards, I may be able to overload it in the same manner I did their communications array. Their arrogance has not diminished in ten thousand years, and they fear nothing in this isolated region.', force=0)", 'CS_End()']] : None ... []
ENCOUNTER: Encounter setup complete for 1
AI: SetupAI() - setting ai for hero_2 ('flash')
GROUP: 'team1' set to []
GROUP: 'hero_2' added to group 'team1'
GROUP: 'team1' set to ['hero_2']
AI: SetupAI() - setting ai for hero_1 ('batman')
GROUP: 'hero_1' added to group 'team1'
GROUP: 'team1' set to ['hero_2', 'hero_1']
GROUP: 'hero_1' automatically promoted to leader of group 'team1'
GROUP: 'hero_1' made leader of group 'team1'
GOAL: Adding goal Goal_Guard(1000,'hero_1',19) to character hero_2
GROUP: 'team1' set to guard 'hero_1'
GOAL: Adding goal Goal_StayWithTeam(1001,20) to character hero_1
initialising FFQ_initialiseExtras()
FFX_UpdateSun: getting default sun
FFX_UpdateSun: setting = (-45.0, 45.0, 1.0, 0.800000011921, (1.0, 1.0, 1.0))
AI: AISetRunning m25obj_2 to 0
AI: AISetRunning m25obj_4 to 0
AI: AISetRunning m25obj_6 to 0
AI: AISetRunning m25obj_8 to 0
AI: AISetRunning hero_2 to 0
AI: AISetRunning hero_1 to 0
[SNIP a lot of attribute stuff]
initAttribsForChar: working on form_1 (batmobile_veh)
initAttribsForChar (batmobile_veh): looking at attribute grim resolve
initAttribsForChar (batmobile_veh): looking at attribute ponderous
initAttribsForChar (batmobile_veh): looking at attribute disciplined
initAttribsForChar (batmobile_veh): looking at attribute acidblood
execInitAttrib: init acidblood attribute
   on form_1 of template batmobile_veh (batmobile_veh)
initAttribsForChar (batmobile_veh): looking at attribute vehicle
execInitAttrib: init vehicle attribute
   on form_1 of template batmobile_veh (batmobile_veh)




On an unrelated note, I'm trying to improve the 6th mission (Aquaman) as it seems a bit too hard.  In it, you've got to fight your way past a number of guards to reach a big set of doors.  After you pass the initial guards, there are still tons in front of the doors.  While I could just cut their numbers down, I'd like to add another wrinkle to the mission.  Is there a way that I can either A) Spawn a turret in that location that the player can later convert to his side, forcing it to attack the guards, or B) Similarly, set a turret guarding that area to explode, damaging the guards, also from another location.  I can't think of any way to do that with EZScript, but I know that someone around here might.
God Bless
"If God came down upon me and gave me a wish again, I'd wish to be like Aquaman, 'cause Aquaman can take the pain..." -Ballad of Aquaman
Check out mymods and blog!
https://bentongrey.wordpress.com/

M25

From the script.log, it looks like you are using batman and flash as your heroes.   The Alert Cutscene requires flash and martian_man, so I'd say you need to place martian_man on the map somewhere, add him to the encounter, or use him as one of your heroes.


I think it is possible to remotely change a turret from a villain to an ally using two encounters and a switch.

Encounter: Mean Turret
Type: Custom
Actions: switches exist, villains fight heroes
Villains: turret named turncoat
Next: Nice Turret
Marker: turret1

All Switches Turned Off Cutscene:
turncoat is killed

# put a marker called turret1_switch1 where you want the switch to appear

Encounter: Nice Turret
Type: Custom
Actions: allies fight villains, allies start immediately, allies remain after encounter ends
Allies: turret named fred
Marker: turret1


It's a bit of a kludge, but I think it will work.


BentonGrey

#34
Hmm...I've got all three heroes selected as the 3 required heroes for that mission.  I don't understand how that is causing it... :huh:

Thanks for the ideas about the turret!  Just to clarify, do I need to create two turret characters for this to work?  I got all kinds of excited about this idea, and tried it out:

Spoiler
#---------------------------------------

Encounter: Meangun1
Type: Custom
Actions: switches exist, villains fight heroes
Villains: turret_carrier
Marker: base5
Next: Nicegun1

Alert Cutscene:
Camrea on Villain1
Hero1 says, "Hmm...maybe I can find a way to turn their defenses against them..."

All Switches Turned Off Cutscene:
turret_carrier is killed

#---------------------------------------

Encounter: Nicegun1
Type: Custom
Actions: allies fight villains, allies start immediately, allies remain after encounter ends
Allies: turret_carrier
Marker: base5
Next: None

#---------------------------------------

Encounter: Meangun2
Type: Custom
Actions: switches exist, villains fight heroes
Villains: turret_carrier
Marker: base6
Next: Nicegun2

All Switches Turned Off Cutscene:
turret_carrier is killed

#---------------------------------------

Encounter: Nicegun2
Type: Custom
Actions: allies fight villains, allies start immediately, allies remain after encounter ends
Allies: turret_carrier
Marker: base6
Next: None

#---------------------------------------

Encounter: Meangun3
Type: Custom
Actions: switches exist, villains fight heroes
Villains: turret_carrier
Marker: base7
Next: Nicegun3

All Switches Turned Off Cutscene:
turret_carrier is killed

#---------------------------------------

Encounter: Nicegun3
Type: Custom
Actions: allies fight villains, allies start immediately, allies remain after encounter ends
Allies: turret_carrier
Marker: base7
Next: None

#---------------------------------------

Encounter: Meangun4
Type: Custom
Actions: switches exist, villains fight heroes
Villains: turret_carrier
Marker: base8
Next: Nicegun4

All Switches Turned Off Cutscene:
turret_carrier is killed

#---------------------------------------

Encounter: Nicegun4
Type: Custom
Actions: allies fight villains, allies start immediately, allies remain after encounter ends
Allies: turret_carrier
Marker: base8
Next: None

#---------------------------------------

Encounter: Meangun5
Type: Custom
Actions: switches exist, villains fight heroes
Villains: turret_carrier
Marker: base9
Next: Nicegun5

All Switches Turned Off Cutscene:
turret_carrier is killed

#---------------------------------------

Encounter: Nicegun5
Type: Custom
Actions: allies fight villains, allies start immediately, allies remain after encounter ends
Allies: turret_carrier
Marker: base9
Next: None

#---------------------------------------

But when the switches were flipped, nothing happened.

Here is the script.log:

Spoiler
ENCOUNTER: PlayEncCutscene(): 'bantercs' : None
ENCOUNTER: PlayCutsceneFromList(): None : None ... []
ENCOUNTER: PlayEncCutscene(): 'bantercs' : None
ENCOUNTER: PlayCutsceneFromList(): None : None ... []
ENCOUNTER: PlayEncCutscene(): 'allswitchesturnedoffcs' : None
ENCOUNTER: PlayCutsceneFromList(): [['priority', 1], ['required', 'turret_carrier'], ['cutscene', "CS_Kill('turret_carrier')"]] : None ... []
CUTSCENE: request to play cutscene.
CUTSCENE:  - CS_Kill('turret_carrier')
CUTSCENE: calling PlayCurrentCutscene 10
CUTSCENE: playing ff.CS_Kill(10,'turret_carrier')
ERRORError in playing cutscene - bad function ff.CS_Kill(10,'turret_carrier')
Traceback (innermost last):
  File "C:\Program Files\Irrational Games\Freedom Force vs The 3rd Reich\.\DCUG\missions\scripts\m25enc.py", line 4485, in EncCustom_SwitchOff_Switch
    PlayEncCutscene(enc_id, 'allswitchesturnedoffcs')
  File "C:\Program Files\Irrational Games\Freedom Force vs The 3rd Reich\.\DCUG\missions\scripts\m25enc.py", line 699, in PlayEncCutscene
    value = PlayCutsceneFromList(GetEncCutscene(enc_id, csname),enc_id, charlist, return_function, live, in_order)
  File "C:\Program Files\Irrational Games\Freedom Force vs The 3rd Reich\.\DCUG\missions\scripts\m25enc.py", line 752, in PlayCutsceneFromList
    if not EncPlayCutscene(newcslist,enc_id,charlist, return_function, live):
  File "C:\Program Files\Irrational Games\Freedom Force vs The 3rd Reich\.\DCUG\missions\scripts\m25enc.py", line 773, in EncPlayCutscene
    m25cutscene.PlayCutscene(newcs,priority,return_function,enc_id)
  File "C:\Program Files\Irrational Games\Freedom Force vs The 3rd Reich\.\DCUG\missions\scripts\m25cutscene.py", line 122, in PlayCutscene
    PlayCurrentCutscene(int(current_cutscene_number+1))
  File "C:\Program Files\Irrational Games\Freedom Force vs The 3rd Reich\.\DCUG\missions\scripts\m25cutscene.py", line 84, in PlayCurrentCutscene
    exec cs_string
  File "<string>", line 1, in ?
  File "C:\Program Files\Irrational Games\Freedom Force vs The 3rd Reich\.\DCUG\missions\scripts\m25cutscene.py", line 260, in CS_Kill
    js.Object_SetAttr(actor, 'minHealth', 0)
SystemError: NULL result without error in call_object
AI: m25obj_12:'disguise_martian' goal guard (-116.416090932, -329.782012939, -0.000662163831294)
AI: m25obj_10:'disguise_martian' goal guard (-116.416090932, -254.782012939, -0.000662163831294)
AI: m25obj_14:'disguise_martian' goal guard (-181.367996216, -367.282012939, -0.000662163831294)
AI: m25obj_16:'disguise_martian' goal guard (-246.3199015, -329.782012939, -0.000662163831294)
AI: m25obj_18:'disguise_martian' goal guard (-246.3199015, -254.782012939, -0.000662163831294)
ENCOUNTER: PlayEncCutscene(): 'allswitchesturnedoffcs' : None
ENCOUNTER: PlayCutsceneFromList(): [['priority', 1], ['required', 'turret_carrier'], ['cutscene', "CS_Kill('turret_carrier')"]] : None ... []
CUTSCENE: request to play cutscene.
CUTSCENE:  - CS_Kill('turret_carrier')
CUTSCENE: calling PlayCurrentCutscene 11
CUTSCENE: playing ff.CS_Kill(11,'turret_carrier')
ERRORError in playing cutscene - bad function ff.CS_Kill(11,'turret_carrier')
Traceback (innermost last):
  File "C:\Program Files\Irrational Games\Freedom Force vs The 3rd Reich\.\DCUG\missions\scripts\m25enc.py", line 4485, in EncCustom_SwitchOff_Switch
    PlayEncCutscene(enc_id, 'allswitchesturnedoffcs')
  File "C:\Program Files\Irrational Games\Freedom Force vs The 3rd Reich\.\DCUG\missions\scripts\m25enc.py", line 699, in PlayEncCutscene
    value = PlayCutsceneFromList(GetEncCutscene(enc_id, csname),enc_id, charlist, return_function, live, in_order)
  File "C:\Program Files\Irrational Games\Freedom Force vs The 3rd Reich\.\DCUG\missions\scripts\m25enc.py", line 752, in PlayCutsceneFromList
    if not EncPlayCutscene(newcslist,enc_id,charlist, return_function, live):
  File "C:\Program Files\Irrational Games\Freedom Force vs The 3rd Reich\.\DCUG\missions\scripts\m25enc.py", line 773, in EncPlayCutscene
    m25cutscene.PlayCutscene(newcs,priority,return_function,enc_id)
  File "C:\Program Files\Irrational Games\Freedom Force vs The 3rd Reich\.\DCUG\missions\scripts\m25cutscene.py", line 122, in PlayCutscene
    PlayCurrentCutscene(int(current_cutscene_number+1))
  File "C:\Program Files\Irrational Games\Freedom Force vs The 3rd Reich\.\DCUG\missions\scripts\m25cutscene.py", line 84, in PlayCurrentCutscene
    exec cs_string
  File "<string>", line 1, in ?
  File "C:\Program Files\Irrational Games\Freedom Force vs The 3rd Reich\.\DCUG\missions\scripts\m25cutscene.py", line 260, in CS_Kill
    js.Object_SetAttr(actor, 'minHealth', 0)
SystemError: NULL result without error in call_object
AI: m25obj_12:'disguise_martian' goal guard (-116.416090932, -329.782012939, -0.000662163831294)
AI: m25obj_10:'disguise_martian' goal guard (-116.416090932, -254.782012939, -0.000662163831294)
AI: m25obj_14:'disguise_martian' goal guard (-181.367996216, -367.282012939, -0.000662163831294)
AI: m25obj_16:'disguise_martian' goal guard (-246.3199015, -329.782012939, -0.000662163831294)
AI: m25obj_18:'disguise_martian' goal guard (-246.3199015, -254.782012939, -0.000662163831294)
ENCOUNTER: PlayEncCutscene(): 'allswitchesturnedoffcs' : None
ENCOUNTER: PlayCutsceneFromList(): [['priority', 1], ['required', 'turret_carrier'], ['cutscene', "CS_Kill('turret_carrier')"]] : None ... []
CUTSCENE: request to play cutscene.
CUTSCENE:  - CS_Kill('turret_carrier')
CUTSCENE: calling PlayCurrentCutscene 12
CUTSCENE: playing ff.CS_Kill(12,'turret_carrier')
ERRORError in playing cutscene - bad function ff.CS_Kill(12,'turret_carrier')
Traceback (innermost last):
  File "C:\Program Files\Irrational Games\Freedom Force vs The 3rd Reich\.\DCUG\missions\scripts\m25enc.py", line 4485, in EncCustom_SwitchOff_Switch
    PlayEncCutscene(enc_id, 'allswitchesturnedoffcs')
  File "C:\Program Files\Irrational Games\Freedom Force vs The 3rd Reich\.\DCUG\missions\scripts\m25enc.py", line 699, in PlayEncCutscene
    value = PlayCutsceneFromList(GetEncCutscene(enc_id, csname),enc_id, charlist, return_function, live, in_order)
  File "C:\Program Files\Irrational Games\Freedom Force vs The 3rd Reich\.\DCUG\missions\scripts\m25enc.py", line 752, in PlayCutsceneFromList
    if not EncPlayCutscene(newcslist,enc_id,charlist, return_function, live):
  File "C:\Program Files\Irrational Games\Freedom Force vs The 3rd Reich\.\DCUG\missions\scripts\m25enc.py", line 773, in EncPlayCutscene
    m25cutscene.PlayCutscene(newcs,priority,return_function,enc_id)
  File "C:\Program Files\Irrational Games\Freedom Force vs The 3rd Reich\.\DCUG\missions\scripts\m25cutscene.py", line 122, in PlayCutscene
    PlayCurrentCutscene(int(current_cutscene_number+1))
  File "C:\Program Files\Irrational Games\Freedom Force vs The 3rd Reich\.\DCUG\missions\scripts\m25cutscene.py", line 84, in PlayCurrentCutscene
    exec cs_string
  File "<string>", line 1, in ?
  File "C:\Program Files\Irrational Games\Freedom Force vs The 3rd Reich\.\DCUG\missions\scripts\m25cutscene.py", line 260, in CS_Kill
    js.Object_SetAttr(actor, 'minHealth', 0)
SystemError: NULL result without error in call_object
ENCOUNTER: PlayEncCutscene(): 'allswitchesturnedoffcs' : None
ENCOUNTER: PlayCutsceneFromList(): [['priority', 1], ['required', 'turret_carrier'], ['cutscene', "CS_Kill('turret_carrier')"]] : None ... []
CUTSCENE: request to play cutscene.
CUTSCENE:  - CS_Kill('turret_carrier')
CUTSCENE: calling PlayCurrentCutscene 13
CUTSCENE: playing ff.CS_Kill(13,'turret_carrier')
ERRORError in playing cutscene - bad function ff.CS_Kill(13,'turret_carrier')
Traceback (innermost last):
  File "C:\Program Files\Irrational Games\Freedom Force vs The 3rd Reich\.\DCUG\missions\scripts\m25enc.py", line 4485, in EncCustom_SwitchOff_Switch
    PlayEncCutscene(enc_id, 'allswitchesturnedoffcs')
  File "C:\Program Files\Irrational Games\Freedom Force vs The 3rd Reich\.\DCUG\missions\scripts\m25enc.py", line 699, in PlayEncCutscene
    value = PlayCutsceneFromList(GetEncCutscene(enc_id, csname),enc_id, charlist, return_function, live, in_order)
  File "C:\Program Files\Irrational Games\Freedom Force vs The 3rd Reich\.\DCUG\missions\scripts\m25enc.py", line 752, in PlayCutsceneFromList
    if not EncPlayCutscene(newcslist,enc_id,charlist, return_function, live):
  File "C:\Program Files\Irrational Games\Freedom Force vs The 3rd Reich\.\DCUG\missions\scripts\m25enc.py", line 773, in EncPlayCutscene
    m25cutscene.PlayCutscene(newcs,priority,return_function,enc_id)
  File "C:\Program Files\Irrational Games\Freedom Force vs The 3rd Reich\.\DCUG\missions\scripts\m25cutscene.py", line 122, in PlayCutscene
    PlayCurrentCutscene(int(current_cutscene_number+1))
  File "C:\Program Files\Irrational Games\Freedom Force vs The 3rd Reich\.\DCUG\missions\scripts\m25cutscene.py", line 84, in PlayCurrentCutscene
    exec cs_string
  File "<string>", line 1, in ?
  File "C:\Program Files\Irrational Games\Freedom Force vs The 3rd Reich\.\DCUG\missions\scripts\m25cutscene.py", line 260, in CS_Kill
    js.Object_SetAttr(actor, 'minHealth', 0)
SystemError: NULL result without error in call_object

It looks like it can't kill the turrets, but I can't tell why.
God Bless
"If God came down upon me and gave me a wish again, I'd wish to be like Aquaman, 'cause Aquaman can take the pain..." -Ballad of Aquaman
Check out mymods and blog!
https://bentongrey.wordpress.com/

M25

For the previous mission, the log is showing only two heroes:

AI: SetupAI() - setting ai for hero_2 ('flash')
GROUP: 'team1' set to []
GROUP: 'hero_2' added to group 'team1'
GROUP: 'team1' set to ['hero_2']
AI: SetupAI() - setting ai for hero_1 ('batman')
GROUP: 'hero_1' added to group 'team1'
GROUP: 'team1' set to ['hero_2', 'hero_1']

The 'martian_man' character doesn't show up at all.  Did he actually get imported into the mission?  Do you have a hero_3 marker for him to spawn at?



For the turrets, you need to give them names as I did in the example.  The kill command won't work otherwise.

Villains: turret_carrier named tur1

All Switched Off Cutscene:
tur1 is killed



BentonGrey

#36
I can't tell, unfortunately, as the screen is black.  There is a hero3 marker for him to spawn at...should I just place all three of them on the map?

Ohh!  You can actually name them within EZScript?  Awesome!  Alright, I'll rework those and try it.

:EDIT: Rrrr...still no luck.  I couldn't tell if the turrets respawned or not, but they didn't do anything hostile or helpful...

script.log
Spoiler
ENCOUNTER: Encounter post function 'EncCustom_MinionsStartImmediately_Setup'
ENCOUNTER: Encounter post function 'EncStartOnEnterMarker_Setup'
ENCOUNTER: Encounter post complete for 6
ENCOUNTER: Saving encounter data for 6
ENCOUNTER: PlayEncCutscene(): 'alertcs' : None
ENCOUNTER: PlayCutsceneFromList(): None : None ... []
ENCOUNTER: Encounter setup complete for 6
ENCOUNTER: Setting up encounter 7
ENCOUNTER: Start marker found for ['base7'] 'base7'
ENCOUNTER: No markers for 7 [['allyleave', 'base7_allyleave', 'dist500']]
m25obj_38 switch base7_switch1
GROUP: '7_switch' set to []
GROUP: 'm25obj_38' added to group '7_switch'
GROUP: '7_switch' set to ['m25obj_38']
GROUP: '7_minion' set to []
GROUP: '7_minion' set to []
tur5 turret_factory base7_villain1
AI: SetupAI() - setting ai for tur5 ('turret_factory')
GROUP: 'tur5' added to group '7_minion'
GROUP: '7_minion' set to ['tur5']
GROUP: '7_ally' set to []
GROUP: '7_ally' set to []
GROUP: '7_object' set to []
GROUP: '7_object' set to []
GROUP: '7_cohort' set to []
GROUP: '7_cohort' set to []
GROUP: '7_cohort' set to []
ENCOUNTER: Encounter spawn complete for 7
ENCOUNTER: Encounter cutscenes complete for 7
ENCOUNTER: Encounter goals complete for 7
ENCOUNTER: Encounter objectives complete for 7
ENCOUNTER: Encounter parameters complete for 7
ENCOUNTER: Encounter post function 'EncCustom_SwitchOff_Setup'
ENCOUNTER: Encounter post function 'EncStartOnEnterMarker_Setup'
ENCOUNTER: Encounter post complete for 7
ENCOUNTER: Saving encounter data for 7
ENCOUNTER: PlayEncCutscene(): 'alertcs' : None
ENCOUNTER: PlayCutsceneFromList(): None : None ... []
ENCOUNTER: Encounter setup complete for 7
ENCOUNTER: Setting up encounter 8
ENCOUNTER: Start marker found for ['base8'] 'base8'
ENCOUNTER: No markers for 8 [['allyleave', 'base8_allyleave', 'dist500']]
m25obj_40 switch base8_switch1
GROUP: '8_switch' set to []
GROUP: 'm25obj_40' added to group '8_switch'
GROUP: '8_switch' set to ['m25obj_40']
GROUP: '8_minion' set to []
GROUP: '8_minion' set to []
tur7 turret_factory base8_villain1
AI: SetupAI() - setting ai for tur7 ('turret_factory')
GROUP: 'tur7' added to group '8_minion'
GROUP: '8_minion' set to ['tur7']
GROUP: '8_ally' set to []
GROUP: '8_ally' set to []
GROUP: '8_object' set to []
GROUP: '8_object' set to []
GROUP: '8_cohort' set to []
GROUP: '8_cohort' set to []
GROUP: '8_cohort' set to []
ENCOUNTER: Encounter spawn complete for 8
ENCOUNTER: Encounter cutscenes complete for 8
ENCOUNTER: Encounter goals complete for 8
ENCOUNTER: Encounter objectives complete for 8
ENCOUNTER: Encounter parameters complete for 8
ENCOUNTER: Encounter post function 'EncCustom_SwitchOff_Setup'
ENCOUNTER: Encounter post function 'EncStartOnEnterMarker_Setup'
ENCOUNTER: Encounter post complete for 8
ENCOUNTER: Saving encounter data for 8
ENCOUNTER: PlayEncCutscene(): 'alertcs' : None
ENCOUNTER: PlayCutsceneFromList(): None : None ... []
ENCOUNTER: Encounter setup complete for 8
ENCOUNTER: Setting up encounter 9
ENCOUNTER: Start marker found for ['base9'] 'base9'
ENCOUNTER: No markers for 9 [['allyleave', 'base9_allyleave', 'dist500']]
m25obj_42 switch base9_switch1
GROUP: '9_switch' set to []
GROUP: 'm25obj_42' added to group '9_switch'
GROUP: '9_switch' set to ['m25obj_42']
GROUP: '9_minion' set to []
GROUP: '9_minion' set to []
tur9 turret_factory base9_villain1
AI: SetupAI() - setting ai for tur9 ('turret_factory')
GROUP: 'tur9' added to group '9_minion'
GROUP: '9_minion' set to ['tur9']
GROUP: '9_ally' set to []
GROUP: '9_ally' set to []
GROUP: '9_object' set to []
GROUP: '9_object' set to []
GROUP: '9_cohort' set to []
GROUP: '9_cohort' set to []
GROUP: '9_cohort' set to []
ENCOUNTER: Encounter spawn complete for 9
ENCOUNTER: Encounter cutscenes complete for 9
ENCOUNTER: Encounter goals complete for 9
ENCOUNTER: Encounter objectives complete for 9
ENCOUNTER: Encounter parameters complete for 9
ENCOUNTER: Encounter post function 'EncCustom_SwitchOff_Setup'
ENCOUNTER: Encounter post function 'EncStartOnEnterMarker_Setup'
ENCOUNTER: Encounter post complete for 9
ENCOUNTER: Saving encounter data for 9
ENCOUNTER: PlayEncCutscene(): 'alertcs' : None
ENCOUNTER: PlayCutsceneFromList(): None : None ... []
ENCOUNTER: Encounter setup complete for 9
ENCOUNTER: Setting up encounter 10
ENCOUNTER: Start marker found for ['base6'] 'base6'
ENCOUNTER: No markers for 10 [['allyleave', 'base6_allyleave', 'dist500']]
m25obj_44 switch base6_switch1
GROUP: '10_switch' set to []
GROUP: 'm25obj_44' added to group '10_switch'
GROUP: '10_switch' set to ['m25obj_44']
GROUP: '10_minion' set to []
GROUP: '10_minion' set to []
tur3 turret_factory base6_villain1
AI: SetupAI() - setting ai for tur3 ('turret_factory')
GROUP: 'tur3' added to group '10_minion'
GROUP: '10_minion' set to ['tur3']
GROUP: '10_ally' set to []
GROUP: '10_ally' set to []
GROUP: '10_object' set to []
GROUP: '10_object' set to []
GROUP: '10_cohort' set to []
GROUP: '10_cohort' set to []
GROUP: '10_cohort' set to []
ENCOUNTER: Encounter spawn complete for 10
ENCOUNTER: Encounter cutscenes complete for 10
ENCOUNTER: Encounter goals complete for 10
ENCOUNTER: Encounter objectives complete for 10
ENCOUNTER: Encounter parameters complete for 10
ENCOUNTER: Encounter post function 'EncCustom_SwitchOff_Setup'
ENCOUNTER: Encounter post function 'EncStartOnEnterMarker_Setup'
ENCOUNTER: Encounter post complete for 10
ENCOUNTER: Saving encounter data for 10
ENCOUNTER: PlayEncCutscene(): 'alertcs' : None
ENCOUNTER: PlayCutsceneFromList(): None : None ... []
ENCOUNTER: Encounter setup complete for 10
initAttribsForChar: working on m25obj_34 (disguise_martian)
initAttribsForChar (disguise_martian): looking at attribute flier
initAttribsForChar (disguise_martian): looking at attribute heat sensitive
initAttribsForChar (disguise_martian): looking at attribute masscontrol
execInitAttrib: init masscontrol attribute
   on m25obj_34 of template disguise_martian (disguise_martian)
initAttribsForChar (disguise_martian): looking at attribute white_martian
execInitAttrib: init disciplined attribute inside ['white_martian', 'disciplined', 'toughguy2'] combo
   on m25obj_34 of template disguise_martian (disguise_martian)
execInitAttrib: init toughguy2 attribute inside ['white_martian', 'disciplined', 'toughguy2'] combo
   on m25obj_34 of template disguise_martian (disguise_martian)
inittoughguy2: char=<m25obj_34>
inittoughguy2: initializing for m25obj_34
initAttribsForChar (disguise_martian): looking at attribute invulnerable0
execInitAttrib: init invulnerable0 attribute
   on m25obj_34 of template disguise_martian (disguise_martian)
initAttribsForChar: working on tur1 (turret_factory)
initAttribsForChar: working on tur5 (turret_factory)
initAttribsForChar: working on m25obj_36 (disguise_martian)
initAttribsForChar (disguise_martian): looking at attribute flier
initAttribsForChar (disguise_martian): looking at attribute heat sensitive
initAttribsForChar (disguise_martian): looking at attribute masscontrol
execInitAttrib: init masscontrol attribute
   on m25obj_36 of template disguise_martian (disguise_martian)
initAttribsForChar (disguise_martian): looking at attribute white_martian
execInitAttrib: init disciplined attribute inside ['white_martian', 'disciplined', 'toughguy2'] combo
   on m25obj_36 of template disguise_martian (disguise_martian)
execInitAttrib: init toughguy2 attribute inside ['white_martian', 'disciplined', 'toughguy2'] combo
   on m25obj_36 of template disguise_martian (disguise_martian)
inittoughguy2: char=<m25obj_36>
inittoughguy2: initializing for m25obj_36
initAttribsForChar (disguise_martian): looking at attribute invulnerable0
execInitAttrib: init invulnerable0 attribute
   on m25obj_36 of template disguise_martian (disguise_martian)
initAttribsForChar: working on tur9 (turret_factory)
initAttribsForChar: working on tur7 (turret_factory)
initAttribsForChar: working on tur3 (turret_factory)
AI: AISetRunning tur1 to 0
[SNIP]
CUTSCENE: request to play cutscene.
CUTSCENE:  - CS_Start()
CUTSCENE:  - CS_Camera('m25obj_34', dist=-160, yaw=0)
CUTSCENE:  - CS_Animate('m25obj_34','melee')
CUTSCENE:  - CS_Speak('m25obj_34','<Kill that mongrel interloper!>', force=0)
CUTSCENE:  - CS_End()
CUTSCENE: calling PlayCurrentCutscene 5
CUTSCENE: playing ff.CS_Start(5)
CUTSCENE: playing ff.CS_Camera(5,'m25obj_34', dist=-160, yaw=0)
CUTSCENE: playing ff.CS_Animate(5,'m25obj_34','melee')
AI: AISetRunning m25obj_34 to 0
AI: AISetRunning m25obj_36 to 0
CUTSCENE: playing ff.CS_Speak(5,'m25obj_34','<Kill that mongrel interloper!>', force=0)
CUTSCENE: playing ff.CS_End(5)
AI: AIRun is restarting m25obj_34
AI: AISetRunning m25obj_34 to 1
AI: AIRun is restarting m25obj_36
AI: AISetRunning m25obj_36 to 1
CUTSCENE: calling cutscene return function.
ENCOUNTER: -- custom check end EncCustom_VillainsFight_CheckEnd(6) - None
ENCOUNTER: -- custom check end EncCustom_AlliesFightVillains_CheckEnd(6) - ['no allies']
AI: m25obj_34:'disguise_martian' goal move to hero 'aquaman_classic1'
AI: m25obj_36:'disguise_martian' goal guard (738.421508789, -28.768081665, 112.25390625)
ENCOUNTER: Enc_CheckStart starting 3
AI: AIRun is restarting m25obj_16
[SNIP]
CUTSCENE: calling cutscene return function.
GROUP: 'm25obj_16' automatically promoted to leader of group '3_minion'
GROUP: 'm25obj_16' made leader of group '3_minion'
GOAL: Adding goal Goal_Guard(1009,'m25obj_16',19) to character m25obj_18
GOAL: Adding goal Goal_Guard(1010,'m25obj_16',19) to character m25obj_20
GOAL: Adding goal Goal_Guard(1011,'m25obj_16',19) to character m25obj_22
GOAL: Adding goal Goal_Guard(1012,'m25obj_16',19) to character m25obj_24
GROUP: '3_minion' set to guard 'm25obj_16'
GOAL: Adding goal Goal_StayWithTeam(1013,20) to character m25obj_16
ENCOUNTER: -- custom check end EncCustom_VillainsFight_CheckEnd(3) - None
ENCOUNTER: -- custom check end EncCustom_AlliesFightVillains_CheckEnd(3) - ['no allies']
[SNIP]
ENCOUNTER: PlayEncCutscene(): 'm25obj_20kocs' : None
ENCOUNTER: PlayCutsceneFromList(): None : None ... [['m25obj_20', 'fallen']]
ENCOUNTER: PlayEncCutscene(): 'm25obj_20kocs' : None
ENCOUNTER: PlayCutsceneFromList(): None : None ... [['m25obj_20', 'fallen']]
ENCOUNTER: PlayEncCutscene(): 'villainkocs' : None
ENCOUNTER: PlayCutsceneFromList(): None : None ... [['m25obj_20', 'fallen']]
ENCOUNTER: -- custom check end EncCustom_VillainsFight_CheckEnd(3) - None
ENCOUNTER: -- custom check end EncCustom_AlliesFightVillains_CheckEnd(3) - ['no allies']
MLOG_WatchDamage: error in Object_GetAttr('m25obj_20', 'minForce'), Object_Exists('m25obj_20')=0
   words=['00:03:59.30:', 'FF:', 'Damage:(m25obj_18)', '', '(resolve)', 'dmg:', '30,', 'stun', 'time:', '0,', 'KB:', '7971\012'] MLOG_DAMAGE_PREVIOUSLINE=['00:03:59.30:', 'FF:', 'Damage:(m25obj_18)', '', 'm25obj_20', '(calc', 'pwr)dmg:', '44,', 'stun', 'pct:', '17,', 'KB:', '11520\012']
Traceback (innermost last):
 File "C:\Program Files\Irrational Games\Freedom Force vs The 3rd Reich\.\DCUG\missions\scripts\mlogreader.py", line 730, in OnMLOG_Read
   MLOG_Read()
 File "C:\Program Files\Irrational Games\Freedom Force vs The 3rd Reich\.\DCUG\missions\scripts\mlogreader.py", line 776, in MLOG_Read
   found = MLOG_WatchDamage(thisLine)
 File "C:\Program Files\Irrational Games\Freedom Force vs The 3rd Reich\.\DCUG\missions\scripts\mlogreader.py", line 1941, in MLOG_WatchDamage
   if ( knockback - Object_GetAttr(target, 'minForce') ) < 0:
SystemError: NULL result without error in call_object
AI: Unable to find targets for m25obj_16
ENCOUNTER: PlayEncCutscene(): 'bantercs' : None
ENCOUNTER: PlayCutsceneFromList(): None : None ... []
GROUP: '3_minion' member koed
ENCOUNTER: PlayEncCutscene(): 'm25obj_22kocs' : None
ENCOUNTER: PlayCutsceneFromList(): None : None ... [['m25obj_22', 'fallen']]
ENCOUNTER: PlayEncCutscene(): 'm25obj_22kocs' : None
ENCOUNTER: PlayCutsceneFromList(): None : None ... [['m25obj_22', 'fallen']]
ENCOUNTER: PlayEncCutscene(): 'villainkocs' : None
ENCOUNTER: PlayCutsceneFromList(): None : None ... [['m25obj_22', 'fallen']]
ENCOUNTER: -- custom check end EncCustom_VillainsFight_CheckEnd(3) - None
ENCOUNTER: -- custom check end EncCustom_AlliesFightVillains_CheckEnd(3) - ['no allies']
MLOG_WatchDamage: error in Object_GetAttr('m25obj_22', 'minForce'), Object_Exists('m25obj_22')=0
   words=['00:04:06.61:', 'FF:', 'Damage:(m25obj_16)', '', '(resolve)', 'dmg:', '62,', 'stun', 'time:', '0,', 'KB:', '16319\012'] MLOG_DAMAGE_PREVIOUSLINE=['00:04:06.61:', 'FF:', 'Damage:(m25obj_16)', '', 'm25obj_22', '(calc', 'pwr)dmg:', '44,', 'stun', 'pct:', '17,', 'KB:', '11520\012']
Traceback (innermost last):
 File "C:\Program Files\Irrational Games\Freedom Force vs The 3rd Reich\.\DCUG\missions\scripts\mlogreader.py", line 730, in OnMLOG_Read
   MLOG_Read()
 File "C:\Program Files\Irrational Games\Freedom Force vs The 3rd Reich\.\DCUG\missions\scripts\mlogreader.py", line 776, in MLOG_Read
   found = MLOG_WatchDamage(thisLine)
 File "C:\Program Files\Irrational Games\Freedom Force vs The 3rd Reich\.\DCUG\missions\scripts\mlogreader.py", line 1941, in MLOG_WatchDamage
   if ( knockback - Object_GetAttr(target, 'minForce') ) < 0:
SystemError: NULL result without error in call_object
AI: Unable to find targets for m25obj_16

Mission:
Spoiler
#---------------------------------------

Encounter: Meangun1
Type: Custom
Actions: switches exist, villains fight heroes
Villains: turret_factory named tur1
Marker: base5
Next: Nicegun1

Alert Cutscene:
Camrea on Villain1
Hero1 says, "Hmm...maybe I can find a way to turn their defenses against them..."

All Switches Turned Off Cutscene:
turret_factory named tur1 is killed

#---------------------------------------

Encounter: Nicegun1
Type: Custom
Actions: allies fight villains, allies start immediately, allies remain after encounter ends
Allies: turret_factory named tur2
Marker: base5
Next: None

#---------------------------------------

Encounter: Meangun2
Type: Custom
Actions: switches exist, villains fight heroes
Villains: turret_factory named tur3
Marker: base6
Next: Nicegun2

All Switches Turned Off Cutscene:
turret_factory named tur3 is killed

#---------------------------------------

Encounter: Nicegun2
Type: Custom
Actions: allies fight villains, allies start immediately, allies remain after encounter ends
Allies: turret_factory named tur4
Marker: base6
Next: None

#---------------------------------------

Encounter: Meangun3
Type: Custom
Actions: switches exist, villains fight heroes
Villains: turret_factory named tur5
Marker: base7
Next: Nicegun3

All Switches Turned Off Cutscene:
turret_factory named tur5 is killed

#---------------------------------------

Encounter: Nicegun3
Type: Custom
Actions: allies fight villains, allies start immediately, allies remain after encounter ends
Allies: turret_factory named tur6
Marker: base7
Next: None

#---------------------------------------

Encounter: Meangun4
Type: Custom
Actions: switches exist, villains fight heroes
Villains: turret_factory named tur7
Marker: base8
Next: Nicegun4

All Switches Turned Off Cutscene:
turret_factory named tur7 is killed

#---------------------------------------

Encounter: Nicegun4
Type: Custom
Actions: allies fight villains, allies start immediately, allies remain after encounter ends
Allies: turret_factory named tur8
Marker: base8
Next: None

#---------------------------------------

Encounter: Meangun5
Type: Custom
Actions: switches exist, villains fight heroes
Villains: turret_factory named tur9
Marker: base9
Next: Nicegun5

All Switches Turned Off Cutscene:
turret_factory named tur9 is killed

#---------------------------------------

Encounter: Nicegun5
Type: Custom
Actions: allies fight villains, allies start immediately, allies remain after encounter ends
Allies: turret_factory named tur10
Marker: base9
Next: None

#---------------------------------------
God Bless
"If God came down upon me and gave me a wish again, I'd wish to be like Aquaman, 'cause Aquaman can take the pain..." -Ballad of Aquaman
Check out mymods and blog!
https://bentongrey.wordpress.com/

M25

#37
The marker should be named hero_3  (this is an FFvTTR marker, not an EZ script marker).


The line:
turret_factory named tur1 is killed

should be:
tur1 is killed


You can use names directly in cutscenes.  They are there so that you can identify exactly which character you want KO'd.




BentonGrey

Okay M, thanks!  I'll fix both of these things and test them out.
God Bless
"If God came down upon me and gave me a wish again, I'd wish to be like Aquaman, 'cause Aquaman can take the pain..." -Ballad of Aquaman
Check out mymods and blog!
https://bentongrey.wordpress.com/

BentonGrey

#39
Alright, so I've made some pretty great strides today, solving several problems myself, and all in all, I'm feeling better about the whole thing, but I've still got a handful of bugs that I can't figure out.  First off, I've got the forest mission working perfectly now, so that one is solid.  The Aquaman mission is now acting just the way it should, with the bad turrets dying and the good turrets spawning, but we have two problems.  First, the turrets are inactive both as villains and allies.  They don't do anything, although the enemies DO attack them once they become allies.  They have turret AI, of course, could that have something to do with it?.  Secondly, the dead turrets remain behind for a while.  That can be handled easily enough by teleporting them somewhere else, but can I teleport a corpse, so to speak?




On another note, I'm having issues with base screens (big surprise there, I'm sure), specifically with the camera.  I start a base screen, and it works fine.  Then for the briefing, I try and point the camera somewhere else, and it stays locked in the same place.  Is there anything I can do about that?  Here is one of the two base scripts that I'm having this issue with.

Spoiler
Story: My Story

#
# The base encounter will set up the camera
# and take care of any campaign housekeeping
# e.g. right after the base loads.
#

Encounter: Start
Type: Base
Marker: atom1

Start Cutscene:
Camera on aquaman_classic
Unfade for 5 seconds
Narrator says, "The disparate threads begin to weave together, as the Marine Marvel, still following the strange and sonorous tones in his mind, smashes through the outer layers of defense, but finds that his efforts have not gone unnoticed. On his way back to Coast City, Green Lantern's ring picked up energy readings similar to those he detected on the moon from this hidden base and decided to investigate."
green_lantern moves to aquaman_classic
aquaman_classic turns to green_lantern
green_lantern says, "Hey Fish-Man, I don't know what you think you're doing, but these aren't hired goons, these are American soldiers!"
green_lantern plays animation ranged
flash moves to aquaman_classic
flash says, "What's going on here? One minute I'm chasing weirdo, inhuman kidnappers and the next I'm right in the middle of a super-powered world war III!"
green_lantern says, "This psycho has been attacking a military installation, and its time someone returned the favor!"
superman moves to aquaman_classic
aquaman_classic says, "Wait, this isn't what you think!"
batman moves to aquaman_classic
superman says, "Take it easy Lantern, I've seen some pretty strange things lately, and I'm willing to give Aquaman the benefit of the doubt."
batman says, "Superman's right, we need to get the whole story."
aquaman_classic says, "Thank you...and I believe the answer to all of our questions is just through here..."
aquaman_classic moves to atom9
green_lantern moves to atom10
flash moves to atom11
batman moves to atom8
superman moves to atom7
aquaman_classic turns to martian_mann
green_lantern turns to martian_mann
flash turns to martian_mann
batman turns to martian_mann
superman turns to martian_mann

#
# The briefing cutscene will play when the player
# selects the briefing button on the base screen.
#
# Notice the 'Starts when: Briefing' line.
# That must be there or it won't play as a briefing.
#

Encounter: Briefing
Type: Cutscene
Starts When: Briefing
Marker: atom2

Start Cutscene:
Camrea on atom2
flash says, "Is that...?"
aquaman_classic says, "Here are our answers...I hope..."
aquaman_classic plays animation melee
green_lantern says, "Wait! We don't know..."
green_lantern plays animation ranged
Play effect effect_ffx_electricsparks on martian_mann
Fade for 2 seconds
martian_mann moves to atom2
martian_mann plays animation stunned
aquaman_classic turns to martian_mann
Unfade for 3 seconds
martian_mann says telepathically, "Th-thank you...for freeing me..."
aquaman_classic says, "You. You're the one who's been calling to me, sending me those visions."
martian_mann plays animation recover_from_stun
martian_mann says telepathically, "Yes, this device scrambled my telepathic powers. I could only contact a mind of incredible strength, and even through the inhibitor field I could feel your thoughts moving about the world."
aquaman_classic says, "My thoughts? But...I'm not..."
martian_mann says telepathically, "You are far more powerful than you believe Arthur Curry."
green_lantern says, "Yeah, well that's all fine and dandy, but will someone tell me what in the blue blazes is going on here?"
martian_mann says telepathically, "Yes, we have little time. My name is J'onn J'onzz, and I have come to warn your world."
batman says, "How do we know we can trust you...the situation isn't exactly conducive to faith."
martian_mann says telepathically, "I understand."
Fade for 2 seconds
martian_mann teleports to atom6
martian_man teleports to atom2
Unfade for 2 seconds
martian_man says, "Perhaps this will be better?"
superman says, "You said you were here to warn us...but to warn us of what?"
martian_man says, "Invasion! I sense that you have already encountered the agents of the enemy...then I am too late."
aquaman_classic says, "While there's life, there's hope! Where do these creatures come from? Where do YOU come from?"
martian_man says, "It began many millenia ago, in the days before your people had so much as discovered fire. My homeworld, Mars, was in turmoil, the great prophet H'ronmeer was trying to unite our people and bring peace to the troubled planet."
martian_man says, "He had almost succeeded when a sect of our people called the S'ourns betrayed him, murdering him and almost destroying the peace he had created, but the rest of the Martians drew together, honoring his memory, and his dream was not lost."
martian_man says, "The S'ourns were banished to the vast emptiness of space, cast adrift far from the warmth of the sons, and a golden age began. My world was a paradise, it's people pursuing art and literature instead of war and destruction. Our civilization had achieved peace and prosperity and we were happy...until they returned."
martian_man says, "The S'ourns had escaped their exile and they returned, much changed by their ordeal. They were pale and hideous, twisted by being trapped so long with the evil of their own hearts. They invaded, and...fed upon my people."
martian_man says, "All Martians are telepathic, and there is no greater crime than to invade another's mind, but these creatures who had once been Martains now preyed upon their brethren. They had become a type of psychic vampire, draining the strength and knowledge of my people to increase their own."
martian_man says, "We had abandoned war centuries before, but we relearned the craft quickly. We fought bravely, but we were outmatched. I was a Manhunter, a lawkeeper, a defender of the people, but even the Manhunters could not stem the tide."
martian_man says, "I...I was there at the end. I led the last, desperate raid in the twilight hours of the war. We invaded their subterannean citadel, and released a powerful nerve gas that paralyzed them all. Our last gambit had been successful, but the cost...ohh, the cost!"
martian_man says, "I was...I am, the last Martian. I sealed their citadel, condeming them to an eternity of paralysis, but while I was in a hybernation cycle explorers from your planet released them. When I awoke I discovered what had happened and attempted to warn your world...to spare it the destruction that my own suffered."
batman says, "But you were captured by the military and imprisoned."
martian_man says, "Yes, they did not trust me...and now it is too late."
superman says, "No...now we know what they are, we know what we're fighting, we have a real chance!"
martian_man says, "You don't understand...it is beginning!"





Thirdly, every mission is working except for the final one (of course), which is actually doing fine except for the final encounter.  It isn't starting.  Here is the encounter in question:

Spoiler
#----------------------------------

Encounter: Final1
Type: Custom
Actions: Villains Fight Heroes, Villains Are Invulnerable, Invulnerability Can End, Invulnerability Ends When Objects Destroyed, Heroes Destroy Objects, Villains Can Be Interrogated
Villains: white_martiab
Minions: white_martian
Objects: pillar_shadow_small, pillar_shadow_small, pillar_shadow_small, pillar_shadow_small
Marker: alien5

Alert Cutscene:
Fade for 2 seconds
batman is Revived
aquaman_classic is Revived
wonder_woman is Revived
Unfade for 3 seconds
Red Arrow on white_martiab

Start Cutscene:
Fade for 2 seconds
batman is Revived
aquaman_classic is Revived
wonder_woman is Revived
Remove Arrow from white_martiab
Camera on white_martiab
Unfade for 3 seconds
white_martiab says, "J'onn J'onzz, we meet again. I am pleased that you have survived long enough for me to destroy you personally."
Camera on flash
flash says, "That is one BIG lizard..."
Camera on green_lantern
green_lantern says, "He...ugh...he doesn't look so tough, right guys?"
Camera on martian_man
martian_man says, "Perhaps not Lantern, but do not be fooled by appearances. Here in the center of his domain, the Imperium will be almost impossible to defeat...but we must try!"
martian_man plays animation melee
Camera on flash
flash plays animation pain
flash says," Great, ANOTHER invulnerable monster!"
Camera on wonder_woman
wonder_woman says, "There is no such thing as an unbeatable foe!"
Camera on batman
batman says, "She's right, every enemy has a weakness, and I think I know theirs! Smash the pillars, we've got to bring down the roof!"
aquaman_classic says, "I don't follow..."
Camera on superman
superman says, "By now I've learned to trust the man, just do it!"

Objects Destroyed Cutscene:
Fade for 2 seconds
Set Lighting to noon
Camera on martian_man
Unfade for 3 seconds
martian_man turns to white_martiab
martian_man plays animation ranged
martian_man says, "The sun, I see now! The Imperium is defenseless!"

End Cutscene:
Camera on martian_man
martian_man plays animation power
martian_man says, "Now I see why you prowl the night, why you hide deep in your holes like the animals you are. You fear the sun! Does it burn your pale, putrid flesh? Then burn, as my people burned!"
Camera on green_lantern
green_lantern says, "Deep space dwellers...I should have seen it!"
Camera on aquaman_classic
aquaman_classic says, "What does that have to do with anything?"
batman says, "Having been exiled in deep space for millenia, the S'ourns had no defenses against solar radiation."
Camera on flash
flash says, "So...what happens now?"
Camera on superman
superman plays animation ranged
superman says, "They're running! I can see them leaving all over the city!"
Camera on martian_man
martian_man says, "Without the Imperium to lead and connect them, they will be scattered, disorganized, and directionless. I do not believe that your world need fear them any longer."
Camera on batman
batman says, "What about the woman? She escaped while we were occupied with the Imperium."
Camera on superman
superman says, "What can she do without an army?"
Camera on batman
batman says, "I'd rather not find out..."
Camera on wonder_woman
wonder_woman plays animation power
wonder_woman says, "Now is a time for celebration, we have won a great victory!"
Camera on aquaman_classic
aquaman_classic says, "The princess is right, we've saved the Earth, both above and below the waves."

#----------------------------------


There is nothing in the script.log.  It plays the final cutscene of the previous encounter...and then nothing. 

:EDIT:  Okay, after a little more testing with a cut down version of the script (just the allies encounter pointing straight to the final encounter) I got an error message:

Spoiler
GROUP: '2_minion' set to []
GROUP: 'm25obj_8' added to group '2_minion'
GROUP: 'm25obj_10' added to group '2_minion'
GROUP: 'm25obj_12' added to group '2_minion'
GROUP: 'm25obj_14' added to group '2_minion'
GROUP: 'm25obj_16' added to group '2_minion'
GROUP: 'm25obj_18' added to group '2_minion'
GROUP: 'm25obj_20' added to group '2_minion'
GROUP: 'm25obj_22' added to group '2_minion'
GROUP: 'm25obj_24' added to group '2_minion'
GROUP: 'm25obj_26' added to group '2_minion'
GROUP: 'm25obj_28' added to group '2_minion'
GROUP: 'm25obj_30' added to group '2_minion'
GROUP: '2_minion' set to ['m25obj_8', 'm25obj_10', 'm25obj_12', 'm25obj_14', 'm25obj_16', 'm25obj_18', 'm25obj_20', 'm25obj_22', 'm25obj_24', 'm25obj_26', 'm25obj_28', 'm25obj_30']
m25obj_32 white_martiab alien5_villain1
ERROR: The encounter DoEncCustom does not exist or is broken.  You may need to download the appropriate plug-in, or check script.log for errors.
ff.DoEncCustom(2,villains = ['white_martiab'], minions = ['white_martian'], cutscenes = [['alertcs', [['priority', 1], ['required', 'batman', 'aquaman_classic', 'wonder_woman', 'white_martiab'], ['cutscene', 'CS_Start()', 'CS_Fade(2)', "CS_Revive('batman')", "CS_Revive('aquaman_classic')", "CS_Revive('wonder_woman')", 'CS_UnFade(3)', "CS_AddArrow('white_martiabarrow', 'white_martiab', arrow_type=js.ARROW_RED)", 'CS_End()']]], ['startcs', [['priority', 1], ['required', 'batman', 'aquaman_classic', 'wonder_woman', 'white_martiab', 'flash', 'green_lantern', 'martian_man', 'superman'], [CUTSCENE SNIP], marker = 'alien5', actions = 'Villains Fight Heroes, Villains Are Invulnerable, Invulnerability Can End, Invulnerability Ends When Objects Destroyed, Heroes Destroy Objects, Villains Can Be Interrogated', objects = ['pillar_shadow_small', 'pillar_shadow_small', 'pillar_shadow_small', 'pillar_shadow_small'],return_function="StorylineEncounterReturn")
Traceback (innermost last):
  File "C:\Program Files\Irrational Games\Freedom Force vs The 3rd Reich\.\DCUG\missions\scripts\m25story.py", line 252, in DoStorylineStateEvent
    DoStorylineState(story, state, event.user)
  File "C:\Program Files\Irrational Games\Freedom Force vs The 3rd Reich\.\DCUG\missions\scripts\m25story.py", line 295, in DoStorylineState
    if not StorySetupEncounter(enc_id,story,state,a):
  File "C:\Program Files\Irrational Games\Freedom Force vs The 3rd Reich\.\DCUG\missions\scripts\m25story.py", line 385, in StorySetupEncounter
    val = eval('ff.%s(%i,%s,return_function="StorylineEncounterReturn")'%(encname,enc_id,encparams))
  File "<string>", line 0, in ?
  File "C:\Program Files\Irrational Games\Freedom Force vs The 3rd Reich\.\DCUG\missions\scripts\m25enc.py", line 4221, in DoEncCustom
    return SetupEncounter(enc_id, encounter)
  File "C:\Program Files\Irrational Games\Freedom Force vs The 3rd Reich\.\DCUG\missions\scripts\m25enc.py", line 1366, in SetupEncounter
    if not SetupEnc_Spawn(enc_id, start_num, encounter): return 0
  File "C:\Program Files\Irrational Games\Freedom Force vs The 3rd Reich\.\DCUG\missions\scripts\m25enc.py", line 1432, in SetupEnc_Spawn
    EncSpawnGroup(enc_id,start_num +'_'+ s[1] ,s[2],s[0],s[3],marker_type=s[4],create_markers=s[5])
  File "C:\Program Files\Irrational Games\Freedom Force vs The 3rd Reich\.\DCUG\missions\scripts\m25enc.py", line 378, in EncSpawnGroup
    m25_spawn(name,template,start_markers[num],teleport=teleport,objclass=savename,disable=disable)
  File "C:\Program Files\Irrational Games\Freedom Force vs The 3rd Reich\.\DCUG\missions\scripts\m25enc.py", line 260, in m25_spawn
    chdata = chardata.GetCharacterData(name)
  File "C:\Program Files\Irrational Games\Freedom Force vs The 3rd Reich\.\DCUG\missions\scripts\chardata.py", line 316, in GetCharacterData
    _CharData[complex] = Campaign_ReadCharacterData()[hname]
KeyError: white_martian_brain
initialising FFQ_initialiseExtras()
FFX_UpdateSun: getting default sun
FFX_UpdateSun: setting = (-45.0, 45.0, 1.0, 0.800000011921, (1.0, 1.0, 1.0))
Traceback (innermost last):
  File "C:\Program Files\Irrational Games\Freedom Force vs The 3rd Reich\.\DCUG\missions\scripts\ffx.py", line 656, in initAttribs
    if (hasAttribute(object,'tempform')!=0) | (hasAttribute(object,'involuntaryform')!=0):
  File "C:\Program Files\Irrational Games\Freedom Force vs The 3rd Reich\.\DCUG\missions\scripts\ffx.py", line 681, in hasAttribute
    return chardata.Character_HasAttribute(char, attrib)
  File "C:\Program Files\Irrational Games\Freedom Force vs The 3rd Reich\.\DCUG\missions\scripts\chardata.py", line 31, in Character_HasAttribute
    cdata = GetCharacterData(char)
  File "C:\Program Files\Irrational Games\Freedom Force vs The 3rd Reich\.\DCUG\missions\scripts\chardata.py", line 316, in GetCharacterData
    _CharData[complex] = Campaign_ReadCharacterData()[hname]
KeyError: white_martian_brain
AI: m25obj_4 no tactic chosen this cycle.
[SNIP]
Plugin 'firehydrant' OnPostInit() called
Traceback (innermost last):
  File "C:\Program Files\Irrational Games\Freedom Force vs The 3rd Reich\.\DCUG\missions\scripts\ffx.py", line 21164, in OnPseudoOnPostInitGo
    exec OnPostInit
  File "<string>", line 1, in ?
  File "C:\Program Files\Irrational Games\Freedom Force vs The 3rd Reich\dcug\missions\scripts\ffxplugins\active\ffq_zombie\zombie.py", line 65, in OnPostInit
    for char in ffx.getAllCharacters(): #register existing characters
  File "C:\Program Files\Irrational Games\Freedom Force vs The 3rd Reich\.\DCUG\missions\scripts\ffx.py", line 19942, in getAllCharacters
    specialChar = isSpecialChar(object)
  File "C:\Program Files\Irrational Games\Freedom Force vs The 3rd Reich\.\DCUG\missions\scripts\ffx.py", line 19887, in isSpecialChar
    return FFX_GetTemplate(obj) in ('ffx_tiggot', 'ffx_tiggot1', '------------', '---Buddies---',) #please update as needed
  File "C:\Program Files\Irrational Games\Freedom Force vs The 3rd Reich\.\DCUG\missions\scripts\ffx.py", line 938, in FFX_GetTemplate
    return chardata.GetCharacterData(char).get('charName')
  File "C:\Program Files\Irrational Games\Freedom Force vs The 3rd Reich\.\DCUG\missions\scripts\chardata.py", line 316, in GetCharacterData
    _CharData[complex] = Campaign_ReadCharacterData()[hname]
KeyError: white_martian_brain
[SNIP]
God Bless
"If God came down upon me and gave me a wish again, I'd wish to be like Aquaman, 'cause Aquaman can take the pain..." -Ballad of Aquaman
Check out mymods and blog!
https://bentongrey.wordpress.com/

M25

You can teleport the turret off screen before killing it, or you can kill it and then destroy it, which will hopefully remove the body.

tur1 is killed
tur1 is destroyed

There might be something with the turret AI not responding to custom AI commands.  I'll try to look into it, but you may need to simply make a 'ally version' of the turret (GAME_OBJ_POLICE in the templates tab of FFEdit I think) to get it working smoothly. Spawn the villain version in the first encounter and the ally version in the second.  Turrets don't have their own game object type do they?



For the briefing cutscene, you spelled camera wrong.



For the third part of your post, the program that reads in characters from the .dat files is looking for white_martian_brain and not finding it.  Since you aren't using that in your script I'm not sure where it is coming from, but I'd guess it has something to do with 'white_martiab'.  Did you use the term white_martian_brain anywhere in defining that character?  A power or template perhaps?

If you renamed it recently, you could try running the ffx control centre to rebrand everything.




BentonGrey

BEAUTIFUL!  Thanks so much M!  (I can't BELIEVE I mispelled camera...but oh well, at least you caught it for me...after I had stared at that stupid briefing cutscene for hours!)  Pending a little touch up on the Aquaman mission, and me throwing SOMETHING together for a WW mission...the JLA campaign is DONE.  I actually just finished it while testing it...I'm excited! :thumbup:
God Bless
"If God came down upon me and gave me a wish again, I'd wish to be like Aquaman, 'cause Aquaman can take the pain..." -Ballad of Aquaman
Check out mymods and blog!
https://bentongrey.wordpress.com/

BentonGrey

Alright, Batman is coming along pretty well, and I'm even finding a little energy to improve the early missions (the first ones I made, so not the best ever).  I have run into a few errors though, but I've been able to solve all of them...except this one.  I've got a briefing cutscene that isn't playing.  Here is the cutscene itself:

Spoiler
#
# The briefing cutscene will play when the player
# selects the briefing button on the base screen.
#
# Notice the 'Starts when: Briefing' line.
# That must be there or it won't play as a briefing.
#


Encounter: Briefing
Type: Cutscene
Starts When: Briefing
Marker: batmobile4

Camera on robin
alfred says, "master dick, do be careful out there."
robin says, "Don't worry Alfred, I'll take care of Eddie and be back in time for dinner!"
alfred says, "I hope so, sir, but I shall resign myself to keeping the phesant warm throughout the night just in case the inevitable occurs."
robin says, "Have a little faith pal, it's just the Riddler, right?"


And here is the script.log, that doesn't have anything that I can see:

Spoiler
>>> system/init.py executed
>>> system/localinit.py executed
>>> system\tredir.py executed
Starting ffx.py v. 3.2.0 build 11; branch = Gold / Release
Loading m25ai.py v. 3.2.0 build 10; branch = beta 2: m25 branch 2
importing missionobjvar.py v1.18
loading datfiles version 0.251000
importing MLOG Reader 1.0.18 release
Starting General Utilities 1.0
missionobjvar(FixLongs): Fixing overflow issue with <SCSTATE_BUOYANT>
missionobjvar defining functions for Campaign play.
CustomHeadCurrentTime 1231485437.406000
Starting Height Check module 1.4
Starting System Utilities 1.4
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
Campaign_ReadObjects() warning: object template <water> has more than one entry for attribute <mass>, values 650.000000 and 650.000000
Campaign_ReadObjects() warning: object template <jm_pad_white> has more than one entry for attribute <canPickUp>, values 0.000000 and 0.000000
Campaign_ReadObjects() warning: object template <jm_pad_green> has more than one entry for attribute <canPickUp>, values 0.000000 and 0.000000
Campaign_ReadObjects() warning: object template <jm_pad_brown> has more than one entry for attribute <canPickUp>, values 0.000000 and 0.000000
Campaign_ReadObjects() warning: object template <jm_pad> has more than one entry for attribute <canPickUp>, values 0.000000 and 0.000000
Campaign_ReadObjects() warning: object template <bigwater> has more than one entry for attribute <mass>, values 650.000000 and 650.000000
FFX Mission Plugin 'firehydrant' imported
FFX Mission Plugin 'zombie' imported
Loading freeroam_keepbuildingdamage.py v.1.0.0 build 0; branch = main
FREEROAM_KBD: initialized
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.py v.3.2.0 July 27, 2008
Loading m25freeroam.py v. 3.2.0 build 7; branch = m25 branch 1
FFX Mission Plugin 'm25encexit' imported
Loading     m25enc_OPENDOOR.py v.1.0.0 build 0; branch = main
FFX Mission Plugin 'm25enc_opendoor' imported
FFX Mission Plugin 'm25enc_reqchar' imported
Loading     m25enc_simplechoice.py v.1.0.0 build 0; branch = main
FFX Mission Plugin 'm25enc_simplechoice' imported
FFX Mission Plugin 'm25encstory' imported
Starting Built-In Function Wrapper 1.5
('Object_CalcPrestige', 'js')
>>> C:\Documents and Settings\Owner\Local Settings\Application Data\Irrational Games\Freedom Force vs the 3rd Reich\temp\base.py executed
MISSION: EZScript MiniMod/Campaign Precache.
PSTORY: {'name': 'My Story', 'encounters': [{'marker': 'batmobile4', 'type': 'Base', 'timeofday': 'none', 'required_map': [], 'trigger': [], 'next': [], 'objectives': [], 'parameters': [], 'name': 'Start', 'cutscenes': [{'replace': [], 'name': 'Start', 'required': ['robin'], 'priority': 1, 'cutscene': ['CS_Start()', "CS_Camera('robin', dist=-160, yaw=0)", 'CS_UnFade(3)', 'CS_End()']}], 'pre': []}, {'marker': 'batmobile4', 'type': 'Cutscene', 'timeofday': 'none', 'required_map': [], 'trigger': ['Briefing'], 'next': [], 'objectives': [], 'parameters': [], 'name': 'Briefing', 'cutscenes': [], 'pre': []}], 'start': []}
PSTORY: {'My Story': {'encounters': {'__lose__': {'action': ['ff.Story_LoseMission()']}, '__win__': {'action': ['ff.Story_WinMission()']}, '__end__': {'action': ["ff.Story_SetStoryEnded('My Story')"]}, 'Start': {'timeofday': 'none', 'next': ['Briefing'], 'trigger': ['start'], 'action': ['DoEncBase(cutscenes = [[\'startcs\', [[\'priority\', 1], [\'required\', \'robin\'], [\'cutscene\', \'CS_Start()\', "CS_Camera(\'robin\', dist=-160, yaw=0)", \'CS_UnFade(3)\', \'CS_End()\']]]], marker = \'batmobile4\')'], 'required_map': []}, 'Briefing': {'timeofday': 'none', 'next': ['__end__'], 'trigger': ['Briefing'], 'action': ["DoEncCutscene(cutscenes = [], marker = 'batmobile4')"], 'required_map': []}}}}
! GetMapInfo
Building_GetDimensions() non-fatal error:
    template 'pier' not found in list of building dimensions.
    To detect approximate dimensions, use
    getBuildingDimensions ()
Building_GetDimensions() non-fatal error:
    template 'pier' not found in list of building dimensions.
    To detect approximate dimensions, use
    getBuildingDimensions ()
Building_GetDimensions() non-fatal error:
    template 'pier' not found in list of building dimensions.
    To detect approximate dimensions, use
    getBuildingDimensions ()
Building_GetDimensions() non-fatal error:
    template 'pier' not found in list of building dimensions.
    To detect approximate dimensions, use
    getBuildingDimensions ()
Building_GetDimensions() non-fatal error:
    template 'pier' not found in list of building dimensions.
    To detect approximate dimensions, use
    getBuildingDimensions ()
Building_GetDimensions() non-fatal error:
    template 'pier' not found in list of building dimensions.
    To detect approximate dimensions, use
    getBuildingDimensions ()
Building_GetDimensions() non-fatal error:
    template 'pier' not found in list of building dimensions.
    To detect approximate dimensions, use
    getBuildingDimensions ()
Building_GetDimensions() non-fatal error:
    template 'pier' not found in list of building dimensions.
    To detect approximate dimensions, use
    getBuildingDimensions ()
Building_GetDimensions() non-fatal error:
    template 'pier' not found in list of building dimensions.
    To detect approximate dimensions, use
    getBuildingDimensions ()
Building_GetDimensions() non-fatal error:
    template 'pier' not found in list of building dimensions.
    To detect approximate dimensions, use
    getBuildingDimensions ()
MISSION: On Post Init... complete; starting story.
ENCOUNTER: PlayEncCutscene(): 'startcs' : 'BaseDone(1)'
ENCOUNTER: PlayCutsceneFromList(): [['priority', 1], ['required', 'robin'], ['cutscene', 'CS_Start()', "CS_Camera('robin', dist=-160, yaw=0)", 'CS_UnFade(3)', 'CS_End()']] : 'BaseDone(1)' ... []
GetCharacterData: called on non-character bat car, template=bat car
CUTSCENE: request to play cutscene.
CUTSCENE:  - CS_Start()
CUTSCENE:  - CS_Camera('robin', dist=-160, yaw=0)
CUTSCENE:  - CS_UnFade(3)
CUTSCENE:  - CS_End()
CUTSCENE: calling PlayCurrentCutscene 1
CUTSCENE: playing ff.CS_Start(1)
CUTSCENE: playing ff.CS_Camera(1,'robin', dist=-160, yaw=0)
GetCharacterData: called on non-character bat car, template=bat car
CUTSCENE: playing ff.CS_UnFade(1,3)
initialising FFQ_initialiseExtras()
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 'm25encexit' has no OnPostInit()
Plugin 'm25enc_opendoor' has no OnPostInit()
Plugin 'm25enc_reqchar' has no OnPostInit()
Plugin 'm25enc_simplechoice' has no OnPostInit()
Plugin 'm25encstory' has no OnPostInit()
CUTSCENE: playing ff.CS_End(1)
CUTSCENE: calling cutscene return function.
God Bless
"If God came down upon me and gave me a wish again, I'd wish to be like Aquaman, 'cause Aquaman can take the pain..." -Ballad of Aquaman
Check out mymods and blog!
https://bentongrey.wordpress.com/

Previsionary

#43
well, for one, if I'm following correctly, you're missing the words: "start cutscene".

But maybe I'm wrong. I only compared this entry to your earlier one. *shrugs*. ^_^
Disappear when you least expe--

M25

That would be it, yes.  You're missing Start Cutscene:


BentonGrey

Ugghhh.......I'm glad y'all are around, 'cause apparently I'm blind. :P
God Bless
"If God came down upon me and gave me a wish again, I'd wish to be like Aquaman, 'cause Aquaman can take the pain..." -Ballad of Aquaman
Check out mymods and blog!
https://bentongrey.wordpress.com/

BentonGrey

Okay, still testing and tweaking Batman (halfway done!), and I was wondering if someone could tell me a little bit about the Cinematic camera.  When it works, it looks SOOO nice, but half the time when I call for Cinematic camera on batman, or whoever, it doesn't work.  It seems almost never to work when I call for it on batman to robin, or the like.  Any advice?




Once again, on another note I am having trouble with a custom encounter in the 4th mission.  A bomb is located somewhere in the city (by the way, what do you need to name a marker in order for a bomb to spawn there?  I've tried both object1 and item1 with no luck.) and its timer starts right away.  That works fine, but after you disarm the bomb (the cs plays, and everything) it STILL explodes when its time limit runs out, although the timer itself disappears.  Here is the relevant encounter:

Spoiler
#-----------------------------------------------

Encounter: Tick Tock
Type: Custom
Villains: harley_quinn, clown_thug, clown_thug, clown_thug, clown_thug, clown_thug, clown_thug, clown_thug, clown_thug
Bomb: abomb
Time: 30
Actions: disarm bomb, immediate countdown, villains fight heroes
Next: If Bomb Disarmed: Wood1
Next: If Bomb Exploded: __lose__



Bomb Disarmed Cutscene:
Camera on robin
robin says, "Whew, that was just too close!"

Bomb Exploding Cutscene:
Camera on batman
batman says, "Oh no!"

#-----------------------------------------------

And the script.log:

Spoiler
>>> system/init.py executed
>>> system/localinit.py executed
>>> system\tredir.py executed
Starting ffx.py v. 3.2.0 build 11; branch = Gold / Release
Loading m25ai.py v. 3.2.0 build 10; branch = beta 2: m25 branch 2
importing missionobjvar.py v1.18
loading datfiles version 0.251000
importing MLOG Reader 1.0.18 release
Starting General Utilities 1.0
missionobjvar(FixLongs): Fixing overflow issue with <SCSTATE_BUOYANT>
missionobjvar defining functions for Campaign play.
CustomHeadCurrentTime 1231562635.015000
Starting Height Check module 1.4
Starting System Utilities 1.4
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
[SNIP]
FFX Mission Plugin 'cutscene_power' imported
Loading m25enc.py v.3.2.0 July 27, 2008
Loading m25freeroam.py v. 3.2.0 build 7; branch = m25 branch 1
FFX Mission Plugin 'm25encexit' imported
Loading     m25enc_OPENDOOR.py v.1.0.0 build 0; branch = main
FFX Mission Plugin 'm25enc_opendoor' imported
FFX Mission Plugin 'm25enc_reqchar' imported
Loading     m25enc_simplechoice.py v.1.0.0 build 0; branch = main
FFX Mission Plugin 'm25enc_simplechoice' imported
FFX Mission Plugin 'm25encstory' imported
Starting Built-In Function Wrapper 1.5
('Object_CalcPrestige', 'js')
>>> C:\Documents and Settings\Owner\Local Settings\Application Data\Irrational Games\Freedom Force vs the 3rd Reich\temp\mission.py executed
MISSION: EZScript MiniMod/Campaign Precache.
PSTORY: {'name': 'My Story', 'encounters': [{[SNIP]", 'start': []}
PSTORY: {'My Story': {'encounters': {'Tick Tock': {'next': [[['Bomb Disarmed'], ['Wood1']], [['Bomb Exploded'], ['__lose__']]], 'required_map': [], 'timeofday': 'none', 'action': ['DoEncCustom(villains = [\'harley_quinn\', \'clown_thug\', \'clown_thug\', \'clown_thug\', \'clown_thug\', \'clown_thug\', \'clown_thug\', \'clown_thug\', \'clown_thug\'], cutscenes = [[\'bombdisarmedcs\', [[\'priority\', 1], [\'required\', \'robin\'], [\'cutscene\', \'CS_Start()\', "CS_Camera(\'robin\', dist=-160, yaw=0)", "CS_Speak(\'robin\', \'Whew, that was just too close!\', force=0)", \'CS_End()\']]], [\'bombexplodingcs\', [[\'priority\', 1], [\'required\', \'batman\'], [\'cutscene\', \'CS_Start()\', "CS_Camera(\'batman\', dist=-160, yaw=0)", "CS_Speak(\'batman\', \'Oh no!\', force=0)", \'CS_End()\']]]], marker = \'encounter\', bomb = \'abomb\', time = \'30\', actions = \'disarm bomb, immediate countdown, villains fight heroes\')']}, '__end__': {'action': ["ff.Story_SetStoryEnded('My Story')"]}, '[SNIP]['Tick Tock'], 'trigger': ['start'], 'action': ['DoEncCustom(cutscenes = [[\'alertcs\', [[\'priority\', 1], [\'replace\', [\'hero1\', \'hero\']], [\'cutscene\', \'CS_Start()\', "CS_Lighting(\'night\')", "CS_Camera(\'hero1\', dist=-160, yaw=0)", \'CS_UnFade(3)\', \'CS_End()\']]]], marker = \'cat1\', allies = [\'catwoman\'], actions = \'allies become controllable\')'], 'required_map': []}, '__lose__': {'action': ['ff.Story_LoseMission()']}, '__win__': {'action': ['ff.Story_WinMission()']}, [SNIP]
PSTORY: precaching catwoman
PSTORY: precaching the_joker
PSTORY: precaching clown_thug
PSTORY: precaching harley_quinn
PSTORY: precaching civilian_male
PSTORY: precaching civilian_female
PSTORY: precaching ventriloquost
PSTORY: precaching thug_with_bat
PSTORY: precaching thug_with_gun
! GetMapInfo
[SNIP]
MISSION: On Post Init... start.
MLOG_Init(keepRunningModules=0): starting up
mlogreader.MLOG_Init: current mission = '04_BATMAN_CATANDCARDS'
initialising FFX: skirmish=0
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
storing hero_1: id_1,169
storing hero_2: id_2,206
MISSION: On Post Init... complete; starting story.
ENCOUNTER: Setting up encounter 1
ENCOUNTER: Start marker found for ['cat1'] 'cat1'
ENCOUNTER: No markers for 1 [['allyleave', 'cat1_allyleave', 'dist500']]
GROUP: '1_minion' set to []
GROUP: '1_minion' set to []
GROUP: '1_minion' set to []
m25obj_2 catwoman cat1_ally1
AI: SetupAI() - setting ai for m25obj_2 ('catwoman')
GROUP: '1_ally' set to []
GROUP: 'm25obj_2' added to group '1_ally'
GROUP: '1_ally' set to ['m25obj_2']
GROUP: '1_object' set to []
[SNIP]
ENCOUNTER: Encounter spawn complete for 1
ENCOUNTER: Encounter cutscenes complete for 1
ENCOUNTER: Encounter goals complete for 1
ENCOUNTER: Encounter objectives complete for 1
ENCOUNTER: Encounter parameters complete for 1
ENCOUNTER: Encounter post function 'EncStartOnEnterMarker_Setup'
ENCOUNTER: Encounter post complete for 1
ENCOUNTER: Saving encounter data for 1
ENCOUNTER: PlayEncCutscene(): 'alertcs' : None
ENCOUNTER: PlayCutsceneFromList(): [['priority', 1], ['replace', ['hero1', 'hero']], ['cutscene', 'CS_Start()', "CS_Lighting('night')", "CS_Camera('hero1', dist=-160, yaw=0)", 'CS_UnFade(3)', 'CS_End()']] : None ... []
CUTSCENE: request to play cutscene.
CUTSCENE:  - CS_Start()
CUTSCENE:  - CS_Lighting('night')
CUTSCENE:  - CS_Camera('hero_1', dist=-160, yaw=0)
CUTSCENE:  - CS_UnFade(3)
CUTSCENE:  - CS_End()
CUTSCENE: calling PlayCurrentCutscene 1
CUTSCENE: playing ff.CS_Start(1)
ENCOUNTER: Encounter setup complete for 1
AI: SetupAI() - setting ai for hero_1 ('batman')
GROUP: 'team1' set to []
GROUP: 'hero_1' added to group 'team1'
GROUP: 'team1' set to ['hero_1']
AI: SetupAI() - setting ai for hero_2 ('robin')
GROUP: 'hero_2' added to group 'team1'
GROUP: 'team1' set to ['hero_1', 'hero_2']
GROUP: 'hero_2' automatically promoted to leader of group 'team1'
GROUP: 'hero_2' made leader of group 'team1'
GOAL: Adding goal Goal_Guard(1000,'hero_2',19) to character hero_1
GROUP: 'team1' set to guard 'hero_2'
GOAL: Adding goal Goal_StayWithTeam(1001,20) to character hero_2
ENCOUNTER: Enc_CheckStart starting 1
ENCOUNTER: PlayEncCutscene(): 'startcs' : 'Enc_StandardStartEnable(1)'
ENCOUNTER: PlayCutsceneFromList(): None : 'Enc_StandardStartEnable(1)' ... []
GROUP: empty '1_minion' cannot have a leader promoted
ENCOUNTER: PlayEncCutscene(): 'alliesjoinheroescs' : None
ENCOUNTER: PlayCutsceneFromList(): None : None ... []
ENCOUNTER: -- custom check end EncCustom_AlliesControllable_CheckEnd(1) - ['allies join team']
ENCOUNTER: PlayEncCutscene(): 'endcs' : "EncCustom_CleanUp(1, ['end', 'allies join team'])"
ENCOUNTER: PlayCutsceneFromList(): None : "EncCustom_CleanUp(1, ['end', 'allies join team'])" ... []
ENCOUNTER: Encounter ended 1 with ['end', 'allies join team']
CUTSCENE: playing ff.CS_Lighting(1,'night')
ENCOUNTER: Setting up encounter 2
ENCOUNTER: Start marker found for ['encounter'] 'encounter3'
m25obj_4 abomb encounter3_bomb1
GROUP: '2_bomb' set to []
GROUP: 'm25obj_4' added to group '2_bomb'
GROUP: '2_bomb' set to ['m25obj_4']
GROUP: '2_minion' set to []
GROUP: '2_minion' set to []
m25obj_6 harley_quinn encounter3_villain1
AI: [SNIP]
[SNIP]
GROUP: '2_minion' set to ['m25obj_6', 'm25obj_8', 'm25obj_10', 'm25obj_12', 'm25obj_14', 'm25obj_16', 'm25obj_18', 'm25obj_20', 'm25obj_22']
[SNIP]
God Bless
"If God came down upon me and gave me a wish again, I'd wish to be like Aquaman, 'cause Aquaman can take the pain..." -Ballad of Aquaman
Check out mymods and blog!
https://bentongrey.wordpress.com/

BentonGrey

And the second half:

Spoiler
ENCOUNTER: Encounter spawn complete for 2
ENCOUNTER: Encounter cutscenes complete for 2
ENCOUNTER: Encounter goals complete for 2
ENCOUNTER: Encounter objectives complete for 2
ENCOUNTER: Encounter parameters complete for 2
ENCOUNTER: Encounter post function 'Examine_Setup'
ENCOUNTER: 2 - registering EncCustom_DisarmBomb_Disarmed on variable _examined
ENCOUNTER: Encounter post function 'EncCustom_Timer_Start'
ENCOUNTER: 2 - registering EncCustom_DisarmBomb_Explode on variable _customtimerup
ENCOUNTER: Encounter post function 'EncStartOnEnterMarker_Setup'
ENCOUNTER: Encounter post complete for 2
ENCOUNTER: Saving encounter data for 2
ENCOUNTER: PlayEncCutscene(): 'alertcs' : None
ENCOUNTER: PlayCutsceneFromList(): None : None ... []
ENCOUNTER: Encounter setup complete for 2
CUTSCENE: playing ff.CS_Camera(1,'hero_1', dist=-160, yaw=0)
initialising FFQ_initialiseExtras()
CUTSCENE: playing ff.CS_UnFade(1,3)
AI: [SNIP]
initAttribsForChar[SNIP]
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 'm25encexit' has no OnPostInit()
Plugin 'm25enc_opendoor' has no OnPostInit()
Plugin 'm25enc_reqchar' has no OnPostInit()
Plugin 'm25enc_simplechoice' has no OnPostInit()
Plugin 'm25encstory' has no OnPostInit()
initAttribsForChar: [SNIP]
execInitAttrib: init vehicle attribute
    on form_1 of template batwing_veh (batwing_veh)
CUTSCENE: playing ff.CS_End(1)
CUTSCENE: calling cutscene return function.
CUTSCENE: no return function to call.
ENCOUNTER: Enc_CheckStart starting 2
AI: [SNIP]
ENCOUNTER: PlayEncCutscene(): 'startcs' : 'Enc_StandardStartEnable(2)'
ENCOUNTER: PlayCutsceneFromList(): None : 'Enc_StandardStartEnable(2)' ... []
GROUP: 'm25obj_6' automatically promoted to leader of group '2_minion'
GROUP: 'm25obj_6' made leader of group '2_minion'
GOAL: Adding goal Goal_Guard(1002,'m25obj_6',19) to character m25obj_8
[SNIP]
GROUP: '2_minion' set to guard 'm25obj_6'
GOAL: Adding goal Goal_StayWithTeam(1010,20) to character m25obj_6
ENCOUNTER: -- custom check end EncCustom_DisarmBomb_CheckEnd(2) - None
ENCOUNTER: -- custom check end EncCustom_Timer_CheckEnd(2) - ['timer still going']
ENCOUNTER: -- custom check end EncCustom_VillainsFight_CheckEnd(2) - None
GROUP: '2_minion' member koed
ENCOUNTER: PlayEncCutscene(): 'm25obj_22kocs' : None
ENCOUNTER: PlayCutsceneFromList(): None : None ... [['m25obj_22', 'fallen']]
ENCOUNTER: PlayEncCutscene(): 'clown_thugkocs' : None
ENCOUNTER: PlayCutsceneFromList(): None : None ... [['m25obj_22', 'fallen']]
ENCOUNTER: PlayEncCutscene(): 'villainkocs' : None
ENCOUNTER: PlayCutsceneFromList(): None : None ... [['m25obj_22', 'fallen']]
ENCOUNTER: -- custom check end EncCustom_DisarmBomb_CheckEnd(2) - None
ENCOUNTER: -- custom check end EncCustom_Timer_CheckEnd(2) - ['timer still going']
ENCOUNTER: -- custom check end EncCustom_VillainsFight_CheckEnd(2) - None
GROUP: '2_minion' member koed
ENCOUNTER: PlayEncCutscene(): 'm25obj_8kocs' : None
ENCOUNTER: PlayCutsceneFromList(): None : None ... [['m25obj_8', 'fallen']]
ENCOUNTER: PlayEncCutscene(): 'clown_thugkocs' : None
ENCOUNTER: PlayCutsceneFromList(): None : None ... [['m25obj_8', 'fallen']]
ENCOUNTER: PlayEncCutscene(): 'villainkocs' : None
ENCOUNTER: PlayCutsceneFromList(): None : None ... [['m25obj_8', 'fallen']]
ENCOUNTER: -- custom check end EncCustom_DisarmBomb_CheckEnd(2) - None
ENCOUNTER: -- custom check end EncCustom_Timer_CheckEnd(2) - ['timer still going']
ENCOUNTER: -- custom check end EncCustom_VillainsFight_CheckEnd(2) - None
GROUP: '2_minion' member koed
ENCOUNTER: PlayEncCutscene(): 'm25obj_6kocs' : None
ENCOUNTER: PlayCutsceneFromList(): None : None ... [['m25obj_6', 'fallen']]
ENCOUNTER: PlayEncCutscene(): 'harley_quinnkocs' : None
ENCOUNTER: PlayCutsceneFromList(): None : None ... [['m25obj_6', 'fallen']]
ENCOUNTER: PlayEncCutscene(): 'villainkocs' : None
ENCOUNTER: PlayCutsceneFromList(): None : None ... [['m25obj_6', 'fallen']]
ENCOUNTER: -- custom check end EncCustom_DisarmBomb_CheckEnd(2) - None
ENCOUNTER: -- custom check end EncCustom_Timer_CheckEnd(2) - ['timer still going']
ENCOUNTER: -- custom check end EncCustom_VillainsFight_CheckEnd(2) - None
[SNIP]
ENCOUNTER: PlayEncCutscene(): 'm25obj_12kocs' : None
ENCOUNTER: PlayCutsceneFromList(): None : None ... [['m25obj_12', 'fallen']]
ENCOUNTER: PlayEncCutscene(): 'clown_thugkocs' : None
ENCOUNTER: PlayCutsceneFromList(): None : None ... [['m25obj_12', 'fallen']]
ENCOUNTER: PlayEncCutscene(): 'villainkocs' : None
ENCOUNTER: PlayCutsceneFromList(): None : None ... [['m25obj_12', 'fallen']]
ENCOUNTER: -- custom check end EncCustom_DisarmBomb_CheckEnd(2) - None
ENCOUNTER: -- custom check end EncCustom_Timer_CheckEnd(2) - ['timer still going']
ENCOUNTER: -- custom check end EncCustom_VillainsFight_CheckEnd(2) - None
GROUP: '2_minion' member koed
ENCOUNTER: PlayEncCutscene(): 'm25obj_16kocs' : None
ENCOUNTER: PlayCutsceneFromList(): None : None ... [['m25obj_16', 'fallen']]
ENCOUNTER: PlayEncCutscene(): 'clown_thugkocs' : None
ENCOUNTER: PlayCutsceneFromList(): None : None ... [['m25obj_16', 'fallen']]
ENCOUNTER: PlayEncCutscene(): 'villainkocs' : None
ENCOUNTER: PlayCutsceneFromList(): None : None ... [['m25obj_16', 'fallen']]
ENCOUNTER: -- custom check end EncCustom_DisarmBomb_CheckEnd(2) - None
ENCOUNTER: -- custom check end EncCustom_Timer_CheckEnd(2) - ['timer still going']
ENCOUNTER: -- custom check end EncCustom_VillainsFight_CheckEnd(2) - None
GROUP: '2_minion' member koed
ENCOUNTER: PlayEncCutscene(): 'm25obj_20kocs' : None
ENCOUNTER: PlayCutsceneFromList(): None : None ... [['m25obj_20', 'fallen']]
ENCOUNTER: PlayEncCutscene(): 'clown_thugkocs' : None
ENCOUNTER: PlayCutsceneFromList(): None : None ... [['m25obj_20', 'fallen']]
ENCOUNTER: PlayEncCutscene(): 'villainkocs' : None
ENCOUNTER: PlayCutsceneFromList(): None : None ... [['m25obj_20', 'fallen']]
ENCOUNTER: -- custom check end EncCustom_DisarmBomb_CheckEnd(2) - None
ENCOUNTER: -- custom check end EncCustom_Timer_CheckEnd(2) - ['timer still going']
ENCOUNTER: -- custom check end EncCustom_VillainsFight_CheckEnd(2) - None
GROUP: '2_minion' member koed
ENCOUNTER: PlayEncCutscene(): 'm25obj_10kocs' : None
ENCOUNTER: PlayCutsceneFromList(): None : None ... [['m25obj_10', 'fallen']]
ENCOUNTER: PlayEncCutscene(): 'clown_thugkocs' : None
ENCOUNTER: PlayCutsceneFromList(): None : None ... [['m25obj_10', 'fallen']]
ENCOUNTER: PlayEncCutscene(): 'villainkocs' : None
ENCOUNTER: PlayCutsceneFromList(): None : None ... [['m25obj_10', 'fallen']]
ENCOUNTER: -- custom check end EncCustom_DisarmBomb_CheckEnd(2) - None
ENCOUNTER: -- custom check end EncCustom_Timer_CheckEnd(2) - ['timer still going']
ENCOUNTER: -- custom check end EncCustom_VillainsFight_CheckEnd(2) - None
GROUP: '2_minion' leader koed
GROUP: 'm25obj_14' automatically promoted to leader of group '2_minion'
GROUP: 'm25obj_14' made leader of group '2_minion'
GOAL: Removing goal Goal_Guard( from character m25obj_14
GOAL: Removing goal Goal_Guard( from character m25obj_18
GOAL: Adding goal Goal_Guard(1017,'m25obj_14',19) to character m25obj_18
GROUP: '2_minion' set to guard 'm25obj_14'
GOAL: Adding goal Goal_StayWithTeam(1018,20) to character m25obj_14
GROUP: '2_minion' member koed
ENCOUNTER: PlayEncCutscene(): 'm25obj_14kocs' : None
ENCOUNTER: PlayCutsceneFromList(): None : None ... [['m25obj_14', 'fallen']]
ENCOUNTER: PlayEncCutscene(): 'clown_thugkocs' : None
ENCOUNTER: PlayCutsceneFromList(): None : None ... [['m25obj_14', 'fallen']]
ENCOUNTER: PlayEncCutscene(): 'villainkocs' : None
ENCOUNTER: PlayCutsceneFromList(): None : None ... [['m25obj_14', 'fallen']]
ENCOUNTER: -- custom check end EncCustom_DisarmBomb_CheckEnd(2) - None
ENCOUNTER: -- custom check end EncCustom_Timer_CheckEnd(2) - ['timer still going']
ENCOUNTER: -- custom check end EncCustom_VillainsFight_CheckEnd(2) - None
GROUP: '2_minion' leader koed
GROUP: 'm25obj_18' automatically promoted to leader of group '2_minion'
GROUP: 'm25obj_18' made leader of group '2_minion'
GOAL: Removing goal Goal_Guard( from character m25obj_18
GROUP: '2_minion' set to guard 'm25obj_18'
GOAL: Adding goal Goal_StayWithTeam(1019,20) to character m25obj_18
GROUP: '2_minion' member koed
ENCOUNTER: PlayEncCutscene(): 'm25obj_18kocs' : None
ENCOUNTER: PlayCutsceneFromList(): None : None ... [['m25obj_18', 'fallen']]
ENCOUNTER: PlayEncCutscene(): 'clown_thugkocs' : None
ENCOUNTER: PlayCutsceneFromList(): None : None ... [['m25obj_18', 'fallen']]
ENCOUNTER: PlayEncCutscene(): 'villainkocs' : None
ENCOUNTER: PlayCutsceneFromList(): None : None ... [['m25obj_18', 'fallen']]
ENCOUNTER: -- custom check end EncCustom_DisarmBomb_CheckEnd(2) - None
ENCOUNTER: -- custom check end EncCustom_Timer_CheckEnd(2) - ['timer still going']
ENCOUNTER: -- custom check end EncCustom_VillainsFight_CheckEnd(2) - ['villains gone']
GROUP: '2_minion' leader koed
ENCOUNTER: PlayCutsceneFromList(): None : 'Examine_End(2)' ... [['hero_1', 'hero']]
ENCOUNTER: 2 - event callback _examined has value ['EncCustom_DisarmBomb_Disarmed']
ENCOUNTER: 2 - event callback _examined calling EncCustom_DisarmBomb_Disarmed
ENCOUNTER: 2 - event callback _customtimerstopped has value []
ENCOUNTER: PlayEncCutscene(): 'bombdisarmedcs' : 'EncCheckEnd(2)'
ENCOUNTER: PlayCutsceneFromList(): [['priority', 1], ['required', 'robin'], ['cutscene', 'CS_Start()', "CS_Camera('robin', dist=-160, yaw=0)", "CS_Speak('robin', 'Whew, that was just too close!', force=0)", 'CS_End()']] : 'EncCheckEnd(2)' ... []
CUTSCENE: request to play cutscene.
CUTSCENE:  - CS_Start()
CUTSCENE:  - CS_Camera('robin', dist=-160, yaw=0)
CUTSCENE:  - CS_Speak('robin','Whew, that was just too close!', force=0)
CUTSCENE:  - CS_End()
CUTSCENE: calling PlayCurrentCutscene 2
CUTSCENE: playing ff.CS_Start(2)
ENCOUNTER: -- custom check end EncCustom_DisarmBomb_CheckEnd(2) - ['bomb disarmed']
ENCOUNTER: -- custom check end EncCustom_Timer_CheckEnd(2) - ['timer still going']
ENCOUNTER: -- custom check end EncCustom_VillainsFight_CheckEnd(2) - ['villains gone']

ENCOUNTER: PlayEncCutscene(): 'endcs' : "EncCustom_CleanUp(2, ['end', 'bomb disarmed', 'timer still going', 'villains gone'])"
ENCOUNTER: PlayCutsceneFromList(): None : "EncCustom_CleanUp(2, ['end', 'bomb disarmed', 'timer still going', 'villains gone'])" ... []
ENCOUNTER: Encounter ended 2 with ['end', 'bomb disarmed', 'timer still going', 'villains gone']
CUTSCENE: playing ff.CS_Camera(2,'robin', dist=-160, yaw=0)
CUTSCENE: playing ff.CS_Speak(2,'robin','Whew, that was just too close!', force=0)
ENCOUNTER: Setting up encounter 3
ENCOUNTER: Start marker found for ['vent1'] 'vent1'
ENCOUNTER: No markers for 3 [['allyleave', 'vent1_allyleave', 'dist500']]
[SNIP]
[SNIP]
CUTSCENE: playing ff.CS_End(2)
AI: [SNIP]
CUTSCENE: calling cutscene return function.
CUTSCENE: retrieving the next cutscene from the queue.
GROUP: 'm25obj_22' removed from group '2_minion'
GROUP: '2_minion' set to ['m25obj_6', 'm25obj_8', 'm25obj_10', 'm25obj_12', 'm25obj_14', 'm25obj_16', 'm25obj_18', 'm25obj_20']
CUTSCENE: playing ff.CS_Start(3)
CUTSCENE: playing ff.CS_Fade(3,2)
AI: [SNIP]
GROUP: 'm25obj_8' removed from group '2_minion'
GROUP: '2_minion' set to ['m25obj_6', 'm25obj_10', 'm25obj_12', 'm25obj_14', 'm25obj_16', 'm25obj_18', 'm25obj_20']
GROUP: 'm25obj_12' removed from group '2_minion'
GROUP: '2_minion' set to ['m25obj_6', 'm25obj_10', 'm25obj_14', 'm25obj_16', 'm25obj_18', 'm25obj_20']
GROUP: 'm25obj_16' removed from group '2_minion'
GROUP: '2_minion' set to ['m25obj_6', 'm25obj_10', 'm25obj_14', 'm25obj_18', 'm25obj_20']
AI: [SNIP]
GROUP: 'm25obj_20' removed from group '2_minion'
GROUP: '2_minion' set to ['m25obj_6', 'm25obj_10', 'm25obj_14', 'm25obj_18']
CUTSCENE: playing ff.CS_TeleportTo(3,'catwoman', 'batman')
GROUP: 'm25obj_10' removed from group '2_minion'
GROUP: '2_minion' set to ['m25obj_6', 'm25obj_14', 'm25obj_18']
CUTSCENE: playing ff.CS_CinematicCamera(3,'catwoman')
GROUP: 'm25obj_14' removed from group '2_minion'
GROUP: '2_minion' set to ['m25obj_6', 'm25obj_18']
CUTSCENE: playing ff.CS_UnFade(3,2)
CUTSCENE: playing ff.CS_AddArrow(3,'m25obj_24arrow', 'm25obj_24', arrow_type=js.ARROW_YELLOW)
addArrow m25obj_24arrow m25obj_24 1 1
CUTSCENE: playing ff.CS_TurnTo(3,'catwoman', 'batman')
CUTSCENE: playing ff.CS_Speak(3,'catwoman','Finally! now that this is all over, can we please go find that little wooden twerp? There were rumors about a jewel heist...', force=0)
GROUP: 'm25obj_6' removed from group '2_minion'
GROUP: '2_minion' set to ['m25obj_18']
GROUP: 'm25obj_18' removed from group '2_minion'
GROUP: '2_minion' set to []
GROUP: empty '2_minion' cannot have a leader promoted
ENCOUNTER: 2 - event callback _customtimerup has value ['EncCustom_DisarmBomb_Explode']
ENCOUNTER: 2 - event callback _customtimerup calling EncCustom_DisarmBomb_Explode
ENCOUNTER: PlayEncCutscene(): 'bombexplodingcs' : 'EncCustom_DisarmBomb_Explode2(2)'
ENCOUNTER: PlayCutsceneFromList(): [['priority', 1], ['required', 'batman'], ['cutscene', 'CS_Start()', "CS_Camera('batman', dist=-160, yaw=0)", "CS_Speak('batman', 'Oh no!', force=0)", 'CS_End()']] : 'EncCustom_DisarmBomb_Explode2(2)' ... []
CUTSCENE: request to play cutscene.
CUTSCENE:  - CS_Start()
CUTSCENE:  - CS_Camera('batman', dist=-160, yaw=0)
CUTSCENE:  - CS_Speak('batman','Oh no!', force=0)
CUTSCENE:  - CS_End()
CUTSCENE: adding cutscene to queue.
CUTSCENE: playing ff.CS_TurnTo(3,'batman', 'catwoman')
CUTSCENE: playing ff.CS_Speak(3,'batman',"Hmm...Gotham Jems is in this area, let's go check it out.", force=0)
CUTSCENE: playing ff.CS_End(3)
CUTSCENE: calling cutscene return function.
CUTSCENE: no return function to call.
CUTSCENE: retrieving the next cutscene from the queue.
CUTSCENE: playing ff.CS_Start(4)
CUTSCENE: playing ff.CS_Camera(4,'batman', dist=-160, yaw=0)
CUTSCENE: playing ff.CS_Speak(4,'batman','Oh no!', force=0)
CUTSCENE: playing ff.CS_End(4)
CUTSCENE: calling cutscene return function.
GROUP: 'm25obj_4' removed from group '2_bomb'
GROUP: '2_bomb' set to []
GROUP: empty '2_bomb' cannot have a leader promoted
God Bless
"If God came down upon me and gave me a wish again, I'd wish to be like Aquaman, 'cause Aquaman can take the pain..." -Ballad of Aquaman
Check out mymods and blog!
https://bentongrey.wordpress.com/

GogglesPizanno

Quoteby the way, what do you need to name a marker in order for a bomb to spawn there?  I've tried both object1 and item1 with no luck.

I think you can use any marker on the map you want, just give the encounter a "Marker: marker_name" entry to tell the bomb encounter to start there... or am I misunderstanding the question?

BentonGrey

#49
Yeah Goggles, I should have been more specifc, I mean the bomb itself, the actual device.  I've got encounter1_villain1, encounter1_object1, encounter1_item1, etc., but the bomb is still spawning wherever it pleases (which happens to be inside a building, rather than on top of it).

One more question, I know that captions can be generated by having the game scan the 'stories' directory, but can I just toss copies of all of my 'mission' files in that folder and get all three campaigns captioned that way?  Will the game recognize line by line, or do I need to have Story: BLANK in each story?
God Bless
"If God came down upon me and gave me a wish again, I'd wish to be like Aquaman, 'cause Aquaman can take the pain..." -Ballad of Aquaman
Check out mymods and blog!
https://bentongrey.wordpress.com/

M25

I sent a patch to the email address I had for you (the yahoo one).  It should correct an issue with the cinematic camera and with the disarm bomb encounter not preventing the explosion.

The bomb is spawned at <encounter_marker>_bomb1



BentonGrey

Thanks so much M!  I want to tell you, that this mod would not have been even remotely possible without you, first for being part of the FFX team, and second for all of the help you've given me here. :D
God Bless
"If God came down upon me and gave me a wish again, I'd wish to be like Aquaman, 'cause Aquaman can take the pain..." -Ballad of Aquaman
Check out mymods and blog!
https://bentongrey.wordpress.com/

BentonGrey

#52
Alright, D-Day+2, and I'm trying to fit in all the pieces.  First off, I'm having trouble with captions.  I've run the captions generator, but my missions are still just scrolling text, no talking heads (and I've got animportrait entries for all of the pertinent characters).  I'm I missing something here?  I went through every mission, renamed the mission and base file's "Story: My Story" entries to be unique (01jlabase, 01jla, etc.), and copied and pasted them into my Stories folder.  Then I ran the Captions Generator.  Thoughts?




Also, having trouble with a new base scene.  When I click on Mission Briefing, I get the DoEncCustom is broken message.  Here is the encounter:

Spoiler
Encounter: Briefing
Type: Cutscene
Starts When: Briefing

Start Cutscene:
Camera on martian_man
martian_man says, "At this moment their machines are descending on your planet,

and the night has begun..."
flash says, "You're a little early baldy, it's only 10:00 A.M.!"
batman moves to comp1
Camera on batman
batman plays animation ranged
batman says, "No...he's right. Something is happening. The creatures had their

instruments monitoring communications across the world...and all of a sudden,

there is just one thing on all the airwaves."
superman moves to comp2
superman says, "What is it?"
batman says, "Invasion."
wonder_woman teleports to ww2
white_martian teleports to ww1
Camera on white_martian
white_martian says, "That's right human germ, invasion...and my squad is here to

make certain that you are the first casualties of your race!"
white_martian plays animation melee
white_martian says, "Kill them!"
white_martian turns to ww2
white_martian says, "Fools, did you not hear my order! By the moons! Where are

you?"
wonder_woman moves to white_martian
wonder_woman says, "Sleeping peacefully creature! Why don't you join them?"
wonder_woman plays animation melee
white_martian plays animation fall
Camera on green_lantern
green_lantern turns to wonder_woman
green_lantern says, "Thanks for the help gorgeous! Where'd you come from?"
Camera on wonder_woman
wonder_woman says, "Themyscira. I could not sit idly by and watch man's world be

destroyed."
Camera on flash
flash says, "Man's world? Themyscira?"
Camera on batman
batman says, "Figure it out later speedster, we don't have time to waste with

amateurs right now. We need to be focusing on a plan of attack."
Camera on wonder_woman
wonder_woman says, "Amateur! I have trained for centuries to take up this

mantle!"
green_lantern says, "Centuries?"
flash says, "Maybe she means dog-years?"
Camera on aquaman_classic
aquaman_classic says, "Worry about it later, batman's right.  We need a plan!"
Cinematic camera on superman to batman
superman says, "The aliens are landing in Metropolis...I've got to get back

there!"
batman says, "Don't be stupid Superman, we need to pool our resources."
martian_man moves to comp3
martian_man says, "The batman is right...racing to fight them in the ground of

their choosing will be fruitless. We must hit them where they do not expect

it...disorganize them."
superman says, "While my city is torn to pieces! I can't...I have to help them!"
batman turns to superman
batman plays animation idle_1
batman turns to martian_man
batman says, "Why don't we do both?"
martian_man says, "Yes...that might work...and a team going to Metropolis would

keep the S'ourns from discovering our plans...Some of you must come with me. If

we destroy the parasites' communications node, we will throw their entire

invasion into chaos."
batman says, "And Superman can lead a team to Metropolis to try and defend the

city."
martian_man says, "It might work...it must work..."


As you can see, I'm also getting a weird spacing thing when I paste this mission into the forums.  There isn't anything like this evident in notepad itself.

Script.log part 1:
Spoiler
>>> system/init.py executed
>>> system/localinit.py executed
>>> system\tredir.py executed
Starting ffx.py v. 3.2.0 build 11; branch = Gold / Release
Loading m25ai.py v. 3.2.0 build 10; branch = beta 2: m25 branch 2
importing missionobjvar.py v1.18
loading datfiles version 0.251000
importing MLOG Reader 1.0.18 release
Starting General Utilities 1.0
missionobjvar(FixLongs): Fixing overflow issue with <SCSTATE_BUOYANT>
missionobjvar defining functions for Campaign play.
Loading m25cutscene.py v.3.3.05 January 10, 2009
CustomHeadCurrentTime 1231823933.234000
Starting Height Check module 1.4
Starting System Utilities 1.4
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
Campaign_ReadObjects() warning: object template <water> has more than one entry for attribute <mass>, values 650.000000 and 650.000000
Campaign_ReadObjects() warning: object template <jm_pad_white> has more than one entry for attribute <canPickUp>, values 0.000000 and 0.000000
Campaign_ReadObjects() warning: object template <jm_pad_green> has more than one entry for attribute <canPickUp>, values 0.000000 and 0.000000
Campaign_ReadObjects() warning: object template <jm_pad_brown> has more than one entry for attribute <canPickUp>, values 0.000000 and 0.000000
Campaign_ReadObjects() warning: object template <jm_pad> has more than one entry for attribute <canPickUp>, values 0.000000 and 0.000000
Campaign_ReadObjects() warning: object template <bigwater> has more than one entry for attribute <mass>, values 650.000000 and 650.000000
FFX Mission Plugin 'firehydrant' imported
FFX Mission Plugin 'zombie' imported
Loading freeroam_keepbuildingdamage.py v.1.0.0 build 0; branch = main
FREEROAM_KBD: initialized
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.py v.3.3.05 January 10, 2009
Loading m25freeroam.py v. 3.2.0 build 7; branch = m25 branch 1
FFX Mission Plugin 'm25encexit' imported
Loading     m25enc_OPENDOOR.py v.1.0.0 build 0; branch = main
FFX Mission Plugin 'm25enc_opendoor' imported
FFX Mission Plugin 'm25enc_reqchar' imported
Loading     m25enc_simplechoice.py v.1.0.0 build 0; branch = main
FFX Mission Plugin 'm25enc_simplechoice' imported
FFX Mission Plugin 'm25encstory' imported
Starting Built-In Function Wrapper 1.5
('Object_CalcPrestige', 'js')
>>> C:\Documents and Settings\Owner\Local Settings\Application Data\Irrational Games\Freedom Force vs the 3rd Reich\temp\base.py executed
MISSION: EZScript MiniMod/Campaign Precache.
PSTORY: {'name': '06jlabase', 'encounters': [{'marker': 'atom1', 'type': 'Base', 'timeofday': 'none', 'required_map': [], 'trigger': [], 'next': [], 'objectives': [], 'parameters': [], 'name': 'Start', 'cutscenes': [{'replace': [], 'name': 'Start', 'required': ['martian_man'], 'priority': 1, 'cutscene': ['CS_Start()', "CS_Camera('martian_man', dist=-160, yaw=0)", 'CS_UnFade(5)', 'CS_End()']}], 'pre': []}, {'marker': 'encounter', 'type': 'Cutscene', 'timeofday': 'none', 'required_map': [], 'trigger': ['Briefing'], 'next': [], 'objectives': [], 'parameters': [['flashsays,"you\'realittleearlybaldy,it\'sonly10', '00 A.M.!"']], 'name': 'Briefing', 'cutscenes': [{'replace': [], 'name': 'Start', 'required': ['martian_man', 'flash', 'batman', 'comp1', 'superman', 'comp2', 'wonder_woman', 'ww2', 'white_martian', 'ww1', 'green_lantern', 'aquaman_classic', 'comp3'], 'priority': 1, 'cutscene': ['CS_Start()', "CS_Camera('martian_man', dist=-160, yaw=0)", "CS_Speak('martian_man', 'At this moment their machines are descending on your planet, and the night has begun...', force=0)", 'CS_Speak(\'flash\', "You\'re a little early baldy, it\'s only 10:00 A.M.!", force=0)', "CS_MoveTo('batman', 'comp1')", "CS_Camera('batman', dist=-160, yaw=0)", "CS_Animate('batman','ranged')", 'CS_Speak(\'batman\', "No...he\'s right. Something is happening. The creatures had their instruments monitoring communications across the world...and all of a sudden, there is just one thing on all the airwaves.", force=0)', "CS_MoveTo('superman', 'comp2')", "CS_Speak('superman', 'What is it?', force=0)", "CS_Speak('batman', 'Invasion.', force=0)", "CS_TeleportTo('wonder_woman', 'ww2')", "CS_TeleportTo('white_martian', 'ww1')", "CS_Camera('white_martian', dist=-160, yaw=0)", 'CS_Speak(\'white_martian\', "That\'s right human germ, invasion...and my squad is here to make certain that you are the first casualties of your race!", force=0)', "CS_Animate('white_martian','melee')", "CS_Speak('white_martian', 'Kill them!', force=0)", "CS_TurnTo('white_martian', 'ww2')", "CS_Speak('white_martian', 'Fools, did you not hear my order! By the moons! Where are you?', force=0)", "CS_MoveTo('wonder_woman', 'white_martian')", 'CS_Speak(\'wonder_woman\', "Sleeping peacefully creature! Why don\'t you join them?", force=0)', "CS_Animate('wonder_woman','melee')", "CS_Animate('white_martian','fall')", "CS_Camera('green_lantern', dist=-160, yaw=0)", "CS_TurnTo('green_lantern', 'wonder_woman')", 'CS_Speak(\'green_lantern\', "Thanks for the help gorgeous! Where\'d you come from?", force=0)', "CS_Camera('wonder_woman', dist=-160, yaw=0)", 'CS_Speak(\'wonder_woman\', "Themyscira. I could not sit idly by and watch man\'s world be destroyed.", force=0)', "CS_Camera('flash', dist=-160, yaw=0)", 'CS_Speak(\'flash\', "Man\'s world? Themyscira?", force=0)', "CS_Camera('batman', dist=-160, yaw=0)", 'CS_Speak(\'batman\', "Figure it out later speedster, we don\'t have time to waste with amateurs right now. We need to be focusing on a plan of attack.", force=0)', "CS_Camera('wonder_woman', dist=-160, yaw=0)", "CS_Speak('wonder_woman', 'Amateur! I have trained for centuries to take up this mantle!', force=0)", "CS_Speak('green_lantern', 'Centuries?', force=0)", "CS_Speak('flash', 'Maybe she means dog-years?', force=0)", "CS_Camera('aquaman_classic', dist=-160, yaw=0)", 'CS_Speak(\'aquaman_classic\', "Worry about it later, batman\'s right.  We need a plan!", force=0)', "CS_CinematicCamera('superman','batman')", 'CS_Speak(\'superman\', "The aliens are landing in Metropolis...I\'ve got to get back there!", force=0)', 'CS_Speak(\'batman\', "Don\'t be stupid Superman, we need to pool our resources.", force=0)', "CS_MoveTo('martian_man', 'comp3')", "CS_Speak('martian_man', 'The batman is right...racing to fight them in the ground of their choosing will be fruitless. We must hit them where they do not expect it...disorganize them.', force=0)", 'CS_Speak(\'superman\', "While my city is torn to pieces! I can\'t...I have to help them!", force=0)', "CS_TurnTo('batman', 'superman')", "CS_Animate('batman','idle_1')", "CS_TurnTo('batman', 'martian_man')", 'CS_Speak(\'batman\', "Why don\'t we do both?", force=0)', 'CS_Speak(\'martian_man\', "Yes...that might work...and a team going to Metropolis would keep the S\'ourns from discovering our plans...Some of you must come with me. If we destroy the parasites\' communications node, we will throw their entire invasion into chaos.", force=0)', "CS_Speak('batman', 'And Superman can lead a team to Metropolis to try and defend the city.', force=0)", "CS_Speak('martian_man', 'It might work...it must work...', force=0)", 'CS_End()']}], 'pre': []}], 'start': []}
PSTORY: {'06jlabase': {'encounters': {'__lose__': {'action': ['ff.Story_LoseMission()']}, '__win__': {'action': ['ff.Story_WinMission()']}, '__end__': {'action': ["ff.Story_SetStoryEnded('06jlabase')"]}, 'Start': {'timeofday': 'none', 'next': ['Briefing'], 'trigger': ['start'], 'action': ['DoEncBase(cutscenes = [[\'startcs\', [[\'priority\', 1], [\'required\', \'martian_man\'], [\'cutscene\', \'CS_Start()\', "CS_Camera(\'martian_man\', dist=-160, yaw=0)", \'CS_UnFade(5)\', \'CS_End()\']]]], marker = \'atom1\')'], 'required_map': []}, 'Briefing': {'timeofday': 'none', 'next': ['__end__'], 'trigger': ['Briefing'], 'action': ['DoEncCutscene(cutscenes = [[\'startcs\', [[\'priority\', 1], [\'required\', \'martian_man\', \'flash\', \'batman\', \'comp1\', \'superman\', \'comp2\', \'wonder_woman\', \'ww2\', \'white_martian\', \'ww1\', \'green_lantern\', \'aquaman_classic\', \'comp3\'], [\'cutscene\', \'CS_Start()\', "CS_Camera(\'martian_man\', dist=-160, yaw=0)", "CS_Speak(\'martian_man\', \'At this moment their machines are descending on your planet, and the night has begun...\', force=0)", \'CS_Speak(\\\'flash\\\', "You\\\'re a little early baldy, it\\\'s only 10:00 A.M.!", force=0)\', "CS_MoveTo(\'batman\', \'comp1\')", "CS_Camera(\'batman\', dist=-160, yaw=0)", "CS_Animate(\'batman\',\'ranged\')", \'CS_Speak(\\\'batman\\\', "No...he\\\'s right. Something is happening. The creatures had their instruments monitoring communications across the world...and all of a sudden, there is just one thing on all the airwaves.", force=0)\', "CS_MoveTo(\'superman\', \'comp2\')", "CS_Speak(\'superman\', \'What is it?\', force=0)", "CS_Speak(\'batman\', \'Invasion.\', force=0)", "CS_TeleportTo(\'wonder_woman\', \'ww2\')", "CS_TeleportTo(\'white_martian\', \'ww1\')", "CS_Camera(\'white_martian\', dist=-160, yaw=0)", \'CS_Speak(\\\'white_martian\\\', "That\\\'s right human germ, invasion...and my squad is here to make certain that you are the first casualties of your race!", force=0)\', "CS_Animate(\'white_martian\',\'melee\')", "CS_Speak(\'white_martian\', \'Kill them!\', force=0)", "CS_TurnTo(\'white_martian\', \'ww2\')", "CS_Speak(\'white_martian\', \'Fools, did you not hear my order! By the moons! Where are you?\', force=0)", "CS_MoveTo(\'wonder_woman\', \'white_martian\')", \'CS_Speak(\\\'wonder_woman\\\', "Sleeping peacefully creature! Why don\\\'t you join them?", force=0)\', "CS_Animate(\'wonder_woman\',\'melee\')", "CS_Animate(\'white_martian\',\'fall\')", "CS_Camera(\'green_lantern\', dist=-160, yaw=0)", "CS_TurnTo(\'green_lantern\', \'wonder_woman\')", \'CS_Speak(\\\'green_lantern\\\', "Thanks for the help gorgeous! Where\\\'d you come from?", force=0)\', "CS_Camera(\'wonder_woman\', dist=-160, yaw=0)", \'CS_Speak(\\\'wonder_woman\\\', "Themyscira. I could not sit idly by and watch man\\\'s world be destroyed.", force=0)\', "CS_Camera(\'flash\', dist=-160, yaw=0)", \'CS_Speak(\\\'flash\\\', "Man\\\'s world? Themyscira?", force=0)\', "CS_Camera(\'batman\', dist=-160, yaw=0)", \'CS_Speak(\\\'batman\\\', "Figure it out later speedster, we don\\\'t have time to waste with amateurs right now. We need to be focusing on a plan of attack.", force=0)\', "CS_Camera(\'wonder_woman\', dist=-160, yaw=0)", "CS_Speak(\'wonder_woman\', \'Amateur! I have trained for centuries to take up this mantle!\', force=0)", "CS_Speak(\'green_lantern\', \'Centuries?\', force=0)", "CS_Speak(\'flash\', \'Maybe she means dog-years?\', force=0)", "CS_Camera(\'aquaman_classic\', dist=-160, yaw=0)", \'CS_Speak(\\\'aquaman_classic\\\', "Worry about it later, batman\\\'s right.  We need a plan!", force=0)\', "CS_CinematicCamera(\'superman\',\'batman\')", \'CS_Speak(\\\'superman\\\', "The aliens are landing in Metropolis...I\\\'ve got to get back there!", force=0)\', \'CS_Speak(\\\'batman\\\', "Don\\\'t be stupid Superman, we need to pool our resources.", force=0)\', "CS_MoveTo(\'martian_man\', \'comp3\')", "CS_Speak(\'martian_man\', \'The batman is right...racing to fight them in the ground of their choosing will be fruitless. We must hit them where they do not expect it...disorganize them.\', force=0)", \'CS_Speak(\\\'superman\\\', "While my city is torn to pieces! I can\\\'t...I have to help them!", force=0)\', "CS_TurnTo(\'batman\', \'superman\')", "CS_Animate(\'batman\',\'idle_1\')", "CS_TurnTo(\'batman\', \'martian_man\')", \'CS_Speak(\\\'batman\\\', "Why don\\\'t we do both?", force=0)\', \'CS_Speak(\\\'martian_man\\\', "Yes...that might work...and a team going to Metropolis would keep the S\\\'ourns from discovering our plans...Some of you must come with me. If we destroy the parasites\\\' communications node, we will throw their entire invasion into chaos.", force=0)\', "CS_Speak(\'batman\', \'And Superman can lead a team to Metropolis to try and defend the city.\', force=0)", "CS_Speak(\'martian_man\', \'It might work...it must work...\', force=0)", \'CS_End()\']]]], marker = \'encounter\', flashsays,"you\'realittleearlybaldy,it\'sonly10 = \'00 A.M.!"\')'], 'required_map': []}}}}
! GetMapInfo
God Bless
"If God came down upon me and gave me a wish again, I'd wish to be like Aquaman, 'cause Aquaman can take the pain..." -Ballad of Aquaman
Check out mymods and blog!
https://bentongrey.wordpress.com/

GogglesPizanno

I dont remember if the caption generator actually updates the dat files or just the text file (I think its just the text file). You might try generating the language files... that may be the issue.

BentonGrey

Thanks Goggles, but I've checked my captions text, and there aren't any new lines in it.  I'll try it again today and double check. 

Script.log Part 2
Spoiler
MISSION: On Post Init... complete; starting story.
ENCOUNTER: PlayEncCutscene(): 'startcs' : 'BaseDone(1)'
ENCOUNTER: PlayCutsceneFromList(): [['priority', 1], ['required', 'martian_man'], ['cutscene', 'CS_Start()', "CS_Camera('martian_man', dist=-160, yaw=0)", 'CS_UnFade(5)', 'CS_End()']] : 'BaseDone(1)' ... []
CUTSCENE: request to play cutscene.
CUTSCENE:  - CS_Start()
CUTSCENE:  - CS_Camera('martian_man', dist=-160, yaw=0)
CUTSCENE:  - CS_UnFade(5)
CUTSCENE:  - CS_End()
CUTSCENE: calling PlayCurrentCutscene 1
CUTSCENE: playing ff.CS_Start(1)
CUTSCENE: playing ff.CS_Camera(1,'martian_man', dist=-160, yaw=0)
CUTSCENE: playing ff.CS_UnFade(1,5)
initialising FFQ_initialiseExtras()
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 'm25encexit' has no OnPostInit()
Plugin 'm25enc_opendoor' has no OnPostInit()
Plugin 'm25enc_reqchar' has no OnPostInit()
Plugin 'm25enc_simplechoice' has no OnPostInit()
Plugin 'm25encstory' has no OnPostInit()
CUTSCENE: playing ff.CS_End(1)
CUTSCENE: calling cutscene return function.
ERROR: The encounter DoEncCutscene does not exist or is broken.  You may need to download the appropriate plug-in, or check script.log for errors.
ff.DoEncCutscene(2,cutscenes = [['startcs', [['priority', 1], ['required', 'martian_man', 'flash', 'batman', 'comp1', 'superman', 'comp2', 'wonder_woman', 'ww2', 'white_martian', 'ww1', 'green_lantern', 'aquaman_classic', 'comp3'], ['cutscene', 'CS_Start()', "CS_Camera('martian_man', dist=-160, yaw=0)", "CS_Speak('martian_man', 'At this moment their machines are descending on your planet, and the night has begun...', force=0)", 'CS_Speak(\'flash\', "You\'re a little early baldy, it\'s only 10:00 A.M.!", force=0)', "CS_MoveTo('batman', 'comp1')", "CS_Camera('batman', dist=-160, yaw=0)", "CS_Animate('batman','ranged')", 'CS_Speak(\'batman\', "No...he\'s right. Something is happening. The creatures had their instruments monitoring communications across the world...and all of a sudden, there is just one thing on all the airwaves.", force=0)', "CS_MoveTo('superman', 'comp2')", "CS_Speak('superman', 'What is it?', force=0)", "CS_Speak('batman', 'Invasion.', force=0)", "CS_TeleportTo('wonder_woman', 'ww2')", "CS_TeleportTo('white_martian', 'ww1')", "CS_Camera('white_martian', dist=-160, yaw=0)", 'CS_Speak(\'white_martian\', "That\'s right human germ, invasion...and my squad is here to make certain that you are the first casualties of your race!", force=0)', "CS_Animate('white_martian','melee')", "CS_Speak('white_martian', 'Kill them!', force=0)", "CS_TurnTo('white_martian', 'ww2')", "CS_Speak('white_martian', 'Fools, did you not hear my order! By the moons! Where are you?', force=0)", "CS_MoveTo('wonder_woman', 'white_martian')", 'CS_Speak(\'wonder_woman\', "Sleeping peacefully creature! Why don\'t you join them?", force=0)', "CS_Animate('wonder_woman','melee')", "CS_Animate('white_martian','fall')", "CS_Camera('green_lantern', dist=-160, yaw=0)", "CS_TurnTo('green_lantern', 'wonder_woman')", 'CS_Speak(\'green_lantern\', "Thanks for the help gorgeous! Where\'d you come from?", force=0)', "CS_Camera('wonder_woman', dist=-160, yaw=0)", 'CS_Speak(\'wonder_woman\', "Themyscira. I could not sit idly by and watch man\'s world be destroyed.", force=0)', "CS_Camera('flash', dist=-160, yaw=0)", 'CS_Speak(\'flash\', "Man\'s world? Themyscira?", force=0)', "CS_Camera('batman', dist=-160, yaw=0)", 'CS_Speak(\'batman\', "Figure it out later speedster, we don\'t have time to waste with amateurs right now. We need to be focusing on a plan of attack.", force=0)', "CS_Camera('wonder_woman', dist=-160, yaw=0)", "CS_Speak('wonder_woman', 'Amateur! I have trained for centuries to take up this mantle!', force=0)", "CS_Speak('green_lantern', 'Centuries?', force=0)", "CS_Speak('flash', 'Maybe she means dog-years?', force=0)", "CS_Camera('aquaman_classic', dist=-160, yaw=0)", 'CS_Speak(\'aquaman_classic\', "Worry about it later, batman\'s right.  We need a plan!", force=0)', "CS_CinematicCamera('superman','batman')", 'CS_Speak(\'superman\', "The aliens are landing in Metropolis...I\'ve got to get back there!", force=0)', 'CS_Speak(\'batman\', "Don\'t be stupid Superman, we need to pool our resources.", force=0)', "CS_MoveTo('martian_man', 'comp3')", "CS_Speak('martian_man', 'The batman is right...racing to fight them in the ground of their choosing will be fruitless. We must hit them where they do not expect it...disorganize them.', force=0)", 'CS_Speak(\'superman\', "While my city is torn to pieces! I can\'t...I have to help them!", force=0)', "CS_TurnTo('batman', 'superman')", "CS_Animate('batman','idle_1')", "CS_TurnTo('batman', 'martian_man')", 'CS_Speak(\'batman\', "Why don\'t we do both?", force=0)', 'CS_Speak(\'martian_man\', "Yes...that might work...and a team going to Metropolis would keep the S\'ourns from discovering our plans...Some of you must come with me. If we destroy the parasites\' communications node, we will throw their entire invasion into chaos.", force=0)', "CS_Speak('batman', 'And Superman can lead a team to Metropolis to try and defend the city.', force=0)", "CS_Speak('martian_man', 'It might work...it must work...', force=0)", 'CS_End()']]]], marker = 'encounter', flashsays,"you'realittleearlybaldy,it'sonly10 = '00 A.M.!"',return_function="StorylineEncounterReturn")
Traceback (innermost last):
  File "C:\Documents and Settings\Owner\Local Settings\Application Data\Irrational Games\Freedom Force vs the 3rd Reich\temp\base.py", line 32, in OnBriefing
    m25minimod.PlayBriefing()
  File "C:\Program Files\Irrational Games\Freedom Force vs The 3rd Reich\.\DCUG\missions\scripts\m25minimod.py", line 143, in PlayBriefing
    has_briefing = m25story.Story_DoBriefing()
  File "C:\Program Files\Irrational Games\Freedom Force vs The 3rd Reich\.\DCUG\missions\scripts\m25story.py", line 574, in Story_DoBriefing
    DoStorylineState(story,enc)
  File "C:\Program Files\Irrational Games\Freedom Force vs The 3rd Reich\.\DCUG\missions\scripts\m25story.py", line 295, in DoStorylineState
    if not StorySetupEncounter(enc_id,story,state,a):
  File "C:\Program Files\Irrational Games\Freedom Force vs The 3rd Reich\.\DCUG\missions\scripts\m25story.py", line 385, in StorySetupEncounter
    val = eval('ff.%s(%i,%s,return_function="StorylineEncounterReturn")'%(encname,enc_id,encparams))
  File "<string>", line 1
    ff.DoEncCutscene(2,cutscenes = [['startcs', [['priority', 1], ['required', 'martian_man', 'flash', 'batman', 'comp1', 'superman', 'comp2', 'wonder_woman', 'ww2', 'white_martian', 'ww1', 'green_lantern', 'aquaman_classic', 'comp3'], ['cutscene', 'CS_Start()', "CS_Camera('martian_man', dist=-160, yaw=0)", "CS_Speak('martian_man', 'At this moment their machines are descending on your planet, and the night has begun...', force=0)", 'CS_Speak(\'flash\', "You\'re a little early baldy, it\'s only 10:00 A.M.!", force=0)', "CS_MoveTo('batman', 'comp1')", "CS_Camera('batman', dist=-160, yaw=0)", "CS_Animate('batman','ranged')", 'CS_Speak(\'batman\', "No...he\'s right. Something is happening. The creatures had their instruments monitoring communications across the world...and all of a sudden, there is just one thing on all the airwaves.", force=0)', "CS_MoveTo('superman', 'comp2')", "CS_Speak('superman', 'What is it?', force=0)", "CS_Speak('batman', 'Invasion.', force=0)", "CS_TeleportTo('wonder_woman', 'ww2')", "CS_TeleportTo('white_martian', 'ww1')", "CS_Camera('white_martian', dist=-160, yaw=0)", 'CS_Speak(\'white_martian\', "That\'s right human germ, invasion...and my squad is here to make certain that you are the first casualties of your race!", force=0)', "CS_Animate('white_martian','melee')", "CS_Speak('white_martian', 'Kill them!', force=0)", "CS_TurnTo('white_martian', 'ww2')", "CS_Speak('white_martian', 'Fools, did you not hear my order! By the moons! Where are you?', force=0)", "CS_MoveTo('wonder_woman', 'white_martian')", 'CS_Speak(\'wonder_woman\', "Sleeping peacefully creature! Why don\'t you join them?", force=0)', "CS_Animate('wonder_woman','melee')", "CS_Animate('white_martian','fall')", "CS_Camera('green_lantern', dist=-160, yaw=0)", "CS_TurnTo('green_lantern', 'wonder_woman')", 'CS_Speak(\'green_lantern\', "Thanks for the help gorgeous! Where\'d you come from?", force=0)', "CS_Camera('wonder_woman', dist=-160, yaw=0)", 'CS_Speak(\'wonder_woman\', "Themyscira. I could not sit idly by and watch man\'s world be destroyed.", force=0)', "CS_Camera('flash', dist=-160, yaw=0)", 'CS_Speak(\'flash\', "Man\'s world? Themyscira?", force=0)', "CS_Camera('batman', dist=-160, yaw=0)", 'CS_Speak(\'batman\', "Figure it out later speedster, we don\'t have time to waste with amateurs right now. We need to be focusing on a plan of attack.", force=0)', "CS_Camera('wonder_woman', dist=-160, yaw=0)", "CS_Speak('wonder_woman', 'Amateur! I have trained for centuries to take up this mantle!', force=0)", "CS_Speak('green_lantern', 'Centuries?', force=0)", "CS_Speak('flash', 'Maybe she means dog-years?', force=0)", "CS_Camera('aquaman_classic', dist=-160, yaw=0)", 'CS_Speak(\'aquaman_classic\', "Worry about it later, batman\'s right.  We need a plan!", force=0)', "CS_CinematicCamera('superman','batman')", 'CS_Speak(\'superman\', "The aliens are landing in Metropolis...I\'ve got to get back there!", force=0)', 'CS_Speak(\'batman\', "Don\'t be stupid Superman, we need to pool our resources.", force=0)', "CS_MoveTo('martian_man', 'comp3')", "CS_Speak('martian_man', 'The batman is right...racing to fight them in the ground of their choosing will be fruitless. We must hit them where they do not expect it...disorganize them.', force=0)", 'CS_Speak(\'superman\', "While my city is torn to pieces! I can\'t...I have to help them!", force=0)', "CS_TurnTo('batman', 'superman')", "CS_Animate('batman','idle_1')", "CS_TurnTo('batman', 'martian_man')", 'CS_Speak(\'batman\', "Why don\'t we do both?", force=0)', 'CS_Speak(\'martian_man\', "Yes...that might work...and a team going to Metropolis would keep the S\'ourns from discovering our plans...Some of you must come with me. If we destroy the parasites\' communications node, we will throw their entire invasion into chaos.", force=0)', "CS_Speak('batman', 'And Superman can lead a team to Metropolis to try and defend the city.', force=0)", "CS_Speak('martian_man', 'It might work...it must work...', force=0)", 'CS_End()']]]], marker = 'encounter', flashsays,"you'realittleearlybaldy,it'sonly10 = '00 A.M.!"',return_function="StorylineEncounterReturn")
                                                                                                         
God Bless
"If God came down upon me and gave me a wish again, I'd wish to be like Aquaman, 'cause Aquaman can take the pain..." -Ballad of Aquaman
Check out mymods and blog!
https://bentongrey.wordpress.com/

M25

For the captions generator, you should see it printing out a list of the stories you have in your story directory on the screen.  Otherwise, check the log.

Also, it looks like you cut off the actual error message in your script.log part 2 message.



BentonGrey

#56
No, I believe that is where it ended M.  I was definitely not getting anything with the captions generator, I'll try it again and check the log. 

:EDIT: Ohh, there was this, after a few dozen lines of blank space:
^
SyntaxError: invalid token
God Bless
"If God came down upon me and gave me a wish again, I'd wish to be like Aquaman, 'cause Aquaman can take the pain..." -Ballad of Aquaman
Check out mymods and blog!
https://bentongrey.wordpress.com/

M25

EZ script seems to be mangling the line with 10:00 AM in it. 

flash says, "You're a little early baldy, it's only 10:00 A.M.!"

I thought I'd fixed that, but to work around it, just remove the colon ( : ) from the line

flash says, "You're a little early baldy, it's only 10 A.M.!"



BentonGrey

Thanks M!  Freaking colons!  Ha, thanks to you, the DCUG has been released, and is in (mostly) working order.  I do have one thing that I can't figure out (so far), and I was hoping someone might have some insight.

In the final JLA mission, everything works fine until the second to last encounter.  That plays fine, but it is a custom with interrogation, and the villain gets KOed, despite the interrogation symbol above her head.  Here is the pertinent part of the script:

Spoiler
#----------------------------------

Encounter: Bell1
Type: Custom
Actions: Villains Fight Heroes, Villains Are Invulnerable, Invulnerability Can End,

Invulnerability Ends When Minions Defeated, Villains Can Be Interrogated
Villains: bel_juz
Minions: white_martian
Villain Invulnerability Effect: effect_ffx_energyshield
Marker: alien4
Next: Final1

Alert Cutscene:
Fade for 2 seconds
batman is Revived
aquaman_classic is Revived
wonder_woman is Revived
Camera on martian_man
Unfade for 3 seconds
martian_man says, "Quickly, we are almost to the control center!"
Red Arrow on bel_juz

Start Cutscene:
Remove Arrow from bel_juz
martian_man moves turns to bel_juz
Camera on martian_man
bel_juz says, "Hello J'onn..."
Camera on bel_juz
bel_juz says, "I have missed you these last millennia...I dreamed of you as I slept."
Camera on martian_man
martian_man plays animation stunned
martian_man says, "B'ell...B'ell J'ouzz? How is this possible?"
Camera on superman
superman says, "J'onn, who is this woman?"
superman plays animation ranged
Camera on martian_man
martian_man says, "She is...was, my partner, a Manhunter, one of the best, but she betrayed us,

her own people...and the sacred trust of her vocation."
Camera on bel_juz
bel_juz plays animation ranged_2
bel_juz says, "I WAS the best"
Camera on martian_man
martian_man says, "She joined with the exiles, even led them against us...against me."
Camera on bel_juz
bel_juz says, "Don't be silly J'onn, it wasn't personal; it was simply a matter of survival. The

S'ourns were GOING to win. They were strong in all the ways our people were weak!"
bel_juz plays animation area_4
Camera on martian_man
martian_man plays animation ranged_2
martian_man says, "There is no strength in the taking of life, only in it's preservation."
Camera on bel_juz
bel_juz says, "Don't quote scripture to me J'onzz!"
bel_juz plays animation area_5
bel_juz says, "The war wasn't personal, but what I did to your wife and daugther, I have to admit,

I enjoyed!"
Camera on martian_man
martian_man plays animation stunned
martian_man says, "Monster!"
Camera on flash
flash says, "She killed his wife...good lord!"
Camera on batman
batman says, "I've heard enough, let's take them down!"
bel_juz says, "Do your worst sanctimonious one, I am protected by the S'ourns, and I share their

strength!"
martian_man plays animation ranged_3
martian_man says, "A psychokinetic shield-she is prtoected by the combined thoughts of her

servants!"

Interrogation Cutscene:
Fade for 1 second
Camera on martian_man
bel_juz plays animation stunned
Unfade for 3 seconds
martian_man moves to bel_juz
martian_man says, "Now you must face the justice of this people, just as you escaped the justice

of our own people."
Camera on bel_juz
bel_juz says, "N...no...not today...I may have fallen, but I delayed you fools long enough...my

master has arrived! I can feel his thoughts even now!"
bel_juz says, "Did...did anyone ever tell you how your wife begged in her final moments, J'onn?

She called on your name...and your false god's, but neither answered!"
Camera on martian_man
martian_man plays animation melee
martian_man says, "Unlike her, you will never see paradise you demon! At the very least, you will

pay for your crimes!"
bel_juz plays animation fall
Wait for 2 seconds
martian_man plays animation idle_2
martian_man says, "The Imperium."
aquaman_classic says, "What IS the Imperium?'
martian_man says, "It is the supreme intelligence of the parasites, a creature of unparalleled

power and evil...it can draw on the mental strenght of their entire race. We have met before."
Camera on green_lantern
green_lantern says, "What's one more big lizard...right?"
martian_man says, "You shall see, very soon. This way!"

#----------------------------------

And the script.log, which doesn't have anything that I can see.

Spoiler
CUTSCENE: calling cutscene return function.
GROUP: 'm25obj_110' automatically promoted to leader of group '9_minion'
GROUP: 'm25obj_110' made leader of group '9_minion'
GOAL:[SNIP]
GROUP: '9_minion' set to guard 'm25obj_110'
GOAL: Adding goal Goal_StayWithTeam(1085,20) to character m25obj_110
ENCOUNTER: -- custom check end EncCustom_VillainsFight_CheckEnd(9) - None
ENCOUNTER: -- custom check end EncCustom_InvulnerableEndMinions_CheckEnd(9) - None
AI: m25obj_4:'aquaman_classic' goal move to hero 'hero_2'
AI: m25obj_126:'white_martian' goal guard (-120.658997682, -188.316273968, 36.7567863464)
AI: m25obj_6:'wonder_woman' goal move to hero 'hero_2'
AI: m25obj_2:'batman' goal move to hero 'hero_2'
GROUP: '9_minion' member koed
ENCOUNTER: PlayEncCutscene(): 'm25obj_118kocs' : None
ENCOUNTER: PlayCutsceneFromList(): None : None ... [['m25obj_118', 'fallen']]
ENCOUNTER: PlayEncCutscene(): 'white_martiankocs' : None
ENCOUNTER: PlayCutsceneFromList(): None : None ... [['m25obj_118', 'fallen']]
ENCOUNTER: PlayEncCutscene(): 'minionkocs' : None
ENCOUNTER: PlayCutsceneFromList(): None : None ... [['m25obj_118', 'fallen']]
ENCOUNTER: -- custom check end EncCustom_VillainsFight_CheckEnd(9) - None
ENCOUNTER: -- custom check end EncCustom_InvulnerableEndMinions_CheckEnd(9) - None
AI: m25obj_4:'aquaman_classic' goal move to hero 'hero_2'
GROUP: '9_minion' member koed
ENCOUNTER: PlayEncCutscene(): 'm25obj_114kocs' : None
ENCOUNTER: PlayCutsceneFromList(): None : None ... [['m25obj_114', 'fallen']]
ENCOUNTER: PlayEncCutscene(): 'white_martiankocs' : None
ENCOUNTER: PlayCutsceneFromList(): None : None ... [['m25obj_114', 'fallen']]
ENCOUNTER: PlayEncCutscene(): 'minionkocs' : None
ENCOUNTER: PlayCutsceneFromList(): None : None ... [['m25obj_114', 'fallen']]
ENCOUNTER: -- custom check end EncCustom_VillainsFight_CheckEnd(9) - None
ENCOUNTER: -- custom check end EncCustom_InvulnerableEndMinions_CheckEnd(9) - None
GROUP: '9_minion' member koed
ENCOUNTER: PlayEncCutscene(): 'm25obj_112kocs' : None
ENCOUNTER: PlayCutsceneFromList(): None : None ... [['m25obj_112', 'fallen']]
ENCOUNTER: PlayEncCutscene(): 'white_martiankocs' : None
ENCOUNTER: PlayCutsceneFromList(): None : None ... [['m25obj_112', 'fallen']]
ENCOUNTER: PlayEncCutscene(): 'minionkocs' : None
ENCOUNTER: PlayCutsceneFromList(): None : None ... [['m25obj_112', 'fallen']]
ENCOUNTER: -- custom check end EncCustom_VillainsFight_CheckEnd(9) - None
ENCOUNTER: -- custom check end EncCustom_InvulnerableEndMinions_CheckEnd(9) - None
GROUP: '9_minion' member koed
ENCOUNTER: PlayEncCutscene(): 'm25obj_124kocs' : None
ENCOUNTER: PlayCutsceneFromList(): None : None ... [['m25obj_124', 'fallen']]
ENCOUNTER: PlayEncCutscene(): 'white_martiankocs' : None
ENCOUNTER: PlayCutsceneFromList(): None : None ... [['m25obj_124', 'fallen']]
ENCOUNTER: PlayEncCutscene(): 'minionkocs' : None
ENCOUNTER: PlayCutsceneFromList(): None : None ... [['m25obj_124', 'fallen']]
ENCOUNTER: -- custom check end EncCustom_VillainsFight_CheckEnd(9) - None
ENCOUNTER: -- custom check end EncCustom_InvulnerableEndMinions_CheckEnd(9) - None
GROUP: '9_minion' member koed
ENCOUNTER: PlayEncCutscene(): 'm25obj_110kocs' : None
ENCOUNTER: PlayCutsceneFromList(): None : None ... [['m25obj_110', 'fallen']]
ENCOUNTER: PlayEncCutscene(): 'white_martiankocs' : None
ENCOUNTER: PlayCutsceneFromList(): None : None ... [['m25obj_110', 'fallen']]
ENCOUNTER: PlayEncCutscene(): 'minionkocs' : None
ENCOUNTER: PlayCutsceneFromList(): None : None ... [['m25obj_110', 'fallen']]
ENCOUNTER: -- custom check end EncCustom_VillainsFight_CheckEnd(9) - None
ENCOUNTER: -- custom check end EncCustom_InvulnerableEndMinions_CheckEnd(9) - None
GROUP: '9_minion' leader koed
GROUP: 'm25obj_116' automatically promoted to leader of group '9_minion'
GROUP: 'm25obj_116' made leader of group '9_minion'
GOAL: [SNIP]
GROUP: '9_minion' set to guard 'm25obj_116'
GOAL: Adding goal Goal_StayWithTeam(1093,20) to character m25obj_116
GROUP: '9_minion' member koed
ENCOUNTER: PlayEncCutscene(): 'm25obj_128kocs' : None
ENCOUNTER: PlayCutsceneFromList(): None : None ... [['m25obj_128', 'fallen']]
ENCOUNTER: PlayEncCutscene(): 'white_martiankocs' : None
ENCOUNTER: PlayCutsceneFromList(): None : None ... [['m25obj_128', 'fallen']]
ENCOUNTER: PlayEncCutscene(): 'minionkocs' : None
ENCOUNTER: PlayCutsceneFromList(): None : None ... [['m25obj_128', 'fallen']]
ENCOUNTER: -- custom check end EncCustom_VillainsFight_CheckEnd(9) - None
ENCOUNTER: -- custom check end EncCustom_InvulnerableEndMinions_CheckEnd(9) - None
GROUP: '9_minion' member koed
ENCOUNTER: PlayEncCutscene(): 'm25obj_126kocs' : None
ENCOUNTER: PlayCutsceneFromList(): None : None ... [['m25obj_126', 'fallen']]
ENCOUNTER: PlayEncCutscene(): 'white_martiankocs' : None
ENCOUNTER: PlayCutsceneFromList(): None : None ... [['m25obj_126', 'fallen']]
ENCOUNTER: PlayEncCutscene(): 'minionkocs' : None
ENCOUNTER: PlayCutsceneFromList(): None : None ... [['m25obj_126', 'fallen']]
ENCOUNTER: -- custom check end EncCustom_VillainsFight_CheckEnd(9) - None
ENCOUNTER: -- custom check end EncCustom_InvulnerableEndMinions_CheckEnd(9) - None
GROUP: '9_minion' member koed
ENCOUNTER: PlayEncCutscene(): 'm25obj_130kocs' : None
ENCOUNTER: PlayCutsceneFromList(): None : None ... [['m25obj_130', 'fallen']]
ENCOUNTER: PlayEncCutscene(): 'white_martiankocs' : None
ENCOUNTER: PlayCutsceneFromList(): None : None ... [['m25obj_130', 'fallen']]
ENCOUNTER: PlayEncCutscene(): 'minionkocs' : None
ENCOUNTER: PlayCutsceneFromList(): None : None ... [['m25obj_130', 'fallen']]
ENCOUNTER: -- custom check end EncCustom_VillainsFight_CheckEnd(9) - None
ENCOUNTER: -- custom check end EncCustom_InvulnerableEndMinions_CheckEnd(9) - None
GROUP: '9_minion' member koed
ENCOUNTER: PlayEncCutscene(): 'm25obj_132kocs' : None
ENCOUNTER: PlayCutsceneFromList(): None : None ... [['m25obj_132', 'fallen']]
ENCOUNTER: PlayEncCutscene(): 'white_martiankocs' : None
ENCOUNTER: PlayCutsceneFromList(): None : None ... [['m25obj_132', 'fallen']]
ENCOUNTER: PlayEncCutscene(): 'minionkocs' : None
ENCOUNTER: PlayCutsceneFromList(): None : None ... [['m25obj_132', 'fallen']]
ENCOUNTER: -- custom check end EncCustom_VillainsFight_CheckEnd(9) - None
ENCOUNTER: -- custom check end EncCustom_InvulnerableEndMinions_CheckEnd(9) - None
GROUP: '9_minion' member koed
ENCOUNTER: PlayEncCutscene(): 'm25obj_116kocs' : None
ENCOUNTER: PlayCutsceneFromList(): None : None ... [['m25obj_116', 'fallen']]
ENCOUNTER: PlayEncCutscene(): 'white_martiankocs' : None
ENCOUNTER: PlayCutsceneFromList(): None : None ... [['m25obj_116', 'fallen']]
ENCOUNTER: PlayEncCutscene(): 'minionkocs' : None
ENCOUNTER: PlayCutsceneFromList(): None : None ... [['m25obj_116', 'fallen']]
ENCOUNTER: -- custom check end EncCustom_VillainsFight_CheckEnd(9) - None
ENCOUNTER: -- custom check end EncCustom_InvulnerableEndMinions_CheckEnd(9) - None
GROUP: '9_minion' leader koed
GROUP: 'm25obj_120' automatically promoted to leader of group '9_minion'
GROUP: 'm25obj_120' made leader of group '9_minion'
GOAL: Removing goal Goal_Guard( from character m25obj_120
GOAL: Removing goal Goal_Guard( from character m25obj_122
GOAL: Adding goal Goal_Guard(1094,'m25obj_120',19) to character m25obj_122
GOAL: Removing goal Goal_Guard( from character m25obj_134
GOAL: Adding goal Goal_Guard(1095,'m25obj_120',19) to character m25obj_134
GROUP: '9_minion' set to guard 'm25obj_120'
GOAL: Adding goal Goal_StayWithTeam(1096,20) to character m25obj_120
GROUP: '9_minion' member koed
ENCOUNTER: PlayEncCutscene(): 'm25obj_120kocs' : None
ENCOUNTER: PlayCutsceneFromList(): None : None ... [['m25obj_120', 'fallen']]
ENCOUNTER: PlayEncCutscene(): 'white_martiankocs' : None
ENCOUNTER: PlayCutsceneFromList(): None : None ... [['m25obj_120', 'fallen']]
ENCOUNTER: PlayEncCutscene(): 'minionkocs' : None
ENCOUNTER: PlayCutsceneFromList(): None : None ... [['m25obj_120', 'fallen']]
ENCOUNTER: -- custom check end EncCustom_VillainsFight_CheckEnd(9) - None
ENCOUNTER: -- custom check end EncCustom_InvulnerableEndMinions_CheckEnd(9) - None
GROUP: '9_minion' leader koed
GROUP: 'm25obj_122' automatically promoted to leader of group '9_minion'
GROUP: 'm25obj_122' made leader of group '9_minion'
GOAL: Removing goal Goal_Guard( from character m25obj_122
GOAL: Removing goal Goal_Guard( from character m25obj_134
GOAL: Adding goal Goal_Guard(1097,'m25obj_122',19) to character m25obj_134
GROUP: '9_minion' set to guard 'm25obj_122'
GOAL: Adding goal Goal_StayWithTeam(1098,20) to character m25obj_122
AI: m25obj_4:'aquaman_classic' move to 'm25obj_122'
GROUP: '9_minion' member koed
ENCOUNTER: PlayEncCutscene(): 'm25obj_122kocs' : None
ENCOUNTER: PlayCutsceneFromList(): None : None ... [['m25obj_122', 'fallen']]
ENCOUNTER: PlayEncCutscene(): 'white_martiankocs' : None
ENCOUNTER: PlayCutsceneFromList(): None : None ... [['m25obj_122', 'fallen']]
ENCOUNTER: PlayEncCutscene(): 'minionkocs' : None
ENCOUNTER: PlayCutsceneFromList(): None : None ... [['m25obj_122', 'fallen']]
ENCOUNTER: -- custom check end EncCustom_VillainsFight_CheckEnd(9) - None
ENCOUNTER: 9 - event callback _invulnerability_over has value ['EncCustom_InvulnerableVillain_Over']
ENCOUNTER: 9 - event callback _invulnerability_over calling EncCustom_InvulnerableVillain_Over
ENCOUNTER: -- custom check end EncCustom_InvulnerableEndMinions_CheckEnd(9) - None
GROUP: '9_minion' leader koed
GROUP: 'm25obj_134' automatically promoted to leader of group '9_minion'
GROUP: 'm25obj_134' made leader of group '9_minion'
GOAL: Removing goal Goal_Guard( from character m25obj_134
GROUP: '9_minion' set to guard 'm25obj_134'
GOAL: Adding goal Goal_StayWithTeam(1099,20) to character m25obj_134
AI: m25obj_2:'batman' goal move to hero 'hero_2'
GOAL: Adding goal Goal_Throw(1100,'sc_boulder_extra_large4','move',1.0,21) to character m25obj_4
AI: m25obj_4:'aquaman_classic' preparing to throw
GOAL: Removing goal Goal_Throw from character m25obj_4
AI: m25obj_4 : 'aquaman_classic' ffx.OnLeapTo(target,char) attack on 'm25obj_134'
AI: m25obj_4 overpowers his/her/its attack!
AI: m25obj_4:'aquaman_classic' aqua deep sea punch attack on 'm25obj_134'
AI: m25obj_2:'batman' goal move to hero 'hero_2'
GROUP: 'm25obj_118' removed from group '9_minion'
GROUP: '9_minion' set to ['m25obj_110', 'm25obj_112', 'm25obj_114', 'm25obj_116', 'm25obj_120', 'm25obj_122', 'm25obj_124', 'm25obj_126', 'm25obj_128', 'm25obj_130', 'm25obj_132', 'm25obj_134']
clearCarrierRegistration: clearing attribute 'ragetocrystallisehero_2' for destroyed object 'm25obj_118'
AI: m25obj_4:'aquaman_classic' move to 'm25obj_134'
GROUP: 'm25obj_114' removed from group '9_minion'
GROUP: '9_minion' set to ['m25obj_110', 'm25obj_112', 'm25obj_116', 'm25obj_120', 'm25obj_122', 'm25obj_124', 'm25obj_126', 'm25obj_128', 'm25obj_130', 'm25obj_132', 'm25obj_134']
clearCarrierRegistration: clearing attribute 'ragetocrystallisehero_2' for destroyed object 'm25obj_114'
GROUP: 'm25obj_112' removed from group '9_minion'
GROUP: '9_minion' set to ['m25obj_110', 'm25obj_116', 'm25obj_120', 'm25obj_122', 'm25obj_124', 'm25obj_126', 'm25obj_128', 'm25obj_130', 'm25obj_132', 'm25obj_134']
clearCarrierRegistration: clearing attribute 'ragetocrystallisehero_2' for destroyed object 'm25obj_112'
GROUP: 'm25obj_124' removed from group '9_minion'
GROUP: '9_minion' set to ['m25obj_110', 'm25obj_116', 'm25obj_120', 'm25obj_122', 'm25obj_126', 'm25obj_128', 'm25obj_130', 'm25obj_132', 'm25obj_134']
clearCarrierRegistration: clearing attribute 'ragetocrystallisehero_2' for destroyed object 'm25obj_124'
GROUP: 'm25obj_110' removed from group '9_minion'
GROUP: '9_minion' set to ['m25obj_116', 'm25obj_120', 'm25obj_122', 'm25obj_126', 'm25obj_128', 'm25obj_130', 'm25obj_132', 'm25obj_134']
clearCarrierRegistration: clearing attribute 'ragetocrystallisehero_2' for destroyed object 'm25obj_110'
GROUP: 'm25obj_128' removed from group '9_minion'
GROUP: '9_minion' set to ['m25obj_116', 'm25obj_120', 'm25obj_122', 'm25obj_126', 'm25obj_130', 'm25obj_132', 'm25obj_134']
clearCarrierRegistration: clearing attribute 'ragetocrystallisehero_2' for destroyed object 'm25obj_128'
GROUP: 'm25obj_126' removed from group '9_minion'
GROUP: '9_minion' set to ['m25obj_116', 'm25obj_120', 'm25obj_122', 'm25obj_130', 'm25obj_132', 'm25obj_134']
clearCarrierRegistration: clearing attribute 'ragetocrystallisehero_2' for destroyed object 'm25obj_126'
GROUP: 'm25obj_130' removed from group '9_minion'
GROUP: '9_minion' set to ['m25obj_116', 'm25obj_120', 'm25obj_122', 'm25obj_132', 'm25obj_134']
clearCarrierRegistration: clearing attribute 'ragetocrystallisehero_2' for destroyed object 'm25obj_130'
GROUP: 'm25obj_132' removed from group '9_minion'
GROUP: '9_minion' set to ['m25obj_116', 'm25obj_120', 'm25obj_122', 'm25obj_134']
clearCarrierRegistration: clearing attribute 'ragetocrystallisehero_2' for destroyed object 'm25obj_132'
GROUP: 'm25obj_116' removed from group '9_minion'
GROUP: '9_minion' set to ['m25obj_120', 'm25obj_122', 'm25obj_134']
clearCarrierRegistration: clearing attribute 'ragetocrystallisehero_2' for destroyed object 'm25obj_116'
GROUP: 'm25obj_120' removed from group '9_minion'
GROUP: '9_minion' set to ['m25obj_122', 'm25obj_134']
clearCarrierRegistration: clearing attribute 'ragetocrystallisehero_2' for destroyed object 'm25obj_120'
GROUP: 'm25obj_122' removed from group '9_minion'
GROUP: '9_minion' set to ['m25obj_134']
clearCarrierRegistration: clearing attribute 'ragetocrystallisehero_2' for destroyed object 'm25obj_122'
GROUP: '9_minion' member koed
ENCOUNTER: PlayEncCutscene(): 'm25obj_134kocs' : None
ENCOUNTER: PlayCutsceneFromList(): None : None ... [['m25obj_134', 'fallen']]
ENCOUNTER: PlayEncCutscene(): 'bel_juzkocs' : None
ENCOUNTER: PlayCutsceneFromList(): None : None ... [['m25obj_134', 'fallen']]
ENCOUNTER: PlayEncCutscene(): 'villainkocs' : None
ENCOUNTER: PlayCutsceneFromList(): None : None ... [['m25obj_134', 'fallen']]
ENCOUNTER: -- custom check end EncCustom_VillainsFight_CheckEnd(9) - ['villains gone']
ENCOUNTER: -- custom check end EncCustom_InvulnerableEndMinions_CheckEnd(9) - None
speak('m25obj_134','SPEECH_Y4_INTEROGATEME_01')
cshelper: Cutscene [cutscene] submitted for playing
cshelper: Now playing cutscene [cutscene]
Step 1 of 2
0
GROUP: '9_minion' leader koed
Step 2 of 2
cshelper: Cutscene [cutscene] has ended
AI: AISetRunning m25obj_134 to 0
God Bless
"If God came down upon me and gave me a wish again, I'd wish to be like Aquaman, 'cause Aquaman can take the pain..." -Ballad of Aquaman
Check out mymods and blog!
https://bentongrey.wordpress.com/

M25

I think the 'Invulnerability can End' action is canceling out the invulnerability granted by being interrogatable (so the villain is getting ko'd).  I'll see if I can fix that.