Freedom Reborn Archive

Freedom Force Forums => Scripting Forum => Topic started by: BentonGrey on May 06, 2007, 06:28:24 PM

Title: EZScript Comics
Post by: BentonGrey on May 06, 2007, 06:28:24 PM
Howdy guys, I'm still a few days (or weeks, depending on work) away from starting on my 'comics,' but I had a question that I figured I needed to ask while I was thinking about it.  That way, I should have an answer for it by the time I'm ready to work on that mission.  This, plus the fact that I'll need a help thread eventually, and you've got this:

So, I want to go on an adventure where you've got to free imprisoned allies, is that do-able?  Specifically, I'm thinking the League are prisoners, and Batman's got to free them one at a time, or something similar.
Title: Re: EZScript Comics
Post by: HumanTon on May 06, 2007, 07:06:32 PM
Yep, very doable with EZScript, as there's a special encounter just for that. Here's something to get you started--you free Minute Man from a cage:


#-----------------------------------------
Encounter: Cage Traps
Type: Rescue Caged
Villains: nuclear_winter
Allies: minute_man

Alert Cutscene:
Yellow arrow on Villain

Start Cutscene:
Cinematic camera on Hero to Villain1
Hero turns to Villain1
Hero says, "Hold on hero, I'll save you!"

Ally Thanks Hero Cutscene:
Cinematic camera on minute_man to Hero
minute_man says, "Thanks for the assist, friend!"

End Cutscene:
Hero says, "So much for Nuclear Winter."
#-----------------------------------------


(For best results you'll want to user the special EZScript markers for allies on the map, so you control exactly where the allies show up.)
Title: Re: EZScript Comics
Post by: BentonGrey on May 06, 2007, 07:13:44 PM
Perfect HT, thanks man!  That is deffinetly what I was looking for, even down to the cage object!
Title: Re: EZScript Comics
Post by: BentonGrey on May 26, 2007, 01:19:56 PM
Nevermind, I figured it out.  Man!  I finally finished one of these, hooray!  This is so ridiculously awesome, thanks guys!

Watch this space though, ha, I'll be going back to work on the first mission shortly.

:EDIT:

Okay, this sucker has been giving me headaches for a long time, but now, with the new encounter types, I believe there is a way to do it, I'm just not sure how to go about it.  Alright, here is what I WANT to happen.  Batman interrogates a thug to find out about a museum heist, he intercepts the Penguin on his way out.  Then, the Penguin and his thugs try to flee with a museum piece and Batman has to stop them.  This all works decently well, but THEN I want Mr. Freeze to show up, it would actually be nice if he showed up halfway through all of this, and he and his men assault Penguin.  He freezes Batman and escapes with the object.

Now, I know I can use the new 'rival' type of encounter to force villains to fight each other...but can anyone help me with the mechanics of this?  I'm just not quite sure how to do it all.

:EDIT2: Okay, now I've just about finished the second mission, but I'm having trouble getting the last encounter to trigger.  Nothing is happening, no-one is spawning, and the cutscene isn't playing, so I'm not sure what's wrong.  Here's the story:

[spoiler]#------------------------------------------------------------------------
Encounter: Pretty Poison
Type: Fight
Villains: poison_ivy
Minions: ffx_oakman, ffx_hedgeant, ffx_bushman, ffx_treeman
Marker: ivy1
Next: Mean Streets, Riddle Me This

Alert Cutscene:
Set lighting to night
Red arrow on Villain1
Camera on Hero1
Hero1 turns to Hero2
Hero1 says, "Batgirl, what are you doing here?!"
Hero2 turns to Hero1
Hero2 says, "I heard about the Riddler on the police band, I'm here to help!"

Start Cutscene:
Camera on Villain1
Villain1 turns to Hero1
Hero1 turns to Villain1
Hero2 turns to Villain1
Villain1 says, "Trespassers!  My plants and I have done nothing, but still you

persecute us, breaking our branches and slashing our leaves, you will pay!"
Hero2 says, "Poison Ivy, where'd she come from!?"
Hero1 turns to Hero2
Hero1 says, "Of course, 'watch out for the vines...'  How could I have missed

it?  Ivy is a type of vine!"
#------------------------------------------------------------------------


#------------------------------------------------------------------------
Encounter: Mean Streets
Type: Save Civilian
Villains: thug_with_bat, thug_with_bat, thug_with_bat
Allies: civilian_male, civilian_female

Alert Cutscene:
Yellow arrow on Ally1

Start Cutscene:
Camera on Villain1
Villain1 turns to Ally1
Ally1 turns to Villain1
Ally2 turns to Villain1
Villain1 says, "Okay mister, let's see what you've got on you.."
Ally1 says,"O-okay, just...please don't hurt us..."
Camera on Hero1
Hero1 says, "Congratulations scumbag, you just won the street-punk lottery, and

your prize is a good old fashioned walloping..."
#-------------------------------------------------------------------------------


#-------------------------------------------------------------------------------
Encounter: Riddle Me This
Type: Save Civilians
Villains: riddler
Minions: riddle_puzzle_thug, riddle_puzzle_thug, riddle_puzzle_thug
Allies: civilian_male, civilian_male, civilian_male
Marker: riddle1

Alert Cutscene:
Red arrow on Ally1

Start Cutscene:
Camera on Villain1
Villain1 turns to Hero1
Hero1 turns to Villain1
Hero2 turns to Villain1
Villain1 says, "Well, if it isn't the Boy-Blunder himself!  I swear, you never

get what you pay for these days."
Villain1 says, "I mean, I go to all this trouble, set up this whole elaborate

trap, all in the hopes that Batman will rise to the challenge and match wits

with The Riddler..."
Villain1 plays animation ranged
Villain1 says, "Instead, I get the junior partner of this private freakshow!"
Hero1 says, "I think you'll find that I'm MORE than you bargained for, Riddler!"
Hero2 turns to Hero1
Hero2 says, "WE are more than he bargained for, you mean!"
Villain1 says, "Tut Tut, are we feeling a little unappreciated my dear?"
Hero1 says, "We'll see how you feel after I'm through with you Nigma!  Now hand

over the hostages or things are gonna' get rough!"
Villain1 says, "Ahh...that group of worthless ingrates?  I brought them ideas

that could have made them a fortune, and they had the gall to laugh at me!  I'm

afraid I've got something rather unpleasant planned for them...You on the other

hand, are no more than a mere annoyance.  Boys!"
Villain1 plays animation ranged
#------------------------------------------------------------------------
[/spoiler]

Pretty Poison is working like a charm, and so is the mugging, but Riddle Me This is falling flat.
Title: Re: EZScript Comics
Post by: BentonGrey on May 26, 2007, 02:34:29 PM
Sorry to double post, but that darn character limit makes it difficult to do some of these things.  Here's the script.log, it's got a few errors in it, but I can't make heads or tails of them:

[spoiler]initAttribsForChar: working on m25obj_2 (ffx_treeman)
initAttribsForChar (ffx_treeman): looking at attribute tough guy
initAttribsForChar (ffx_treeman): looking at attribute ponderous
initAttribsForChar: working on m25obj_4 (ffx_treeman)
initAttribsForChar (ffx_treeman): looking at attribute tough guy
initAttribsForChar (ffx_treeman): looking at attribute ponderous
initAttribsForChar: working on m25obj_6 (ffx_oakman)
initAttribsForChar (ffx_oakman): looking at attribute tough guy
initAttribsForChar (ffx_oakman): looking at attribute ponderous
initAttribsForChar: working on m25obj_8 (ffx_oakman)
initAttribsForChar (ffx_oakman): looking at attribute tough guy
initAttribsForChar (ffx_oakman): looking at attribute ponderous
initAttribsForChar: working on m25obj_10 (poison_ivy)
initAttribsForChar (poison_ivy): looking at attribute puppetn
execInitAttrib: init puppetn attribute
    on m25obj_10 of template poison_ivy (poison_ivy)
initAttribsForChar (poison_ivy): looking at attribute beautiful
initAttribsForChar (poison_ivy): looking at attribute pheremones
execInitAttrib: init pheremones attribute
    on m25obj_10 of template poison_ivy (poison_ivy)
initpheremones: target gender=2
initAttribsForChar (poison_ivy): looking at attribute alkaline
initAttribsForChar (poison_ivy): looking at attribute superhealer
execInitAttrib: init superhealer attribute
    on m25obj_10 of template poison_ivy (poison_ivy)
initAttribsForChar: working on m25obj_12 (thug_with_bat)
initAttribsForChar (thug_with_bat): looking at attribute timid
initAttribsForChar (thug_with_bat): looking at attribute weak minded
initAttribsForChar: working on m25obj_14 (thug_with_bat)
initAttribsForChar (thug_with_bat): looking at attribute timid
initAttribsForChar (thug_with_bat): looking at attribute weak minded
initAttribsForChar: working on m25obj_18 (civilian_male)
initAttribsForChar: working on m25obj_16 (thug_with_bat)
initAttribsForChar (thug_with_bat): looking at attribute timid
initAttribsForChar (thug_with_bat): looking at attribute weak minded
initAttribsForChar: working on m25obj_20 (civilian_female)
Plugin 'firehydrant' OnPostInit() called
Plugin 'zombie' has no OnPostInit()
Plugin 'freeroam_keepbuildingdamage' OnPostInit() called
Plugin 'm25ai_lowjumper' has no OnPostInit()
Plugin 'm25ai_realitymanipulation' has no OnPostInit()
Plugin 'cutscene_power' has no OnPostInit()
Plugin 'm25enc_opendoor' has no OnPostInit()
Plugin 'm25enc_simplechoice' has no OnPostInit()
2
1
3
2
addArrow m25obj_18arrow m25obj_18 1 1
Traceback (innermost last):
  File "C:\Program Files\Irrational Games\Freedom Force vs The 3rd Reich\.\ffx3\missions\scripts\skXMapInfo.py", line 685, in MapInfo_CheckObjects2
    Object_UpdateGridPos (ms)
  File "C:\Program Files\Irrational Games\Freedom Force vs The 3rd Reich\.\ffx3\missions\scripts\skXMapInfo.py", line 565, in Object_UpdateGridPos
    if ts not in ff.MapInfo [maGrid
Title: Re: EZScript Comics
Post by: catwhowalksbyhimself on May 26, 2007, 02:39:27 PM
I'm seeing this:

Quoteff.DoEncSavecivilians(5,villains = ['riddler'], minions = ['riddle_puzzle_thug', 'riddle_puzzle_thug', 'riddle_puzzle_thug'], cutscenes = [['alertcs', [['priority', 1], ['replace', ['ally1', 'ally']], ['cutscene', "CS_AddArrow('ally1arrow', 'ally1', arrow_type=js.ARROW_RED)"]]], ['startcs', [['priority', 1], ['replace', ['villain1', 'villain'], ['hero1', 'hero'], ['hero2', 'hero']], ['cutscene', 'CS_Start()', "CS_Camera('villain1', dist=-160, yaw=0)", "CS_TurnTo('villain1', 'hero1')", "CS_TurnTo('hero1', 'villain1')", "CS_TurnTo('hero2', 'villain1')", 'CS_Speak(\'villain1\', "Well, if it isn\'t the Boy-Blunder himself!  I swear, you never get what you pay for these days.", force=0)', "CS_Speak('villain1', 'I mean, I go to all this trouble, set up this whole elaborate trap, all in the hopes that Batman will rise to the challenge and match wits with The Riddler...', force=0)", "CS_Animate('villain1','ranged')", "CS_Speak('villain1', 'Instead, I get the junior partner of this private freakshow!', force=0)", 'CS_Speak(\'hero1\', "I think you\'ll find that I\'m MORE than you bargained for, Riddler!", force=0)', "CS_TurnTo('hero2', 'hero1')", "CS_Speak('hero2', 'WE are more than he bargained for, you mean!', force=0)", "CS_Speak('villain1', 'Tut Tut, are we feeling a little unappreciated my dear?', force=0)", 'CS_Speak(\'hero1\', "We\'ll see how you feel after I\'m through with you Nigma!  Now hand over the hostages or things are gonna\' get rough!", force=0)', 'CS_Speak(\'villain1\', "Ahh...that group of worthless ingrates?  I brought them ideas that could have made them a fortune, and they had the gall to laugh at me!  I\'m afraid I\'ve got something rather unpleasant planned for them...You on the other hand, are no more than a mere annoyance.  Boys!", force=0)', "CS_Animate('villain1','ranged')", 'CS_End()']]]], marker = 'riddle1', allies = ['civilian_male', 'civilian_male', 'civilian_male'],return_function="StorylineEncounterReturn")

Which to me looks like a syntax error in the Python behind the "Save Civilians" encounter type.
Title: Re: EZScript Comics
Post by: BentonGrey on May 26, 2007, 03:26:30 PM
Whoops!  Well, I think I figured it out, Civilian, singular, not plural.... :unsure:

:EDIT:  Err...maybe not.  Well, I changed Civilians to singualr, I don't THINK I changed anything else, and all of a sudden, it doesn't work at all.  Nothing, nadda, not even the first alert cutscene.

[spoiler]Story: Robin's Riddles

Starting Encounters: Pretty Poison, Mean Streets

#------------------------------------------------------------------------
Encounter: Pretty Poison
Type: Fight
Villains: poison_ivy
Minions: ffx_oakman, ffx_hedgeant, ffx_bushman, ffx_treeman
Marker: ivy1
Next: Mean Streets, Riddle Me This

Alert Cutscene:
Set lighting to night
Red arrow on Villain1
Camera on Hero1
Hero1 turns to Hero2
Hero1 says, "Batgirl, what are you doing here?!"
Hero2 turns to Hero1
Hero2 says, "I heard about the Riddler on the police band, I'm here to help!"

Start Cutscene:
Camera on Villain1
Villain1 turns to Hero1
Hero1 turns to Villain1
Hero2 turns to Villain1
Villain1 says, "Trespassers!  My plants and I have done nothing, but still you persecute us, breaking our branches and slashing our leaves, you will pay!"
Hero2 says, "Poison Ivy, where'd she come from!?"
Hero1 turns to Hero2
Hero1 says, "Of course, 'watch out for the vines...'  How could I have missed it?  Ivy is a type of vine!"
#------------------------------------------------------------------------


#------------------------------------------------------------------------
Encounter: Mean Streets
Type: Save Civilian
Villains: thug_with_bat, thug_with_bat, thug_with_bat
Allies: civilian_male, civilian_female

Alert Cutscene:
Yellow arrow on Ally1

Start Cutscene:
Camera on Villain1
Villain1 turns to Ally1
Ally1 turns to Villain1
Ally2 turns to Villain1
Villain1 says, "Okay mister, let's see what you've got on you.."
Ally1 says,"O-okay, just...please don't hurt us..."
Camera on Hero1
Hero1 says, "Congratulations scumbag, you just won the street-punk lottery, and your prize is a good old fashioned walloping..."
#-------------------------------------------------------------------------------


#-------------------------------------------------------------------------------
Encounter: Riddle Me This
Type: Save Civilian
Villains: riddler
Minions: riddle_puzzle_thug, riddle_puzzle_thug, riddle_puzzle_thug
Allies: civilian_male, civilian_male, civilian_male
Marker: riddle1

Alert Cutscene:
Red arrow on Ally1

Start Cutscene:
Camera on Villain1
Villain1 turns to Hero1
Hero1 turns to Villain1
Hero2 turns to Villain1
Villain1 says, "Well, if it isn't the Boy-Blunder himself!  I swear, you never get what you pay for these days."
Villain1 says, "I mean, I go to all this trouble, set up this whole elaborate trap, all in the hopes that Batman will rise to the challenge and match wits with The Riddler..."
Villain1 plays animation ranged
Villain1 says, "Instead, I get the junior partner of this private freakshow!"
Hero1 says, "I think you'll find that I'm MORE than you bargained for, Riddler!"
Hero2 turns to Hero1
Hero2 says, "WE are more than he bargained for, you mean!"
Villain1 says, "Tut Tut, are we feeling a little unappreciated my dear?"
Hero1 says, "We'll see how you feel after I'm through with you Nigma!  Now hand over the hostages or things are gonna' get rough!"
Villain1 says, "Ahh...that group of worthless ingrates?  I brought them ideas that could have made them a fortune, and they had the gall to laugh at me!  I'm afraid I've got something rather unpleasant planned for them...You on the other hand, are no more than a mere annoyance.  Boys!"
Villain1 plays animation ranged
#------------------------------------------------------------------------[/spoiler]

What in the world?  Plus, 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 1180218512.843000
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
FFX Mission Plugin 'firehydrant' imported
FFX Mission Plugin 'zombie' imported
Loading freeroam_keepbuildingdamage.py v.1.0.0 build 0; branch = main
FFX Mission Plugin 'freeroam_keepbuildingdamage' imported
FFX Mission Plugin 'm25ai_lowjumper' imported
FFX Mission Plugin 'm25ai_realitymanipulation' imported
FFX Mission Plugin 'cutscene_power' imported
Loading     m25enc_OPENDOOR.py v.1.0.0 build 0; branch = main
FFX Mission Plugin 'm25enc_opendoor' imported
Loading     m25enc_simplechoice.py v.1.0.0 build 0; branch = main
FFX Mission Plugin 'm25enc_simplechoice' imported
Starting Built-In Function Wrapper 1.5
('Object_CalcPrestige', 'js')
>>> C:\Documents and Settings\Owner\Local Settings\Application Data\Irrational Games\Freedom Force vs the 3rd Reich\temp\MiniMod RobinsRiddles.py executed
>>> C:\Documents and Settings\Owner\Local Settings\Application Data\Irrational Games\Freedom Force vs the 3rd Reich\temp\danger.py executed
! GetMapInfo
>>> C:\Documents and Settings\Owner\Local Settings\Application Data\Irrational Games\Freedom Force vs the 3rd Reich\temp\MiniMod RobinsRiddles.py executed
MLOG_Init(keepRunningModules=0): starting up
mlogreader.MLOG_Init: current mission = '02_ROBINSRIDDLESBETA'
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
numberStr=93
storing hero_0: id_1,-93
numberStr=94
storing hero_1: id_2,-94
ff.DoEncCustom(1,villains = ['poison_ivy'], minions = ['ffx_oakman', 'ffx_hedgeant', 'ffx_bushman', 'ffx_treeman'], cutscenes = [['alertcs', [['priority', 1], ['replace', ['villain1', 'villain'], ['hero1', 'hero'], ['hero2', 'hero']], ['cutscene', 'CS_Start()', "CS_Lighting('night')", "CS_AddArrow('villain1arrow', 'villain1', arrow_type=js.ARROW_RED)", "CS_Camera('hero1', dist=-160, yaw=0)", "CS_TurnTo('hero1', 'hero2')", "CS_Speak('hero1', 'Batgirl, what are you doing here?!', force=0)", "CS_TurnTo('hero2', 'hero1')", 'CS_Speak(\'hero2\', "I heard about the Riddler on the police band, I\'m here to help!", force=0)', 'CS_End()']]], ['startcs', [['priority', 1], ['replace', ['villain1', 'villain'], ['hero1', 'hero'], ['hero2', 'hero']], ['cutscene', 'CS_Start()', "CS_Camera('villain1', dist=-160, yaw=0)", "CS_TurnTo('villain1', 'hero1')", "CS_TurnTo('hero1', 'villain1')", "CS_TurnTo('hero2', 'villain1')", "CS_Speak('villain1', 'Trespassers!  My plants and I have done nothing, but still you persecute us, breaking our branches and slashing our leaves, you will pay!', force=0)", 'CS_Speak(\'hero2\', "Poison Ivy, where\'d she come from!?", force=0)', "CS_TurnTo('hero1', 'hero2')", 'CS_Speak(\'hero1\', "Of course, \'watch out for the vines...\'  How could I have missed it?  Ivy is a type of vine!", force=0)', 'CS_End()']]]], marker = 'ivy1', actions="villains fight heroes, allies fight villains",return_function="StorylineEncounterReturn")
Traceback (innermost last):
  File "C:\Program Files\Irrational Games\Freedom Force vs The 3rd Reich\.\ffx3\missions\scripts\m25minimod.py", line 137, in OnPostInit
    m25story.DoStoryline()
  File "C:\Program Files\Irrational Games\Freedom Force vs The 3rd Reich\.\ffx3\missions\scripts\m25story.py", line 244, in DoStoryline
    DoStorylineState(story,enc)
  File "C:\Program Files\Irrational Games\Freedom Force vs The 3rd Reich\.\ffx3\missions\scripts\m25story.py", line 293, in DoStorylineState
    if not StorySetupEncounter(enc_id,story,state,a):
  File "C:\Program Files\Irrational Games\Freedom Force vs The 3rd Reich\.\ffx3\missions\scripts\m25story.py", line 383, 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\.\ffx3\missions\scripts\m25enc.py", line 4193, in DoEncCustom
    return SetupEncounter(enc_id, encounter)
  File "C:\Program Files\Irrational Games\Freedom Force vs The 3rd Reich\.\ffx3\missions\scripts\m25enc.py", line 1342, 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\.\ffx3\missions\scripts\m25enc.py", line 1408, 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\.\ffx3\missions\scripts\m25enc.py", line 388, in EncSpawnGroup
    Enc_SetCharEnc(s,enc_id) #make sure we are able to find out which encounter this is a part of
  File "C:\Program Files\Irrational Games\Freedom Force vs The 3rd Reich\.\ffx3\missions\scripts\m25enc.py", line 655, in Enc_SetCharEnc
    js.Object_SetAttr(char, '_enc_id', enc_id)
SystemError: NULL result without error in call_object
initialising FFQ_initialiseExtras()
FFX_UpdateSun: getting default sun
FFX_UpdateSun: setting = (-137.0, 57.0, 1.5, 0.20000000298, (0.20000000298, 0.20000000298, 0.600000023842))
initAttribsForChar: working on hero_0 (batman)
initAttribsForChar (batman): looking at attribute heroic
initAttribsForChar (batman): looking at attribute wall climbing
initAttribsForChar (batman): looking at attribute danger sense
initAttribsForChar (batman): looking at attribute capedcrusader
execInitAttrib: init flier attribute inside ['capedcrusader', 'flier', 'ffqropeswinger', 'disciplined', 'utilitybelt', 'nimble', 'acrobatic', 'grimresolve', 'ffqtracking'] combo
    on hero_0 of template custom_template_93 (batman)
execInitAttrib: init ffqropeswinger attribute inside ['capedcrusader', 'flier', 'ffqropeswinger', 'disciplined', 'utilitybelt', 'nimble', 'acrobatic', 'grimresolve', 'ffqtracking'] combo
    on hero_0 of template custom_template_93 (batman)
execInitAttrib: init disciplined attribute inside ['capedcrusader', 'flier', 'ffqropeswinger', 'disciplined', 'utilitybelt', 'nimble', 'acrobatic', 'grimresolve', 'ffqtracking'] combo
    on hero_0 of template custom_template_93 (batman)
execInitAttrib: init utilitybelt attribute inside ['capedcrusader', 'flier', 'ffqropeswinger', 'disciplined', 'utilitybelt', 'nimble', 'acrobatic', 'grimresolve', 'ffqtracking'] combo
    on hero_0 of template custom_template_93 (batman)
execInitAttrib: init nimble attribute inside ['capedcrusader', 'flier', 'ffqropeswinger', 'disciplined', 'utilitybelt', 'nimble', 'acrobatic', 'grimresolve', 'ffqtracking'] combo
    on hero_0 of template custom_template_93 (batman)
execInitAttrib: init acrobatic attribute inside ['capedcrusader', 'flier', 'ffqropeswinger', 'disciplined', 'utilitybelt', 'nimble', 'acrobatic', 'grimresolve', 'ffqtracking'] combo
    on hero_0 of template custom_template_93 (batman)
execInitAttrib: init grimresolve attribute inside ['capedcrusader', 'flier', 'ffqropeswinger', 'disciplined', 'utilitybelt', 'nimble', 'acrobatic', 'grimresolve', 'ffqtracking'] combo
    on hero_0 of template custom_template_93 (batman)
execInitAttrib: init ffqtracking attribute inside ['capedcrusader', 'flier', 'ffqropeswinger', 'disciplined', 'utilitybelt', 'nimble', 'acrobatic', 'grimresolve', 'ffqtracking'] combo
    on hero_0 of template custom_template_93 (batman)
initAttribsForChar: working on hero_1 (batgirl)
initAttribsForChar (batgirl): looking at attribute beautiful
initAttribsForChar (batgirl): looking at attribute nimble
initAttribsForChar (batgirl): looking at attribute wall climbing
initAttribsForChar (batgirl): looking at attribute danger sense
initAttribsForChar (batgirl): looking at attribute capedcrusader
execInitAttrib: init flier attribute inside ['capedcrusader', 'flier', 'ffqropeswinger', 'disciplined', 'utilitybelt', 'nimble', 'acrobatic', 'grimresolve', 'ffqtracking'] combo
    on hero_1 of template custom_template_94 (batgirl)
execInitAttrib: init ffqropeswinger attribute inside ['capedcrusader', 'flier', 'ffqropeswinger', 'disciplined', 'utilitybelt', 'nimble', 'acrobatic', 'grimresolve', 'ffqtracking'] combo
    on hero_1 of template custom_template_94 (batgirl)
execInitAttrib: init disciplined attribute inside ['capedcrusader', 'flier', 'ffqropeswinger', 'disciplined', 'utilitybelt', 'nimble', 'acrobatic', 'grimresolve', 'ffqtracking'] combo
    on hero_1 of template custom_template_94 (batgirl)
execInitAttrib: init utilitybelt attribute inside ['capedcrusader', 'flier', 'ffqropeswinger', 'disciplined', 'utilitybelt', 'nimble', 'acrobatic', 'grimresolve', 'ffqtracking'] combo
    on hero_1 of template custom_template_94 (batgirl)
execInitAttrib: init nimble attribute inside ['capedcrusader', 'flier', 'ffqropeswinger', 'disciplined', 'utilitybelt', 'nimble', 'acrobatic', 'grimresolve', 'ffqtracking'] combo
    on hero_1 of template custom_template_94 (batgirl)
execInitAttrib: init acrobatic attribute inside ['capedcrusader', 'flier', 'ffqropeswinger', 'disciplined', 'utilitybelt', 'nimble', 'acrobatic', 'grimresolve', 'ffqtracking'] combo
    on hero_1 of template custom_template_94 (batgirl)
execInitAttrib: init grimresolve attribute inside ['capedcrusader', 'flier', 'ffqropeswinger', 'disciplined', 'utilitybelt', 'nimble', 'acrobatic', 'grimresolve', 'ffqtracking'] combo
    on hero_1 of template custom_template_94 (batgirl)
execInitAttrib: init ffqtracking attribute inside ['capedcrusader', 'flier', 'ffqropeswinger', 'disciplined', 'utilitybelt', 'nimble', 'acrobatic', 'grimresolve', 'ffqtracking'] combo
    on hero_1 of template custom_template_94 (batgirl)
initAttribsForChar: working on m25obj_4 (ffx_hedgeant)
initAttribsForChar: working on m25obj_2 (ffx_hedgeant)
initAttribsForChar: working on m25obj_6 (ffx_hedgeant)
Plugin 'firehydrant' OnPostInit() called
Plugin 'zombie' has no OnPostInit()
Plugin 'freeroam_keepbuildingdamage' OnPostInit() called
Plugin 'm25ai_lowjumper' has no OnPostInit()
Plugin 'm25ai_realitymanipulation' has no OnPostInit()
Plugin 'cutscene_power' has no OnPostInit()
Plugin 'm25enc_opendoor' has no OnPostInit()
Plugin 'm25enc_simplechoice' has no OnPostInit()
2
1
3
2
2
1
3
2
[/spoiler]
Title: Re: EZScript Comics
Post by: HumanTon on May 26, 2007, 06:44:49 PM
I'm not sure what's up, but make sure there are are no carriage returns or line breaks in the middle of a line.

In other words, check that you have:

Hero says, "Make sure there's no carriage returns or line breaks within a single line of EZScript!"

and not:

Hero says, "Make sure there's no
carriage returns or line breaks within a single line of EZScript!"
Title: Re: EZScript Comics
Post by: BentonGrey on May 26, 2007, 07:10:39 PM
Hmm, I fixed all of those that I could find, but still no dice.  I wonder what I did to break this... :wacko:  Anyroad, I did notice that Ivy's minions are spawning, but she's not.  However, that's the only thing that spawns, the mugging doesn't spawn ANYTHING.
Title: Re: EZScript Comics
Post by: M25 on May 26, 2007, 09:17:57 PM
It's choking trying to spawn poison ivy.  Did you change anything on that character?

If you open up m25config.py in your missions/scripts directory there's a line to turn reporting on (M25_USE_REPORTS or something like that - I don't have it in front of me.)  If you set that to 1, it'll spit out more useful information.
Title: Re: EZScript Comics
Post by: BentonGrey on May 27, 2007, 12:00:53 PM
Hey M25, yeah, I upped her endurance...but I can't figure out how that would cause this...I think I also added a prestige value, but I'm not sure.  I'll turn that report and and see if we can't see what's wrong.

Alright, so it tells me that the FFX Bushman is missing either a mesh or an HF, and that DoEncCustom has some sort of problem.  I'll look into the first thing, but I'm afraid the second has got me stumped.  Ohh masters of EZScript, can you decipher it?

[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 1180292615.498000
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
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_OPENDOOR.py v.1.0.0 build 0; branch = main
FFX Mission Plugin 'm25enc_opendoor' imported
Loading     m25enc_simplechoice.py v.1.0.0 build 0; branch = main
FFX Mission Plugin 'm25enc_simplechoice' imported
Starting Built-In Function Wrapper 1.5
('Object_CalcPrestige', 'js')
>>> C:\Documents and Settings\Owner\Local Settings\Application Data\Irrational Games\Freedom Force vs the 3rd Reich\temp\MiniMod RobinsRiddles.py executed
>>> C:\Documents and Settings\Owner\Local Settings\Application Data\Irrational Games\Freedom Force vs the 3rd Reich\temp\danger.py executed
MISSION: EZScript MiniMod/Campaign Precache.
PSTORY: {'name': "Robin's Riddles", 'encounters': [{'minions': ['ffx_oakman', 'ffx_hedgeant', 'ffx_bushman', 'ffx_treeman'], 'marker': 'ivy1', 'type': 'Fight', 'timeofday': 'none', 'required_map': [], 'trigger': [], 'next': ['Mean Streets', 'Riddle Me This'], 'objectives': [], 'parameters': [], 'name': 'Pretty Poison', 'villains': ['poison_ivy'], 'cutscenes': [{'replace': [['villain1', 'villain'], ['hero1', 'hero'], ['hero2', 'hero']], 'name': 'Alert', 'required': [], 'priority': 1, 'cutscene': ['CS_Start()', "CS_Lighting('night')", "CS_AddArrow('villain1arrow', 'villain1', arrow_type=js.ARROW_RED)", "CS_Camera('hero1', dist=-160, yaw=0)", "CS_TurnTo('hero1', 'hero2')", "CS_Speak('hero1', 'Batgirl, what are you doing here?!', force=0)", "CS_TurnTo('hero2', 'hero1')", 'CS_Speak(\'hero2\', "I heard about the Riddler on the police band, I\'m here to help!", force=0)', 'CS_End()']}, {'replace': [['villain1', 'villain'], ['hero1', 'hero'], ['hero2', 'hero']], 'name': 'Start', 'required': [], 'priority': 1, 'cutscene': ['CS_Start()', "CS_Camera('villain1', dist=-160, yaw=0)", "CS_TurnTo('villain1', 'hero1')", "CS_TurnTo('hero1', 'villain1')", "CS_TurnTo('hero2', 'villain1')", "CS_Speak('villain1', 'Trespassers!  My plants and I have done nothing, but still you persecute us, breaking our branches and slashing our leaves, you will pay!', force=0)", 'CS_Speak(\'hero2\', "Poison Ivy, where\'d she come from!?", force=0)', "CS_TurnTo('hero1', 'hero2')", 'CS_Speak(\'hero1\', "Of course, \'watch out for the vines...\'  How could I have missed it?  Ivy is a type of vine!", force=0)', 'CS_End()']}], 'pre': []}, {'marker': 'encounter', 'type': 'Save Civilian', 'timeofday': 'none', 'required_map': [], 'trigger': [], 'next': [], 'objectives': [], 'parameters': [['allies', 'civilian_male, civilian_female']], 'name': 'Mean Streets', 'villains': ['thug_with_bat', 'thug_with_bat', 'thug_with_bat'], 'cutscenes': [{'replace': [['ally1', 'ally']], 'name': 'Alert', 'required': [], 'priority': 1, 'cutscene': ["CS_AddArrow('ally1arrow', 'ally1', arrow_type=js.ARROW_YELLOW)"]}, {'replace': [['villain1', 'villain'], ['ally1', 'ally'], ['ally2', 'ally'], ['hero1', 'hero']], 'name': 'Start', 'required': [], 'priority': 1, 'cutscene': ['CS_Start()', "CS_Camera('villain1', dist=-160, yaw=0)", "CS_TurnTo('villain1', 'ally1')", "CS_TurnTo('ally1', 'villain1')", "CS_TurnTo('ally2', 'villain1')", 'CS_Speak(\'villain1\', "Okay mister, let\'s see what you\'ve got on you..", force=0)', 'CS_Speak(\'ally1\', "O-okay, just...please don\'t hurt us...", force=0)', "CS_Camera('hero1', dist=-160, yaw=0)", "CS_Speak('hero1', 'Congratulations scumbag, you just won the street-punk lottery, and your prize is a good old fashioned walloping...', force=0)", 'CS_End()']}], 'pre': []}, {'minions': ['riddle_puzzle_thug', 'riddle_puzzle_thug', 'riddle_puzzle_thug'], 'marker': 'riddle1', 'type': 'Save Civilian', 'timeofday': 'none', 'required_map': [], 'trigger': [], 'next': [], 'objectives': [], 'parameters': [['allies', 'civilian_male, civilian_male, civilian_male']], 'name': 'Riddle Me This', 'villains': ['riddler'], 'cutscenes': [{'replace': [['ally1', 'ally']], 'name': 'Alert', 'required': [], 'priority': 1, 'cutscene': ["CS_AddArrow('ally1arrow', 'ally1', arrow_type=js.ARROW_RED)"]}, {'replace': [['villain1', 'villain'], ['hero1', 'hero'], ['hero2', 'hero']], 'name': 'Start', 'required': [], 'priority': 1, 'cutscene': ['CS_Start()', "CS_Camera('villain1', dist=-160, yaw=0)", "CS_TurnTo('villain1', 'hero1')", "CS_TurnTo('hero1', 'villain1')", "CS_TurnTo('hero2', 'villain1')", 'CS_Speak(\'villain1\', "Well, if it isn\'t the Boy-Blunder himself!  I swear, you never get what you pay for these days.", force=0)', "CS_Speak('villain1', 'I mean, I go to all this trouble, set up this whole elaborate trap, all in the hopes that Batman will rise to the challenge and match wits with The Riddler...', force=0)", "CS_Animate('villain1','ranged')", "CS_Speak('villain1', 'Instead, I get the junior partner of this private freakshow!', force=0)", 'CS_Speak(\'hero1\', "I think you\'ll find that I\'m MORE than you bargained for, Riddler!", force=0)', "CS_TurnTo('hero2', 'hero1')", "CS_Speak('hero2', 'WE are more than he bargained for, you mean!', force=0)", "CS_Speak('villain1', 'Tut Tut, are we feeling a little unappreciated my dear?', force=0)", 'CS_Speak(\'hero1\', "We\'ll see how you feel after I\'m through with you Nigma!  Now hand over the hostages or things are gonna\' get rough!", force=0)', 'CS_Speak(\'villain1\', "Ahh...that group of worthless ingrates?  I brought them ideas that could have made them a fortune, and they had the gall to laugh at me!  I\'m afraid I\'ve got something rather unpleasant planned for them...You on the other hand, are no more than a mere annoyance.  Boys!", force=0)', "CS_Animate('villain1','ranged')", 'CS_End()']}], 'pre': []}], 'start': ['Pretty Poison', 'Mean Streets']}
PSTORY: {"Robin's Riddles": {'encounters': {'__lose__': {'action': ['ff.Story_LoseMission()']}, 'Riddle Me This': {'next': ['__end__'], 'required_map': [], 'timeofday': 'none', 'action': ['DoEncCustom(villains = [\'riddler\'], minions = [\'riddle_puzzle_thug\', \'riddle_puzzle_thug\', \'riddle_puzzle_thug\'], cutscenes = [[\'alertcs\', [[\'priority\', 1], [\'replace\', [\'ally1\', \'ally\']], [\'cutscene\', "CS_AddArrow(\'ally1arrow\', \'ally1\', arrow_type=js.ARROW_RED)"]]], [\'startcs\', [[\'priority\', 1], [\'replace\', [\'villain1\', \'villain\'], [\'hero1\', \'hero\'], [\'hero2\', \'hero\']], [\'cutscene\', \'CS_Start()\', "CS_Camera(\'villain1\', dist=-160, yaw=0)", "CS_TurnTo(\'villain1\', \'hero1\')", "CS_TurnTo(\'hero1\', \'villain1\')", "CS_TurnTo(\'hero2\', \'villain1\')", \'CS_Speak(\\\'villain1\\\', "Well, if it isn\\\'t the Boy-Blunder himself!  I swear, you never get what you pay for these days.", force=0)\', "CS_Speak(\'villain1\', \'I mean, I go to all this trouble, set up this whole elaborate trap, all in the hopes that Batman will rise to the challenge and match wits with The Riddler...\', force=0)", "CS_Animate(\'villain1\',\'ranged\')", "CS_Speak(\'villain1\', \'Instead, I get the junior partner of this private freakshow!\', force=0)", \'CS_Speak(\\\'hero1\\\', "I think you\\\'ll find that I\\\'m MORE than you bargained for, Riddler!", force=0)\', "CS_TurnTo(\'hero2\', \'hero1\')", "CS_Speak(\'hero2\', \'WE are more than he bargained for, you mean!\', force=0)", "CS_Speak(\'villain1\', \'Tut Tut, are we feeling a little unappreciated my dear?\', force=0)", \'CS_Speak(\\\'hero1\\\', "We\\\'ll see how you feel after I\\\'m through with you Nigma!  Now hand over the hostages or things are gonna\\\' get rough!", force=0)\', \'CS_Speak(\\\'villain1\\\', "Ahh...that group of worthless ingrates?  I brought them ideas that could have made them a fortune, and they had the gall to laugh at me!  I\\\'m afraid I\\\'ve got something rather unpleasant planned for them...You on the other hand, are no more than a mere annoyance.  Boys!", force=0)\', "CS_Animate(\'villain1\',\'ranged\')", \'CS_End()\']]]], marker = \'riddle1\', actions="villains fight heroes, villains attack innocent allies, allies thank heroes, allies do not fight", allies = [\'civilian_male\', \'civilian_male\', \'civilian_male\'])']}, 'Pretty Poison': {'timeofday': 'none', 'next': ['Mean Streets', 'Riddle Me This'], 'trigger': ['start'], 'action': ['DoEncCustom(villains = [\'poison_ivy\'], minions = [\'ffx_oakman\', \'ffx_hedgeant\', \'ffx_bushman\', \'ffx_treeman\'], cutscenes = [[\'alertcs\', [[\'priority\', 1], [\'replace\', [\'villain1\', \'villain\'], [\'hero1\', \'hero\'], [\'hero2\', \'hero\']], [\'cutscene\', \'CS_Start()\', "CS_Lighting(\'night\')", "CS_AddArrow(\'villain1arrow\', \'villain1\', arrow_type=js.ARROW_RED)", "CS_Camera(\'hero1\', dist=-160, yaw=0)", "CS_TurnTo(\'hero1\', \'hero2\')", "CS_Speak(\'hero1\', \'Batgirl, what are you doing here?!\', force=0)", "CS_TurnTo(\'hero2\', \'hero1\')", \'CS_Speak(\\\'hero2\\\', "I heard about the Riddler on the police band, I\\\'m here to help!", force=0)\', \'CS_End()\']]], [\'startcs\', [[\'priority\', 1], [\'replace\', [\'villain1\', \'villain\'], [\'hero1\', \'hero\'], [\'hero2\', \'hero\']], [\'cutscene\', \'CS_Start()\', "CS_Camera(\'villain1\', dist=-160, yaw=0)", "CS_TurnTo(\'villain1\', \'hero1\')", "CS_TurnTo(\'hero1\', \'villain1\')", "CS_TurnTo(\'hero2\', \'villain1\')", "CS_Speak(\'villain1\', \'Trespassers!  My plants and I have done nothing, but still you persecute us, breaking our branches and slashing our leaves, you will pay!\', force=0)", \'CS_Speak(\\\'hero2\\\', "Poison Ivy, where\\\'d she come from!?", force=0)\', "CS_TurnTo(\'hero1\', \'hero2\')", \'CS_Speak(\\\'hero1\\\', "Of course, \\\'watch out for the vines...\\\'  How could I have missed it?  Ivy is a type of vine!", force=0)\', \'CS_End()\']]]], marker = \'ivy1\', actions="villains fight heroes, allies fight villains")'], 'required_map': []}, '__end__': {'action': ['ff.Story_SetStoryEnded("Robin\'s Riddles")']}, 'Mean Streets': {'timeofday': 'none', 'next': ['Riddle Me This'], 'trigger': ['start'], 'action': ['DoEncCustom(villains = [\'thug_with_bat\', \'thug_with_bat\', \'thug_with_bat\'], cutscenes = [[\'alertcs\', [[\'priority\', 1], [\'replace\', [\'ally1\', \'ally\']], [\'cutscene\', "CS_AddArrow(\'ally1arrow\', \'ally1\', arrow_type=js.ARROW_YELLOW)"]]], [\'startcs\', [[\'priority\', 1], [\'replace\', [\'villain1\', \'villain\'], [\'ally1\', \'ally\'], [\'ally2\', \'ally\'], [\'hero1\', \'hero\']], [\'cutscene\', \'CS_Start()\', "CS_Camera(\'villain1\', dist=-160, yaw=0)", "CS_TurnTo(\'villain1\', \'ally1\')", "CS_TurnTo(\'ally1\', \'villain1\')", "CS_TurnTo(\'ally2\', \'villain1\')", \'CS_Speak(\\\'villain1\\\', "Okay mister, let\\\'s see what you\\\'ve got on you..", force=0)\', \'CS_Speak(\\\'ally1\\\', "O-okay, just...please don\\\'t hurt us...", force=0)\', "CS_Camera(\'hero1\', dist=-160, yaw=0)", "CS_Speak(\'hero1\', \'Congratulations scumbag, you just won the street-punk lottery, and your prize is a good old fashioned walloping...\', force=0)", \'CS_End()\']]]], marker = \'encounter\', actions="villains fight heroes, villains attack innocent allies, allies thank heroes, allies do not fight", allies = [\'civilian_male\', \'civilian_female\'])'], 'required_map': []}, '__win__': {'action': ['ff.Story_WinMission()']}}}}
PSTORY: precaching ffx_oakman
PSTORY: precaching ffx_hedgeant
PSTORY: precaching ffx_bushman
PSTORY: precaching ffx_treeman
PSTORY: precaching poison_ivy
PSTORY: precaching civilian_male
PSTORY: precaching civilian_female
PSTORY: precaching thug_with_bat
PSTORY: precaching riddle_puzzle_thug
PSTORY: precaching riddler
! GetMapInfo[/spoiler]
Title: Re: EZScript Comics
Post by: BentonGrey on May 27, 2007, 12:08:10 PM
[spoiler]>>> C:\Documents and Settings\Owner\Local Settings\Application Data\Irrational Games\Freedom Force vs the 3rd Reich\temp\MiniMod RobinsRiddles.py executed
MISSION: On Post Init... start.
MLOG_Init(keepRunningModules=0): starting up
mlogreader.MLOG_Init: current mission = '02_ROBINSRIDDLESBETA'
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
numberStr=93
storing hero_0: id_1,-93
numberStr=94
storing hero_1: id_2,-94
MISSION: On Post Init... complete; starting story.
RANDOMENC: selected ffx_oakman : total prestige 1
RANDOMENC: selected ffx_hedgeant : total prestige 2
RANDOMENC: selected ffx_bushman : total prestige 3
RANDOMENC: selected ffx_hedgeant : total prestige 4
RANDOMENC: selected ffx_hedgeant : total prestige 5
RANDOMENC: selected ffx_hedgeant : total prestige 6
ENCOUNTER: Setting up encounter 1
ENCOUNTER: Start marker found for ['ivy1'] 'ivy1'
ENCOUNTER: No markers for 1 [['allyleave', 'ivy1_allyleave', 'dist500']]
AI: SetupAI() - setting ai for m25obj_2 ('ffx_oakman')
AI: SetupAI() - setting ai for m25obj_4 ('ffx_hedgeant')
ERROR: The character m25obj_6 with template ffx_bushman is missing a mesh or a hero file.
AI: SetupAI() - setting ai for m25obj_8 ('ffx_hedgeant')
AI: SetupAI() - setting ai for m25obj_10 ('ffx_hedgeant')
AI: SetupAI() - setting ai for m25obj_12 ('ffx_hedgeant')
GROUP: '1_minion' set to []
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: 'm25obj_10' added to group '1_minion'
GROUP: 'm25obj_12' added to group '1_minion'
GROUP: '1_minion' set to ['m25obj_2', 'm25obj_4', 'm25obj_6', 'm25obj_8', 'm25obj_10', 'm25obj_12']
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(1,villains = ['poison_ivy'], minions = ['ffx_oakman', 'ffx_hedgeant', 'ffx_bushman', 'ffx_treeman'], cutscenes = [['alertcs', [['priority', 1], ['replace', ['villain1', 'villain'], ['hero1', 'hero'], ['hero2', 'hero']], ['cutscene', 'CS_Start()', "CS_Lighting('night')", "CS_AddArrow('villain1arrow', 'villain1', arrow_type=js.ARROW_RED)", "CS_Camera('hero1', dist=-160, yaw=0)", "CS_TurnTo('hero1', 'hero2')", "CS_Speak('hero1', 'Batgirl, what are you doing here?!', force=0)", "CS_TurnTo('hero2', 'hero1')", 'CS_Speak(\'hero2\', "I heard about the Riddler on the police band, I\'m here to help!", force=0)', 'CS_End()']]], ['startcs', [['priority', 1], ['replace', ['villain1', 'villain'], ['hero1', 'hero'], ['hero2', 'hero']], ['cutscene', 'CS_Start()', "CS_Camera('villain1', dist=-160, yaw=0)", "CS_TurnTo('villain1', 'hero1')", "CS_TurnTo('hero1', 'villain1')", "CS_TurnTo('hero2', 'villain1')", "CS_Speak('villain1', 'Trespassers!  My plants and I have done nothing, but still you persecute us, breaking our branches and slashing our leaves, you will pay!', force=0)", 'CS_Speak(\'hero2\', "Poison Ivy, where\'d she come from!?", force=0)', "CS_TurnTo('hero1', 'hero2')", 'CS_Speak(\'hero1\', "Of course, \'watch out for the vines...\'  How could I have missed it?  Ivy is a type of vine!", force=0)', 'CS_End()']]]], marker = 'ivy1', actions="villains fight heroes, allies fight villains",return_function="StorylineEncounterReturn")
Traceback (innermost last):
  File "C:\Program Files\Irrational Games\Freedom Force vs The 3rd Reich\.\ffx3\missions\scripts\m25minimod.py", line 137, in OnPostInit
    m25story.DoStoryline()
  File "C:\Program Files\Irrational Games\Freedom Force vs The 3rd Reich\.\ffx3\missions\scripts\m25story.py", line 244, in DoStoryline
    DoStorylineState(story,enc)
  File "C:\Program Files\Irrational Games\Freedom Force vs The 3rd Reich\.\ffx3\missions\scripts\m25story.py", line 293, in DoStorylineState
    if not StorySetupEncounter(enc_id,story,state,a):
  File "C:\Program Files\Irrational Games\Freedom Force vs The 3rd Reich\.\ffx3\missions\scripts\m25story.py", line 383, 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\.\ffx3\missions\scripts\m25enc.py", line 4193, in DoEncCustom
    return SetupEncounter(enc_id, encounter)
  File "C:\Program Files\Irrational Games\Freedom Force vs The 3rd Reich\.\ffx3\missions\scripts\m25enc.py", line 1342, 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\.\ffx3\missions\scripts\m25enc.py", line 1408, 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\.\ffx3\missions\scripts\m25enc.py", line 388, in EncSpawnGroup
    Enc_SetCharEnc(s,enc_id) #make sure we are able to find out which encounter this is a part of
  File "C:\Program Files\Irrational Games\Freedom Force vs The 3rd Reich\.\ffx3\missions\scripts\m25enc.py", line 655, in Enc_SetCharEnc
    js.Object_SetAttr(char, '_enc_id', enc_id)
SystemError: NULL result without error in call_object
initialising FFQ_initialiseExtras()
FFX_UpdateSun: getting default sun
FFX_UpdateSun: setting = (-137.0, 57.0, 1.5, 0.20000000298, (0.20000000298, 0.20000000298, 0.600000023842))
AI: AISetRunning m25obj_2 to 0
AI: AISetRunning m25obj_4 to 0
AI: AISetRunning m25obj_8 to 0
AI: AISetRunning m25obj_10 to 0
AI: AISetRunning m25obj_12 to 0
initAttribsForChar: working on hero_0 (batman)
initAttribsForChar (batman): looking at attribute heroic
initAttribsForChar (batman): looking at attribute wall climbing
initAttribsForChar (batman): looking at attribute danger sense
initAttribsForChar (batman): looking at attribute capedcrusader
execInitAttrib: init flier attribute inside ['capedcrusader', 'flier', 'ffqropeswinger', 'disciplined', 'utilitybelt', 'nimble', 'acrobatic', 'grimresolve', 'ffqtracking'] combo
    on hero_0 of template custom_template_93 (batman)
execInitAttrib: init ffqropeswinger attribute inside ['capedcrusader', 'flier', 'ffqropeswinger', 'disciplined', 'utilitybelt', 'nimble', 'acrobatic', 'grimresolve', 'ffqtracking'] combo
    on hero_0 of template custom_template_93 (batman)
execInitAttrib: init disciplined attribute inside ['capedcrusader', 'flier', 'ffqropeswinger', 'disciplined', 'utilitybelt', 'nimble', 'acrobatic', 'grimresolve', 'ffqtracking'] combo
    on hero_0 of template custom_template_93 (batman)
execInitAttrib: init utilitybelt attribute inside ['capedcrusader', 'flier', 'ffqropeswinger', 'disciplined', 'utilitybelt', 'nimble', 'acrobatic', 'grimresolve', 'ffqtracking'] combo
    on hero_0 of template custom_template_93 (batman)
execInitAttrib: init nimble attribute inside ['capedcrusader', 'flier', 'ffqropeswinger', 'disciplined', 'utilitybelt', 'nimble', 'acrobatic', 'grimresolve', 'ffqtracking'] combo
    on hero_0 of template custom_template_93 (batman)
execInitAttrib: init acrobatic attribute inside ['capedcrusader', 'flier', 'ffqropeswinger', 'disciplined', 'utilitybelt', 'nimble', 'acrobatic', 'grimresolve', 'ffqtracking'] combo
    on hero_0 of template custom_template_93 (batman)
execInitAttrib: init grimresolve attribute inside ['capedcrusader', 'flier', 'ffqropeswinger', 'disciplined', 'utilitybelt', 'nimble', 'acrobatic', 'grimresolve', 'ffqtracking'] combo
    on hero_0 of template custom_template_93 (batman)
execInitAttrib: init ffqtracking attribute inside ['capedcrusader', 'flier', 'ffqropeswinger', 'disciplined', 'utilitybelt', 'nimble', 'acrobatic', 'grimresolve', 'ffqtracking'] combo
    on hero_0 of template custom_template_93 (batman)
initAttribsForChar: working on hero_1 (batgirl)
initAttribsForChar (batgirl): looking at attribute beautiful
initAttribsForChar (batgirl): looking at attribute nimble
initAttribsForChar (batgirl): looking at attribute wall climbing
initAttribsForChar (batgirl): looking at attribute danger sense
initAttribsForChar (batgirl): looking at attribute capedcrusader
execInitAttrib: init flier attribute inside ['capedcrusader', 'flier', 'ffqropeswinger', 'disciplined', 'utilitybelt', 'nimble', 'acrobatic', 'grimresolve', 'ffqtracking'] combo
    on hero_1 of template custom_template_94 (batgirl)
execInitAttrib: init ffqropeswinger attribute inside ['capedcrusader', 'flier', 'ffqropeswinger', 'disciplined', 'utilitybelt', 'nimble', 'acrobatic', 'grimresolve', 'ffqtracking'] combo
    on hero_1 of template custom_template_94 (batgirl)
execInitAttrib: init disciplined attribute inside ['capedcrusader', 'flier', 'ffqropeswinger', 'disciplined', 'utilitybelt', 'nimble', 'acrobatic', 'grimresolve', 'ffqtracking'] combo
    on hero_1 of template custom_template_94 (batgirl)
execInitAttrib: init utilitybelt attribute inside ['capedcrusader', 'flier', 'ffqropeswinger', 'disciplined', 'utilitybelt', 'nimble', 'acrobatic', 'grimresolve', 'ffqtracking'] combo
    on hero_1 of template custom_template_94 (batgirl)
execInitAttrib: init nimble attribute inside ['capedcrusader', 'flier', 'ffqropeswinger', 'disciplined', 'utilitybelt', 'nimble', 'acrobatic', 'grimresolve', 'ffqtracking'] combo
    on hero_1 of template custom_template_94 (batgirl)
execInitAttrib: init acrobatic attribute inside ['capedcrusader', 'flier', 'ffqropeswinger', 'disciplined', 'utilitybelt', 'nimble', 'acrobatic', 'grimresolve', 'ffqtracking'] combo
    on hero_1 of template custom_template_94 (batgirl)
execInitAttrib: init grimresolve attribute inside ['capedcrusader', 'flier', 'ffqropeswinger', 'disciplined', 'utilitybelt', 'nimble', 'acrobatic', 'grimresolve', 'ffqtracking'] combo
    on hero_1 of template custom_template_94 (batgirl)
execInitAttrib: init ffqtracking attribute inside ['capedcrusader', 'flier', 'ffqropeswinger', 'disciplined', 'utilitybelt', 'nimble', 'acrobatic', 'grimresolve', 'ffqtracking'] combo
    on hero_1 of template custom_template_94 (batgirl)
initAttribsForChar: working on m25obj_2 (ffx_oakman)
initAttribsForChar (ffx_oakman): looking at attribute tough guy
initAttribsForChar (ffx_oakman): looking at attribute ponderous
initAttribsForChar: working on m25obj_4 (ffx_hedgeant)
initAttribsForChar: working on m25obj_8 (ffx_hedgeant)
initAttribsForChar: working on m25obj_10 (ffx_hedgeant)
initAttribsForChar: working on m25obj_12 (ffx_hedgeant)
Plugin 'firehydrant' OnPostInit() called
Plugin 'zombie' has no OnPostInit()
Plugin 'freeroam_keepbuildingdamage' OnPostInit() called
Plugin 'm25ai_lowjumper' has no OnPostInit()
Plugin 'm25ai_realitymanipulation' has no OnPostInit()
Plugin 'cutscene_power' has no OnPostInit()
Plugin 'm25enc_opendoor' has no OnPostInit()
Plugin 'm25enc_simplechoice' has no OnPostInit()
2
1
3
2
2
1
3
2[/spoiler]

Okay, I've fixed the bushman thing....turns out it was 'busman,' whoops.....anyroad, that seems to have fixed the Ivy part, I've got to test the second encounter later.  It's our anniversary today, and I just had time to do this little bit while the wife was getting ready.  Anyroad, we're off, and I'll mess with this again tomorrow.  Thanks M25!
Title: Re: EZScript Comics
Post by: BentonGrey on May 27, 2007, 09:52:05 PM
Hurray!  Everything works!  Thanks for the help guys, apparently it was just that one glitch.  The first three 'comic' missions are finished!
Title: Re: EZScript Comics
Post by: BentonGrey on May 29, 2007, 10:10:11 PM
Alright, since everything seems to be working again, I've gone back to trying to improve the first comic mission, and I need some help.  Here's the script as it looks now:

[spoiler]Starting: Big Bird, Unexpected

#-----------------------------------------------------------------------------
Encounter: Big Bird
Type: Custom
Actions: villains fight heroes, villains are invulnerable
Villains: penguin
Minions: fowl_feathers_gang, fowl_feathers_gang2, fowl_feathers_gang, fowl_feathers_gang, fowl_feathers_gang2, fowl_feathers_gang, fowl_feathers_gang, fowl_feathers_gang2, fowl_feathers_gang, fowl_feathers_gang, fowl_feathers_gang2, fowl_feathers_gang, fowl_feathers_gang, fowl_feathers_gang2, fowl_feathers_gang
Marker: museum1

Start Cutscene:
Remove arrow from Villain1
Camera on Villain1
Villain1 turns to Minion1
Villain1 plays animation melee
Villain1 says, "Faster you poultrons, that curs-ed caped crusader loves to prowl the streets at this time of night!"
Minion1 turns to Villain1
Minion1 says, "I don't get it boss, why are we stealing this here statue thingy again?"
Villain1 says, "Aside from an asthetic value that a pea-brain like yours couldn't hope to comprehend, this particular piece of antiquity is worth a considerable fortune!"
Minion1 says, "Oh, okay then boss, what are we waiting for?"
Villain1 plays animation pain
Villain1 says, "That's what I'd like to know you pack of neolithic neanderthals, get on with it!"
Camera on Hero1
Hero1 turns to Villain1
Hero1 says, "Hold it Penguin!  You just earned a one-way trip back to Stonegate Prison!"
Camera on Villain1
Villain1 turns to Hero1
Villain1 says, "Drat your timing Batman, but you haven't caught us yet!  Discretion is the better part of valour my fine feathered friends!"
Minion1 turns to Villain1
Minion1 says, "What's 'dat mean boss?"
Villain1 turns to Minion1
Villain1 says, "It means run you insufferable low-brow!"
#-------------------------------------------------------------------------------


#-------------------------------------------------------------------------------
Encounter: Unexpected
Type: Custom
Actions: villains fight heroes, rivals fight villains, villains fight rivals, villain stops at one quarter health
Rivals: mrfreeze
Minions: fowl_feathers_gang, fowl_feathers_gang2, fowl_feathers_gang, fowl_feathers_gang, fowl_feathers_gang2, fowl_feathers_gang, fowl_feathers_gang, fowl_feathers_gang2, fowl_feathers_gang, fowl_feathers_gang, fowl_feathers_gang2
Cohorts: freeze_lackey, freeze_lackey, freeze_lackey, freeze_lackey, freeze_lackey, freeze_lackey, freeze_lackey, freeze_lackey, freeze_lackey, freeze_lackey, freeze_lackey, freeze_lackey, freeze_lackey, freeze_lackey, freeze_lackey, freeze_lackey, freeze_lackey, freeze_lackey
Marker: freeze1

Start Cutscene:
penguin is revived
Camera on mrfreeze
mrfreeze moves to Villain1
penguin turns to mrfreeze
mrfreeze turns to penguin
Rival1 says, "Penguin, I believe you have something I want..."
Cinematic camera on Rival1 to Villain1
penguin plays animation melee
penguin says, "Back off you petulant icicle, this is my robbery!"
Rival1 says, "It was your robbery..."
mrfreeze plays animation ranged_gun_4

Villans Hurt Cutscene:
Hero1 moves to mrfreeze
mrfreeze turns to Hero1
Hero1 turns to mrfreeze
Cinematic camera on mrfreeze to Hero1
Rival1 says, "Well fought Batman, but a colder head prevailed.
Hero1 says, "Freeze, wait!  Why are you doing this?"
Rival1 says, "We must all obey our hearts Batman.  My heart is cold, but not dead...not yet.  I will do what I must...but I've said to much!
mrfreeze plays animation ranged_gun_4
mrfreeze moves to freeze2
Fade for 2 seconds
[/spoiler]

First off, it's not working, the Penguin and his men are spawning, but the CS doesn't play.  Secondly, I can't help feeling like there is a better way to do this.  Is there any way to force a character to use a power through EZScript?  Thanks for looking at these guys, I'll be out of town for the next two weeks, but I'll be checking in.  I hope y'all can help me smooth this out.
Title: Re: EZScript Comics
Post by: Boalt92 on May 30, 2007, 01:27:47 PM
i guess i'm your answer man....(i hope):

1) EZ Script seems to like consistency.  Use specific names (i.e. penguin, mrfreeze, etc.) whereever possible. In "unexpected" you mix and match "mrfreeze", "penguin", and Villain1.  That might be causing a problem

2) In "unexpected", you refer to "Villain1" but you do not list a Villain1 among your variables.  I think you can take out "penguin is revived" and just list "penguin" as a Villain.  (did that make sense?  :unsure:).

3) In "Big Bird", you start with "Remove arrow from Villain1".  You might need an Alert Cutscene with "Red arrow on Villain1".  Not sure if this is a deal breaker, just something I noticed.

4) Minions: I noticed in "Big Bird", you have 15 minions listed.  Did you want 15 opponents, or for EZ Script to chose from the 15?  If you just want it to choose, you only have to list the minions in the ratio you want it to select.  For example, you have 10 f_f_gang and 5 f_f_gang2 listed (a 2:1 ratio).  Just use 2 f_f_gang and 1 f_f_gang2.  EZ Script will still pick them randomly and you'll be twice as likely to get f_f_gang members as f_f_gang2.  This is not a deal-breaker either, but seems to make missions run smoother (for me, anyway).

5) Which CS isn't running?
Title: Re: EZScript Comics
Post by: BentonGrey on May 30, 2007, 09:32:39 PM
Thanks for the response man, I can certainly use all the help I can get!  Anyroad, let me answer your points one at a time:

1) Alright, I will definitely change this.

2) Whoops!  I had the Penguin in there, but removed him because I'm not quite sure how this will behave.  What I WANT is for the first encounter to flow into the second, but I'm afraid that this will give me two Penguins running around.  Is there a way to destroy the first one?

3) Once again, this is something of a Frankenstien script, so I removed the alert cutscene to see if it was causing problems, forgot to remove that.

4) This is in an attempt to get EZScript to give me more minions, because it's only been giving me a handful, I might revise the numbers, but at the moment it's still only spawning two.

5) Neither, the Penguin and two men are spawning, but nothing is playing and Mr Freeze and co. aren't even spawning.

I won't be able to work on this until I get back home on the 10th, but maybe I can help narrow things down before then.  Ohh, and do you know if it's possible to force a character to use a power through EZScript?
Title: Re: EZScript Comics
Post by: Boalt92 on May 31, 2007, 06:10:29 AM
1) hope it works

2) Once the first encounter ends, all minions, villains, etc. will disappear.  Maybe m25 can clarify on this one.  This means you'll either need to combine the two

encounters or start the second with another penguin.  2 encounters cannot run at the same marker at the same time.  If you use the same marker for both encounters,

the second encounter will not (cannot) begin until the first one completes.  You'd need to write each encounter as self-contained sequences ("scenes" in a movie) and make sure you use the same villains and minions for both encounters.

Your other option is to combine the two encounters and teleport mrfreeze (i.e. your "Rival") off camera somewhere until you need him later.  I don't know where I got the idea (I think it was a Conduit post), but basically, you pick a point off map (this prevents him from moving to the encounter), teleport him there, and then bring him back when you're ready.  (an easy way to do this is to move an object (building, car, character, etc.) off map in ffedit and make a note of its position.  You can use those coords and "teleport mrfreeze to x,y,z" in the Alert Cutscene.  Then use "teleport mrfreeze to hero1" to bring him back (I always fade in/out when I teleport characters).

To do this, remove "Villains are invulnerable" and replace it with "Villains can be interrogated" or "Villain stops at one quarter health".  Mr Freeze would enter the picture during the "interrogation" (or "villains stop") cutscene.  You could also revive penguin to full health at that point

3) I think this may be a sticking point.  It looks like EZ Script can't find an arrow to remove and won't do anything else until it does.


4) Your minions are too tough.  They spawn at levels based on your characters, so EZ Script is only spawning a couple.  Name them as "villains" and refer to "penguin" by name for any of his custom actions.


5) see #3


I don't think you can force a certain power, the best you can do is simulate it by playing the animation, then playing the effect (or fx) on the target.  The only hang up is that any animation/effect you play will end before the next one starts.  Looks a bit awkward at times, but hardly a deal-breaker.

B92
Title: Re: EZScript Comics
Post by: M25 on May 31, 2007, 08:22:40 AM
Thanks for your answers, Boalt92.   It's great having other people that know EZ script.




There's a plug-in that got included with FFX3.2 (cutscene_power) that allows you to force the use of a power during a cutscene

<name> uses power <power> on <target>


EZ script does automatically do a 'clean up' to remove all of the characters involved in an encounter so they don't clutter up the map.  If you want a character to continue past an encounter you can give them a name.

Villains: nuclear_winter named chilly, ice_queen

In that case, the nuclear_winter character is flagged as being able to move from one encounter to the next (the ice_queen isn't).  If you have another encounter that uses the same character with the same name, then EZ script will use the same character.

Encounter: First
Type: Custom
Actions: Villain stops at half-health, villains fight heroes
Villains: nuclear_winter named chilly

Encounter: Second
Type: Flee the scene
Villains: nuclear_winter named chilly

In the above setup, nuclear winter will fight until he reaches half health, then the second encounter will kick in and he will try to flee.


Minions:  EZ script spawns minions based on the difficulty level the player has chosen and the number of heroes the player has.  It doesn't base it on point totals at all.   (I used to do that, but it didn't work well and was too slow).

If you want a lot of characters to spawn regardless of difficulty level, then put them as villains and not minions.


Title: Re: EZScript Comics
Post by: BentonGrey on May 31, 2007, 08:42:34 AM
Thanks guys, that actually makes a lot of sense, I think I'm following you.  I'm glad you included a way to force powers M25, that'll be a big help! :D

I can't wait until we get back to try all of this out...it's going to be torture not being able to see if it works or not!
Title: Re: EZScript Comics
Post by: BentonGrey on June 14, 2007, 04:32:46 PM
Hey guys, I took your advice and combined the different encounters, and I am really happy with the results.  I have a few more tweaks to make, but I'm still having one problem.  The final cutscene isn't playing.  Everything else is working wonderfully, but when you knock out Mr Freeze and his goons, the game ends.  (I tried using 'Rival stops at quarter health,' but that didn't work and caused an error in the script.log.)  The only error I'm seeing is 'custom_template93 not found.'  Anyroad, here's the script.

[spoiler]Story: Fowl Play

Starting: Big Bird, Unexpected

#-----------------------------------------------------------------------------
Encounter: Big Bird
Type: Custom
Actions: villains fight heroes, villains can be interrogated, rivals fight villains
Villains: penguin, fowl_feathers_gang, fowl_feathers_gang2, fowl_feathers_gang, fowl_feathers_gang,

fowl_feathers_gang2, fowl_feathers_gang, fowl_feathers_gang, fowl_feathers_gang2,

fowl_feathers_gang, fowl_feathers_gang, fowl_feathers_gang2, fowl_feathers_gang
Rivals: mrfreeze, freeze_lackey, freeze_lackey, freeze_lackey, freeze_lackey, freeze_lackey,

freeze_lackey, freeze_lackey
Marker: museum1

Alert Cutscene:
Fade for 2 seconds
Rival1 teleports to freeze1
Rival2 teleports to freeze1
Rival3 teleports to freeze1
Rival4 teleports to freeze1
Rival5 teleports to freeze1
Rival6 teleports to freeze1
Rival7 teleports to freeze1
Rival8 teleports to freeze1
Unfade for 2 seconds
Red arrow on Villain1


Start Cutscene:
Remove arrow from Villain1
Camera on Villain1
Villain1 turns to Villain2
Villain1 plays animation melee
Villain1 says, "Faster you poultrons, that curs-ed caped crusader loves to prowl the streets at

this time of night!"
Villain2 turns to Villain1
Villain2 says, "I don't get it boss, why are we stealing this here statue thingy again?"
Villain1 says, "Aside from an asthetic value that a pea-brain like yours couldn't hope to

comprehend, this particular piece of antiquity is worth a considerable fortune!"
Villain2 says, "Oh, okay then boss, what are we waiting for?"
Villain1 plays animation pain
Villain1 says, "That's what I'd like to know you pack of neolithic neanderthals, get on with it!"
Camera on Hero1
Hero1 turns to Villain1
Hero1 says, "Hold it Penguin!  You just earned a one-way trip back to Stonegate Prison!"
Camera on Villain1
Villain1 turns to Hero1
Villain1 says, "Drat your timing Batman, but you haven't caught us yet!  Discretion is the better

part of valour my fine feathered friends!"
Villain2 turns to Villain1
Villain2 says, "What's 'dat mean boss?"
Villain1 turns to Villain2
Villain1 says, "It means run you insufferable low-brow!"

Interrogation Cutscene:
Fade for 2 seconds
Hero1 teleports to museum1
Villain1 teleports to museum1
Rival1 teleports to freeze2
Rival2 teleports to freeze2
Rival3 teleports to freeze2
Rival4 teleports to freeze2
Rival5 teleports to freeze2
Rival6 teleports to freeze2
Rival7 teleports to freeze2
Rival8 teleports to freeze2
Unfade for 2 seconds
Rival1 moves to Villain1
Cinematic camera on Villain1 to Hero1
Hero1 turns to Villain1
Hero1 says, "I hope you enjoy your time at Stonegate, Penguin, you're going to be there for a very

long time."
Villain1 says, "What are a few more months with my birds?  You know I'll be back soon..."
Rival1 turns to Villain1
Rival1 says, "Everyone freeze!"
Villain1 turns to Rival1
Hero1 turns to Rival1
Cinematic camera on Rival1 to Villain1
Rival1 says, "Penguin, I believe you have something I want..."
penguin plays animation melee
penguin says, "Back off you petulant icicle, this is my robbery!"
Rival1 says, "It was your robbery..."
Rival1 uses freeze freeze ray on Villain1
Villain1 plays animation stunned

Rivals Gone Cutscene:
Rival1 is revived
Hero1 moves to Rival1
Cinematic camera on Hero1 to Rival1
Rival1 turns to Hero1
Hero1 turns to Rival1
Rival1 says, "Well fought Batman, but a colder head prevailed."
Hero1 says, "Freeze, wait!  Why are you doing this?"
Rival1 says, "We must all obey our hearts Batman.  My heart is cold, but not dead...not yet.  I

will do what I must...but I've said to much!"
Rival1 uses freeze freeze ray on Villain1
Rival1 moves to freeze2
Fade for 2 seconds[/spoiler]
Title: Re: EZScript Comics
Post by: BentonGrey on June 14, 2007, 04:33:02 PM
And the error 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 1181863149.812000
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
FFX Mission Plugin 'firehydrant' imported
FFX Mission Plugin 'zombie' imported
Loading freeroam_keepbuildingdamage.py v.1.0.0 build 0; branch = main
FFX Mission Plugin 'freeroam_keepbuildingdamage' imported
FFX Mission Plugin 'm25ai_lowjumper' imported
FFX Mission Plugin 'm25ai_realitymanipulation' imported
FFX Mission Plugin 'cutscene_power' imported
Loading     m25enc_OPENDOOR.py v.1.0.0 build 0; branch = main
FFX Mission Plugin 'm25enc_opendoor' imported
Loading     m25enc_simplechoice.py v.1.0.0 build 0; branch = main
FFX Mission Plugin 'm25enc_simplechoice' imported
Starting Built-In Function Wrapper 1.5
('Object_CalcPrestige', 'js')
>>> C:\Documents and Settings\Owner\Local Settings\Application Data\Irrational Games\Freedom Force vs the 3rd Reich\temp\MiniMod FowlPlay.py executed
>>> C:\Documents and Settings\Owner\Local Settings\Application Data\Irrational Games\Freedom Force vs the 3rd Reich\temp\danger.py executed
! GetMapInfo
>>> C:\Documents and Settings\Owner\Local Settings\Application Data\Irrational Games\Freedom Force vs the 3rd Reich\temp\MiniMod FowlPlay.py executed
MLOG_Init(keepRunningModules=0): starting up
mlogreader.MLOG_Init: current mission = '01_FOWLPLAYBETA'
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
numberStr=93
storing hero_0: id_1,-93
initialising FFQ_initialiseExtras()
FFX_UpdateSun: getting default sun
FFX_UpdateSun: setting = (-140.0, 70.0, 1.0, 0.800000011921, (0.699999988079, 0.600000023842, 0.600000023842))
initAttribsForChar: working on hero_0 (superman)
initAttribsForChar (superman): looking at attribute bedevilled
initAttribsForChar (superman): looking at attribute kryptonian
execInitAttrib: init ffqnimbleflier attribute inside ['kryptonian', 'ffqnimbleflier', 'vulnerability', 'fastflier', 'invulnerable', 'toughguy2', 'heavylifter'] combo
    on hero_0 of template custom_template_93 (superman)
execInitAttrib: init vulnerability attribute inside ['kryptonian', 'ffqnimbleflier', 'vulnerability', 'fastflier', 'invulnerable', 'toughguy2', 'heavylifter'] combo
    on hero_0 of template custom_template_93 (superman)
execInitAttrib: init fastflier attribute inside ['kryptonian', 'ffqnimbleflier', 'vulnerability', 'fastflier', 'invulnerable', 'toughguy2', 'heavylifter'] combo
    on hero_0 of template custom_template_93 (superman)
execInitAttrib: init invulnerable attribute inside ['kryptonian', 'ffqnimbleflier', 'vulnerability', 'fastflier', 'invulnerable', 'toughguy2', 'heavylifter'] combo
    on hero_0 of template custom_template_93 (superman)
execInitAttrib: init toughguy2 attribute inside ['kryptonian', 'ffqnimbleflier', 'vulnerability', 'fastflier', 'invulnerable', 'toughguy2', 'heavylifter'] combo
    on hero_0 of template custom_template_93 (superman)
inittoughguy2: char=<hero_0>
inittoughguy2: initializing for hero_0
execInitAttrib: init heavylifter attribute inside ['kryptonian', 'ffqnimbleflier', 'vulnerability', 'fastflier', 'invulnerable', 'toughguy2', 'heavylifter'] combo
    on hero_0 of template custom_template_93 (superman)
initAttribsForChar (superman): looking at attribute flier
initAttribsForChar (superman): looking at attribute heavy hitter
initAttribsForChar (superman): looking at attribute accidentalchange
execInitAttrib: init accidentalchange attribute
    on hero_0 of template custom_template_93 (superman)
accidental change
superman
isNever
initAttribsForChar: working on m25obj_2 (penguin)
initAttribsForChar (penguin): looking at attribute flier
initAttribsForChar (penguin): looking at attribute summoner4
execInitAttrib: init summoner4 attribute
    on m25obj_2 of template penguin (penguin)
initAttribsForChar (penguin): looking at attribute unheroic
initAttribsForChar (penguin): looking at attribute disciplined
initAttribsForChar: working on m25obj_4 (fowl_feathers_gang)
initAttribsForChar (fowl_feathers_gang): looking at attribute timid
initAttribsForChar (fowl_feathers_gang): looking at attribute weak minded
initAttribsForChar: working on m25obj_6 (fowl_feathers_gang2)
initAttribsForChar (fowl_feathers_gang2): looking at attribute timid
initAttribsForChar (fowl_feathers_gang2): looking at attribute weak minded
initAttribsForChar: working on m25obj_8 (fowl_feathers_gang)
initAttribsForChar (fowl_feathers_gang): looking at attribute timid
initAttribsForChar (fowl_feathers_gang): looking at attribute weak minded
initAttribsForChar: working on m25obj_12 (fowl_feathers_gang2)
initAttribsForChar (fowl_feathers_gang2): looking at attribute timid
initAttribsForChar (fowl_feathers_gang2): looking at attribute weak minded
initAttribsForChar: working on m25obj_14 (fowl_feathers_gang)
initAttribsForChar (fowl_feathers_gang): looking at attribute timid
initAttribsForChar (fowl_feathers_gang): looking at attribute weak minded
initAttribsForChar: working on m25obj_10 (fowl_feathers_gang)
initAttribsForChar (fowl_feathers_gang): looking at attribute timid
initAttribsForChar (fowl_feathers_gang): looking at attribute weak minded
initAttribsForChar: working on m25obj_16 (fowl_feathers_gang)
initAttribsForChar (fowl_feathers_gang): looking at attribute timid
initAttribsForChar (fowl_feathers_gang): looking at attribute weak minded
initAttribsForChar: working on m25obj_22 (fowl_feathers_gang)
initAttribsForChar (fowl_feathers_gang): looking at attribute timid
initAttribsForChar (fowl_feathers_gang): looking at attribute weak minded
initAttribsForChar: working on m25obj_18 (fowl_feathers_gang2)
initAttribsForChar (fowl_feathers_gang2): looking at attribute timid
initAttribsForChar (fowl_feathers_gang2): looking at attribute weak minded
initAttribsForChar: working on m25obj_24 (fowl_feathers_gang2)
initAttribsForChar (fowl_feathers_gang2): looking at attribute timid
initAttribsForChar (fowl_feathers_gang2): looking at attribute weak minded
initAttribsForChar: working on m25obj_20 (fowl_feathers_gang)
initAttribsForChar (fowl_feathers_gang): looking at attribute timid
initAttribsForChar (fowl_feathers_gang): looking at attribute weak minded
initAttribsForChar: working on m25obj_26 (fowl_feathers_gang)
initAttribsForChar (fowl_feathers_gang): looking at attribute timid
initAttribsForChar (fowl_feathers_gang): looking at attribute weak minded
initAttribsForChar: working on m25obj_28 (mrfreeze)
initAttribsForChar (mrfreeze): looking at attribute icecontrol
execInitAttrib: init icecontrol attribute
    on m25obj_28 of template mrfreeze (mrfreeze)
initAttribsForChar (mrfreeze): looking at attribute jumper
initAttribsForChar (mrfreeze): looking at attribute armoured
initAttribsForChar (mrfreeze): looking at attribute dispassionate
execInitAttrib: init dispassionate attribute
    on m25obj_28 of template mrfreeze (mrfreeze)
initAttribsForChar (mrfreeze): looking at attribute solid skeleton
initAttribsForChar: working on m25obj_30 (freeze_lackey)
initAttribsForChar (freeze_lackey): looking at attribute weak minded
initAttribsForChar (freeze_lackey): looking at attribute bedevilled
initAttribsForChar: working on m25obj_32 (freeze_lackey)
initAttribsForChar (freeze_lackey): looking at attribute weak minded
initAttribsForChar (freeze_lackey): looking at attribute bedevilled
initAttribsForChar: working on m25obj_34 (freeze_lackey)
initAttribsForChar (freeze_lackey): looking at attribute weak minded
initAttribsForChar (freeze_lackey): looking at attribute bedevilled
initAttribsForChar: working on m25obj_36 (freeze_lackey)
initAttribsForChar (freeze_lackey): looking at attribute weak minded
initAttribsForChar (freeze_lackey): looking at attribute bedevilled
initAttribsForChar: working on m25obj_38 (freeze_lackey)
initAttribsForChar (freeze_lackey): looking at attribute weak minded
initAttribsForChar (freeze_lackey): looking at attribute bedevilled
initAttribsForChar: working on m25obj_40 (freeze_lackey)
initAttribsForChar (freeze_lackey): looking at attribute weak minded
initAttribsForChar (freeze_lackey): looking at attribute bedevilled
initAttribsForChar: working on m25obj_42 (freeze_lackey)
initAttribsForChar (freeze_lackey): looking at attribute weak minded
initAttribsForChar (freeze_lackey): looking at attribute bedevilled
Plugin 'firehydrant' OnPostInit() called
Plugin 'zombie' has no OnPostInit()
Plugin 'freeroam_keepbuildingdamage' OnPostInit() called
Plugin 'm25ai_lowjumper' has no OnPostInit()
Plugin 'm25ai_realitymanipulation' has no OnPostInit()
Plugin 'cutscene_power' has no OnPostInit()
Plugin 'm25enc_opendoor' has no OnPostInit()
Plugin 'm25enc_simplechoice' has no OnPostInit()
addArrow m25obj_2arrow m25obj_2 0 1
speak('m25obj_2','SPEECH_P2_INTEROGATEME_01')
cshelper: Cutscene [cutscene] submitted for playing
cshelper: Now playing cutscene [cutscene]
Step 1 of 2
0
speakInternal
0
Step 2 of 2
cshelper: Cutscene [cutscene] has ended
addArrow _m25obj_12_int_arrow m25obj_12 0 1
addArrow _m25obj_22_int_arrow m25obj_22 0 1
addArrow _m25obj_18_int_arrow m25obj_18 0 1
addArrow _m25obj_24_int_arrow m25obj_24 0 1
speak('hero_0','SPEECH_S5_CANTINTEROGATE_01')
cshelper: Cutscene [cutscene] submitted for playing
cshelper: Now playing cutscene [cutscene]
Step 1 of 2
0
speakInternal
0
Step 2 of 2
cshelper: Cutscene [cutscene] has ended
Template_GetHeight() non-fatal error:
    template 'penguin' not found in list of template heights.
    To detect approximate height, use
    checkHeight(templateList, precise = 'no', repeat = 0, replace = 0, giants = 1, campaign = 0)
Template_GetMesh() fatal error: template 'custom_template_93' not found
Template_GetHeight() non-fatal error:
    template 'custom_template_93' not found in list of template heights.
    To detect approximate height, use
    checkHeight(templateList, precise = 'no', repeat = 0, replace = 0, giants = 1, campaign = 0)
Template_GetMesh() fatal error: template 'custom_template_93' not found
Template_GetMesh() fatal error: template 'custom_template_93' not found
Template_GetMesh() fatal error: template 'custom_template_93' not found
Template_GetMesh() fatal error: template 'custom_template_93' not found
Template_GetMesh() fatal error: template 'custom_template_93' not found
Template_GetMesh() fatal error: template 'custom_template_93' not found
Template_GetMesh() fatal error: template 'custom_template_93' not found
Template_GetMesh() fatal error: template 'custom_template_93' not found
Template_GetMesh() fatal error: template 'custom_template_93' not found
Template_GetMesh() fatal error: template 'custom_template_93' not found
Template_GetMesh() fatal error: template 'custom_template_93' not found
Template_GetMesh() fatal error: template 'custom_template_93' not found
Template_GetMesh() fatal error: template 'custom_template_93' not found
Template_GetMesh() fatal error: template 'custom_template_93' not found
Template_GetMesh() fatal error: template 'custom_template_93' not found
Template_GetMesh() fatal error: template 'custom_template_93' not found
Template_GetHeight() non-fatal error:
    template 'mrfreeze' not found in list of template heights.
    To detect approximate height, use
    checkHeight(templateList, precise = 'no', repeat = 0, replace = 0, giants = 1, campaign = 0)
[/spoiler]
Title: Re: EZScript Comics
Post by: M25 on June 15, 2007, 09:49:28 AM
I don't think there is a 'Rivals Gone' cutscene.   Maybe call it End Cutscene instead.  That should play when everything is done.


Title: Re: EZScript Comics
Post by: BentonGrey on June 15, 2007, 10:25:46 AM
Hmm, I see now that I must have misread your documentation, whoops!  I'll try and replace it with that and we'll see what happens.
Title: Re: EZScript Comics
Post by: BentonGrey on July 10, 2007, 11:14:56 AM
Okay guys, everything is working perfectly now....except for that blasted end cutscene.  I just can't get it to play.  Here's what it looks like:

[spoiler]Interrogation Cutscene:
Fade for 2 seconds
Hero1 teleports to museum1
Villain1 teleports to museum1
Rival1 teleports to freeze2
Rival2 teleports to freeze2
Rival3 teleports to freeze2
Rival4 teleports to freeze2
Rival5 teleports to freeze2
Rival6 teleports to freeze2
Rival7 teleports to freeze2
Rival8 teleports to freeze2
Rival1 moves to Villain1
Unfade for 2 seconds
Cinematic camera on Villain1 to Hero1
Hero1 turns to Villain1
Hero1 says, "I hope you enjoy your time at Stonegate, Penguin, you're going to

be there for a very long time."
Villain1 says, "Cage me up again like a canary if you like Batman, but you

know I'll be back soon..."
Rival1 turns to Villain1
Rival1 says, "Everyone freeze!"
Villain1 turns to Rival1
Hero1 turns to Rival1
Cinematic camera on Rival1 to Villain1
Rival1 says, "Penguin, I believe you have something I want..."
penguin plays animation melee
penguin says, "Back off you petulant icicle, this is my robbery!"
Rival1 says, "It was your robbery..."
Rival1 uses freeze freeze ray on Villain1

End Cutscene:
Rival1 is revived
Hero1 moves to Rival1
Cinematic camera on Hero1 to Rival1
Rival1 turns to Hero1
Hero1 turns to Rival1
Rival1 says, "Well fought Batman, but a colder head prevailed."
Hero1 says, "Freeze, wait!  Why are you doing this?"
Rival1 says, "We must all obey our hearts Batman.  My heart is cold, but not

dead...not yet.  I will do what I must...but I've said to much!"
Rival1 uses freeze freeze ray on Hero1
Rival1 moves to freeze2
Fade for 2 seconds[/spoiler]

And this is the script log from running it:

[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 1184090833.296000
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
FFX Mission Plugin 'firehydrant' imported
FFX Mission Plugin 'zombie' imported
Loading freeroam_keepbuildingdamage.py v.1.0.0 build 0; branch = main
FFX Mission Plugin 'freeroam_keepbuildingdamage' imported
FFX Mission Plugin 'm25ai_lowjumper' imported
FFX Mission Plugin 'm25ai_realitymanipulation' imported
FFX Mission Plugin 'cutscene_power' imported
Loading     m25enc_OPENDOOR.py v.1.0.0 build 0; branch = main
FFX Mission Plugin 'm25enc_opendoor' imported
Loading     m25enc_simplechoice.py v.1.0.0 build 0; branch = main
FFX Mission Plugin 'm25enc_simplechoice' imported
Starting Built-In Function Wrapper 1.5
('Object_CalcPrestige', 'js')
>>> C:\Documents and Settings\Owner\Local Settings\Application Data\Irrational Games\Freedom Force vs the 3rd Reich\temp\MiniMod FowlPlay.py executed
>>> C:\Documents and Settings\Owner\Local Settings\Application Data\Irrational Games\Freedom Force vs the 3rd Reich\temp\danger.py executed
! GetMapInfo
>>> C:\Documents and Settings\Owner\Local Settings\Application Data\Irrational Games\Freedom Force vs the 3rd Reich\temp\MiniMod FowlPlay.py executed
MLOG_Init(keepRunningModules=0): starting up
mlogreader.MLOG_Init: current mission = '01_FOWLPLAYBETA'
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
numberStr=93
storing hero_0: id_1,-93
initialising FFQ_initialiseExtras()
FFX_UpdateSun: getting default sun
FFX_UpdateSun: setting = (-140.0, 70.0, 1.0, 0.800000011921, (0.699999988079, 0.600000023842, 0.600000023842))
initAttribsForChar: working on hero_0 (superman)
initAttribsForChar (superman): looking at attribute bedevilled
initAttribsForChar (superman): looking at attribute kryptonian
execInitAttrib: init ffqnimbleflier attribute inside ['kryptonian', 'ffqnimbleflier', 'vulnerability', 'fastflier', 'invulnerable', 'toughguy2', 'heavylifter'] combo
    on hero_0 of template custom_template_93 (superman)
execInitAttrib: init vulnerability attribute inside ['kryptonian', 'ffqnimbleflier', 'vulnerability', 'fastflier', 'invulnerable', 'toughguy2', 'heavylifter'] combo
    on hero_0 of template custom_template_93 (superman)
execInitAttrib: init fastflier attribute inside ['kryptonian', 'ffqnimbleflier', 'vulnerability', 'fastflier', 'invulnerable', 'toughguy2', 'heavylifter'] combo
    on hero_0 of template custom_template_93 (superman)
execInitAttrib: init invulnerable attribute inside ['kryptonian', 'ffqnimbleflier', 'vulnerability', 'fastflier', 'invulnerable', 'toughguy2', 'heavylifter'] combo
    on hero_0 of template custom_template_93 (superman)
execInitAttrib: init toughguy2 attribute inside ['kryptonian', 'ffqnimbleflier', 'vulnerability', 'fastflier', 'invulnerable', 'toughguy2', 'heavylifter'] combo
    on hero_0 of template custom_template_93 (superman)
inittoughguy2: char=<hero_0>
inittoughguy2: initializing for hero_0
execInitAttrib: init heavylifter attribute inside ['kryptonian', 'ffqnimbleflier', 'vulnerability', 'fastflier', 'invulnerable', 'toughguy2', 'heavylifter'] combo
    on hero_0 of template custom_template_93 (superman)
initAttribsForChar (superman): looking at attribute flier
initAttribsForChar (superman): looking at attribute heavy hitter
initAttribsForChar (superman): looking at attribute accidentalchange
execInitAttrib: init accidentalchange attribute
    on hero_0 of template custom_template_93 (superman)
accidental change
superman
isNever
initAttribsForChar: working on m25obj_2 (penguin)
initAttribsForChar (penguin): looking at attribute flier
initAttribsForChar (penguin): looking at attribute summoner4
execInitAttrib: init summoner4 attribute
    on m25obj_2 of template penguin (penguin)
initAttribsForChar (penguin): looking at attribute unheroic
initAttribsForChar (penguin): looking at attribute disciplined
initAttribsForChar: working on m25obj_4 (fowl_feathers_gang)
initAttribsForChar (fowl_feathers_gang): looking at attribute timid
initAttribsForChar (fowl_feathers_gang): looking at attribute weak minded
initAttribsForChar: working on m25obj_10 (fowl_feathers_gang)
initAttribsForChar (fowl_feathers_gang): looking at attribute timid
initAttribsForChar (fowl_feathers_gang): looking at attribute weak minded
initAttribsForChar: working on m25obj_6 (fowl_feathers_gang2)
initAttribsForChar (fowl_feathers_gang2): looking at attribute timid
initAttribsForChar (fowl_feathers_gang2): looking at attribute weak minded
initAttribsForChar: working on m25obj_18 (fowl_feathers_gang2)
initAttribsForChar (fowl_feathers_gang2): looking at attribute timid
initAttribsForChar (fowl_feathers_gang2): looking at attribute weak minded
initAttribsForChar: working on m25obj_8 (fowl_feathers_gang)
initAttribsForChar (fowl_feathers_gang): looking at attribute timid
initAttribsForChar (fowl_feathers_gang): looking at attribute weak minded
initAttribsForChar: working on m25obj_12 (fowl_feathers_gang2)
initAttribsForChar (fowl_feathers_gang2): looking at attribute timid
initAttribsForChar (fowl_feathers_gang2): looking at attribute weak minded
initAttribsForChar: working on m25obj_14 (fowl_feathers_gang)
initAttribsForChar (fowl_feathers_gang): looking at attribute timid
initAttribsForChar (fowl_feathers_gang): looking at attribute weak minded
initAttribsForChar: working on m25obj_16 (fowl_feathers_gang)
initAttribsForChar (fowl_feathers_gang): looking at attribute timid
initAttribsForChar (fowl_feathers_gang): looking at attribute weak minded
initAttribsForChar: working on m25obj_22 (fowl_feathers_gang)
initAttribsForChar (fowl_feathers_gang): looking at attribute timid
initAttribsForChar (fowl_feathers_gang): looking at attribute weak minded
initAttribsForChar: working on m25obj_24 (fowl_feathers_gang2)
initAttribsForChar (fowl_feathers_gang2): looking at attribute timid
initAttribsForChar (fowl_feathers_gang2): looking at attribute weak minded
initAttribsForChar: working on m25obj_28 (mrfreeze)
initAttribsForChar (mrfreeze): looking at attribute icecontrol
execInitAttrib: init icecontrol attribute
    on m25obj_28 of template mrfreeze (mrfreeze)
initAttribsForChar (mrfreeze): looking at attribute jumper
initAttribsForChar (mrfreeze): looking at attribute armoured
initAttribsForChar (mrfreeze): looking at attribute dispassionate
execInitAttrib: init dispassionate attribute
    on m25obj_28 of template mrfreeze (mrfreeze)
initAttribsForChar (mrfreeze): looking at attribute solid skeleton
initAttribsForChar: working on m25obj_20 (fowl_feathers_gang)
initAttribsForChar (fowl_feathers_gang): looking at attribute timid
initAttribsForChar (fowl_feathers_gang): looking at attribute weak minded
initAttribsForChar: working on m25obj_26 (fowl_feathers_gang)
initAttribsForChar (fowl_feathers_gang): looking at attribute timid
initAttribsForChar (fowl_feathers_gang): looking at attribute weak minded
initAttribsForChar: working on m25obj_30 (freeze_lackey)
initAttribsForChar (freeze_lackey): looking at attribute weak minded
initAttribsForChar (freeze_lackey): looking at attribute bedevilled
initAttribsForChar: working on m25obj_32 (freeze_lackey)
initAttribsForChar (freeze_lackey): looking at attribute weak minded
initAttribsForChar (freeze_lackey): looking at attribute bedevilled
initAttribsForChar: working on m25obj_34 (freeze_lackey)
initAttribsForChar (freeze_lackey): looking at attribute weak minded
initAttribsForChar (freeze_lackey): looking at attribute bedevilled
initAttribsForChar: working on m25obj_36 (freeze_lackey)
initAttribsForChar (freeze_lackey): looking at attribute weak minded
initAttribsForChar (freeze_lackey): looking at attribute bedevilled
initAttribsForChar: working on m25obj_38 (freeze_lackey)
initAttribsForChar (freeze_lackey): looking at attribute weak minded
initAttribsForChar (freeze_lackey): looking at attribute bedevilled
initAttribsForChar: working on m25obj_40 (freeze_lackey)
initAttribsForChar (freeze_lackey): looking at attribute weak minded
initAttribsForChar (freeze_lackey): looking at attribute bedevilled
initAttribsForChar: working on m25obj_42 (freeze_lackey)
initAttribsForChar (freeze_lackey): looking at attribute weak minded
initAttribsForChar (freeze_lackey): looking at attribute bedevilled
Plugin 'firehydrant' OnPostInit() called
Plugin 'zombie' has no OnPostInit()
Plugin 'freeroam_keepbuildingdamage' OnPostInit() called
Plugin 'm25ai_lowjumper' has no OnPostInit()
Plugin 'm25ai_realitymanipulation' has no OnPostInit()
Plugin 'cutscene_power' has no OnPostInit()
Plugin 'm25enc_opendoor' has no OnPostInit()
Plugin 'm25enc_simplechoice' has no OnPostInit()
addArrow m25obj_2arrow m25obj_2 0 1
speak('m25obj_2','SPEECH_P2_INTEROGATEME_01')
cshelper: Cutscene [cutscene] submitted for playing
cshelper: Now playing cutscene [cutscene]
Step 1 of 2
0
speakInternal
0
Step 2 of 2
cshelper: Cutscene [cutscene] has ended
addArrow _m25obj_10_int_arrow m25obj_10 0 1
addArrow _m25obj_14_int_arrow m25obj_14 0 1
addArrow _m25obj_22_int_arrow m25obj_22 0 1
addArrow _m25obj_20_int_arrow m25obj_20 0 1
speak('hero_0','SPEECH_S5_CANTINTEROGATE_01')
cshelper: Cutscene [cutscene] submitted for playing
cshelper: Now playing cutscene [cutscene]
Step 1 of 2
0
speakInternal
0
Step 2 of 2
cshelper: Cutscene [cutscene] has ended
Template_GetHeight() non-fatal error:
    template 'penguin' not found in list of template heights.
    To detect approximate height, use
    checkHeight(templateList, precise = 'no', repeat = 0, replace = 0, giants = 1, campaign = 0)
Template_GetMesh() fatal error: template 'custom_template_93' not found
Template_GetHeight() non-fatal error:
    template 'custom_template_93' not found in list of template heights.
    To detect approximate height, use
    checkHeight(templateList, precise = 'no', repeat = 0, replace = 0, giants = 1, campaign = 0)
Template_GetMesh() fatal error: template 'custom_template_93' not found
Template_GetMesh() fatal error: template 'custom_template_93' not found
Template_GetMesh() fatal error: template 'custom_template_93' not found
Template_GetMesh() fatal error: template 'custom_template_93' not found
Template_GetMesh() fatal error: template 'custom_template_93' not found
Template_GetMesh() fatal error: template 'custom_template_93' not found
Template_GetMesh() fatal error: template 'custom_template_93' not found
Template_GetMesh() fatal error: template 'custom_template_93' not found
Template_GetMesh() fatal error: template 'custom_template_93' not found
Template_GetMesh() fatal error: template 'custom_template_93' not found
Template_GetMesh() fatal error: template 'custom_template_93' not found
Template_GetMesh() fatal error: template 'custom_template_93' not found
Template_GetMesh() fatal error: template 'custom_template_93' not found
Template_GetMesh() fatal error: template 'custom_template_93' not found
Template_GetMesh() fatal error: template 'custom_template_93' not found
Template_GetMesh() fatal error: template 'custom_template_93' not found
Template_GetMesh() fatal error: template 'custom_template_93' not found
Template_GetHeight() non-fatal error:
    template 'mrfreeze' not found in list of template heights.
    To detect approximate height, use
    checkHeight(templateList, precise = 'no', repeat = 0, replace = 0, giants = 1, campaign = 0)
[/spoiler]

Could it be that End Cutscene doesn't work in this kind of encounter?
Title: Re: EZScript Comics
Post by: M25 on July 10, 2007, 01:11:27 PM
The End cutscene is not playing because EZ script can't find a living Rival.  Unfortunately, the 'is revived' command won't fix that.  I would just make the last cutscene a separate encounter.

Encounter: The End
Type: Cutscene
Villain: mr_freeze

Start Cutscene:
Villain teleports to Hero
Cinematic Camera on Hero to Villain
(rest of the cutscene)
Title: Re: EZScript Comics
Post by: BentonGrey on July 11, 2007, 10:10:41 AM
Hey guys, let there be rejoicing!  Almost everything works perfectly, thanks M25!  There is just one last thing, and if it doesn't work, I can live with it.  Mr. Freeze still isn't using his power when the script calls for it.  Here's what it looks like:

Villain1 uses power freeze freeze ray on Hero1

It's not causing any problems in the mission, he's simply not using.  It's a shame from a visual standpoint, but I can live with it if we can't figure it out.

I've checked the spelling and spacing of the power name, and other than that I don't know what to do.
Title: Re: EZScript Comics
Post by: GogglesPizanno on July 11, 2007, 08:05:21 PM
QuoteVillain1 uses power freeze freeze ray on Hero1

Couple thoughts from one who knows little...

A) Is the power actually named "freeze freeze ray"
B) Is a power name (or any name in EZScript) allowed to use spaces? I know if you were scripting or programming something in a traditional language this would be a no-no.
Title: Re: EZScript Comics
Post by: BentonGrey on July 11, 2007, 08:16:40 PM
Yes, the name is "freeze freeze ray" (because of using a hero editor to add the character in, and not doing it by hand).  I know that all of my powers have spaces in them, and none of them give me trouble....hmm.
Title: Re: EZScript Comics
Post by: GogglesPizanno on July 11, 2007, 08:29:26 PM
OK.. I'm Out.  :D
Title: Re: EZScript Comics
Post by: M25 on July 12, 2007, 09:40:15 AM
Space in the power name shouldn't be a problem.

Do make sure you have FFX 3.2 gold or later.  The beta version had a bug in it that prevented cutscene plug-ins (and the 'uses power' thing is a cutscene plug-in) from working properly.
Title: Re: EZScript Comics
Post by: BentonGrey on July 12, 2007, 09:44:06 AM
I've got the latest version, or at least I'm pretty sure I do.  I did combine my info from an earlier version with the new FFX folder.  I wonder if I accidentally re-introduced that bug.  What file was it in?  I can replace it and see if it makes a difference.

You know...it's funny, this is the very first mission I started working on, and it's the only one that's given me a substantial amount of trouble.  I've already finished two others and a base.txt, but this one still has to be peculiar. :P
Title: Re: EZScript Comics
Post by: M25 on July 12, 2007, 10:22:58 AM
The file to replace is m25event.py

Also make sure you have a folder with the path  missions/scripts/ffxplugins/active/m25cutscene_power

Title: Re: EZScript Comics
Post by: BentonGrey on July 12, 2007, 11:51:06 AM
Thanks M25, I've checked those files, and replaced them, so I'll test in a bit and see if it works.

Meanwhile, I'm setting up the next mission and I could use a little advice from the EZScript elite.  I've got Batman and Robin patrolling Gotham, they come across the Joker robbing a bank.  Now, what I'd like to happen at this point is two-fold, and I know how to do each part, but I don't know how to integrate them.  So, I'd like the Joker and his minions to flee with a bag 'o cash, while at the same time, somewhere on the map, Harley Quinn appears with a bomb that starts counting down.  Any advice?

Hmm....well, I had a thought that using a start when command and "Clown Prince at Start" might work, but I didn't get a chance to see if I was right, as I had some kind of error with the heist encounter:

[spoiler]initAttribsForChar: working on m25obj_10 (clown_thug)
initAttribsForChar (clown_thug): looking at attribute weak minded
initAttribsForChar: working on m25obj_8 (clown_thug)
initAttribsForChar (clown_thug): looking at attribute weak minded
initAttribsForChar: working on m25obj_6 (clown_thug)
initAttribsForChar (clown_thug): looking at attribute weak minded
initAttribsForChar: working on m25obj_4 (the_joker)
initAttribsForChar (the_joker): looking at attribute alkaline
initAttribsForChar (the_joker): looking at attribute hatemonger
execInitAttrib: init hatemonger attribute
    on m25obj_4 of template the_joker (the_joker)
initAttribsForChar (the_joker): looking at attribute hot tempered
initAttribsForChar: working on m25obj_12 (clown_thug)
initAttribsForChar (clown_thug): looking at attribute weak minded
initAttribsForChar: working on m25obj_14 (clown_thug)
initAttribsForChar (clown_thug): looking at attribute weak minded
initAttribsForChar: working on m25obj_16 (clown_thug)
initAttribsForChar (clown_thug): looking at attribute weak minded
initAttribsForChar: working on m25obj_18 (clown_thug)
initAttribsForChar (clown_thug): looking at attribute weak minded
initAttribsForChar: working on m25obj_20 (clown_thug)
initAttribsForChar (clown_thug): looking at attribute weak minded
initAttribsForChar: working on m25obj_22 (clown_thug)
initAttribsForChar (clown_thug): looking at attribute weak minded
Traceback (innermost last):
  File "C:\Program Files\Irrational Games\Freedom Force vs The 3rd Reich\.\ffx3\missions\scripts\ffx.py", line 9810, in FeedBackCheck
    doFeedback(event,1)
  File "C:\Program Files\Irrational Games\Freedom Force vs The 3rd Reich\.\ffx3\missions\scripts\ffx.py", line 9834, in doFeedback
    exec('relevant=%s(obj,char)'%(fn))
  File "<string>", line 1, in ?
  File "C:\Program Files\Irrational Games\Freedom Force vs The 3rd Reich\.\ffx3\missions\scripts\ffx.py", line 9946, in isAcidBurnt
    return (Object_GetSecondaryStates(obj)&(SCSTATE_ACIDBURNT))!=0
NameError: SCSTATE_ACIDBURNT
Traceback (innermost last):
  File "C:\Program Files\Irrational Games\Freedom Force vs The 3rd Reich\.\ffx3\missions\scripts\ffx.py", line 9810, in FeedBackCheck
    doFeedback(event,1)
  File "C:\Program Files\Irrational Games\Freedom Force vs The 3rd Reich\.\ffx3\missions\scripts\ffx.py", line 9834, in doFeedback
    exec('relevant=%s(obj,char)'%(fn))
  File "<string>", line 1, in ?
  File "C:\Program Files\Irrational Games\Freedom Force vs The 3rd Reich\.\ffx3\missions\scripts\ffx.py", line 9946, in isAcidBurnt
    return (Object_GetSecondaryStates(obj)&(SCSTATE_ACIDBURNT))!=0
NameError: SCSTATE_ACIDBURNT
Traceback (innermost last):
  File "C:\Program Files\Irrational Games\Freedom Force vs The 3rd Reich\.\ffx3\missions\scripts\ffx.py", line 9810, in FeedBackCheck
    doFeedback(event,1)
  File "C:\Program Files\Irrational Games\Freedom Force vs The 3rd Reich\.\ffx3\missions\scripts\ffx.py", line 9834, in doFeedback
    exec('relevant=%s(obj,char)'%(fn))
  File "<string>", line 1, in ?
  File "C:\Program Files\Irrational Games\Freedom Force vs The 3rd Reich\.\ffx3\missions\scripts\ffx.py", line 9946, in isAcidBurnt
    return (Object_GetSecondaryStates(obj)&(SCSTATE_ACIDBURNT))!=0
NameError: SCSTATE_ACIDBURNT
teleport() - no character m25obj_40
Traceback (innermost last):
  File "C:\Program Files\Irrational Games\Freedom Force vs The 3rd Reich\.\ffx3\missions\scripts\ffx.py", line 9810, in FeedBackCheck
    doFeedback(event,1)[/spoiler]

I'm going to try removing the Joker and seeing what happens.
Title: Re: EZScript Comics
Post by: BentonGrey on July 12, 2007, 01:28:25 PM
Well, Joker seems to be doing something, since when I removed him that encounter ran, but I can't figure out what, as when I tried him in the rumble room, he worked fine.  The bomb encounter doesn't seem to be starting as I'd hoped.  Here is the script as it stands:

[spoiler]# claws and cards story for EZ script
# by m25

Story: ClawsandCards

#----------------------------------------------------------------
Encounter: kitty cat
Type: Custom
Allies: catwoman
Actions: allies become controllable
Marker: cat1

Start Cutscene:
Camera on Ally1
Ally1 turns to Hero1
Ally1 plays animation direct_2
Ally1 says, "Well hello there handsome..."
Camera on Hero1
Hero1 turns to Ally1
Hero1 plays animation ranged
Ally1 moves to Hero1
Hero1 says, "Catwoman! Selena...you know that you're breaking your parole.

What are you after tonight?"
Cinematic camera on Ally1 to Hero1
Ally1 plays animation pain
Ally1 says, "Easy big boy, I've been a good kitty, my claws were pretty well

clipped after that last fiasco with Dagget."
Ally1 plays animation special_transform
Ally1 says, "I've just heard some rumblings about the Ventriloquist planning a

job tonight...I still owe that little scratching post for framing me, and I

was wondering if you might like a hand...or a paw?"
Hero1 plays animation idle_1
Hero1 says, "Well...I suppose it couldn't hurt, but just so we're clear, you

step over the line and I'll have no choice but to bring you back...and I don't

want to do that."
Ally1 plays animation direct_2
Ally1 says, "You're sweet, but don't worry, I'll behave."
Camera on Hero2
Hero2 says, "Alright already, can we get on with this now!"

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

Encounter: Clown Prince
Type: Heist
Villains: the_joker, clown_thug, clown_thug, clown_thug, clown_thug,

clown_thug, clown_thug, clown_thug, clown_thug
Item: money_bag
Marker: joker1

Alert Cutscene:
Fade for 2 seconds
Villain1 teleports to vent1
Villain2 teleports to vent1
Villain3 teleports to vent1
Villain4 teleports to vent1
Villain5 teleports to vent1
Villain6 teleports to vent1
Villain7 teleports to vent1
Villain8 teleports to vent1
Villain9 teleports to vent1
Unfade for 2 seconds
Camera on joker1
play effect generic_fire_explosion at joker2
Fade for 2 seconds
Red arrow on Villain1
Villain1 teleports to joker1
Villain2 teleports to joker1
Villain3 teleports to joker1
Villain4 teleports to joker1
Villain5 teleports to joker1
Villain6 teleports to joker1
Villain7 teleports to joker1
Villain8 teleports to joker1
Villain9 teleports to joker1
Camera on Villain1
Villain1 says, "Hahahahahahahaahaha!"
Cinematic camera on Hero1 to Hero2
Hero1 says, "Did you hear that?  It sounded like an explosion!"
Hero2 says, "We'd better check it out!?"
Camera on Hero3
Hero3 says, "Not without me, you don't!"

Start Cutscene:
Remove arrow from Villain1
Teleport Hero1 to Hero2
Cinematic camera on Hero2 to Hero1
Hero2 turns to Hero1
Hero2 says, "The Joker! This night just keeps getting better and better..."
Camera on Villain1
Villain1 turns to Hero1
Villain plays animation pain
Villain1 says, "Oh! You wound me Boy-Blunder, the Clown Prince of Crime makes

everything more fun...Hahahahahahaha!"
Hero1 turns to Villain1
Hero2 turns to Villain1
Camera on Hero1
Hero1 plays animation ranged
Hero1 says, "Give it up Joker, you're going back to Arkham!"
Camera on Hero2
Hero2 says, "And your little playmates are heading straight to Stonegate!"
Camera on Villain1
Villain1 says, "Don't be silly Bats, you know I only stay there as long as

it's funny...and besides, I've got a much better joke for you tonight."
Villain1 plays animation ranged
Villain1 says, "My dear little Harley is out there somewhere out there right

now minding a delightful little surprise for the bored and boring masses. You

can stop me, or stop half of Gotham from catching one tremendous case of the

giggles, haha...hahahaha...haahahahahaha!"

#-----------------------------------------------
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_det
Time: 480
Actions: disarm bomb, immediate countdown, villains fight heroes
Starts when: Clown Prince at Start

Start Cutscene:
Cinematic Camera on Villain1 to Hero1
Hero1 plays animation ranged
Hero1 says, "Harley! You don't know what you're doing, that bomb is

dangerous!"
Villain1 plays animation area
Villain1 says, "It's all in good fun Bats, Mr. J. said that it's just going to

give this dismal town some laughs..."
Camera on Hero3
Hero3 plays animation pain
Hero3 says, "We don't have time for this, the clock is ticking..."
Cinematic camera on Hero3 to Hero2
Hero2 says, "Yeah, let's just take Zippy here out and find that bomb!"
Camera on Villain1
Villain1 says, "You just try Jr., we're going to make sure Mr. J.'s toy goes

off like it's supposed to!"

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

Bomb Exploding Cutscene:
Camera on abomb_det
Hero1 says, "I've failed!"
Play effect generic_fire_explosion_large

#-----------------------------------------------
Encounter: Knock On Wood
Type: Save Civilian
Villains: ventriloquost, thug_with_bat, thug_with_gun, thug_with_bat,

thug_with_gun, thug_with_bat, thug_with_gun, thug_with_bat, thug_with_gun
Allies: civilian_male, civilian_female, civilian_female
Marker: vent1

Alert Cutscene:
Yellow arrow on Villain1
Camera on Hero3
Hero3 turns to Hero1
Hero3 says, "Finally! now that this is all over, can we please go find that

little wooden twerp? There were rumors about a jewel heist..."
Camera on Hero1
Hero1 says, "Hmm...Gotham Jems is in this area, let's go check it out."

Start Cutscene:
Remove arrow on Villain1
Camera on Villain1
Villain1 plays animation melee
Villain1 says telepathically, "Gwast it! It's the Gat! I was hopin' that clown

would keep him busy longer 'dan 'dis..."
Villain1 plays animation pain
Villain1 says, "Oh dear, what are we going to do Mr. Scarface?"
Villain1 says telepathically, "I always got a gack up plan dummy! Goys, grab

'dem, watch-a-call 'ems, gystanders, we'll need some hostages to get outta'

'dis!"
Ally1 turns to Hero1
Ally1 plays animation power
Ally1 says, "Help me!"

Ally Thanks Hero Cutscene:
Cinematic camera on Ally1 to Hero1
Hero1 turns to Ally1
Ally1 turns to Hero1
Hero1 plays animation ranged
Hero1 says, "Are you three okay?"
Ally1 plays animation recover_from_stun
Ally1 says, "Y-y-yes...thanks to you."

End Cutscene:
Cinematic camera on Hero1 to Hero3
Hero3 turns to Hero1
Hero1 turns to Hero3
Hero3 says, "This was fun Bats, maybe we should do it again sometime?"
Hero1 says, "It depends...can you keep your whiskers clean Selena?"
Hero3 says, "I guess only time will tell, huh Batman?"
Hero3 plays animation direct_2
Hero3 says, "Goodbye tall dark and handsome..."

[/spoiler]
Title: Re: EZScript Comics
Post by: M25 on July 12, 2007, 02:09:49 PM
To get two encounters to run at the same time, you can branch to both using the Next: part of a lead-in encounter.


Encounter: kitty cat
Next: Clown Prince, Tick Tock


As to the other issue, something is triggering a problem with an ffx attribute.  Which ones does joker have?

Title: Re: EZScript Comics
Post by: BentonGrey on July 12, 2007, 11:08:34 PM
Yeah, I was hoping for the counter to start only once the Joker makes his threat...but I suppose I can do it that way and just add extra time in. 

Joker has hatemonger customized to acid burnt, but I suppose I'll just change it back to the default.
Title: Re: EZScript Comics
Post by: BentonGrey on July 13, 2007, 12:33:24 AM
Okay, monkeyed around with it some more tonight and I think it's the effects that are causing some of my problems.  I'll experiment with them more tomorrow.  However now that the bomb encounter works, I can't disarm the bomb.  There's no command to do so, and when the timer runs out, it simply recycles.
Title: Re: EZScript Comics
Post by: M25 on July 13, 2007, 08:36:05 AM
You must be running the beta version, since the disarm bomb problem was fixed in the final release.  Be sure to use the latest versions of m25enc.py and m25cutscene.py
Title: Re: EZScript Comics
Post by: BentonGrey on July 13, 2007, 08:51:11 AM
Hmm.........I could swear that I've completely updated....I suppose I'll re-download and tripple check.

:EDIT: Okay, I've re-installed FFX 3.2, so that's all set.  I think I was up to date, but you can't be too careful.  So, I've also removed all of the 'play effect' and 'teleport' entries, as one of them was giving me trouble, and I didn't particularly care to chase it down.  Now, all of my cutscenes work, and the problems I have are pertaining to the boom.  For one, the disarm still isn't working.  Now, I think that this may be a mesh issues, as I can't effect the bomb in any way, but it shouldn't be since I added a bounding box to the nif.  I'm going to try a different mesh tonight and we'll see if that's the issue.  Still, we also have to problem of the timer.  It seems to reset after I complete the Joker's encounter.  Any suggestions?

Here's the story as it stands:

[spoiler]# claws and cards story for EZ script
# by m25

Story: ClawsandCards

#----------------------------------------------------------------
Encounter: kitty cat
Type: Custom
Allies: catwoman
Actions: allies become controllable
Marker: cat1
Next: Clown Prince, Tick Tock

Start Cutscene:
Camera on Ally1
Ally1 turns to Hero1
Ally1 plays animation direct_2
Ally1 says, "Well hello there handsome..."
Camera on Hero1
Hero1 turns to Ally1
Hero1 plays animation ranged
Ally1 moves to Hero1
Hero1 says, "Catwoman! Selena...you know that you're breaking your parole. What are you after tonight?"
Hero2 turns to Ally1
Cinematic camera on Ally1 to Hero1
Ally1 plays animation pain
Ally1 says, "Easy big boy, I've been a good kitty, my claws were pretty well clipped after that last fiasco with Dagget."
Ally1 plays animation special_transform
Ally1 says, "I've just heard some rumblings about the Ventriloquist planning a job tonight...I still owe that little scratching post for framing me, and I was wondering if you might like a hand...or a paw?"
Hero1 plays animation idle_1
Hero1 says, "Well...I suppose it couldn't hurt, but just so we're clear, you step over the line and I'll have no choice but to bring you back...and I don't want to do that."
Ally1 plays animation direct_2
Ally1 says, "You're sweet, but don't worry, I'll behave."
Camera on Hero2
Hero2 says, "Alright already, can we get on with this now!"

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

Encounter: Clown Prince
Type: Heist
Villains: the_joker, clown_thug, clown_thug, clown_thug, clown_thug, clown_thug, clown_thug, clown_thug, clown_thug
Item: money_bag
Marker: joker1

Alert Cutscene:
Narrator says, "BOOOOOM!"
Play sound fx_generic_fire_explosion at Hero1
Red arrow on Villain1
Camera on Villain1
Villain1 says, "Hahahahahahahahaha!"
Wait 2 seconds
Cinematic camera on Hero1 to Hero2
Hero1 says, "Did you hear that?  It sounded like an explosion!"
Hero2 says, "We'd better check it out!?"
Camera on Hero3
Hero3 says, "Not without me, you don't!"

Start Cutscene:
Remove arrow from Villain1
Camera on Hero2
Hero2 turns to Hero1
Hero2 says, "The Joker! This night just keeps getting better and better..."
Camera on Villain1
Villain1 turns to Hero1
Villain1 plays animation pain
Villain1 says, "Oh! You wound me Boy-Blunder, hehe, the Clown Prince of Crime makes everything more fun...Hahahahahahaha!"
Hero1 turns to Villain1
Hero2 turns to Villain1
Camera on Hero1
Hero1 plays animation ranged
Hero1 says, "Give it up Joker, you're going back to Arkham!"
Camera on Hero2
Hero2 says, "And your little playmates are heading straight to Stonegate!"
Camera on Villain1
Villain1 says, "Don't be silly Bats, you know I only stay there as long as it's funny...and besides, I've got a much better joke for you tonight."
Villain1 plays animation ranged
Villain1 says, "My dear little Harley is out there somewhere out there right now minding a delightful little surprise for the bored and boring masses. You can stop me, or stop half of Gotham from catching one tremendous case of the giggles, haha...hahahaha...hahahahahaha!"

#-----------------------------------------------
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_det
Time: 480
Actions: disarm bomb, immediate countdown, villains fight heroes

Start Cutscene:
Cinematic Camera on Villain1 to Hero1
Hero1 plays animation ranged
Hero1 says, "Harley! You don't know what you're doing, that bomb is dangerous!"
Villain1 plays animation area
Villain1 says, "It's all in good fun Bats, Mr. J. said that it's just going to give this dismal town some laughs..."
Camera on Hero3
Hero3 plays animation pain
Hero3 says, "We don't have time for this, the clock is ticking..."
Cinematic camera on Hero3 to Hero2
Hero2 says, "Yeah, let's just take Zippy here out and find that bomb!"
Camera on Villain1
Villain1 says, "You just try Jr., we're going to make sure Mr. J.'s toy goes off like it's supposed to!"

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

#-----------------------------------------------
Encounter: Knock On Wood
Type: Save Civilian
Villains: ventriloquost, thug_with_bat, thug_with_gun, thug_with_bat, thug_with_gun, thug_with_bat, thug_with_gun, thug_with_bat, thug_with_gun
Allies: civilian_male, civilian_female, civilian_female
Marker: vent1

Alert Cutscene:
Yellow arrow on Villain1
Camera on Hero3
Hero3 turns to Hero1
Hero3 says, "Finally! now that this is all over, can we please go find that little wooden twerp? There were rumors about a jewel heist..."
Camera on Hero1
Hero1 says, "Hmm...Gotham Jems is in this area, let's go check it out."

Start Cutscene:
Remove arrow on Villain1
Camera on Villain1
Villain1 plays animation melee
Villain1 says telepathically, "Gwast it! It's the Gat! I was hopin' that clown would keep him busy longer 'dan 'dis..."
Villain1 plays animation pain
Villain1 says, "Oh dear, what are we going to do Mr. Scarface?"
Villain1 says telepathically, "I always got a gack up plan dummy! Goys, grab 'dem, watch-a-call 'ems, gystanders, we'll need some hostages to get outta' 'dis!"
Ally1 turns to Hero1
Ally1 plays animation power
Ally1 says, "Help me!"

Ally Thanks Hero Cutscene:
Cinematic camera on Ally1 to Hero1
Hero1 turns to Ally1
Ally1 turns to Hero1
Hero1 plays animation ranged
Hero1 says, "Are you three okay?"
Ally1 plays animation recover_from_stun
Ally1 says, "Y-y-yes...thanks to you."

End Cutscene:
Cinematic camera on Hero1 to Hero3
Hero3 turns to Hero1
Hero1 turns to Hero3
Hero3 says, "This was fun Bats, maybe we should do it again sometime?"
Hero1 says, "It depends...can you keep your whiskers clean Selena?"
Hero3 says, "I guess only time will tell, huh Batman?"
Hero3 plays animation direct_2
Hero3 says, "Goodbye tall dark and handsome..."

[/spoiler]

There are no errors in the script log other than tons of these:

[spoiler]Template_GetMesh() fatal error: template 'custom_template_93' not found
Template_GetMesh() fatal error: template 'custom_template_93' not found
Template_GetMesh() fatal error: template 'custom_template_93' not found
Template_GetMesh() fatal error: template 'custom_template_93' not found
Template_GetMesh() fatal error: template 'custom_template_93' not found
Template_GetMesh() fatal error: template 'custom_template_93' not found
Template_GetMesh() fatal error: template 'custom_template_93' not found
Template_GetMesh() fatal error: template 'custom_template_93' not found
Template_GetMesh() fatal error: template 'custom_template_93' not found
Template_GetMesh() fatal error: template 'custom_template_93' not found
Template_GetMesh() fatal error: template 'custom_template_93' not found
Template_GetMesh() fatal error: template 'custom_template_93' not found
Template_GetMesh() fatal error: template 'custom_template_93' not found
Template_GetMesh() fatal error: template 'custom_template_93' not found
Template_GetMesh() fatal error: template 'custom_template_93' not found
Template_GetMesh() fatal error: template 'custom_template_93' not found
Template_GetMesh() fatal error: template 'custom_template_93' not found
Template_GetMesh() fatal error: template 'custom_template_94' not found
Template_GetMesh() fatal error: template 'custom_template_94' not found
Template_GetMesh() fatal error: template 'custom_template_94' not found
Template_GetMesh() fatal error: template 'custom_template_94' not found
Template_GetMesh() fatal error: template 'custom_template_94' not found
Template_GetMesh() fatal error: template 'custom_template_94' not found[/spoiler]
Title: Re: EZScript Comics
Post by: Epimethee on July 14, 2007, 02:26:59 PM
Did you run the FFX Control Centre after updating? The absence of FFX CC branding could cause these log errors.
Title: Re: EZScript Comics
Post by: M25 on July 14, 2007, 03:30:43 PM
The mesh is a problem if you can't interact with it.  That's not an EZ script issue.

The Tick Tock encounter is restarting (or more likely starting twice), due to the flow of the mission.  Since there is no Next: line in the Clown Prince encounter, EZ script just runs the next encounter in the text.  You need a Next: line to explicitly tell EZ script what to do.

I would do it this way:

Encounter: Clown Prince
Next: None

Encounter: Tick Tock
Next: None

Encounter: Knock on Wood
Starts When: Clown Prince at end, Tick Tock at end

Title: Re: EZScript Comics
Post by: BentonGrey on July 14, 2007, 10:52:06 PM
Thanks M25, that solves that problem at least.  Yeah, I know the mesh thing would be its own problem, and I'm going to try and test it tomorrow. 

Hmm...I THINK I've run it Em, but I'm not sure.  I've run it now, so my next test should tell me.
Title: Re: EZScript Comics
Post by: BentonGrey on July 15, 2007, 01:15:02 PM
Okay guys, I've tested a good deal more and the bomb's problems are fixed, everything is working like a charm now, so I decided to go back and investigate the whole effects issue.  Apparently, whenever EZScript tries to play one, it chokes, and the cutscene freezes.  Here's what the script.log looks like:

[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 1184530442.562000
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
FFX Mission Plugin 'firehydrant' imported
FFX Mission Plugin 'zombie' imported
Loading freeroam_keepbuildingdamage.py v.1.0.0 build 0; branch = main
FFX Mission Plugin 'freeroam_keepbuildingdamage' imported
FFX Mission Plugin 'm25ai_lowjumper' imported
FFX Mission Plugin 'm25ai_realitymanipulation' imported
FFX Mission Plugin 'cutscene_power' imported
Loading     m25enc_OPENDOOR.py v.1.0.0 build 0; branch = main
FFX Mission Plugin 'm25enc_opendoor' imported
Loading     m25enc_simplechoice.py v.1.0.0 build 0; branch = main
FFX Mission Plugin 'm25enc_simplechoice' imported
Starting Built-In Function Wrapper 1.5
('Object_CalcPrestige', 'js')
>>> C:\Documents and Settings\Owner\Local Settings\Application Data\Irrational Games\Freedom Force vs the 3rd Reich\temp\MiniMod clawsandcards.py executed
>>> C:\Documents and Settings\Owner\Local Settings\Application Data\Irrational Games\Freedom Force vs the 3rd Reich\temp\danger.py executed
! GetMapInfo
Building_GetDimensions() non-fatal error:
    template 'building_bank' not found in list of building dimensions.
    To detect approximate dimensions, use
    getBuildingDimensions ()
Building_GetDimensions() non-fatal error:
    template 'building_bank' not found in list of building dimensions.
    To detect approximate dimensions, use
    getBuildingDimensions ()
>>> C:\Documents and Settings\Owner\Local Settings\Application Data\Irrational Games\Freedom Force vs the 3rd Reich\temp\MiniMod clawsandcards.py executed
MLOG_Init(keepRunningModules=0): starting up
mlogreader.MLOG_Init: current mission = '04_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
numberStr=93
storing hero_0: id_1,-93
numberStr=94
storing hero_1: id_2,-94
initialising FFQ_initialiseExtras()
initAttribsForChar: working on hero_0 (adam_strange)
initAttribsForChar (adam_strange): looking at attribute flier
initAttribsForChar (adam_strange): looking at attribute temperature control
initAttribsForChar (adam_strange): looking at attribute strange visitor
initAttribsForChar (adam_strange): looking at attribute crack shot
initAttribsForChar (adam_strange): looking at attribute ffqtracking
execInitAttrib: init ffqtracking attribute
    on hero_0 of template custom_template_93 (adam_strange)
initAttribsForChar: working on hero_1 (animal_man)
initAttribsForChar (animal_man): looking at attribute jumper
initAttribsForChar (animal_man): looking at attribute hirsute
initAttribsForChar (animal_man): looking at attribute danger sense
initAttribsForChar (animal_man): looking at attribute flier
initAttribsForChar: working on m25obj_2 (catwoman)
initAttribsForChar (catwoman): looking at attribute beautiful
initAttribsForChar (catwoman): looking at attribute acrobatic
execInitAttrib: init acrobatic attribute
    on m25obj_2 of template catwoman (catwoman)
initAttribsForChar (catwoman): looking at attribute nimble
initAttribsForChar (catwoman): looking at attribute claws
initAttribsForChar (catwoman): looking at attribute wall climbing
Plugin 'firehydrant' OnPostInit() called
Plugin 'zombie' has no OnPostInit()
Plugin 'freeroam_keepbuildingdamage' OnPostInit() called
Plugin 'm25ai_lowjumper' has no OnPostInit()
Plugin 'm25ai_realitymanipulation' has no OnPostInit()
Plugin 'cutscene_power' has no OnPostInit()
Plugin 'm25enc_opendoor' has no OnPostInit()
Plugin 'm25enc_simplechoice' has no OnPostInit()
Traceback (innermost last):
  File "C:\Program Files\Irrational Games\Freedom Force vs The 3rd Reich\.\ffx3\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\.\ffx3\missions\scripts\m25cutscene.py", line 208, in CS_Effect
    js.Object_PlayEffect(location, effect)
RuntimeError: Object_PlayEffect(): Effect resource not found - ffx_blank
[/spoiler]

As you can see, it can't find the FX, even though I've tried custom, built in, and FFX versions.  What's up?
Title: Re: EZScript Comics
Post by: Epimethee on July 15, 2007, 06:01:42 PM
Is "ffx_blank" listed in FFEdit when opening your mod's files?
Title: Re: EZScript Comics
Post by: BentonGrey on July 15, 2007, 07:33:53 PM
Yep, it and all the others I've tried I looked up in the fx tab of FFEdit.  I tried that one, aff_boom_orange, generic_fire_explosion, and fire_minion_detonation.  These are all area effects, if that makes a difference.
Title: Re: EZScript Comics
Post by: M25 on July 15, 2007, 08:08:20 PM
The fx tab is only for powers.  If you want to play an effect in game on a character you have to use one from the resources tab (res.dat).  Yes, it is confusing, but that is how the game defines it.



Title: Re: EZScript Comics
Post by: Epimethee on July 15, 2007, 08:19:01 PM
And the "effect_ffx_blank" is also there under the resources tab, I suppose?

If it's there, please open the console from a RR mission and type:
Object_PlayEffect("hero_0", "ffx_blank")
The first hero should play the blank FX once.

(EDIT: Ninja'ed by M25)
Title: Re: EZScript Comics
Post by: BentonGrey on July 18, 2007, 09:18:10 PM
Thanks guys, this is now working!  On a related note, is there any way to force a mission to end if you fail an encounter, or, on the other hand, force it to end once a certain encounter is completed succesfully?
Title: Re: EZScript Comics
Post by: M25 on July 19, 2007, 06:52:47 AM
To force the mission to end use

Next: End


You can also use

Next: Win

or

Next: Lose

Title: Re: EZScript Comics
Post by: BentonGrey on August 01, 2007, 06:45:24 PM
Thanks M25, I'm slowly but surely working my way through these.  Can anyone here tell me how to add FFX weapons onto a map?
Title: Re: EZScript Comics
Post by: Epimethee on August 02, 2007, 06:46:21 PM
> Can anyone here tell me how to add FFX weapons onto a map?

If you haven't found it already, you can check the Mod-Making: Special Objects page of the FFX manual?
Title: Re: EZScript Comics
Post by: BentonGrey on August 02, 2007, 06:51:29 PM
Ah-ha!  Thanks Em, I went through the manual, but I didn't think to look there....doh!  I knew the answer had to be in there, thanks again!
Title: Re: EZScript Comics
Post by: BentonGrey on August 05, 2007, 09:12:44 PM
Okay, back on Batman, and having another spot of trouble.  I've got a mission where Batman and Robin have to search for clues while assassins hunt them.........or that's what SHOULD happen.  Instead, they spawn in and nothing starts.  Here is the script:

[spoiler]Story: Chasing the Cold

Starting Encounters: Clue, Packing

#------------------------------------------------------------------------
Encounter: Packing
Type: Fight
Minions: league_assassin
Marker: pack1
Next: Packing2

Start Cutscene:
Camera on Minion1
Minion1 turns to Minion2
Minion1 says, "Come on, we need to have these supplies moved before the master arrives at the new location."
Camera on Hero2
Hero2 says, "We'll save you boys a trip!"

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

Encounter: Packing2
Type: Fight
Minions: league_assassin
Marker: pack2
Next: None

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

Encounter: Clue
Type: Examine
Objects: nazihq_secret_plans
Next: Beloved

Alert Cutscene:
Camera on Hero1
Hero1 says, "Hmm...it looks like they are packing up this equipment. Freeze was definitely working on something big...Maybe we can find a clue to their plans.  Keep your eyes peeled for any documents or other leads."

Examine Cutscene:
Camera on Hero1
Hero1 says, "It looks like we were right, Freeze is working for R'as Al Ghul..."
Hero2 turns to Hero1
Camera on Hero2
Hero2 says,"Right, but what is this all about?"
Camera on Hero1
Hero1 says, "What is it always about with R'as? Doomsday..."
Camera on Hero2
Hero2 says, "He's got Mr. Freeze building him some kind of doomsday weapon?"
Camera on Hero1
Hero1 says, "Do you remember that millionare....EXPLAIN"

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

Encounter: Beloved
Type: Interrogation
Villains: talia
Minions: league_assassin

Interrogation Cutscene:
Camera on Hero1
Hero1 moves to Villain1
Hero1 says, "Why Talia..."
[/spoiler]

And here is the error log.  I don't really know what the heck the error on here means, and I don't see anything wrong with my script.

[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 1186372511.199000
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
FFX Mission Plugin 'firehydrant' imported
FFX Mission Plugin 'zombie' imported
Loading freeroam_keepbuildingdamage.py v.1.0.0 build 0; branch = main
FFX Mission Plugin 'freeroam_keepbuildingdamage' imported
FFX Mission Plugin 'm25ai_lowjumper' imported
FFX Mission Plugin 'm25ai_realitymanipulation' imported
FFX Mission Plugin 'cutscene_power' imported
Loading     m25enc_OPENDOOR.py v.1.0.0 build 0; branch = main
FFX Mission Plugin 'm25enc_opendoor' imported
Loading     m25enc_simplechoice.py v.1.0.0 build 0; branch = main
FFX Mission Plugin 'm25enc_simplechoice' imported
Starting Built-In Function Wrapper 1.5
('Object_CalcPrestige', 'js')
>>> C:\Documents and Settings\Owner\Local Settings\Application Data\Irrational Games\Freedom Force vs the 3rd Reich\temp\MiniMod chasingcold.py executed
>>> C:\Documents and Settings\Owner\Local Settings\Application Data\Irrational Games\Freedom Force vs the 3rd Reich\temp\danger.py executed
! GetMapInfo
>>> C:\Documents and Settings\Owner\Local Settings\Application Data\Irrational Games\Freedom Force vs the 3rd Reich\temp\MiniMod chasingcold.py executed
Traceback (innermost last):
  File "C:\Documents and Settings\Owner\Local Settings\Application Data\Irrational Games\Freedom Force vs the 3rd Reich\temp\danger.py", line 10, in OnPostInitMap
    Object_Spawn(ff.targetObject, 'nazihq_temporal_amplifier', targetLocation)
RuntimeError: Object_Spawn(): Could not find positional marker - spawn_target_obj
MLOG_Init(keepRunningModules=0): starting up
mlogreader.MLOG_Init: current mission = 'DS_MP_FRANKENSTEINS_LAB'
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
numberStr=93
storing hero_0: id_1,-93
numberStr=94
storing hero_1: id_2,-94
Traceback (innermost last):
  File "C:\Program Files\Irrational Games\Freedom Force vs The 3rd Reich\.\ffx3\missions\scripts\m25minimod.py", line 136, in OnPostInit
    MiniMod_AddStories(storyfile)
NameError: storyfile
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))
initAttribsForChar: working on hero_0 (batman)
initAttribsForChar (batman): looking at attribute heroic
initAttribsForChar (batman): looking at attribute wall climbing
initAttribsForChar (batman): looking at attribute danger sense
initAttribsForChar (batman): looking at attribute capedcrusader
execInitAttrib: init flier attribute inside ['capedcrusader', 'flier', 'ffqropeswinger', 'disciplined', 'utilitybelt', 'nimble', 'acrobatic', 'grimresolve', 'ffqtracking'] combo
    on hero_0 of template custom_template_93 (batman)
execInitAttrib: init ffqropeswinger attribute inside ['capedcrusader', 'flier', 'ffqropeswinger', 'disciplined', 'utilitybelt', 'nimble', 'acrobatic', 'grimresolve', 'ffqtracking'] combo
    on hero_0 of template custom_template_93 (batman)
execInitAttrib: init disciplined attribute inside ['capedcrusader', 'flier', 'ffqropeswinger', 'disciplined', 'utilitybelt', 'nimble', 'acrobatic', 'grimresolve', 'ffqtracking'] combo
    on hero_0 of template custom_template_93 (batman)
execInitAttrib: init utilitybelt attribute inside ['capedcrusader', 'flier', 'ffqropeswinger', 'disciplined', 'utilitybelt', 'nimble', 'acrobatic', 'grimresolve', 'ffqtracking'] combo
    on hero_0 of template custom_template_93 (batman)
execInitAttrib: init nimble attribute inside ['capedcrusader', 'flier', 'ffqropeswinger', 'disciplined', 'utilitybelt', 'nimble', 'acrobatic', 'grimresolve', 'ffqtracking'] combo
    on hero_0 of template custom_template_93 (batman)
execInitAttrib: init acrobatic attribute inside ['capedcrusader', 'flier', 'ffqropeswinger', 'disciplined', 'utilitybelt', 'nimble', 'acrobatic', 'grimresolve', 'ffqtracking'] combo
    on hero_0 of template custom_template_93 (batman)
execInitAttrib: init grimresolve attribute inside ['capedcrusader', 'flier', 'ffqropeswinger', 'disciplined', 'utilitybelt', 'nimble', 'acrobatic', 'grimresolve', 'ffqtracking'] combo
    on hero_0 of template custom_template_93 (batman)
execInitAttrib: init ffqtracking attribute inside ['capedcrusader', 'flier', 'ffqropeswinger', 'disciplined', 'utilitybelt', 'nimble', 'acrobatic', 'grimresolve', 'ffqtracking'] combo
    on hero_0 of template custom_template_93 (batman)
initAttribsForChar: working on hero_1 (robin)
initAttribsForChar (robin): looking at attribute capedcrusader
execInitAttrib: init flier attribute inside ['capedcrusader', 'flier', 'ffqropeswinger', 'disciplined', 'utilitybelt', 'nimble', 'acrobatic', 'grimresolve', 'ffqtracking'] combo
    on hero_1 of template custom_template_94 (robin)
execInitAttrib: init ffqropeswinger attribute inside ['capedcrusader', 'flier', 'ffqropeswinger', 'disciplined', 'utilitybelt', 'nimble', 'acrobatic', 'grimresolve', 'ffqtracking'] combo
    on hero_1 of template custom_template_94 (robin)
execInitAttrib: init disciplined attribute inside ['capedcrusader', 'flier', 'ffqropeswinger', 'disciplined', 'utilitybelt', 'nimble', 'acrobatic', 'grimresolve', 'ffqtracking'] combo
    on hero_1 of template custom_template_94 (robin)
execInitAttrib: init utilitybelt attribute inside ['capedcrusader', 'flier', 'ffqropeswinger', 'disciplined', 'utilitybelt', 'nimble', 'acrobatic', 'grimresolve', 'ffqtracking'] combo
    on hero_1 of template custom_template_94 (robin)
execInitAttrib: init nimble attribute inside ['capedcrusader', 'flier', 'ffqropeswinger', 'disciplined', 'utilitybelt', 'nimble', 'acrobatic', 'grimresolve', 'ffqtracking'] combo
    on hero_1 of template custom_template_94 (robin)
execInitAttrib: init acrobatic attribute inside ['capedcrusader', 'flier', 'ffqropeswinger', 'disciplined', 'utilitybelt', 'nimble', 'acrobatic', 'grimresolve', 'ffqtracking'] combo
    on hero_1 of template custom_template_94 (robin)
execInitAttrib: init grimresolve attribute inside ['capedcrusader', 'flier', 'ffqropeswinger', 'disciplined', 'utilitybelt', 'nimble', 'acrobatic', 'grimresolve', 'ffqtracking'] combo
    on hero_1 of template custom_template_94 (robin)
execInitAttrib: init ffqtracking attribute inside ['capedcrusader', 'flier', 'ffqropeswinger', 'disciplined', 'utilitybelt', 'nimble', 'acrobatic', 'grimresolve', 'ffqtracking'] combo
    on hero_1 of template custom_template_94 (robin)
initAttribsForChar (robin): looking at attribute wall climbing
initAttribsForChar (robin): looking at attribute nimble
Plugin 'firehydrant' OnPostInit() called
Plugin 'zombie' has no OnPostInit()
Plugin 'freeroam_keepbuildingdamage' OnPostInit() called
Plugin 'm25ai_lowjumper' has no OnPostInit()
Plugin 'm25ai_realitymanipulation' has no OnPostInit()
Plugin 'cutscene_power' has no OnPostInit()
Plugin 'm25enc_opendoor' has no OnPostInit()
Plugin 'm25enc_simplechoice' has no OnPostInit()
2
1
3
2
2
1
3
2
[/spoiler]
Title: Re: EZScript Comics
Post by: M25 on August 05, 2007, 09:45:55 PM
In FFvTTR, you can set a map to spawn a special 'target object' that is used (I think) for multiplayer missions.  Look in the directory of the map you are using... the danger.py file (or one of the py files) on line 10 is an Object_Spawn command.  Comment that line out (put a # in front of it), or delete the file completely and it should work.
Title: Re: EZScript Comics
Post by: BentonGrey on August 06, 2007, 07:12:52 AM
Thanks M25, I figured it was something outside of my script! :)
Title: Re: EZScript Comics
Post by: BentonGrey on August 11, 2007, 07:42:24 PM
Alrighty, well I fixed that issue, and now the spawn error no longer shows up, but the encounters still don't start.  It gives me a report about error storyfile name or something along those lines.  I've double checked the names, everything seems to be in order.  Well, I'll do some more testing and get back with more info.
Title: Re: EZScript Comics
Post by: BentonGrey on August 25, 2007, 05:30:00 PM
Okay, I'm sick of that Batman story for the moment, so I'm working on the Question adventure at the moment.  Things seem to be working well, except the first Alert Cutscene doesn't seem to want to work.  Here's the story, and there's nothing in the script log, not much help:

[spoiler]#--------------------------------------------------

Encounter: Law and Order
Type: Custom
Actions: Villains Can be Interrogated, Villains Attack Innocent Allies, Villains Fight Heroes, Minions Rampage, Allies Remain After Encounter Ends
Villains: thug_with_grenade
Minions: thug_with_bat, thug_with_gun
Allies: howard_slink, civilian_male, civilian_female, civilian_male, civilian_male, civilian_female, civilian_male, civilian_male, civilian_female, civilian_male, civilian_male, civilian_female, civilian_male
Marker: riot1

Alert Cutscene:
Ally1 turns to Ally2
Camera on Ally1
Ally1 says, "I don't know about you, but I'm tired of being afraid to set foot on the street at night!  I'm tired of living in fear!  I'm tired of letting criminals run this town!  I'm not going to take it any more, are you?!"
Ally2 says, "No!"
Ally3 says, "No!"
Ally4 says, "What are you gonna' do about it?"
Ally1 says, "If elected mayor, I swear to you that I will clean up this town, I'll take back our fair Hub city from the thugs, from the racketeers, from the criminals of all classes!"
Camera on Villain1
Villain1 moves to riot1
Minion1 moves to riot1
Minion2 moves to riot1
Minion3 moves to riot1
Minion4 moves to riot1
Camera on Hero1
Hero1 says, "Hmm...doesn't look like those fellows are just concerned citizens. What are they up to? That is the Question! Need to investigate..."

Start Cutscene:
Camera on Ally1
Ally1 says, "Together we can take back our city, together we can bring about a new age for all law-abidding citizens!"
Camera on Villain1
Villain1 says, "What about 'does of us 'dat don't like 'da law? We heard enough of your preachin' fancy pants, and it's time someone put you in your place. Get 'im boys, show 'dem who runs 'dis city!"
Camera on Hero1
Hero1 says, "Time for you boys to answer to the Question!"

Interrogation Cutscene:
Cinematic camera on Hero1 to Villain1
Hero1 turns to Villain1
Hero1 says, "Time for answers...who put you up to this?"
Villain1 says, "Wha..what makes ya' think anybody did? 'Dis was all jus' business..."
Hero1 says, "No. You're not real criminals, not professional, just scum. Who put you up to this...I won't ask again..."
Hero1 plays animation ranged
Villain1 says, "Alright, alright! I don't know nuthin', but the warlord, he toll' me to come down here with some 'da boys and rough 'dis guy up, 'dats all I know, honest!"
Hero1 says, "A gang threatening a politician...odd...need more information. Where is this 'warlord?'"
Villain1 says, "You can find him at the 'ol night club, 'dats where we meet."
Hero1 says, "Thanks for the directions, now you wait here until the police pick you up, or I'll be back..."[/spoiler]
Title: Re: EZScript Comics
Post by: BentonGrey on August 28, 2007, 09:48:15 AM
Eureka!  I figured it out, I was calling for FOUR minions to move, when there were only THREE spawning....d'oh!  It's all fixed up now, and it plays like a charm!
Title: Re: EZScript Comics
Post by: BentonGrey on September 09, 2007, 07:51:54 PM
Alright, I've repaired two of the five broken Batman missions, but the first one has got me completely stumped.  The script.log shows nothing, no error messages.  The mission starts, but nothing spawns or initializes.  This worked perfectly last time I played it, without a single hitch.  Can anyone tell me what is wrong with it?

[spoiler]Story: Fowl Play

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

Encounter: Drop In
Type: Interrogation
Villains: lenny_weasel
Marker: oprea1

Alert Cutscene:
Set lighting to night
Red arrow on lenny_weasel
Camera on Hero1
Hero1 says, "Hmm, I know that punk, he's part of the Fowl Feathers Gang, and if he's showing his faces on my streets, the Penguin must be up to his old tricks..."

Start Cutscene:
Camera on lenny_weasel
lenny_weasel turns to Hero1
lenny_weasel says, "Holy...it's da' Bat!  The boss ain't gonna' like this!"
Camera on Hero1
Hero1 turns to lenny_weasel
Hero1 says, "You can make this easy on yourself, I only have one question..."
Hero1 plays animation idle_1
Hero1 says, "Where's the Penguin?"
lenny_weasel says, "Forget it gruesome, I ain't no squeeler!"

Interrogation Cutscene:
Camera on Hero1
Hero1 turns to lenny_weasel
Hero1 says, "Alright scum, talk.  What's your boss up to?"
lenny_weasel turns to Hero1
lenny_weasel says, "I can't, I can't, the Penguin will.."
Hero1 says, "You need to ask yourself, should you be more afraid of him...or of me?"
Hero1 plays animation ranged
lenny_weasel says, "Okay, okay, I'll talk....the boss said somethin' about meetin' him for a job in a few minutes." 
lenny_weasel says, "Uhh, we're supposed to hit the Gotham Museum.  I promise, that's all I know!"
Hero1 plays animation ranged
Hero1 says, "That's all I wanted to know...now I'd better not see you on my streets again, punk."

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

Encounter: Big Bird
Type: Custom
Actions: villains fight heroes, villains can be interrogated, rivals fight villains
Villains: penguin, fowl_feathers_gang, fowl_feathers_gang2, fowl_feathers_gang, fowl_feathers_gang, fowl_feathers_gang2, fowl_feathers_gang, fowl_feathers_gang, fowl_feathers_gang2, fowl_feathers_gang, fowl_feathers_gang, fowl_feathers_gang2, fowl_feathers_gang
Rivals: mrfreeze, freeze_lackey, freeze_lackey, freeze_lackey, freeze_lackey, freeze_lackey, freeze_lackey, freeze_lackey
Marker: museum1

Alert Cutscene:
Fade for 2 seconds
Rival1 teleports to freeze1
Rival2 teleports to freeze1
Rival3 teleports to freeze1
Rival4 teleports to freeze1
Rival5 teleports to freeze1
Rival6 teleports to freeze1
Rival7 teleports to freeze1
Rival8 teleports to freeze1
Unfade for 2 seconds
Red arrow on Villain1


Start Cutscene:
Remove arrow from Villain1
Camera on Villain1
Villain1 turns to Villain2
Villain1 plays animation melee
Villain1 says, "Faster you poultrons, that curs-ed caped crusader loves to prowl the streets at this time of night!"
Villain2 turns to Villain1
Villain2 says, "I don't get it boss, why are we stealing this here diamond and not any of the other loot?"
Villain1 says, "Aside from an asthetic value that a pea-brain like yours couldn't hope to comprehend, this particular piece of antiquity is worth a considerable fortune!"
Villain2 says, "Oh, okay then boss, what are we waiting for?"
Villain1 plays animation pain
Villain1 says, "That's what I'd like to know you pack of neolithic neanderthals, get on with it!"
Camera on Hero1
Hero1 turns to Villain1
Hero1 says, "Hold it Penguin!  You just earned a one-way trip back to Stonegate Prison!"
Camera on Villain1
Villain1 turns to Hero1
Villain1 says, "Drat your timing Batman, but you haven't caught us yet!  Discretion is the better part of valour my fine feathered friends!"
Villain2 turns to Villain1
Villain2 says, "What's 'dat mean boss?"
Villain1 turns to Villain2
Villain1 says, "It means run you insufferable low-brow!"

Interrogation Cutscene:
Fade for 2 seconds
Hero1 teleports to museum1
Villain1 teleports to museum1
Cinematic camera on Villain1 to Hero1
Hero1 turns to Villain1
Rival1 teleports to freeze3
Rival2 teleports to freeze2
Rival3 teleports to freeze2
Rival4 teleports to freeze2
Rival5 teleports to freeze2
Rival6 teleports to freeze2
Rival7 teleports to freeze2
Rival8 teleports to freeze2
Rival1 moves to Hero1
Rival2 moves to Hero1
Rival3 moves to Hero1
Rival4 moves to Hero1
Rival5 moves to Hero1
Rival6 moves to Hero1
Rival7 moves to Hero1
Rival8 moves to Hero1
Unfade for 5 seconds
Hero1 says, "I hope you enjoy your time at Stonegate, Penguin, you're going to be there for a very long time."
Villain1 says, "Cage me up again like a canary if you like Batman, but you know I'll be back soon..."
Rival1 turns to Villain1
Rival1 says, "Everyone freeze!"
Villain1 turns to Rival1
Hero1 turns to Rival1
Cinematic camera on Rival1 to Villain1
Rival1 says, "Penguin, I believe you have something I want..."
penguin plays animation melee
penguin says, "Back off you petulant icicle, this is my robbery!"
Rival1 says, "It was your robbery..."
Rival1 uses power freeze freeze ray on Villain1

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

Encounter: The End
Type: Cutscene
Villains: mrfreeze

Start Cutscene:
Fade for 3 seconds
Villain1 teleports to Hero1
Unfade for 3 seconds
Cinematic Camera on Hero1 to Villain1
Villain1 turns to Hero1
Hero1 turns to Villain1
Villain1 says, "Well fought Batman, but a colder head prevailed."
Hero1 says, "Freeze, wait!  Why are you doing this?"
Villain1 says, "We must all obey our hearts Batman.  My heart is cold, but not dead...not yet.  I will do what I must...but I've said to much!"
Villain1 uses power freeze freeze ray on Hero1
Villain1 moves to freeze1
Fade for 2 seconds
[/spoiler]
Title: Re: EZScript Comics
Post by: M25 on September 10, 2007, 03:09:50 PM
If you haven't made any changes to the story since you last played it, then you've likely made changes to the map and/or the .dat files, or maybe you're playing it on a different map.

Make sure the map you are using has a marker called oprea1 or oprea on it and make sure a character called lenny_weasel exists in the .dat files.   (Do you mean opera instead of oprea?)

Title: Re: EZScript Comics
Post by: BentonGrey on September 10, 2007, 03:15:45 PM
Thanks for the response M25.  I'm afraid that I've checked all of those things already.  Perhaps I changed something without realizing it, but I certainly can't figure it out.  I checked over the map, it's got everything it needs.  I also checked on the template and character entires, and they are all solid.  Ahh, well, maybe when this is released someone would be willing to give this a closer look.
Title: Re: EZScript Comics
Post by: BentonGrey on September 10, 2007, 09:03:14 PM
Also, can one of y'all give me an example of how the whole win/lose thing works?  Say I've got this encounter:

Encounter: Grab
Type: Snatch
Villains: thug_with_gun, thug_with_bat
Allies: civilian_female

How would I go about setting it up so that if they get away with the item, you lose the mission, but if you recover the item, you win?

Do you do something with the cutscene?

Item Lost Custscene:
Lose

Item Returned Cutscene:
Win

Or what?
Title: Re: EZScript Comics
Post by: lmalonsof on September 11, 2007, 01:40:09 AM
For more specific things as you want to do, I'd use actions instead of standard encounters. They give you more control.

Something like this:

-------------------------
Encounter: Benton's_snatch
Type: Custom
Actions: Villains Fight Heroes, Item Exists, Item is Invulnerable, Villains Start With Item, Heroes Pickup Item, Heroes Return Item To Allies, Villains Want Item, Villains Flee
Villains: thug_with_gun, thug_with_bat
Allies: civilian_female
Item: ger_crate
Next: If All escaped: End2
Next: If Item returned: Next_encounter
---------------------------

In this encounter, a pair of thugs are fleeing from a snatch. You must knock them out, pickup the item they'll drop and then return it to the civilian female. I don't know if it'll work as it's written here, but I think it may give you the idea. If they get away with the item, the next encounter will be End2. If you recover the item and you can give it to civilian_female, it'll go to another encounter.

You may also include 'Villains fight allies' if you want them to fight the civilian_female, but if you do so you must change the ending conditions because the ally could be ko and you couldn't return her the item.

P.S.: End2 should be a cutscene encounter with the heroes saying something like 'Oh, no! The mission is lost!' (or something more imaginative) with a 'Next: End'
Title: Re: EZScript Comics
Post by: M25 on September 11, 2007, 09:28:20 AM
Quote from: BentonGrey on September 10, 2007, 09:03:14 PM
Also, can one of y'all give me an example of how the whole win/lose thing works?  Say I've got this encounter:

Encounter: Grab
Type: Snatch
Villains: thug_with_gun, thug_with_bat
Allies: civilian_female

How would I go about setting it up so that if they get away with the item, you lose the mission, but if you recover the item, you win?

Do you do something with the cutscene?

Item Lost Custscene:
Lose

Item Returned Cutscene:
Win

Or what?


You can choose to immediately win or lose a mission from the Next: section of the encounter.   Next: works on the end conditions (not the cutscenes), so you'd put them there.

For Snatch, it has three end conditions:  Item Lost, Item Recovered, and End.

If you want to lose the mission if the villains get away with the item, then use Item Lost

Next: If Item Lost: Lose

If you want to win the mission if the hero stops the villains, then use Item Recovered

Next: If Item Recovered: Win


If you want to win the mission no matter what happens, use End

Next: If End: Win


Of course, you can also use the more fine-grained actions as Imalonsof suggests, but you have to be careful to look up which end conditions are available based on which actions you use.



Also remember, that if EZscript reaches the end of your story file, it will automatically win the mission.
Title: Re: EZScript Comics
Post by: BentonGrey on September 11, 2007, 09:36:45 AM
Thanks guys, that's a big help.  I should be able to refine several of my stories now.
Title: Re: EZScript Comics
Post by: M25 on September 11, 2007, 09:47:06 AM
I should also mention that you can, and should, have multiple Next: lines in the same encounter if you are using the If notation.


Encounter: One
Next: If Item Recovered: Win
Next: If Item Lost: Lose


or you could have:

Encounter: One
Next: If Item Recovered: Talk to the Police
Next: If Item Lost: Track Down the Villains

Encounter: Talk to the Police
...

Encounter: Track Down the Villains
...
Title: Re: EZScript Comics
Post by: BentonGrey on September 12, 2007, 01:39:54 PM
Thanks M25!  I can use all the help I can get ;)

I've been working on a work-in-progress Green Arrow mission, and the primary cutscene doesn't seem to want to play.  Here's the script as it stands:

[spoiler]# Heroes: Green Arrow and Black Canary
# Map: Green Arrow - StarCity Downtown

Story: garrow_vertigo

Starting Encounters: Vertigo, Mugging, Purse, Vandalism

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

Encounter: Vertigo
Type: Interrogation
Villains: count_vertigo, thug_with_gun, thug_with_grenade, thug_with_gun
Minions: thug_with_bat, thug_with_gun
Allies: civilian_male
Marker: jewel1
Next: End

Alert Cutscene:
Set Lighting to night
Camera on Hero1
Hero1 turns to Hero2
Hero1 moves to Hero2
Hero1 says, "Well, hello there beautiful, you going my way?"
Hero2 turns to Hero1
Hero2 says, "I don't know Robin Hood, what did you have in mind?!"
Hero1 says, "You know, the city can be lovely in the moonlight, I thought we'd take in the sights, thrash a few thugs, the sky is the limit!"
Hero2 plays animation pain
Hero2 says, "Well, some girls get wined and dined, I get an invitation to engage in vigilante justice.....aren't I lucky!"
Hero1 says, "You know it pretty bird."

Start Cutscene:
Camera on Villain1
Villain1 says, "Zhey are mine, zhey are my birthright, and I shall not be denied!"
Ally1 says, "Alright, alright, no need to get violent, take anything you want, just don't hurt me. I'm just a business man!"
Villain1 says, "I do not want zhese cheap baubles, I want what is mine, zhe Vertigo family jewels, your collection is nearly the end of my search!"
Ally1 says, "But those aren't even the best of my selection, why them?"
Villain1 says, "Does it really matter little man? Be glad I am leaving you with most of your precious little treasures."
Hero1 moves to Villain1
Hero1 says, "Whoa, what's going on here pal?"
Villain1 turns to Hero1
Villain1 says, "I have no time for fools in costumes, I shall have what is mine, and those who stand in my way will feel the terror...of Vertigo!"

Interrogation Cutscene:
Fade for 2 seconds
Hero1 moves to Villain1
Cinematic camera on Hero1 to Villain1
Unfade for 2 seconds
Hero1 turns to Villain1
Hero1 says, "Now, you finally want to tell me what this is all about?"
Villain1 says, "I am Count Werner Vertigo, zhe rightful ruler of Vlatava...My family was forced from zheir lands by ze Soviets vhen zhey invaded..."
Villain1 says, "To escape zhe Communists, zhey had no choice but to sell zhe family jewels. I have spent zhe last two years of my life tracing zhem all across zhe globe, and now zhat I have found zhem, zhe plebians who own zhis 'museum' refuse to surrender zhem to me."
Hero1 plays animation pain
Hero1 says, "So you decided to destroy the building? Look pal, you may not agree with these guys, but you can't go around knocking buildings down in my town!"
Villain1 says, "I am sorry, I don't know vhat came over me....how can I make zhis up to you?  Perhaps if...."
Play Effect effect_ffx_telepathy at Villain1
Fade for 3 seconds

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

Encounter: Mugging
Type: Save Civilian
Villains: thug_with_gun, thug_with_bat, thug_with_gun
Allies: civilian_male, civilian_female
Minions: thug_with_bat

Start Cutscene:
Camera on Villain1
Villain1 turns to Ally1
Villain1 says, "Alright, hand over everything ya' got, and you better not hold 'nothing back!"
Ally1 turns to Villain1
Ally1 says, "W-whatever you say mister, just don't hurt us, alright?"
Ally2 turns to Ally1
Ally2 says, "Jeffery, aren't you going to do something!?"
Ally1 turns to Ally2
Ally1 says, "Yes Gladice, there are several men with guns here, and I'm going to 'do' exactly what they say..."
Villain1 says, "Heh, you gots you a smart man there baby doll."
Camera on Hero1
Hero1 says, "Hello boys, nice night for a concussion, don't you think? How about you boys put down your pop guns and no one will have to go nighty-night just yet?"
Camera on Villain1
Villain1 turns to Hero1
Villain1 says, "Or what, Errol Flynn, you'll call in Little John and the Merry Men?"
Camera on Hero2
Hero2 turns to Villain1
Hero2 says, "Ohh, you really shouldn't do the Robin Hood jokes, they just amke him mad..."

Ally Thanks Hero Cutscene:
Cinematic camera on Hero1 to Ally1
Hero1 turns to Ally1
Ally1 turns to Hero1
Ally1 says, "Thank you sir, I am in your debt."
Ally2 moves to Ally1
Ally2 says, "Don't be a cheapskate Jeffery, give the man a nice tip."
Camera on Hero2
Hero2 says, "Tip?"
Camera on Hero1
Hero1 says, "That's uh...that's not really necessary folks, this isn't that kind of service...just try and be  more careful in the future!"

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

Encounter: Purse
Type: Flee the Scene
Villains: thug_with_gun
Allies: civilian_female

Start Cutscene:
Camera on Villain1
Villain1 turns to Ally1
Ally1 turns to Villain1
Villain1 says, "Gimme' the bag lady!"
Villain1 plays animation melee
Ally1 plays animation pain
Ally1 says, "Help, my purse!"

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

Encounter: Vandalism
Type: Building Rampage
Villains: thug_with_bombs, thug_with_bombs, thug_with_bombs, thug_with_bombs, thug_with_gun
Minions: thug_with_gun
Marker: build1

Start Cutscene:
Camera on Villain1
Villain1 says, "Well, well, well, it looks like Luigi didn't pay up for this month boys."
Villain2 says, "Yeah Johnny, it looks like we're gonna' hafta' give him a little motivation..."
Villain1 says, "Burn it down boys!"
Hero1 says, "Geez, these guys don't mess around, we'd better take them out fast, before they reduce this block to ash!"
[/spoiler]

As near as I can tell, the other encounters are starting, so it seems that the problem is with the first one. 

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 1189629572.078000
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
FFX Mission Plugin 'firehydrant' imported
FFX Mission Plugin 'zombie' imported
Loading freeroam_keepbuildingdamage.py v.1.0.0 build 0; branch = main
FFX Mission Plugin 'freeroam_keepbuildingdamage' imported
FFX Mission Plugin 'm25ai_lowjumper' imported
FFX Mission Plugin 'm25ai_realitymanipulation' imported
FFX Mission Plugin 'cutscene_power' imported
Loading     m25enc_OPENDOOR.py v.1.0.0 build 0; branch = main
FFX Mission Plugin 'm25enc_opendoor' imported
Loading     m25enc_simplechoice.py v.1.0.0 build 0; branch = main
FFX Mission Plugin 'm25enc_simplechoice' imported
Starting Built-In Function Wrapper 1.5
('Object_CalcPrestige', 'js')
>>> C:\Documents and Settings\Owner\Local Settings\Application Data\Irrational Games\Freedom Force vs the 3rd Reich\temp\MiniMod garrow_vertigo.py executed
>>> C:\Documents and Settings\Owner\Local Settings\Application Data\Irrational Games\Freedom Force vs the 3rd Reich\temp\danger.py executed
! GetMapInfo
>>> C:\Documents and Settings\Owner\Local Settings\Application Data\Irrational Games\Freedom Force vs the 3rd Reich\temp\MiniMod garrow_vertigo.py executed
MLOG_Init(keepRunningModules=0): starting up
mlogreader.MLOG_Init: current mission = 'COPY OF 04_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
numberStr=93
storing hero_0: id_1,-93
numberStr=94
storing hero_1: id_2,-94
ff.DoEncCustom(3,villains = ['thug_with_bombs', 'thug_with_bombs', 'thug_with_bombs', 'thug_with_bombs', 'thug_with_gun'], minions = ['thug_with_gun'], cutscenes = [['startcs', [['priority', 1], ['replace', ['villain1', 'villain'], ['villain2', 'villain'], ['hero1', 'hero']], ['cutscene', 'CS_Start()', "CS_Camera('villain1', dist=-160, yaw=0)", 'CS_Speak(\'villain1\', "Well, well, well, it looks like Luigi didn\'t pay up for this month boys.", force=0)', 'CS_Speak(\'villain2\', "Yeah Johnny, it looks like we\'re gonna\' hafta\' give him a little motivation...", force=0)', "CS_Speak('villain1', 'Burn it down boys!', force=0)", 'CS_Speak(\'hero1\', "Geez, these guys don\'t mess around, we\'d better take them out fast, before they reduce this block to ash!", force=0)', 'CS_End()']]]], marker = 'build1', actions="villains fight heroes, villains and minions attack buildings",return_function="StorylineEncounterReturn")
Traceback (innermost last):
  File "C:\Program Files\Irrational Games\Freedom Force vs The 3rd Reich\.\ffx3\missions\scripts\m25minimod.py", line 137, in OnPostInit
    m25story.DoStoryline()
  File "C:\Program Files\Irrational Games\Freedom Force vs The 3rd Reich\.\ffx3\missions\scripts\m25story.py", line 244, in DoStoryline
    DoStorylineState(story,enc)
  File "C:\Program Files\Irrational Games\Freedom Force vs The 3rd Reich\.\ffx3\missions\scripts\m25story.py", line 293, in DoStorylineState
    if not StorySetupEncounter(enc_id,story,state,a):
  File "C:\Program Files\Irrational Games\Freedom Force vs The 3rd Reich\.\ffx3\missions\scripts\m25story.py", line 383, 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\.\ffx3\missions\scripts\m25enc.py", line 4193, in DoEncCustom
    return SetupEncounter(enc_id, encounter)
  File "C:\Program Files\Irrational Games\Freedom Force vs The 3rd Reich\.\ffx3\missions\scripts\m25enc.py", line 1342, 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\.\ffx3\missions\scripts\m25enc.py", line 1408, 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\.\ffx3\missions\scripts\m25enc.py", line 388, in EncSpawnGroup
    Enc_SetCharEnc(s,enc_id) #make sure we are able to find out which encounter this is a part of
  File "C:\Program Files\Irrational Games\Freedom Force vs The 3rd Reich\.\ffx3\missions\scripts\m25enc.py", line 655, in Enc_SetCharEnc
    js.Object_SetAttr(char, '_enc_id', enc_id)
SystemError: NULL result without error in call_object
initialising FFQ_initialiseExtras()
FFX_UpdateSun: getting default sun
FFX_UpdateSun: setting = (-140.0, 70.0, 1.0, 0.800000011921, (0.699999988079, 0.600000023842, 0.600000023842))
initAttribsForChar: working on hero_0 (green_arrow)
initAttribsForChar (green_arrow): looking at attribute crack shot
initAttribsForChar (green_arrow): looking at attribute grim resolve
initAttribsForChar (green_arrow): looking at attribute hot tempered
initAttribsForChar (green_arrow): looking at attribute acrobatic
execInitAttrib: init acrobatic attribute
    on hero_0 of template custom_template_93 (green_arrow)
initAttribsForChar (green_arrow): looking at attribute battery
execInitAttrib: init battery attribute
    on hero_0 of template custom_template_93 (green_arrow)
initAttribsForChar: working on hero_1 (black_canary)
initAttribsForChar (black_canary): looking at attribute acrobatic
execInitAttrib: init acrobatic attribute
    on hero_1 of template custom_template_94 (black_canary)
initAttribsForChar (black_canary): looking at attribute beautiful
initAttribsForChar (black_canary): looking at attribute nimble
initAttribsForChar (black_canary): looking at attribute disciplined
initAttribsForChar: working on m25obj_2 (thug_with_gun)
initAttribsForChar (thug_with_gun): looking at attribute timid
initAttribsForChar (thug_with_gun): looking at attribute weak minded
initAttribsForChar: working on m25obj_6 (thug_with_bat)
initAttribsForChar (thug_with_bat): looking at attribute timid
initAttribsForChar (thug_with_bat): looking at attribute weak minded
initAttribsForChar: working on m25obj_8 (thug_with_bat)
initAttribsForChar (thug_with_bat): looking at attribute timid
initAttribsForChar (thug_with_bat): looking at attribute weak minded
initAttribsForChar: working on m25obj_14 (thug_with_gun)
initAttribsForChar (thug_with_gun): looking at attribute timid
initAttribsForChar (thug_with_gun): looking at attribute weak minded
initAttribsForChar: working on m25obj_4 (iris_west)
initAttribsForChar: working on m25obj_10 (thug_with_bat)
initAttribsForChar (thug_with_bat): looking at attribute timid
initAttribsForChar (thug_with_bat): looking at attribute weak minded
initAttribsForChar: working on m25obj_16 (thug_with_bat)
initAttribsForChar (thug_with_bat): looking at attribute timid
initAttribsForChar (thug_with_bat): looking at attribute weak minded
initAttribsForChar: working on m25obj_20 (astronaut)
initAttribsForChar: working on m25obj_22 (iris_west)
initAttribsForChar: working on m25obj_12 (thug_with_bat)
initAttribsForChar (thug_with_bat): looking at attribute timid
initAttribsForChar (thug_with_bat): looking at attribute weak minded
initAttribsForChar: working on m25obj_18 (thug_with_gun)
initAttribsForChar (thug_with_gun): looking at attribute timid
initAttribsForChar (thug_with_gun): looking at attribute weak minded
initAttribsForChar: working on m25obj_24 (thug_with_gun)
initAttribsForChar (thug_with_gun): looking at attribute timid
initAttribsForChar (thug_with_gun): looking at attribute weak minded
initAttribsForChar: working on m25obj_28 (thug_with_gun)
initAttribsForChar (thug_with_gun): looking at attribute timid
initAttribsForChar (thug_with_gun): looking at attribute weak minded
initAttribsForChar: working on m25obj_30 (thug_with_gun)
initAttribsForChar (thug_with_gun): looking at attribute timid
initAttribsForChar (thug_with_gun): looking at attribute weak minded
initAttribsForChar: working on m25obj_26 (thug_with_gun)
initAttribsForChar (thug_with_gun): looking at attribute timid
initAttribsForChar (thug_with_gun): looking at attribute weak minded
initAttribsForChar: working on m25obj_40 (thug_with_gun)
initAttribsForChar (thug_with_gun): looking at attribute timid
initAttribsForChar (thug_with_gun): looking at attribute weak minded
Plugin 'firehydrant' OnPostInit() called
Plugin 'zombie' has no OnPostInit()
Plugin 'freeroam_keepbuildingdamage' OnPostInit() called
Plugin 'm25ai_lowjumper' has no OnPostInit()
Plugin 'm25ai_realitymanipulation' has no OnPostInit()
Plugin 'cutscene_power' has no OnPostInit()
Plugin 'm25enc_opendoor' has no OnPostInit()
Plugin 'm25enc_simplechoice' has no OnPostInit()
[/spoiler]
Title: Re: EZScript Comics
Post by: M25 on September 13, 2007, 08:46:20 AM
EZ script is having trouble spawning the characters for one of the encounters.

In the Vandalism encounter, check to make sure you have a template called thug_with_bombs.  Perhaps you mean thug_with_grenade.

Title: Re: EZScript Comics
Post by: BentonGrey on September 13, 2007, 04:35:33 PM
D'oh!  Yeah, that's what I get for naming characters from memory.  Thanks M!  I'll fix that and see if it runs.
Title: Re: EZScript Comics
Post by: BentonGrey on September 13, 2007, 09:54:24 PM
Okay so........you know how Batman#1 just "started" acting funny, all of a sudden?  Well......I figured out why.  It's because there is no OPREA1, but there is an OPERA1........I'm an idiot.  Well, Green Arrow1 and Batman1-4 all seem to be working.  Thanks guys!

I've got a question though.  I have a recurring issue that's not by any means hurting my gameplay, but is a bit annoying none the less.  Often, when I play a mission, the characters will speak in opposite order than I want them to.  For example, the script looks like this:

Hero1 says, "blah blah blah"
Hero2 says, "extra blah"

But what happens is, Batman is in slot one, Robin in slot two, and we get this:

Robin says, "blah blah blah"
Batman says, "extra blah"

It's a little creepy when Catwoman starts flirting with Robin, or when Black Canary starts calling Green Arrow "Pretty Bird." 

What causes this?  What's REALLY weird is, it will do this, then the next time I run the game, I'll switch the character's places to adjust, and the game will still give them the same lines as before!
Title: Re: EZScript Comics
Post by: M25 on September 14, 2007, 09:58:52 AM
The game doesn't provide a guarantee that the heroes are stored internally in the same order that you choose them, and EZscript just works with what the game gives it.

*Edit: removed the first way of doing this, as it was incorrect.*


You can use a more complicated form of the 'says' statement.

Hero1 says, if Hero1 is minute_man, "I am Minute Man."     <- only for minute_man
    if Hero1 is liberty_lad, "I am Liberty Lad."                    <- only for liberty_lad
    "I am some generic hero."                                        <- for everyone else
Hero2 says, "Good to meet you."

In other words, you can test to see if the Hero/Villain/whatever is the character you are looking for (if Hero1 is minute_man) and have them say a specific line, and then provide a generic line if they aren't the character you are looking for.

Title: Re: EZScript Comics
Post by: BentonGrey on September 15, 2007, 07:28:59 AM
Thanks M!  That will be a big help, and I can even get fancy with it if I have the energy. ^_^
Title: Re: EZScript Comics
Post by: BentonGrey on September 15, 2007, 04:18:33 PM
Alrighty, I'm putting together my patchwork campaign, starting with my Batman missions.  Now, I'm working on the base sceens specifically.  I've figured out most of the snags I've hit so far, but here's one that's keeping me stumped.  I've got my intermission to play fine, but the briefing won't play.  Here's the way it looks.

[spoiler]#--------------------------------------
#
#  Sample Base cutscenes for EZ script
#
#--------------------------------------


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: batcomputer1

Start Cutscene:
Camera on batman
batman says, "that's right, the Puffin diamond was worth a few million, but that's hardly enough to bring freeze out of hiding and into conflict with other members of the underworld..."
robin turns to batman
robin says, "hmm...it doesn't seem to make much sense batman, but what was it he said to you again?"
batman turns to robin
batman says, "my heart is cold, but not dead," but in the past he's always said that his emotions were frozen.
robin says, "well, maybe he's found something else to care about. maybe something 'warmed' his heart up. ha! you don't suppose ol' blue-in-the-face has found himself a girl?"
batman says, "a girl, robin? i wonder..."
Narrator says, "ALERT!"



#
# 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

Start Cutscene:
Cinematic camera on robin to batman
commissioner_gordon says, "batman? we've just received a message from the riddler, apparently he's holding the board of executives of the gotham games corporation hostage. he's demanding that they start producing a 'riddler' line of boardgames! i've got my men spread out all over town, but we can't find any trace of this maniac."
batman says, "has his usual riddle arrived yet?"
commissioner_gordon says, "yes, we recieved it just a few minutes ago. it reads, 'look for me where gotham's flowers bloom in summer, sleep in winter, and the vines are always green.'"
batman says, "Thank you Commissioner, we'll see what we can do."
comissioner_gorddon says, "We'll keep working it on our end, good luck!"
batman turns to robin
batman says, "Hmm...summer flowers blooming..."
robin says, "Well, we've got that big flower show at the Gotham Greenhouse, Babs has been trying to get me to take her all week."
batman says, "Yes, but in a greenhouse the flowers bloom year-round...and what about the 'vines?'
robin says, "I've got it! Gotham park, there's a flower garden in the center of the old maze, along with a gazebo covered in ivy!"
batman says, "Good job Robin, you head to the park, I'm going to follow up a hunch about freeze...watch yourself!"

[/spoiler]

Gordon is not actually in the base map, but as I understand EZScript, he's supposed to be able to speak anyway.
Title: Re: EZScript Comics
Post by: M25 on September 15, 2007, 08:46:17 PM
If you don't specify the marker for an encounter, it will use the default 'encounter1' marker.  If you don't have an encounter1 marker on your map, the encounter won't play.

You can just add the
Marker: batcomputer1

line to the briefing cutscene.
Title: Re: EZScript Comics
Post by: BentonGrey on September 15, 2007, 09:14:31 PM
D'oh, thanks M, that is the problem, I'm sure. 
Title: Re: EZScript Comics
Post by: BentonGrey on September 17, 2007, 01:35:45 PM
Okay.......this is weird.  I'm working on my first Brave and the Bold mission, and I've got something I've never seen before.  Here's what's SUPPOSED to be happening.  I spawn to 'allies,' the heroes in their civilian identities, who are meeting in a cutscene that plays before everything else.  They have a dialogue, hear a cry for help, and run off.  Now, the camera fades out, and opens back up on the actual heroes (spawned on the other side of the map by the skirmishspawn marker), who then proceed to kick some butt.  However, what is ACTUALLY happening is, the cutscene starts, Ray turns to Carter, says his first line of dialogue or so, and then they both disappear!  I don't have a clue where they go, and, more importantly, I don't know WHY they go.

Here's the script:

[spoiler]# Heroes: Hawkman and the Atom
# Map: Braveandbold1

Story: braveandbold1

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

Encounter: Intro
Type: Cutscene
Allies: ray_palmer, carter_hall
Marker: beach1

Alert Cutscene:
Camera on square1
Fade for 1 seconds
Wait for 2 seconds
Camera on Ally1
Unfade for 3 seconds
Ally1 turns to Ally2
ray_palmer says, "This was a great idea Carter, I needed to get out of that lab and into the fresh air."
Ally2 turns to Ally1
Ally2 says, "Well, the air doesn't get much fresher than here on the sea. It even more beautiful than the coasts of my own world."
Ally1 says, "I hope the girls are having a good time in the city, it's a shame we didn't bring them with us."
Ally2 says, "Don't kid yourself Ray, they're having a blast, just like us! Now, what exactly is this 'fishing' you were telling me about..."
Ally1 says, "Well, let's get one of these boats and I'll show y-..."
Ally1 says, "Wait, do you see those guys over by the market?"
Ally2 says, "Hmm, they don't look like tourists to me, and I'm guessing those bats aren't for a friendly game."
Ally1 says, "Yeah, my thoughts exactly, looks like the fishing is going to have to wait. Let's run back to our rooms and get into costume."
Ally2 says, "Way ahead of you Ray, let's go!"
Ally1 moves to market1
Ally2 moves to market1
Fade for 3 seconds
Unfade for 3 seconds

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

Encounter: tough1
Type: Save Civilian
Villains: thug_with_bat, thug_with_bat, thug_with_bat, thug_with_bat, thug_with_bat
Allies: shop_owner, shop_owner, shop_owner, civilian_male, civilian_female
Marker: market1
Next: If Ally Lost: Lose
Next: If Ally Survives: tough2

Alert Cutscene:
Camera on Hero1
the_atom says, "Alright, now let's see what's going on!"
Camera on Villain1
Villain1 says, "You were warned pal, and now you're going to pay the price!!"
Ally1 says, "No, our shops are all we have, please! Help!"

Start Cutscene:
Camera on Hero2
hawkman says, "Let those people go, or you'll be picking your teeth out of the sand!"
Camera on Villain1
Villain1 turns to Hero2
Villain1 says, "Superheroes! Where'd they come from? This wasn't part of the plan!"
Villain2 turns to Hero2
Villain2 says, "It doesn't matter, we've got a job to do, take 'em out!"

Ally Thanks Hero Cutscene:
Hero2 moves to Ally1
Camera on Hero2
Hero2 says, "What were those punks after?"
Ally1 says, "They have been hanging around town for the last few weeks, pushing people around, causing trouble, but recently they started making threats..."
Hero2 says, "What kind of threats?"
Ally1 says, "Well, they wanted us to sell our shops, move out of town, and they said that if we didn't sell, they'd 'we'd wish we had,' and they tried to make good on their threats!"
Hero2 says, "Ha, they'll think twice before trying anything like this again."
Ally1 says, "I don't know, they've been threating people all over town, it may not be over yet...."
Hero1 turns to Hero2
Camera on Hero1
Hero1 says, "He's not kidding, look over at the plaza!"

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

Encounter: tough2
Type: Save Civilian
Villains: thug_with_bat, thug_with_bat, thug_with_gun, thug_with_gun, thug_with_grenade
Allies: shop_owner, shop_owner, civilian_male, civilian_female, civilian_male, civilian_female, civilian_female
Marker: square1
Next: If Ally Lost: Lose
Next: If Ally Survives: tough3

Alert Cutscene:
Camera on Hero1
the_atom says, "Come on, the square is full of innocent people!"
Camera on Hero2
Hero2 says, "I'm right with you little one!"
Camera on Villain1
Villain1 turns to Ally1
Villain1 says, "We've warned you pops, and now you're gonna' see what happens when you don't play ball!"
Camera on Villain2
Villain2 says, "And you tourists are gonna' learn that you're not welcome here any more!"

Start Cutscene:
Camera on Hero1
the_atom says, "You hit 'em high, I'll hit 'em low!"
Camera on Hero2
Hero2 says, "You read my mind Atom!"

Ally Thanks Hero Cutscene:
Hero2 moves to Ally1
Camera on Hero2
Hero2 says, "What is this all about?"
Ally1 says, "Some new company named Infini-tech has been trying to buy up the whole town...they've already got most of it, but then they started threatening those of us who stuck around..."
Hero1 turns to Ally1
Camera on Hero1
Hero1 says, "What interest do they have in a little tourist town like this?"
Camera on Ally1
Ally1 says, "We don't really know, the first people to sell just thought they were looking to build a hotel, but they're after something bigger than just a little patch of realestate!"
Camera on Hero2
Hero2 says, "I think we'd better pay their offices a visit Atom."
Camera on Hero1
Hero1 says, "Right, but first we'd better make sure there aren't any more of these snakes around...."

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

Encounter: tough2
Type: Building Rampage
Villains: thug_with_grenade, thug_with_gun, thug_with_gun, thug_with_gun, thug_with_grenade
Minions: thug_with_grenade, thug_with_gun
Allies: civilian_male, civilian_female, civilian_male, civilian_male, civilian_female, civilian_female, civilian_female
Marker: hotel1

Alert Cutscene:
Camera on Hero2
Hero2 says, "Atom, you're not going to believe this, but there are more of them at the hotel!"
Camera on Hero1
Hero1 says, "Man, that place is fantastic...this just got personal!"
Camera on Villain1
Villain1 turns to Ally1
Villain1 says, "You had your chance to sell, burn it down boys!"

Start Cutscene:
Camera on Hero1
the_atom says, "This is getting old fast!"

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

Encounter: trap
Type: Fight
Villains: 1000_soldier, 1000_soldier, 1000_soldier, 1000_soldier, 1000_soldier, 1000_soldie r
Minions: 1000_soldier
Marker: prison1

Start Cutscene:
Fade for 2 seconds
Hero1 teleports to prison2
Hero2 teleports to prison2
Camera on Villain1
Unfade for 3 seconds
Villain1 says, "Arlight you heroes, you've cost us a lot of resources, and now you're going to pay!"


[/spoiler]

Also disturbing, the second encounter, in the square, doesn't play, and neither does the final one.  I don't really know why, but I haven't tested them very much as I've been trying to figure out why my civilians vanish.
Title: Re: EZScript Comics
Post by: M25 on September 17, 2007, 02:30:39 PM
Intro:  change Alert Cutscene:  to Start Cutscene: 

tough2:  if you are going to name a character specifically (the_atom) in a cutscene, then stick with that name throughout the cutscene.  You can't use Hero1, Hero2 and the_atom in a single cutscene as EZ script will try to find THREE different heroes to fill those roles.  Either use Hero1 or the_atom, but not both.

trap:  you wrote  1000_soldie r  instead of 1000_soldier

Title: Re: EZScript Comics
Post by: BentonGrey on September 17, 2007, 02:48:55 PM
Thanks M25!  You never let me down man!  Alrighty, I was trying to follow your earlier instructions about setting a certain character's place in the dialogue, as both civilian identities were being read as "M250bj2," or "M250bj4."  Any clue how to change that?
Title: Re: EZScript Comics
Post by: M25 on September 17, 2007, 04:51:25 PM
EZ script looks a number of things to try and identify the characters you want in a cutscene.  The template is one of them. 

If you want to reference ray_palmer and carter_hall, just use ray_palmer and carter_hall instead of Ally1 and Ally2.  Be sure to replace Ally1 with ray_palmer everywhere in the cutscene, including camera and movement commands.

Title: Re: EZScript Comics
Post by: BentonGrey on September 17, 2007, 04:57:44 PM
I should have mentioned this, but I tried that first, and it read all the lines with "ray_palmer" speaking, even though (and I double checked this many times) Ally2 had been replaced everywhere with carter_hall.
Title: Re: EZScript Comics
Post by: M25 on September 18, 2007, 10:46:11 AM
Hmmm, it should work.  I've re-tested it and it works fine on my end.  What version of FFX are you using?

It should look like this:

[spoiler]

Story: braveandbold1

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

Encounter: Intro
Type: Cutscene
Allies: ray_palmer, carter_hall
Marker: beach1

Start Cutscene:
Camera on square1
Fade for 1 seconds
Wait for 2 seconds
Camera on ray_palmer
Unfade for 3 seconds
ray_palmer turns to carter_hall
ray_palmer says, "This was a great idea Carter, I needed to get out of that lab and into the fresh air."
carter_hall turns to ray_palmer
carter_hall says, "Well, the air doesn't get much fresher than here on the sea. It even more beautiful than the coasts of my own world."
ray_palmer says, "I hope the girls are having a good time in the city, it's a shame we didn't bring them with us."
carter_hall says, "Don't kid yourself Ray, they're having a blast, just like us! Now, what exactly is this 'fishing' you were telling me about..."
ray_palmer says, "Well, let's get one of these boats and I'll show y-..."
ray_palmer says, "Wait, do you see those guys over by the market?"
carter_hall says, "Hmm, they don't look like tourists to me, and I'm guessing those bats aren't for a friendly game."
ray_palmer says, "Yeah, my thoughts exactly, looks like the fishing is going to have to wait. Let's run back to our rooms and get into costume."
carter_hall says, "Way ahead of you Ray, let's go!"
ray_palmer moves to market1
carter_hall moves to market1
Fade for 3 seconds
Unfade for 3 seconds


[/spoiler]
Title: Re: EZScript Comics
Post by: BentonGrey on September 18, 2007, 11:28:17 AM
The newest version, I re-installed a while before I released DCUG.  I'll test it again with all those changes, and your version of that text.  We'll see what happens.  Thanks for the response M!
Title: Re: EZScript Comics
Post by: BentonGrey on September 20, 2007, 09:27:53 PM
Alright, I've done some testing, and I've got good news and bad news.  First, the good news is that all my encounters are now playing.  Plus, my two secret identity civies don't mysteriously vanish anymore.  On the OTHER hand, every line in that first conversation is still reading as ray palmer.  Why is this?  I don't have a clue.  Plus, neither of my Ally Thanks Hero Cutscenes are playing.  Here's the script as it stands:

[spoiler]# Heroes: Hawkman and the Atom
# Map: Braveandbold1

Story: braveandbold1

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

Encounter: Intro
Type: Cutscene
Allies: ray_palmer, carter_hall
Marker: beach1

Start Cutscene:
Camera on square1
Fade for 1 seconds
Wait for 2 seconds
Camera on ray_palmer
Unfade for 3 seconds
ray_palmer turns to carter_hall
ray_palmer says, "This was a great idea Carter, I needed to get out of that lab and into the fresh air."
carter_hall turns to ray_palmer
carter_hall says, "Well, the air doesn't get much fresher than here on the sea. It even more beautiful than the coasts of my own world."
ray_palmer says, "I hope the girls are having a good time in the city, it's a shame we didn't bring them with us."
carter_hall says, "Don't kid yourself Ray, they're having a blast, just like us! Now, what exactly is this 'fishing' you were telling me about..."
ray_palmer says, "Well, let's get one of these boats and I'll show y-..."
ray_palmer says, "Wait, do you see those guys over by the market?"
carter_hall says, "Hmm, they don't look like tourists to me, and I'm guessing those bats aren't for a friendly game."
ray_palmer says, "Yeah, my thoughts exactly, looks like the fishing is going to have to wait. Let's run back to our rooms and get into costume."
carter_hall says, "Way ahead of you Ray, let's go!"
ray_palmer moves to market1
carter_hall moves to market1
Fade for 3 seconds
Unfade for 3 seconds

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

Encounter: tough1
Type: Save Civilian
Villains: thug_with_bat, thug_with_bat, thug_with_bat, thug_with_bat, thug_with_bat
Allies: shop_owner, shop_owner, shop_owner, civilian_male, civilian_female
Marker: market1
Next: If Ally Lost: Lose
Next: If Ally Survives: tough2

Alert Cutscene:
Camera on the_atom
the_atom turns to Villain1
hawkman turns to Villain1
the_atom says, "Alright, now let's see what's going on!"
Camera on Villain1
Villain1 says, "You were warned pal, and now you're going to pay the price!!"
Ally1 says, "No, our shops are all we have, please! Help!"

Start Cutscene:
Camera on hawkman
hawkman says, "Let those people go, or you'll be picking your teeth out of the sand!"
Camera on Villain1
Villain1 turns to hawkman
Villain1 says, "Superheroes! Where'd they come from? This wasn't part of the plan!"
Villain2 turns to hawkman
Villain2 says, "It doesn't matter, we've got a job to do, take 'em out!"

Ally Thanks Hero Cutscene:
hawkman moves to Ally1
Camera on hawkman
hawkman says, "What were those punks after?"
Ally1 says, "They have been hanging around town for the last few weeks, pushing people around, causing trouble, but recently they started making threats..."
hawkman says, "What kind of threats?"
Ally1 says, "Well, they wanted us to sell our shops, move out of town, and they said that if we didn't sell, they'd 'we'd wish we had,' and they tried to make good on their threats!"
hawkman says, "Ha, they'll think twice before trying anything like this again."
Ally1 says, "I don't know, they've been threating people all over town, it may not be over yet...."
the_atom turns to hawkman
Camera on the_atom
the_atom says, "He's not kidding, look over at the plaza!"

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

Encounter: tough2
Type: Save Civilian
Villains: thug_with_bat, thug_with_bat, thug_with_gun, thug_with_gun, thug_with_grenade
Allies: shop_owner, shop_owner, civilian_male, civilian_female, civilian_male, civilian_female, civilian_female
Marker: square1
Next: If Ally Lost: Lose
Next: If Ally Survives: tough3

Alert Cutscene:
Camera on the_atom
the_atom says, "Come on, the square is full of innocent people!"
Camera on hawkman
hawkman says, "I'm right with you little one!"
Camera on Villain1
Villain1 turns to Ally1
Villain1 says, "We've warned you pops, and now you're gonna' see what happens when you don't play ball!"
Camera on Villain2
Villain2 says, "And you tourists are gonna' learn that you're not welcome here any more!"

Start Cutscene:
Camera on the_atom
the_atom says, "You hit 'em high, I'll hit 'em low!"
Camera on hawkman
hawkman says, "You read my mind Atom!"

Ally Thanks Hero Cutscene:
hawkman moves to Ally1
Camera on hawkman
hawkman says, "What is this all about?"
Ally1 says, "Some new company named Infini-tech has been trying to buy up the whole town...they've already got most of it, but then they started threatening those of us who stuck around..."
the_atom turns to Ally1
Camera on the_atom
the_atom says, "What interest do they have in a little tourist town like this?"
Camera on Ally1
Ally1 says, "We don't really know, the first people to sell just thought they were looking to build a hotel, but they're after something bigger than just a little patch of realestate!"
Camera on hawkman
hawkman says, "I think we'd better pay their offices a visit Atom."
Camera on the_atom
the_atom says, "Right, but first we'd better make sure there aren't any more of these snakes around...."

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

Encounter: tough3
Type: Building Rampage
Villains: thug_with_grenade, thug_with_gun, thug_with_gun, thug_with_gun, thug_with_grenade
Minions: thug_with_grenade, thug_with_gun
Allies: civilian_male, civilian_female, civilian_male, civilian_male, civilian_female, civilian_female, civilian_female
Marker: hotel1

Alert Cutscene:
Camera on hawkman
hawkman says, "Atom, you're not going to believe this, but there are more of them at the hotel!"
Camera on the_atom
the_atom says, "Man, that place is fantastic...this just got personal!"
Camera on Villain1
Villain1 turns to Ally1
Villain1 says, "You had your chance to sell, burn it down boys!"

Start Cutscene:
Camera on the_atom
the_atom says, "This is getting old fast!"

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

Encounter: trap
Type: Fight
Villains: 1000_director, 1000_soldier, 1000_soldier, 1000_soldier, 1000_soldier, 1000_soldier
Minions: 1000_soldier
Marker: prison1

Start Cutscene:
Fade for 2 seconds
the_atom teleports to prison2
hawkman teleports to prison2
Camera on Villain1
Unfade for 3 seconds
Villain1 says, "Arlight you heroes, you've cost us a lot time and money, and now you're going to pay!"


[/spoiler]
Title: Re: EZScript Comics
Post by: M25 on September 21, 2007, 01:36:30 PM
I installed your mod to see what was going on, though it looks like you have a different version already.   ^_^


For the ray_palmer issue: are you sure you haven't used the same portrait for both characters (ray and carter)?

The other issues you are having relate to naming.   In your mod you use the name 'atom', and NOT 'the_atom'.   Change 'the_atom' to 'atom' and that should fix a lot of things.

Title: Re: EZScript Comics
Post by: BentonGrey on September 21, 2007, 03:25:47 PM
Ahh, they are probably using the same portrait, as I'm using a stand in until I can get a skin for those two!  If that's the issue, I can fix it as soon as I get what I'll actually be using.

D'oh!  Yeah, I confuse myself some times, as the names in FFEdit are usually simpler than their display names.  That should be an easy fix.  Thanks M!
Title: Re: EZScript Comics
Post by: BentonGrey on September 22, 2007, 12:40:48 PM
Alright, another quick question.  Is there any way to force the player to use a given character for a given task?  For example, I want the Atom to investigate an object, since he'd be able to shrink down and look inside it.  Is there any way to do that with EZScript?  All I can think of right now is to fade out, teleport the Atom to the object (in case he's not already there) and have him speak the dialog.
Title: Re: EZScript Comics
Post by: M25 on September 22, 2007, 08:44:07 PM
No, you can't force the player to use a specific character.  Teleporting atom to the object and having him speak is a good way to handle the situation (I've done a similar thing myself).

Title: Re: EZScript Comics
Post by: BentonGrey on September 22, 2007, 08:59:34 PM
Okey doke, thanks M!  I figured that was the case, and this is a pretty good work around anyway.
Title: Re: EZScript Comics
Post by: BentonGrey on September 27, 2007, 09:46:40 PM
Alright guys, everything in the Brave and Bold mission is working, EXCEPT the second to last encounter.  The encounter itself actually plays fine, but the start cutscene just won't play.  I've tried dissecting it to see what's wrong, but nothing seems to work.  I'm hoping y'all will spot something I can't.

[spoiler]#--------------------------------------------------

Encounter: Oil
Type: Examine
Villains: 1000_soldier, 1000_soldier, 1000_soldier, 1000_soldier, 1000_soldier, 1000_soldier, 1000_soldier
Objects: cooling_tower
Marker: office1

Alert Cutscene:
Camera on atom
atom turns to hawkman
hawkman turns to atom
atom says, "Well, it looks like we've managed to stop them from tearing the town apart...for the moment, what now?"
Camera on hawkman
hawkman plays animation melee
hawkman says, "I think it's time we pay this Infini-Tech a visit, and try and find out just what they hope to gain from getting control over this sleepy little town."
Camera on atom
atom plays animation melee
atom says, "Right, and we'll teach them to ruin our vacation!"
Red Arrow on Object1

Start Cutscene:
Fade for 2 seconds
atom teleports to office3
hawkman teleports to office2
atom turns to Villain1
hawkman turns to Villain1
Villain1 turns to hawkman
Unfade for 3 seconds
Camera on Villain1
Villain1 says, "You have no business here, this is private property and you're not welcome!"
Camera on hawkman
hawkman says, "Easy pal, we just want a word with your bosses."
Cinematic camera on Villain1 to hawkman
Villain1 says, "That's not going to happen, now get off our property before we are forced to remove you!"
hawkman says, "I don't think so. I'm not going anywhere until I get some answers."
Camera on atom
atom turns to hawkman
atom says, "Keep these guys busy, I'm going to go take a look around. Maybe I can figure out what they're trying to hide."
Camera on Villain1
Villain2 moves to Villain1
Villain3 moves to Villain1
Villain4 moves to Villain1
Villain5 moves to Villain1
Villain6 moves to Villain1
Villain7 moves to Villain1
Villain1 says, "That's it, you've worn through my patience. I am sick of this charade! You've just stumbled onto an operation of the 1000, and you won't be walking away from this! Get them!"

Examine Cutscene:
Fade for 1 seconds
atom teleports to Object1
Camera on atom
atom turns to Object1
Unfade for 3 seconds
atom says, "Hmm...a quick shrink and I should be able to see what these 1000 creeps are so anxious about..."
Fade for 2 seconds
atom plays animation power
Unfade for 2 seconds
atom says, "Of course, oil! They must have discovered a supply under the town, and they are trying to drive the business out so that they can drill for it...but why is an organization like the 1000 mixed up in something like this?"[/spoiler]

Title: Re: EZScript Comics
Post by: M25 on September 28, 2007, 02:10:42 PM
Double-check the markers (office2 and office3) to make sure they exist on the map and are not capitalized. 

If you are using villain markers such as office1_villain1, make sure you have all of them in an unbroken sequence up to office1_villain7 (add an extra office1_villain8 to be sure).  If they aren't all spawning, then the cutscene won't play.

Title: Re: EZScript Comics
Post by: BentonGrey on September 28, 2007, 02:54:27 PM
D'oh!  You know, I could swear that I had already double checked this, but apparently, I'm just retarded.  Well, I only had office1_villain1-6.  I added in a 7 and 8, and that solved the problem.  The whole thing works like a charm now, thanks M!
Title: Re: EZScript Comics
Post by: BentonGrey on October 04, 2007, 11:16:23 AM
Alrighty, all my missions are working at the moment (crosses fingers), but my base scenes are giving me a bit of trouble.  I don't really have enough experience with these to spot the simpler stuff that might be messing them up, so I'm hoping someone else can see something obvious I'm overlooking:

[spoiler]Encounter: Start
Type: Base

Start Cutscene:
Camera on mainroom1
Narrator says, "In quiet, peaceful Ivy Town, all is not as it appears. A local jewlrey store holds the beginning of a strange story..."
Cinematic camera on jewler1 to customer1
jewler1 turns to customer1
jewler1 says, "Well sir, it is a beautiful stone, I'm sure that your she would love it."
customer1 turns to jewler1
customer1 says, "hmm...I'm sure she would...but it is very pricey...could I see something a little less expensive?"
jewler1 says, "Of course sir, I'll just be a moment."
jewler1 moves to mainroom2
Camera on jewler1
sc_pat_sign_diamond_small17 teleports to closet1
Wait for 2 seconds
jewler1 moves to mainroom1_ally1
jewler1 plays animation power
jewler1 says, "What did you do with the diamond, return it immediately!"
Camera on customer1
customer1 plays animaiton stunned
customer1 says, "Wh-what are you talking about? It was right there, I didn't do anything with it!"
jewler1 plays animation ranged
jewler1 says, "Well, don't try and run off, the police are going to want to have a word with you, mister!"



#
# 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

Start Cutscene:
Camera on ray_palmer
ray_palmer says, "Hmm..if the dwarf star matter has the abilities to warp mass..."
ray_palmer plays animation ranged
jean_loring moves to boss1
jean_loring says, "Ray? Do you have a minute?"
ray_palmer turns to jean_loring
ray_palmer says, "Hi honey, of course, I've always got time for you."
jean_loring says, "The strangest thing happened today, and I wanted to tell you about it."
ray_palmer says, "Well, I'm not making any progress here, let's hear your story. What happened?"
jean_loring says, "A man named Greg Adams came into my office a few hours ago, and asked me to defend him in court. Apparently, he is accused of stealing a valuable diamond."
ray_palmer says, "Well, that doesn't sound particularly strange, what's his alibi?"
jean_loring says, "That's where it gets weird, he claims that the gem just 'disappeared.' He says the clerk walked away, looking for another stone, and Mr. Adams himself was looking at something else in the display case. The next thing he knew, the clerk had returned and was calling him a theif."
ray_palmer says, "And neither of them saw anyone take the stone?"
jean_loring says, "No, and neither did anyone else in the store, isn't that bizarre? Whoever the theif was, he was very clever."
ray_palmer says, "I suppose so, that is very strange, so, how does the case look?"
jean_loring says, "Ohh, it should be simple enough, the evidence against Mr. Adams is all circumstantial, but if he's not the thief, who is?"
ray_palmer says, "Yes, that is the question, isn't it?"
jean_loring says, "Well, thanks for listening darling, but I suppose I had better let you get back to work, I'll see you for dinner tonight?"
ray_palmer says, "I wouldn't miss it for the world dear..."
jean_loring moves to firstdoor1
ray_palmer turns to seconddoor1
ray_palmer says, "Hmm...this is quite a pretty mystery...I wonder if the Atom might be able to find something the police might have overlooked?"
ray_palmer moves to seconddoor1

[/spoiler]

Neither portion is playing
Title: Re: EZScript Comics
Post by: M25 on October 04, 2007, 01:48:46 PM
The simplest thing that can cause base cutscenes not to play is not having an encounter marker to play at.

Make sure you have a marker called encounter1 on the map.

Title: Re: EZScript Comics
Post by: BentonGrey on October 06, 2007, 08:12:11 AM
Check, I've got all the positional markers referenced in the script, plus the standard encounter markers.  Is it possible it has something to do with the object?  I'm trying to remove it from the cutscene while the camera is off of it, but I'm not sure I can use the teleport function like that.
Title: Re: EZScript Comics
Post by: M25 on October 06, 2007, 11:27:49 PM
Hmmm, on a quick read through it looks fine.  The teleport shouldn't cause a problem.  As long as all of the characters you reference exist on the map they should play. 

Did you put the ezscript campaign  base.py script into your mission directory?

Title: Re: EZScript Comics
Post by: BentonGrey on October 07, 2007, 11:01:28 AM
Yep, it's the proper file.  Earlier, the briefing was playing, but not the intermission.  I think I may have changed the camera directions, and then even the briefing didn't play.  I can't remember exactly what I did, but it shouldn't have caused it to break.  Both jewler1 and customer1 exist, so I'm not quite sure what to do.  Here's a question though, should I call them by their name on the map, or by their template?  You know, I bet that's the problem, let me check.

:EDIT: Alright, I've just finished a lot of testing, and here's what I've got:  I had forgotten to run the Control Center after I added in the last few characters, so I figured that might have something to do with it (especially considering that jewler and customer were two of the latest).  So, I ran the CC.  I also remembered what you said about characters possessing the same portrait can give EZScript fits, so I set up an alternate civilian_male directory IN the DCUG, complete with custom portraits, same for civilian_female.  So, Ray and Jean should be set, right? 

Nope, I load up the base screen several more times and I get A) A repeating message telling me I've got duplicate values in the 'complex' entry and to run the Control Center, no matter HOW many times I do it.  I even took precautions, renaming DCUG to FFX3, because I heard the CC has issues with other mods some times.  So, the the intermission still won't play.  B) After renaming the jewler1 and customer1 to just plain old jewler and customer, the Briefing cutscene plays, BUT ray_palmer is not the ray_palmer I placed on the map.  The game picks any random civilian around the place, and makes HIM ray palmer, who proceeds to have his discussion with empty air, since Jean, wherever she is, doesn't happen to be near him.
Title: Re: EZScript Comics
Post by: M25 on October 07, 2007, 03:27:11 PM
It does sound like issues with the tags that identify each character.   The FFXCC doesn't properly generate ids for characters with the GAME_OBJ_CIVILIAN class set in their template.  If they don't have an id, then chances are EZ script won't find them correctly.

The easiest way around this is to make them some other type (such as police or hero or whatever).  Then re-run the FFXCC.

The all powerful stumpy has a somewhat more complex, but more comprehensive fix for this issue, reproduced below.  You could probably just do step 5.

[spoiler]
It can happen if the objects.dat file has duplicate complex values set for characters.  (I have not checked, but I am thinking this shouldn't happen with HERO files.)  Here is a procedure for getting what I hope is a set of clean complex values in the built-in characters.

   1. Load the datfiles module in the game or at whatever python you use. Keep in mind that from the game command prompt, the filename isn't needed (assuming you are working on the DATs for the current mod), but you will have to quit the game and restart after all this is done to have the DATs re-read.

   2. Call datfiles.Campaign_RemoveObjectAttrib() on your objects.dat file to get rid of all complex template attribute values.  The call will look something like

datfiles.Campaign_RemoveObjectAttrib('complex',r'C:\Program Files\games\Freedom Force vs The 3rd Reich\ffx3\objects.dat')

      (Keep in mind that, unless you are letting the game find things for you, your DAT path will likely be slightly different from mine.)

   3. Open FFEdit and click on the Templates tab.  Click Save and quit FFEdit.  FFEdit makes sure the template attributes are written one after another, with no blanks in the attribute list for an object.  Those "holes'" can cause trouble with FFXCC.

   4. Run FFXCC on that mod to tag all the regular characters.  Quit FFXCC.

   5. At the python prompt, run datfiles.Campaign_SetMissingComplexAttribs() on the objects file to tag all the characters (civilians and tanks) that the FFXCC missed.  The call will look something like

datfiles.Campaign_SetMissingComplexAttribs(r'C:\Program Files\games\Freedom Force vs The 3rd Reich\ffx3\objects.dat',r'C:\Program Files\games\Freedom Force vs The 3rd Reich\ffx3\characters.dat')

      Once again, make sure you use the right paths for your DAT files, unless you arre running from within the game.
   6. Now, for good measure, re-open FFEdit and click on the Templates tab.  Click Save and quit FFEdit.

That should be it.  The FFXCC doesn't clear the attributes for the civilians and tanks, so there should be no need to go through this again unless you add more civilians or tanks to the mod.

You should have an objects.dat with unique complex attribute values set for all characters, with no duplicates.  If you run the game and still get the message at the status window, let me know.
[/spoiler]

Title: Re: EZScript Comics
Post by: BentonGrey on October 07, 2007, 04:47:35 PM
Thanks M25, I didn't realize that!  I will have to set them up as police from now on, so that I can get them branded.  I'll try Stumpy's fix sometime tonight, as I've added in a good number of civilian characters.

:EDIT:  Alright, I'm not quite sure I understand Stumpy's instructions.  I typed in the command (minus the directory) in the game, using the debugging mode that you can pull up with ~, but nothing happened.  Am I supposed to put it in somewhere specific?

I did it by hand, changing all the characters I can remember, including all of those involved with this scene.  However the intermission still won't play.  The briefing seems to be playing correctly now, though.  I'm still getting the 'duplicate characters' message, so I need to do the full thing that Stumpy suggests.
Title: Re: EZScript Comics
Post by: M25 on October 08, 2007, 08:58:18 AM
Yes, you do the fix in debugging mode.  You may have to type

import datfiles

to get datfiles loaded. 
Title: Re: EZScript Comics
Post by: BentonGrey on October 08, 2007, 09:50:28 AM
Ahh, okay, that makes sense.  Thanks M!
Title: Re: EZScript Comics
Post by: BentonGrey on October 08, 2007, 10:34:57 AM
Alrighty, well, that's taken care of, but we've still got that intermission cutscene not playing.  I can't figure out what's wrong.
Title: Re: EZScript Comics
Post by: M25 on October 09, 2007, 09:26:35 AM
It looks like there was a bug in the ez script base.py included with ffx 3.2 final.

Make sure your base.py file has this for OnPostInit()


def OnPostInit():
m25minimod.OnPostInit(campaign=1, base=1)



Your mission.py file should similarly have an OnPostInit() like this


def OnPostInit():
m25minimod.OnPostInit(campaign=1)


Title: Re: EZScript Comics
Post by: BentonGrey on October 09, 2007, 12:24:48 PM
Thanks M, I was indeed missing those entries.  I would love to test it out and see if this works but.....something else seems to have broken.  This is weird.  You know that message you get after you accidentally open the campaign tab in FFEdit?  You know, when you go to play a rumble room mission and the game crashes, saying something about your campdef file?  Well, yesterday, after getting all those complex attributes assigned, my game started doing that to me.  Now, I didn't just open up the campaign tab and not put anything in it, I had already design the campaign of my EZScript missions, and it was working just fine earlier that day.  So, I go into FFEdit, and I check my campaign, nothing has changed.  I rename the campdef file, and the game plays fine.  So, I delete my campdef file, but now FFEdit won't let me create a new campaign!  The tab is completely grayed out, and it says read only in the bottom right corner.  What the heck is going on?!
Title: Re: EZScript Comics
Post by: Previsionary on October 09, 2007, 12:34:33 PM
FFedit needs any campdef file there to be able to edit it. I don't believe it has the ability to just create it's own blank copy (read-only is an attribute of a file that you can turn on and off). As for campdef/rumbleroom...in FFVTTR, the campdef needs to have a certain number of missions for the rumbleroom to work correctly. I don't remember the exact number, but I believe it's around 8 or so missions.
Title: Re: EZScript Comics
Post by: BentonGrey on October 09, 2007, 01:17:14 PM
That's so weird Prev, 'cause I've got four, and it was working fine earlier.  Anyway, at least I know how to make it edit-able now, thanks.
Title: Re: EZScript Comics
Post by: BentonGrey on November 29, 2007, 02:49:16 PM
Nevermind, I'm retarded.
Title: Re: EZScript Comics
Post by: BentonGrey on December 13, 2007, 02:35:00 PM
Howdy guys, I imagine I'll be posting here a lot in the next few days as I try and whip everything into shape!  First off, Atom#2 is giving me some troubles.  The first encounter is working like a charm, but the second one doesn't want to start.  The characters all generate, but the item does not.  The start cutscene never plays either, and they all just stand there.  As always, here is the mission:

[spoiler]#----------------------------------

Encounter: Warm Greeting
Type: Fight
Villains: robot_spider, robot_spider
Marker: atom1

Alert Cutscene:
Unfade for 3 seconds
Camera on Hero1
Narrator says, "After what seemed like an eternity in the dark, winding corridors of the ants, the Atom emerges into a small but well stocked laboratory."
Hero1 says, "Whew, I'm glad to be out of there! If I never see another insect as long as I live, it'll be too soon..."
Villain1 moves to Hero1
Hero1 turns to Villain1
Hero1 says, "Well, this figures, I escape a horde of angry ants, only to face giant. mechanical. spiders. I feel like I've stumbled into the plot for a B movie..."

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

Encounter: Exposition
Type: Custom
Actions: Villains Fight Heroes, Item Exists, Heroes Sabotage Object, Villains Can Be Interrogated
Villains: bugeyed, robot_spider, robot_spider
Marker: atom2
Item: ff_science_equipment

Start Cutscene:
Camera on Hero1
Hero1 says, "Alright, not that this hasn't been fun, what with the giant insects and all, but it's over Buggy."
Villain1 turns to Hero1
Villain2 turns to Hero1
Villain3 turns to Hero1
Camera on Villain1
Villain1 says, "Not quite pipsqueak, I control all of the insects for miles around! Ever had a bee-sting? Imagine that sensation multiplied a thousand fold..."
Villain1 plays animation ranged
Villain1 says, "I never wanted to be a killer...but you wouldn't leave well enough alone!"

Sabotage Cutscene:
Camera on Hero1
Hero1 says, "Lets see how well this machine works with a few crossed wires!"

Sabotage Complete Cutscene:
Camera on Villain1
Villain1 says, "Nooo! My life's work!"

Interrogation Cutscene:
Camera on Hero1
Hero1 turns to Villain1
Hero1 says, "Now, what in the world was this all about?"
Villain1 says, "I just...I just wanted to share my genuis with the world..."
Hero1 says, "Your genuis? By stealing jewels and framing an innocent man?"
Villain1 says, "I...I didn't know about that. I invented a device, which can control insects, and it seemed like the perfect answer to man's pest problems...but all of the investors I approached laughed at me..."
Villain1 says, "To continue its develompent I...needed money..."
Hero1 plays animation ranged
Hero1 says, "So you decided to steal what you needed?"
Villain1 says, "You have to understand...it's my dream..."
Hero1 says, "And this gadget is worth killling for?"
Villain1 says, "A dream is always worth killing for..."


[/spoiler]

And 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 1197584942.656000
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
FFX Mission Plugin 'freeroam_keepbuildingdamage' imported
FFX Mission Plugin 'm25ai_lowjumper' imported
FFX Mission Plugin 'm25ai_realitymanipulation' imported
FFX Mission Plugin 'cutscene_power' imported
Loading     m25enc_OPENDOOR.py v.1.0.0 build 0; branch = main
FFX Mission Plugin 'm25enc_opendoor' imported
Loading     m25enc_simplechoice.py v.1.0.0 build 0; branch = main
FFX Mission Plugin 'm25enc_simplechoice' imported
Starting Built-In Function Wrapper 1.5
('Object_CalcPrestige', 'js')
>>> C:\Documents and Settings\Owner\Local Settings\Application Data\Irrational Games\Freedom Force vs the 3rd Reich\temp\mission.py executed
MLOG_Init(keepRunningModules=0): starting up
mlogreader.MLOG_Init: current mission = '02_ATOM'
initialising FFX: skirmish=0
storing hero1: id_1,157
! GetMapInfo
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))
initAttribsForChar: working on hero1 (atom)
initAttribsForChar (atom): looking at attribute nimble
initAttribsForChar (atom): looking at attribute jumper
initAttribsForChar (atom): looking at attribute masscontrol
execInitAttrib: init masscontrol attribute
    on hero1 of template atom (atom)
initAttribsForChar (atom): looking at attribute density control
initAttribsForChar: working on m25obj_2 (apokolips_warhound)
initAttribsForChar (apokolips_warhound): looking at attribute clumsy
initAttribsForChar (apokolips_warhound): looking at attribute cybernetic brain
initAttribsForChar: working on m25obj_4 (apokolips_warhound)
initAttribsForChar (apokolips_warhound): looking at attribute clumsy
initAttribsForChar (apokolips_warhound): looking at attribute cybernetic brain
Plugin 'firehydrant' OnPostInit() called
Plugin 'zombie' has no OnPostInit()
Plugin 'freeroam_keepbuildingdamage' OnPostInit() called
Plugin 'm25ai_lowjumper' has no OnPostInit()
Plugin 'm25ai_realitymanipulation' has no OnPostInit()
Plugin 'cutscene_power' has no OnPostInit()
Plugin 'm25enc_opendoor' has no OnPostInit()
Plugin 'm25enc_simplechoice' has no OnPostInit()
ff.Examine_Setup(2)
exceptions.IndexError list index out of range
ff.DoEncCustom(2,villains = ['bugeyed', 'robot_spider', 'robot_spider'], cutscenes = [['startcs', [['priority', 1], ['replace', ['hero1', 'hero'], ['villain1', 'villain'], ['villain2', 'villain'], ['villain3', 'villain']], ['cutscene', 'CS_Start()', "CS_Camera('hero1', dist=-160, yaw=0)", 'CS_Speak(\'hero1\', "Alright, not that this hasn\'t been fun, what with the giant insects and all, but it\'s over Buggy.", force=0)', "CS_TurnTo('villain1', 'hero1')", "CS_TurnTo('villain2', 'hero1')", "CS_TurnTo('villain3', 'hero1')", "CS_Camera('villain1', dist=-160, yaw=0)", "CS_Speak('villain1', 'Not quite pipsqueak, I control all of the insects for miles around! Ever had a bee-sting? Imagine that sensation multiplied a thousand fold...', force=0)", "CS_Animate('villain1','ranged')", 'CS_Speak(\'villain1\', "I never wanted to be a killer...but you wouldn\'t leave well enough alone!", force=0)', 'CS_End()']]], ['sabotagecs', [['priority', 1], ['replace', ['hero1', 'hero']], ['cutscene', 'CS_Start()', "CS_Camera('hero1', dist=-160, yaw=0)", "CS_Speak('hero1', 'Lets see how well this machine works with a few crossed wires!', force=0)", 'CS_End()']]], ['sabotagecompletecs', [['priority', 1], ['replace', ['villain1', 'villain']], ['cutscene', 'CS_Start()', "CS_Camera('villain1', dist=-160, yaw=0)", 'CS_Speak(\'villain1\', "Nooo! My life\'s work!", force=0)', 'CS_End()']]], ['interrogationcs', [['priority', 1], ['replace', ['hero1', 'hero'], ['villain1', 'villain']], ['cutscene', 'CS_Start()', "CS_Camera('hero1', dist=-160, yaw=0)", "CS_TurnTo('hero1', 'villain1')", "CS_Speak('hero1', 'Now, what in the world was this all about?', force=0)", "CS_Speak('villain1', 'I just...I just wanted to share my genuis with the world...', force=0)", "CS_Speak('hero1', 'Your genuis? By stealing jewels and framing an innocent man?', force=0)", 'CS_Speak(\'villain1\', "I...I didn\'t know about that. I invented a device, which can control insects, and it seemed like the perfect answer to man\'s pest problems...but all of the investors I approached laughed at me...", force=0)', "CS_Speak('villain1', 'To continue its develompent I...needed money...', force=0)", "CS_Animate('hero1','ranged')", "CS_Speak('hero1', 'So you decided to steal what you needed?', force=0)", 'CS_Speak(\'villain1\', "You have to understand...it\'s my dream...", force=0)', "CS_Speak('hero1', 'And this gadget is worth killling for?', force=0)", "CS_Speak('villain1', 'A dream is always worth killing for...', force=0)", 'CS_End()']]]], marker = 'atom2', actions = 'Villains Fight Heroes, Item Exists, Heroes Sabotage Object, Villains Can Be Interrogated', item = 'ff_science_equipment',return_function="StorylineEncounterReturn")
Traceback (innermost last):
  File "C:\Program Files\Irrational Games\Freedom Force vs The 3rd Reich\.\DCUG\missions\scripts\m25story.py", line 250, 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 293, 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 383, 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 4193, 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 1357, in SetupEncounter
    SetupEnc_CallPost(enc_id, encounter)
  File "C:\Program Files\Irrational Games\Freedom Force vs The 3rd Reich\.\DCUG\missions\scripts\m25enc.py", line 1500, in SetupEnc_CallPost
    exec 'ff.' + s + '(' + `enc_id` + ')'            
  File "<string>", line 1, in ?
  File "C:\Program Files\Irrational Games\Freedom Force vs The 3rd Reich\.\DCUG\missions\scripts\m25enc.py", line 1584, in Examine_Setup
    chosen = members[0]
IndexError: list index out of range
initAttribsForChar: working on m25obj_8 (apokolips_warhound)
initAttribsForChar (apokolips_warhound): looking at attribute clumsy
initAttribsForChar (apokolips_warhound): looking at attribute cybernetic brain
initAttribsForChar: working on m25obj_10 (apokolips_warhound)
initAttribsForChar (apokolips_warhound): looking at attribute clumsy
initAttribsForChar (apokolips_warhound): looking at attribute cybernetic brain
initAttribsForChar: working on m25obj_6 (bugeyed)
initAttribsForChar (bugeyed): looking at attribute summoner3
execInitAttrib: init summoner3 attribute
    on m25obj_6 of template bugeyed (bugeyed)
[/spoiler]
Title: Re: EZScript Comics
Post by: BentonGrey on December 13, 2007, 03:57:38 PM
Alright, Batman mission #6, also not working.  The first two encounters are fine, but the third one, the object hunt isn't starting.:

Mission:

[spoiler]Story: My Story

#
# Put the story for you mission into here.
#
#------------------------------------------------------------------

Encounter: Hello
Type: Cutscene

Start Cutscene:
Camera on Hero1
Unfade for 3 seconds
Hero1 says, "Feel that chill Robin?"
Camera on Hero2
Hero2 says, "Brr! Do I! My teeth are about to chatter out of my head!"
Hero1 says, "This complex was refrigerated until a short time ago, Mr. Freeze has been here...recently."
Hero2 says, "Feels like he's still here!"

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

Encounter: Packing
Type: Fight
Villains: league_assassin, league_assassin, league_assassin, league_assassin
Marker: pack1
Next: Packing2

Alert Cutscene:
Red Arrow on Villain1

Start Cutscene:
Remove Arrow from Villain1
Camera on Villain1
Villain1 turns to Villain2
Villain1 says, "Come on, we need to have these supplies moved before the master arrives at the new location."
Camera on Hero2
Hero2 says, "We'll save you boys a trip!"

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

Encounter: Packing2
Type: Fight
Villains: league_assassin, league_assassin, league_assassin, league_assassin
Marker: pack2
Next: None

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

Encounter: Clue
Type: Examine
Objects: nazihq_secret_plans
Next: Beloved

Alert Cutscene:
Camera on Hero1
Hero1 says, "Hmm...it looks like they are packing up this equipment. Freeze was definitely working on something big...Maybe we can find a clue to their plans.  Keep your eyes peeled for any documents or other leads."

Examine Cutscene:
Camera on Hero1
Hero1 says, "It looks like we were right, Freeze is working for R'as Al Ghul..."
Hero2 turns to Hero1
Camera on Hero2
Hero2 says,"Right, but what is this all about?"
Camera on Hero1
Hero1 says, "What is it always about with R'as? Doomsday..."
Camera on Hero2
Hero2 says, "He's got Mr. Freeze building some kind of doomsday weapon?"
Camera on Hero1
Hero1 says, "Do you remember a few years ago, when Grant Walker, the theme park magnate, built that 'ideal city' off the coast of Gotham?"
Hero2 says, "Ohh yeah, Oceaiana, that guy was all kinds of nuts!"
Hero2 plays animation ranged
Hero1 says, "Right Robin, but he wanted to wipe out all but his select remnant of humanity, much like R'as."
Hero2 says, "And he was planning to use a jumbo sized version of 'ol Victor's freeze ray...I see! R'as has Freeze working on a new version!"
Hero1 says, "Now that we know what he's up to, we've got to stop him before R'as can get his hands on that technology!"
Hero2 says, "But Batman, I still don't understand why Freeze is helping Methusala."
Hero1 says, "I have a theory Robin, but there's only one way to find out for sure, and that's to track him down."

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

Encounter: Beloved
Type: Interrogation
Villains: talia
Minions: league_assassin

Interrogation Cutscene:
Camera on Hero1
Hero1 moves to Villain1
Hero1 says, "Why Talia..."[/spoiler]

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 1197589556.906000
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
FFX Mission Plugin 'freeroam_keepbuildingdamage' imported
FFX Mission Plugin 'm25ai_lowjumper' imported
FFX Mission Plugin 'm25ai_realitymanipulation' imported
FFX Mission Plugin 'cutscene_power' imported
Loading     m25enc_OPENDOOR.py v.1.0.0 build 0; branch = main
FFX Mission Plugin 'm25enc_opendoor' imported
Loading     m25enc_simplechoice.py v.1.0.0 build 0; branch = main
FFX Mission Plugin 'm25enc_simplechoice' imported
Starting Built-In Function Wrapper 1.5
('Object_CalcPrestige', 'js')
>>> C:\Documents and Settings\Owner\Local Settings\Application Data\Irrational Games\Freedom Force vs the 3rd Reich\temp\mission.py executed
! GetMapInfo
MLOG_Init(keepRunningModules=0): starting up
mlogreader.MLOG_Init: current mission = '05_CHASINGTHECOLD'
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 hero2: id_1,191
storing hero1: id_2,159
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))
initAttribsForChar: working on hero2 (robin)
initAttribsForChar (robin): looking at attribute capedcrusader
execInitAttrib: init disciplined attribute inside ['capedcrusader', 'disciplined', 'utilitybelt', 'nimble', 'acrobatic', 'grimresolve', 'ffqtracking'] combo
    on hero2 of template robin (robin)
execInitAttrib: init utilitybelt attribute inside ['capedcrusader', 'disciplined', 'utilitybelt', 'nimble', 'acrobatic', 'grimresolve', 'ffqtracking'] combo
    on hero2 of template robin (robin)
execInitAttrib: init nimble attribute inside ['capedcrusader', 'disciplined', 'utilitybelt', 'nimble', 'acrobatic', 'grimresolve', 'ffqtracking'] combo
    on hero2 of template robin (robin)
execInitAttrib: init acrobatic attribute inside ['capedcrusader', 'disciplined', 'utilitybelt', 'nimble', 'acrobatic', 'grimresolve', 'ffqtracking'] combo
    on hero2 of template robin (robin)
execInitAttrib: init grimresolve attribute inside ['capedcrusader', 'disciplined', 'utilitybelt', 'nimble', 'acrobatic', 'grimresolve', 'ffqtracking'] combo
    on hero2 of template robin (robin)
execInitAttrib: init ffqtracking attribute inside ['capedcrusader', 'disciplined', 'utilitybelt', 'nimble', 'acrobatic', 'grimresolve', 'ffqtracking'] combo
    on hero2 of template robin (robin)
initAttribsForChar (robin): looking at attribute wall climbing
initAttribsForChar (robin): looking at attribute nimble
initAttribsForChar: working on hero1 (batman)
initAttribsForChar (batman): looking at attribute heroic
initAttribsForChar (batman): looking at attribute wall climbing
initAttribsForChar (batman): looking at attribute danger sense
initAttribsForChar (batman): looking at attribute capedcrusaderbat
execInitAttrib: init disciplined attribute inside ['capedcrusaderbat', 'disciplined', 'presence', 'utilitybelt', 'nimble', 'acrobatic', 'grimresolve', 'ffqtracking'] combo
    on hero1 of template batman (batman)
execInitAttrib: init presence attribute inside ['capedcrusaderbat', 'disciplined', 'presence', 'utilitybelt', 'nimble', 'acrobatic', 'grimresolve', 'ffqtracking'] combo
    on hero1 of template batman (batman)
execInitAttrib: init utilitybelt attribute inside ['capedcrusaderbat', 'disciplined', 'presence', 'utilitybelt', 'nimble', 'acrobatic', 'grimresolve', 'ffqtracking'] combo
    on hero1 of template batman (batman)
execInitAttrib: init nimble attribute inside ['capedcrusaderbat', 'disciplined', 'presence', 'utilitybelt', 'nimble', 'acrobatic', 'grimresolve', 'ffqtracking'] combo
    on hero1 of template batman (batman)
execInitAttrib: init acrobatic attribute inside ['capedcrusaderbat', 'disciplined', 'presence', 'utilitybelt', 'nimble', 'acrobatic', 'grimresolve', 'ffqtracking'] combo
    on hero1 of template batman (batman)
execInitAttrib: init grimresolve attribute inside ['capedcrusaderbat', 'disciplined', 'presence', 'utilitybelt', 'nimble', 'acrobatic', 'grimresolve', 'ffqtracking'] combo
    on hero1 of template batman (batman)
execInitAttrib: init ffqtracking attribute inside ['capedcrusaderbat', 'disciplined', 'presence', 'utilitybelt', 'nimble', 'acrobatic', 'grimresolve', 'ffqtracking'] combo
    on hero1 of template batman (batman)
Plugin 'firehydrant' OnPostInit() called
Plugin 'zombie' has no OnPostInit()
Plugin 'freeroam_keepbuildingdamage' OnPostInit() called
Plugin 'm25ai_lowjumper' has no OnPostInit()
Plugin 'm25ai_realitymanipulation' has no OnPostInit()
Plugin 'cutscene_power' has no OnPostInit()
Plugin 'm25enc_opendoor' has no OnPostInit()
Plugin 'm25enc_simplechoice' has no OnPostInit()
addArrow m25obj_2arrow m25obj_2 0 1
initAttribsForChar: working on m25obj_8 (league_assassin)
initAttribsForChar (league_assassin): looking at attribute danger sense
initAttribsForChar: working on m25obj_6 (league_assassin)
initAttribsForChar (league_assassin): looking at attribute danger sense
initAttribsForChar: working on m25obj_4 (league_assassin)
initAttribsForChar (league_assassin): looking at attribute danger sense
initAttribsForChar: working on m25obj_2 (league_assassin)
initAttribsForChar (league_assassin): looking at attribute danger sense
initAttribsForChar: working on m25obj_14 (league_assassin)
initAttribsForChar (league_assassin): looking at attribute danger sense
initAttribsForChar: working on m25obj_10 (league_assassin)
initAttribsForChar (league_assassin): looking at attribute danger sense
initAttribsForChar: working on m25obj_12 (league_assassin)
initAttribsForChar (league_assassin): looking at attribute danger sense
initAttribsForChar: working on m25obj_16 (league_assassin)
initAttribsForChar (league_assassin): looking at attribute danger sense
[/spoiler]
Title: Re: EZScript Comics
Post by: lmalonsof on December 14, 2007, 01:24:31 AM
Hi Benton,

I don't know if your problem is in this encounter, but I don't understand this:

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

Encounter: Packing2
Type: Fight
Villains: league_assassin, league_assassin, league_assassin, league_assassin
Marker: pack2
Next: None

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

Why aren't you asking the script to go to the next encounter?
Title: Re: EZScript Comics
Post by: BentonGrey on December 14, 2007, 07:39:53 AM
D'oh!  I had both Packing1 and Clue starting at the same time, so I didn't want Packing2 to start it over again.  When I changed the mission layout, trying to see what was broken, I forgot to get rid of that.  Still, Clue didn't work to begin with, so I doubt that is the problem.
Title: Re: EZScript Comics
Post by: M25 on December 14, 2007, 10:10:17 AM
Once you get rid of the Next: None line, Clue should start.

Make sure you have some encounter markers on your map.

It looks like there is a internal problem with EZ script.  You can't have two or more heroes in an examine cutscene, but as a quick fix, change the Examine Cutscene in Clue to an End Cutscene

Title: Re: EZScript Comics
Post by: BentonGrey on December 15, 2007, 03:07:44 PM
Thanks guys!  Okay, I tried your quick fix M, and it seemed to work, after a fashion.  I set the Examine scene to a particular marker in an attempt to make sure the object was spawning.  It did, the scene played, everything worked like clockwork.  So, I put things back in the order I wanted, with the third and fourth encounters starting simultaneously, and the Examine encounter sans marker, so that it's position would be random.  I have 10 'encounter' markers, each with a specific object marker.  So, I've got encounter1_object1, etc.  However, now the Examine encounter refuses to start.  Everything else is still working, though.

Mission:
[spoiler]Story: My Story

#
# Put the story for you mission into here.
#
#------------------------------------------------------------------

Encounter: Hello
Type: Cutscene

Start Cutscene:
Camera on batman
Unfade for 3 seconds
batman says, "Feel that chill Robin?"
robin plays animation dodge_left_a
robin plays animation dodge_right_a
robin says, "Brr! Do I! My teeth are about to chatter out of my head!"
batman says, "This complex was refrigerated until a short time ago, Mr. Freeze has been here...recently."
robin says, "Feels like he's still here!"

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

Encounter: Packing
Type: Fight
Villains: league_assassin, league_assassin, league_assassin, league_assassin
Marker: pack1
Next: Packing2, Clue

Alert Cutscene:
Red Arrow on Villain1

Start Cutscene:
Remove Arrow from Villain1
Camera on Villain1
Villain1 turns to Villain2
Villain1 says, "Come on, we need to have these supplies moved before the master arrives at the new location."
Camera on robin
robin turns to Villain1
robin says, "We'll save you boys a trip!"

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

Encounter: Packing2
Type: Hunt
Villains: league_assassin, league_assassin, league_assassin, league_assassin
Marker: pack2
Next: None

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

Encounter: Clue
Type: Examine
Objects: nazihq_secret_plans

Alert Cutscene:
Fade for 3 seconds
Camera on batman
Unfade for 3 seconds
batman says, "Hmm...it looks like they are packing up this equipment. Freeze was definitely working on something big...Maybe we can find a clue to their plans. Keep your eyes peeled for any documents or other leads."

End Cutscene:
Camera on batman
batman says, "It looks like we were right, Freeze is working for R'as Al Ghul..."
robin turns to batman
Camera on robin
robin says,"Right, but what is this all about?"
Camera on batman
batman says, "What is it always about with R'as? Doomsday..."
Camera on robin
robin says, "He's got Mr. Freeze building some kind of doomsday weapon?"
Camera on batman
batman says, "Do you remember a few years ago, when Grant Walker, the theme park magnate, built that 'ideal city' off the coast of Gotham?"
robin says, "Ohh yeah, Oceaiana, that guy was all kinds of nuts!"
robin plays animation ranged
batman says, "Right Robin, but he wanted to wipe out all but his select remnant of humanity, much like R'as."
robin says, "And he was planning to use a jumbo sized version of 'ol Victor's freeze ray...I see! R'as has Freeze working on a new version!"
batman says, "Now that we know what he's up to, we've got to stop him before R'as can get his hands on that technology!"
robin says, "But Batman, I still don't understand why Freeze is helping Methusala."
batman says, "I have a theory Robin, but there's only one way to find out for sure, and that's to track him down. Let's get out of here!"

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

Encounter: Beloved
Type: Interrogation
Villains: talia
Minions: league_assassin
Marker: pack3

Alert Cutscene:
Fade for 3 seconds
Unfade for 3 seconds

Start Cutscene:
Camera on Villain1
Villain1 turns to batman
Villain1 plays animation melee
Villain1 says, "I am sorry beloved, but I cannot allow you to interfere in my father's plans any further."
Camera on batman
batman turns to Villain1
batman plays animation idle_1
batman says, "Talia, we don't have to do this."
Camera on Villain1
Villain1 says, "I have betrayed my father too many times, my love, I must not disappoint him again."

Interrogation Cutscene:
Camera on batman
batman moves to Villain1
batman says, "Talia, you have to help us...if R'as succeeds, millions could die."
Villain1 says, "What...what is it you want to know?"
batman says, "Where is he building the freeze ray?"
Villain1 says, "I will tell you...what you want to know, but it will do you no good. Father has prepared a compound for the construction of the device up the coast from Gotham."
batman says, "I know that you don't want your father to succeed Talia, and I promise that we'll stop him."
Villain1 says, "I wish you could..."
batman moves to skirmishspawn
Villain1 says, "Good luck, beloved!"[/spoiler]


Script.log: There's an error here I can't figure out.
[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 1197759738.250000
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
FFX Mission Plugin 'freeroam_keepbuildingdamage' imported
FFX Mission Plugin 'm25ai_lowjumper' imported
FFX Mission Plugin 'm25ai_realitymanipulation' imported
FFX Mission Plugin 'cutscene_power' imported
Loading     m25enc_OPENDOOR.py v.1.0.0 build 0; branch = main
FFX Mission Plugin 'm25enc_opendoor' imported
Loading     m25enc_simplechoice.py v.1.0.0 build 0; branch = main
FFX Mission Plugin 'm25enc_simplechoice' imported
Starting Built-In Function Wrapper 1.5
('Object_CalcPrestige', 'js')
>>> C:\Documents and Settings\Owner\Local Settings\Application Data\Irrational Games\Freedom Force vs the 3rd Reich\temp\mission.py executed
! GetMapInfo
MLOG_Init(keepRunningModules=0): starting up
mlogreader.MLOG_Init: current mission = '05_CHASINGTHECOLD'
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 hero2: id_1,191
storing hero1: id_2,159
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))
initAttribsForChar: working on hero2 (robin)
initAttribsForChar (robin): looking at attribute capedcrusader
execInitAttrib: init disciplined attribute inside ['capedcrusader', 'disciplined', 'utilitybelt', 'nimble', 'acrobatic', 'grimresolve', 'ffqtracking'] combo
    on hero2 of template robin (robin)
execInitAttrib: init utilitybelt attribute inside ['capedcrusader', 'disciplined', 'utilitybelt', 'nimble', 'acrobatic', 'grimresolve', 'ffqtracking'] combo
    on hero2 of template robin (robin)
execInitAttrib: init nimble attribute inside ['capedcrusader', 'disciplined', 'utilitybelt', 'nimble', 'acrobatic', 'grimresolve', 'ffqtracking'] combo
    on hero2 of template robin (robin)
execInitAttrib: init acrobatic attribute inside ['capedcrusader', 'disciplined', 'utilitybelt', 'nimble', 'acrobatic', 'grimresolve', 'ffqtracking'] combo
    on hero2 of template robin (robin)
execInitAttrib: init grimresolve attribute inside ['capedcrusader', 'disciplined', 'utilitybelt', 'nimble', 'acrobatic', 'grimresolve', 'ffqtracking'] combo
    on hero2 of template robin (robin)
execInitAttrib: init ffqtracking attribute inside ['capedcrusader', 'disciplined', 'utilitybelt', 'nimble', 'acrobatic', 'grimresolve', 'ffqtracking'] combo
    on hero2 of template robin (robin)
initAttribsForChar (robin): looking at attribute wall climbing
initAttribsForChar (robin): looking at attribute nimble
initAttribsForChar: working on hero1 (batman)
initAttribsForChar (batman): looking at attribute heroic
initAttribsForChar (batman): looking at attribute wall climbing
initAttribsForChar (batman): looking at attribute danger sense
initAttribsForChar (batman): looking at attribute capedcrusaderbat
execInitAttrib: init disciplined attribute inside ['capedcrusaderbat', 'disciplined', 'presence', 'utilitybelt', 'nimble', 'acrobatic', 'grimresolve', 'ffqtracking'] combo
    on hero1 of template batman (batman)
execInitAttrib: init presence attribute inside ['capedcrusaderbat', 'disciplined', 'presence', 'utilitybelt', 'nimble', 'acrobatic', 'grimresolve', 'ffqtracking'] combo
    on hero1 of template batman (batman)
execInitAttrib: init utilitybelt attribute inside ['capedcrusaderbat', 'disciplined', 'presence', 'utilitybelt', 'nimble', 'acrobatic', 'grimresolve', 'ffqtracking'] combo
    on hero1 of template batman (batman)
execInitAttrib: init nimble attribute inside ['capedcrusaderbat', 'disciplined', 'presence', 'utilitybelt', 'nimble', 'acrobatic', 'grimresolve', 'ffqtracking'] combo
    on hero1 of template batman (batman)
execInitAttrib: init acrobatic attribute inside ['capedcrusaderbat', 'disciplined', 'presence', 'utilitybelt', 'nimble', 'acrobatic', 'grimresolve', 'ffqtracking'] combo
    on hero1 of template batman (batman)
execInitAttrib: init grimresolve attribute inside ['capedcrusaderbat', 'disciplined', 'presence', 'utilitybelt', 'nimble', 'acrobatic', 'grimresolve', 'ffqtracking'] combo
    on hero1 of template batman (batman)
execInitAttrib: init ffqtracking attribute inside ['capedcrusaderbat', 'disciplined', 'presence', 'utilitybelt', 'nimble', 'acrobatic', 'grimresolve', 'ffqtracking'] combo
    on hero1 of template batman (batman)
Plugin 'firehydrant' OnPostInit() called
Plugin 'zombie' has no OnPostInit()
Plugin 'freeroam_keepbuildingdamage' OnPostInit() called
Plugin 'm25ai_lowjumper' has no OnPostInit()
Plugin 'm25ai_realitymanipulation' has no OnPostInit()
Plugin 'cutscene_power' has no OnPostInit()
Plugin 'm25enc_opendoor' has no OnPostInit()
Plugin 'm25enc_simplechoice' has no OnPostInit()
spawn: 'position' parameter invalid type, should be string or tuple.
ff.DoEncCustom(2,cutscenes = [['alertcs', [['priority', 1], ['required', 'batman'], ['cutscene', 'CS_Start()', 'CS_Fade(3)', "CS_Camera('batman', dist=-160, yaw=0)", 'CS_UnFade(3)', "CS_Speak('batman', 'Hmm...it looks like they are packing up this equipment. Freeze was definitely working on something big...Maybe we can find a clue to their plans. Keep your eyes peeled for any documents or other leads.', force=0)", 'CS_End()']]], ['endcs', [['priority', 1], ['required', 'batman', 'robin'], ['cutscene', 'CS_Start()', "CS_Camera('batman', dist=-160, yaw=0)", 'CS_Speak(\'batman\', "It looks like we were right, Freeze is working for R\'as Al Ghul...", force=0)', "CS_TurnTo('robin', 'batman')", "CS_Camera('robin', dist=-160, yaw=0)", "CS_Speak('robin', 'Right, but what is this all about?', force=0)", "CS_Camera('batman', dist=-160, yaw=0)", 'CS_Speak(\'batman\', "What is it always about with R\'as? Doomsday...", force=0)', "CS_Camera('robin', dist=-160, yaw=0)", 'CS_Speak(\'robin\', "He\'s got Mr. Freeze building some kind of doomsday weapon?", force=0)', "CS_Camera('batman', dist=-160, yaw=0)", 'CS_Speak(\'batman\', "Do you remember a few years ago, when Grant Walker, the theme park magnate, built that \'ideal city\' off the coast of Gotham?", force=0)', "CS_Speak('robin', 'Ohh yeah, Oceaiana, that guy was all kinds of nuts!', force=0)", "CS_Animate('robin','ranged')", 'CS_Speak(\'batman\', "Right Robin, but he wanted to wipe out all but his select remnant of humanity, much like R\'as.", force=0)', 'CS_Speak(\'robin\', "And he was planning to use a jumbo sized version of \'ol Victor\'s freeze ray...I see! R\'as has Freeze working on a new version!", force=0)', 'CS_Speak(\'batman\', "Now that we know what he\'s up to, we\'ve got to stop him before R\'as can get his hands on that technology!", force=0)', 'CS_Speak(\'robin\', "But Batman, I still don\'t understand why Freeze is helping Methusala.", force=0)', 'CS_Speak(\'batman\', "I have a theory Robin, but there\'s only one way to find out for sure, and that\'s to track him down. Let\'s get out of here!", force=0)', 'CS_End()']]]], marker = 'encounter', actions="villains fight heroes, allies fight villains, object can be examined", objects = ['nazihq_secret_plans'],return_function="StorylineEncounterReturn")
Traceback (innermost last):
  File "C:\Program Files\Irrational Games\Freedom Force vs The 3rd Reich\.\DCUG\missions\scripts\m25story.py", line 250, 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 293, 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 383, 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 4193, 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 1342, 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 1408, 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 359, 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 240, in m25_spawn
    if js.Object_GetAttr(name,'complex'):
SystemError: NULL result without error in call_object
[/spoiler]
Title: Re: EZScript Comics
Post by: BentonGrey on December 15, 2007, 11:41:02 PM
Quote from: M25 on September 11, 2007, 09:28:20 AM
Quote from: BentonGrey on September 10, 2007, 09:03:14 PM
Also, can one of y'all give me an example of how the whole win/lose thing works?  Say I've got this encounter:

Encounter: Grab
Type: Snatch
Villains: thug_with_gun, thug_with_bat
Allies: civilian_female

How would I go about setting it up so that if they get away with the item, you lose the mission, but if you recover the item, you win?

Do you do something with the cutscene?

Item Lost Custscene:
Lose

Item Returned Cutscene:
Win

Or what?


You can choose to immediately win or lose a mission from the Next: section of the encounter.   Next: works on the end conditions (not the cutscenes), so you'd put them there.

For Snatch, it has three end conditions:  Item Lost, Item Recovered, and End.

If you want to lose the mission if the villains get away with the item, then use Item Lost

Next: If Item Lost: Lose

If you want to win the mission if the hero stops the villains, then use Item Recovered

Next: If Item Recovered: Win


If you want to win the mission no matter what happens, use End

Next: If End: Win


Of course, you can also use the more fine-grained actions as Imalonsof suggests, but you have to be careful to look up which end conditions are available based on which actions you use.



Also remember, that if EZscript reaches the end of your story file, it will automatically win the mission.


And yet another post by me....sorry guys, I'm just trying to make up for lost time here.  I'm curious about this win/lose function, as I've followed your example there, but in both missions I use it, if you lose the encounter, nothing happens.  For example:

[spoiler]#----------------------------------

Encounter: Guard8
Type: Flee the Scene
Villains: freeze_lackey
Marker: cave1
Primary Objective: "Sneak past the guards."
Next: If All Escaped: Lose
Next: If None Escaped: Win
Next: If Some Escaped: Lose

Start Cutscene:
Hero1 says, "We've been spotted! We have to take them out before they can alert the others!"

Villain1 Escapes:
Villain1 says, "It's the Bat! Raise the alarm!"
Hero1 says, "We've been discovered, now Freeze will evacuate the base!

None Escaped Cutscene:
Hero1 says, "Now to get a closer look at this operation..."[/spoiler]

In this encounter, I let the guy escape, and I didn't lose the mission.  Nothing happened.  I haven't tested the win thing yet, but it is the last encounter in the script, so it's probably not an issue.
Title: Re: EZScript Comics
Post by: GGiant on December 16, 2007, 01:50:50 AM
I don't really know about this but,
Next: If All Escaped: Lose
Next: If None Escaped: Win
Next: If Some Escaped: Lose
[/quote]
Why is there a Next: If ALL Escaped: Lose, When there's already an Next: If SOME Escaped: Lose or vice versa?
Although I don't know what I'm talking about so carry on... :unsure:
Title: Re: EZScript Comics
Post by: M25 on December 16, 2007, 10:09:38 AM
For the Win/Lose question: 

the Win and Lose worlds aren't being translated correctly internally under certain conditions.  What does that mean?  You did it right, but you found a bug.

As another quick fix, you can use __lose__  and __win__ instead of Lose and Win and it will work.  (That's two underscore characters on each side of the word).


Your Villain1 Escapes cutscene is incorrect though.  It should be labelled Villain Escapes Cutscene or freeze_lackey Escapes Cutscene


Encounter: Guard8
Type: Flee the Scene
Villains: freeze_lackey
Marker: cave1
Primary Objective: "Sneak past the guards."
Next: If All Escaped: __lose__
Next: If None Escaped: __win__
Next: If Some Escaped: __lose__

Start Cutscene:
Hero1 says, "We've been spotted! We have to take them out before they can alert the others!"

Villain Escapes Cutscene:
Villain1 says, "It's the Bat! Raise the alarm!"
Hero1 says, "We've been discovered, now Freeze will evacuate the base!

None Escaped Cutscene:
Hero1 says, "Now to get a closer look at this operation..."




For the Examine Encounter, I haven't been able to replicate the problem.   Make sure your object markers in this case end with 1  (encounter1_object1, encounter2_object1, encounter3_object1)

Title: Re: EZScript Comics
Post by: BentonGrey on December 17, 2007, 02:48:01 PM
Thanks for the help guys!  I haven't tested the __lose__ thing yet, but it seems like it should work.  I have been testing the other mission with the Examine cutscene, and I've established that everything works beautifully when I specify a marker.  However, when I leave it up for random encounters it refuses to play.  I can't figure it out, I seem to have the positional markers for encounters1-10 set up appropriately, along with their particular object markers.  Still, it's not a problem, I'll simply specify a marker, and people will just have to get over it not being random.
Title: Re: EZScript Comics
Post by: BentonGrey on December 18, 2007, 06:33:28 PM
Howdy guys, the base scene of the first Atom mission is still not working.  As a matter of fact, now it isn't even unfading.

[spoiler]#--------------------------------------
#
#  Sample Base cutscenes for EZ script
#
#--------------------------------------


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.
# sc_pat_sign_diamond_small17 teleports to closet1

Encounter: Start
Type: Base

Start Cutscene:
Camera on mainroom1
Unfade for 3 seconds
Narrator says, "In quiet, peaceful Ivy Town, all is not as it appears. A local

jewelrey store holds the beginning of a strange story..."
Camera on jewler to customer
jewler turns to customer
customer turns to jewler
jewler says, "Well sir, it is a beautiful stone, I'm sure that she would love

it."
customer says, "hmm...I'm sure she would...but it is very pricey...could I see

something a little less expensive?"
jewler says, "Of course sir, I'll just be a moment."
jewler moves to mainroom2
Camera on jewler
Wait for 2 seconds
jewler moves to mainroom1_ally1
Camera on customer
jewler plays animation melee
jewler says, "What did you do with the diamond?! Return it immediately!"
customer plays animaiton stunned
customer says, "Wh-what are you talking about? It was right there, I didn't do

anything with it!"
jewler plays animation ranged
jewler says, "Well, don't try and run off, the police are going to want to have

a word with you, mister!"


#
# 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

Start Cutscene:
Camera on ray_palmer
ray_palmer says, "Hmm..if the dwarf star matter has the abilities to warp

mass..."
ray_palmer plays animation ranged
jean_loring moves to boss1
jean_loring says, "Ray? Do you have a minute?"
ray_palmer turns to jean_loring
ray_palmer says, "Hi honey, of course, I've always got time for you."
jean_loring says, "The strangest thing happened today, and I wanted to tell you

about it."
ray_palmer says, "Well, I'm not making any progress here, let's hear your

story. What happened?"
jean_loring says, "A man named Greg Adams came into my office a few hours ago,

and asked me to defend him in court. Apparently, he is accused of stealing a

valuable diamond."
ray_palmer says, "Well, that doesn't sound particularly strange, what's his

alibi?"
jean_loring says, "That's where it gets weird, he claims that the gem just

'disappeared.' He says the clerk walked away, looking for another stone, and

Mr. Adams himself was looking at something else in the display case."
jean_loring says, "The next thing he knew, the clerk had returned and was

calling him a theif."
ray_palmer says, "And neither of them saw anyone take the stone?"
jean_loring says, "No, and neither did anyone else in the store, isn't that

bizarre? Whoever the theif was, he was very clever."
ray_palmer says, "I suppose so, that is very strange, so, how does the case

look?"
jean_loring says, "Ohh, it should be simple enough, the evidence against Mr.

Adams is all circumstantial, but if he's not the thief, who is?"
ray_palmer says, "Yes, that is the question, isn't it?"
jean_loring says, "Well, thanks for listening darling, but I suppose I had

better let you get back to work, I'll see you for dinner tonight?"
ray_palmer says, "I wouldn't miss it for the world dear..."
jean_loring moves to firstdoor1
ray_palmer turns to seconddoor1
ray_palmer says, "Hmm...this is quite a pretty mystery...I wonder if the Atom

might be able to find something the police might have overlooked?"
ray_palmer moves to seconddoor1

[/spoiler]

Any suggestions?
Title: Re: EZScript Comics
Post by: M25 on December 19, 2007, 11:05:01 AM
Go into m25config.py and set

M25_USE_REPORTS = 1

Then post the script.log


Other than that, make sure you have an encounter1 marker on the base map.

Title: Re: EZScript Comics
Post by: BentonGrey on January 08, 2008, 02:47:48 PM
Thanks M, I'll try and do that when I come back to the Atom missions.  In the meantime, I'm trying to finish the JLA campaign, but I'm stuck on the second mission.  I'm having trouble with one encounter in particular.  What I WANT to happen is, Batman has to leave the room he's in and go to another room, where a new encounter will start, spawning villains BEHIND him.  I've tried using Local Cutscene, but the cs didn't play when he neared the designated marker.  I'm assuming that you can't designate a marker for those.  I suppose I need to use a custom encounter, but I'm not really sure what I need to have in it.
Title: Re: EZScript Comics
Post by: M25 on January 10, 2008, 07:57:57 AM
EZ script triggers encounters when the hero nears an object/villain/minion/ally etc. that belongs to the encounter.  Just having a marker isn't enough (though I can see how that would be better in this case). 

Have the Local Cutscene spawn some sort of object (even a ffx_tiggot should work) and it will trigger when the hero gets near it.

Title: Re: EZScript Comics
Post by: BentonGrey on January 10, 2008, 09:40:24 AM
Thanks M, that makes perfect sense!
Title: Re: EZScript Comics
Post by: BentonGrey on February 13, 2008, 12:51:05 PM
Howdy guys, I've been working on the JLA campaign again, and everything seems to be working well this time.  Bats died before I could finish the level, and I don't have time to go through the whole thing again just now, so I glanced at the script.log to see if everything was copasetic.  I noticed this error, and I was wondering if it means anything:

[spoiler]ff.DoEncWait(9,cutscenes = [], marker = 'encounter', minimumtime = '160',return_function="StorylineEncounterReturn")
Traceback (innermost last):
  File "C:\Program Files\Irrational Games\Freedom Force vs The 3rd Reich\.\DCUG\missions\scripts\m25story.py", line 250, 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 293, 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 383, 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 4112, in DoEncWait
    wait_time = randint(int(minimumtime),int(maximumtime))
  File ".\System\PythonLib\whrandom.py", line 92, in randint
    return self.randrange(a, b+1)
  File ".\System\PythonLib\whrandom.py", line 122, in randrange
    raise ValueError, "empty range for randrange()"
ValueError: empty range for randrange()[/spoiler]

I have EZScript doing a 'wait' with a minute and a half as the minimum time before Superman shows up and the mission ends.  Here's the code:

[spoiler]#-------------------------------------------------------------

Encounter: Timer
Type: Wait
Minimum Time: 160

#-------------------------------------------------------------
[/spoiler]

Just wanted to make sure I hadn't screwed up something apparently simple.
Title: Re: EZScript Comics
Post by: M25 on February 13, 2008, 01:26:41 PM
Add in a maximum time as well.

Maximum Time: 170

Oh, and a minute-and-a-half would actually be 90 seconds, but I'm sure you knew that. 
Title: Re: EZScript Comics
Post by: BentonGrey on February 13, 2008, 02:06:42 PM
Thanks M!  D'oh!  I meant to say two and a half (about).
Title: Re: EZScript Comics
Post by: BentonGrey on February 14, 2008, 02:25:39 PM
Okay, JLA#2 is done, and JLA#3, of course, has hit a snag in the very beginning.  I've got Superman searching for Jimmy Olsen, and encountering a number of traps.  What's happening is the opening cutscene plays fine, then Supes is stuck and cannot be moved for several minutes.  When I finally got him moving, I found that the first encounter had spawned, but the cutscenes did not play.  Here's my script:

[spoiler]#Heroes: Superman
#Map: JLA#3-Superman

Story: JLA3

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

Encounter: Begin
Type: Cutscene

Start Cutscene:
Fade for 2 seconds
Narrator says, "Back in Metropolis, Superman heads for S.T.A.R. Labs in an effort to obtains some answers about the mysterious threat in orbit, but he finds himself distracted by a danger closer to home."
Camera on Hero1
Unfade for 3 seconds
Hero1 plays animation pain
Hero1 says, "Ohh! Jimmy's wristcom's signal...he must be in trouble! S.T.A.R. Labs will have to wait..."

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

Encounter: Trap1
Type: Switchable Power Trap
Villains: disguise_martian, disguise_martian, disguise_martian
Allies: jimmy_olsen
Item: nazihq_hypno_sphere, nazihq_hypno_sphere
Switches: switch, switch, switch
Trap Power: martianw gauntlet
Next: alien1

Start Cutscene:
Camera on Ally1
Ally1 turns to Hero1
Hero1 turns to Ally1
Camera on Hero1
Hero1 says, "Jimmy! Are you alright?"
Camera on Villain1
Villain1 turns to Hero1
Villain1 plays animation melee
Villain1 says, "<The Kryptonian has blundered into our trap, activate the weapons!>"
Camera on Hero1
Hero1 says, "Jimmy, have they harmed you? Why don't you say something?"

End Cutscene:
Camera on Hero1
Hero1 moves to Ally1
Hero1 says, "A little X-Ray vision solves this mystery, you're nothing but a hologram, are you?"
Hero1 says, "But where is the real Olsen? If I concentrate, maybe my super hearing can find him..."
Hero1 plays animation stunned
Hero1 plays animation ranged
Hero1 says, "Ah, found him!"

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

Encounter: Trap2
Type: Custom
Actions: Item Exists, Villains Fight Heroes, Item Starts On Ground, Item Has Power, Atom Uses Power on Heroes, Item Can Be Switched Off, Switches Exist, Allies Can Be Freed, Allies In Cages
Villains: disguise_martian, disguise_martian, disguise_martian, disguise_martian
Allies: jimmy_olsen
Item: nazihq_hypno_sphere, nazihq_hypno_sphere
Switches: switch, switch, switch
Trap Power: martianw gauntlet
Next: alien2

Start Cutscene:
Camera on Hero1
Hero1 turns to Villain1
Hero1 says, "If you've hurt him, you'll regret it...whatever you are!"
Camera on Villain1
Villain1 turns to Hero1
Villain1 plays animation power
Villain1 says, "<The kryptonian survived our first trap, destroy him!>"

End Cutscene:
Ally1 moves to Hero1
Hero1 turns to Ally1
Ally1 says, "Su..Superman? What...what happened?"
Hero1 says, "I was hoping you could tell me Jimmy, I came back to town and got a distress call from your watch."
Ally1 says, "Well, gee Superman, I don't know...I was trying to get some shots of the new display at the museum when these military guys walked up, said something about how I needed to come with them...and that's all I can remember."
Hero1 says, "Well, you better get back to the Planet Jimmy, there might be more of these things around."

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

Encounter: Boom
Type: Disarm Bomb
Villains: disguise_martian, disguise_martian, disguise_martian, disguise_martian
Bomb: nazihq_temporal_amplifier
Next: If Bomb Disarmed: __win__
Next: If Bomb Exploded: __lose__

Alert Cutscene:
Camera on Hero1
Hero1 plays animation pain
Villain1 says telepathically, "Kryptonian! We know who you are, we know what you are!"
Hero1 plays animation stunned
Hero1 says, "A voice...in my mind!"
Villain1 says telepathically, "We possess a bomb powerful enough to vaporize this miserable little collection of primitve hovels. If you wish these morsels you call humans to survive, you have two minutes to surrender to us, and we shall spare them!"
Hero1 says, "I've got to find that bomb!"

Bomb Exploded Cutscene:
Camera on Hero1
Hero1 says, "No! I failed, I was too slow...but I'm never too slow!"
Fade for 2 seconds

End Cutscene:
Camera on Hero1
Hero1 says, "Well, that should teach them to stay out of Metropolis! Now on to S.T.A.R. Labs for some answers..."



[/spoiler]

And here's the error I'm getting:

[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 1203026682.078000
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
FFX Mission Plugin 'freeroam_keepbuildingdamage' imported
FFX Mission Plugin 'm25ai_lowjumper' imported
FFX Mission Plugin 'm25ai_realitymanipulation' imported
FFX Mission Plugin 'cutscene_power' imported
Loading     m25enc_OPENDOOR.py v.1.0.0 build 0; branch = main
FFX Mission Plugin 'm25enc_opendoor' imported
Loading     m25enc_simplechoice.py v.1.0.0 build 0; branch = main
FFX Mission Plugin 'm25enc_simplechoice' imported
Starting Built-In Function Wrapper 1.5
('Object_CalcPrestige', 'js')
>>> C:\Documents and Settings\Owner\Local Settings\Application Data\Irrational Games\Freedom Force vs the 3rd Reich\temp\MiniMod JLA3.py executed
>>> C:\Documents and Settings\Owner\Local Settings\Application Data\Irrational Games\Freedom Force vs the 3rd Reich\temp\danger.py executed
! GetMapInfo
>>> C:\Documents and Settings\Owner\Local Settings\Application Data\Irrational Games\Freedom Force vs the 3rd Reich\temp\MiniMod JLA3.py executed
MLOG_Init(keepRunningModules=0): starting up
mlogreader.MLOG_Init: current mission = 'CITY LANDMARKS'
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
numberStr=67
storing hero_0: id_1,-67
initialising FFQ_initialiseExtras()
FFX_UpdateSun: getting default sun
FFX_UpdateSun: setting = (-140.0, 70.0, 1.0, 0.800000011921, (0.699999988079, 0.600000023842, 0.600000023842))
initAttribsForChar: working on civilian_female_1 (carrol_ferris)
initAttribsForChar: working on civilian_male_2 (astronaut)
initAttribsForChar: working on civilian_female_3 (carrol_ferris)
initAttribsForChar: working on civilian_male_3 (astronaut)
initAttribsForChar: working on civilian_male_4 (astronaut)
initAttribsForChar: working on civilian_female_2 (carrol_ferris)
initAttribsForChar: working on civilian_female_4 (carrol_ferris)
initAttribsForChar: working on civilian_male_1 (astronaut)
initAttribsForChar: working on hero_0 (superman)
initAttribsForChar (superman): looking at attribute bedevilled
initAttribsForChar (superman): looking at attribute kryptonian
execInitAttrib: init ffqnimbleflier attribute inside ['kryptonian', 'ffqnimbleflier', 'vulnerability', 'fastflier', 'invulnerable', 'toughguy2', 'heavylifter'] combo
    on hero_0 of template custom_template_67 (superman)
execInitAttrib: init vulnerability attribute inside ['kryptonian', 'ffqnimbleflier', 'vulnerability', 'fastflier', 'invulnerable', 'toughguy2', 'heavylifter'] combo
    on hero_0 of template custom_template_67 (superman)
execInitAttrib: init fastflier attribute inside ['kryptonian', 'ffqnimbleflier', 'vulnerability', 'fastflier', 'invulnerable', 'toughguy2', 'heavylifter'] combo
    on hero_0 of template custom_template_67 (superman)
execInitAttrib: init invulnerable attribute inside ['kryptonian', 'ffqnimbleflier', 'vulnerability', 'fastflier', 'invulnerable', 'toughguy2', 'heavylifter'] combo
    on hero_0 of template custom_template_67 (superman)
execInitAttrib: init toughguy2 attribute inside ['kryptonian', 'ffqnimbleflier', 'vulnerability', 'fastflier', 'invulnerable', 'toughguy2', 'heavylifter'] combo
    on hero_0 of template custom_template_67 (superman)
inittoughguy2: char=<hero_0>
inittoughguy2: initializing for hero_0
execInitAttrib: init heavylifter attribute inside ['kryptonian', 'ffqnimbleflier', 'vulnerability', 'fastflier', 'invulnerable', 'toughguy2', 'heavylifter'] combo
    on hero_0 of template custom_template_67 (superman)
initAttribsForChar (superman): looking at attribute flier
initAttribsForChar (superman): looking at attribute heavy hitter
initAttribsForChar (superman): looking at attribute accidentalchange
execInitAttrib: init accidentalchange attribute
    on hero_0 of template custom_template_67 (superman)
accidental change
superman
isNever
Plugin 'firehydrant' OnPostInit() called
Plugin 'zombie' has no OnPostInit()
Plugin 'freeroam_keepbuildingdamage' OnPostInit() called
Plugin 'm25ai_lowjumper' has no OnPostInit()
Plugin 'm25ai_realitymanipulation' has no OnPostInit()
Plugin 'cutscene_power' has no OnPostInit()
Plugin 'm25enc_opendoor' has no OnPostInit()
Plugin 'm25enc_simplechoice' has no OnPostInit()
ff.EncCustom_ItemStartsOnGround_Setup(2)
exceptions.RuntimeError Object_Spawn(): Failed to resolve object pos - m25obj_16
ff.DoEncCustom(2,villains = ['disguise_martian', 'disguise_martian', 'disguise_martian'], cutscenes = [['startcs', [['priority', 1], ['replace', ['ally1', 'ally'], ['hero1', 'hero'], ['villain1', 'villain']], ['cutscene', 'CS_Start()', "CS_Camera('ally1', dist=-160, yaw=0)", "CS_TurnTo('ally1', 'hero1')", "CS_TurnTo('hero1', 'ally1')", "CS_Camera('hero1', dist=-160, yaw=0)", "CS_Speak('hero1', 'Jimmy! Are you alright?', force=0)", "CS_Camera('villain1', dist=-160, yaw=0)", "CS_TurnTo('villain1', 'hero1')", "CS_Animate('villain1','melee')", "CS_Speak('villain1', '<The Kryptonian has blundered into our trap, activate the weapons!>', force=0)", "CS_Camera('hero1', dist=-160, yaw=0)", 'CS_Speak(\'hero1\', "Jimmy, have they harmed you? Why don\'t you say something?", force=0)', 'CS_End()']]], ['endcs', [['priority', 1], ['replace', ['hero1', 'hero'], ['ally1', 'ally']], ['cutscene', 'CS_Start()', "CS_Camera('hero1', dist=-160, yaw=0)", "CS_MoveTo('hero1', 'ally1')", 'CS_Speak(\'hero1\', "A little X-Ray vision solves this mystery, you\'re nothing but a hologram, are you?", force=0)', "CS_Speak('hero1', 'But where is the real Olsen? If I concentrate, maybe my super hearing can find him...', force=0)", "CS_Animate('hero1','stunned')", "CS_Animate('hero1','ranged')", "CS_Speak('hero1', 'Ah, found him!', force=0)", 'CS_End()']]]], marker = 'encounter', actions="item exists, item starts on ground, item has power, item uses power on heroes, switches exist, item can be switched off, item is invulnerable", allies = ['jimmy_olsen'], item = 'nazihq_hypno_sphere, nazihq_hypno_sphere', switches = 'switch, switch, switch', trappower = 'martianw gauntlet',return_function="StorylineEncounterReturn")
Traceback (innermost last):
  File "C:\Program Files\Irrational Games\Freedom Force vs The 3rd Reich\.\DCUG\missions\scripts\m25story.py", line 250, 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 293, 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 383, 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 4193, 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 1357, in SetupEncounter
    SetupEnc_CallPost(enc_id, encounter)
  File "C:\Program Files\Irrational Games\Freedom Force vs The 3rd Reich\.\DCUG\missions\scripts\m25enc.py", line 1500, in SetupEnc_CallPost
    exec 'ff.' + s + '(' + `enc_id` + ')'            
  File "<string>", line 1, in ?
  File "C:\Program Files\Irrational Games\Freedom Force vs The 3rd Reich\.\DCUG\missions\scripts\m25enc.py", line 4980, in EncCustom_ItemStartsOnGround_Setup
    js.Object_Spawn(name, item, marker)
RuntimeError: Object_Spawn(): Failed to resolve object pos - m25obj_16
initAttribsForChar: working on m25obj_14 (jimmy_olsen)
initAttribsForChar: working on m25obj_12 (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_12 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_12 of template disguise_martian (disguise_martian)
execInitAttrib: init toughguy2 attribute inside ['white_martian', 'disciplined', 'toughguy2'] combo
    on m25obj_12 of template disguise_martian (disguise_martian)
inittoughguy2: char=<m25obj_12>
inittoughguy2: initializing for m25obj_12
initAttribsForChar (disguise_martian): looking at attribute invulnerable0
execInitAttrib: init invulnerable0 attribute
    on m25obj_12 of template disguise_martian (disguise_martian)
initAttribsForChar: working on m25obj_8 (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_8 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_8 of template disguise_martian (disguise_martian)
execInitAttrib: init toughguy2 attribute inside ['white_martian', 'disciplined', 'toughguy2'] combo
    on m25obj_8 of template disguise_martian (disguise_martian)
inittoughguy2: char=<m25obj_8>
inittoughguy2: initializing for m25obj_8
initAttribsForChar (disguise_martian): looking at attribute invulnerable0
execInitAttrib: init invulnerable0 attribute
    on m25obj_8 of template disguise_martian (disguise_martian)
initAttribsForChar: working on m25obj_10 (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_10 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_10 of template disguise_martian (disguise_martian)
execInitAttrib: init toughguy2 attribute inside ['white_martian', 'disciplined', 'toughguy2'] combo
    on m25obj_10 of template disguise_martian (disguise_martian)
inittoughguy2: char=<m25obj_10>
inittoughguy2: initializing for m25obj_10
initAttribsForChar (disguise_martian): looking at attribute invulnerable0
execInitAttrib: init invulnerable0 attribute
    on m25obj_10 of template disguise_martian (disguise_martian)
Traceback (innermost last):
  File "C:\Program Files\Irrational Games\Freedom Force vs The 3rd Reich\.\DCUG\missions\scripts\skXMapInfo.py", line 685, in MapInfo_CheckObjects2
    Object_UpdateGridPos (ms)
  File "C:\Program Files\Irrational Games\Freedom Force vs The 3rd Reich\.\DCUG\missions\scripts\skXMapInfo.py", line 565, in Object_UpdateGridPos
    if ts not in ff.MapInfo [maGrid
Title: Re: EZScript Comics
Post by: M25 on February 14, 2008, 05:04:40 PM
If you haven't, go to


http://ezscript.wikispaces.com/Plug-ins

and grab the update to EZ Script.   I believe it should fix the problem.

Title: Re: EZScript Comics
Post by: BentonGrey on February 15, 2008, 11:00:29 AM
Thanks for the response M, but I downloaded all of those updates and installed them, only to find the same error:

[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 1203101723.238000
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
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 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\MiniMod JLA3.py executed
>>> C:\Documents and Settings\Owner\Local Settings\Application Data\Irrational Games\Freedom Force vs the 3rd Reich\temp\danger.py executed
! GetMapInfo
>>> C:\Documents and Settings\Owner\Local Settings\Application Data\Irrational Games\Freedom Force vs the 3rd Reich\temp\MiniMod JLA3.py executed
MLOG_Init(keepRunningModules=0): starting up
mlogreader.MLOG_Init: current mission = 'CITY LANDMARKS'
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
numberStr=67
storing hero_0: id_1,-67
initialising FFQ_initialiseExtras()
FFX_UpdateSun: getting default sun
FFX_UpdateSun: setting = (-140.0, 70.0, 1.0, 0.800000011921, (0.699999988079, 0.600000023842, 0.600000023842))
initAttribsForChar: working on civilian_female_1 (carrol_ferris)
initAttribsForChar: working on civilian_male_2 (astronaut)
initAttribsForChar: working on civilian_female_3 (carrol_ferris)
initAttribsForChar: working on civilian_male_3 (astronaut)
initAttribsForChar: working on civilian_male_4 (astronaut)
initAttribsForChar: working on civilian_female_2 (carrol_ferris)
initAttribsForChar: working on civilian_female_4 (carrol_ferris)
initAttribsForChar: working on civilian_male_1 (astronaut)
initAttribsForChar: working on hero_0 (superman)
initAttribsForChar (superman): looking at attribute bedevilled
initAttribsForChar (superman): looking at attribute kryptonian
execInitAttrib: init ffqnimbleflier attribute inside ['kryptonian', 'ffqnimbleflier', 'vulnerability', 'fastflier', 'invulnerable', 'toughguy2', 'heavylifter'] combo
    on hero_0 of template custom_template_67 (superman)
execInitAttrib: init vulnerability attribute inside ['kryptonian', 'ffqnimbleflier', 'vulnerability', 'fastflier', 'invulnerable', 'toughguy2', 'heavylifter'] combo
    on hero_0 of template custom_template_67 (superman)
execInitAttrib: init fastflier attribute inside ['kryptonian', 'ffqnimbleflier', 'vulnerability', 'fastflier', 'invulnerable', 'toughguy2', 'heavylifter'] combo
    on hero_0 of template custom_template_67 (superman)
execInitAttrib: init invulnerable attribute inside ['kryptonian', 'ffqnimbleflier', 'vulnerability', 'fastflier', 'invulnerable', 'toughguy2', 'heavylifter'] combo
    on hero_0 of template custom_template_67 (superman)
execInitAttrib: init toughguy2 attribute inside ['kryptonian', 'ffqnimbleflier', 'vulnerability', 'fastflier', 'invulnerable', 'toughguy2', 'heavylifter'] combo
    on hero_0 of template custom_template_67 (superman)
inittoughguy2: char=<hero_0>
inittoughguy2: initializing for hero_0
execInitAttrib: init heavylifter attribute inside ['kryptonian', 'ffqnimbleflier', 'vulnerability', 'fastflier', 'invulnerable', 'toughguy2', 'heavylifter'] combo
    on hero_0 of template custom_template_67 (superman)
initAttribsForChar (superman): looking at attribute flier
initAttribsForChar (superman): looking at attribute heavy hitter
initAttribsForChar (superman): looking at attribute accidentalchange
execInitAttrib: init accidentalchange attribute
    on hero_0 of template custom_template_67 (superman)
accidental change
superman
isNever
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()
ff.EncCustom_ItemStartsOnGround_Setup(2)
exceptions.RuntimeError Object_Spawn(): Failed to resolve object pos - m25obj_16
ff.DoEncCustom(2,villains = ['disguise_martian', 'disguise_martian', 'disguise_martian'], cutscenes = [['startcs', [['priority', 1], ['replace', ['ally1', 'ally'], ['hero1', 'hero'], ['villain1', 'villain']], ['cutscene', 'CS_Start()', "CS_Camera('ally1', dist=-160, yaw=0)", "CS_TurnTo('ally1', 'hero1')", "CS_TurnTo('hero1', 'ally1')", "CS_Camera('hero1', dist=-160, yaw=0)", "CS_Speak('hero1', 'Jimmy! Are you alright?', force=0)", "CS_Camera('villain1', dist=-160, yaw=0)", "CS_TurnTo('villain1', 'hero1')", "CS_Animate('villain1','melee')", "CS_Speak('villain1', '<The Kryptonian has blundered into our trap, activate the weapons!>', force=0)", "CS_Camera('hero1', dist=-160, yaw=0)", 'CS_Speak(\'hero1\', "Jimmy, have they harmed you? Why don\'t you say something?", force=0)', 'CS_End()']]], ['endcs', [['priority', 1], ['replace', ['hero1', 'hero'], ['ally1', 'ally']], ['cutscene', 'CS_Start()', "CS_Camera('hero1', dist=-160, yaw=0)", "CS_MoveTo('hero1', 'ally1')", 'CS_Speak(\'hero1\', "A little X-Ray vision solves this mystery, you\'re nothing but a hologram, are you?", force=0)', "CS_Speak('hero1', 'But where is the real Olsen? If I concentrate, maybe my super hearing can find him...', force=0)", "CS_Animate('hero1','stunned')", "CS_Animate('hero1','ranged')", "CS_Speak('hero1', 'Ah, found him!', force=0)", 'CS_End()']]]], marker = 'encounter', actions="item exists, item starts on ground, item has power, item uses power on heroes, switches exist, item can be switched off, item is invulnerable", allies = ['jimmy_olsen'], item = 'nazihq_hypno_sphere, nazihq_hypno_sphere', switches = ['switch', 'switch', 'switch'], trappower = 'martianw gauntlet',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 4206, 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
    SetupEnc_CallPost(enc_id, encounter)
  File "C:\Program Files\Irrational Games\Freedom Force vs The 3rd Reich\.\DCUG\missions\scripts\m25enc.py", line 1509, in SetupEnc_CallPost
    exec 'ff.' + s + '(' + `enc_id` + ')'            
  File "<string>", line 1, in ?
  File "C:\Program Files\Irrational Games\Freedom Force vs The 3rd Reich\.\DCUG\missions\scripts\m25enc.py", line 5003, in EncCustom_ItemStartsOnGround_Setup
    js.Object_Spawn(name, item, marker)
RuntimeError: Object_Spawn(): Failed to resolve object pos - m25obj_16
initAttribsForChar: working on m25obj_14 (jimmy_olsen)
initAttribsForChar: working on m25obj_12 (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_12 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_12 of template disguise_martian (disguise_martian)
execInitAttrib: init toughguy2 attribute inside ['white_martian', 'disciplined', 'toughguy2'] combo
    on m25obj_12 of template disguise_martian (disguise_martian)
inittoughguy2: char=<m25obj_12>
inittoughguy2: initializing for m25obj_12
initAttribsForChar (disguise_martian): looking at attribute invulnerable0
execInitAttrib: init invulnerable0 attribute
    on m25obj_12 of template disguise_martian (disguise_martian)
initAttribsForChar: working on m25obj_8 (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_8 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_8 of template disguise_martian (disguise_martian)
execInitAttrib: init toughguy2 attribute inside ['white_martian', 'disciplined', 'toughguy2'] combo
    on m25obj_8 of template disguise_martian (disguise_martian)
inittoughguy2: char=<m25obj_8>
inittoughguy2: initializing for m25obj_8
initAttribsForChar (disguise_martian): looking at attribute invulnerable0
execInitAttrib: init invulnerable0 attribute
    on m25obj_8 of template disguise_martian (disguise_martian)
initAttribsForChar: working on m25obj_10 (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_10 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_10 of template disguise_martian (disguise_martian)
execInitAttrib: init toughguy2 attribute inside ['white_martian', 'disciplined', 'toughguy2'] combo
    on m25obj_10 of template disguise_martian (disguise_martian)
inittoughguy2: char=<m25obj_10>
inittoughguy2: initializing for m25obj_10
initAttribsForChar (disguise_martian): looking at attribute invulnerable0
execInitAttrib: init invulnerable0 attribute
    on m25obj_10 of template disguise_martian (disguise_martian)
[/spoiler]

I'm calling for two of the same item in each encounter, could that be causing problems?  Plus, Supes is still stuck for a time in the beginning of the level.
Title: Re: EZScript Comics
Post by: M25 on February 15, 2008, 04:16:03 PM
Yes, you're right.  The multiple items is causing the problem.  It's only set up to allow one item per encounter.  Try using a single item.

Title: Re: EZScript Comics
Post by: BentonGrey on March 20, 2008, 11:19:01 AM
Okay, it's been a while since I had time to work on JLA#3, but I've finished the map for it today and have been trying to put it through its paces.  Tons of problems, as usual, meet my efforts.  First, Superman is still stuck when the level initiates.  I realized that the level didn't have a skirmish spawn and thought that might be the cause of it...but nope, still stuck.  I can free him by clicking 'turn on AI' which doesn't actually turn on the AI, but does seem to allow me to move him.  The first cutscene is still not playing, even after I've changed a lot of stuff and gotten rid of the extra items.  I'm thinking it might have something to do with the teleportation I'm calling for, but it's the same code that WORKS in my first Batman mission....I'm sort of stymied here guys.  Plus, my latest attempt crashed the game.  Here's the script.log, with no discernible errors.

[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 1206036599.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
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
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 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\MiniMod JLA3.py executed
>>> C:\Documents and Settings\Owner\Local Settings\Application Data\Irrational Games\Freedom Force vs the 3rd Reich\temp\danger.py executed
! GetMapInfo
Building_GetDimensions() non-fatal error:
    template 'building_skyscraper' not found in list of building dimensions.
    To detect approximate dimensions, use
    getBuildingDimensions ()
Building_GetDimensions() non-fatal error:
    template 'building_skyscraper' not found in list of building dimensions.
    To detect approximate dimensions, use
    getBuildingDimensions ()
Building_GetDimensions() non-fatal error:
    template 'building_skyscraper' not found in list of building dimensions.
    To detect approximate dimensions, use
    getBuildingDimensions ()
Building_GetDimensions() non-fatal error:
    template 'building_skyscraper' not found in list of building dimensions.
    To detect approximate dimensions, use
    getBuildingDimensions ()
Building_GetDimensions() non-fatal error:
    template 'building_skyscraper' not found in list of building dimensions.
    To detect approximate dimensions, use
    getBuildingDimensions ()
Building_GetDimensions() non-fatal error:
    template 'building_skyscraper' not found in list of building dimensions.
    To detect approximate dimensions, use
    getBuildingDimensions ()
Building_GetDimensions() non-fatal error:
    template 'building_skyscraper' not found in list of building dimensions.
    To detect approximate dimensions, use
    getBuildingDimensions ()
Building_GetDimensions() non-fatal error:
    template 'building_skyscraper' not found in list of building dimensions.
    To detect approximate dimensions, use
    getBuildingDimensions ()
>>> C:\Documents and Settings\Owner\Local Settings\Application Data\Irrational Games\Freedom Force vs the 3rd Reich\temp\MiniMod JLA3.py executed
MLOG_Init(keepRunningModules=0): starting up
mlogreader.MLOG_Init: current mission = '03_JLA'
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
numberStr=67
storing hero_1: id_1,-67
initialising FFQ_initialiseExtras()
FFX_UpdateSun: getting default sun
FFX_UpdateSun: setting = (-137.0, 57.0, 1.5, 0.20000000298, (0.20000000298, 0.20000000298, 0.600000023842))
initAttribsForChar: working on civilian_male27 (astronaut)
initAttribsForChar: working on civilian_male1 (astronaut)
initAttribsForChar: working on civilian_female2 (carrol_ferris)
initAttribsForChar: working on civilian_female11 (carrol_ferris)
initAttribsForChar: working on civilian_male14 (astronaut)
initAttribsForChar: working on civilian_male6 (astronaut)
initAttribsForChar: working on civilian_female3 (carrol_ferris)
initAttribsForChar: working on civilian_male28 (astronaut)
initAttribsForChar: working on civilian_male19 (astronaut)
initAttribsForChar: working on civilian_male23 (astronaut)
initAttribsForChar: working on civilian_female13 (carrol_ferris)
initAttribsForChar: working on civilian_female21 (carrol_ferris)
initAttribsForChar: working on civilian_female4 (carrol_ferris)
initAttribsForChar: working on civilian_female23 (carrol_ferris)
initAttribsForChar: working on civilian_male2 (astronaut)
initAttribsForChar: working on civilian_female15 (carrol_ferris)
initAttribsForChar: working on civilian_male10 (astronaut)
initAttribsForChar: working on civilian_male15 (astronaut)
initAttribsForChar: working on civilian_male24 (astronaut)
initAttribsForChar: working on civilian_female17 (carrol_ferris)
initAttribsForChar: working on civilian_female5 (carrol_ferris)
initAttribsForChar: working on civilian_female25 (carrol_ferris)
initAttribsForChar: working on civilian_male7 (astronaut)
initAttribsForChar: working on civilian_group1_2 (astronaut)
initAttribsForChar: working on civilian_female19 (carrol_ferris)
initAttribsForChar: working on civilian_female6 (carrol_ferris)
initAttribsForChar: working on civilian_male3 (astronaut)
initAttribsForChar: working on civilian_male11 (astronaut)
initAttribsForChar: working on civilian_male20 (astronaut)
initAttribsForChar: working on civilian_female10 (carrol_ferris)
initAttribsForChar: working on civilian_male16 (astronaut)
initAttribsForChar: working on civilian_male25 (astronaut)
initAttribsForChar: working on civilian_female7 (carrol_ferris)
initAttribsForChar: working on civilian_female12 (carrol_ferris)
initAttribsForChar: working on civilian_male8 (astronaut)
initAttribsForChar: working on civilian_female20 (carrol_ferris)
initAttribsForChar: working on civilian_female8 (carrol_ferris)
initAttribsForChar: working on civilian_male4 (astronaut)
initAttribsForChar: working on civilian_female14 (carrol_ferris)
initAttribsForChar: working on civilian_male12 (astronaut)
initAttribsForChar: working on civilian_male17 (astronaut)
initAttribsForChar: working on civilian_female22 (carrol_ferris)
initAttribsForChar: working on civilian_male21 (astronaut)
initAttribsForChar: working on civilian_male26 (astronaut)
initAttribsForChar: working on civilian_female16 (carrol_ferris)
initAttribsForChar: working on civilian_female24 (carrol_ferris)
initAttribsForChar: working on civilian_male9 (astronaut)
initAttribsForChar: working on civilian_female9 (carrol_ferris)
initAttribsForChar: working on civilian_group1_1 (astronaut)
initAttribsForChar: working on civilian_male5 (astronaut)
initAttribsForChar: working on civilian_female1 (carrol_ferris)
initAttribsForChar: working on civilian_female18 (carrol_ferris)
initAttribsForChar: working on civilian_female26 (carrol_ferris)
initAttribsForChar: working on civilian_male22 (astronaut)
initAttribsForChar: working on civilian_male13 (astronaut)
initAttribsForChar: working on civilian_group1_3 (astronaut)
initAttribsForChar: working on civilian_male18 (astronaut)
initAttribsForChar: working on hero_1 (superman)
initAttribsForChar (superman): looking at attribute bedevilled
initAttribsForChar (superman): looking at attribute kryptonian
execInitAttrib: init ffqnimbleflier attribute inside ['kryptonian', 'ffqnimbleflier', 'vulnerability', 'fastflier', 'invulnerable', 'toughguy2', 'heavylifter'] combo
    on hero_1 of template custom_template_67 (superman)
execInitAttrib: init vulnerability attribute inside ['kryptonian', 'ffqnimbleflier', 'vulnerability', 'fastflier', 'invulnerable', 'toughguy2', 'heavylifter'] combo
    on hero_1 of template custom_template_67 (superman)
execInitAttrib: init fastflier attribute inside ['kryptonian', 'ffqnimbleflier', 'vulnerability', 'fastflier', 'invulnerable', 'toughguy2', 'heavylifter'] combo
    on hero_1 of template custom_template_67 (superman)
execInitAttrib: init invulnerable attribute inside ['kryptonian', 'ffqnimbleflier', 'vulnerability', 'fastflier', 'invulnerable', 'toughguy2', 'heavylifter'] combo
    on hero_1 of template custom_template_67 (superman)
execInitAttrib: init toughguy2 attribute inside ['kryptonian', 'ffqnimbleflier', 'vulnerability', 'fastflier', 'invulnerable', 'toughguy2', 'heavylifter'] combo
    on hero_1 of template custom_template_67 (superman)
inittoughguy2: char=<hero_1>
inittoughguy2: initializing for hero_1
execInitAttrib: init heavylifter attribute inside ['kryptonian', 'ffqnimbleflier', 'vulnerability', 'fastflier', 'invulnerable', 'toughguy2', 'heavylifter'] combo
    on hero_1 of template custom_template_67 (superman)
initAttribsForChar (superman): looking at attribute flier
initAttribsForChar (superman): looking at attribute heavy hitter
initAttribsForChar (superman): looking at attribute accidentalchange
execInitAttrib: init accidentalchange attribute
    on hero_1 of template custom_template_67 (superman)
accidental change
superman
isNever
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: working on m25obj_10 (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_10 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_10 of template disguise_martian (disguise_martian)
execInitAttrib: init toughguy2 attribute inside ['white_martian', 'disciplined', 'toughguy2'] combo
    on m25obj_10 of template disguise_martian (disguise_martian)
inittoughguy2: char=<m25obj_10>
inittoughguy2: initializing for m25obj_10
initAttribsForChar (disguise_martian): looking at attribute invulnerable0
execInitAttrib: init invulnerable0 attribute
    on m25obj_10 of template disguise_martian (disguise_martian)
initAttribsForChar: working on m25obj_8 (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_8 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_8 of template disguise_martian (disguise_martian)
execInitAttrib: init toughguy2 attribute inside ['white_martian', 'disciplined', 'toughguy2'] combo
    on m25obj_8 of template disguise_martian (disguise_martian)
inittoughguy2: char=<m25obj_8>
inittoughguy2: initializing for m25obj_8
initAttribsForChar (disguise_martian): looking at attribute invulnerable0
execInitAttrib: init invulnerable0 attribute
    on m25obj_8 of template disguise_martian (disguise_martian)
initAttribsForChar: working on m25obj_6 (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_6 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_6 of template disguise_martian (disguise_martian)
execInitAttrib: init toughguy2 attribute inside ['white_martian', 'disciplined', 'toughguy2'] combo
    on m25obj_6 of template disguise_martian (disguise_martian)
inittoughguy2: char=<m25obj_6>
inittoughguy2: initializing for m25obj_6
initAttribsForChar (disguise_martian): looking at attribute invulnerable0
execInitAttrib: init invulnerable0 attribute
    on m25obj_6 of template disguise_martian (disguise_martian)
initAttribsForChar: working on m25obj_4 (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_4 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_4 of template disguise_martian (disguise_martian)
execInitAttrib: init toughguy2 attribute inside ['white_martian', 'disciplined', 'toughguy2'] combo
    on m25obj_4 of template disguise_martian (disguise_martian)
inittoughguy2: char=<m25obj_4>
inittoughguy2: initializing for m25obj_4
initAttribsForChar (disguise_martian): looking at attribute invulnerable0
execInitAttrib: init invulnerable0 attribute
    on m25obj_4 of template disguise_martian (disguise_martian)
initAttribsForChar: working on m25obj_12 (jimmy_olsen)[/spoiler]


Title: Re: EZScript Comics
Post by: BentonGrey on March 20, 2008, 11:19:21 AM
And here is the non-working script:

[spoiler][spoiler]#Heroes: Superman
#Map: JLA#3-Superman

Story: JLA3

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

Encounter: Begin
Type: Cutscene

Start Cutscene:
Fade for 2 seconds
Narrator says, "Back in Metropolis, Superman heads for S.T.A.R. Labs in an effort to obtains some answers about the mysterious threat in orbit, but he finds himself distracted by a danger closer to home."
Camera on Hero1
Unfade for 3 seconds
Hero1 plays animation pain
Hero1 says, "Ohh! Jimmy's wristcom's signal...he must be in trouble! S.T.A.R. Labs will have to wait..."

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

Encounter: MTrap1
Type: Switchable Power Trap
Villains: disguise_martian, disguise_martian, disguise_martian, disguise_martian
Allies: jimmy_olsen
Item: nazihq_hypno_sphere
Switches: switch
Trap Power: martianw gauntlet
Marker: trap1
Next: alien1

Start Cutscene:
Fade for 2 seconds
Villain4 teleports to encounter1
Camera on Ally1
Unfade for 3 seconds
Ally1 turns to Hero1
Hero1 turns to Ally1
Camera on Hero1
Hero1 says, "Jimmy! Are you alright?"
Camera on Villain1
Villain1 turns to Hero1
Villain1 plays animation melee
Villain1 says, "<The Kryptonian has blundered into our trap, activate the weapons!>"
Camera on Hero1
Hero1 says, "Jimmy, have they harmed you? Why don't you say something?"
Camera on Ally1
Fade for 2 seconds
Ally1 teleports to trap2
Villain4 teleports to trap1_ally1
Camera on Villain4
Villain4 turns to Hero1
Unfade for 3 seconds
Villain4 says, "<Haha, now the fool dies!>"
Villain4 plays animation ranged
Camera on Hero1
Hero1 says, "A trap, that thing is some kind of shapeshifter!"
Hero1 says, "Who are you people, what do you want?"
Camera on Villain1
Villain1 says, "Your death Kryptonian!"

End Cutscene:
Camera on Hero1
Hero1 says, "A little X-Ray vision would have solved that mystery, still, it takes more than fancy technology to put me down...but where is the real Olsen? If I concentrate, maybe my super hearing can find him..."
Hero1 plays animation stunned
Hero1 plays animation ranged
Hero1 says, "Ah, found him!"

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

Encounter: MTrap2
Type: Custom
Actions: Item Exists, Villains Fight Heroes, Item Starts On Ground, Item Has Power, Atom Uses Power on Heroes, Item Can Be Switched Off, Switches Exist, Allies Can Be Freed, Allies In Cages
Villains: disguise_martian, disguise_martian, disguise_martian, disguise_martian
Allies: jimmy_olsen
Item: nazihq_hypno_sphere
Switches: switch
Trap Power: martianw gauntlet
Marker: trap2
Next: alien2

Alert Cutscene:
Red arrow on Villain1

Start Cutscene:
Camera on Hero1
Hero1 turns to Villain1
Hero1 says, "If you've hurt him, you'll regret it...whatever you are!"
Camera on Villain1
Villain1 turns to Hero1
Villain1 plays animation power
Villain1 says, "<The kryptonian survived our first trap, the yellow sun must give him more power than we anticipated. No matter, destroy him!>"

End Cutscene:
Ally1 moves to Hero1
Hero1 turns to Ally1
Ally1 says, "Su..Superman? What...what happened?"
Hero1 says, "I was hoping you could tell me Jimmy, I came back to town and got a distress call from your watch."
Ally1 says, "Well, gee Superman, I don't know...I was trying to get some shots of the new display at the museum when these military guys walked up, said something about how I needed to come with them...and that's all I can remember."
Hero1 says, "Well, you better get back to the Planet Jimmy, there might be more of these things around."

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

Encounter: Boom
Type: Disarm Bomb
Villains: disguise_martian, disguise_martian, disguise_martian, disguise_martian
Bomb: nazihq_temporal_amplifier
Next: If Bomb Disarmed: __win__
Next: If Bomb Exploded: __lose__

Alert Cutscene:
Camera on Hero1
Hero1 plays animation pain
Villain1 says telepathically, "Kryptonian! We know who you are, we know what you are!"
Hero1 plays animation stunned
Hero1 says, "A voice...in my mind!"
Villain1 says telepathically, "We possess a bomb powerful enough to vaporize this miserable little collection of primitve hovels. If you wish these morsels you call humans to survive, you have two minutes to surrender to us, and we shall spare them!"
Hero1 says, "I don't think my surrender would save Metropolis...but can I take that risk? I've got two minutes, that should be enough time. I've got to find that bomb!"

Bomb Exploded Cutscene:
Camera on Hero1
Hero1 says, "No! I failed, I was too slow...but I'm never too slow!"
Fade for 2 seconds

End Cutscene:
Camera on Hero1
Hero1 says, "Well, that should teach them to stay out of Metropolis! Now on to S.T.A.R. Labs for some answers..."



[/spoiler]

I've tripple checked the marker names, so I don't believe there the problem.
Title: Re: EZScript Comics
Post by: style on March 20, 2008, 01:32:12 PM
This is the most Newbiesh question you'll get at this stage in this thread and it's coming from a vet! Any who does EZScript work for the 1st :ff: game also? And if it does can you point me in the right direction for a beginner to start one?
Title: Re: EZScript Comics
Post by: Boalt92 on March 20, 2008, 01:58:40 PM
Cutscene problem:

Could it be waiting to start?  Meaning, is it waiting for you to reach the marker for it to begin?  Maybe you should tie the cutscene to a marker and teleport the hero there.  You could also try using an alert cutscene with a yellow arrow or something to get the hero to where ever the cutscene is firing.

Just some thoughts.

B92
Title: Re: EZScript Comics
Post by: BentonGrey on March 20, 2008, 03:05:11 PM
Thanks for the response Boalt, but I'm pretty sure that's not the case.  I placed the marker myself, so I made sure to move Supes right on top of it. 

'Fraid EZScript is FF2 only, Style, but I couldn't tell you why.  You'd have to ask a better brain than mine!
Title: Re: EZScript Comics
Post by: M25 on March 21, 2008, 10:00:55 AM
Forgive my confusion, but which cutscene isn't playing?

I wonder if the pain animation is causing superman to be stuck.  Try removing that line.

Title: Re: EZScript Comics
Post by: BentonGrey on March 21, 2008, 01:46:48 PM
Ohh, sorry, I guess that wasn't very clear.  The first cutscene with Superman is playing just fine, but the cutscene fronting the first encounter is not playing at all.  I'll try that with the 'pain' line, thanks M.
Title: Re: EZScript Comics
Post by: M25 on March 22, 2008, 09:37:26 AM
Normally, if a cutscene doesn't play it has to do with EZ script not being able to find all of the required elements for the cutscene.  There must be a character to match up with each Villain, Hero, Ally, marker, etc., or there is an error in the cutscene itself.  Nothing jumps out at me though.

Please go into m25config.py and set
M25_USE_REPORTS = 1

It'll be easier to see what is going on in the log then.

Title: Re: EZScript Comics
Post by: BentonGrey on March 26, 2008, 12:39:47 PM
Okay, I had some time to do this today, so:

[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 1206560054.171000
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 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\MiniMod JLA3.py executed
>>> C:\Documents and Settings\Owner\Local Settings\Application Data\Irrational Games\Freedom Force vs the 3rd Reich\temp\danger.py executed
MISSION: EZScript MiniMod/Campaign Precache.
PSTORY: {'name': 'JLA3', 'encounters': [{'marker': 'encounter', 'type': 'Cutscene', 'timeofday': 'none', 'required_map': [], 'trigger': [], 'next': [], 'objectives': [], 'parameters': [], 'name': 'Begin', 'cutscenes': [{'replace': [['hero1', 'hero']], 'name': 'Start', 'required': [], 'priority': 1, 'cutscene': ['CS_Start()', 'CS_Fade(2)', "CS_Speak('narrator', 'Back in Metropolis, Superman heads for S.T.A.R. Labs in an effort to obtains some answers about the mysterious threat in orbit, but he finds himself distracted by a danger closer to home.', force=0)", "CS_Camera('hero1', dist=-160, yaw=0)", 'CS_UnFade(3)', 'CS_Speak(\'hero1\', "Ohh! Jimmy\'s wristcom\'s signal...he must be in trouble! S.T.A.R. Labs will have to wait...", force=0)', 'CS_End()']}], 'pre': []}, {'marker': 'trap1', 'type': 'Switchable Power Trap', 'timeofday': 'none', 'required_map': [], 'trigger': [], 'next': ['alien1'], 'objectives': [], 'parameters': [['allies', 'jimmy_olsen'], ['item', 'nazihq_hypno_sphere'], ['switches', 'switch'], ['trappower', 'martianw gauntlet']], 'name': 'MTrap1', 'villains': ['disguise_martian', 'disguise_martian', 'disguise_martian', 'disguise_martian'], 'cutscenes': [{'replace': [['villain4', 'villain'], ['ally1', 'ally'], ['hero1', 'hero'], ['villain1', 'villain'], ['trap1_ally1', 'ally']], 'name': 'Start', 'required': ['encounter1', 'trap2'], 'priority': 1, 'cutscene': ['CS_Start()', 'CS_Fade(2)', "CS_TeleportTo('villain4', 'encounter1')", "CS_Camera('ally1', dist=-160, yaw=0)", 'CS_UnFade(3)', "CS_TurnTo('ally1', 'hero1')", "CS_TurnTo('hero1', 'ally1')", "CS_Camera('hero1', dist=-160, yaw=0)", "CS_Speak('hero1', 'Jimmy! Are you alright?', force=0)", "CS_Camera('villain1', dist=-160, yaw=0)", "CS_TurnTo('villain1', 'hero1')", "CS_Animate('villain1','melee')", "CS_Speak('villain1', '<The Kryptonian has blundered into our trap, activate the weapons!>', force=0)", "CS_Camera('hero1', dist=-160, yaw=0)", 'CS_Speak(\'hero1\', "Jimmy, have they harmed you? Why don\'t you say something?", force=0)', "CS_Camera('ally1', dist=-160, yaw=0)", 'CS_Fade(2)', "CS_TeleportTo('ally1', 'trap2')", "CS_TeleportTo('villain4', 'trap1_ally1')", "CS_Camera('villain4', dist=-160, yaw=0)", "CS_TurnTo('villain4', 'hero1')", 'CS_UnFade(3)', "CS_Speak('villain4', '<Haha, now the fool dies!>', force=0)", "CS_Animate('villain4','ranged')", "CS_Camera('hero1', dist=-160, yaw=0)", "CS_Speak('hero1', 'A trap, that thing is some kind of shapeshifter!', force=0)", "CS_Speak('hero1', 'Who are you people, what do you want?', force=0)", "CS_Camera('villain1', dist=-160, yaw=0)", "CS_Speak('villain1', 'Your death Kryptonian!', force=0)", 'CS_End()']}, {'replace': [['hero1', 'hero']], 'name': 'End', 'required': [], 'priority': 1, 'cutscene': ['CS_Start()', "CS_Camera('hero1', dist=-160, yaw=0)", "CS_Speak('hero1', 'A little X-Ray vision would have solved that mystery, still, it takes more than fancy technology to put me down...but where is the real Olsen? If I concentrate, maybe my super hearing can find him...', force=0)", "CS_Animate('hero1','stunned')", "CS_Animate('hero1','ranged')", "CS_Speak('hero1', 'Ah, found him!', force=0)", 'CS_End()']}], 'pre': []}, {'marker': 'trap2', 'type': 'Custom', 'timeofday': 'none', 'required_map': [], 'trigger': [], 'next': ['alien2'], 'objectives': [], 'parameters': [['actions', 'Item Exists, Villains Fight Heroes, Item Starts On Ground, Item Has Power, Atom Uses Power on Heroes, Item Can Be Switched Off, Switches Exist, Allies Can Be Freed, Allies In Cages'], ['allies', 'jimmy_olsen'], ['item', 'nazihq_hypno_sphere'], ['switches', 'switch'], ['trappower', 'martianw gauntlet']], 'name': 'MTrap2', 'villains': ['disguise_martian', 'disguise_martian', 'disguise_martian', 'disguise_martian'], 'cutscenes': [{'replace': [['villain1', 'villain']], 'name': 'Alert', 'required': [], 'priority': 1, 'cutscene': ["CS_AddArrow('villain1arrow', 'villain1', arrow_type=js.ARROW_RED)"]}, {'replace': [['hero1', 'hero'], ['villain1', 'villain']], 'name': 'Start', 'required': [], 'priority': 1, 'cutscene': ['CS_Start()', "CS_Camera('hero1', dist=-160, yaw=0)", "CS_TurnTo('hero1', 'villain1')", 'CS_Speak(\'hero1\', "If you\'ve hurt him, you\'ll regret it...whatever you are!", force=0)', "CS_Camera('villain1', dist=-160, yaw=0)", "CS_TurnTo('villain1', 'hero1')", "CS_Animate('villain1','power')", "CS_Speak('villain1', '<The kryptonian survived our first trap, the yellow sun must give him more power than we anticipated. No matter, destroy him!>', force=0)", 'CS_End()']}, {'replace': [['ally1', 'ally'], ['hero1', 'hero']], 'name': 'End', 'required': [], 'priority': 1, 'cutscene': ['CS_Start()', "CS_MoveTo('ally1', 'hero1')", "CS_TurnTo('hero1', 'ally1')", "CS_Speak('ally1', 'Su..Superman? What...what happened?', force=0)", "CS_Speak('hero1', 'I was hoping you could tell me Jimmy, I came back to town and got a distress call from your watch.', force=0)", 'CS_Speak(\'ally1\', "Well, gee Superman, I don\'t know...I was trying to get some shots of the new display at the museum when these military guys walked up, said something about how I needed to come with them...and that\'s all I can remember.", force=0)', "CS_Speak('hero1', 'Well, you better get back to the Planet Jimmy, there might be more of these things around.', force=0)", 'CS_End()']}], 'pre': []}, {'marker': 'encounter', 'type': 'Disarm Bomb', 'timeofday': 'none', 'required_map': [], 'trigger': [], 'next': [[['Bomb Disarmed'], ['__win__']], [['Bomb Exploded'], ['__lose__']]], 'objectives': [], 'parameters': [['bomb', 'nazihq_temporal_amplifier']], 'name': 'Boom', 'villains': ['disguise_martian', 'disguise_martian', 'disguise_martian', 'disguise_martian'], 'cutscenes': [{'replace': [['hero1', 'hero'], ['villain1', 'villain']], 'name': 'Alert', 'required': [], 'priority': 1, 'cutscene': ['CS_Start()', "CS_Camera('hero1', dist=-160, yaw=0)", "CS_Animate('hero1','pain')", "CS_Speak('villain1', 'Kryptonian! We know who you are, we know what you are!', force=1)", "CS_Animate('hero1','stunned')", "CS_Speak('hero1', 'A voice...in my mind!', force=0)", "CS_Speak('villain1', 'We possess a bomb powerful enough to vaporize this miserable little collection of primitve hovels. If you wish these morsels you call humans to survive, you have two minutes to surrender to us, and we shall spare them!', force=1)", 'CS_Speak(\'hero1\', "I don\'t think my surrender would save Metropolis...but can I take that risk? I\'ve got two minutes, that should be enough time. I\'ve got to find that bomb!", force=0)', 'CS_End()']}, {'replace': [['hero1', 'hero']], 'name': 'BombExploded', 'required': [], 'priority': 1, 'cutscene': ['CS_Start()', "CS_Camera('hero1', dist=-160, yaw=0)", 'CS_Speak(\'hero1\', "No! I failed, I was too slow...but I\'m never too slow!", force=0)', 'CS_Fade(2)', 'CS_End()']}, {'replace': [['hero1', 'hero']], 'name': 'End', 'required': [], 'priority': 1, 'cutscene': ['CS_Start()', "CS_Camera('hero1', dist=-160, yaw=0)", "CS_Speak('hero1', 'Well, that should teach them to stay out of Metropolis! Now on to S.T.A.R. Labs for some answers...', force=0)", 'CS_End()']}], 'pre': []}], 'start': []}
PSTORY: {'JLA3': {'encounters': {'__end__': {'action': ["ff.Story_SetStoryEnded('JLA3')"]}, '__win__': {'action': ['ff.Story_WinMission()']}, 'MTrap1': {'next': ['alien1'], 'required_map': [], 'timeofday': 'none', 'action': ['DoEncCustom(villains = [\'disguise_martian\', \'disguise_martian\', \'disguise_martian\', \'disguise_martian\'], cutscenes = [[\'startcs\', [[\'priority\', 1], [\'replace\', [\'villain4\', \'villain\'], [\'ally1\', \'ally\'], [\'hero1\', \'hero\'], [\'villain1\', \'villain\'], [\'trap1_ally1\', \'ally\']], [\'required\', \'encounter1\', \'trap2\'], [\'cutscene\', \'CS_Start()\', \'CS_Fade(2)\', "CS_TeleportTo(\'villain4\', \'encounter1\')", "CS_Camera(\'ally1\', dist=-160, yaw=0)", \'CS_UnFade(3)\', "CS_TurnTo(\'ally1\', \'hero1\')", "CS_TurnTo(\'hero1\', \'ally1\')", "CS_Camera(\'hero1\', dist=-160, yaw=0)", "CS_Speak(\'hero1\', \'Jimmy! Are you alright?\', force=0)", "CS_Camera(\'villain1\', dist=-160, yaw=0)", "CS_TurnTo(\'villain1\', \'hero1\')", "CS_Animate(\'villain1\',\'melee\')", "CS_Speak(\'villain1\', \'<The Kryptonian has blundered into our trap, activate the weapons!>\', force=0)", "CS_Camera(\'hero1\', dist=-160, yaw=0)", \'CS_Speak(\\\'hero1\\\', "Jimmy, have they harmed you? Why don\\\'t you say something?", force=0)\', "CS_Camera(\'ally1\', dist=-160, yaw=0)", \'CS_Fade(2)\', "CS_TeleportTo(\'ally1\', \'trap2\')", "CS_TeleportTo(\'villain4\', \'trap1_ally1\')", "CS_Camera(\'villain4\', dist=-160, yaw=0)", "CS_TurnTo(\'villain4\', \'hero1\')", \'CS_UnFade(3)\', "CS_Speak(\'villain4\', \'<Haha, now the fool dies!>\', force=0)", "CS_Animate(\'villain4\',\'ranged\')", "CS_Camera(\'hero1\', dist=-160, yaw=0)", "CS_Speak(\'hero1\', \'A trap, that thing is some kind of shapeshifter!\', force=0)", "CS_Speak(\'hero1\', \'Who are you people, what do you want?\', force=0)", "CS_Camera(\'villain1\', dist=-160, yaw=0)", "CS_Speak(\'villain1\', \'Your death Kryptonian!\', force=0)", \'CS_End()\']]], [\'endcs\', [[\'priority\', 1], [\'replace\', [\'hero1\', \'hero\']], [\'cutscene\', \'CS_Start()\', "CS_Camera(\'hero1\', dist=-160, yaw=0)", "CS_Speak(\'hero1\', \'A little X-Ray vision would have solved that mystery, still, it takes more than fancy technology to put me down...but where is the real Olsen? If I concentrate, maybe my super hearing can find him...\', force=0)", "CS_Animate(\'hero1\',\'stunned\')", "CS_Animate(\'hero1\',\'ranged\')", "CS_Speak(\'hero1\', \'Ah, found him!\', force=0)", \'CS_End()\']]]], marker = \'trap1\', actions="item exists, item starts on ground, item has power, item uses power on heroes, switches exist, item can be switched off, item is invulnerable", allies = [\'jimmy_olsen\'], item = \'nazihq_hypno_sphere\', switches = [\'switch\'], trappower = \'martianw gauntlet\')']}, 'Boom': {'next': [[['Bomb Disarmed'], ['__win__']], [['Bomb Exploded'], ['__lose__']]], 'required_map': [], 'timeofday': 'none', 'action': ['DoEncCustom(villains = [\'disguise_martian\', \'disguise_martian\', \'disguise_martian\', \'disguise_martian\'], cutscenes = [[\'alertcs\', [[\'priority\', 1], [\'replace\', [\'hero1\', \'hero\'], [\'villain1\', \'villain\']], [\'cutscene\', \'CS_Start()\', "CS_Camera(\'hero1\', dist=-160, yaw=0)", "CS_Animate(\'hero1\',\'pain\')", "CS_Speak(\'villain1\', \'Kryptonian! We know who you are, we know what you are!\', force=1)", "CS_Animate(\'hero1\',\'stunned\')", "CS_Speak(\'hero1\', \'A voice...in my mind!\', force=0)", "CS_Speak(\'villain1\', \'We possess a bomb powerful enough to vaporize this miserable little collection of primitve hovels. If you wish these morsels you call humans to survive, you have two minutes to surrender to us, and we shall spare them!\', force=1)", \'CS_Speak(\\\'hero1\\\', "I don\\\'t think my surrender would save Metropolis...but can I take that risk? I\\\'ve got two minutes, that should be enough time. I\\\'ve got to find that bomb!", force=0)\', \'CS_End()\']]], [\'bombexplodedcs\', [[\'priority\', 1], [\'replace\', [\'hero1\', \'hero\']], [\'cutscene\', \'CS_Start()\', "CS_Camera(\'hero1\', dist=-160, yaw=0)", \'CS_Speak(\\\'hero1\\\', "No! I failed, I was too slow...but I\\\'m never too slow!", force=0)\', \'CS_Fade(2)\', \'CS_End()\']]], [\'endcs\', [[\'priority\', 1], [\'replace\', [\'hero1\', \'hero\']], [\'cutscene\', \'CS_Start()\', "CS_Camera(\'hero1\', dist=-160, yaw=0)", "CS_Speak(\'hero1\', \'Well, that should teach them to stay out of Metropolis! Now on to S.T.A.R. Labs for some answers...\', force=0)", \'CS_End()\']]]], marker = \'encounter\', actions="villains fight heroes, allies fight villains, disarm bomb", bomb = \'nazihq_temporal_amplifier\')']}, 'MTrap2': {'next': ['alien2'], 'required_map': [], 'timeofday': 'none', 'action': ['DoEncCustom(villains = [\'disguise_martian\', \'disguise_martian\', \'disguise_martian\', \'disguise_martian\'], cutscenes = [[\'alertcs\', [[\'priority\', 1], [\'replace\', [\'villain1\', \'villain\']], [\'cutscene\', "CS_AddArrow(\'villain1arrow\', \'villain1\', arrow_type=js.ARROW_RED)"]]], [\'startcs\', [[\'priority\', 1], [\'replace\', [\'hero1\', \'hero\'], [\'villain1\', \'villain\']], [\'cutscene\', \'CS_Start()\', "CS_Camera(\'hero1\', dist=-160, yaw=0)", "CS_TurnTo(\'hero1\', \'villain1\')", \'CS_Speak(\\\'hero1\\\', "If you\\\'ve hurt him, you\\\'ll regret it...whatever you are!", force=0)\', "CS_Camera(\'villain1\', dist=-160, yaw=0)", "CS_TurnTo(\'villain1\', \'hero1\')", "CS_Animate(\'villain1\',\'power\')", "CS_Speak(\'villain1\', \'<The kryptonian survived our first trap, the yellow sun must give him more power than we anticipated. No matter, destroy him!>\', force=0)", \'CS_End()\']]], [\'endcs\', [[\'priority\', 1], [\'replace\', [\'ally1\', \'ally\'], [\'hero1\', \'hero\']], [\'cutscene\', \'CS_Start()\', "CS_MoveTo(\'ally1\', \'hero1\')", "CS_TurnTo(\'hero1\', \'ally1\')", "CS_Speak(\'ally1\', \'Su..Superman? What...what happened?\', force=0)", "CS_Speak(\'hero1\', \'I was hoping you could tell me Jimmy, I came back to town and got a distress call from your watch.\', force=0)", \'CS_Speak(\\\'ally1\\\', "Well, gee Superman, I don\\\'t know...I was trying to get some shots of the new display at the museum when these military guys walked up, said something about how I needed to come with them...and that\\\'s all I can remember.", force=0)\', "CS_Speak(\'hero1\', \'Well, you better get back to the Planet Jimmy, there might be more of these things around.\', force=0)", \'CS_End()\']]]], marker = \'trap2\', actions = \'Item Exists, Villains Fight Heroes, Item Starts On Ground, Item Has Power, Atom Uses Power on Heroes, Item Can Be Switched Off, Switches Exist, Allies Can Be Freed, Allies In Cages\', allies = [\'jimmy_olsen\'], item = \'nazihq_hypno_sphere\', switches = [\'switch\'], trappower = \'martianw gauntlet\')']}, 'Begin': {'timeofday': 'none', 'next': ['MTrap1'], 'trigger': ['start'], 'action': ['DoEncCutscene(cutscenes = [[\'startcs\', [[\'priority\', 1], [\'replace\', [\'hero1\', \'hero\']], [\'cutscene\', \'CS_Start()\', \'CS_Fade(2)\', "CS_Speak(\'narrator\', \'Back in Metropolis, Superman heads for S.T.A.R. Labs in an effort to obtains some answers about the mysterious threat in orbit, but he finds himself distracted by a danger closer to home.\', force=0)", "CS_Camera(\'hero1\', dist=-160, yaw=0)", \'CS_UnFade(3)\', \'CS_Speak(\\\'hero1\\\', "Ohh! Jimmy\\\'s wristcom\\\'s signal...he must be in trouble! S.T.A.R. Labs will have to wait...", force=0)\', \'CS_End()\']]]], marker = \'encounter\')'], 'required_map': []}, '__lose__': {'action': ['ff.Story_LoseMission()']}}}}
[/spoiler]

By the way, you were right about that animation causing Supes to get stuck, thanks!
Title: Re: EZScript Comics
Post by: BentonGrey on March 26, 2008, 12:40:51 PM
Part 2:

[spoiler]PSTORY: precaching jimmy_olsen
PSTORY: precaching switch
PSTORY: precaching disguise_martian
! GetMapInfo
Building_GetDimensions() non-fatal error:
    template 'building_skyscraper' not found in list of building dimensions.
    To detect approximate dimensions, use
    getBuildingDimensions ()
Building_GetDimensions() non-fatal error:
    template 'building_skyscraper' not found in list of building dimensions.
    To detect approximate dimensions, use
    getBuildingDimensions ()
Building_GetDimensions() non-fatal error:
    template 'building_skyscraper' not found in list of building dimensions.
    To detect approximate dimensions, use
    getBuildingDimensions ()
Building_GetDimensions() non-fatal error:
    template 'building_skyscraper' not found in list of building dimensions.
    To detect approximate dimensions, use
    getBuildingDimensions ()
Building_GetDimensions() non-fatal error:
    template 'building_skyscraper' not found in list of building dimensions.
    To detect approximate dimensions, use
    getBuildingDimensions ()
Building_GetDimensions() non-fatal error:
    template 'building_skyscraper' not found in list of building dimensions.
    To detect approximate dimensions, use
    getBuildingDimensions ()
Building_GetDimensions() non-fatal error:
    template 'building_skyscraper' not found in list of building dimensions.
    To detect approximate dimensions, use
    getBuildingDimensions ()
Building_GetDimensions() non-fatal error:
    template 'building_skyscraper' not found in list of building dimensions.
    To detect approximate dimensions, use
    getBuildingDimensions ()
>>> C:\Documents and Settings\Owner\Local Settings\Application Data\Irrational Games\Freedom Force vs the 3rd Reich\temp\MiniMod JLA3.py executed
MISSION: On Post Init... start.
MLOG_Init(keepRunningModules=0): starting up
mlogreader.MLOG_Init: current mission = '03_JLA'
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
numberStr=67
storing hero_1: id_1,-67
MISSION: On Post Init... complete; starting story.
ENCOUNTER: Setting up encounter 1
ENCOUNTER: Start marker found for ['encounter'] 'encounter4'
GROUP: '1_minion' set to []
GROUP: '1_minion' set to []
GROUP: '1_minion' set to []
GROUP: '1_ally' set to []
GROUP: '1_ally' set to []
GROUP: '1_object' set to []
GROUP: '1_object' 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 'SingleCutscene_Setup'
ENCOUNTER: PlayEncCutscene(): 'startcs' : 'SingleCutscene_End(1,"end")'
ENCOUNTER: PlayCutsceneFromList(): [['priority', 1], ['replace', ['hero1', 'hero']], ['cutscene', 'CS_Start()', 'CS_Fade(2)', "CS_Speak('narrator', 'Back in Metropolis, Superman heads for S.T.A.R. Labs in an effort to obtains some answers about the mysterious threat in orbit, but he finds himself distracted by a danger closer to home.', force=0)", "CS_Camera('hero1', dist=-160, yaw=0)", 'CS_UnFade(3)', 'CS_Speak(\'hero1\', "Ohh! Jimmy\'s wristcom\'s signal...he must be in trouble! S.T.A.R. Labs will have to wait...", force=0)', 'CS_End()']] : 'SingleCutscene_End(1,"end")' ... []
CUTSCENE: request to play cutscene.
CUTSCENE:  - CS_Start()
CUTSCENE:  - CS_Fade(2)
CUTSCENE:  - CS_Speak('narrator','Back in Metropolis, Superman heads for S.T.A.R. Labs in an effort to obtains some answers about the mysterious threat in orbit, but he finds himself distracted by a danger closer to home.', force=0)
CUTSCENE:  - CS_Camera('hero_1', dist=-160, yaw=0)
CUTSCENE:  - CS_UnFade(3)
CUTSCENE:  - CS_Speak('hero_1',"Ohh! Jimmy's wristcom's signal...he must be in trouble! S.T.A.R. Labs will have to wait...", force=0)
CUTSCENE:  - CS_End()
CUTSCENE: calling PlayCurrentCutscene 1
CUTSCENE: playing ff.CS_Start(1)
ENCOUNTER: Encounter post complete for 1
ENCOUNTER: Saving encounter data for 1
ENCOUNTER: PlayEncCutscene(): 'alertcs' : None
ENCOUNTER: PlayCutsceneFromList(): None : None ... []
ENCOUNTER: Encounter setup complete for 1
AI: SetupAI() - setting ai for hero_1 ('superman')
GROUP: 'team1' set to []
GROUP: 'hero_1' added to group 'team1'
GROUP: 'team1' set to ['hero_1']
GROUP: 'hero_1' automatically promoted to leader of group 'team1'
GROUP: 'hero_1' made leader of group 'team1'
GROUP: 'team1' set to guard 'hero_1'
GOAL: Adding goal Goal_StayWithTeam(1000,20) to character hero_1
CUTSCENE: playing ff.CS_Fade(1,2)
initialising FFQ_initialiseExtras()
FFX_UpdateSun: getting default sun
FFX_UpdateSun: setting = (-137.0, 57.0, 1.5, 0.20000000298, (0.20000000298, 0.20000000298, 0.600000023842))
AI: AISetRunning hero_1 to 0
CUTSCENE: playing ff.CS_Speak(1,'narrator','Back in Metropolis, Superman heads for S.T.A.R. Labs in an effort to obtains some answers about the mysterious threat in orbit, but he finds himself distracted by a danger closer to home.', force=0)
initAttribsForChar: working on civilian_female2 (carrol_ferris)
initAttribsForChar: working on civilian_male1 (astronaut)
initAttribsForChar: working on civilian_male27 (astronaut)
initAttribsForChar: working on civilian_female11 (carrol_ferris)
initAttribsForChar: working on civilian_male14 (astronaut)
initAttribsForChar: working on civilian_male6 (astronaut)
initAttribsForChar: working on civilian_female3 (carrol_ferris)
initAttribsForChar: working on civilian_male28 (astronaut)
initAttribsForChar: working on civilian_male23 (astronaut)
initAttribsForChar: working on civilian_male19 (astronaut)
initAttribsForChar: working on civilian_female13 (carrol_ferris)
initAttribsForChar: working on civilian_female21 (carrol_ferris)
initAttribsForChar: working on civilian_female4 (carrol_ferris)
initAttribsForChar: working on civilian_female23 (carrol_ferris)
initAttribsForChar: working on civilian_male2 (astronaut)
initAttribsForChar: working on civilian_male10 (astronaut)
initAttribsForChar: working on civilian_female15 (carrol_ferris)
initAttribsForChar: working on civilian_male15 (astronaut)
initAttribsForChar: working on civilian_male24 (astronaut)
initAttribsForChar: working on civilian_female17 (carrol_ferris)
initAttribsForChar: working on civilian_female5 (carrol_ferris)
initAttribsForChar: working on civilian_female25 (carrol_ferris)
initAttribsForChar: working on civilian_group1_2 (astronaut)
initAttribsForChar: working on civilian_male7 (astronaut)
initAttribsForChar: working on civilian_female19 (carrol_ferris)
initAttribsForChar: working on civilian_female6 (carrol_ferris)
initAttribsForChar: working on civilian_male11 (astronaut)
initAttribsForChar: working on civilian_male3 (astronaut)
initAttribsForChar: working on civilian_male20 (astronaut)
initAttribsForChar: working on civilian_female10 (carrol_ferris)
initAttribsForChar: working on civilian_male16 (astronaut)
initAttribsForChar: working on civilian_male25 (astronaut)
initAttribsForChar: working on civilian_female7 (carrol_ferris)
initAttribsForChar: working on civilian_female12 (carrol_ferris)
initAttribsForChar: working on civilian_male8 (astronaut)
initAttribsForChar: working on civilian_female20 (carrol_ferris)
initAttribsForChar: working on civilian_female8 (carrol_ferris)
initAttribsForChar: working on civilian_male4 (astronaut)
initAttribsForChar: working on civilian_female14 (carrol_ferris)
initAttribsForChar: working on civilian_male12 (astronaut)
initAttribsForChar: working on civilian_male17 (astronaut)
initAttribsForChar: working on civilian_female22 (carrol_ferris)
initAttribsForChar: working on civilian_male21 (astronaut)
initAttribsForChar: working on civilian_male26 (astronaut)
initAttribsForChar: working on civilian_female16 (carrol_ferris)
initAttribsForChar: working on civilian_female24 (carrol_ferris)
initAttribsForChar: working on civilian_male9 (astronaut)
initAttribsForChar: working on civilian_female9 (carrol_ferris)
initAttribsForChar: working on civilian_group1_1 (astronaut)
initAttribsForChar: working on civilian_male5 (astronaut)
initAttribsForChar: working on civilian_female26 (carrol_ferris)
initAttribsForChar: working on civilian_female1 (carrol_ferris)
initAttribsForChar: working on civilian_female18 (carrol_ferris)
initAttribsForChar: working on civilian_male22 (astronaut)
initAttribsForChar: working on civilian_male13 (astronaut)
initAttribsForChar: working on civilian_male18 (astronaut)
initAttribsForChar: working on civilian_group1_3 (astronaut)
initAttribsForChar: working on hero_1 (superman)
initAttribsForChar (superman): looking at attribute bedevilled
initAttribsForChar (superman): looking at attribute kryptonian
execInitAttrib: init ffqnimbleflier attribute inside ['kryptonian', 'ffqnimbleflier', 'vulnerability', 'fastflier', 'invulnerable', 'toughguy2', 'heavylifter'] combo
    on hero_1 of template custom_template_67 (superman)
execInitAttrib: init vulnerability attribute inside ['kryptonian', 'ffqnimbleflier', 'vulnerability', 'fastflier', 'invulnerable', 'toughguy2', 'heavylifter'] combo
    on hero_1 of template custom_template_67 (superman)
execInitAttrib: init fastflier attribute inside ['kryptonian', 'ffqnimbleflier', 'vulnerability', 'fastflier', 'invulnerable', 'toughguy2', 'heavylifter'] combo
    on hero_1 of template custom_template_67 (superman)
execInitAttrib: init invulnerable attribute inside ['kryptonian', 'ffqnimbleflier', 'vulnerability', 'fastflier', 'invulnerable', 'toughguy2', 'heavylifter'] combo
    on hero_1 of template custom_template_67 (superman)
execInitAttrib: init toughguy2 attribute inside ['kryptonian', 'ffqnimbleflier', 'vulnerability', 'fastflier', 'invulnerable', 'toughguy2', 'heavylifter'] combo
    on hero_1 of template custom_template_67 (superman)
inittoughguy2: char=<hero_1>
inittoughguy2: initializing for hero_1
execInitAttrib: init heavylifter attribute inside ['kryptonian', 'ffqnimbleflier', 'vulnerability', 'fastflier', 'invulnerable', 'toughguy2', 'heavylifter'] combo
    on hero_1 of template custom_template_67 (superman)
initAttribsForChar (superman): looking at attribute flier
initAttribsForChar (superman): looking at attribute heavy hitter
initAttribsForChar (superman): looking at attribute accidentalchange
execInitAttrib: init accidentalchange attribute
    on hero_1 of template custom_template_67 (superman)
accidental change
superman
isNever
[/spoiler]
Title: Re: EZScript Comics
Post by: BentonGrey on March 26, 2008, 12:41:43 PM
Part 3, man this thing is long:

[spoiler]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_Camera(1,'hero_1', dist=-160, yaw=0)
CUTSCENE: playing ff.CS_UnFade(1,3)
CUTSCENE: playing ff.CS_Speak(1,'hero_1',"Ohh! Jimmy's wristcom's signal...he must be in trouble! S.T.A.R. Labs will have to wait...", force=0)
CUTSCENE: playing ff.CS_End(1)
CUTSCENE: calling cutscene return function.
ENCOUNTER: Encounter ended 1 with 'end'
ENCOUNTER: Setting up encounter 2
ENCOUNTER: Start marker found for ['trap1'] 'trap1'
ENCOUNTER: No markers for 2 [['allyleave', 'trap1_allyleave', 'dist500'], ['itemstart', 'trap1_item', '']]
GROUP: '2_switch' set to []
GROUP: 'm25obj_2' added to group '2_switch'
GROUP: '2_switch' set to ['m25obj_2']
GROUP: '2_minion' set to []
GROUP: '2_minion' set to []
AI: SetupAI() - setting ai for m25obj_4 ('disguise_martian')
AI: SetupAI() - setting ai for m25obj_6 ('disguise_martian')
AI: SetupAI() - setting ai for m25obj_8 ('disguise_martian')
AI: SetupAI() - setting ai for m25obj_10 ('disguise_martian')
GROUP: 'm25obj_4' added to group '2_minion'
GROUP: 'm25obj_6' added to group '2_minion'
GROUP: 'm25obj_8' added to group '2_minion'
GROUP: 'm25obj_10' added to group '2_minion'
GROUP: '2_minion' set to ['m25obj_4', 'm25obj_6', 'm25obj_8', 'm25obj_10']
AI: SetupAI() - setting ai for m25obj_12 ('jimmy_olsen')
GROUP: '2_ally' set to []
GROUP: 'm25obj_12' added to group '2_ally'
GROUP: '2_ally' set to ['m25obj_12']
GROUP: '2_object' set to []
GROUP: '2_object' set to []
GROUP: '2_cohort' set to []
GROUP: '2_cohort' set to []
GROUP: '2_cohort' set to []
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 'EncCustom_ItemForGrabs_Setup'
ENCOUNTER: 2 - registering EncCustom_ItemForGrabs_Dropped on variable _item_dropped
ENCOUNTER: 2 - registering EncCustom_ItemForGrabs_OnGround on variable _item_on_ground
ENCOUNTER: 2 - registering EncCustom_InvulnerableItem_Setup on variable _item_on_ground
ENCOUNTER: 2 - registering EncCustom_ItemForGrabs_ItemLost on variable _item_lost
ENCOUNTER: 2 - registering EncCustom_ItemForGrabs_HeroHasIt on variable _hero_gets_item
ENCOUNTER: Encounter post function 'EncCustom_ItemStartsOnGround_Setup'
ENCOUNTER: Encounter post function 'EncCustom_SwitchOff_Setup'
ENCOUNTER: 2 - registering EncCustom_ItemSwitch_On on variable _switch_on
ENCOUNTER: 2 - registering EncCustom_ItemSwitch_Off on variable _switch_off
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
initAttribsForChar: working on m25obj_10 (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_10 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_10 of template disguise_martian (disguise_martian)
execInitAttrib: init toughguy2 attribute inside ['white_martian', 'disciplined', 'toughguy2'] combo
    on m25obj_10 of template disguise_martian (disguise_martian)
inittoughguy2: char=<m25obj_10>
inittoughguy2: initializing for m25obj_10
initAttribsForChar (disguise_martian): looking at attribute invulnerable0
execInitAttrib: init invulnerable0 attribute
    on m25obj_10 of template disguise_martian (disguise_martian)
initAttribsForChar: working on m25obj_8 (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_8 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_8 of template disguise_martian (disguise_martian)
execInitAttrib: init toughguy2 attribute inside ['white_martian', 'disciplined', 'toughguy2'] combo
    on m25obj_8 of template disguise_martian (disguise_martian)
inittoughguy2: char=<m25obj_8>
inittoughguy2: initializing for m25obj_8
initAttribsForChar (disguise_martian): looking at attribute invulnerable0
execInitAttrib: init invulnerable0 attribute
    on m25obj_8 of template disguise_martian (disguise_martian)
initAttribsForChar: working on m25obj_6 (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_6 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_6 of template disguise_martian (disguise_martian)
execInitAttrib: init toughguy2 attribute inside ['white_martian', 'disciplined', 'toughguy2'] combo
    on m25obj_6 of template disguise_martian (disguise_martian)
inittoughguy2: char=<m25obj_6>
inittoughguy2: initializing for m25obj_6
initAttribsForChar (disguise_martian): looking at attribute invulnerable0
execInitAttrib: init invulnerable0 attribute
    on m25obj_6 of template disguise_martian (disguise_martian)
initAttribsForChar: working on m25obj_4 (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_4 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_4 of template disguise_martian (disguise_martian)
execInitAttrib: init toughguy2 attribute inside ['white_martian', 'disciplined', 'toughguy2'] combo
    on m25obj_4 of template disguise_martian (disguise_martian)
inittoughguy2: char=<m25obj_4>
inittoughguy2: initializing for m25obj_4
initAttribsForChar (disguise_martian): looking at attribute invulnerable0
execInitAttrib: init invulnerable0 attribute
    on m25obj_4 of template disguise_martian (disguise_martian)
initAttribsForChar: working on m25obj_12 (jimmy_olsen)
AI: AISetRunning m25obj_4 to 0
AI: AISetRunning m25obj_6 to 0
AI: AISetRunning m25obj_8 to 0
AI: AISetRunning m25obj_10 to 0
AI: AISetRunning m25obj_12 to 0
ENCOUNTER: Enc_CheckStart starting 2
ENCOUNTER: 2 - event callback _item_on_ground has value ['EncCustom_ItemForGrabs_OnGround', 'EncCustom_InvulnerableItem_Setup']
ENCOUNTER: 2 - event callback _item_on_ground calling EncCustom_ItemForGrabs_OnGround
ENCOUNTER: 2 - event callback _item_on_ground calling EncCustom_InvulnerableItem_Setup
AI: AIRun is restarting m25obj_4
AI: AISetRunning m25obj_4 to 1
AI: AIRun is restarting m25obj_6
AI: AISetRunning m25obj_6 to 1
AI: AIRun is restarting m25obj_8
AI: AISetRunning m25obj_8 to 1
AI: AIRun is restarting m25obj_10
AI: AISetRunning m25obj_10 to 1
AI: AIRun is restarting m25obj_12
AI: AISetRunning m25obj_12 to 1
ENCOUNTER: PlayEncCutscene(): 'startcs' : 'Enc_StandardStartEnable(2)'
ENCOUNTER: PlayCutsceneFromList(): [['priority', 1], ['replace', ['villain4', 'villain'], ['ally1', 'ally'], ['hero1', 'hero'], ['villain1', 'villain'], ['trap1_ally1', 'ally']], ['required', 'encounter1', 'trap2'], ['cutscene', 'CS_Start()', 'CS_Fade(2)', "CS_TeleportTo('villain4', 'encounter1')", "CS_Camera('ally1', dist=-160, yaw=0)", 'CS_UnFade(3)', "CS_TurnTo('ally1', 'hero1')", "CS_TurnTo('hero1', 'ally1')", "CS_Camera('hero1', dist=-160, yaw=0)", "CS_Speak('hero1', 'Jimmy! Are you alright?', force=0)", "CS_Camera('villain1', dist=-160, yaw=0)", "CS_TurnTo('villain1', 'hero1')", "CS_Animate('villain1','melee')", "CS_Speak('villain1', '<The Kryptonian has blundered into our trap, activate the weapons!>', force=0)", "CS_Camera('hero1', dist=-160, yaw=0)", 'CS_Speak(\'hero1\', "Jimmy, have they harmed you? Why don\'t you say something?", force=0)', "CS_Camera('ally1', dist=-160, yaw=0)", 'CS_Fade(2)', "CS_TeleportTo('ally1', 'trap2')", "CS_TeleportTo('villain4', 'trap1_ally1')", "CS_Camera('villain4', dist=-160, yaw=0)", "CS_TurnTo('villain4', 'hero1')", 'CS_UnFade(3)', "CS_Speak('villain4', '<Haha, now the fool dies!>', force=0)", "CS_Animate('villain4','ranged')", "CS_Camera('hero1', dist=-160, yaw=0)", "CS_Speak('hero1', 'A trap, that thing is some kind of shapeshifter!', force=0)", "CS_Speak('hero1', 'Who are you people, what do you want?', force=0)", "CS_Camera('villain1', dist=-160, yaw=0)", "CS_Speak('villain1', 'Your death Kryptonian!', force=0)", 'CS_End()']] : 'Enc_StandardStartEnable(2)' ... []
GROUP: 'm25obj_4' automatically promoted to leader of group '2_minion'
GROUP: 'm25obj_4' made leader of group '2_minion'
GOAL: Adding goal Goal_Guard(1001,'m25obj_4',19) to character m25obj_6
GOAL: Adding goal Goal_Guard(1002,'m25obj_4',19) to character m25obj_8
GOAL: Adding goal Goal_Guard(1003,'m25obj_4',19) to character m25obj_10
GROUP: '2_minion' set to guard 'm25obj_4'
GOAL: Adding goal Goal_StayWithTeam(1004,20) to character m25obj_4
ENCOUNTER: -- custom check end EncCustom_ItemForGrabs_CheckEnd(2) - None
ENCOUNTER: -- custom check end EncCustom_SwitchOff_CheckEnd(2) - None
ENCOUNTER: -- custom check end EncCustom_ItemForGrabs_CheckEnd(2) - None
ENCOUNTER: -- custom check end EncCustom_SwitchOff_CheckEnd(2) - None
ENCOUNTER: PlayEncCutscene(): 'allswitchesturnedoffcs' : None
ENCOUNTER: PlayCutsceneFromList(): None : None ... []
ENCOUNTER: 2 - event callback _switch_off has value ['EncCustom_ItemSwitch_Off']
ENCOUNTER: 2 - event callback _switch_off calling EncCustom_ItemSwitch_Off
ENCOUNTER: -- custom check end EncCustom_ItemForGrabs_CheckEnd(2) - ['item switched off']
ENCOUNTER: -- custom check end EncCustom_SwitchOff_CheckEnd(2) - ['all switches off']
ENCOUNTER: PlayEncCutscene(): 'endcs' : "EncCustom_CleanUp(2, ['end', 'item switched off', 'all switches off'])"
ENCOUNTER: PlayCutsceneFromList(): [['priority', 1], ['replace', ['hero1', 'hero']], ['cutscene', 'CS_Start()', "CS_Camera('hero1', dist=-160, yaw=0)", "CS_Speak('hero1', 'A little X-Ray vision would have solved that mystery, still, it takes more than fancy technology to put me down...but where is the real Olsen? If I concentrate, maybe my super hearing can find him...', force=0)", "CS_Animate('hero1','stunned')", "CS_Animate('hero1','ranged')", "CS_Speak('hero1', 'Ah, found him!', force=0)", 'CS_End()']] : "EncCustom_CleanUp(2, ['end', 'item switched off', 'all switches off'])" ... []
CUTSCENE: request to play cutscene.
CUTSCENE:  - CS_Start()
CUTSCENE:  - CS_Camera('hero_1', dist=-160, yaw=0)
CUTSCENE:  - CS_Speak('hero_1','A little X-Ray vision would have solved that mystery, still, it takes more than fancy technology to put me down...but where is the real Olsen? If I concentrate, maybe my super hearing can find him...', force=0)
CUTSCENE:  - CS_Animate('hero_1','stunned')
CUTSCENE:  - CS_Animate('hero_1','ranged')
CUTSCENE:  - CS_Speak('hero_1','Ah, found him!', force=0)
CUTSCENE:  - CS_End()
CUTSCENE: calling PlayCurrentCutscene 2
CUTSCENE: playing ff.CS_Start(2)
CUTSCENE: playing ff.CS_Camera(2,'hero_1', dist=-160, yaw=0)
AI: AISetRunning m25obj_4 to 0
AI: AISetRunning m25obj_6 to 0
AI: AISetRunning m25obj_8 to 0
AI: AISetRunning m25obj_10 to 0
AI: AISetRunning m25obj_12 to 0
CUTSCENE: playing ff.CS_Speak(2,'hero_1','A little X-Ray vision would have solved that mystery, still, it takes more than fancy technology to put me down...but where is the real Olsen? If I concentrate, maybe my super hearing can find him...', force=0)
CUTSCENE: playing ff.CS_Animate(2,'hero_1','stunned')
CUTSCENE: playing ff.CS_Animate(2,'hero_1','ranged')
CUTSCENE: playing ff.CS_Speak(2,'hero_1','Ah, found him!', force=0)
CUTSCENE: playing ff.CS_End(2)
AI: AIRun is restarting m25obj_10
AI: AISetRunning m25obj_10 to 1
AI: AIRun is restarting m25obj_8
AI: AISetRunning m25obj_8 to 1
AI: AIRun is restarting m25obj_6
AI: AISetRunning m25obj_6 to 1
AI: AIRun is restarting m25obj_4
AI: AISetRunning m25obj_4 to 1
AI: AIRun is restarting m25obj_12
AI: AISetRunning m25obj_12 to 1
CUTSCENE: calling cutscene return function.
GOAL: Adding goal Goal_MoveToMarker(1005,'trap1_allyleave1',5,100,100,0,None,1) to character m25obj_12
GOAL: Adding goal Goal_MoveToMarker(1006,'trap1_allyleave1',5,100,100,0,None,1) to character m25obj_4
GOAL: Adding goal Goal_MoveToMarker(1007,'trap1_allyleave1',5,100,100,0,None,1) to character m25obj_6
GOAL: Adding goal Goal_MoveToMarker(1008,'trap1_allyleave1',5,100,100,0,None,1) to character m25obj_8
GOAL: Adding goal Goal_MoveToMarker(1009,'trap1_allyleave1',5,100,100,0,None,1) to character m25obj_10
GOAL: Adding goal Goal_MoveToMarker(1010,'trap1_allyleave1',5,100,100,0,None,1) to character m25obj_2
GOAL: Adding goal Goal_MoveToMarker(1011,'trap1_allyleave1',5,100,100,0,None,1) to character m25obj_2
ENCOUNTER: Encounter ended 2 with ['end', 'item switched off', 'all switches off']
AI: m25obj_10:'disguise_martian' goal move to marker 'trap1_allyleave1'
AI: m25obj_8:'disguise_martian' goal move to marker 'trap1_allyleave1'
AI: m25obj_6:'disguise_martian' goal move to marker 'trap1_allyleave1'
AI: m25obj_4:'disguise_martian' goal move to marker 'trap1_allyleave1'
AI: m25obj_12:'jimmy_olsen' goal move to marker 'trap1_allyleave1'
AI: m25obj_10:'disguise_martian' goal move to marker 'trap1_allyleave1'
AI: m25obj_6:'disguise_martian' goal move to marker 'trap1_allyleave1'
AI: m25obj_4:'disguise_martian' goal move to marker 'trap1_allyleave1'
AI: m25obj_12:'jimmy_olsen' goal move to marker 'trap1_allyleave1'
AI: m25obj_10:'disguise_martian' goal move to marker 'trap1_allyleave1'
AI: m25obj_6:'disguise_martian' goal move to marker 'trap1_allyleave1'
AI: m25obj_4:'disguise_martian' goal move to marker 'trap1_allyleave1'
AI: m25obj_12:'jimmy_olsen' goal move to marker 'trap1_allyleave1'
AI: m25obj_10:'disguise_martian' goal move to marker 'trap1_allyleave1'
AI: m25obj_6:'disguise_martian' goal move to marker 'trap1_allyleave1'
AI: m25obj_4:'disguise_martian' goal move to marker 'trap1_allyleave1'
AI: m25obj_12:'jimmy_olsen' goal move to marker 'trap1_allyleave1'
GROUP: '2_minion' member koed
AI: m25obj_10:'disguise_martian' goal move to marker 'trap1_allyleave1'
AI: m25obj_6:'disguise_martian' goal move to marker 'trap1_allyleave1'
AI: m25obj_4:'disguise_martian' goal move to marker 'trap1_allyleave1'
AI: m25obj_12:'jimmy_olsen' goal move to marker 'trap1_allyleave1'
GROUP: 'm25obj_12' removed from group '2_ally'
GROUP: '2_ally' set to []
GROUP: empty '2_ally' cannot have a leader promoted
GROUP: 'm25obj_4' removed from group '2_minion'
GROUP: '2_minion' set to ['m25obj_6', 'm25obj_8', 'm25obj_10']
GROUP: 'm25obj_6' removed from group '2_minion'
GROUP: '2_minion' set to ['m25obj_8', 'm25obj_10']
GROUP: 'm25obj_8' removed from group '2_minion'
GROUP: '2_minion' set to ['m25obj_10']
GROUP: 'm25obj_10' removed from group '2_minion'
GROUP: '2_minion' set to []
GROUP: empty '2_minion' cannot have a leader promoted
GROUP: 'm25obj_2' removed from group '2_switch'
GROUP: '2_switch' set to []
GROUP: empty '2_switch' cannot have a leader promoted[/spoiler]
Title: Re: EZScript Comics
Post by: M25 on March 27, 2008, 02:04:14 PM
The problem appears to be the marker trap1_ally1.  EZ Script thinks it is a character and not a marker since it has ally in its name. 

Villain4 teleports to trap1_ally1

The easy fix is to use a different marker.  Just trap1 should do.

Title: Re: EZScript Comics
Post by: BentonGrey on March 27, 2008, 03:33:23 PM
Ahh, thanks M!  This has been giving me fits.  I'm really glad you were able to sort through all that stuff.  I tried, but couldn't find anything that I could recognize as a problem.
Title: Re: EZScript Comics
Post by: BentonGrey on May 19, 2008, 02:44:58 PM
Hello again guys, I'm back in the saddle again now that the semester is over, and of course, that means I've dived right back into my buggy missions.  I've managed to solve all of the problems with my third JLA mission except one.  The final encounter is not starting, and I can't see anything amiss.  The scirpt.log is no help either, as it simply stops once the previous encounter finished.  Here is the script for the encounter in question:

[spoiler]#-------------------------------------------------------------

Encounter: Boom
Type: Disarm Bomb
Villains: disguise_martian, disguise_martian, disguise_martian, disguise_martian
Bomb: nazihq_temporal_amplifier
Next: If Bomb Disarmed: __win__
Next: If Bomb Exploded: __lose__

Alert Cutscene:
Camera on Hero1
Hero1 plays animation pain
Villain1 says telepathically, "Kryptonian! We know who you are, we know what you are!"
Hero1 plays animation stunned
Hero1 says, "A voice...in my mind!"
Villain1 says telepathically, "We possess a bomb powerful enough to vaporize this miserable little collection of primitve hovels. If you wish these morsels you call humans to survive, you have two minutes to surrender to us, and we shall spare them!"
Hero1 says, "I don't think my surrender would save Metropolis...but can I take that risk? I've got two minutes, that should be enough time. I've got to find that bomb!"

Bomb Exploded Cutscene:
Camera on Hero1
Hero1 says, "No! I failed, I was too slow...but I'm never too slow!"
Fade for 2 seconds

End Cutscene:
Camera on Hero1
Hero1 says, "Well, that should teach them to stay out of Metropolis! Now on to S.T.A.R. Labs for some answers..."



[/spoiler]
Title: Re: EZScript Comics
Post by: M25 on May 20, 2008, 03:17:51 PM
An encounter doesn't start because:
1. there are no markers available - make sure there is an encounter1 marker on the map
2. one of the villains/minions/etc. don't exist.  Make sure disguise_martian and the nazihq_temporal_amplifier are in your dat files
3. The previous encounter didn't end properly.  What was the previous encounter?
Title: Re: EZScript Comics
Post by: BentonGrey on May 24, 2008, 10:19:31 AM
Well, encounter 1 and his friends are definitely in place, and I've double checked the names of the villains and tripple checked the object name.  That was my first thought, especially since it was long and peculiar enough that it was very likely that I misspelled it.  Ha, figures that I was actually careful enough this time.  The previous encounter seems to have concluded well, but perhaps I've missed something.  The last line of dialog plays, and Jimmy runs the direction he is supposed to.  It is as follows:

[spoiler]#----------------------------------

Encounter: MTrap2
Type: Custom
Actions: Item Exists, Villains Fight Heroes, Item Starts On Ground, Item Has Power, Item

Uses Power on Heroes, Item Can Be Switched Off, Switches Exist, Allies Can Be Freed,

Allies In Cages
Villains: disguise_martian, disguise_martian, disguise_martian, disguise_martian
Allies: jimmy_olsen
Item: nazihq_hypno_sphere
Switches: switch
Trap Power: martianw gauntlet
Marker: trap2
Next: alien2

Start Cutscene:
Camera on Hero1
Hero1 turns to Villain1
Hero1 says, "If you've hurt him, you'll regret it...whatever you are!"
Camera on Villain1
Villain1 turns to Hero1
Villain1 plays animation power
Villain1 says, "<The kryptonian survived our first trap, the yellow sun must give him

more power than we anticipated. No matter, destroy him!>"

End Cutscene:
Ally1 moves to Hero1
Hero1 turns to Ally1
Ally1 says, "Su..Superman? What...what happened?"
Hero1 says, "I was hoping you could tell me Jimmy, I came back to town and got a

distress call from your watch."
Ally1 says, "Well, gee Superman, I don't know...I was trying to get some shots of the

new display at the museum when these military guys walked up, said something about how I

needed to come with them...and that's all I can remember."
Hero1 says, "Well, you better get back to the Planet Jimmy, there might be more of these

things around."

#----------------------------------[/spoiler]

You know M, I've been testing some more, and it seems like it MAY indeed be my other two encounters not ending properly.  I'll post with an update in a few minutes.
Title: Re: EZScript Comics
Post by: BentonGrey on May 24, 2008, 11:05:43 AM
Okay, I've confirmed it.  The bomb encounter works just fine by itself, as do the other two.  The problem arises when either of the trap encounters activate, and then somehow whatever is after them refuses to start.  I am assuming it has something to do with the traps themselves, and I noticed some slightly odd stuff at the bottom of the script.lot, but I'll be darned if I can make heads or tails of it!  Please forgive the multiple posts, but this is quite large:

[spoiler]
ENCOUNTER: Encounter ended 1 with 'end'
ENCOUNTER: Setting up encounter 2
ENCOUNTER: Start marker found for ['trap1'] 'trap1'
ENCOUNTER: No markers for 2 [['allyleave', 'trap1_allyleave', 'dist500'], ['itemstart', 'trap1_item', '']]
GROUP: '2_switch' set to []
GROUP: 'm25obj_2' added to group '2_switch'
GROUP: '2_switch' set to ['m25obj_2']
GROUP: '2_minion' set to []
GROUP: '2_minion' set to []
AI: SetupAI() - setting ai for m25obj_4 ('disguise_martian')
AI: SetupAI() - setting ai for m25obj_6 ('disguise_martian')
AI: SetupAI() - setting ai for m25obj_8 ('disguise_martian')
AI: SetupAI() - setting ai for m25obj_10 ('disguise_martian')
GROUP: 'm25obj_4' added to group '2_minion'
GROUP: 'm25obj_6' added to group '2_minion'
GROUP: 'm25obj_8' added to group '2_minion'
GROUP: 'm25obj_10' added to group '2_minion'
GROUP: '2_minion' set to ['m25obj_4', 'm25obj_6', 'm25obj_8', 'm25obj_10']
AI: SetupAI() - setting ai for m25obj_12 ('jimmy_olsen')
GROUP: '2_ally' set to []
GROUP: 'm25obj_12' added to group '2_ally'
GROUP: '2_ally' set to ['m25obj_12']
GROUP: '2_object' set to []
GROUP: '2_object' set to []
GROUP: '2_cohort' set to []
GROUP: '2_cohort' set to []
GROUP: '2_cohort' set to []
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 'EncCustom_ItemForGrabs_Setup'
ENCOUNTER: 2 - registering EncCustom_ItemForGrabs_Dropped on variable _item_dropped
ENCOUNTER: 2 - registering EncCustom_ItemForGrabs_OnGround on variable _item_on_ground
ENCOUNTER: 2 - registering EncCustom_InvulnerableItem_Setup on variable _item_on_ground
ENCOUNTER: 2 - registering EncCustom_ItemForGrabs_ItemLost on variable _item_lost
ENCOUNTER: 2 - registering EncCustom_ItemForGrabs_HeroHasIt on variable _hero_gets_item
ENCOUNTER: Encounter post function 'EncCustom_ItemStartsOnGround_Setup'
ENCOUNTER: Encounter post function 'EncCustom_SwitchOff_Setup'
ENCOUNTER: 2 - registering EncCustom_ItemSwitch_On on variable _switch_on
ENCOUNTER: 2 - registering EncCustom_ItemSwitch_Off on variable _switch_off
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
initAttribsForChar: working on m25obj_10 (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_10 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_10 of template disguise_martian (disguise_martian)
execInitAttrib: init toughguy2 attribute inside ['white_martian', 'disciplined', 'toughguy2'] combo
    on m25obj_10 of template disguise_martian (disguise_martian)
inittoughguy2: char=<m25obj_10>
inittoughguy2: initializing for m25obj_10
initAttribsForChar (disguise_martian): looking at attribute invulnerable0
execInitAttrib: init invulnerable0 attribute
    on m25obj_10 of template disguise_martian (disguise_martian)
initAttribsForChar: working on m25obj_8 (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_8 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_8 of template disguise_martian (disguise_martian)
execInitAttrib: init toughguy2 attribute inside ['white_martian', 'disciplined', 'toughguy2'] combo
    on m25obj_8 of template disguise_martian (disguise_martian)
inittoughguy2: char=<m25obj_8>
inittoughguy2: initializing for m25obj_8
initAttribsForChar (disguise_martian): looking at attribute invulnerable0
execInitAttrib: init invulnerable0 attribute
    on m25obj_8 of template disguise_martian (disguise_martian)
initAttribsForChar: working on m25obj_6 (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_6 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_6 of template disguise_martian (disguise_martian)
execInitAttrib: init toughguy2 attribute inside ['white_martian', 'disciplined', 'toughguy2'] combo
    on m25obj_6 of template disguise_martian (disguise_martian)
inittoughguy2: char=<m25obj_6>
inittoughguy2: initializing for m25obj_6
initAttribsForChar (disguise_martian): looking at attribute invulnerable0
execInitAttrib: init invulnerable0 attribute
    on m25obj_6 of template disguise_martian (disguise_martian)
initAttribsForChar: working on m25obj_4 (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_4 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_4 of template disguise_martian (disguise_martian)
execInitAttrib: init toughguy2 attribute inside ['white_martian', 'disciplined', 'toughguy2'] combo
    on m25obj_4 of template disguise_martian (disguise_martian)
inittoughguy2: char=<m25obj_4>
inittoughguy2: initializing for m25obj_4
initAttribsForChar (disguise_martian): looking at attribute invulnerable0
execInitAttrib: init invulnerable0 attribute
    on m25obj_4 of template disguise_martian (disguise_martian)
initAttribsForChar: working on m25obj_12 (jimmy_olsen)
AI: AISetRunning m25obj_4 to 0
AI: AISetRunning m25obj_6 to 0
AI: AISetRunning m25obj_8 to 0
AI: AISetRunning m25obj_10 to 0
AI: AISetRunning m25obj_12 to 0
ENCOUNTER: Enc_CheckStart starting 2
ENCOUNTER: 2 - event callback _item_on_ground has value ['EncCustom_ItemForGrabs_OnGround', 'EncCustom_InvulnerableItem_Setup']
ENCOUNTER: 2 - event callback _item_on_ground calling EncCustom_ItemForGrabs_OnGround
ENCOUNTER: 2 - event callback _item_on_ground calling EncCustom_InvulnerableItem_Setup
AI: AIRun is restarting m25obj_4
AI: AISetRunning m25obj_4 to 1
AI: AIRun is restarting m25obj_6
AI: AISetRunning m25obj_6 to 1
AI: AIRun is restarting m25obj_8
AI: AISetRunning m25obj_8 to 1
AI: AIRun is restarting m25obj_10
AI: AISetRunning m25obj_10 to 1
AI: AIRun is restarting m25obj_12
AI: AISetRunning m25obj_12 to 1
ENCOUNTER: PlayEncCutscene(): 'startcs' : 'Enc_StandardStartEnable(2)'
ENCOUNTER: PlayCutsceneFromList(): [['priority', 1], ['replace', ['hero1', 'hero'], ['villain4', 'villain'], ['ally1', 'ally'], ['villain1', 'villain']], ['required', 'encounter1', 'trap2', 'trap1'], ['cutscene', 'CS_Start()', "CS_Camera('hero1', dist=-160, yaw=0)", 'CS_Fade(2)', "CS_TeleportTo('villain4', 'encounter1')", "CS_Camera('ally1', dist=-160, yaw=0)", 'CS_UnFade(3)', "CS_MoveTo('hero1', 'ally1')", "CS_TurnTo('ally1', 'hero1')", "CS_Speak('ally1', 'Help!', force=0)", "CS_Camera('hero1', dist=-160, yaw=0)", "CS_Speak('hero1', 'Jimmy! Are you alright?', force=0)", "CS_Camera('villain1', dist=-160, yaw=0)", "CS_TurnTo('villain1', 'hero1')", "CS_Animate('villain1','melee')", "CS_Speak('villain1', '<The Kryptonian has blundered into our trap, activate the weapons!>', force=0)", "CS_Camera('hero1', dist=-160, yaw=0)", 'CS_Speak(\'hero1\', "Jimmy, have they harmed you? Why don\'t you say something?", force=0)', "CS_Camera('ally1', dist=-160, yaw=0)", 'CS_Fade(2)', "CS_TeleportTo('ally1', 'trap2')", "CS_TeleportTo('villain4', 'trap1')", "CS_Camera('villain4', dist=-160, yaw=0)", "CS_TurnTo('villain4', 'hero1')", 'CS_UnFade(3)', "CS_Speak('villain4', '<Haha, now the fool dies!>', force=0)", "CS_Animate('villain4','ranged')", "CS_Camera('hero1', dist=-160, yaw=0)", "CS_Speak('hero1', 'A trap, that thing is some kind of shapeshifter!', force=0)", "CS_Speak('hero1', 'Who are you people, what do you want?', force=0)", "CS_Camera('villain1', dist=-160, yaw=0)", "CS_Speak('villain1', 'Your death Kryptonian!', force=0)", 'CS_End()']] : 'Enc_StandardStartEnable(2)' ... []
[/spoiler]
Title: Re: EZScript Comics
Post by: BentonGrey on May 24, 2008, 11:06:06 AM
And:

[spoiler]CUTSCENE: request to play cutscene.
CUTSCENE:  - CS_Start()
CUTSCENE:  - CS_Camera('hero_1', dist=-160, yaw=0)
CUTSCENE:  - CS_Fade(2)
CUTSCENE:  - CS_TeleportTo('m25obj_4', 'encounter1')
CUTSCENE:  - CS_Camera('m25obj_12', dist=-160, yaw=0)
CUTSCENE:  - CS_UnFade(3)
CUTSCENE:  - CS_MoveTo('hero_1', 'm25obj_12')
CUTSCENE:  - CS_TurnTo('m25obj_12', 'hero_1')
CUTSCENE:  - CS_Speak('m25obj_12','Help!', force=0)
CUTSCENE:  - CS_Camera('hero_1', dist=-160, yaw=0)
CUTSCENE:  - CS_Speak('hero_1','Jimmy! Are you alright?', force=0)
CUTSCENE:  - CS_Camera('m25obj_6', dist=-160, yaw=0)
CUTSCENE:  - CS_TurnTo('m25obj_6', 'hero_1')
CUTSCENE:  - CS_Animate('m25obj_6','melee')
CUTSCENE:  - CS_Speak('m25obj_6','<The Kryptonian has blundered into our trap, activate the weapons!>', force=0)
CUTSCENE:  - CS_Camera('hero_1', dist=-160, yaw=0)
CUTSCENE:  - CS_Speak('hero_1',"Jimmy, have they harmed you? Why don't you say something?", force=0)
CUTSCENE:  - CS_Camera('m25obj_12', dist=-160, yaw=0)
CUTSCENE:  - CS_Fade(2)
CUTSCENE:  - CS_TeleportTo('m25obj_12', 'trap2')
CUTSCENE:  - CS_TeleportTo('m25obj_4', 'trap1')
CUTSCENE:  - CS_Camera('m25obj_4', dist=-160, yaw=0)
CUTSCENE:  - CS_TurnTo('m25obj_4', 'hero_1')
CUTSCENE:  - CS_UnFade(3)
CUTSCENE:  - CS_Speak('m25obj_4','<Haha, now the fool dies!>', force=0)
CUTSCENE:  - CS_Animate('m25obj_4','ranged')
CUTSCENE:  - CS_Camera('hero_1', dist=-160, yaw=0)
CUTSCENE:  - CS_Speak('hero_1','A trap, that thing is some kind of shapeshifter!', force=0)
CUTSCENE:  - CS_Speak('hero_1','Who are you people, what do you want?', force=0)
CUTSCENE:  - CS_Camera('m25obj_6', dist=-160, yaw=0)
CUTSCENE:  - CS_Speak('m25obj_6','Your death Kryptonian!', force=0)
CUTSCENE:  - CS_End()
CUTSCENE: calling PlayCurrentCutscene 2
CUTSCENE: playing ff.CS_Start(2)
CUTSCENE: playing ff.CS_Camera(2,'hero_1', dist=-160, yaw=0)
CUTSCENE: playing ff.CS_Fade(2,2)
AI: AISetRunning m25obj_4 to 0
AI: AISetRunning m25obj_6 to 0
AI: AISetRunning m25obj_8 to 0
AI: AISetRunning m25obj_10 to 0
AI: AISetRunning m25obj_12 to 0
CUTSCENE: playing ff.CS_TeleportTo(2,'m25obj_4', 'encounter1')
CUTSCENE: playing ff.CS_Camera(2,'m25obj_12', dist=-160, yaw=0)
CUTSCENE: playing ff.CS_UnFade(2,3)
CUTSCENE: playing ff.CS_MoveTo(2,'hero_1', 'm25obj_12')
CUTSCENE: playing ff.CS_TurnTo(2,'m25obj_12', 'hero_1')
CUTSCENE: playing ff.CS_Speak(2,'m25obj_12','Help!', force=0)
CUTSCENE: playing ff.CS_Camera(2,'hero_1', dist=-160, yaw=0)
CUTSCENE: playing ff.CS_Speak(2,'hero_1','Jimmy! Are you alright?', force=0)
CUTSCENE: playing ff.CS_Camera(2,'m25obj_6', dist=-160, yaw=0)
CUTSCENE: playing ff.CS_TurnTo(2,'m25obj_6', 'hero_1')
CUTSCENE: playing ff.CS_Animate(2,'m25obj_6','melee')
CUTSCENE: playing ff.CS_Speak(2,'m25obj_6','<The Kryptonian has blundered into our trap, activate the weapons!>', force=0)
CUTSCENE: playing ff.CS_Camera(2,'hero_1', dist=-160, yaw=0)
CUTSCENE: playing ff.CS_Speak(2,'hero_1',"Jimmy, have they harmed you? Why don't you say something?", force=0)
CUTSCENE: playing ff.CS_Camera(2,'m25obj_12', dist=-160, yaw=0)
CUTSCENE: playing ff.CS_Fade(2,2)
CUTSCENE: playing ff.CS_TeleportTo(2,'m25obj_12', 'trap2')
CUTSCENE: playing ff.CS_TeleportTo(2,'m25obj_4', 'trap1')
CUTSCENE: playing ff.CS_Camera(2,'m25obj_4', dist=-160, yaw=0)
CUTSCENE: playing ff.CS_TurnTo(2,'m25obj_4', 'hero_1')
CUTSCENE: playing ff.CS_UnFade(2,3)
CUTSCENE: playing ff.CS_Speak(2,'m25obj_4','<Haha, now the fool dies!>', force=0)
CUTSCENE: playing ff.CS_Animate(2,'m25obj_4','ranged')
CUTSCENE: playing ff.CS_Camera(2,'hero_1', dist=-160, yaw=0)
CUTSCENE: playing ff.CS_Speak(2,'hero_1','A trap, that thing is some kind of shapeshifter!', force=0)
CUTSCENE: playing ff.CS_Speak(2,'hero_1','Who are you people, what do you want?', force=0)
CUTSCENE: playing ff.CS_Camera(2,'m25obj_6', dist=-160, yaw=0)
CUTSCENE: playing ff.CS_Speak(2,'m25obj_6','Your death Kryptonian!', force=0)
CUTSCENE: playing ff.CS_End(2)
AI: AIRun is restarting m25obj_10
AI: AISetRunning m25obj_10 to 1
AI: AIRun is restarting m25obj_8
AI: AISetRunning m25obj_8 to 1
AI: AIRun is restarting m25obj_6
AI: AISetRunning m25obj_6 to 1
AI: AIRun is restarting m25obj_4
AI: AISetRunning m25obj_4 to 1
AI: AIRun is restarting m25obj_12
AI: AISetRunning m25obj_12 to 1
CUTSCENE: calling cutscene return function.
GROUP: 'm25obj_4' automatically promoted to leader of group '2_minion'
GROUP: 'm25obj_4' made leader of group '2_minion'
GOAL: Adding goal Goal_Guard(1001,'m25obj_4',19) to character m25obj_6
GOAL: Adding goal Goal_Guard(1002,'m25obj_4',19) to character m25obj_8
GOAL: Adding goal Goal_Guard(1003,'m25obj_4',19) to character m25obj_10
GROUP: '2_minion' set to guard 'm25obj_4'
GOAL: Adding goal Goal_StayWithTeam(1004,20) to character m25obj_4
ENCOUNTER: -- custom check end EncCustom_ItemForGrabs_CheckEnd(2) - None
ENCOUNTER: -- custom check end EncCustom_SwitchOff_CheckEnd(2) - None
AI: AIRun is restarting hero_1
AI: AISetRunning hero_1 to 1
AI: AISetRunning hero_1 to 0
ENCOUNTER: PlayEncCutscene(): 'bantercs' : None
ENCOUNTER: PlayCutsceneFromList(): None : None ... []
GROUP: '2_minion' member koed
ENCOUNTER: PlayEncCutscene(): 'm25obj_4kocs' : None
ENCOUNTER: PlayCutsceneFromList(): None : None ... [['m25obj_4', 'fallen']]
ENCOUNTER: PlayEncCutscene(): 'disguise_martiankocs' : None
ENCOUNTER: PlayCutsceneFromList(): None : None ... [['m25obj_4', 'fallen']]
ENCOUNTER: PlayEncCutscene(): 'villainkocs' : None
ENCOUNTER: PlayCutsceneFromList(): None : None ... [['m25obj_4', 'fallen']]
ENCOUNTER: -- custom check end EncCustom_ItemForGrabs_CheckEnd(2) - None
ENCOUNTER: -- custom check end EncCustom_SwitchOff_CheckEnd(2) - None
GROUP: '2_minion' leader koed
GROUP: 'm25obj_6' automatically promoted to leader of group '2_minion'
GROUP: 'm25obj_6' made leader of group '2_minion'
GOAL: Removing goal Goal_Guard( from character m25obj_6
GOAL: Removing goal Goal_Guard( from character m25obj_8
GOAL: Adding goal Goal_Guard(1005,'m25obj_6',19) to character m25obj_8
GOAL: Removing goal Goal_Guard( from character m25obj_10
GOAL: Adding goal Goal_Guard(1006,'m25obj_6',19) to character m25obj_10
GROUP: '2_minion' set to guard 'm25obj_6'
GOAL: Adding goal Goal_StayWithTeam(1007,20) to character m25obj_6
GROUP: 'm25obj_4' removed from group '2_minion'
GROUP: '2_minion' set to ['m25obj_6', 'm25obj_8', 'm25obj_10']
GROUP: '2_minion' member koed
ENCOUNTER: PlayEncCutscene(): 'm25obj_8kocs' : None
ENCOUNTER: PlayCutsceneFromList(): None : None ... [['m25obj_8', 'fallen']]
ENCOUNTER: PlayEncCutscene(): 'disguise_martiankocs' : None
ENCOUNTER: PlayCutsceneFromList(): None : None ... [['m25obj_8', 'fallen']]
ENCOUNTER: PlayEncCutscene(): 'villainkocs' : None
ENCOUNTER: PlayCutsceneFromList(): None : None ... [['m25obj_8', 'fallen']]
ENCOUNTER: -- custom check end EncCustom_ItemForGrabs_CheckEnd(2) - None
ENCOUNTER: -- custom check end EncCustom_SwitchOff_CheckEnd(2) - None
GROUP: '2_minion' member koed
ENCOUNTER: PlayEncCutscene(): 'm25obj_10kocs' : None
ENCOUNTER: PlayCutsceneFromList(): None : None ... [['m25obj_10', 'fallen']]
ENCOUNTER: PlayEncCutscene(): 'disguise_martiankocs' : None
ENCOUNTER: PlayCutsceneFromList(): None : None ... [['m25obj_10', 'fallen']]
ENCOUNTER: PlayEncCutscene(): 'villainkocs' : None
ENCOUNTER: PlayCutsceneFromList(): None : None ... [['m25obj_10', 'fallen']]
ENCOUNTER: -- custom check end EncCustom_ItemForGrabs_CheckEnd(2) - None
ENCOUNTER: -- custom check end EncCustom_SwitchOff_CheckEnd(2) - None
ENCOUNTER: PlayEncCutscene(): 'bantercs' : None
ENCOUNTER: PlayCutsceneFromList(): None : None ... []
GROUP: 'm25obj_8' removed from group '2_minion'
GROUP: '2_minion' set to ['m25obj_6', 'm25obj_10']
GROUP: '2_minion' member koed
ENCOUNTER: PlayEncCutscene(): 'm25obj_6kocs' : None
ENCOUNTER: PlayCutsceneFromList(): None : None ... [['m25obj_6', 'fallen']]
ENCOUNTER: PlayEncCutscene(): 'disguise_martiankocs' : None
ENCOUNTER: PlayCutsceneFromList(): None : None ... [['m25obj_6', 'fallen']]
ENCOUNTER: PlayEncCutscene(): 'villainkocs' : None
ENCOUNTER: PlayCutsceneFromList(): None : None ... [['m25obj_6', 'fallen']]
ENCOUNTER: -- custom check end EncCustom_ItemForGrabs_CheckEnd(2) - None
ENCOUNTER: -- custom check end EncCustom_SwitchOff_CheckEnd(2) - None
GROUP: '2_minion' leader koed
GROUP: 'm25obj_10' removed from group '2_minion'
GROUP: '2_minion' set to ['m25obj_6']
ENCOUNTER: PlayEncCutscene(): 'allswitchesturnedoffcs' : None
ENCOUNTER: PlayCutsceneFromList(): None : None ... []
ENCOUNTER: 2 - event callback _switch_off has value ['EncCustom_ItemSwitch_Off']
ENCOUNTER: 2 - event callback _switch_off calling EncCustom_ItemSwitch_Off
ENCOUNTER: -- custom check end EncCustom_ItemForGrabs_CheckEnd(2) - ['item switched off']
ENCOUNTER: -- custom check end EncCustom_SwitchOff_CheckEnd(2) - ['all switches off']
ENCOUNTER: PlayEncCutscene(): 'endcs' : "EncCustom_CleanUp(2, ['end', 'item switched off', 'all switches off'])"
ENCOUNTER: PlayCutsceneFromList(): [['priority', 1], ['replace', ['hero1', 'hero']], ['cutscene', 'CS_Start()', "CS_Camera('hero1', dist=-160, yaw=0)", 'CS_Speak(\'hero1\', "A little X-Ray vision would have solved that mystery, still, it takes more than fancy technology to put me down...but where is the real Olsen? It shouldn\'t take me too long to find him...", force=0)', 'CS_End()']] : "EncCustom_CleanUp(2, ['end', 'item switched off', 'all switches off'])" ... []
CUTSCENE: request to play cutscene.
CUTSCENE:  - CS_Start()
CUTSCENE:  - CS_Camera('hero_1', dist=-160, yaw=0)
CUTSCENE:  - CS_Speak('hero_1',"A little X-Ray vision would have solved that mystery, still, it takes more than fancy technology to put me down...but where is the real Olsen? It shouldn't take me too long to find him...", force=0)
CUTSCENE:  - CS_End()
CUTSCENE: calling PlayCurrentCutscene 3
CUTSCENE: playing ff.CS_Start(3)
CUTSCENE: playing ff.CS_Camera(3,'hero_1', dist=-160, yaw=0)
CUTSCENE: playing ff.CS_Speak(3,'hero_1',"A little X-Ray vision would have solved that mystery, still, it takes more than fancy technology to put me down...but where is the real Olsen? It shouldn't take me too long to find him...", force=0)
AI: AISetRunning m25obj_6 to 0
AI: AISetRunning m25obj_12 to 0
GROUP: 'm25obj_6' removed from group '2_minion'
GROUP: '2_minion' set to []
GROUP: empty '2_minion' cannot have a leader promoted
CUTSCENE: playing ff.CS_End(3)
AI: AIRun is restarting m25obj_12
AI: AISetRunning m25obj_12 to 1
CUTSCENE: calling cutscene return function.
GOAL: Adding goal Goal_MoveToMarker(1008,'trap1_allyleave1',5,100,100,0,None,1) to character m25obj_12
GOAL: Adding goal Goal_MoveToMarker(1009,'trap1_allyleave1',5,100,100,0,None,1) to character m25obj_2
GOAL: Adding goal Goal_MoveToMarker(1010,'trap1_allyleave1',5,100,100,0,None,1) to character m25obj_2
ENCOUNTER: Encounter ended 2 with ['end', 'item switched off', 'all switches off']
AI: m25obj_12:'jimmy_olsen' goal move to marker 'trap1_allyleave1'
AI: m25obj_12:'jimmy_olsen' goal move to marker 'trap1_allyleave1'
AI: m25obj_12:'jimmy_olsen' goal move to marker 'trap1_allyleave1'
AI: m25obj_12:'jimmy_olsen' goal move to marker 'trap1_allyleave1'
GROUP: 'm25obj_12' removed from group '2_ally'
GROUP: '2_ally' set to []
GROUP: empty '2_ally' cannot have a leader promoted
GROUP: 'm25obj_2' removed from group '2_switch'
GROUP: '2_switch' set to []
GROUP: empty '2_switch' cannot have a leader promoted [/spoiler]
Title: Re: EZScript Comics
Post by: M25 on May 26, 2008, 10:31:38 AM
In your encounter you have the line
Next: alien2

Do you have an encounter called alien2?

Should it be
Next: Boom
?

(The log is showing that the trap ended correctly and everything played.)
Title: Re: EZScript Comics
Post by: BentonGrey on May 26, 2008, 11:01:45 AM
Shoot!  Ahh, that's what I get for reusing my working script to try and cut down on errors......haha, that was left over from my Batman JLA mission, and I forgot to erase it!  Thanks for putting a fresh set of eyes on that M, I just did not notice at all.  I know you must get really sick of me making all these stupid errors and asking y'all to figure them out, but I want you to know that I really appreciate it man!
Title: Re: EZScript Comics
Post by: BentonGrey on June 14, 2008, 02:50:28 PM
*Knocks on wood* Everything is going well for the moment, no major foul ups, but I do have a quick question for the EZScript gurus out there.  If I'm doing my JLA campaign, is there any way to track which characters the player chooses for one mission, and disallow those for the following mission?

:EDIT: I knew it, I absolutely knew it!  As soon as I said that, something went wrong.  JLA mission 7 was working perfectly, except for the opening cutscene.  I fixed that cutscene, and now none of the actual encounters are initializing.  I'm getting a very odd error message for each of them:

[spoiler]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 = ['martian_walker', 'white_martian', 'white_martian', 'martian_fighter', 'martian_fighter'], minions = ['white_martian'], cutscenes = [['alertcs', [['priority', 1], ['replace', ['villain1', 'villain']], ['cutscene', 'CS_Start()', "CS_Camera('villain1', dist=-160, yaw=0)", "CS_Speak('villain1', '<Smash these hovels, it will demoralize the human cattle.>', force=0)", "CS_AddArrow('villain1arrow', 'villain1', arrow_type=js.ARROW_RED)", 'CS_End()']]], ['startcs', [['priority', 1], ['replace', ['hero4', 'hero'], ['hero2', 'hero']], ['cutscene', 'CS_Start()', "CS_Camera('hero4', dist=-160, yaw=0)", 'CS_Speak(\'hero4\', "They\'re tearing the city apart!", force=0)', 'CS_Speak(\'hero2\', "Come on, let\'s return the favor!", force=0)', 'CS_End()']]]], marker = 'encounter', actions="villains fight heroes, villains and minions attack buildings",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 4206, 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 1351, 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 1417, 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 365, 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 246, in m25_spawn
    if js.Object_GetAttr(name,'complex'):
SystemError: NULL result without error in call_object
RANDOMENC: selected white_martian : total prestige 1
RANDOMENC: selected white_martian : total prestige 2
RANDOMENC: selected white_martian : total prestige 3
RANDOMENC: selected white_martian : total prestige 4
RANDOMENC: selected white_martian : total prestige 5
RANDOMENC: selected white_martian : total prestige 6
RANDOMENC: selected white_martian : total prestige 7
RANDOMENC: selected white_martian : total prestige 8
ENCOUNTER: Setting up encounter 3
ENCOUNTER: Start marker found for ['encounter'] 'encounter6'
AI: SetupAI() - setting ai for m25obj_20 ('white_martian')
AI: SetupAI() - setting ai for m25obj_22 ('white_martian')
AI: SetupAI() - setting ai for m25obj_24 ('white_martian')
AI: SetupAI() - setting ai for m25obj_26 ('white_martian')
AI: SetupAI() - setting ai for m25obj_28 ('white_martian')
AI: SetupAI() - setting ai for m25obj_30 ('white_martian')
AI: SetupAI() - setting ai for m25obj_32 ('white_martian')
AI: SetupAI() - setting ai for m25obj_34 ('white_martian')
GROUP: '3_minion' set to []
GROUP: 'm25obj_20' added to group '3_minion'
GROUP: 'm25obj_22' added to group '3_minion'
GROUP: 'm25obj_24' added to group '3_minion'
GROUP: 'm25obj_26' added to group '3_minion'
GROUP: 'm25obj_28' added to group '3_minion'
GROUP: 'm25obj_30' added to group '3_minion'
GROUP: 'm25obj_32' added to group '3_minion'
GROUP: 'm25obj_34' added to group '3_minion'
GROUP: '3_minion' set to ['m25obj_20', 'm25obj_22', 'm25obj_24', 'm25obj_26', 'm25obj_28', 'm25obj_30', 'm25obj_32', 'm25obj_34']
spawn: 'position' parameter invalid type, should be string or tuple.[/spoiler]

What makes this weird is that NONE of these encounters are custom, they are all fights, save civilians, or building rampage.

[spoiler]#---------------------------------------

Encounter: Attack1
Type: Save Civilian
Villains: white_martian, white_martian, white_martian, white_martian
Minions: white_martian
Allies: civilian_male, civilian_female, civilian_female
Next: None

Alert Cutscene:
Camera on Ally1
Ally1 plays animation power
Ally1 says, "Dear Lord, what are these things! Help!"
Yellow Arrow on Ally1
Yellow Arrow on Ally2
Yellow Arrow on Ally3

Start Cutscene:
Camera on superman
superman says, "We've got to stop these monsters before they reach the civilians!"

Next: If Ally Survives: None
Next: If Ally Lost: __lose__

Enemies Down Cutscene:
Camera on superman
superman says, "That'll teach you to pick on the helpless in MY town!"

Ally Thanks Hero Cutscene:
Ally1 turns to superman
Camera on Ally1
Ally1 says, "Thank you superman, you saved our lives!"

Ally Lost Cutscene:
Camera on superman
superman plays animation stunned
superman says, "I was too slow, and these innocents paid with their lives!"

#---------------------------------------[/spoiler]

:EDIT2: Apparently its not the opening cutscene, as I removed it and got the same error message.
Title: Re: EZScript Comics
Post by: M25 on June 17, 2008, 09:22:10 AM
I would guess that martian_walker doesn't exist in your game files.

EZ script doesn't currently have a mechanism to disallow a character from participating in a mission.

All encounters translate to custom encounters internally.  Of course it doesn't make for a very illuminating error message.   :doh:
Title: Re: EZScript Comics
Post by: GogglesPizanno on June 17, 2008, 09:31:25 AM
QuoteIf I'm doing my JLA campaign, is there any way to track which characters the player chooses for one mission, and disallow those for the following mission?

Could you add a simple python script to that Mission that fired off during onMissionWon()... it could cycle through the list of heroes and then un-recruit them?

Though doing it this way would mean re-recruiting them at some later mission to get them back in the available character rotation, but it seems to me that it would be pretty doable.
Title: Re: EZScript Comics
Post by: BentonGrey on June 20, 2008, 09:25:25 PM
Hmm.......well...what this makes me think is that all of a sudden my EZScript is broken....I'm fearful that my files have gotten corrupted somehow!  Also M, what makes you think the martian_walker doesn't exist?  I'm sure it is spelled right, and that I've got it set up correctly.  Also, in the interest of self-diagnosis, what part of the error report made you think that, because I'm afraid I completely didn't see it.

Interesting Goggles, and I suppose that would be do-able.
Title: Re: EZScript Comics
Post by: M25 on June 23, 2008, 08:18:59 AM
From the log, it looks like all of the minions spawned, but none of the villains did.  The last part of the error message refers to m25_spawn, which is the part of the script that puts the characters on the map. The first villain in the list is the martian_walker (in the script.log you posted - not the EZ script encounter!), so I'm guessing that it didn't spawn correctly. 

I didn't realize that the encounter is not the same one that produced the error message... if you are getting that error on multiple encounters, then it may be that the markers are not set up correctly on the map.  Are you using encounter1_villain1 style markers?


Title: Re: EZScript Comics
Post by: BentonGrey on June 23, 2008, 11:43:25 AM
Thanks for the response M, and yes, I am.  I didn't think about it, but that IS something else I changed.  I added villain1-8 and ally1-7 markers to each encounter marker.  I'll check over those this afternoon.
Title: Re: EZScript Comics
Post by: BentonGrey on June 27, 2008, 01:43:52 PM
Okay, as far as I can tell, everything is set up properly on the map, but I DID recycle markers, could the settings of the individual markers be screwing things up?  I'm using one of the campaign maps, and many of the markers have different settings from the default positional ones.
Title: Re: EZScript Comics
Post by: M25 on June 30, 2008, 07:55:10 AM
I thought I replied to this already...

I'm guessing from the error log that one of the villain markers isn't set up correctly.  Make sure it is of the form <mymarker>_villain1 and that you have at least as many villain markers as villains in the encounter.  Add an extra one to be safe.


Title: Re: EZScript Comics
Post by: BentonGrey on July 04, 2008, 08:03:41 AM
Hmm......I've double checked my markers, but I suppose I'll triple check them.  It's always possible I missed something.

As for having already replied, when the boards came back, we lost the most recent of posts, so maybe you did! ^_^
Title: Re: EZScript Comics
Post by: BentonGrey on July 05, 2008, 10:55:46 PM
Three cheers for M25!  He figured out the problem, and now I have only one more level (plus base scenes) to go for the JLA!
Title: Re: EZScript Comics
Post by: BentonGrey on July 06, 2008, 07:41:46 PM
Woo-hoo!  I'm working on the final mission for my first JLA campaign!  Anyway, I've got a question about how I should go about this.  If I want all of the Leaguers to participate, is there a way to incorporate Epic mode into EZscript?  If not, what would be the best way to incorporate the other Leaguers into the mission as allies?  I want them to fight alongside you for the entirety of the level.  Thanks guys!

P.S.  Sorry for the triple post, but I wasn't sure people would notice if I just edited my last one.
Title: Re: EZScript Comics
Post by: M25 on July 07, 2008, 08:11:01 AM
No epic mode I'm afraid.   :(

To get allies to join for the whole mission, just set up an Alliance encounter containing all of the allies you want.  They will follow you around for the entire mission.


Title: Re: EZScript Comics
Post by: BentonGrey on July 07, 2008, 08:18:21 AM
Cool, thanks M!
Title: Re: EZScript Comics
Post by: BentonGrey on July 20, 2008, 03:32:55 PM
Quick question, can I have multiple objects in a Destroy Object encounter?  I'm assuming so since the guide says "objects," but we all know what they say about assumptions.
Title: Re: EZScript Comics
Post by: M25 on July 20, 2008, 09:53:59 PM
Yes, you can have multiple objects, and all of them will have to be destroyed.

Title: Re: EZScript Comics
Post by: BentonGrey on July 21, 2008, 05:52:57 AM
Thanks for the response M!
Title: Re: EZScript Comics
Post by: BentonGrey on July 24, 2008, 09:47:50 PM
Okay, the final JLA mission is coming along quite nicely.  So far everything is working. *crosses fingers, knocks on wood, and hangs a clove of garlic about his neck*  However, I do have a question for the script masters around here.  For the first time I wanted to make use of the 'Banter' cutscene, to allow the final boss to reveal a bit more of the story without having to slog through one LOOOONG cutscene.  However, what I didn't realize is that the banter cutscenes constantly recycle.  Is there any way to have the banter scene play just once?
Title: Re: EZScript Comics
Post by: Boalt92 on July 25, 2008, 04:08:03 AM
I probably shouldn't be answering because I'm not a scripter, but I think you can simulate this using EZ Script in one of two ways:

1) Break up the final encounter into a string of encounters.  When one of the small encounters ends, trigger a cutscene (using Boss says telepathically) to have the boss say something.  For example:

Encounter: Boss_start
Type: cutscene
Next: boss_thug1, boss_thug2

Start Cutscene:
Boss says, "your pitiful skills are no match for the power of the dark side!"
hero says, "you'll find i'm full of suprises!"


Encounter: Boss_thug1
Type: fight
...etc
Next: none

End Cutscene:
Boss says telepathically, "Mentor has taught you well."

Encounter: Boss_thug2
Type: fight
...etc
Next: none

End Cutscene:
Boss says telepathically, "Impressive."

Encounter: Boss_final
Type: fight
Villains: boss
Starts When: boss_thug1 at End, boss_thug2 at End
Next: none

Alert Cutscene:
boss says, "hero, mentor never told you what happend to your father!"
hero says, "he told me enough!"
boss says, "hero....I am your father!"
hero says, "NOOOOOOOOOOO!"



I've been doing this another way using "Encounter Type: none" as a placeholder/status marker.  For an example, please check out this thread: http://freedomreborn.net/archive/index.php?topic=46445.0 (scroll down to the bottom)


2) Tie the comment to a "villain" KO cutscene.  I would suggest identifying the template instead using the generic "villain" or "minion" because you don't want the cutscene to trigger every time a villain goes down.  Otherwise, try using "minion1", "minion2", "minion3", etc.
For example:


Encounter: boss_start
Type: Fight
Villains: boss, boss_thug1, boss_thug2


Alert Cutscene:
Boss says, "your pitiful skills are no match for the power of the dark side!"
hero says, "you'll find i'm full of suprises!"

boss_thug1 KO Cutscene:
Boss says telepathically, "Mentor has taught you well."

boss_thug2 KO Cutscene:
boss says, "hero, mentor never told you what happend to your father!"
hero says, "he told me enough!"
boss says, "hero....I am your father!"
hero says, "NOOOOOOOOOOO!"

Of course, this option requires the hero to kill off the thugs before taking out the boss.

Hope that helps.

B92
Title: Re: EZScript Comics
Post by: M25 on July 25, 2008, 12:33:42 PM
There's no way to only play a banter scene once.  They are intended to be random bits of color.

You could also try the villain stops at X health custom encounters.

Encounter: BF1
Type: Custom
Actions: villains stops at three quarters health, villains fight heroes
Villains: myvillain named bob

... cutscenes...

Encounter: BF2
Type: Custom
Actions: villain stops at one half health, villains fight heroes
Villains: myvillain named bob

... cutscenes...

Encounter: BF3
Type: Fight
Villains: myvillain named bob

... cutscenes...



By naming the villain (bob in this example) you tell EZ script to use the same character in each encounter.  You can set cutscenes to tell your story when the villain is down to three-quarters health, half-health, etc.


Title: Re: EZScript Comics
Post by: BentonGrey on July 25, 2008, 01:58:56 PM
Thanks guys!  Those are both excellent ideas.  I'm going to try and slap something together this evening. :D
Title: Re: EZScript Comics
Post by: BentonGrey on July 26, 2008, 11:15:31 AM
Okay, so I'm reworking my last two fights to incorporate these ideas, but I'm having trouble with the second to last one ending (meaning I haven't even been able to test the last one)....as in, its not.  What I want is to have the villain give out a warning as she falls, but I'm fairly certain that me trying to have her talk after being KOed is what is causing the problem.  Here's the final cutscene, so how should I go about it?

:EDIT: Nevermind, I'm changing formats.  I am however getting that DoEncCustom error again.  I'm going to do a bit more testing, then I'll post.

:EDIT2: Okay, I've fixed a couple of typos, and actually thought I had this liked...but I'm still getting that same error message.  I do not have FFX 3.3 installed yet, as I'm dreading the work involved in merging everything together and backing everything up.  Here's the script.log in my next posts.
Title: Re: EZScript Comics
Post by: BentonGrey on July 26, 2008, 12:21:15 PM
[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 1217099585.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
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 5, 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\MiniMod JLA8.py executed
>>> C:\Documents and Settings\Owner\Local Settings\Application Data\Irrational Games\Freedom Force vs the 3rd Reich\temp\danger.py executed
MISSION: EZScript MiniMod/Campaign Precache.
PSTORY: {'name': 'JLA8', 'encounters': [{'marker': 'encounter', 'type': 'Alliance', 'timeofday': 'none', 'required_map': [], 'trigger': [], 'next': ['Bell1'], 'objectives': [], 'parameters': [['allies', 'batman, aquaman_classic, wonder_woman']], 'name': 'Friend', 'cutscenes': [], 'pre': []}, {'minions': ['white_martian'], 'marker': 'alien4', 'type': 'Custom', 'timeofday': 'none', 'required_map': [], 'trigger': [], 'next': ['Bell2'], 'objectives': [], 'parameters': [['actions', 'Villains Fight Heroes, Villains Are Invulnerable, Invulnerability Can End, Invulnerability Ends When Minions Defeated, Villain stops at three quarters health'], ['villaininvulnerabilityeffect', 'effect_ffx_energyshield']], 'name': 'Bell1', 'villains': ['bel_juz'], 'cutscenes': [{'replace': [], 'name': 'Alert', 'required': ['batman', 'aquaman_classic', 'wonder_woman', 'martian_manhunter', 'bel_juz'], 'priority': 1, 'cutscene': ['CS_Start()', 'CS_Fade(2)', "CS_Revive('batman')", "CS_Revive('aquaman_classic')", "CS_Revive('wonder_woman')", "CS_Camera('martian_manhunter', dist=-160, yaw=0)", 'CS_UnFade(3)', "CS_Speak('martian_manhunter', 'Quickly, we are almost to the control center!', force=0)", "CS_AddArrow('bel_juzarrow', 'bel_juz', arrow_type=js.ARROW_RED)", 'CS_End()']}, {'replace': [], 'name': 'Start', 'required': ['martian_manhunter', 'group3marker6', 'bel_juz', 'superman', 'flash', 'batman'], 'priority': 1, 'cutscene': ['CS_Start()', "CS_MoveTo('martian_manhunter', 'group3marker6')", "CS_Camera('martian_manhunter', dist=-160, yaw=0)", 'CS_Speak(\'bel_juz\', "Hello J\'onn...", force=0)', "CS_Animate('martian_manhunter','pain')", "CS_Camera('bel_juz', dist=-160, yaw=0)", "CS_Speak('bel_juz', 'I have missed you these last millennia...I dreamed of you as I slept.', force=0)", "CS_Camera('martian_manhunter', dist=-160, yaw=0)", "CS_Animate('martian_manhunter','stunned')", 'CS_Speak(\'martian_manhunter\', \'"B\\\'ell...B\\\'ell J\\\'ouzz? How is this possible?\', force=0)', [/spoiler]
Title: Re: EZScript Comics
Post by: BentonGrey on July 26, 2008, 12:21:42 PM
[spoiler]"CS_Camera('superman', dist=-160, yaw=0)", 'CS_Speak(\'superman\', "J\'onn, who is this woman?", force=0)', "CS_Animate('superman','ranged')", "CS_Camera('martian_manhunter', dist=-160, yaw=0)", "CS_Speak('martian_manhunter', '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.', force=0)", "CS_Camera('bel_juz', dist=-160, yaw=0)", "CS_Animate('bel_juz','ranged_2')", "CS_Speak('bel_juz', 'I WAS the best', force=0)", "CS_Camera('martian_manhunter', dist=-160, yaw=0)", "CS_Speak('martian_manhunter', 'She joined with the exiles, even led them against us...against me.', force=0)", "CS_Camera('bel_juz', dist=-160, yaw=0)", 'CS_Speak(\'bel_juz\', "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!", force=0)', "CS_Animate('bel_juz','area_4')", "CS_Camera('martian_manhunter', dist=-160, yaw=0)", "CS_Animate('martian_manhunter','ranged_2')", 'CS_Speak(\'martian_manhunter\', "There is no strength in the taking of life, only in it\'s preservation.", force=0)', "CS_Camera('bel_juz', dist=-160, yaw=0)", 'CS_Speak(\'bel_juz\', "Don\'t quote scripture to me J\'onzz!", force=0)', "CS_Animate('bel_juz','area_5')", 'CS_Speak(\'bel_juz\', "The war wasn\'t personal, but what I did to your wife and daugther, I have to admit, I enjoyed!", force=0)', "CS_Camera('martian_manhunter', dist=-160, yaw=0)", "CS_Animate('martian_manhunter','stunned')", "CS_Speak('martian_manhunter', 'Monster!', force=0)", "CS_Camera('flash', dist=-160, yaw=0)", "CS_Speak('flash', 'She killed his wife...good lord!', force=0)", "CS_Camera('batman', dist=-160, yaw=0)", 'CS_Speak(\'batman\', "I\'ve heard enough, let\'s take them down!", force=0)', 'CS_End()']}, {'replace': [], 'name': 'Villainshurt', 'required': ['bel_juz', 'martian_manhunter'], 'priority': 1, 'cutscene': ['CS_Start()', "CS_Camera('bel_juz', dist=-160, yaw=0)", 'CS_Speak(\'bel_juz\', "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!", force=0)', "CS_Camera('martian_manhunter', dist=-160, yaw=0)", "CS_Animate('martian_manhunter','melee')", "CS_Speak('martian_manhunter', 'Unlike her, you will never see paradise you demon!', force=0)", 'CS_End()']}], 'pre': []}, {'marker': 'alien4', 'type': 'Custom', 'timeofday': 'none', 'required_map': [], 'trigger': [], 'next': ['Final1'], 'objectives': [], 'parameters': [['actions', 'Villains Fight Heroes, Villain stops at one quarter health']], 'name': 'Bell2', 'villains': ['bel_juz'], 'cutscenes': [{'replace': [], 'name': 'Villainshurt', 'required': ['martian_manhunter', 'bel_juz', 'aquaman_classic', 'green_lantern'], 'priority': 1, 'cutscene': ['CS_Start()', 'CS_Fade(2)', "CS_Camera('martian_manhunter', dist=-160, yaw=0)", "CS_MoveTo('martian_manhunter', 'bel_juz')", 'CS_UnFade(3)', "CS_Animate('bel_juz','stunned')", "CS_Speak('martian_manhunter', 'Now you must face the justice of this people, just as you escaped the justice of our own people.', force=0)", "CS_Camera('bel_juz', dist=-160, yaw=0)", "CS_Speak('bel_juz', '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!', force=0)", "CS_Animate('bel_juz','fall')", "CS_Camera('martian_manhunter', dist=-160, yaw=0)", "CS_Animate('martian_manhunter','idle_2')", "CS_Speak('martian_manhunter', 'The Imperium.', force=0)", "CS_Speak('aquaman_classic', 'What IS the Imperium?', force=0)", "CS_Speak('martian_manhunter', '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.', force=0)", "CS_Camera('green_lantern', dist=-160, yaw=0)", 'CS_Speak(\'green_lantern\', "What\'s one more big lizard...right?", force=0)', "CS_Speak('martian_manhunter', 'You shall see, very soon. This way!', force=0)", 'CS_End()']}], 'pre': []}, {'marker': 'alien4', 'type': 'Fight', 'timeofday': 'none', 'required_map': [], 'trigger': [], 'next': [], 'objectives': [], 'parameters': [], 'name': 'Gang1', 'villains': ['white_martian'], 'cutscenes': [{'replace': [], 'name': 'End', 'required': ['bel_juz', 'superman', 'martian_manhunter'], 'priority': 1, 'cutscene': ['CS_Start()', "CS_Camera('bel_juz', dist=-160, yaw=0)", "CS_Animate('bel_juz','area_3')", 'CS_Speak(\'bel_juz\', "Do your worst sanctimonious one, I am protected by the S\'ourns, and I share their strength!", force=0)', "CS_Camera('superman', dist=-160, yaw=0)", "CS_Animate('superman','melee')", 'CS_Speak(\'superman\', "She\'s right, we can\'t seem to hurt her!", force=0)', "CS_Camera('martian_manhunter', dist=-160, yaw=0)",
"CS_Animate('martian_manhunter','ranged_3')", "CS_Speak('martian_manhunter', 'A psychokinetic shield-she is prtoected by the combined thoughts of her servants!', force=0)", 'CS_End()']}], 'pre': []}, {'minions': ['white_martian'], 'marker': 'alien5', 'type': 'Custom', 'timeofday': 'none', 'required_map': [], 'trigger': [], 'next': ['__win__'], 'objectives': [], 'parameters': [['actions', 'Villains Fight Heroes, Villains Are Invulnerable, Invulnerability Can End, Invulnerability Ends When Objects Destroyed, Heroes Destroy Objects, Villain stops at one quarter health'], ['object', 'pillar_shadow, pillar_shadow, pillar_shadow, pillar_shadow']], 'name': 'Final1', 'villains': ['white_martian_brain'], 'cutscenes': [{'replace': [], 'name': 'Alert', 'required': ['white_martian_brain'], 'priority': 1, 'cutscene': ["CS_AddArrow('white_martian_brainarrow', 'white_martian_brain', arrow_type=js.ARROW_RED)"]}, {'replace': [], 'name': 'Start', 'required': ['white_martian_brain', 'flash', 'green_lantern', 'martian_manhunter', 'wonder_woman', 'batman', 'aquaman_classic', 'superman'], 'priority': 1, 'cutscene': ['CS_Start()', "CS_Camera('white_martian_brain', dist=-160, yaw=0)", 'CS_Speak(\'white_martian_brain\', "J\'onn J\'onzz, we meet again. I am pleased that you have survived long enough for me to destroy you personally.", force=0)', "CS_Camera('flash', dist=-160, yaw=0)", "CS_Speak('flash', 'That is one BIG lizard...', force=0)", "CS_Camera('green_lantern', dist=-160, yaw=0)", 'CS_Speak(\'green_lantern\', "He...ugh...he doesn\'t look so tough, right guys?", force=0)', "CS_Camera('martian_manhunter', dist=-160, yaw=0)", "CS_Speak('martian_manhunter', '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!', force=0)", "CS_Animate('martian_manhunter','melee')", "CS_Camera('flash', dist=-160, yaw=0)", "CS_Animate('flash','pain')", "CS_Speak('flash', ' Great, ANOTHER invulnerable monster!', force=0)", "CS_Camera('wonder_woman', dist=-160, yaw=0)", "CS_Speak('wonder_woman', 'There is no such thing as an unbeatable foe!', force=0)", "CS_Camera('batman', dist=-160, yaw=0)", 'CS_Speak(\'batman\', "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!", force=0)', "CS_Speak('aquaman_classic', 'What?!', force=0)", "CS_Camera('superman', dist=-160, yaw=0)", 'CS_Speak(\'superman\', "By now I\'ve learned to trust the man, just do it!", force=0)', 'CS_End()']}, {'replace': [], 'name': 'ObjectsDestroyed', 'required': ['martian_manhunter', 'white_martian_brain'], 'priority': 1, 'cutscene': ['CS_Start()', 'CS_Fade(2)', "CS_Lighting('noon')", "CS_Camera('martian_manhunter', dist=-160, yaw=0)", "CS_TurnTo('martian_manhunter', 'white_martian_brain')", "CS_Animate('martian_manhunter','ranged')", "CS_Speak('martian_manhunter', 'The sun, I see now! The Imperium is defenseless!', force=0)", 'CS_End()']}, {'replace': [], 'name': 'End', 'required': ['white_martian_brain', 'martian_manhunter', 'green_lantern', 'aquaman_classic', 'batman', 'flash', 'superman', 'wonder_woman'], 'priority': 1, 'cutscene': ['CS_Start()', 'CS_Fade(2)', "CS_Revive('white_martian_brain')", "CS_Camera('white_martian_brain', dist=-160, yaw=0)", [/spoiler]
Title: Re: EZScript Comics
Post by: BentonGrey on July 26, 2008, 12:23:18 PM
[spoiler]"CS_Animate('white_martian_brain','stunned')", 'CS_UnFade(3)', 'CS_Speak(\'white_martian_brain\', "Nooo! Curse you J\'onzz! I will see you in the inferno, I promise you that!", force=0)', "CS_Animate('white_martian_brain','fall')", "CS_Camera('martian_manhunter', dist=-160, yaw=0)", "CS_Animate('martian_manhunter','power')", "CS_Speak('martian_manhunter', '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!', force=0)", "CS_Camera('white_martian_brain', dist=-160, yaw=0)", "CS_Camera('green_lantern', dist=-160, yaw=0)", "CS_Speak('green_lantern', 'Deep space dwellers...I should have seen it!', force=0)", "CS_Camera('aquaman_classic', dist=-160, yaw=0)", "CS_Speak('aquaman_classic', 'What does that have to do with anything?', force=0)", 'CS_Speak(\'batman\', "Having been exiled in deep space for millenia, the S\'ourns had no defenses against solar radiation.", force=0)', "CS_Camera('flash', dist=-160, yaw=0)", "CS_Speak('flash', 'So...what happens now?', force=0)", "CS_Camera('superman', dist=-160, yaw=0)", "CS_Animate('superman','ranged')", 'CS_Speak(\'superman\', "They\'re running! I can see them leaving all over the city!", force=0)', "CS_Camera('martian_manhunter', dist=-160, yaw=0)", "CS_Speak('martian_manhunter', '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.', force=0)", "CS_Camera('batman', dist=-160, yaw=0)", "CS_Speak('batman', 'What about the woman? She escaped while we were occupied with the Imperium.', force=0)", "CS_Camera('superman', dist=-160, yaw=0)", "CS_Speak('superman', 'What can she do without an army?', force=0)", "CS_Camera('batman', dist=-160, yaw=0)", 'CS_Speak(\'batman\', "I\'d rather not find out...", force=0)', "CS_Camera('wonder_woman', dist=-160, yaw=0)", "CS_Animate('wonder_woman','power')", "CS_Speak('wonder_woman', 'Now is a time for celebration, we have won a great victory!', force=0)", "CS_Camera('aquaman_classic', dist=-160, yaw=0)", 'CS_Speak(\'aquaman_classic\', "The princess is right, we\'ve saved the Earth, both above and below the waves.", force=0)', 'CS_End()']}], 'pre': []}], 'start': []}
PSTORY: {'JLA8': {'encounters': {'Final1': {'next': ['__win__'], 'required_map': [], 'timeofday': 'none', 'action': ['DoEncCustom(villains = [\'white_martian_brain\'], minions = [\'white_martian\'], cutscenes = [[\'alertcs\', [[\'priority\', 1], [\'required\', \'white_martian_brain\'], [\'cutscene\', "CS_AddArrow(\'white_martian_brainarrow\', \'white_martian_brain\', arrow_type=js.ARROW_RED)"]]], [\'startcs\', [[\'priority\', 1], [\'required\', \'white_martian_brain\', \'flash\', \'green_lantern\', \'martian_manhunter\', \'wonder_woman\', \'batman\', \'aquaman_classic\', \'superman\'], [\'cutscene\', \'CS_Start()\', "CS_Camera(\'white_martian_brain\', dist=-160, yaw=0)", \'CS_Speak(\\\'white_martian_brain\\\', "J\\\'onn J\\\'onzz, we meet again. I am pleased that you have survived long enough for me to destroy you personally.", force=0)\', "CS_Camera(\'flash\', dist=-160, yaw=0)", "CS_Speak(\'flash\', \'That is one BIG lizard...\', force=0)", "CS_Camera(\'green_lantern\', dist=-160, yaw=0)", \'CS_Speak(\\\'green_lantern\\\', "He...ugh...he doesn\\\'t look so tough, right guys?", force=0)\', "CS_Camera(\'martian_manhunter\', dist=-160, yaw=0)", "CS_Speak(\'martian_manhunter\', \'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!\', force=0)", "CS_Animate(\'martian_manhunter\',\'melee\')", "CS_Camera(\'flash\', dist=-160, yaw=0)", "CS_Animate(\'flash\',\'pain\')", "CS_Speak(\'flash\', \' Great, ANOTHER invulnerable monster!\', force=0)", "CS_Camera(\'wonder_woman\', dist=-160, yaw=0)", "CS_Speak(\'wonder_woman\', \'There is no such thing as an unbeatable foe!\', force=0)", "CS_Camera(\'batman\', dist=-160, yaw=0)", \'CS_Speak(\\\'batman\\\', "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!", force=0)\', "CS_Speak(\'aquaman_classic\', \'What?!\', force=0)", "CS_Camera(\'superman\', dist=-160, yaw=0)", \'CS_Speak(\\\'superman\\\', "By now I\\\'ve learned to trust the man, just do it!", force=0)\', \'CS_End()\']]], [\'objectsdestroyedcs\', [[\'priority\', 1], [\'required\', \'martian_manhunter\', \'white_martian_brain\'], [\'cutscene\', \'CS_Start()\', \'CS_Fade(2)\', "CS_Lighting(\'noon\')", "CS_Camera(\'martian_manhunter\', dist=-160, yaw=0)", "CS_TurnTo(\'martian_manhunter\', \'white_martian_brain\')", "CS_Animate(\'martian_manhunter\',\'ranged\')", "CS_Speak(\'martian_manhunter\', \'The sun, I see now! The Imperium is defenseless!\', force=0)", \'CS_End()\']]], [\'endcs\', [[\'priority\', 1], [\'required\', \'white_martian_brain\', \'martian_manhunter\', \'green_lantern\', \'aquaman_classic\', \'batman\', \'flash\', \'superman\', \'wonder_woman\'], [\'cutscene\', \'CS_Start()\', \'CS_Fade(2)\', "CS_Revive(\'white_martian_brain\')", "CS_Camera(\'white_martian_brain\', dist=-160, yaw=0)", "CS_Animate(\'white_martian_brain\',\'stunned\')", \'CS_UnFade(3)\', \'CS_Speak(\\\'white_martian_brain\\\', "Nooo! Curse you J\\\'onzz! I will see you in the inferno, I promise you that!", force=0)\', "CS_Animate(\'white_martian_brain\',\'fall\')", "CS_Camera(\'martian_manhunter\', dist=-160, yaw=0)", "CS_Animate(\'martian_manhunter\',\'power\')", "CS_Speak(\'martian_manhunter\', \'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!\', force=0)", "CS_Camera(\'white_martian_brain\', dist=-160, yaw=0)", "CS_Camera(\'green_lantern\', dist=-160, yaw=0)", "CS_Speak(\'green_lantern\', \'Deep space dwellers...I should have seen it!\', force=0)", "CS_Camera(\'aquaman_classic\', dist=-160, yaw=0)", "CS_Speak(\'aquaman_classic\', \'What does that have to do with anything?\', force=0)", \'CS_Speak(\\\'batman\\\', "Having been exiled in deep space for millenia, the S\\\'ourns had no defenses against solar radiation.", force=0)\', "CS_Camera(\'flash\', dist=-160, yaw=0)", "CS_Speak(\'flash\', \'So...what happens now?\', force=0)", "CS_Camera(\'superman\', dist=-160, yaw=0)", "CS_Animate(\'superman\',\'ranged\')", \'CS_Speak(\\\'superman\\\', "They\\\'re running! I can see them leaving all over the city!", force=0)\', "CS_Camera(\'martian_manhunter\', dist=-160, yaw=0)", "CS_Speak(\'martian_manhunter\', \'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.\', force=0)", "CS_Camera(\'batman\', dist=-160, yaw=0)", "CS_Speak(\'batman\', \'What about the woman? She escaped while we were occupied with the Imperium.\', force=0)", "CS_Camera(\'superman\', dist=-160, yaw=0)", "CS_Speak(\'superman\', \'What can she do without an army?\', force=0)", "CS_Camera(\'batman\', dist=-160, yaw=0)", \'CS_Speak(\\\'batman\\\', "I\\\'d rather not find out...", force=0)\', "CS_Camera(\'wonder_woman\', dist=-160, yaw=0)", "CS_Animate(\'wonder_woman\',\'power\')", "CS_Speak(\'wonder_woman\', \'Now is a time for celebration, we have won a great victory!\', force=0)", "CS_Camera(\'aquaman_classic\', dist=-160, yaw=0)", \'CS_Speak(\\\'aquaman_classic\\\', "The princess is right, we\\\'ve saved the Earth, both above and below the waves.", force=0)\', \'CS_End()\']]]], marker = \'alien5\', actions = \'Villains Fight Heroes, Villains Are Invulnerable, Invulnerability Can End, Invulnerability Ends When Objects Destroyed, Heroes Destroy Objects, Villain stops at one quarter health\', object = \'pillar_shadow, pillar_shadow, pillar_shadow, pillar_shadow\')']}, 'Friend': {'timeofday': 'none', 'next': ['Bell1'], 'trigger': ['start'], 'action': ["DoEncAlliance(cutscenes = [], marker = 'encounter', allies = ['batman', 'aquaman_classic', 'wonder_woman'])"], 'required_map': []}, 'Bell1': {'next': ['Bell2'], 'required_map': [], 'timeofday': 'none', 'action': ['DoEncCustom(villains = [\'bel_juz\'], minions = [\'white_martian\'], cutscenes = [[\'alertcs\', [[\'priority\', 1], [\'required\', \'batman\', \'aquaman_classic\', \'wonder_woman\', \'martian_manhunter\', \'bel_juz\'], [\'cutscene\', \'CS_Start()\', \'CS_Fade(2)\', "CS_Revive(\'batman\')", "CS_Revive(\'aquaman_classic\')", "CS_Revive(\'wonder_woman\')", "CS_Camera(\'martian_manhunter\', dist=-160, yaw=0)", \'CS_UnFade(3)\', "CS_Speak(\'martian_manhunter\', \'Quickly, we are almost to the control center!\', force=0)", "CS_AddArrow(\'bel_juzarrow\', \'bel_juz\', arrow_type=js.ARROW_RED)", \'CS_End()\']]], [\'startcs\', [[\'priority\', 1], [\'required\', \'martian_manhunter\', \'group3marker6\', \'bel_juz\', \'superman\', \'flash\', \'batman\'], [\'cutscene\', \'CS_Start()\', "CS_MoveTo(\'martian_manhunter\', \'group3marker6\')", "CS_Camera(\'martian_manhunter\', dist=-160, yaw=0)", \'CS_Speak(\\\'bel_juz\\\', "Hello J\\\'onn...", force=0)\', "CS_Animate(\'martian_manhunter\',\'pain\')", "CS_Camera(\'bel_juz\', dist=-160, yaw=0)", "CS_Speak(\'bel_juz\', \'I have missed you these last millennia...I dreamed of you as I slept.\', force=0)", "CS_Camera(\'martian_manhunter\', dist=-160, yaw=0)", "CS_Animate(\'martian_manhunter\',\'stunned\')", \'CS_Speak(\\\'martian_manhunter\\\', \\\'"B\\\\\\\'ell...B\\\\\\\'ell J\\\\\\\'ouzz? How is this possible?\\\', force=0)\', "CS_Camera(\'superman\', dist=-160, yaw=0)", \'CS_Speak(\\\'superman\\\', "J\\\'onn, who is this woman?", force=0)\', "CS_Animate(\'superman\',\'ranged\')", "CS_Camera(\'martian_manhunter\', dist=-160, yaw=0)", "CS_Speak(\'martian_manhunter\', \'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.\', force=0)", "CS_Camera(\'bel_juz\', dist=-160, yaw=0)", "CS_Animate(\'bel_juz\',\'ranged_2\')", "CS_Speak(\'bel_juz\', \'I WAS the best\', force=0)", "CS_Camera(\'martian_manhunter\', dist=-160, yaw=0)", "CS_Speak(\'martian_manhunter\', \'She joined with the exiles, even led them against us...against me.\', force=0)", "CS_Camera(\'bel_juz\', dist=-160, yaw=0)", \'CS_Speak(\\\'bel_juz\\\', "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!", force=0)\', "CS_Animate(\'bel_juz\',\'area_4\')", "CS_Camera(\'martian_manhunter\', dist=-160, yaw=0)", "CS_Animate(\'martian_manhunter\',\'ranged_2\')", \'CS_Speak(\\\'martian_manhunter\\\', "There is no strength in the taking of life, only in it\\\'s preservation.", force=0)\', "CS_Camera(\'bel_juz\', dist=-160, yaw=0)", \'CS_Speak(\\\'bel_juz\\\', "Don\\\'t quote scripture to me J\\\'onzz!", force=0)\', "CS_Animate(\'bel_juz\',\'area_5\')", \'CS_Speak(\\\'bel_juz\\\', "The war wasn\\\'t personal, but what I did to your wife and daugther, I have to admit, I enjoyed!", force=0)\', "CS_Camera(\'martian_manhunter\', dist=-160, yaw=0)", "CS_Animate(\'martian_manhunter\',\'stunned\')", "CS_Speak(\'martian_manhunter\', \'Monster!\', force=0)", "CS_Camera(\'flash\', dist=-160, yaw=0)", "CS_Speak(\'flash\', \'She killed his wife...good lord!\', force=0)", "CS_Camera(\'batman\', dist=-160, yaw=0)", \'CS_Speak(\\\'batman\\\', "I\\\'ve heard enough, let\\\'s take them down!", force=0)\', \'CS_End()\']]], [\'villainshurtcs\', [[\'priority\', 1], [\'required\', \'bel_juz\', \'martian_manhunter\'], [\'cutscene\', \'CS_Start()\', "CS_Camera(\'bel_juz\', dist=-160, yaw=0)", \'CS_Speak(\\\'bel_juz\\\', "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!", force=0)\', "CS_Camera(\'martian_manhunter\', dist=-160, yaw=0)", "CS_Animate(\'martian_manhunter\',\'melee\')", "CS_Speak(\'martian_manhunter\', \'Unlike her, you will never see paradise you demon!\', force=0)", \'CS_End()\']]]], marker = \'alien4\', actions = \'Villains Fight Heroes, Villains Are Invulnerable, Invulnerability Can End, Invulnerability Ends When Minions Defeated, Villain stops at three quarters health\', villaininvulnerabilityeffect = \'effect_ffx_energyshield\')']}, '__end__': {'action': ["ff.Story_SetStoryEnded('JLA8')"]}, 'Bell2': {'next': ['Final1'], 'required_map': [], 'timeofday': 'none', 'action': ['DoEncCustom(villains = [\'bel_juz\'], cutscenes = [[\'villainshurtcs\', [[\'priority\', 1], [\'required\', \'martian_manhunter\', \'bel_juz\', \'aquaman_classic\', \'green_lantern\'], [\'cutscene\', \'CS_Start()\', \'CS_Fade(2)\', "CS_Camera(\'martian_manhunter\', dist=-160, yaw=0)", "CS_MoveTo(\'martian_manhunter\', \'bel_juz\')", \'CS_UnFade(3)\', "CS_Animate(\'bel_juz\',\'stunned\')", "CS_Speak(\'martian_manhunter\', \'Now you must face the justice of this people, just as you escaped the justice of our own people.\', force=0)", "CS_Camera(\'bel_juz\', dist=-160, yaw=0)", "CS_Speak(\'bel_juz\', \'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!\', force=0)", "CS_Animate(\'bel_juz\',\'fall\')", "CS_Camera(\'martian_manhunter\', dist=-160, yaw=0)", "CS_Animate(\'martian_manhunter\',\'idle_2\')", "CS_Speak(\'martian_manhunter\', \'The Imperium.\', force=0)", "CS_Speak(\'aquaman_classic\', \'What IS the Imperium?\', force=0)", "CS_Speak(\'martian_manhunter\', \'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.\', force=0)", "CS_Camera(\'green_lantern\', dist=-160, yaw=0)", \'CS_Speak(\\\'green_lantern\\\', "What\\\'s one more big lizard...right?", force=0)\', "CS_Speak(\'martian_manhunter\', \'You shall see, very soon. This way!\', force=0)", \'CS_End()\']]]], marker = \'alien4\', actions = \'Villains Fight Heroes, Villain stops at one quarter health\')']}, 'Gang1': {'next': ['Final1'], 'required_map': [], 'timeofday': 'none', 'action': ['DoEncCustom(villains = [\'white_martian\'], cutscenes = [[\'endcs\', [[\'priority\', 1], [\'required\', \'bel_juz\', \'superman\', \'martian_manhunter\'], [\'cutscene\', \'CS_Start()\', "CS_Camera(\'bel_juz\', dist=-160, yaw=0)", "CS_Animate(\'bel_juz\',\'area_3\')", \'CS_Speak(\\\'bel_juz\\\', "Do your worst sanctimonious one, I am protected by the S\\\'ourns, and I share their strength!", force=0)\', "CS_Camera(\'superman\', dist=-160, yaw=0)", "CS_Animate(\'superman\',\'melee\')", \'CS_Speak(\\\'superman\\\', "She\\\'s right, we can\\\'t seem to hurt her!", force=0)\', "CS_Camera(\'martian_manhunter\', dist=-160, yaw=0)", "CS_Animate(\'martian_manhunter\',\'ranged_3\')", "CS_Speak(\'martian_manhunter\', \'A psychokinetic shield-she is prtoected by the combined thoughts of her servants!\', force=0)", \'CS_End()\']]]], marker = \'alien4\', actions="villains fight heroes, allies fight villains")']}, '__win__': {'action': ['ff.Story_WinMission()']}, '__lose__': {'action': ['ff.Story_LoseMission()']}}}}[/spoiler]
Title: Re: EZScript Comics
Post by: BentonGrey on July 26, 2008, 12:25:13 PM
I am SO sorry for the quadruple post, but this was a ridiculous script.log.  Anyway, believe or not, this has been parred down a bit too. :wacko: 

[spoiler]
PSTORY: precaching batman
PSTORY: precaching aquaman_classic
PSTORY: precaching wonder_woman
PSTORY: precaching white_martian
PSTORY: precaching bel_juz
PSTORY: precaching white_martian_brain
! GetMapInfo
>>> C:\Documents and Settings\Owner\Local Settings\Application Data\Irrational Games\Freedom Force vs the 3rd Reich\temp\MiniMod JLA8.py executed
MISSION: On Post Init... start.
MLOG_Init(keepRunningModules=0): starting up
mlogreader.MLOG_Init: current mission = '08_JLA_FINAL_DS_UNDERWORLD'
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
numberStr=67
storing hero_0: id_1,-67
numberStr=68
storing hero_1: id_2,-68
numberStr=69
storing hero_2: id_3,-69
numberStr=70
storing hero_3: id_4,-70
MISSION: On Post Init... complete; starting story.
ENCOUNTER: Setting up encounter 1
ENCOUNTER: Start marker found for ['encounter'] 'encounter1'
GROUP: '1_minion' set to []
GROUP: '1_minion' set to []
GROUP: '1_minion' set to []
m25obj_2 batman encounter1_ally1
AI: SetupAI() - setting ai for m25obj_2 ('batman')
m25obj_4 aquaman_classic encounter1_ally2
AI: SetupAI() - setting ai for m25obj_4 ('aquaman_classic')
m25obj_6 wonder_woman encounter1_ally3
AI: SetupAI() - setting ai for m25obj_6 ('wonder_woman')
GROUP: '1_ally' set to []
GROUP: 'm25obj_2' added to group '1_ally'
GROUP: 'm25obj_4' added to group '1_ally'
GROUP: 'm25obj_6' added to group '1_ally'
GROUP: '1_ally' set to ['m25obj_2', 'm25obj_4', 'm25obj_6']
GROUP: '1_object' set to []
GROUP: '1_object' set to []
ENCOUNTER: Encounter spawn complete for 1
ENCOUNTER: Encounter cutscenes complete for 1
GOAL: Adding goal Goal_MoveToHero(1000,20,200) to character m25obj_2
GOAL: Adding goal Goal_MoveToHero(1001,20,200) to character m25obj_4
GOAL: Adding goal Goal_MoveToHero(1002,20,200) to character m25obj_6
ENCOUNTER: Encounter goals complete for 1
ENCOUNTER: Encounter objectives complete for 1
ENCOUNTER: Encounter parameters complete for 1
ENCOUNTER: Encounter post function 'Alliance_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(): None : None ... []
ENCOUNTER: Encounter setup complete for 1
AI: SetupAI() - setting ai for hero_0 ('superman')
GROUP: 'team1' set to []
GROUP: 'hero_0' added to group 'team1'
GROUP: 'team1' set to ['hero_0']
AI: SetupAI() - setting ai for hero_1 ('martian_manhunter')
GROUP: 'hero_1' added to group 'team1'
GROUP: 'team1' set to ['hero_0', 'hero_1']
AI: SetupAI() - setting ai for hero_2 ('green_lantern')
GROUP: 'hero_2' added to group 'team1'
GROUP: 'team1' set to ['hero_0', 'hero_1', 'hero_2']
AI: SetupAI() - setting ai for hero_3 ('flash')
GROUP: 'hero_3' added to group 'team1'
GROUP: 'team1' set to ['hero_0', 'hero_1', 'hero_2', 'hero_3']
GROUP: 'hero_3' automatically promoted to leader of group 'team1'
GROUP: 'hero_3' made leader of group 'team1'
GOAL: Adding goal Goal_Guard(1003,'hero_3',19) to character hero_0
GOAL: Adding goal Goal_Guard(1004,'hero_3',19) to character hero_1
GOAL: Adding goal Goal_Guard(1005,'hero_3',19) to character hero_2
GROUP: 'team1' set to guard 'hero_3'
GOAL: Adding goal Goal_StayWithTeam(1006,20) to character hero_3
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(): 'alliessavedcs' : 'AllyFight_Over(1,["end","allies saved"])'
ENCOUNTER: PlayCutsceneFromList(): None : 'AllyFight_Over(1,["end","allies saved"])' ... []
ENCOUNTER: PlayCutsceneFromList(): None : "Enc_CleanUp(1,['end', 'allies saved'], complete=0)" ... []
ENCOUNTER: Encounter ended 1 with ['end', 'allies saved']
ENCOUNTER: Encounter 1 set to continue past end.
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 = ['bel_juz'], minions = ['white_martian'], cutscenes = [['alertcs', [['priority', 1], ['required', 'batman', 'aquaman_classic', 'wonder_woman', 'martian_manhunter', 'bel_juz'], ['cutscene', 'CS_Start()', 'CS_Fade(2)', "CS_Revive('batman')", "CS_Revive('aquaman_classic')", "CS_Revive('wonder_woman')", "CS_Camera('martian_manhunter', dist=-160, yaw=0)", 'CS_UnFade(3)', "CS_Speak('martian_manhunter', 'Quickly, we are almost to the control center!', force=0)", "CS_AddArrow('bel_juzarrow', 'bel_juz', arrow_type=js.ARROW_RED)", 'CS_End()']]], ['startcs', [['priority', 1], ['required', 'martian_manhunter', 'group3marker6', 'bel_juz', 'superman', 'flash', 'batman'], ['cutscene', 'CS_Start()', "CS_MoveTo('martian_manhunter', 'group3marker6')", "CS_Camera('martian_manhunter', dist=-160, yaw=0)", 'CS_Speak(\'bel_juz\', "Hello J\'onn...", force=0)', "CS_Animate('martian_manhunter','pain')", "CS_Camera('bel_juz', dist=-160, yaw=0)", "CS_Speak('bel_juz', 'I have missed you these last millennia...I dreamed of you as I slept.', force=0)", "CS_Camera('martian_manhunter', dist=-160, yaw=0)", "CS_Animate('martian_manhunter','stunned')", 'CS_Speak(\'martian_manhunter\', \'"B\\\'ell...B\\\'ell J\\\'ouzz? How is this possible?\', force=0)', "CS_Camera('superman', dist=-160, yaw=0)", 'CS_Speak(\'superman\', "J\'onn, who is this woman?", force=0)', "CS_Animate('superman','ranged')", "CS_Camera('martian_manhunter', dist=-160, yaw=0)", "CS_Speak('martian_manhunter', '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.', force=0)", "CS_Camera('bel_juz', dist=-160, yaw=0)", "CS_Animate('bel_juz','ranged_2')", "CS_Speak('bel_juz', 'I WAS the best', force=0)", "CS_Camera('martian_manhunter', dist=-160, yaw=0)", "CS_Speak('martian_manhunter', 'She joined with the exiles, even led them against us...against me.', force=0)", "CS_Camera('bel_juz', dist=-160, yaw=0)", 'CS_Speak(\'bel_juz\', "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!", force=0)', "CS_Animate('bel_juz','area_4')", "CS_Camera('martian_manhunter', dist=-160, yaw=0)", "CS_Animate('martian_manhunter','ranged_2')", 'CS_Speak(\'martian_manhunter\', "There is no strength in the taking of life, only in it\'s preservation.", force=0)', "CS_Camera('bel_juz', dist=-160, yaw=0)", 'CS_Speak(\'bel_juz\', "Don\'t quote scripture to me J\'onzz!", force=0)', "CS_Animate('bel_juz','area_5')", 'CS_Speak(\'bel_juz\', "The war wasn\'t personal, but what I did to your wife and daugther, I have to admit, I enjoyed!", force=0)', "CS_Camera('martian_manhunter', dist=-160, yaw=0)", "CS_Animate('martian_manhunter','stunned')", "CS_Speak('martian_manhunter', 'Monster!', force=0)", "CS_Camera('flash', dist=-160, yaw=0)", "CS_Speak('flash', 'She killed his wife...good lord!', force=0)", "CS_Camera('batman', dist=-160, yaw=0)", 'CS_Speak(\'batman\', "I\'ve heard enough, let\'s take them down!", force=0)', 'CS_End()']]], ['villainshurtcs', [['priority', 1], ['required', 'bel_juz', 'martian_manhunter'], ['cutscene', 'CS_Start()', "CS_Camera('bel_juz', dist=-160, yaw=0)", 'CS_Speak(\'bel_juz\', "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!", force=0)', "CS_Camera('martian_manhunter', dist=-160, yaw=0)", "CS_Animate('martian_manhunter','melee')", "CS_Speak('martian_manhunter', 'Unlike her, you will never see paradise you demon!', force=0)", 'CS_End()']]]], marker = 'alien4', actions = 'Villains Fight Heroes, Villains Are Invulnerable, Invulnerability Can End, Invulnerability Ends When Minions Defeated, Villain stops at three quarters health', villaininvulnerabilityeffect = 'effect_ffx_energyshield',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 4215, in DoEncCustom
    encounter = EncCustom(enc_id, parameters)
  File "C:\Program Files\Irrational Games\Freedom Force vs The 3rd Reich\.\DCUG\missions\scripts\m25enc.py", line 4231, in EncCustom
    encounter = CombineEncounters(encounter, EncGetCustomValues(enc_id, a, parameters))
  File "C:\Program Files\Irrational Games\Freedom Force vs The 3rd Reich\.\DCUG\missions\scripts\m25enc.py", line 1534, in CombineEncounters
    return CombineEncounterData(enc1, enc2)
  File "C:\Program Files\Irrational Games\Freedom Force vs The 3rd Reich\.\DCUG\missions\scripts\m25enc.py", line 1539, in CombineEncounterData
    if enc2.has_key(key):
AttributeError: 'None' object has no attribute 'has_key'
initialising FFQ_initialiseExtras()
FFX_UpdateSun: getting default sun
FFX_UpdateSun: setting = (-80.0, 75.0, 0.800000011921, 0.40000000596, (0.600000023842, 0.300000011921, 0.600000023842))
AI: m25obj_4 no tactic chosen this cycle.
AI: AISetRunning hero_0 to 0
AI: AISetRunning hero_1 to 0
AI: AISetRunning hero_2 to 0
AI: AISetRunning hero_3 to 0
clearCarrierRegistration: clearing attribute 'ragetocrystallisehero_2' for destroyed object 'mapinfocaliper0'
clearCarrierRegistration: clearing attribute 'ragetocrystallisehero_2' for destroyed object 'mapinfocaliper1'
clearCarrierRegistration: clearing attribute 'ragetocrystallisehero_2' for destroyed object 'mapinfocaliper2'
clearCarrierRegistration: clearing attribute 'ragetocrystallisehero_2' for destroyed object 'mapinfocaliper3'[/spoiler]

And here are the pertinent encounters:

[spoiler]#----------------------------------

Encounter: Bell1
Type: Custom
Actions: Villains Fight Heroes, Villains Are Invulnerable, Invulnerability Can End, Invulnerability Ends When Minions Defeated, Villain stops at three quarters health
Villains: bel_juz
Minions: white_martian
Villain Invulnerability Effect: effect_ffx_energyshield
Marker: alien4
Next: Bell2

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

Start Cutscene:
Remove Arrow from bel_juz
martian_manhunter moves to group3marker6
Camera on martian_manhunter
bel_juz says, "Hello J'onn..."
martian_manhunter plays animation pain
Camera on bel_juz
bel_juz says, "I have missed you these last millennia...I dreamed of you as I slept."
Camera on martian_manhunter
martian_manhunter plays animation stunned
martian_manhunter 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_manhunter
martian_manhunter 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_manhunter
martian_manhunter 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_manhunter
martian_manhunter plays animation ranged_2
martian_manhunter 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_manhunter
martian_manhunter plays animation stunned
martian_manhunter 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!"

Villains hurt Cutscene:
Camera on bel_juz
bel_juz says, "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_manhunter
martian_manhunter plays animation melee
martian_manhunter says, "Unlike her, you will never see paradise you demon!"

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

Encounter: Bell2
Type: Custom
Actions: Villains Fight Heroes, Villain stops at one quarter health
Villains: bel_juz
Marker: alien4
Next: Final1

Villains hurt Cutscene:
Fade for 2 seconds
Camera on martian_manhunter
martian_manhunter moves to bel_juz
Unfade for 3 seconds
bel_juz plays animation stunned
martian_manhunter 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 plays animation fall
Camera on martian_manhunter
martian_manhunter plays animation idle_2
martian_manhunter says, "The Imperium."
aquaman_classic says, "What IS the Imperium?'
martian_manhunter 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_manhunter says, "You shall see, very soon. This way!"

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

Encounter: Gang1
Type: Fight
Villains: white_martian
Marker: alien4

End Cutscene:
Camera on bel_juz
bel_juz plays animation area_3
bel_juz says, "Do your worst sanctimonious one, I am protected by the S'ourns, and I share their strength!"
Camera on superman
superman plays animation melee
superman says, "She's right, we can't seem to hurt her!"
Camera on martian_manhunter
martian_manhunter plays animation ranged_3
martian_manhunter says, "A psychokinetic shield-she is prtoected by the combined thoughts of her servants!"

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

Encounter: Final1
Type: Custom
Actions: Villains Fight Heroes, Villains Are Invulnerable, Invulnerability Can End, Invulnerability Ends When Objects Destroyed, Heroes Destroy Objects, Villain stops at one quarter health
Villains: white_martian_brain
Minions: white_martian
Object: pillar_shadow, pillar_shadow, pillar_shadow, pillar_shadow
Marker: alien5
Next: __win__

Alert Cutscene:
Red Arrow on white_martian_brain

Start Cutscene:
Remove Arrow from white_martian_brain
Camera on white_martian_brain
white_martian_brain 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_manhunter
martian_manhunter 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_manhunter 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, "What?!"
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_manhunter
martian_manhunter turns to white_martian_brain
martian_manhunter plays animation ranged
martian_manhunter says, "The sun, I see now! The Imperium is defenseless!"

End Cutscene:
Fade for 2 seconds
white_martian_brain is Revived
Camera on white_martian_brain
white_martian_brain plays animation stunned
Unfade for 3 seconds
white_martian_brain says, "Nooo! Curse you J'onzz! I will see you in the inferno, I promise you that!"
white_martian_brain plays animation fall
Camera on martian_manhunter
martian_manhunter plays animation power
martian_manhunter 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 white_martian_brain
Wait 3
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_manhunter
martian_manhunter 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."

#----------------------------------[/spoiler]
Title: Re: EZScript Comics
Post by: M25 on July 27, 2008, 10:42:40 AM
Looks like a bug.  I'm sending you a trial fix.

Title: Re: EZScript Comics
Post by: BentonGrey on July 27, 2008, 11:23:26 AM
Thanks M!  Looks like I'm discovering all kinds of bugs.  That's just my luck! :P
Title: Re: EZScript Comics
Post by: BentonGrey on July 30, 2008, 09:28:49 PM
Well, I seem to have hammered out some of my problems for the final JLA mission, but I'm still working on it.  I've also gone back and added in a Flash solo mission, which was fairly simple and straightforward, so of course, it didn't work correctly.  At first I had four rescue fire encounters set up, two to activate once the first two were finished, but one would finish, and the other would not, even though I had saved the civilians and defeated the enemies for both.  Then, I changed the troublesome encounter into a Building Rampage, thinking to sidestep my troubles, and it began to work perfectly.  The encounter that had previously ended properly then ceased to finish.  I'm stumped.  Here is the script:

[spoiler]#----------------------------------

Encounter: Blaze1
Type: Building Rampage
Villains: thug_with_grenade, thug_with_bat, thug_with_grenade, thug_with_grenade, thug_with_gun, thug_with_gun
Allies: civilian_male, civilian_female, civilian_male, civilian_male, civilian_female
Marker: hospital1

Alert Cutscene:
Red Arrow on Villain1

Start Cutscene:
Remove Arrow from Villain1
Camera on Villain1
Villain1 says, "Burn baby, burn!"
Camera on Ally
Ally plays animation power
Ally says, "Help! They're trying to burn down the hospital!"
Camera on flash
flash says, "Hold on, help'll be there before you know it!"

End Cutscene:
Camera on flash
Ally moves to flash
Ally says, "Thanks Flash!"
flash says, "You're welcome! Make sure the police know what these losers were up to!"

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

Encounter: Blaze2
Type: Rescue Fire
Villains: thug_with_grenade, thug_with_bat, thug_with_grenade, thug_with_grenade, thug_with_gun, thug_with_bat
Allies: civilian_male, civilian_female, civilian_female, civilian_female, civilian_female, civilian_male
Marker: apartment1

Alert Cutscene:
Red Arrow on Villain1
flash says, "Good heavens, they've already managed to catch one of the buildings on fire!"

Start Cutscene:
Remove Arrow from Villain1
Camera on Villain1
Villain1 says, "Woo-hoo! This is what I call fun!"
Camera on Ally
Ally plays animation power
Ally says, "Please, help us or we'll die here!"
Camera on Villain1
Villain1 says, "Ain't that a cryin' shame buddy?"
Camera on flash
flash says, "Yeah, but it looks like you'll be the one doing the crying!"

End Cutscene:
Camera on flash
Ally moves to flash
Ally says, "Thank you Flash...I thought...I thought I was going to die up there...!"
flash says, "That's what I'm here for, but now I've gotta' run! Take care of yourself!"

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

Encounter: Blaze3
Starts when: Blaze1 at End, Blaze2 at End
Type: Rescue Fire
Villains: thug_with_grenade, thug_with_gun, thug_with_grenade, thug_with_grenade, thug_with_gun, thug_with_gun, thug_with_gun, thug_with_gun
Allies: civilian_male, civilian_male, civilian_female, civilian_male, civilian_female, civilian_male
Marker: rest1

Alert Cutscene:
Red Arrow on Villain1
flash says, "What! More fires? I've got to take care of this quick, before those thugs can get the professor out of town. These guys are better organized than the average street gang that they appear to be. I'd probably better be careful!"

Start Cutscene:
Remove Arrow from Villain1
Camera on Villain1
Villain1 turns to flash
Villain1 says, "Here comes the red-pajama wearin' freak, get ready!"
Camera on Ally
Ally plays animation power
Ally says, "[Cough][Cough] Help!"
flash says, "Not that it isn't fun to punch low lifes like you at super speed, but you boys are trying my patience by bringing innocent people into it."

End Cutscene:
Camera on flash
Ally moves to flash
Ally says, "Don't...[Cough]...don't worry about us, go get the people that did this!"
flash says, "You can count on it!"

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

Encounter: Blaze4
Starts when: Blaze1 at End, Blaze2 at End
Type: Rescue Fire
Villains: thug_with_grenade, mafioso, thug_with_grenade, thug_with_grenade, thug_with_gun, thug_with_gun, thug_with_gun, mafioso
Allies: civilian_female, civilian_male, civilian_female, civilian_male, civilian_female, civilian_male
Marker: school1

Alert Cutscene:
Red Arrow on Villain1

Start Cutscene:
Remove Arrow from Villain1
Camera on Villain1
Villain1 turns to flash
Villain1 says, "Come on boys, let's make a name for ourselves!"
Camera on Ally
Ally plays animation power
Ally says, "Heeeeelp!"
flash says, "I've about had it with this...I can't believe you idiots are actually burning down a school!"

End Cutscene:
Camera on flash
Ally moves to flash
Ally says, "Why? Why would anyone do something like this?"
flash says, "I don't know Ma'am, but I intend to find out!"

#---------------------------------------[/spoiler]

And here is the script.log:

[spoiler]>>> C:\Documents and Settings\Owner\Local Settings\Application Data\Irrational Games\Freedom Force vs the 3rd Reich\temp\MiniMod JLA4B.py executed
MISSION: On Post Init... start.
MLOG_Init(keepRunningModules=0): starting up
mlogreader.MLOG_Init: current mission = '04B_FLASH_HT_NEIGHBORHOOD'
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
numberStr=67
storing hero_0: id_1,-67
MISSION: On Post Init... complete; starting story.
*SNIP*
ENCOUNTER: Enc_CheckStart starting 4
*SNIP* (AI)
ENCOUNTER: PlayEncCutscene(): 'startcs' : 'Enc_StandardStartEnable(4)'
ENCOUNTER: PlayCutsceneFromList(): [['priority', 1], ['replace', ['villain1', 'villain'], ['ally', 'ally']], ['required', 'flash'], ['cutscene', 'CS_Start()', "CS_Camera('villain1', dist=-160, yaw=0)", "CS_Speak('villain1', 'Woo-hoo! This is what I call fun!', force=0)", "CS_Camera('ally', dist=-160, yaw=0)", "CS_Animate('ally','power')", 'CS_Speak(\'ally\', "Please, help us or we\'ll die here!", force=0)', "CS_Camera('villain1', dist=-160, yaw=0)", 'CS_Speak(\'villain1\', "Ain\'t that a cryin\' shame buddy?", force=0)', "CS_Camera('flash', dist=-160, yaw=0)", 'CS_Speak(\'flash\', "Yeah, but it looks like you\'ll be the one doing the crying!", force=0)', 'CS_End()']] : 'Enc_StandardStartEnable(4)' ... []
CUTSCENE: request to play cutscene.
CUTSCENE:  - CS_Start()
CUTSCENE:  - CS_Camera('m25obj_36', dist=-160, yaw=0)
CUTSCENE:  - CS_Speak('m25obj_36','Woo-hoo! This is what I call fun!', force=0)
CUTSCENE:  - CS_Camera('m25obj_48', dist=-160, yaw=0)
CUTSCENE:  - CS_Animate('m25obj_48','power')
CUTSCENE:  - CS_Speak('m25obj_48',"Please, help us or we'll die here!", force=0)
CUTSCENE:  - CS_Camera('m25obj_36', dist=-160, yaw=0)
CUTSCENE:  - CS_Speak('m25obj_36',"Ain't that a cryin' shame buddy?", force=0)
CUTSCENE:  - CS_Camera('flash', dist=-160, yaw=0)
CUTSCENE:  - CS_Speak('flash',"Yeah, but it looks like you'll be the one doing the crying!", force=0)
CUTSCENE:  - CS_End()
CUTSCENE: calling PlayCurrentCutscene 7
CUTSCENE: playing ff.CS_Start(7)
CUTSCENE: playing ff.CS_Camera(7,'m25obj_36', dist=-160, yaw=0)
*SNIP* (AI)
CUTSCENE: playing ff.CS_Speak(7,'m25obj_36','Woo-hoo! This is what I call fun!', force=0)
*SNIP* (AI)
GROUP: 'm25obj_26' removed from group '3_ally'
GROUP: '3_ally' set to ['m25obj_28', 'm25obj_30', 'm25obj_32']
GROUP: 'm25obj_28' removed from group '3_ally'
GROUP: '3_ally' set to ['m25obj_30', 'm25obj_32']
GROUP: 'm25obj_30' removed from group '3_ally'
GROUP: '3_ally' set to ['m25obj_32']
GROUP: 'm25obj_32' removed from group '3_ally'
GROUP: '3_ally' set to []
GROUP: empty '3_ally' cannot have a leader promoted
CUTSCENE: playing ff.CS_Camera(7,'m25obj_48', dist=-160, yaw=0)
ENCOUNTER: Setting up encounter 6
ENCOUNTER: Start marker found for ['apartment1'] None
ENCOUNTER: No start marker found for ['apartment1']
CUTSCENE: playing ff.CS_Animate(7,'m25obj_48','power')
CUTSCENE: playing ff.CS_Speak(7,'m25obj_48',"Please, help us or we'll die here!", force=0)
CUTSCENE: playing ff.CS_Camera(7,'m25obj_36', dist=-160, yaw=0)
CUTSCENE: playing ff.CS_Speak(7,'m25obj_36',"Ain't that a cryin' shame buddy?", force=0)
CUTSCENE: playing ff.CS_Camera(7,'flash', dist=-160, yaw=0)
CUTSCENE: playing ff.CS_Speak(7,'flash',"Yeah, but it looks like you'll be the one doing the crying!", force=0)
CUTSCENE: playing ff.CS_End(7)
*SNIP* (AI)
CUTSCENE: calling cutscene return function.
GROUP: 'm25obj_36' automatically promoted to leader of group '4_minion'
GROUP: 'm25obj_36' made leader of group '4_minion'
GOAL: Adding goal Goal_Guard(1032,'m25obj_36',19) to character m25obj_38
GOAL: Adding goal Goal_Guard(1033,'m25obj_36',19) to character m25obj_40
GOAL: Adding goal Goal_Guard(1034,'m25obj_36',19) to character m25obj_42
GOAL: Adding goal Goal_Guard(1035,'m25obj_36',19) to character m25obj_44
GOAL: Adding goal Goal_Guard(1036,'m25obj_36',19) to character m25obj_46
GROUP: '4_minion' set to guard 'm25obj_36'
GOAL: Adding goal Goal_StayWithTeam(1037,20) to character m25obj_36
alliescanbefreed 6 0 0
ENCOUNTER: -- custom check end EncCustom_AlliesCanBeFreed_CheckEnd(4) - None
ENCOUNTER: -- custom check end EncCustom_Allies_Congregate_CheckEnd(4) - None
ENCOUNTER: -- custom check end EncCustom_Fire_CheckEnd(4) - ['fire over']
ENCOUNTER: -- custom check end EncCustom_VillainsFight_CheckEnd(4) - None
ENCOUNTER: PlayEncCutscene(): 'bantercs' : None
ENCOUNTER: PlayCutsceneFromList(): None : None ... []
AI: m25obj_36:'thug_with_grenade' move to 'hero_0'
Traceback (innermost last):
  File "C:\Program Files\Irrational Games\Freedom Force vs The 3rd Reich\.\DCUG\missions\scripts\m25ai.py", line 449, in AICheckTimer
    if AISpecialState(char):
  File "C:\Program Files\Irrational Games\Freedom Force vs The 3rd Reich\.\DCUG\missions\scripts\m25ai.py", line 580, in AISpecialState
    AISupport_DoMove(char, Target_GetCurrentTarget(char), 'move', 0, FindRandomPoint(char,mindist=100), js.Get_ObjectPos(char), TACTIC_PRIORITY_CRITICAL, 2, desc='panicked run')
  File "C:\Program Files\Irrational Games\Freedom Force vs The 3rd Reich\.\DCUG\missions\scripts\m25ai.py", line 4766, in AISupport_DoMove
    m25event.SetTimer(arrival_time/2,'AICheckNotMoving',char,target,user=1024*priority+GetAITimeStamp(char))
  File "C:\Program Files\Irrational Games\Freedom Force vs The 3rd Reich\.\DCUG\missions\scripts\m25event.py", line 132, in SetTimer
    js.Event_RegisterSink(js.EVENT_TIMER, function, string1, string2, time, user, 0)
RuntimeError: Event_RegisterSink(): expects args {iss|sfff}
*SNIP* (AI)
GROUP: '4_minion' member koed
ENCOUNTER: PlayEncCutscene(): 'm25obj_36kocs' : None
ENCOUNTER: PlayCutsceneFromList(): None : None ... [['m25obj_36', 'fallen']]
ENCOUNTER: PlayEncCutscene(): 'thug_with_grenadekocs' : None
ENCOUNTER: PlayCutsceneFromList(): None : None ... [['m25obj_36', 'fallen']]
ENCOUNTER: PlayEncCutscene(): 'villainkocs' : None
ENCOUNTER: PlayCutsceneFromList(): None : None ... [['m25obj_36', 'fallen']]
alliescanbefreed 6 0 0
ENCOUNTER: -- custom check end EncCustom_AlliesCanBeFreed_CheckEnd(4) - None
ENCOUNTER: -- custom check end EncCustom_Allies_Congregate_CheckEnd(4) - None
ENCOUNTER: -- custom check end EncCustom_Fire_CheckEnd(4) - ['fire over']
ENCOUNTER: -- custom check end EncCustom_VillainsFight_CheckEnd(4) - None
GROUP: '4_minion' leader koed
GROUP: 'm25obj_38' automatically promoted to leader of group '4_minion'
GROUP: 'm25obj_38' made leader of group '4_minion'
GOAL: Removing goal Goal_Guard( from character m25obj_38
GOAL: Removing goal Goal_Guard( from character m25obj_40
GOAL: Adding goal Goal_Guard(1038,'m25obj_38',19) to character m25obj_40
GOAL: Removing goal Goal_Guard( from character m25obj_42
GOAL: Adding goal Goal_Guard(1039,'m25obj_38',19) to character m25obj_42
GOAL: Removing goal Goal_Guard( from character m25obj_44
GOAL: Adding goal Goal_Guard(1040,'m25obj_38',19) to character m25obj_44
GOAL: Removing goal Goal_Guard( from character m25obj_46
GOAL: Adding goal Goal_Guard(1041,'m25obj_38',19) to character m25obj_46
GROUP: '4_minion' set to guard 'm25obj_38'
GOAL: Adding goal Goal_StayWithTeam(1042,20) to character m25obj_38
ENCOUNTER: Setting up encounter 7
ENCOUNTER: Start marker found for ['apartment1'] None
ENCOUNTER: No start marker found for ['apartment1']
ENCOUNTER: PlayEncCutscene(): 'allyrescuedcs' : "EncEventCallback(4, '_freed', 'm25obj_52')"
ENCOUNTER: PlayCutsceneFromList(): None : "EncEventCallback(4, '_freed', 'm25obj_52')" ... [['m25obj_52', 'ally'], ['hero_0', 'hero']]
ENCOUNTER: 4 - event callback _freed has value ['EncCustom_AlliesCanBeFreed_Freed']
ENCOUNTER: 4 - event callback _freed calling EncCustom_AlliesCanBeFreed_Freed
ENCOUNTER: PlayEncCutscene(): 'allyfreedcs' : 'EncCheckEnd(4)'
ENCOUNTER: PlayCutsceneFromList(): None : 'EncCheckEnd(4)' ... [['m25obj_52', 'ally'], [None, 'hero']]
alliescanbefreed 6 1 0
ENCOUNTER: -- custom check end EncCustom_AlliesCanBeFreed_CheckEnd(4) - None
ENCOUNTER: -- custom check end EncCustom_Allies_Congregate_CheckEnd(4) - None
ENCOUNTER: -- custom check end EncCustom_Fire_CheckEnd(4) - ['fire over']
ENCOUNTER: -- custom check end EncCustom_VillainsFight_CheckEnd(4) - None
*SNIP* (AI)
[/spoiler]
Title: Re: EZScript Comics
Post by: BentonGrey on July 30, 2008, 09:34:35 PM
[spoiler]AI: m25obj_52:'civilian_female' goal move to marker 'apartment1_congregate1'
ENCOUNTER: PlayEncCutscene(): 'allyrescuedcs' : "EncEventCallback(4, '_freed', 'm25obj_54')"
ENCOUNTER: PlayCutsceneFromList(): None : "EncEventCallback(4, '_freed', 'm25obj_54')" ... [['m25obj_54', 'ally'], ['hero_0', 'hero']]
ENCOUNTER: 4 - event callback _freed has value ['EncCustom_AlliesCanBeFreed_Freed']
ENCOUNTER: 4 - event callback _freed calling EncCustom_AlliesCanBeFreed_Freed
ENCOUNTER: PlayEncCutscene(): 'allyfreedcs' : 'EncCheckEnd(4)'
ENCOUNTER: PlayCutsceneFromList(): None : 'EncCheckEnd(4)' ... [['m25obj_54', 'ally'], [None, 'hero']]
alliescanbefreed 6 2 0
ENCOUNTER: -- custom check end EncCustom_AlliesCanBeFreed_CheckEnd(4) - None
ENCOUNTER: -- custom check end EncCustom_Allies_Congregate_CheckEnd(4) - None
ENCOUNTER: -- custom check end EncCustom_Fire_CheckEnd(4) - ['fire over']
ENCOUNTER: -- custom check end EncCustom_VillainsFight_CheckEnd(4) - None
*SNIP* (AI)
AI: m25obj_52:'civilian_female' goal move to marker 'apartment1_congregate1'
AI: m25obj_54:'civilian_female' goal move to marker 'apartment1_congregate1'
ENCOUNTER: PlayEncCutscene(): 'allyrescuedcs' : "EncEventCallback(4, '_freed', 'm25obj_58')"
ENCOUNTER: PlayCutsceneFromList(): None : "EncEventCallback(4, '_freed', 'm25obj_58')" ... [['m25obj_58', 'ally'], ['hero_0', 'hero']]
ENCOUNTER: 4 - event callback _freed has value ['EncCustom_AlliesCanBeFreed_Freed']
ENCOUNTER: 4 - event callback _freed calling EncCustom_AlliesCanBeFreed_Freed
ENCOUNTER: PlayEncCutscene(): 'allyfreedcs' : 'EncCheckEnd(4)'
ENCOUNTER: PlayCutsceneFromList(): None : 'EncCheckEnd(4)' ... [['m25obj_58', 'ally'], [None, 'hero']]
alliescanbefreed 6 3 0
ENCOUNTER: -- custom check end EncCustom_AlliesCanBeFreed_CheckEnd(4) - None
ENCOUNTER: -- custom check end EncCustom_Allies_Congregate_CheckEnd(4) - None
ENCOUNTER: -- custom check end EncCustom_Fire_CheckEnd(4) - ['fire over']
ENCOUNTER: -- custom check end EncCustom_VillainsFight_CheckEnd(4) - None
*SNIP* (AI)
AI: m25obj_52:'civilian_female' goal move to marker 'apartment1_congregate1'
AI: m25obj_54:'civilian_female' goal move to marker 'apartment1_congregate1'
AI: m25obj_58:'civilian_male' goal move to marker 'apartment1_congregate1'
AI: m25obj_42 no tactic chosen this cycle.
ENCOUNTER: PlayEncCutscene(): 'allyrescuedcs' : "EncEventCallback(4, '_freed', 'm25obj_50')"
ENCOUNTER: PlayCutsceneFromList(): None : "EncEventCallback(4, '_freed', 'm25obj_50')" ... [['m25obj_50', 'ally'], ['hero_0', 'hero']]
ENCOUNTER: 4 - event callback _freed has value ['EncCustom_AlliesCanBeFreed_Freed']
ENCOUNTER: 4 - event callback _freed calling EncCustom_AlliesCanBeFreed_Freed
ENCOUNTER: PlayEncCutscene(): 'allyfreedcs' : 'EncCheckEnd(4)'
ENCOUNTER: PlayCutsceneFromList(): None : 'EncCheckEnd(4)' ... [['m25obj_50', 'ally'], [None, 'hero']]
alliescanbefreed 6 4 0
ENCOUNTER: -- custom check end EncCustom_AlliesCanBeFreed_CheckEnd(4) - None
ENCOUNTER: -- custom check end EncCustom_Allies_Congregate_CheckEnd(4) - None
ENCOUNTER: -- custom check end EncCustom_Fire_CheckEnd(4) - ['fire over']
ENCOUNTER: -- custom check end EncCustom_VillainsFight_CheckEnd(4) - None
*SNIP* (AI)
AI: m25obj_50:'civilian_female' goal move to marker 'apartment1_congregate1'
AI: m25obj_52:'civilian_female' goal move to marker 'apartment1_congregate1'
AI: m25obj_54:'civilian_female' goal move to marker 'apartment1_congregate1'
AI: m25obj_58:'civilian_male' goal move to marker 'apartment1_congregate1'
ENCOUNTER: PlayEncCutscene(): 'allyrescuedcs' : "EncEventCallback(4, '_freed', 'm25obj_48')"
ENCOUNTER: PlayCutsceneFromList(): None : "EncEventCallback(4, '_freed', 'm25obj_48')" ... [['m25obj_48', 'ally'], ['hero_0', 'hero']]
ENCOUNTER: 4 - event callback _freed has value ['EncCustom_AlliesCanBeFreed_Freed']
ENCOUNTER: 4 - event callback _freed calling EncCustom_AlliesCanBeFreed_Freed
ENCOUNTER: PlayEncCutscene(): 'allyfreedcs' : 'EncCheckEnd(4)'
ENCOUNTER: PlayCutsceneFromList(): None : 'EncCheckEnd(4)' ... [['m25obj_48', 'ally'], [None, 'hero']]
alliescanbefreed 6 5 0
ENCOUNTER: -- custom check end EncCustom_AlliesCanBeFreed_CheckEnd(4) - None
ENCOUNTER: -- custom check end EncCustom_Allies_Congregate_CheckEnd(4) - None
ENCOUNTER: -- custom check end EncCustom_Fire_CheckEnd(4) - ['fire over']
ENCOUNTER: -- custom check end EncCustom_VillainsFight_CheckEnd(4) - None
*SNIP* (AI)
ENCOUNTER: PlayEncCutscene(): 'allyrescuedcs' : "EncEventCallback(4, '_freed', 'm25obj_56')"
ENCOUNTER: PlayCutsceneFromList(): None : "EncEventCallback(4, '_freed', 'm25obj_56')" ... [['m25obj_56', 'ally'], ['hero_0', 'hero']]
ENCOUNTER: 4 - event callback _freed has value ['EncCustom_AlliesCanBeFreed_Freed']
ENCOUNTER: 4 - event callback _freed calling EncCustom_AlliesCanBeFreed_Freed
ENCOUNTER: PlayEncCutscene(): 'allalliesfreedcs' : 'EncCheckEnd(4)'
ENCOUNTER: PlayCutsceneFromList(): None : 'EncCheckEnd(4)' ... []
alliescanbefreed 6 6 0
ENCOUNTER: -- custom check end EncCustom_AlliesCanBeFreed_CheckEnd(4) - ['all allies freed']
ENCOUNTER: -- custom check end EncCustom_Allies_Congregate_CheckEnd(4) - None
ENCOUNTER: -- custom check end EncCustom_Fire_CheckEnd(4) - ['fire over']
ENCOUNTER: -- custom check end EncCustom_VillainsFight_CheckEnd(4) - None
AI: m25obj_42 no tactic chosen this cycle.
AI: m25obj_40 no tactic chosen this cycle.
AI: m25obj_50:'civilian_female' goal move to marker 'apartment1_congregate1'
AI: m25obj_52:'civilian_female' goal move to marker 'apartment1_congregate1'
AI: m25obj_48:'civilian_male' goal move to marker 'apartment1_congregate1'
AI: m25obj_54:'civilian_female' goal move to marker 'apartment1_congregate1'
AI: m25obj_56:'civilian_female' goal move to marker 'apartment1_congregate1'
AI: m25obj_58:'civilian_male' goal move to marker 'apartment1_congregate1'
*SNIP* (AI)
AI: m25obj_50:'civilian_female' goal move to marker 'apartment1_congregate1'
AI: m25obj_52:'civilian_female' goal move to marker 'apartment1_congregate1'
AI: m25obj_48:'civilian_male' goal move to marker 'apartment1_congregate1'
AI: m25obj_54:'civilian_female' goal move to marker 'apartment1_congregate1'
AI: m25obj_56:'civilian_female' goal move to marker 'apartment1_congregate1'
AI: m25obj_58:'civilian_male' goal move to marker 'apartment1_congregate1'
GROUP: '4_minion' member koed
ENCOUNTER: PlayEncCutscene(): 'm25obj_46kocs' : None
ENCOUNTER: PlayCutsceneFromList(): None : None ... [['m25obj_46', 'fallen']]
ENCOUNTER: PlayEncCutscene(): 'thug_with_batkocs' : None
ENCOUNTER: PlayCutsceneFromList(): None : None ... [['m25obj_46', 'fallen']]
ENCOUNTER: PlayEncCutscene(): 'villainkocs' : None
ENCOUNTER: PlayCutsceneFromList(): None : None ... [['m25obj_46', 'fallen']]
alliescanbefreed 6 6 0
ENCOUNTER: -- custom check end EncCustom_AlliesCanBeFreed_CheckEnd(4) - ['all allies freed']
ENCOUNTER: -- custom check end EncCustom_Allies_Congregate_CheckEnd(4) - None
ENCOUNTER: -- custom check end EncCustom_Fire_CheckEnd(4) - ['fire over']
ENCOUNTER: -- custom check end EncCustom_VillainsFight_CheckEnd(4) - None
GROUP: 'm25obj_36' removed from group '4_minion'
GROUP: '4_minion' set to ['m25obj_38', 'm25obj_40', 'm25obj_42', 'm25obj_44', 'm25obj_46']
*SNIP* (AI)
AI: m25obj_50:'civilian_female' goal move to marker 'apartment1_congregate1'
GOAL: Removing goal Goal_MoveToMarker(1009 from character m25obj_52
ENCOUNTER: PlayEncCutscene(): 'allycongregatescs' : None
ENCOUNTER: PlayCutsceneFromList(): None : None ... [['m25obj_52', 'ally']]
alliescanbefreed 6 6 0
ENCOUNTER: -- custom check end EncCustom_AlliesCanBeFreed_CheckEnd(4) - ['all allies freed']
ENCOUNTER: -- custom check end EncCustom_Allies_Congregate_CheckEnd(4) - None
ENCOUNTER: -- custom check end EncCustom_Fire_CheckEnd(4) - ['fire over']
ENCOUNTER: -- custom check end EncCustom_VillainsFight_CheckEnd(4) - None
AI: m25obj_48:'civilian_male' goal move to marker 'apartment1_congregate1'
AI: m25obj_54:'civilian_female' goal move to marker 'apartment1_congregate1'
AI: m25obj_56:'civilian_female' goal move to marker 'apartment1_congregate1'
AI: m25obj_58:'civilian_male' goal move to marker 'apartment1_congregate1'
AI: m25obj_40 no tactic chosen this cycle.
MLOG_WatchDamage: error in Object_GetAttr('m25obj_830', 'minForce'), Object_Exists('m25obj_830')=0
   words=['00:06:14.98:', 'FF:', 'Damage:(hero_0)', '', '(resolve)', 'dmg:', '3,', 'stun', 'time:', '0,', 'KB:', '1753\012'] MLOG_DAMAGE_PREVIOUSLINE=['00:06:14.98:', 'FF:', 'Damage:(hero_0)', '', 'm25obj_830', '(calc', 'pwr)dmg:', '3,', 'stun', 'pct:', '12,', 'KB:', '1440\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
GROUP: '4_minion' member koed
ENCOUNTER: PlayEncCutscene(): 'm25obj_38kocs' : None
ENCOUNTER: PlayCutsceneFromList(): None : None ... [['m25obj_38', 'fallen']]
ENCOUNTER: PlayEncCutscene(): 'thug_with_batkocs' : None
ENCOUNTER: PlayCutsceneFromList(): None : None ... [['m25obj_38', 'fallen']]
ENCOUNTER: PlayEncCutscene(): 'villainkocs' : None
ENCOUNTER: PlayCutsceneFromList(): None : None ... [['m25obj_38', 'fallen']]
alliescanbefreed 6 6 0
ENCOUNTER: -- custom check end EncCustom_AlliesCanBeFreed_CheckEnd(4) - ['all allies freed']
ENCOUNTER: -- custom check end EncCustom_Allies_Congregate_CheckEnd(4) - None
ENCOUNTER: -- custom check end EncCustom_Fire_CheckEnd(4) - ['fire over']
ENCOUNTER: -- custom check end EncCustom_VillainsFight_CheckEnd(4) - None
GROUP: '4_minion' leader koed
GROUP: 'm25obj_40' automatically promoted to leader of group '4_minion'
GROUP: 'm25obj_40' made leader of group '4_minion'
GOAL: Removing goal Goal_Guard( from character m25obj_40
GOAL: Removing goal Goal_Guard( from character m25obj_42
GOAL: Adding goal Goal_Guard(1043,'m25obj_40',19) to character m25obj_42
GOAL: Removing goal Goal_Guard( from character m25obj_44
GOAL: Adding goal Goal_Guard(1044,'m25obj_40',19) to character m25obj_44
GROUP: '4_minion' set to guard 'm25obj_40'
GOAL: Adding goal Goal_StayWithTeam(1045,20) to character m25obj_40
MLOG_WatchDamage: error in Object_GetAttr('m25obj_826', 'minForce'), Object_Exists('m25obj_826')=0
   words=['00:06:15.11:', 'FF:', 'Damage:(hero_0)', '', '(resolve)', 'dmg:', '3,', 'stun', 'time:', '0,', 'KB:', '1731\012'] MLOG_DAMAGE_PREVIOUSLINE=['00:06:15.11:', 'FF:', 'Damage:(hero_0)', '', 'm25obj_826', '(calc', 'pwr)dmg:', '3,', 'stun', 'pct:', '12,', 'KB:', '1440\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
*SNIP* (AI)
[/spoiler]
Title: Re: EZScript Comics
Post by: BentonGrey on July 30, 2008, 09:35:27 PM
[spoiler]AI: m25obj_50:'civilian_female' goal move to marker 'apartment1_congregate1'
AI: AISetRunning m25obj_52 to 0
AI: m25obj_48:'civilian_male' goal move to marker 'apartment1_congregate1'
AI: m25obj_54:'civilian_female' goal move to marker 'apartment1_congregate1'
AI: m25obj_56:'civilian_female' goal move to marker 'apartment1_congregate1'
AI: m25obj_58:'civilian_male' goal move to marker 'apartment1_congregate1'
ENCOUNTER: Setting up encounter 8
ENCOUNTER: Start marker found for ['apartment1'] None
ENCOUNTER: No start marker found for ['apartment1']
AI: m25obj_50:'civilian_female' goal move to marker 'apartment1_congregate1'
AI: m25obj_48:'civilian_male' goal move to marker 'apartment1_congregate1'
AI: m25obj_54:'civilian_female' goal move to marker 'apartment1_congregate1'
AI: m25obj_56:'civilian_female' goal move to marker 'apartment1_congregate1'
AI: m25obj_58:'civilian_male' goal move to marker 'apartment1_congregate1'
GOAL: Removing goal Goal_MoveToMarker(1008 from character m25obj_50
ENCOUNTER: PlayEncCutscene(): 'allycongregatescs' : None
ENCOUNTER: PlayCutsceneFromList(): None : None ... [['m25obj_50', 'ally']]
alliescanbefreed 6 6 0
ENCOUNTER: -- custom check end EncCustom_AlliesCanBeFreed_CheckEnd(4) - ['all allies freed']
ENCOUNTER: -- custom check end EncCustom_Allies_Congregate_CheckEnd(4) - None
ENCOUNTER: -- custom check end EncCustom_Fire_CheckEnd(4) - ['fire over']
ENCOUNTER: -- custom check end EncCustom_VillainsFight_CheckEnd(4) - None
AI: m25obj_48:'civilian_male' goal move to marker 'apartment1_congregate1'
GOAL: Removing goal Goal_MoveToMarker(1010 from character m25obj_54
ENCOUNTER: PlayEncCutscene(): 'allycongregatescs' : None
ENCOUNTER: PlayCutsceneFromList(): None : None ... [['m25obj_54', 'ally']]
alliescanbefreed 6 6 0
ENCOUNTER: -- custom check end EncCustom_AlliesCanBeFreed_CheckEnd(4) - ['all allies freed']
ENCOUNTER: -- custom check end EncCustom_Allies_Congregate_CheckEnd(4) - None
ENCOUNTER: -- custom check end EncCustom_Fire_CheckEnd(4) - ['fire over']
ENCOUNTER: -- custom check end EncCustom_VillainsFight_CheckEnd(4) - None
*SNIP* (AI)
GOAL: Removing goal Goal_MoveToMarker(1012 from character m25obj_58
ENCOUNTER: PlayEncCutscene(): 'allycongregatescs' : None
ENCOUNTER: PlayCutsceneFromList(): None : None ... [['m25obj_58', 'ally']]
alliescanbefreed 6 6 0
ENCOUNTER: -- custom check end EncCustom_AlliesCanBeFreed_CheckEnd(4) - ['all allies freed']
ENCOUNTER: -- custom check end EncCustom_Allies_Congregate_CheckEnd(4) - None
ENCOUNTER: -- custom check end EncCustom_Fire_CheckEnd(4) - ['fire over']
ENCOUNTER: -- custom check end EncCustom_VillainsFight_CheckEnd(4) - None
*SNIP* (AI)
GROUP: 'm25obj_46' removed from group '4_minion'
GROUP: '4_minion' set to ['m25obj_38', 'm25obj_40', 'm25obj_42', 'm25obj_44']
AI: m25obj_48:'civilian_male' goal move to marker 'apartment1_congregate1'
GOAL: Removing goal Goal_MoveToMarker(1011 from character m25obj_56
ENCOUNTER: PlayEncCutscene(): 'allycongregatescs' : None
ENCOUNTER: PlayCutsceneFromList(): None : None ... [['m25obj_56', 'ally']]
alliescanbefreed 6 6 0
ENCOUNTER: -- custom check end EncCustom_AlliesCanBeFreed_CheckEnd(4) - ['all allies freed']
ENCOUNTER: -- custom check end EncCustom_Allies_Congregate_CheckEnd(4) - None
ENCOUNTER: -- custom check end EncCustom_Fire_CheckEnd(4) - ['fire over']
ENCOUNTER: -- custom check end EncCustom_VillainsFight_CheckEnd(4) - None
AI: m25obj_40:'thug_with_grenade' move to 'hero_0'
AI: m25obj_42 no tactic chosen this cycle.
GROUP: '4_minion' member koed
ENCOUNTER: PlayEncCutscene(): 'm25obj_44kocs' : None
ENCOUNTER: PlayCutsceneFromList(): None : None ... [['m25obj_44', 'fallen']]
ENCOUNTER: PlayEncCutscene(): 'thug_with_gunkocs' : None
ENCOUNTER: PlayCutsceneFromList(): None : None ... [['m25obj_44', 'fallen']]
ENCOUNTER: PlayEncCutscene(): 'villainkocs' : None
ENCOUNTER: PlayCutsceneFromList(): None : None ... [['m25obj_44', 'fallen']]
alliescanbefreed 6 6 0
ENCOUNTER: -- custom check end EncCustom_AlliesCanBeFreed_CheckEnd(4) - ['all allies freed']
ENCOUNTER: -- custom check end EncCustom_Allies_Congregate_CheckEnd(4) - None
ENCOUNTER: -- custom check end EncCustom_Fire_CheckEnd(4) - ['fire over']
ENCOUNTER: -- custom check end EncCustom_VillainsFight_CheckEnd(4) - None
GROUP: 'm25obj_38' removed from group '4_minion'
GROUP: '4_minion' set to ['m25obj_40', 'm25obj_42', 'm25obj_44']
*SNIP* (AI)
GROUP: '4_minion' member koed
ENCOUNTER: PlayEncCutscene(): 'm25obj_42kocs' : None
ENCOUNTER: PlayCutsceneFromList(): None : None ... [['m25obj_42', 'fallen']]
ENCOUNTER: PlayEncCutscene(): 'thug_with_grenadekocs' : None
ENCOUNTER: PlayCutsceneFromList(): None : None ... [['m25obj_42', 'fallen']]
ENCOUNTER: PlayEncCutscene(): 'villainkocs' : None
ENCOUNTER: PlayCutsceneFromList(): None : None ... [['m25obj_42', 'fallen']]
alliescanbefreed 6 6 0
ENCOUNTER: -- custom check end EncCustom_AlliesCanBeFreed_CheckEnd(4) - ['all allies freed']
ENCOUNTER: -- custom check end EncCustom_Allies_Congregate_CheckEnd(4) - None
ENCOUNTER: -- custom check end EncCustom_Fire_CheckEnd(4) - ['fire over']
ENCOUNTER: -- custom check end EncCustom_VillainsFight_CheckEnd(4) - None
AI: m25obj_40:'thug_with_grenade' move to 'hero_0'
AI: m25obj_48:'civilian_male' goal move to marker 'apartment1_congregate1'
AI: m25obj_40 overpowers his/her/its attack!
AI: m25obj_40:'thug_with_grenade' thug with bat Club attack on 'hero_0'
GROUP: '4_minion' member koed
ENCOUNTER: PlayEncCutscene(): 'm25obj_40kocs' : None
ENCOUNTER: PlayCutsceneFromList(): None : None ... [['m25obj_40', 'fallen']]
ENCOUNTER: PlayEncCutscene(): 'thug_with_grenadekocs' : None
ENCOUNTER: PlayCutsceneFromList(): None : None ... [['m25obj_40', 'fallen']]
ENCOUNTER: PlayEncCutscene(): 'villainkocs' : None
ENCOUNTER: PlayCutsceneFromList(): None : None ... [['m25obj_40', 'fallen']]
alliescanbefreed 6 6 0
ENCOUNTER: -- custom check end EncCustom_AlliesCanBeFreed_CheckEnd(4) - ['all allies freed']
ENCOUNTER: -- custom check end EncCustom_Allies_Congregate_CheckEnd(4) - None
ENCOUNTER: -- custom check end EncCustom_Fire_CheckEnd(4) - ['fire over']
ENCOUNTER: -- custom check end EncCustom_VillainsFight_CheckEnd(4) - ['villains gone']
GROUP: '4_minion' leader koed
ENCOUNTER: PlayEncCutscene(): 'bantercs' : None
ENCOUNTER: PlayCutsceneFromList(): None : None ... []
AI: m25obj_48:'civilian_male' goal move to marker 'apartment1_congregate1'
ENCOUNTER: Setting up encounter 9
ENCOUNTER: Start marker found for ['apartment1'] None
ENCOUNTER: No start marker found for ['apartment1']
AI: m25obj_48:'civilian_male' goal move to marker 'apartment1_congregate1'
Object_GetVar called on nonexistant object 'm25obj_1034'.
AI: m25obj_48:'civilian_male' goal move to marker 'apartment1_congregate1'
AI: m25obj_48:'civilian_male' goal move to marker 'apartment1_congregate1'
AI: m25obj_48:'civilian_male' goal move to marker 'apartment1_congregate1'
GROUP: 'm25obj_44' removed from group '4_minion'
GROUP: '4_minion' set to ['m25obj_40', 'm25obj_42']
AI: m25obj_48:'civilian_male' goal move to marker 'apartment1_congregate1'
GROUP: 'm25obj_42' removed from group '4_minion'
GROUP: '4_minion' set to ['m25obj_40']
AI: m25obj_48:'civilian_male' goal move to marker 'apartment1_congregate1'
GROUP: 'm25obj_40' removed from group '4_minion'
GROUP: '4_minion' set to []
GROUP: empty '4_minion' cannot have a leader promoted
ENCOUNTER: Setting up encounter 10
ENCOUNTER: Start marker found for ['apartment1'] None
ENCOUNTER: No start marker found for ['apartment1'][/spoiler]
Title: Re: EZScript Comics
Post by: Boalt92 on July 31, 2008, 04:10:39 AM
QuoteENCOUNTER: Start marker found for ['apartment1'] None
ENCOUNTER: No start marker found for ['apartment1']

i noticed this line popup a few times...is there an 'apartment1' marker?  is it being used for nother encounter?

b92
Title: Re: EZScript Comics
Post by: BentonGrey on July 31, 2008, 05:39:34 AM
Thanks for the response Boalt, and yes, there is an apartment1 marker.  It is the marker for the first Rescue Fire encounter, the one that is acting up.
Title: Re: EZScript Comics
Post by: M25 on August 03, 2008, 10:11:17 AM
Sorry I wasn't able to respond earlier.

If I'm reading this right, Blaze1 and Blaze2 are supposed to run at the same time?  At any rate, it looks like a flow problem.  By default, EZ script will try to run the next encounter in the text file once an encounter finishes if you don't tell it otherwise, even when you have 'Starts when' clauses.  So you need to add

Next: None

to Blaze2  and probably Blaze1 as well.


Title: Re: EZScript Comics
Post by: BentonGrey on August 03, 2008, 04:32:18 PM
Thanks for taking a look M!  I'm afraid I figured out the same thing last night, and after feeling quite dumb, I edited the story to make it just linear.  I'm still getting the same thing though, some of the Rescue Fire encounters refuse to end.  I'm going to do some more testing tonight, and post my findings and any pertinent script.log entries.
Title: Re: EZScript Comics
Post by: BentonGrey on August 05, 2008, 01:03:14 PM
Okay, I've made some adjustments and things SEEM to be working at the moment.  Ha, so, I've just got to give the whole shebang a run through, and the JLA campaign will be done!

:EDIT: Well, surprise, surprise, I spoke too soon.  So....everything is hunkiedorie, but I made the last encounter a Custom one because the ally in the encounter kept getting killed.  So, I've altered it as follows:

[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
Villains: warlord
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 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."

[/spoiler]

It actually works great, and everything plays the way it should....it just doesn't end!  The Ally thanks cutscene plays, and then nothing.  Here is the pertinent area of the script.log.  Any thoughts guys?

[spoiler]
GROUP: '1_minion' member koed
ENCOUNTER: PlayEncCutscene(): 'm25obj_8kocs' : None
ENCOUNTER: PlayCutsceneFromList(): None : None ... [['m25obj_8', 'fallen']]
ENCOUNTER: PlayEncCutscene(): 'warlordkocs' : None
ENCOUNTER: PlayCutsceneFromList(): None : None ... [['m25obj_8', 'fallen']]
ENCOUNTER: PlayEncCutscene(): 'villainkocs' : None
ENCOUNTER: PlayCutsceneFromList(): None : None ... [['m25obj_8', 'fallen']]
alliescanbefreed 1 0 0
ENCOUNTER: -- custom check end EncCustom_AlliesCanBeFreed_CheckEnd(1) - None
ENCOUNTER: -- custom check end EncCustom_VillainsFight_CheckEnd(1) - None
ENCOUNTER: -- custom check end EncCustom_AlliesThankHeroes_CheckEnd(1) - None
ENCOUNTER: -- custom check end EncCustom_RivalsFight_CheckEnd(1) - None
GROUP: '1_minion' member koed
ENCOUNTER: PlayEncCutscene(): 'm25obj_6kocs' : None
ENCOUNTER: PlayCutsceneFromList(): None : None ... [['m25obj_6', 'fallen']]
ENCOUNTER: PlayEncCutscene(): 'thug_with_grenadekocs' : None
ENCOUNTER: PlayCutsceneFromList(): None : None ... [['m25obj_6', 'fallen']]
ENCOUNTER: PlayEncCutscene(): 'minionkocs' : None
ENCOUNTER: PlayCutsceneFromList(): None : None ... [['m25obj_6', 'fallen']]
alliescanbefreed 1 0 0
ENCOUNTER: -- custom check end EncCustom_AlliesCanBeFreed_CheckEnd(1) - None
ENCOUNTER: -- custom check end EncCustom_VillainsFight_CheckEnd(1) - ['villains gone']
addArrow m25obj_10arrow m25obj_10 1 0
GOAL: Adding goal Goal_MoveToTarget(1007,'hero_0',50,49,100,None) to character m25obj_10
ENCOUNTER: PlayEncCutscene(): 'allywantstothankheroescs' : None
ENCOUNTER: PlayCutsceneFromList(): None : None ... []
ENCOUNTER: PlayEncCutscene(): 'enemiesdowncs' : None
ENCOUNTER: PlayCutsceneFromList(): None : None ... []
ENCOUNTER: -- custom check end EncCustom_AlliesThankHeroes_CheckEnd(1) - None
ENCOUNTER: -- custom check end EncCustom_RivalsFight_CheckEnd(1) - None
GROUP: '1_minion' leader koed
ENCOUNTER: PlayEncCutscene(): 'bantercs' : None
ENCOUNTER: PlayCutsceneFromList(): None : None ... []
GROUP: 'm25obj_6' removed from group '1_minion'
GROUP: '1_minion' set to ['m25obj_8']
ENCOUNTER: PlayEncCutscene(): 'bantercs' : None
ENCOUNTER: PlayCutsceneFromList(): None : None ... []
GROUP: '1_cohort' member koed
ENCOUNTER: PlayEncCutscene(): 'm25obj_14kocs' : None
ENCOUNTER: PlayCutsceneFromList(): None : None ... [['m25obj_14', 'fallen']]
ENCOUNTER: PlayEncCutscene(): 'civilian_martiankocs' : None
ENCOUNTER: PlayCutsceneFromList(): None : None ... [['m25obj_14', 'fallen']]
ENCOUNTER: PlayEncCutscene(): 'rivalkocs' : None
ENCOUNTER: PlayCutsceneFromList(): None : None ... [['m25obj_14', 'fallen']]
alliescanbefreed 1 0 0
ENCOUNTER: -- custom check end EncCustom_AlliesCanBeFreed_CheckEnd(1) - None
ENCOUNTER: -- custom check end EncCustom_VillainsFight_CheckEnd(1) - ['villains gone']
ENCOUNTER: -- custom check end EncCustom_AlliesThankHeroes_CheckEnd(1) - None
ENCOUNTER: -- custom check end EncCustom_RivalsFight_CheckEnd(1) - None
ENCOUNTER: PlayEncCutscene(): 'bantercs' : None
ENCOUNTER: PlayCutsceneFromList(): None : None ... []
GROUP: 'm25obj_14' removed from group '1_cohort'
GROUP: '1_cohort' set to ['m25obj_12']
GROUP: 'm25obj_12' automatically promoted to leader of group '1_cohort'
GROUP: 'm25obj_12' made leader of group '1_cohort'
GROUP: '1_cohort' set to guard 'm25obj_12'
GOAL: Adding goal Goal_StayWithTeam(1008,20) to character m25obj_12
ENCOUNTER: PlayEncCutscene(): 'bantercs' : None
ENCOUNTER: PlayCutsceneFromList(): None : None ... []
ENCOUNTER: PlayEncCutscene(): 'bantercs' : None
ENCOUNTER: PlayCutsceneFromList(): None : None ... []
GROUP: '1_cohort' member koed
ENCOUNTER: PlayEncCutscene(): 'm25obj_12kocs' : None
ENCOUNTER: PlayCutsceneFromList(): None : None ... [['m25obj_12', 'fallen']]
ENCOUNTER: PlayEncCutscene(): 'civilian_martiankocs' : None
ENCOUNTER: PlayCutsceneFromList(): None : None ... [['m25obj_12', 'fallen']]
ENCOUNTER: PlayEncCutscene(): 'rivalkocs' : None
ENCOUNTER: PlayCutsceneFromList(): None : None ... [['m25obj_12', 'fallen']]
alliescanbefreed 1 0 0
ENCOUNTER: -- custom check end EncCustom_AlliesCanBeFreed_CheckEnd(1) - None
ENCOUNTER: -- custom check end EncCustom_VillainsFight_CheckEnd(1) - ['villains gone']
ENCOUNTER: -- custom check end EncCustom_AlliesThankHeroes_CheckEnd(1) - None
ENCOUNTER: -- custom check end EncCustom_RivalsFight_CheckEnd(1) - ['rivals gone']
GROUP: '1_cohort' leader koed
ENCOUNTER: PlayEncCutscene(): 'allythanksherocs' : 'EncCheckEnd(1)'
ENCOUNTER: PlayCutsceneFromList(): [['priority', 1], ['replace', ['ally1', 'ally']], ['required', 'flash'], ['cutscene', 'CS_Start()', "CS_Camera('flash', dist=-160, yaw=0)", "CS_MoveTo('ally1', 'flash')", "CS_Speak('flash', 'Professor, are you alright?', force=0)", 'CS_Speak(\'ally1\', "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!", force=0)', "CS_Speak('flash', '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?', force=0)", "CS_Speak('ally1', '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?', force=0)", 'CS_Speak(\'flash\', "Even better, I think I\'ll trail it to their destination and see if I can\'t unravel this mystery.", force=0)', 'CS_End()']] : 'EncCheckEnd(1)' ... [['m25obj_10', 'ally'], ['hero_0', 'hero']]
CUTSCENE: request to play cutscene.
CUTSCENE:  - CS_Start()
CUTSCENE:  - CS_Camera('flash', dist=-160, yaw=0)
CUTSCENE:  - CS_MoveTo('m25obj_10', 'flash')
CUTSCENE:  - CS_Speak('flash','Professor, are you alright?', force=0)
CUTSCENE:  - CS_Speak('m25obj_10',"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!", force=0)
CUTSCENE:  - CS_Speak('flash','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?', force=0)
CUTSCENE:  - CS_Speak('m25obj_10','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?', force=0)
CUTSCENE:  - CS_Speak('flash',"Even better, I think I'll trail it to their destination and see if I can't unravel this mystery.", force=0)
CUTSCENE:  - CS_End()
CUTSCENE: calling PlayCurrentCutscene 3
CUTSCENE: playing ff.CS_Start(3)
CUTSCENE: playing ff.CS_Camera(3,'flash', dist=-160, yaw=0)
CUTSCENE: playing ff.CS_MoveTo(3,'m25obj_10', 'flash')
AI: AISetRunning m25obj_8 to 0
AI: AISetRunning m25obj_10 to 0
AI: AISetRunning m25obj_12 to 0
CUTSCENE: playing ff.CS_Speak(3,'flash','Professor, are you alright?', force=0)
CUTSCENE: playing ff.CS_Speak(3,'m25obj_10',"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!", force=0)
GROUP: 'm25obj_12' removed from group '1_cohort'
GROUP: '1_cohort' set to []
GROUP: empty '1_cohort' cannot have a leader promoted
CUTSCENE: playing ff.CS_Speak(3,'flash','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?', force=0)
CUTSCENE: playing ff.CS_Speak(3,'m25obj_10','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?', force=0)
CUTSCENE: playing ff.CS_Speak(3,'flash',"Even better, I think I'll trail it to their destination and see if I can't unravel this mystery.", force=0)
CUTSCENE: playing ff.CS_End(3)
AI: AIRun is restarting m25obj_8
AI: AISetRunning m25obj_8 to 1
AI: AIRun is restarting m25obj_10
AI: AISetRunning m25obj_10 to 1
CUTSCENE: calling cutscene return function.
alliescanbefreed 1 0 0
ENCOUNTER: -- custom check end EncCustom_AlliesCanBeFreed_CheckEnd(1) - None
ENCOUNTER: -- custom check end EncCustom_VillainsFight_CheckEnd(1) - ['villains gone']
ENCOUNTER: -- custom check end EncCustom_AlliesThankHeroes_CheckEnd(1) - ['ally thanked hero', 'ally survives']
ENCOUNTER: -- custom check end EncCustom_RivalsFight_CheckEnd(1) - ['rivals gone']
ENCOUNTER: PlayEncCutscene(): 'bantercs' : None
ENCOUNTER: PlayCutsceneFromList(): None : None ... []
ENCOUNTER: PlayEncCutscene(): 'bantercs' : None
ENCOUNTER: PlayCutsceneFromList(): None : None ... []
[/spoiler]
Title: Re: EZScript Comics
Post by: M25 on August 05, 2008, 08:05:03 PM
The relevant portion of the script.log is here:


ENCOUNTER: -- custom check end EncCustom_AlliesCanBeFreed_CheckEnd(1) - None
ENCOUNTER: -- custom check end EncCustom_VillainsFight_CheckEnd(1) - ['villains gone']
ENCOUNTER: -- custom check end EncCustom_AlliesThankHeroes_CheckEnd(1) - ['ally thanked hero', 'ally survives']
ENCOUNTER: -- custom check end EncCustom_RivalsFight_CheckEnd(1) - ['rivals gone']


Basically, the Allies Can Be Freed part of the encounter is not hitting an end condition, so the encounter is not ending.

You need to add 'Heroes Rescue Allies' to the actions, or you could probably just get rid of 'Allies Can Be Freed' and get the effect you want.

Title: Re: EZScript Comics
Post by: BentonGrey on August 05, 2008, 08:22:15 PM
Of course!  I forgot the Heroes Rescue Allies part, that makes sense.  Thanks M!
Title: Re: EZScript Comics
Post by: BentonGrey on November 09, 2008, 02:09:19 PM
Well, it has begun!  Ha, I've done a bunch of base scenes this weekend, trying to finish up the DCUG, and I started testing them out today.  Wouldn't you know it, the very first one doesn't even work.  The base encounter runs just fine, but then when I click on the "Mission Briefing" button nothing happens.  Here is my script:

[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

Start Cutscene:
Camera on screen1
Unfade for 3 seconds
thanagarian_male2 plays animation fall


#
# 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

Start Cutscene:
Camera on med1
hawkgirl_gun says, "It's a Thanagarian!"
hawkgirl_gun plays animation ranged
andar_pul says, "Hmm...we're getting bizarre readings...this man's body chemistry has been altered in some incredibly strange ways."
hawkman_gun says, "Where could they have gotten this kind of technology?"
andar_pul says, "Well...we've detected traces of the genetic signature of Talon Labs."
hawkman_gun says, "We'd better get over there and ask some questions. They haven't reported any break-ins in the last few days, have they?"
andar_pul says, "Not a thing, and their security rating is pretty high, but something is going on."
hawkgirl_gun says, "This fool and his friends proves that much. Come on Katar, let's pay Talon Labs a visit."
[/spoiler]

:EDIT: Okay, after some more testing, it seems that the briefing won't play no matter what I do.  I've removed everything except: Narrator says, "TEST" and it still won't play.  Also, while trying to test another base screen instead of this one, I got a more catastrophic failure.  The screen showed up black and I received several error messages.  The crux of these messages was that the 'base' encounter wasn't found.  Here is my script log and the encounter in question:

Script:
[spoiler]ERROR: The encounter DoEncBase does not exist or is broken.  You may need to download the appropriate plug-in, or check script.log for errors.
ff.DoEncBase(1,cutscenes = [['startcs', [['priority', 1], ['replace', ['mainroom1_ally1', 'ally']], ['required', 'mainroom1', 'jewler', 'customer', 'mainroom2'], ['cutscene', 'CS_Start()', "CS_Camera('mainroom1', dist=-160, yaw=0)", 'CS_UnFade(3)', "CS_Speak('narrator', 'In quiet, peaceful Ivy Town, all is not as it appears. A local jewelrey store holds the beginning of a strange story...', force=0)", "CS_Camera('jewler', dist=-160, yaw=0)", "CS_TurnTo('jewler', 'customer')", "CS_TurnTo('customer', 'jewler')", 'CS_Speak(\'jewler\', "Well sir, it is a beautiful stone, I\'m sure that she would love it.", force=0)', 'CS_Speak(\'customer\', "hmm...I\'m sure she would...but it is very pricey...could I see something a little less expensive?", force=0)', 'CS_Speak(\'jewler\', "Of course sir, I\'ll just be a moment.", force=0)', "CS_MoveTo('jewler', 'mainroom2')", "CS_Camera('jewler', dist=-160, yaw=0)", 'CS_Wait(2)', "CS_MoveTo('jewler', 'mainroom1_ally1')", "CS_Camera('customer', dist=-160, yaw=0)", "CS_Animate('jewler','melee')", "CS_Speak('jewler', 'What did you do with the diamond?! Return it immediately!', force=0)", 'CS_Speak(\'customer\', "Wh-what are you talking about? It was right there, I didn\'t do anything with it!", force=0)', "CS_Animate('jewler','ranged')", 'CS_Speak(\'jewler\', "Well, don\'t try and run off, the police are going to want to have a word with you, mister!", force=0)', 'CS_End()']]]], marker = 'encounter',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 26, in OnPostInit
    m25minimod.OnPostInit(campaign=1, base=1)
  File "C:\Program Files\Irrational Games\Freedom Force vs The 3rd Reich\.\DCUG\missions\scripts\m25minimod.py", line 137, in OnPostInit
    m25story.DoStoryline()
  File "C:\Program Files\Irrational Games\Freedom Force vs The 3rd Reich\.\DCUG\missions\scripts\m25story.py", line 246, in DoStoryline
    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 0, in ?
  File "C:\Program Files\Irrational Games\Freedom Force vs The 3rd Reich\.\DCUG\missions\scripts\m25enc.py", line 2558, in DoEncBase
    PlayEncCutscene(enc_id, 'startcs', return_function='BaseDone(%i)'%enc_id)
  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 763, in EncPlayCutscene
    replace = CSGetReplacements(cstoplay, charlist, enc_id, live, exclude=exclude_list)
  File "C:\Program Files\Irrational Games\Freedom Force vs The 3rd Reich\.\DCUG\missions\scripts\m25enc.py", line 823, in CSGetReplacements
    char = findCharFromList(charlist,n[1],enc_id,excludelist=exclude,live=live,subtype=subtype)
  File "C:\Program Files\Irrational Games\Freedom Force vs The 3rd Reich\.\DCUG\missions\scripts\m25enc.py", line 500, in findCharFromList
    for c in charlist:
TypeError: loop over non-sequence
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()
[/spoiler]

Base:
[spoiler]tory: My Story

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

Encounter: Start
Type: Base

Start Cutscene:
Camera on mainroom1
Unfade for 3 seconds
Narrator says, "In quiet, peaceful Ivy Town, all is not as it appears. A local jewelrey store holds the beginning of a strange story..."
Camera on jewler
jewler turns to customer
customer turns to jewler
jewler says, "Well sir, it is a beautiful stone, I'm sure that she would love it."
customer says, "hmm...I'm sure she would...but it is very pricey...could I see something a little less expensive?"
jewler says, "Of course sir, I'll just be a moment."
jewler moves to mainroom2
Camera on jewler
Wait for 2 seconds
jewler moves to mainroom1_ally1
Camera on customer
jewler plays animation melee
jewler says, "What did you do with the diamond?! Return it immediately!"
customer plays animaiton stunned
customer says, "Wh-what are you talking about? It was right there, I didn't do anything with it!"
jewler plays animation ranged
jewler says, "Well, don't try and run off, the police are going to want to have a word with you, mister!"


#
# 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

Start Cutscene:
Camera on ray_palmer
ray_palmer says, "Hmm..if the dwarf star matter has the abilities to warp mass..."
ray_palmer plays animation ranged
jean_loring moves to boss1
jean_loring says, "Ray? Do you have a minute?"
ray_palmer turns to jean_loring
ray_palmer says, "Hi honey, of course, I've always got time for you."
jean_loring says, "The strangest thing happened today, and I wanted to tell you about it."
ray_palmer says, "Well, I'm not making any progress here. Let's hear your story. What happened?"
jean_loring says, "A man named Greg Adams came into my office a few hours ago, and asked me to defend him in court. Apparently, he is accused of stealing a valuable diamond."
ray_palmer says, "Well, that doesn't sound particularly strange, what's his alibi?"
jean_loring says, "That's where it gets weird, he claims that the gem just 'disappeared.' He says the clerk walked away, looking for another stone, and Mr. Adams himself was looking at something else in the display case."
jean_loring says, "The next thing he knew, the clerk had returned and was calling him a theif."
ray_palmer says, "And neither of them saw anyone take the stone?"
jean_loring says, "No, and neither did anyone else in the store, isn't that bizarre? Whoever the theif was, he was very clever."
ray_palmer says, "I suppose so, that's pretty strange alright. so, how does the case look?"
jean_loring says, "Ohh, it should be simple enough, the evidence against Mr. Adams is all circumstantial, but if he's not the thief, who is?"
ray_palmer says, "Yes, that is the question, isn't it?"
jean_loring says, "Well, thanks for listening darling, but I suppose I had better let you get back to work. I'll see you for dinner tonight?"
ray_palmer says, "I wouldn't miss it for the world dear..."
jean_loring moves to firstdoor1[/spoiler]
Title: Re: EZScript Comics
Post by: M25 on November 10, 2008, 06:54:17 PM
Looks like a bug in EZ script.  It's confused over the line:

jewler moves to mainroom1_ally1

If you change the name of the marker to not include the word 'ally', it should work.

EZ script is trying to replace the word ally with someone from the Allies list.  Since there isn't any allies, it's crashing (which is also preventing the briefing from working).




Title: Re: EZScript Comics
Post by: BentonGrey on November 10, 2008, 07:03:38 PM
Thanks M!  I'll fix that, but you say this is also why the briefing won't play...I don't understand.  Is that related to the first Base encounter?
Title: Re: EZScript Comics
Post by: M25 on November 11, 2008, 11:42:32 AM
Yes.  EZ script crashed during the base encounter, so the briefing won't play either.



Title: Re: EZScript Comics
Post by: BentonGrey on November 11, 2008, 01:13:34 PM
I think I see our miscommunication, the second half of my post details the base.txt that crashes, while the first is a separate base.txt, wherein the base part plays, but after it finishes, the briefing button does nothing.
Title: Re: EZScript Comics
Post by: M25 on November 12, 2008, 11:07:57 AM
Make sure you have a couple of encounter markers (encounter1 and encounter2) on the base map.
Title: Re: EZScript Comics
Post by: BentonGrey on November 12, 2008, 01:57:52 PM
Hmm.......that might be it.....if it is, I'm going to bash my head against a wall. :P

:EDIT: Oookay!  We're making progress here!  The second Base scene is playing like a charm...but it crashes right as the last animation plays in the briefing screen.  I have  suspicion that this might have something to do with the next mission, so I'm not going to stress over it too much at the moment.  I'll try and do some testing tonight, and then I'll post my further conundrums.
Title: Re: EZScript Comics
Post by: BentonGrey on November 13, 2008, 12:16:21 PM
Alright, I've done a bit more testing, and I've got some fairly profound troubles here.  Both these Base scenes are playing perfectly, but just as they end and the mission should be starting, I get a crash to desktop with no error message.  That's two different missions, both of which I've tested extensively through RR, so they work.  I've got no error reports on the script.txt, but I'll provide it anyway.  This one has got me baffled. 

[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 1226607101.046000
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': 'encounter', 'type': 'Base', 'timeofday': 'none', 'required_map': [], 'trigger': [], 'next': [], 'objectives': [], 'parameters': [], 'name': 'Start', 'cutscenes': [{'replace': [], 'name': 'Start', 'required': ['screen1', 'thanagarian_male2'], 'priority': 1, 'cutscene': ['CS_Start()', "CS_Camera('screen1', dist=-160, yaw=0)", 'CS_UnFade(3)', "CS_Animate('thanagarian_male2','fall')", 'CS_End()']}], 'pre': []}, {'marker': 'encounter', 'type': 'Cutscene', 'timeofday': 'none', 'required_map': [], 'trigger': ['Briefing'], 'next': [], 'objectives': [], 'parameters': [], 'name': 'Briefing', 'cutscenes': [{'replace': [], 'name': 'Start', 'required': ['thanagarian_male2', 'bed1', 'hawkgirl_gun', 'andar_pul', 'hawkman_gun'], 'priority': 1, 'cutscene': ['CS_Start()', "CS_Animate('thanagarian_male2','fall')", "CS_Camera('bed1', dist=-160, yaw=0)", 'CS_Speak(\'hawkgirl_gun\', "It\'s a Thanagarian!", force=0)', "CS_Animate('hawkgirl_gun','ranged')", 'CS_Speak(\'andar_pul\', "Hmm...we\'re getting bizarre readings...this man\'s body chemistry has been altered in some incredibly strange ways.", force=0)', "CS_Speak('hawkman_gun', 'Where could they have gotten this kind of technology?', force=0)", 'CS_Speak(\'andar_pul\', "Well...we\'ve detected traces of the genetic signature of Talon Labs.", force=0)', 'CS_Speak(\'hawkman_gun\', "We\'d better get over there and ask some questions. They haven\'t reported any break-ins in the last few days, have they?", force=0)', "CS_Speak('andar_pul', 'Not a thing, and their security rating is pretty high, but something is going on.', force=0)", 'CS_Speak(\'hawkgirl_gun\', "This fool and his friends proves that much. Come on Katar, let\'s pay Talon Labs a visit.", force=0)', 'CS_End()']}], '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\', \'screen1\', \'thanagarian_male2\'], [\'cutscene\', \'CS_Start()\', "CS_Camera(\'screen1\', dist=-160, yaw=0)", \'CS_UnFade(3)\', "CS_Animate(\'thanagarian_male2\',\'fall\')", \'CS_End()\']]]], marker = \'encounter\')'], 'required_map': []}, 'Briefing': {'timeofday': 'none', 'next': ['__end__'], 'trigger': ['Briefing'], 'action': ['DoEncCutscene(cutscenes = [[\'startcs\', [[\'priority\', 1], [\'required\', \'thanagarian_male2\', \'bed1\', \'hawkgirl_gun\', \'andar_pul\', \'hawkman_gun\'], [\'cutscene\', \'CS_Start()\', "CS_Animate(\'thanagarian_male2\',\'fall\')", "CS_Camera(\'bed1\', dist=-160, yaw=0)", \'CS_Speak(\\\'hawkgirl_gun\\\', "It\\\'s a Thanagarian!", force=0)\', "CS_Animate(\'hawkgirl_gun\',\'ranged\')", \'CS_Speak(\\\'andar_pul\\\', "Hmm...we\\\'re getting bizarre readings...this man\\\'s body chemistry has been altered in some incredibly strange ways.", force=0)\', "CS_Speak(\'hawkman_gun\', \'Where could they have gotten this kind of technology?\', force=0)", \'CS_Speak(\\\'andar_pul\\\', "Well...we\\\'ve detected traces of the genetic signature of Talon Labs.", force=0)\', \'CS_Speak(\\\'hawkman_gun\\\', "We\\\'d better get over there and ask some questions. They haven\\\'t reported any break-ins in the last few days, have they?", force=0)\', "CS_Speak(\'andar_pul\', \'Not a thing, and their security rating is pretty high, but something is going on.\', force=0)", \'CS_Speak(\\\'hawkgirl_gun\\\', "This fool and his friends proves that much. Come on Katar, let\\\'s pay Talon Labs a visit.", force=0)\', \'CS_End()\']]]], marker = \'encounter\')'], 'required_map': []}}}}
! GetMapInfo
MISSION: On Post Init... complete; starting story.
ENCOUNTER: PlayEncCutscene(): 'startcs' : 'BaseDone(1)'
ENCOUNTER: PlayCutsceneFromList(): [['priority', 1], ['required', 'screen1', 'thanagarian_male2'], ['cutscene', 'CS_Start()', "CS_Camera('screen1', dist=-160, yaw=0)", 'CS_UnFade(3)', "CS_Animate('thanagarian_male2','fall')", 'CS_End()']] : 'BaseDone(1)' ... []
CUTSCENE: request to play cutscene.
CUTSCENE:  - CS_Start()
CUTSCENE:  - CS_Camera('screen1', dist=-160, yaw=0)
CUTSCENE:  - CS_UnFade(3)
CUTSCENE:  - CS_Animate('thanagarian_male2','fall')
CUTSCENE:  - CS_End()
CUTSCENE: calling PlayCurrentCutscene 1
CUTSCENE: playing ff.CS_Start(1)
CUTSCENE: playing ff.CS_Camera(1,'screen1', dist=-160, yaw=0)
initialising FFQ_initialiseExtras()
CUTSCENE: playing ff.CS_UnFade(1,3)
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_Animate(1,'thanagarian_male2','fall')
CUTSCENE: playing ff.CS_End(1)
CUTSCENE: calling cutscene return function.
ENCOUNTER: Setting up encounter 2
ENCOUNTER: Start marker found for ['encounter'] 'encounter10'
GROUP: '2_minion' set to []
GROUP: '2_minion' set to []
GROUP: '2_minion' set to []
GROUP: '2_ally' set to []
GROUP: '2_ally' set to []
GROUP: '2_object' set to []
GROUP: '2_object' set to []
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 'SingleCutscene_Setup'
ENCOUNTER: PlayEncCutscene(): 'startcs' : 'SingleCutscene_End(2,"end")'
ENCOUNTER: PlayCutsceneFromList(): [['priority', 1], ['required', 'thanagarian_male2', 'bed1', 'hawkgirl_gun', 'andar_pul', 'hawkman_gun'], ['cutscene', 'CS_Start()', "CS_Animate('thanagarian_male2','fall')", "CS_Camera('bed1', dist=-160, yaw=0)", 'CS_Speak(\'hawkgirl_gun\', "It\'s a Thanagarian!", force=0)', "CS_Animate('hawkgirl_gun','ranged')", 'CS_Speak(\'andar_pul\', "Hmm...we\'re getting bizarre readings...this man\'s body chemistry has been altered in some incredibly strange ways.", force=0)', "CS_Speak('hawkman_gun', 'Where could they have gotten this kind of technology?', force=0)", 'CS_Speak(\'andar_pul\', "Well...we\'ve detected traces of the genetic signature of Talon Labs.", force=0)', 'CS_Speak(\'hawkman_gun\', "We\'d better get over there and ask some questions. They haven\'t reported any break-ins in the last few days, have they?", force=0)', "CS_Speak('andar_pul', 'Not a thing, and their security rating is pretty high, but something is going on.', force=0)", 'CS_Speak(\'hawkgirl_gun\', "This fool and his friends proves that much. Come on Katar, let\'s pay Talon Labs a visit.", force=0)', 'CS_End()']] : 'SingleCutscene_End(2,"end")' ... []
CUTSCENE: request to play cutscene.
CUTSCENE:  - CS_Start()
CUTSCENE:  - CS_Animate('thanagarian_male2','fall')
CUTSCENE:  - CS_Camera('bed1', dist=-160, yaw=0)
CUTSCENE:  - CS_Speak('hawkgirl_gun',"It's a Thanagarian!", force=0)
CUTSCENE:  - CS_Animate('hawkgirl_gun','ranged')
CUTSCENE:  - CS_Speak('andar_pul',"Hmm...we're getting bizarre readings...this man's body chemistry has been altered in some incredibly strange ways.", force=0)
CUTSCENE:  - CS_Speak('hawkman_gun','Where could they have gotten this kind of technology?', force=0)
CUTSCENE:  - CS_Speak('andar_pul',"Well...we've detected traces of the genetic signature of Talon Labs.", force=0)
CUTSCENE:  - CS_Speak('hawkman_gun',"We'd better get over there and ask some questions. They haven't reported any break-ins in the last few days, have they?", force=0)
CUTSCENE:  - CS_Speak('andar_pul','Not a thing, and their security rating is pretty high, but something is going on.', force=0)
CUTSCENE:  - CS_Speak('hawkgirl_gun',"This fool and his friends proves that much. Come on Katar, let's pay Talon Labs a visit.", force=0)
CUTSCENE:  - CS_End()
CUTSCENE: calling PlayCurrentCutscene 2
CUTSCENE: playing ff.CS_Start(2)
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_Animate(2,'thanagarian_male2','fall')
CUTSCENE: playing ff.CS_Camera(2,'bed1', dist=-160, yaw=0)
CUTSCENE: playing ff.CS_Speak(2,'hawkgirl_gun',"It's a Thanagarian!", force=0)
CUTSCENE: playing ff.CS_Animate(2,'hawkgirl_gun','ranged')
CUTSCENE: playing ff.CS_Speak(2,'andar_pul',"Hmm...we're getting bizarre readings...this man's body chemistry has been altered in some incredibly strange ways.", force=0)
CUTSCENE: playing ff.CS_Speak(2,'hawkman_gun','Where could they have gotten this kind of technology?', force=0)
CUTSCENE: playing ff.CS_Speak(2,'andar_pul',"Well...we've detected traces of the genetic signature of Talon Labs.", force=0)
CUTSCENE: playing ff.CS_Speak(2,'hawkman_gun',"We'd better get over there and ask some questions. They haven't reported any break-ins in the last few days, have they?", force=0)
CUTSCENE: playing ff.CS_Speak(2,'andar_pul','Not a thing, and their security rating is pretty high, but something is going on.', force=0)
CUTSCENE: playing ff.CS_Speak(2,'hawkgirl_gun',"This fool and his friends proves that much. Come on Katar, let's pay Talon Labs a visit.", force=0)
CUTSCENE: playing ff.CS_End(2)
[/spoiler]
Title: Re: EZScript Comics
Post by: M25 on November 14, 2008, 11:31:48 AM
I'm sure you've done this, but I have to eliminate the obvious...

Make sure your map for the mission is in the mission directory, along with the mission.py and mission.txt files.


Title: Re: EZScript Comics
Post by: BentonGrey on November 15, 2008, 09:00:28 AM
No worries, I'm so absent minded that you're taking a very sensible precaution.  :P  Unfortunately (fortunately?) that is not the problem.  Both the mission file and the text itself are both in the folders.  I just realized that they didn't have an extra line at the bottom of the page, but after I fixed that I am still getting crashes. 
Title: Re: EZScript Comics
Post by: M25 on November 15, 2008, 11:49:35 AM
Are they crashing before or after you select you heroes for the mission?

Some causes of crashing that I know of...

1. You cannot recruit characters from .hero files via EZ script.  The game doesn't like it and will crash when trying to start a mission.  The player can recruit them via the base screen, but mod developers can't.

2.  You need to have the hero_1, hero_2, hero_3, hero_4 markers on the mission map so that the game can place the heroes that you select.




Title: Re: EZScript Comics
Post by: BentonGrey on November 15, 2008, 09:43:49 PM
Hmm.....interesting.  So, it isn't the recruiting thing, as I haven't tried to recruit any characters.  Both maps WERE missing their hero_1-4 markers, but I added them, and I am still getting the same crash.  It happens JUST as the briefing cutscene finishes playing, before anything else starts to load.  The last line of dialog is spoken, and then a CTD. 
Title: Re: EZScript Comics
Post by: M25 on November 17, 2008, 08:49:04 AM
Maybe not having anyone recruited is causing the problem.  Try adding a Campaign Recruit encounter to the end of the previous mission.


Has the board software changed?  I'm having a tough time posting these days.
Title: Re: EZScript Comics
Post by: BentonGrey on November 17, 2008, 04:28:08 PM
Hmm....I've tested the JLA campaign with no recruiting and I haven't encountered this problem.  I'll modify that and check it though.

I haven't noticed any changes in the board's software.  I wonder what is giving you problems?
Title: Re: EZScript Comics
Post by: Epimethee on November 17, 2008, 06:38:10 PM
Quote from: M25 on November 17, 2008, 08:49:04 AM
Has the board software changed?  I'm having a tough time posting these days.
At least for me, it has been fine. A network problem, maybe?
Title: Re: EZScript Comics
Post by: GogglesPizanno on November 17, 2008, 07:37:30 PM
Quote from: Epimethee on November 17, 2008, 06:38:10 PM
Quote from: M25 on November 17, 2008, 08:49:04 AM
Has the board software changed?  I'm having a tough time posting these days.
At least for me, it has been fine. A network problem, maybe?

I have noticed on my desktop machine that with the latest update to my firewall software it stopped letting me actually post.

I think I just added an exception rule and now it lets me, or maybe I disabled it and just am using my routers firewall... I actually don't remember anymore (givin the laptop way more love these days). In any case for me the problems were firewall related.
Title: Re: EZScript Comics
Post by: M25 on November 18, 2008, 11:08:19 AM
Re: difficulties posting - It looks like the culprit is the engine behind the Safari and Chrome browsers not playing nice with the board.

BentonGrey,
Does it crash when you have a simple briefing (point the camera at someone and end)?
Is there anything in the ff.log or ff.err files?

If you haven't already, make sure you are using the ezscriptcampaignv1.1 from the ezscript.wikispaces.com
Title: Re: EZScript Comics
Post by: BentonGrey on December 01, 2008, 10:17:12 AM
Okay, sorry for the delay but a rather severe sickness combined with leaving town for Thanksgiving have prevented me from getting back to this.  I have pulled everything out of the briefing except the camera direction and still received the exact same crash after the camera focuses, thus after the briefing has played.  I didn't notice anything unusual in either of those files, and the campaign files are up to date.  Here are the FF and Log files just in case:

[spoiler]00:00:00.60: FF: --------------------------------------------------------------------------------
00:00:00.60: FF: Starting FFVTTR
00:00:00.60: FF: Build: SHIP, Version: 1.73396
00:00:00.60: FF: --------------------------------------------------------------------------------
00:00:00.63: FF: CInterpreter::init() completed
00:00:00.63: FF: Py_GetPath(.\System;.\System\PythonLib;.\Data\Missions\Scripts;)
00:00:00.63: FF: Py_GetProgramFullPath(C:\Program Files\Irrational Games\Freedom Force vs The 3rd Reich\ffvt3r.exe)
writing to file gamesessions.log
Startup Plugin 'a_recordsession' imported
Startup Plugin 'pypathpriority' imported
00:00:00.75: FF: CRender: creating DX9 renderer
00:00:00.75: FF: CRender: trying to render in 32 bits
00:00:00.81: FF: DepthStencil is D3DFMT_D24X8 (24 bit z buffer, no depth stencil
00:00:00.89: FF: CResourceTrackerTree: Generating index file Custom_Art_library_characters.dat
00:00:00.95: FF: CResourceTrackerTree: Generating index file Custom_Missions.dat
00:00:01.07: FF: CResourceTrackerTree: Generating index file Custom_Art_library_area_specific.dat
00:00:01.11: FF: Character: mm_neutral, power minute Patriot Counter does not exist
00:00:01.12: FF: Character: soldier, power Burst does not exist
00:00:01.12: FF: Character: alchemiss_neutral, power Arcane Bolt does not exist
00:00:01.13: FF: Character: man_bot_neutral, power manbot Jet Charge does not exist
00:00:01.13: FF: Character: man_bot_neutral, power manbot Remote Energy Field does not exist
00:00:02.12: FF: CInterpreter::init() completed
00:00:02.12: FF: Py_GetPath(.\System;.\System\PythonLib;.\Data\Missions\Scripts;C:\Documents and Settings\Owner\Local Settings\Application Data\Irrational Games\Freedom Force vs the 3rd Reich\temp;C:\Program Files\Irrational Games\Freedom Force vs The 3rd Reich\.\DCUG\missions\scripts;)
00:00:02.12: FF: Py_GetProgramFullPath(C:\Program Files\Irrational Games\Freedom Force vs The 3rd Reich\ffvt3r.exe)
Startup Plugin 'a_recordsession' imported
Startup Plugin 'pypathpriority' imported
00:00:15.53: FF: CSaveGameMgr::readGameType - no gametype found in save, using campaign
00:00:16.15: FF: CInterpreter::init() completed
00:00:16.15: FF: Py_GetPath(.\System;.\System\PythonLib;.\Data\Missions\Scripts;C:\Documents and Settings\Owner\Local Settings\Application Data\Irrational Games\Freedom Force vs the 3rd Reich\temp;C:\Program Files\Irrational Games\Freedom Force vs The 3rd Reich\.\DCUG\missions\scripts;)
00:00:16.15: FF: Py_GetProgramFullPath(C:\Program Files\Irrational Games\Freedom Force vs The 3rd Reich\ffvt3r.exe)
00:00:16.16: FF: CMission::init(02_hawkman_gg_b_factory, Missions\02_hawkman_gg_b_factory\base.dat)
00:00:16.25: FF: CMission::loadScript(Missions\02_hawkman_gg_b_factory\base.py)
00:00:17.62: FF: CRender: creating DX9 renderer
00:00:17.62: FF: CRender: trying to render in 32 bits
00:00:17.62: FF: destroying font resources
00:00:17.73: FF: Recreating font resources
00:00:17.73: FF: DepthStencil is D3DFMT_D24X8 (24 bit z buffer, no depth stencil
00:00:17.77: FF: initializing physics
00:00:18.07: FF: Terrain contains geometry under the root node.  It will not be chunked correctly for lighting.
00:00:18.43: FF: ERROR: CRpgSystem::patchRPGABitSet, thanagarian_soldier has unknown attribute thanagarian
00:00:18.94: FF: ERROR: CRpgSystem::patchRPGABitSet, thanagarian_soldier has unknown attribute thanagarian
00:00:18.95: FF: ERROR: CRpgSystem::patchRPGABitSet, thanagarian_soldier has unknown attribute thanagarian
00:00:18.95: FF: ERROR: CRpgSystem::patchRPGABitSet, thanagarian_soldier has unknown attribute thanagarian
00:00:19.14: FF: ERROR: CRpgSystem::patchRPGABitSet, andar_pul has unknown attribute thanagarian
00:00:19.70: FF: ERROR: CRpgSystem::patchRPGABitSet, thanagarian_soldier has unknown attribute thanagarian
00:00:19.71: FF: ERROR: CRpgSystem::patchRPGABitSet, thanagarian_soldier has unknown attribute thanagarian
00:00:19.71: FF: ERROR: CRpgSystem::patchRPGABitSet, thanagarian_soldier has unknown attribute thanagarian
00:00:19.72: FF: ERROR: CRpgSystem::patchRPGABitSet, hawkgirl_gun has unknown attribute thanagarian
00:00:20.07: FF: ERROR: CRpgSystem::patchRPGABitSet, hawkman_gun has unknown attribute thanagarian
00:00:20.49: FF: ERROR: CRpgSystem::patchRPGABitSet, thanagarian_soldier has unknown attribute thanagarian
00:00:20.49: FF: Warning:  Throwable object screens_base has negative mass
00:00:20.69: FF: Warning:  Throwable object screens_base has negative mass
00:00:22.54: FF: CPathNodeList::preprocess: 0 nodes
00:00:22.54: FF: CPathNodeList::preprocess: 0 nodes
00:00:22.67: FF: GEOMETRY COUNTER AT 7970
[/spoiler]

:EDITED to remove the errors relating to FFX attributes not being mapped or something.  Since it listed just about every attribute, I assume it wasn't pertinent. 

The campaignlog:

[spoiler]'prestigeTotal=299'
'added -1000:total=-701'
'prestigeTotal=108'
'added 200:total=308'
'added 240:total=548'
'added 240:total=788'
'added 180:total=968'
'added 120:total=1088'
'added 160:total=1248'
'added 240:total=1488'
'added 180:total=1668'
'added 180:total=1848'
'added 280:total=2128'
'added 280:total=2408'
'added -1000:total=1408'
'added 200:total=1608'
'added 180:total=1788'
'added 160:total=1948'
'added 180:total=2128'
'added 200:total=2328'
'added 180:total=2508'
'added 160:total=2668'
'added 120:total=2788'
'added 180:total=2968'
'added 241:total=3209'
'added 240:total=3449'
'added 180:total=3629'
'added 220:total=3849'
'added 180:total=4029'
'added 240:total=4269'
'added 180:total=4449'
'added 160:total=4609'
'added 120:total=4729'
'added 120:total=4849'
'added 180:total=5029'
'added 140:total=5169'
'added 140:total=5309'
'added 260:total=5569'
'added 280:total=5849'
'added 280:total=6129'
'added 350:total=6479'
'added -2000:total=4479'
'added 2000:total=6479'
'added 180:total=6659'
'added 280:total=6939'
'added 300:total=7239'
'added 200:total=7439'
'added 181:total=7620'
'added 362:total=7982'
'added 181:total=8163'
'added 200:total=8363'
'ffx_grenade_char:payback=2026'
'new recruit(ffx_grenade_char): cost=2026 total=-2026'
'new recruit(ffx_fawkes_char): cost=985 total=-3011'
'added 240:total=5592'
'added 160:total=5752'
'added 120:total=5872'
'added 160:total=6032'
'added 120:total=6152'
'added 240:total=6392'
'added 302:total=6694'
'added -1000:total=5694'
'added 1000:total=6694'
'added 300:total=6994'
'added 200:total=7194'
'added 300:total=7494'
'added 240:total=7734'
'added 300:total=8034'
'added 120:total=8154'
'added 250:total=8404'
'added 200:total=8604'
'added -1000:total=7604'
'added 120:total=7724'
'added 160:total=7884'
'added 120:total=8004'
'added 200:total=8204'
'added 240:total=8444'
'added 360:total=8804'
'added 180:total=8984'
'added 240:total=9224'
'added 200:total=9424'
'added 200:total=9624'
'added 240:total=9864'
'added 120:total=9984'
'added -2000:total=7984'
'added 300:total=8284'
'added 300:total=8584'
'added 240:total=8824'
'added 240:total=9064'
'added 240:total=9304'
'added 181:total=9485'
'added 302:total=9787'
'prestigeTotal=59'
'added 160:total=219'
'added 240:total=459'
'added 180:total=639'
'added 180:total=819'
'added 180:total=999'
'added 180:total=1179'
'added 280:total=1459'
'added 210:total=1669'
'added 140:total=1809'
'added 210:total=2019'
'added 210:total=2229'
'added 2000:total=4229'
'added 280:total=4509'
'added 160:total=4669'
'added 180:total=4849'
'added 240:total=5089'
'added 160:total=5249'
'added 240:total=5489'
'added -1000:total=4489'
'added -1000:total=3489'
'added 200:total=3689'
'added 280:total=3969'
'added 180:total=4149'
'added 180:total=4329'
'added 280:total=4609'
'added 240:total=4849'
'added 120:total=4969'
'added 180:total=5149'
'added 200:total=5349'
'added 180:total=5529'
'added 180:total=5709'
'added 240:total=5949'
'added 300:total=6249'
'added 300:total=6549'
'added 180:total=6729'
'added 200:total=6929'
'added 240:total=7169'
'added 180:total=7349'
'added 240:total=7589'
'added 240:total=7829'
'added 180:total=8009'
'added 160:total=8169'
'added 240:total=8409'
'added 120:total=8529'
'added 120:total=8649'
'added 302:total=8951'
'added 240:total=9191'
'added 302:total=9493'
'new recruit(ffx_grenade_char): cost=2026 total=-942'
'new recruit(ffx_zapgun_char): cost=3665 total=-4607'
'added 200:total=4002'
'added 200:total=4202'
'ffx_grenade_char:payback=2026'
'ffx_zapgun_char:payback=3665'
'added 300:total=4502'
'added 1000:total=5502'
'added 360:total=5862'
'added 200:total=6062'
'added 250:total=6312'
'added 120:total=6432'
'added 120:total=6552'
'added 180:total=6732'
'added 300:total=7032'
'added 180:total=7212'
'added 300:total=7512'
'added 160:total=7672'
'added -1000:total=6672'
'added -1000:total=5672'
'added 240:total=5912'
'added 160:total=6072'
'added 240:total=6312'
'added 120:total=6432'
'added 240:total=6672'
'added 160:total=6832'
'added 240:total=7072'
'added 160:total=7232'
'added 240:total=7472'
'added 200:total=7672'
'added 120:total=7792'
'added 120:total=7912'
'added 180:total=8092'
'added 120:total=8212'
'added 240:total=8452'
'added 200:total=8652'
'added 360:total=9012'
'added -2000:total=7012'
'added 320:total=7332'
'added 362:total=7694'
'added 200:total=7894'
'added 180:total=8074'
'added 70:total=8144'
'added 260:total=8404'
'added 260:total=8664'
'added 200:total=8864'
'added 210:total=9074'
'added 240:total=9314'
'added 360:total=9674'
'added 210:total=9884'
'added 160:total=10044'
'added 286:total=10330'
'added -2000:total=8330'
'added 214:total=8544'
'added 360:total=8904'
'added 300:total=9204'
'added 240:total=9444'
'added 260:total=9704'
'added 300:total=10004'
'added -2000:total=8004'
'added 402:total=8406'
'added 210:total=8616'
'added 180:total=8796'
'added 260:total=9056'
'added 120:total=9176'
'added 160:total=9336'
'added 181:total=9517'
'added 200:total=9717'
'added 160:total=9877'
'added 160:total=10037'
'added 362:total=10399'
'added 160:total=10559'
'added 200:total=10759'
'added 260:total=11019'
'added 210:total=11229'
'added 120:total=11349'
'added 181:total=11530'
'added 200:total=11730'
'added -2000:total=9730'
'added 302:total=10032'
'added 120:total=10152'
'added 240:total=10392'
'added 461:total=10853'
'ffx_zapgun_char:payback=3665'[/spoiler]
Title: Re: EZScript Comics
Post by: M25 on December 02, 2008, 03:55:21 PM
It might be the campaign.dat file.  You can try overwriting the campain.dat file with a 'clean' version from the game's data directory or from ffx3 and then re-add your missions.   I find that leaving the existing campaign mission entries alone and simply adding new missions to the top of the list can fix strange crashes.
Title: Re: EZScript Comics
Post by: BentonGrey on December 04, 2008, 05:57:57 PM
Its working, its working!  Hurrah!  Ha, thanks M, you'll never guess what the problem was.  You know how, in the campaign tab you have to select a team max for the different missions?  So...that defaults to zero....which apparently causes a crash to desktop when the mission tries to load....yep, another shinning moment for Grey.  Ha, anyway, it seems to be working fine now!
Title: Re: EZScript Comics
Post by: M25 on December 04, 2008, 07:03:07 PM
I'm just glad you figured it out!  Crashes to desktop with no error messages are truly frustrating.

At any rate, I didn't know about that one.  I'll have to make a note for future reference.
Title: Re: EZScript Comics
Post by: BentonGrey on December 04, 2008, 08:17:54 PM
Ha, yeah, stuff like that must be a bear to diagnose.  Those simple things that you just don't really think about...well, they're my forte. ;)
Title: Re: EZScript Comics
Post by: BentonGrey on December 05, 2008, 11:54:07 AM
Howdy guys, everything is still working well (which is awesome), but I was hoping that y'all could offer me some advice.  I'm working on the final mission of MiS, and I'm trying to make it interesting.  What I have in mind is that the villains spaceship is going to escape, and you have to reach it and prevent their escape.  The villains have place several turrets, having roving patrols, and tons of guards.  There is a time limit (at the moment I'm using a Disarm Bomb encounter), and what I'd LIKE to happen, is for the turrets+guards be too much for the heroes to handle, so you need to go find the power source for the guns.  Once you do, you blow it up.  You should ALSO have the option of finding the portable generator that is powering the ship up, and smashing it to give you extra time.  I'd like for one of these things to also be able to draw off some of the guards from the ship (maybe smashing the generator), but I'm not entirely sure how to do all of this.  Now, the turrets are done easily enough with a switchable power trap, but I'd LIKE to have them all work on the same switch, which I don't believe is possible.  It's minor enough that I'm not terribly worried about it.  I have NO idea how to make a timer reset, or gain more time though, nor how to trigger enemies moving from one location to another.

:EDIT: Okay, I think I've figured my way through it, but I will have to test to be sure.

:EDIT2: I still can't figure out how to modify the timer....soooo....yeah.
Title: Re: EZScript Comics
Post by: BentonGrey on December 10, 2008, 09:33:47 PM
Well, I think I'm going to give up on the idea of trying to reset the timer.  It just seems too complex, and I don't want to mess with it anymore.  Anyway, on an unrelated note, I am getting strange CTDs with missions involving talking heads.  The first Hawkman mission is doing this after I set it up to work with talking heads, but so is the On Patrol example mission when I use my DC built-ins.  All character involved have the default head.nif, but for some reason, some of them are crashing the game, while others are not.  I was trying to let off some steam by taking the Aqua-family into the RR, and several enemy encounters played fine (Black Manta, The Shark, The Scavenger, and Jaffar), but one of the other members of the Deep Six (I believe it is Gole, from the script.log) crashed the game when he got into cutscene range.  The Hawkman mission behaved similarly, crashing as soon as a CS was to play.  Here is the script.log from the RR session.  I can't find any error notices, but something is obviously going wrong:

[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 1228972121.812000
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*
MLOG_Init(keepRunningModules=0): starting up
mlogreader.MLOG_Init: current mission = 'CITY LANDMARKS'
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
numberStr=67
storing hero_0: id_1,-67
numberStr=68
storing hero_1: id_2,-68
numberStr=69
storing hero_2: id_3,-69
numberStr=70
storing hero_3: id_4,-70
MISSION: On Post Init... complete; starting story.
AI: SetupAI() - setting ai for hero_0 ('aquaman_classic')
GROUP: 'team1' set to []
GROUP: 'hero_0' added to group 'team1'
GROUP: 'team1' set to ['hero_0']
*SNIP*
AI: AISetRunning hero_0 to 0
AI: AISetRunning hero_1 to 0
AI: AISetRunning hero_3 to 0
AI: AISetRunning hero_2 to 0
clearCarrierRegistration: clearing attribute 'hextomentaldamagem25obj_8' for destroyed object 'mapinfocaliper0'
clearCarrierRegistration: clearing attribute 'hextomentaldamagem25obj_8' for destroyed object 'mapinfocaliper1'
clearCarrierRegistration: clearing attribute 'hextomentaldamagem25obj_8' for destroyed object 'mapinfocaliper2'
clearCarrierRegistration: clearing attribute 'hextomentaldamagem25obj_8' for destroyed object 'mapinfocaliper3'
AI: AISetRunning m25obj_2 to 0
AI: AISetRunning m25obj_4 to 0
initAttribsForChar: working on civilian_male_1 (civilian_male)
initAttribsForChar: working on hero_0 (aquaman_classic)
initAttribsForChar (aquaman_classic): looking at attribute atlantian
execInitAttrib: init disciplined attribute inside ['atlantian', 'disciplined', 'heavylifter', 'superleaper', 'fasthealing', 'grimresolve', 'levelheaded'] combo
   on hero_0 of template custom_template_67 (aquaman_classic)
execInitAttrib: init heavylifter attribute inside ['atlantian', 'disciplined', 'heavylifter', 'superleaper', 'fasthealing', 'grimresolve', 'levelheaded'] combo
   on hero_0 of template custom_template_67 (aquaman_classic)
execInitAttrib: init superleaper attribute inside ['atlantian', 'disciplined', 'heavylifter', 'superleaper', 'fasthealing', 'grimresolve', 'levelheaded'] combo
   on hero_0 of template custom_template_67 (aquaman_classic)
execInitAttrib: init fasthealing attribute inside ['atlantian', 'disciplined', 'heavylifter', 'superleaper', 'fasthealing', 'grimresolve', 'levelheaded'] combo
   on hero_0 of template custom_template_67 (aquaman_classic)
execInitAttrib: init grimresolve attribute inside ['atlantian', 'disciplined', 'heavylifter', 'superleaper', 'fasthealing', 'grimresolve', 'levelheaded'] combo
   on hero_0 of template custom_template_67 (aquaman_classic)
execInitAttrib: init levelheaded attribute inside ['atlantian', 'disciplined', 'heavylifter', 'superleaper', 'fasthealing', 'grimresolve', 'levelheaded'] combo
   on hero_0 of template custom_template_67 (aquaman_classic)
initAttribsForChar (aquaman_classic): looking at attribute jumper
initAttribsForChar (aquaman_classic): looking at attribute hirsute
initAttribsForChar (aquaman_classic): looking at attribute danger sense
initAttribsForChar (aquaman_classic): looking at attribute solid skeleton
initAttribsForChar: working on hero_1 (aqualad)
initAttribsForChar (aqualad): looking at attribute jumper
initAttribsForChar (aqualad): looking at attribute atlantian
execInitAttrib: init disciplined attribute inside ['atlantian', 'disciplined', 'heavylifter', 'superleaper', 'fasthealing', 'grimresolve', 'levelheaded'] combo
   on hero_1 of template custom_template_68 (aqualad)
execInitAttrib: init heavylifter attribute inside ['atlantian', 'disciplined', 'heavylifter', 'superleaper', 'fasthealing', 'grimresolve', 'levelheaded'] combo
   on hero_1 of template custom_template_68 (aqualad)
execInitAttrib: init superleaper attribute inside ['atlantian', 'disciplined', 'heavylifter', 'superleaper', 'fasthealing', 'grimresolve', 'levelheaded'] combo
   on hero_1 of template custom_template_68 (aqualad)
execInitAttrib: init fasthealing attribute inside ['atlantian', 'disciplined', 'heavylifter', 'superleaper', 'fasthealing', 'grimresolve', 'levelheaded'] combo
   on hero_1 of template custom_template_68 (aqualad)
execInitAttrib: init grimresolve attribute inside ['atlantian', 'disciplined', 'heavylifter', 'superleaper', 'fasthealing', 'grimresolve', 'levelheaded'] combo
   on hero_1 of template custom_template_68 (aqualad)
execInitAttrib: init levelheaded attribute inside ['atlantian', 'disciplined', 'heavylifter', 'superleaper', 'fasthealing', 'grimresolve', 'levelheaded'] combo
   on hero_1 of template custom_template_68 (aqualad)
initAttribsForChar (aqualad): looking at attribute hirsute
initAttribsForChar (aqualad): looking at attribute danger sense
initAttribsForChar (aqualad): looking at attribute solid skeleton
initAttribsForChar: working on civilian_female_2 (civilian_female)
initAttribsForChar: working on civilian_female_4 (civilian_female)
initAttribsForChar: working on civilian_male_2 (civilian_male)
initAttribsForChar: working on civilian_female_1 (civilian_female)
initAttribsForChar: working on civilian_female_3 (civilian_female)
initAttribsForChar: working on civilian_male_3 (civilian_male)
initAttribsForChar: working on civilian_male_4 (civilian_male)
initAttribsForChar: working on hero_3 (mera)
initAttribsForChar (mera): looking at attribute hirsute
initAttribsForChar (mera): looking at attribute solid skeleton
initAttribsForChar (mera): looking at attribute atlantian
execInitAttrib: init disciplined attribute inside ['atlantian', 'disciplined', 'heavylifter', 'superleaper', 'fasthealing', 'grimresolve', 'levelheaded'] combo
   on hero_3 of template custom_template_70 (mera)
execInitAttrib: init heavylifter attribute inside ['atlantian', 'disciplined', 'heavylifter', 'superleaper', 'fasthealing', 'grimresolve', 'levelheaded'] combo
   on hero_3 of template custom_template_70 (mera)
execInitAttrib: init superleaper attribute inside ['atlantian', 'disciplined', 'heavylifter', 'superleaper', 'fasthealing', 'grimresolve', 'levelheaded'] combo
   on hero_3 of template custom_template_70 (mera)
execInitAttrib: init fasthealing attribute inside ['atlantian', 'disciplined', 'heavylifter', 'superleaper', 'fasthealing', 'grimresolve', 'levelheaded'] combo
   on hero_3 of template custom_template_70 (mera)
execInitAttrib: init grimresolve attribute inside ['atlantian', 'disciplined', 'heavylifter', 'superleaper', 'fasthealing', 'grimresolve', 'levelheaded'] combo
   on hero_3 of template custom_template_70 (mera)
execInitAttrib: init levelheaded attribute inside ['atlantian', 'disciplined', 'heavylifter', 'superleaper', 'fasthealing', 'grimresolve', 'levelheaded'] combo
   on hero_3 of template custom_template_70 (mera)
initAttribsForChar (mera): looking at attribute guardianp
execInitAttrib: init guardianp attribute
   on hero_3 of template custom_template_70 (mera)
initAttribsForChar (mera): looking at attribute summoner4
execInitAttrib: init summoner4 attribute
   on hero_3 of template custom_template_70 (mera)
initAttribsForChar: working on hero_2 (aquagirl)
initAttribsForChar (aquagirl): looking at attribute hirsute
initAttribsForChar (aquagirl): looking at attribute danger sense
initAttribsForChar (aquagirl): looking at attribute solid skeleton
initAttribsForChar (aquagirl): looking at attribute jumper
initAttribsForChar (aquagirl): looking at attribute atlantian
execInitAttrib: init disciplined attribute inside ['atlantian', 'disciplined', 'heavylifter', 'superleaper', 'fasthealing', 'grimresolve', 'levelheaded'] combo
   on hero_2 of template custom_template_69 (aquagirl)
execInitAttrib: init heavylifter attribute inside ['atlantian', 'disciplined', 'heavylifter', 'superleaper', 'fasthealing', 'grimresolve', 'levelheaded'] combo
   on hero_2 of template custom_template_69 (aquagirl)
execInitAttrib: init superleaper attribute inside ['atlantian', 'disciplined', 'heavylifter', 'superleaper', 'fasthealing', 'grimresolve', 'levelheaded'] combo
   on hero_2 of template custom_template_69 (aquagirl)
execInitAttrib: init fasthealing attribute inside ['atlantian', 'disciplined', 'heavylifter', 'superleaper', 'fasthealing', 'grimresolve', 'levelheaded'] combo
   on hero_2 of template custom_template_69 (aquagirl)
execInitAttrib: init grimresolve attribute inside ['atlantian', 'disciplined', 'heavylifter', 'superleaper', 'fasthealing', 'grimresolve', 'levelheaded'] combo
   on hero_2 of template custom_template_69 (aquagirl)
execInitAttrib: init levelheaded attribute inside ['atlantian', 'disciplined', 'heavylifter', 'superleaper', 'fasthealing', 'grimresolve', 'levelheaded'] combo
   on hero_2 of template custom_template_69 (aquagirl)
*SNIP*
---combos found
[]
-----------------
mobjdummy_2
['flier', 'ephemeral']
-----------------
mobjdummy_2
[]
AI: SetupAI() - setting ai for mobjdummy_2 ('water_minion')
GOAL: Adding goal Goal_HuntEnemy(1009,20) to character mobjdummy_2
plasmatic: obj=mobjdummy_2 char=hero_3 cost=9
initAttribsForChar: working on mobjdummy_2 (water_minion)
initAttribsForChar (water_minion): looking at attribute flier
initAttribsForChar (water_minion): looking at attribute ephemeral
execInitAttrib: init ephemeral attribute
   on mobjdummy_2 of template water_minion (water_minion)
ENCOUNTER: PlayEncCutscene(): 'enroutebantercs' : None
ENCOUNTER: PlayCutsceneFromList(): None : None ... []
AI: m25obj_6:'jaffar' power effect_m25ai_powerup using remedy
AI: Had to recover AI for m25obj_8
AI: m25obj_8 overpowers his/her/its attack!
AI: m25obj_8:'the_shark' shark attack attack on 'hero_2'
AI: m25obj_8:'the_shark' shark feeding frenzy attack on 'hero_0'
AI: m25obj_6:'jaffar' jaffar combo attack on 'hero_1'
ENCOUNTER: PlayEncCutscene(): 'bantercs' : None
ENCOUNTER: PlayCutsceneFromList(): None : None ... []
AI: m25obj_6:'jaffar' jaffar punch attack on 'hero_1'
AI: m25obj_8 overpowers his/her/its attack!
AI: m25obj_8:'the_shark' shark feeding frenzy attack on 'hero_2'
hero_2 resisted the primary state attack!
ENCOUNTER: PlayEncCutscene(): 'bantercs' : None
ENCOUNTER: PlayCutsceneFromList(): None : None ... []
AI: m25obj_8:'the_shark' shark attack attack on 'hero_2'
AI: m25obj_6 overpowers his/her/its attack!
AI: m25obj_6:'jaffar' jaffar combo attack on 'hero_1'
AI: m25obj_8:'the_shark' shark feeding frenzy attack on 'mobjdummy_2'
AI: m25obj_8: ('the_shark') random move on inability to act.
AI: m25obj_8:'the_shark' shark feeding frenzy attack on 'hero_2'
Traceback (innermost last):
 File "C:\Program Files\Irrational Games\Freedom Force vs The 3rd Reich\.\DCUG\missions\scripts\skXMapInfo.py", line 685, in MapInfo_CheckObjects2
   Object_UpdateGridPos (ms)
 File "C:\Program Files\Irrational Games\Freedom Force vs The 3rd Reich\.\DCUG\missions\scripts\skXMapInfo.py", line 565, in Object_UpdateGridPos
   if ts not in ff.MapInfo [maGrid
Title: Re: EZScript Comics
Post by: M25 on December 11, 2008, 11:13:18 AM
The talking head crashes don't give error messages, unfortunately. 

For the characters that are causing the problem, make sure each has an entry in the resources tab of FFEdit called animportrait_mycharactername that points to the portrait.  Make sure their names aren't too long, or the entry won't work correctly.  I think you get 15 characters or so.

Also make sure there are no  :ff: heads in the character's mesh directory.  That will crash the game as well.


Sorry I missed the question about the timer.  No, it can't be reset at this time.

Title: Re: EZScript Comics
Post by: BentonGrey on December 11, 2008, 05:09:16 PM
No worries about the timer question.  I figured I was shooting for the moon there.  Alright, now NONE of my characters have entries in the Resource tab, do I have to put them in by hand?  I thought all you had to do was drop the default head.nif in their folder.  I'll go ahead and give this a shot by hand for the characters at issue, and make sure that solves the problem.
Title: Re: EZScript Comics
Post by: M25 on December 12, 2008, 08:36:07 AM
If you are using built-in characters, then yes, you need animportrait_ entries for the heads or they will crash randomly.  EZ script fakes these entries for .hero files so that the game works, but it can't do the same for built-ins.

Title: Re: EZScript Comics
Post by: BentonGrey on December 12, 2008, 08:54:01 AM
Holy Hannah!  Ha, I had no idea about that.  Well, I'll just have to anim-portrait all of the guys for the three different campaigns.  Thanks M, that answers all my questions about this problem!
Title: Re: EZScript Comics
Post by: BentonGrey on December 13, 2008, 06:29:08 PM
Okey doke...so, I've been adding in tons of animated portrait entries (better than writing my paper, at least) and went to test it just a moment ago.  I didn't get a crash to desktop this time, instead I got the following: "alert: CTalkingHead::init, NIF has no main object, c:\program files\irrational games\freedom force vs the 3rd reich\dcug\art\custom_characters\d6_slig_thvlite\skins\standard\portrait.tga.  Then it CTD'ed.  Now, he has his portrait and his head.nif, both in the right place.  There are no FF1 heads in his file.  His entry under the resources tab is correct...I haven't a clue what happened.
Title: Re: EZScript Comics
Post by: Previsionary on December 13, 2008, 10:04:31 PM
Quote from: BentonGrey on December 13, 2008, 06:29:08 PM
"alert: CTalkingHead::init, NIF has no main object, c:\program files\irrational games\freedom force vs the 3rd reich\dcug\art\custom_characters\d6_slig_thvlite\skins\standard\portrait.tga. 

It seems like you have the entry pointing to a TGA and not the actual HEAD.NIF which is why it crashed. Also, I'm gonna tell you now, the way you have the entries set up based on the entry above won't work with everyone. Might want to tackle it early and reduce that absolute to a relative:

Quotecustom_characters\d6_slig_thvlite\head.nif

Yours would be similar to that, I reckon. Can't say without testing it meself.
Title: Re: EZScript Comics
Post by: GogglesPizanno on December 13, 2008, 10:18:39 PM
I'll second that.
Using relative paths (for all assets in FFEdit) will solve many a possible problems when you release it...
Title: Re: EZScript Comics
Post by: BentonGrey on December 13, 2008, 10:25:06 PM
Rrrrr...more work.  I do need to redo all of my templates, I suppose.  Alright, M said to point the thing to a portrait, but I should point it to the head.nif?
Title: Re: EZScript Comics
Post by: Previsionary on December 13, 2008, 10:34:14 PM
yessir. I'm shocked! You didn't check the already established entries before doing all that work? Oh, Benton, this is probably my fault for cursing you a few weeks back. :P
Title: Re: EZScript Comics
Post by: GogglesPizanno on December 13, 2008, 11:10:52 PM
Quote from: Previsionary on December 13, 2008, 10:34:14 PM
...this is probably my fault for cursing you a few weeks back. :P

Ha HA!
He finally admits it...
My work here is done.

Yeah the anim_portrait has to point to a Head nif, because the head is the actual 3d animated mesh that gets displayed during talking scenes. What I think M25 was referring to, was that EZScript uses Renegades head.nif file (even though it appears 2d and portrait like, it actually is a 3d mesh) for hero files that don't have a specific head.nif file themselves in their mesh directory.
Title: Re: EZScript Comics
Post by: BentonGrey on December 14, 2008, 08:06:49 AM
*Kills Prev* See!  It is all his fault!  You know, I should make you do all this work.  Finish my mod for me!

Yeah, thanks Goggles, at least I know now.  I should have realized that, but oh well, I've only done a few dozen of those things, so it won't take too long to fix.
Title: Re: EZScript Comics
Post by: Previsionary on December 14, 2008, 08:17:18 AM
How heroic of you, Benton. Just like that Aquaman you love.

I skirt the line between good and evil, what's your excuse? *curses you...again*

This is my fault also. BTW, Shirley, your concert sucks out loud hardcore!

*disappears in a...*yawn*...flurry of aquaman pictures with "pathetic" written diagonally across them*

good luck, sir Benton.