Freedom Reborn

Freedom Force Forums => Scripting Forum => Topic started by: BentonGrey on December 31, 2008, 01:36:37 AM

Title: EZScript Comics Vol. 2
Post by: BentonGrey on December 31, 2008, 01:36:37 AM
Howdy once again guys!  I'm back in town, which means I'm back to work on the DCUG.  I'm afraid I've hit something of a wall with the final MiS mission, so I could use some help.  A few of the encounters seem to be working alright, but I've got various bugs.  I've managed to solve a few, but they had friends.  Here is the script:

Spoiler
#Heroes: Hawkman and Hawkgirl
#Map: midway city

Story: hawkman3

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

Encounter: Begin
Type: Cutscene
Next: Escape1, Turret1, Turret2, Turret3, Turret4, Boss1, Stash1, Guard1

Start Cutscene:
Fade for 2 seconds
Narrator says, "Flying at top speed the two Thanagarian peace officers arrive at Byth's landing site in moments."
Camera on hawkgirl
Unfade for 3 seconds
hawkgirl plays animation ranged
hawkgirl says, "There's his ship! We need to disable it before he has a chance to escape."
hawkman turns to hawkgirl
hawkman says, "Hmm...it looks like they are just starting to warm up the engines...I imagine we've got about five minutes to stop them before they take off. We'll need to take out his pickets so we can sneak up on the ship itself."

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

Encounter: Escape1
Type: Disarm Bomb
Villains: than_kasta, than_kasta, than_kasta,
Bomb: than_spaceship
Time: 200
Marker: ship1
Next: None

Alert Cutscene:
Camera on Villain1
hawkman says, "Look out! They've posted defensive systems all over!"
hawkgirl says, "We'll never be able to cut our way through them...how are we going to reach the ship?"
Camera on hawkman
hawkman says, "We can try and find their power sources and shut them down..."
hawkgirl says, "Do we have time for that?"
hawkman says, "Whether we do or not, we certainly won't be able to catch them if we're reduced to so much ash!"
Red Arrow on Villain1

Start Cutscene:
Camera on Villain1
Villain1 turns to hawkman
Villain1 says, "Arghhh! Won't you flyers ever stop chasing me?"
Villain1 plays animation melee
Camera on hawkman
hawkman turns to Villain1
hawkman says, "Absolutely, when you're safe in a shock-cell!"
Camera on Villain1
Villain1 says, "I'll see you dead first! When I returnt to Thanagar it will be as a conqueror, not as a prisoner!"
Camera on hawkgirl
hawkgirl says, "We'll see..."
Villain1 says, "Kill them!"

Bomb Exploding Cutscene:
Camera on ship1
Play effect effect_generator_destroy at ship1
hawkman says, "No! The ship is taking off!"
hawkgirl says, "We'll never catch them now!"

Disarm Bomb Cutscene:
Camera on hawkman
hawkman moves to ship2
hawkman says, "Just a few delicate adjustments..."
hawkman plays animation melee_mace_b
Play effect effect_skyking_adjustsuit at hawkman
hawkman says, "That should do it!"

Bomb Disarmed Cutscene:
Camera on hawkman
hawkman says, "That ship isn't going anywhere anytime soon!"
hawkgirl says, "Good, then we've trapped these shapeshifters here and all we need to do is mop them up!"

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

Encounter: Turret1
Type: Switchable Power Trap
Item: turret_factory
Trap Power: thanagar blaster
Switches: generator
Marker: gun1
Next: None

End Cutscene:
Camera on hawkman
hawkman says, "That's one down."

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

Encounter: Turret2
Type: Switchable Power Trap
Item: turret_factory
Trap Power: thanagar blaster
Switches: generator
Marker: gun2
Next: None

End Cutscene:
Camera on hawkman
hawkgirl says, "One less turret."

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

Encounter: Turret3
Type: Switchable Power Trap
Item: turret_factory
Trap Power: thanagar blaster
Switches: generator
Marker: gun3
Next: None

End Cutscene:
Camera on hawkman
hawkman says, "Another gone."

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

Encounter: Turret4
Type: Switchable Power Trap
Item: turret_factory
Trap Power: thanagar blaster
Switches: generator
Marker: gun4
Next: None

End Cutscene:
Camera on hawkman
hawkman says, "I won't be sorry to see the end of these!"

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

Encounter: Turret5
Type: Fight
Villains: than_kasta, than_kasta, than_kasta
Marker: gun5
Next: None

Start Cutscene:
Camera on hawkman
hawkman turns to Villain1
hawkman says, "Aha! It looks like we've found the power sources for those guns!"
hawkgirl says, "Looks like they weren't expecting anyone to find it, the guard is light."
hawkman says, "All the better! Let's get those things deactivated before Byth can slip away again."
Camera on Villain1
Villain1 turns to hawkman
Villain1 plays animation melee2
Villain1 says, "Lookout!"
Villain2 turns to hawkman
Villain3 turns to hawkgirl
Villain1 says, "The flyers have found us! Protect the power sources, the guns must not be deactivated!"

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

Encounter: Boss1
Type: Interrogation
Villains: than_staghal
Marker: ship3
Next: None

Start Cutscene:
Camera on Villain1
Villain1 turns to hawkman
Villain1 says, "Arghhh! Won't you flyers ever stop chasing me?"
Villain1 plays animation melee
Camera on hawkman
hawkman turns to Villain1
hawkman says, "Absolutely, when you're safe in a shock-cell!"
Camera on Villain1
Villain1 says, "I'll see you dead first! When I returnt to Thanagar it will be as a conqueror, not as a prisoner!"
Camera on hawkgirl
hawkgirl says, "We'll see..."
Villain1 says, "Kill them!"

Interrogation Cutscene:
Camera on Villain1
hawkman moves to Villain1
hawkgirl moves to Villain1
hawkman says, "Looks like you've run out of places to run, Rok."
Villain1 says, "Only...only momentarily...this...this is not the end..."
hawkgirl says, "I don't think so. You're headed straight for that electro-cell."
Villain1 says, "Heh...you think you've beaten me? Don't be fools. I'll be welcomed home as a hero...you've just turned me into a martyr for the cause! Thanagar will be great again!"
hawkman says, "It will be much better when both you and your cause are forgotten...in the meantime, keep your mouth shut!"

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

Encounter: Stash1
Type: Fight
Villains: than_kasta, than_kasta
Item: money_bag
Marker: loot1
Next: None

Start Cutscene:
Camera on Villain1
hawkgirl says, "Look, they've got a stash of things they managed to steal from the earth people's city! It looks like they are preparing to transport it to their ship...why take it with them?"
hawkman turns to hawkgirl
hawkman says, "They must be planning on returning once they've escaped to finish the job they started."
Camera on hawkgirl
hawkgirl turns to hawkman
hawkgirl says, "Well, that stuff gives me an idea...you think that if we try and 'liberate' their loot they might call for backup?"
hawkman says, "They might at that...leaving the ship more vulnerable! Let's do it!"
Camera on Villain1
hawkman says, "Hey, ugly! I think you've got some things that don't belong to you..."
Villain1 turns to hawkman
Villain1 says, "The flyers! Call the ship, we need backup!"

End Cutscene:
Camera on hawkgirl
hawkgirl turns to hawkman
hawkgirl says, "Now we just need to avoid the other guards, and we should have a much easier time disabling the ship!"

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

Encounter: Guard1
Type: Fight
Villains: than_kasta, than_kasta, than_kasta, than_kasta, than_kasta, than_kasta
Marker: loot2
Next: None

Start Cutscene:
Camera on Villain2
Villain1 moves to loot2
Villain2 moves to loot2
Villain3 moves to loot2
Villain4 moves to loot2
Villain5 moves to loot2
Villain6 moves to loot2
Camera on hawkman

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


So, here's what is SUPPOSED to happen.  The rocket is REALLY well guarded, so you've got to do one or two things to increase your chances to disable the thing.  Attacking the guys with the loot from the city SHOULD cause most of the troops guarding the rocket to head towards you, since their marker is in the same location, even though they are set to spawn by the rocket.  The Stash1 encounter works, but the baddies by the rocket aren't triggering like they should.  The Turret5 encounter isn't working at all, not even the villains are spawning.  The Boss1 encounter is also being weird, but I think I know why.  I've also got some texture problems.  I'm spawning in the thanagarian ship, which is a vehicle and in that section in the art folder, but it is showing up as mottled black and white.  There is nothing showing up on the script.log.  Any thoughts?
Title: Re: EZScript Comics Vol. 2
Post by: M25 on December 31, 2008, 06:16:23 PM
Turret5 doesn't start because there is no path to it in the story.  I'm guessing you want to start it after the 'begin' encounter

Encounter: Begin
Type: Cutscene
Next: Escape1, Turret1, Turret2, Turret3, Turret4, Boss1, Stash1, Guard1, Turret5

The troops from the rocket aren't moving because getting close to the marker doesn't start an encounter.  The hero has to be near one of the participants in the encounter (the villains, objects, minions, allies, etc.).  You could place one of the villains near the loot2 marker and that will trigger the encounter.


Title: Re: EZScript Comics Vol. 2
Post by: BentonGrey on December 31, 2008, 07:45:32 PM
D'oh!  Man, having another set of eyes is so important for these things...I need to teach Prev. the basics of EZScript and make him proof-read my scripts. :P  Thanks M!

Ahh, I see...I thought that the encounter marker determined the radius.  It should be pretty simple to add another villain over there.  Thanks man!

Also, about the texture issues...anyone have an idea about how I should address them?
Title: Re: EZScript Comics Vol. 2
Post by: BentonGrey on January 01, 2009, 04:16:29 AM
Great, so after shifting gears to test the JLA campaign all the way through, I ran into a CTD bug on the very first freaking mission!  This thing was working fine until I actually campaign-ified it.  So, I've got two issues, and they may be related.  The first combat encounter has two martians, and once gameplay starts, Villain1 does nothing.  He just sits there until you knock him out.  That's when the second issue arises.  I get this message and a CTD: "alert: CTalkingHead::init, NIF has no camera, custom_characters\White_Martian\character.NIF

Here is the script:

Spoiler
Story: My Story

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

Encounter: Wake
Type: Cutscene
Villains: white_martian, white_martian
Allies: astronaut, astronaut, astronaut, astronaut
Marker: astro5

Start Cutscene:
Fade for 2 seconds
Set lighting to sunrise
Villain1 teleports to astro1
Villain2 teleports to astro1
Narrator says, "Mankind has reached for the stars for generations, and now that they have finally achieved the goal of centuries of dreaming, they face greater danger than has ever been known on the tiny bastion of life known as the Earth"
Narrator says, "The first manned mission to Mars was hailed as a great triumph, but as the intrepid astronauts penetrated into the inner recesses of the great red world, something sinister stirred."
Camera on Ally1
Unfade for 2 seconds
Ally1 turns to astro5
Ally1 says, "What's this...this isn't rock, this is some kind of metal. This is an artifact of some kind!"
Ally1 plays animation ranged
Ally2 turns to Ally1
Ally2 says, "Do you know what this means Jones, it means that Mars was inhabited by intelligent life, this blows away an entire decade of research! When we bring back evidence like this, we'll re-write history!"
Ally2 plays animation melee
Shake camera
Camera on Ally1
Ally1 plays animation pain
Ally1 says, "Good heavens, what is that?!"
Fade for 2 seconds
Villain1 teleports to astro5
Villain2 teleports to astro5
Camera on Villain1
Unfade for 2 seconds
Shake camera
Villain1 says, "<We are free, free after untold ages of unwilling slumber!>"
Villain2 says, "<I hunger, it has been too long since we feasted...>"
Villain1 turns to Ally1
Cinematic camera on Villain1 to Ally1
Villain1 says, "<But there is a meal waiting for us...can you not feel the psyhcic energy? It is primative, but it should sate us...for the moment...>"
Ally1 says, "We...uh...we are from earth...we come in peace..."
Camera on Villain1
Villain1 plays animation ranged
Camera on Ally1
Play effect effect_mentor at Ally1
Ally1 says, "Ahhhhhhhhhhhhhh!!!!"
Ally1 plays animation stunned
Fade for 3 seconds

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

Encounter: Wake2
Type: Interrogation
Villains: white_martian, white_martian
Marker: waking1
Next: Predator, Astronaut1, Astronaut2, Astronaut3, Astronaut4

Alert Cutscene:
Camera on Hero1
Unfade for 2 seconds
Hero1 plays animation stunned
Hero1 says, "Wh-what is happening...my meditation cycle should not have ended yet, but some terrible cry cut across my mind..."
Hero1 says, "No! The Evil Ones, have they escaped after all these years? Have I failed in my duty?"
Hero1 plays animation ranged_3
Hero1 says, "I can sense some of them near...if they are all free...there is no way that I may stop them...but I must try, their evil cannot spread!"

Start Cutscene:
Camera on Villain1
Villain1 turns to Villain2
Villain1 says, "Look brothers, it is our jailer, the last of our favorite prey!"
Villain2 turns to Hero1
Villain2 says, "Ahh...I've been looking forward to devouring every last drop of your pshycic energy Manhunter, this will be sweet indeed!"
Hero1 says, "How did you get free, your prison was sealed shut, there is no way you could have escaped!"
Villain2 says, "Perhaps we are more resourceful than you think, Manhunter!"
Hero1 says, "If you will not aid me willingly, I shall rip the answer out of your mind defiler!"
Villain1 plays animation pain
Villain1 says, "Destroy him!"

Interrogation Cutscene:
Camera on Villain1
Hero1 turns to Villain1
Hero1 says, "Now, I shall have my answers, whether you will it or not..."
Hero1 plays animation ranged_3
Play effect effect_mentor at Villain1
Villain1 says, "Argghhh!!"
Camera on Hero1
Hero1 plays animation stunned
Hero1 says, "No! They are all free...all free...what is this? Aliens, treading the dead surface of my world?"
Hero1 says, "So, you parasites plan to rip the life from their world as you have my own? They must be warned!"
Hero1 says, "But first, these alien explorers must be freed, they must take the tale back to their own people...I can sense them nearby...I must save them from the appetites of their captors!"

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

Encounter: Predator
Type: Hunt
Villains: white_martian, white_martian
Next: Predator

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

Encounter: Astronaut1
Type: Rescue Caged
Villains: white_martian, white_martian
Allies: astronaut
Marker: astro1
Next: If Ally Lost: Lose
Next: If Ally Survives: None

Alert Cutscene:
Red Arrow on Ally1

Start Cutscene:
Camera on Villain1
Villain1 turns to Hero1
Villain1 says, "The Manhunter! Destroy him!"

Ally Thanks Hero Cutscene:
Cinematic camera on Ally1 to Hero1
Hero1 turns to Ally1
Ally1 says, "I don't know who you are, but if you're against those...things, then we've got something in common."
Hero1 plays animation area_3
Hero1 says, "More, I fear, than you know...if you wish to save your world, you must escape, go to your ship, I shall aid you if it is within my power."
Ally1 says, "I...I don't know how to thank you..."
Hero1 says, "Go!"

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

Encounter: Astronaut2
Type: Rescue Caged
Villains: white_martian, white_martian
Allies: astronaut
Marker: astro2
Next: If Ally Lost: Lose
Next: If Ally Survives: None

Alert Cutscene:
Red Arrow on Ally1

Start Cutscene:
Camera on Villain1
Villain1 turns to Hero1
Villain1 says, "The Manhunter! Destroy him!"

Ally Thanks Hero Cutscene:
Cinematic camera on Ally1 to Hero1
Hero1 turns to Ally1
Ally1 says, "Y...you're not another one of those things...are you?"
Hero1 plays animation area_2
Hero1 says, "No, but I have no time to explain. I have freed you, but you must escape. Follow your compatriot and flee."
Ally1 says, "Yes, yes, I will...thank you..."

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

Encounter: Astronaut3
Type: Rescue Caged
Villains: white_martian, white_martian
Allies: astronaut
Marker: astro3
Next: If Ally Lost: Lose
Next: If Ally Survives: None

Alert Cutscene:
Red Arrow on Ally1

Start Cutscene:
Camera on Villain1
Villain1 turns to Hero1
Villain1 says, "The Manhunter! Destroy him!"

Ally Thanks Hero Cutscene:
Cinematic camera on Ally1 to Hero1
Hero1 turns to Ally1
Ally1 says, "Noooo! Don't hurt me, I can't take it anymore!"
Hero1 plays animation area_3
Hero1 says, "Be at ease, you ares safe...for the moment. I have rescued you, but you must get out of these catacombs as quickly as you can."
Ally1 says, "Alright, I'll try..."
Hero1 says, "Do not try, you must!"

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

Encounter: Astronaut4
Type: Rescue Caged
Villains: white_martian, white_martian
Allies: astronaut
Marker: astro4
Next: If Ally Lost: Lose
Next: If Ally Survives: None

Alert Cutscene:
Red Arrow on Ally1

Start Cutscene:
Camera on Villain1
Villain1 turns to Hero1
Villain1 says, "The Manhunter! Destroy him!"

Ally Thanks Hero Cutscene:
Cinematic camera on Ally1 to Hero1
Hero1 turns to Ally1
Ally1 says, "You're...different from the ones who took me...what do you want with me?"
Hero1 plays animation area_3
Hero1 says, "I want to help you, and your people. You must escape this place. I will try and buy you the time you need."
Ally1 says, "We owe you a great debt!"
Hero1 says, "Then pay it by surviving!"

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

Encounter: Astronaut5
Type: Fight
Villains: white_martian, white_martian, white_martian
Marker: astro6
Starts when: Astronaut1 at End, Astronaut2 at End, Astronaut3 at End, Astronaut4 at End
Next: End

Alert Cutscene:
Red Arrow on Villain1
Camera on Hero1
Hero1 says, "Now I must escape these catacombs and find some way to seal the rest of the parasites inside..."

Start Cutscene:
Camera on Villain1
Villain1 turns to Hero1
Villain1 says, "Ahh...the Manhunter...you eluded us for centuries during the wars, but we have sensed your presence and your days of troubling us are over!"
Camera on Hero1
Hero1 says, "We shall see, monster, just who's days are at an end!"

End Cutscene:
Camera on Hero1
Hero1 says, "Now I must get to the surface, perhaps there is still time to stop their escape."
Fade for 4 seconds



Now, the white_martian character has an animportrait entry, and as far as I can tell the darn thing is set up correctly, so it SHOULDN'T be that...especially considering the fact that I haven't even configured the mission to use talking heads yet!

:EDIT: Okay, I solved the first problem.  I had called for "animation pain" in the cutscene, which does weird things to characters.  I'm still getting the CTD, though.
Title: Re: EZScript Comics Vol. 2
Post by: Previsionary on January 01, 2009, 04:57:48 AM
Re: Headnif

This is probably the reason you're crashing. Note that your head nif doesn't work and you're calling the martians to talk...so because the head.nif isn't working, you're crashing.

The problem is pretty simple. Look at what you're calling in the head.nif area.

CTalkingHead::init, NIF has no camera, custom_characters\White_Martian\character.NIF

You need to call the "head.nif" not "character.nif" :P

custom_characters\White_Martian\head.NIF
Title: Re: EZScript Comics Vol. 2
Post by: BentonGrey on January 01, 2009, 06:23:15 AM
D'oh!  Thanks for pointing out the obvious, Prev!  I guess that's why I pay you the big bucks. ^_^
Title: Re: EZScript Comics Vol. 2
Post by: BentonGrey on January 01, 2009, 06:07:12 PM
Okay, things are about par for the course....JLA#1 is working perfectly again, and JLA#2 has problems.  The final cutscene isn't wanting to play, but I have a readout from the script.log that might explain it to someone more savy than I.  Here is the log entry:

Spoiler
ENCOUNTER: Encounter ended 1 with ['end', 'villains gone', 'no allies']
ERROR: problem with return function EncCustom_CleanUp(1, ['end', 'villains gone', 'no allies'])
ERROR: GroupMemberKO problem with registered function EncMinionKO
exceptions.KeyError Survival1
Traceback (innermost last):
  File "C:\Program Files\Irrational Games\Freedom Force vs The 3rd Reich\.\DCUG\missions\scripts\m25ai.py", line 2488, in GroupMemberKO
    GroupEventCallback(groupname,'GroupMemberKO',values=event.object)
  File "C:\Program Files\Irrational Games\Freedom Force vs The 3rd Reich\.\DCUG\missions\scripts\m25ai.py", line 2470, in GroupEventCallback
    exec 'ff.' + g + '(' + `groupname` + ',' + `values` + ')'
  File "<string>", line 1, in ?
  File "C:\Program Files\Irrational Games\Freedom Force vs The 3rd Reich\.\DCUG\missions\scripts\m25enc.py", line 2912, in EncMinionKO
    EncCheckEnd(enc_id)
  File "C:\Program Files\Irrational Games\Freedom Force vs The 3rd Reich\.\DCUG\missions\scripts\m25enc.py", line 152, in EncCheckEnd
    CallEncFunction(int(enc_id),'checkend')
  File "C:\Program Files\Irrational Games\Freedom Force vs The 3rd Reich\.\DCUG\missions\scripts\m25enc.py", line 614, in CallEncFunction
    exec function_string      
  File "<string>", line 1, in ?
  File "C:\Program Files\Irrational Games\Freedom Force vs The 3rd Reich\.\DCUG\missions\scripts\m25enc.py", line 4270, in EncCustom_CheckEnd
    PlayEncCutscene(enc_id, 'endcs', return_function = 'EncCustom_CleanUp(%i, %s)'%(enc_id, EncRemoveDuplicates(value_list)))
  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 708, in PlayCutsceneFromList
    exec 'ff.' + return_function
  File "<string>", line 1, in ?
  File "C:\Program Files\Irrational Games\Freedom Force vs The 3rd Reich\.\DCUG\missions\scripts\m25enc.py", line 4283, in EncCustom_CleanUp
    Enc_CleanUp(enc_id, return_value, extra_remove, complete, return_list)
  File "C:\Program Files\Irrational Games\Freedom Force vs The 3rd Reich\.\DCUG\missions\scripts\m25enc.py", line 3001, in Enc_CleanUp
    EncEnd(enc_id, return_value, return_list, complete=complete)
  File "C:\Program Files\Irrational Games\Freedom Force vs The 3rd Reich\.\DCUG\missions\scripts\m25enc.py", line 165, in EncEnd
    CallEncounterReturnFunction(enc_id,return_value,return_list)   
  File "C:\Program Files\Irrational Games\Freedom Force vs The 3rd Reich\.\DCUG\missions\scripts\m25enc.py", line 230, in CallEncounterReturnFunction
    exec function_string
  File "<string>", line 1, in ?
  File "C:\Program Files\Irrational Games\Freedom Force vs The 3rd Reich\.\DCUG\missions\scripts\m25story.py", line 420, in StorylineEncounterReturn
    enc = GetStoryline()[story]['encounters'][encounter]
KeyError: Survival1
GROUP: '1_minion' leader koed
GROUP: 'm25obj_4' removed from group '1_minion'
GROUP: '1_minion' set to []
GROUP: empty '1_minion' cannot have a leader promoted

And the pertinent part of the script:

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


Encounter: Survival3
Type: Hunt
Villains: disguise_martian, disguise_martian
Marker: alien4
Next: Rescue

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

Encounter: Rescue
Type: Cutscene
Allies: superman
Marker: alien4
Next: __win__

Alert Cutscene:
Red Arrow on Ally1

Start Cutscene:
Unfade for 2 seconds
Camera on Ally1
Ally1 says, "Bruce!"
Fade for 2 seconds
Hero1 teleports to Ally1
Cinematic camera on Ally1 to Hero1
Hero1 turns to Ally1
Ally1 turns to Hero1
Unfade for 2 seconds
Ally1 says, "What's this all about Bruce?"
Hero1 says, "I have my suspicions Kent, but I'm not sure yet. All I can say for certain

is that unknown forces are trying disable this facility. They've been hunting me since I

got here, but it looks like your arrival spooked them."
Hero1 says, "Good, that gives us time. Let's check the satellite monitors and see if we

can figure out what they were after."
Fade for 2 seconds
Hero1 teleports to alien6
Ally1 teleports to alien7
Hero1 turns to alien8
Ally1 turns to alien8
Unfade for 3 seconds
Hero1 says, "There's definitely something out there, but these instruments can't seem to

get a fix on it...whatever it is...it's big."
Ally1 says, "Well, I'll fly up and check it-"
Hero1 plays animation stunned
Hero1 says, "Wait! The modifactions those creatures made to these panels...I've just

figured them out...they weren't trying to just disable this facility, they were turning

the entire complex into a bomb.  We've got to get out of here!"
Hero1 moves to alien5
Ally1 moves to alien5
Fade for 5 seconds
Title: Re: EZScript Comics Vol. 2
Post by: M25 on January 02, 2009, 06:54:45 PM
That's an odd error.  It's looking for an encounter called Survival1 and not finding it for some reason.

Can I see the rest of the mission?


Title: Re: EZScript Comics Vol. 2
Post by: BentonGrey on January 02, 2009, 07:11:27 PM
Sure M.  That's odd, I am running a cut down portion of the script, trying to find the problem, but I had started with just Survival 1-the end, and I think I was getting the same or a similar problem.

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

Encounter: Begin
Type: Interrogation
Villains: civilian_martian
Marker: alien1
Next: Guard1, Guard2, Control

Alert Cutscene:
Set lighting to night
Fade for 2 seconds
Narrator says, "Arriving at the deep space monitoring facility, Batman penetrates the

outer security to investigate the mystery."
Camera on Villain1
Unfade for 3 seconds
Hero1 turns to Villain1
Hero1 says, "Hmm...he's certainly burning the midnight oil."
Villain1 plays animation melee
Hero1 says, "I don't think that's the right way to treat equipment that costs the
Villain1 says, "<What?>"
Hero1 says, "I want to ask you a few questions..."

Interrogation Cutscene:
Camera on Hero1
Hero1 says, "What ARE you?"
Villain1 says, "<It's too late for you human, too late for any of you!>"
Hero1 says, "Hmm...doesn't sound like a latin language...or anything eastern

either...I'd better find the control center and determine just what you've been up

to..."

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

Encounter: Guard1
Type: Fight
Villains: disguise_martian
Next: None

Start Cutscene:
Camera on Hero1
Hero1 turns to Villain1
Hero1 says, "Guards!"
Camera on Villain1
Villain1 turns to Hero1
Villain1 plays animation melee
Villain1 says, "<A human! It must be exterminated!>"
Camera on Hero1
Hero1 says, "It's speaking that same strange language...no need to be gentle then!"

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

Encounter: Guard2
Type: Fight
Villains: disguise_martian
Next: None

Start Cutscene:
Camera on Hero1
Hero1 turns to Villain1
Hero1 says, "Guards!"
Camera on Villain1
Villain1 turns to Hero1
Villain1 plays animation melee
Villain1 says, "<A human! It must be exterminated!>"
Camera on Hero1
Hero1 says, "It's speaking that same strange language...no need to be gentle then!"

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

Encounter: Control
Type: Examine
Villains: civilian_martian
Objects: alien_mineral
Marker: alien6

Start Cutscene:
Camera on Villain1
Villain1 turns Hero1
Villain1 says, "<Mmm...more cattle for the feast!>"
Hero1 says, "I don't know what you said, but somehow I doubt it was 'welcome'!"

Examine Cutscene:
Camera on Hero1
Hero1 says, "I don't think this is part of the of the original design...it doesn't look

like any kind of technology I've ever seen before."
Hero1 plays animation idle_1
Hero1 says, "What do they want with the deep space monitoring stations...unless their

aims are more sabotage than espionage. The generators are just through those doors, and

without them we'd be blind to an attack from space, even if we could get the equipment

working again. I'd better check it out."

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

Encounter: Reactor1
Type: Local Cutscene
Objects: ffx_tiggot
Marker: alien2

Start Cutscene:
Camera on Hero1
Hero1 says, "Well, the generators appear to be intact..."

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

Encounter: Reactor2
Type: Hunt
Villains: civilian_martian, civilian_martian, civilian_martian
Marker: alien2

Alert Cutscene:
Camera on Hero1
Hero1 says, "I wonder if-...voices!"!"
Camera on Villain1
Villain1 turns to Villain2
Villain1 says, "<Ahh, we have the human insect cornered! If we just destroy the

generator he will die in the blast!>"

End Cutscene:
Camera on Hero1
Hero1 plays ranged
Hero1 says, "That was too close...I hate to admit it, but whatever these things are, I'm

going to need some help to stop them. I need to find the communications room and contact

Superman!"
Hero1 says, "In the meantime, maybe I can find some weapons that will hurt these

things."

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

Encounter: Help
Type: Examine
Villains: civilian_martian, civilian_martian
Objects: switch
Marker: alien5
Next: Timer, Survival

Alert Cutscene:
Red Arrow on Villain1

Start Cutscene:
Remove Arrow from Villain1
Camera on Villain1
Villain1 turns to Hero1
Villain1 says, "<Innsolent morsel! These creatures should know when they are dinner.>"

Examine Cutscene:
Camera on Hero1
Hero1 says, "Now to make the call...and survive until Kent gets here."
Fade for 3 seconds
Hero1 says, "Knight to Boyscout..."
Unfade for 3 seconds

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

Encounter: Survival1
Type: Hunt
Villains: disguise_martian, disguise_martian
Marker: alien4
Next: Survival2

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

Encounter: Survival2
Type: Hunt
Villains: disguise_martian, disguise_martian
Marker: alien4
Next: Survival3

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

Encounter: Survival3
Type: Hunt
Villains: disguise_martian, disguise_martian
Marker: alien4
Next: Rescue

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

Encounter: Rescue
Type: Cutscene
Allies: superman
Marker: alien4
Next: __win__

Alert Cutscene:
Red Arrow on Ally1

Start Cutscene:
Unfade for 2 seconds
Camera on Ally1
Ally1 says, "Bruce!"
Fade for 2 seconds
Hero1 teleports to Ally1
Cinematic camera on Ally1 to Hero1
Hero1 turns to Ally1
Ally1 turns to Hero1
Unfade for 2 seconds
Ally1 says, "What's this all about Bruce?"
Hero1 says, "I have my suspicions Kent, but I'm not sure yet. All I can say for certain

is that unknown forces are trying disable this facility. They've been hunting me since I

got here, but it looks like your arrival spooked them."
Hero1 says, "Good, that gives us time. Let's check the satellite monitors and see if we

can figure out what they were after."
Fade for 2 seconds
Hero1 teleports to alien6
Ally1 teleports to alien7
Hero1 turns to alien8
Ally1 turns to alien8
Unfade for 3 seconds
Hero1 says, "There's definitely something out there, but these instruments can't seem to

get a fix on it...whatever it is...it's big."
Ally1 says, "Well, I'll fly up and check it-"
Hero1 plays animation stunned
Hero1 says, "Wait! The modifactions those creatures made to these panels...I've just

figured them out...they weren't trying to just disable this facility, they were turning

the entire complex into a bomb.  We've got to get out of here!"
Hero1 moves to alien5
Ally1 moves to alien5
Fade for 5 seconds

Title: Re: EZScript Comics Vol. 2
Post by: GogglesPizanno on January 02, 2009, 07:16:36 PM
On the Help encounter you have the Next pointing to an encounter called "Survival" but you have it scripted out as "Survival1"
Title: Re: EZScript Comics Vol. 2
Post by: BentonGrey on January 02, 2009, 07:32:03 PM
Whoops!  That is new.  It was originally survival (and just survival) and a timer, and the timer would bring in Superman.  I've changed that around, but forgot to edit that.  Still, that wasn't effecting the latest round of testing, as it was only from Survial1 (or 3) down.
Title: Re: EZScript Comics Vol. 2
Post by: M25 on January 02, 2009, 08:08:50 PM
I'm not able to replicate the problem. 

Can I see the (cut-down) mission as it looked when you were testing it?  I also need to see the first part of the script.log where it shows how the mission was encoded (something like):
Spoiler

PSTORY: {'name': 'Survival1', 'encounters': [{'marker': 'encounter', 'type': 'Hunt', 'timeofday': 'none', 'required_map': [], 'trigger': [], 'next': ['Rescue'], 'objectives': [], 'parameters': [], 'name': 'Survival3', 'villains': ['thug_with_bat', 'thug_with_bat'], 'cutscenes': [], 'pre': []}, {'marker': 'encounter', 'type': 'Cutscene', 'timeofday': 'none', 'required_map': [], 'trigger': [], 'next': ['__win__'], 'objectives': [], 'parameters': [['allies', 'minute_man']], 'name': 'Rescue', 'cutscenes': [{'replace': [['ally1', 'ally']], 'name': 'Alert', 'required': [], 'priority': 1, 'cutscene': ["CS_AddArrow('ally1arrow', 'ally1', arrow_type=js.ARROW_RED)"]}, {'replace': [['ally1', 'ally'], ['hero1', 'hero']], 'name': 'Start', 'required': [], 'priority': 1, 'cutscene': ['CS_Start()', 'CS_UnFade(2)', "CS_Camera('ally1', dist=-160, yaw=0)", "CS_Speak('ally1', 'Bruce!', force=0)", 'CS_Fade(2)', "CS_TeleportTo('hero1', 'ally1')", "CS_CinematicCamera('ally1','hero1')", "CS_TurnTo('hero1', 'ally1')", "CS_TurnTo('ally1', 'hero1')", 'CS_UnFade(2)', 'CS_Speak(\'ally1\', "What\'s this all about Bruce?", force=0)', 'CS_Speak(\'hero1\', "I have my suspicions Kent, but I\'m not sure yet. All I can say for certain is that unknown forces are trying disable this facility. They\'ve been hunting me since I got here, but it looks like your arrival spooked them.", force=0)', 'CS_Speak(\'hero1\', "Good, that gives us time. Let\'s check the satellite monitors and see if we can figure out what they were after.", force=0)', 'CS_Fade(2)', 'CS_UnFade(3)', 'CS_Speak(\'hero1\', "There\'s definitely something out there, but these instruments can\'t seem to get a fix on it...whatever it is...it\'s big.", force=0)', 'CS_Speak(\'ally1\', "Well, I\'ll fly up and check it-", force=0)', "CS_Animate('hero1','stunned')", 'CS_Speak(\'hero1\', "Wait! The modifactions those creatures made to these panels...I\'ve just figured them out...they weren\'t trying to just disable this facility, they were turning the entire complex into a bomb.  We\'ve got to get out of here!", force=0)', 'CS_Fade(5)', 'CS_End()']}], 'pre': []}], 'start': []}
PSTORY: {'Survival1': {'encounters': {'Survival3': {'timeofday': 'none', 'next': ['Rescue'], 'trigger': ['start'], 'action': ['DoEncCustom(villains = [\'thug_with_bat\', \'thug_with_bat\'], cutscenes = [], marker = \'encounter\', actions="villains fight heroes, allies fight villains, villains hunt heroes")'], 'required_map': []}, 'Rescue': {'next': ['__win__'], 'required_map': [], 'timeofday': 'none', 'action': ['DoEncCutscene(cutscenes = [[\'alertcs\', [[\'priority\', 1], [\'replace\', [\'ally1\', \'ally\']], [\'cutscene\', "CS_AddArrow(\'ally1arrow\', \'ally1\', arrow_type=js.ARROW_RED)"]]], [\'startcs\', [[\'priority\', 1], [\'replace\', [\'ally1\', \'ally\'], [\'hero1\', \'hero\']], [\'cutscene\', \'CS_Start()\', \'CS_UnFade(2)\', "CS_Camera(\'ally1\', dist=-160, yaw=0)", "CS_Speak(\'ally1\', \'Bruce!\', force=0)", \'CS_Fade(2)\', "CS_TeleportTo(\'hero1\', \'ally1\')", "CS_CinematicCamera(\'ally1\',\'hero1\')", "CS_TurnTo(\'hero1\', \'ally1\')", "CS_TurnTo(\'ally1\', \'hero1\')", \'CS_UnFade(2)\', \'CS_Speak(\\\'ally1\\\', "What\\\'s this all about Bruce?", force=0)\', \'CS_Speak(\\\'hero1\\\', "I have my suspicions Kent, but I\\\'m not sure yet. All I can say for certain is that unknown forces are trying disable this facility. They\\\'ve been hunting me since I got here, but it looks like your arrival spooked them.", force=0)\', \'CS_Speak(\\\'hero1\\\', "Good, that gives us time. Let\\\'s check the satellite monitors and see if we can figure out what they were after.", force=0)\', \'CS_Fade(2)\', \'CS_UnFade(3)\', \'CS_Speak(\\\'hero1\\\', "There\\\'s definitely something out there, but these instruments can\\\'t seem to get a fix on it...whatever it is...it\\\'s big.", force=0)\', \'CS_Speak(\\\'ally1\\\', "Well, I\\\'ll fly up and check it-", force=0)\', "CS_Animate(\'hero1\',\'stunned\')", \'CS_Speak(\\\'hero1\\\', "Wait! The modifactions those creatures made to these panels...I\\\'ve just figured them out...they weren\\\'t trying to just disable this facility, they were turning the entire complex into a bomb.  We\\\'ve got to get out of here!", force=0)\', \'CS_Fade(5)\', \'CS_End()\']]]], marker = \'encounter\', allies = [\'minute_man\'])']}, '__end__': {'action': ["ff.Story_SetStoryEnded('Survival1')"]}, '__win__': {'action': ['ff.Story_WinMission()']}, '__lose__': {'action': ['ff.Story_LoseMission()']}}}}

Title: Re: EZScript Comics Vol. 2
Post by: BentonGrey on January 03, 2009, 12:05:35 AM
Well, I'll be darned!  I tried to replicate it, and I couldn't!  I was using exactly the same bit as I first posted, but with an unfade command.  I used the same bit, and this time everything worked perfectly!  How bizarre!  Anyway, I have a new one for you. :P

I've got that final Hawkman mission working perfectly...except when you fail to stop the ship from taking off, you don't lose.  Do you see anything wrong with my setup?

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

Encounter: Escape1
Type: Disarm Bomb
Villains: than_kasta, than_kasta, than_kasta,
Bomb: than_spaceship
Time: 350
Marker: ship1
Next: If Bomb Exploded: __lose__
Next: If Bomb Disarmed: None

Alert Cutscene:
Camera on Villain1
hawkman says, "Look out! They've posted defensive systems all over!"
hawkgirl says, "We'll never be able to cut our way through them...how are we going to reach the ship?"
Camera on hawkman
hawkman says, "We can try and find their power sources and shut them down..."
hawkgirl says, "Do we have time for that?"
hawkman says, "Whether we do or not, we certainly won't be able to catch them if we're reduced to so much ash!"
Red Arrow on Villain1

Bomb Exploding Cutscene:
Camera on ship1
Play effect effect_missle_launch at ship1
Fade for 4 seconds
hawkman says, "No! The ship is taking off!"
hawkgirl says, "Byth has vanished! We'll never catch them now!"

Disarm Bomb Cutscene:
Camera on hawkman
hawkman moves to ship2
hawkman says, "Just a few delicate adjustments..."
hawkman plays animation melee_mace_b
Play effect effect_skyking_adjustsuit at hawkman
hawkman says, "That should do it!"

Bomb Disarmed Cutscene:
Camera on hawkman
hawkman says, "That ship isn't going anywhere anytime soon!"
hawkgirl says, "Good, then we've trapped these shapeshifters here and all we need to do is mop them up!"

#---------------------------------------
Title: Re: EZScript Comics Vol. 2
Post by: M25 on January 03, 2009, 02:42:31 AM
It looks ok at first glance.  Are there any error messages?


Title: Re: EZScript Comics Vol. 2
Post by: BentonGrey on January 03, 2009, 03:05:04 AM
None in the game itself.  I'll have to test it again to check script.log.
Title: Re: EZScript Comics Vol. 2
Post by: BentonGrey on January 05, 2009, 02:38:09 AM
In the meantime I've continued my testing of the JLA campaign, and thankfully got through several missions and base screens (oh how I hate base screens) without any problems that I wasn't able to solve myself.  Until level 5, that is.  Anyway, the base screen isn't playing, and I'm getting a bizarre error in the FF.log.  It is bizarre that this base level doesn't even load.  Like, if the map were loading, I'd hear things even though the screen is black.  Instead, I can still hear the music from the main menu.

Spoiler
00:14:03.48: FF: activation: CGameObjFactory::update deleting object (m25obj_22)
00:14:03.48: FF: activation: >>>>>>>>>remove id 78971069, index 189, stamp 1205
00:14:09.80: FF: CResourceDataMgr::getTagFullName, resource music_debrief not found
00:14:14.47: FF: Error: loadBaseForCurrentMission: no base file found for campaign mission 04B_Flash_ht_neighborhood
00:14:21.83: FF: CObjectTemplateDataMgr::term()
00:14:22.14: FF: freeing physics

The base file is there, right where it should be...and I don't see anything wrong in the script itself.  Take a look:

Spoiler
Story: My Story

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

Encounter: Start
Type: Base
Marker: fountain1

Start Cutscene:
Camera on aquaman_classis
Unfade for 3 seconds
aquaman_classis says, "It's not that simple Vulko, I think we need to take a firmer hand with Orm's supporters in the great houses. We can't afford to let them see us as weak."
vulko says "As you say, your majesty."
aquaman_classis, "Come on Vulko, it's bad enough that our people forced the crown on me, but I can't have you calling me 'your majesty' along with everyone else. It will start to go to my head!"
vulko says, "Haha, very well Arthur my boy, I'll refrain from using honorifics as long as we're in private. how does that strike you?"
aquaman_classis says, "It's a step in the right direction, now if I could talk the courtiers out of bowing every time they-"
aquaman_classis plays animation stunned
Play effect effect_mentor at aquaman_classis
vulko plays animation pain
vulko says, "Lord Arthur! Are you alright, sire?"
aquaman_classis says, "I...I...that voice...in my mind again..."
vulko says, "A voice in your mind, sire? What is going on?"
aquaman_classis says, "It...it's been happening more and more often. Its like someone whispering in the back of my mind, only I could never make out the words...until now."
vulko says, "What is it...what is it saying?"
aquaman_classis plays animation melee_idle
aquaman_classis says, "I understand! I don't have any time to explain Vulko, but I have to leave for the surface. Something terrible is about to happen!"
aquaman_classis moves to throne1
aquaman_classis says, "I'll return as soon as I can...if I can. In the meantime muster the army and protect the kingdom!"

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

Title: Re: EZScript Comics Vol. 2
Post by: Gremlin on January 05, 2009, 03:20:58 AM
Probably not the source of your problem, but you forgot a "says" before the second aquaman_classis line.
Title: Re: EZScript Comics Vol. 2
Post by: BentonGrey on January 05, 2009, 04:48:05 AM
Thanks Grem!  I always miss stuff like that...and I even read through this one SPECIFICALLY looking for those kinds of errors.  I've edited it...but still no luck.
Title: Re: EZScript Comics Vol. 2
Post by: M25 on January 05, 2009, 03:43:11 PM
From this error:

00:14:14.47: FF: Error: loadBaseForCurrentMission: no base file found for campaign mission 04B_Flash_ht_neighborhood

I'd have to guess that there is an issue with a missing or damaged base.dat or base.py file.  Make sure they are both there and that you can load the base.dat file in FFEdit.


Title: Re: EZScript Comics Vol. 2
Post by: BentonGrey on January 05, 2009, 07:14:50 PM
Alright, I CAN load the base.dat file in FFEdit, and the base.py file is up to date.  I'm still getting the same error.  What should I do?

I've uploaded the file in question here: http://games.groups.yahoo.com/group/bentongrey/files/ if anyone wants to try a more hands on approach. 
Title: Re: EZScript Comics Vol. 2
Post by: M25 on January 06, 2009, 05:10:54 AM
The name of the directory you posted (04_JLA_ds_moon) is not the same as the one giving the error 04B_Flash_ht_neighborhood. 

Maybe you have it pointing to the wrong folder in the campaign list in ffedit?


Title: Re: EZScript Comics Vol. 2
Post by: BentonGrey on January 06, 2009, 05:27:14 AM
Urghhh.......does anyone want to test all the rest of my missions and base screens?  I'm finding zillions of bugs. :(

No, no, M, I'm afraid it isn't that easy for me to solve.  I'm just a complete and total moron... :banghead:  Find the proper file here: http://games.groups.yahoo.com/group/bentongrey/files/

Title: Re: EZScript Comics Vol. 2
Post by: M25 on January 06, 2009, 07:38:48 AM
Just to make sure...

the error says it is looking for 04B_Flash_ht_neighborhood, not 04B_JLA_ht_neighborhood. 
Title: Re: EZScript Comics Vol. 2
Post by: BentonGrey on January 06, 2009, 05:24:00 PM
Okay M, I think that you've inadvertently solved the mystery....apparently, at some point in time I renamed the mission AFTER I had added it to the campaign....so the campaign was looking for a mission that didn't exist....I'm a genius. :P  I'll modify and test and let you know for sure.  On a related note, playing the Flash mission itself, I find That one of the encounters is refusing to end.  I had this issue earlier, but apparently it has come back to haunt me.  Here is the script, with the pertinent area highlighted:

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

Encounter: Intro1
Type: Cutscene
Allies: barry_allen, doctor
Villains: thug_with_gun, thug_with_bat, thug_with_bat
Marker: lab1

Start Cutscene:
Camera on barry_allen
Fade for 1 seconds
Unfade for 3 seconds
barry_allen turns to doctor
barry_allen says, "Good to see you again Jonas, still inspiring young, lazy minds in your classes?"
doctor turns to barry_allen
doctor says, "Good to see you too, Barry. My classes are excellent this semester, but I don't have any students quite as bright as you were, my boy...although I don't recall you ever being intellectually lazy!"
barry_allen says, "Ha! You just didn't pay close enough attention Prof! How goes your research?"
doctor says, "I'm glad you asked! My optics reasearch has produced some very interesting results, so interesting, in fact, so interesting that we're moving up the launch date for the satellite."
barry_allen says, "No kidding? Somebody upstairs must be pretty impressed with those lenses of yours."
doctor says, "Hah, well, perhaps so, but one way or another, once I finish the final adjustments we'll be seeing space in a way that has never been possible before!"
Villain1 moves to doctor
Villain2 moves to doctor
Villain3 moves to doctor
Villain1 plays animation melee
Villain1 says, "'fraid not doc. That launch 'as been rescheduled, permanently. professor Jonas Maxiam, you're comin' with us..."
doctor says, "What's the meaning of this?!"
barry_allen says, "I don't know what you think you're doing, but-"
Villain1 says, "Nothin' personal boys, but if you want to stay healthy doc, you'd better come with me."
Villain1 turns to barry_allen
Villain1 plays animation melee
Villain1 says, "As for you, pal, if you are real, real good, you might just be able to walk away from this in one piece, get me?"
doctor says, "I suppose I don't have much choice...very well, I will come, but please leave my friend alone."
Villain1 says, "That is entirely up ta' him. Anyway, they said you was smart, so prove it and get movin'."
doctor moves to hospital1
Villain2 moves to hospital1
Villain3 moves to hospital1
Villain1 says, "Alright buddy, you just stay right there, and this will all be over in a flash."
Villain1 moves to hospital1
barry_allen says, "I'm sure it will..."
barry_allen moves to escape1
Fade for 3 seconds
barry_allen says, "I'll slip into costume and have those jokers in a cell before they know what hit them!"
Camera on Flash

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

Encounter: Intro2
Type: Cutscene
Villains: warlord
Marker: lab2
Next: Blaze1

Start Cutscene:
Unfade for 3 seconds
flash moves to Villain1
Villain1 turns to flash
flash says, "You and your friends came to the wrong town pal, but I want to thank you. I haven't been able to stretch my legs yet today. You can't get away, but you're certainly welcome to try!"
Villain1 says, "Hold on there speedy, we don't gotta' outRUN ya', we just gotta' slow you down a bit, and if I were you I'd just let the egghead go."
flash says, "Is that so? How exactly do you plan to do that?"
Villain1 says, "Heh, well, we're prepared for ya', you see? My 'associates' are engaging in a little urban renewal right this moment...on two different sides of town. You can chase my friends, or you can stop a hospital and an apartment building from going up in flames...but you'd better hurry..."
flash plays animation pain
flash says, "Hurry? Pal, you're going to find yourself in a cell so fast it's gonna' make your head spin!"
flash moves to hospital1
Wait for 2 seconds

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

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
Next: Blaze2

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
Next: Blaze3

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
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
Next: Blaze4

Alert Cutscene:
Red Arrow on Villain
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 Villain
Camera on Villain
Villain turns to flash
Villain 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
Type: Building Rampage
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
Next: Final1

Alert Cutscene:
Red Arrow on Villain

Start Cutscene:
Remove Arrow from Villain
Camera on Villain
Villain turns to flash
Villain 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!"

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

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

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

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

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


I knock out all of the villains, save all of the civilians, and then...nothing.  They stand on the street at the right spot, and the final cutscene doesn't play.
Title: Re: EZScript Comics Vol. 2
Post by: BentonGrey on January 06, 2009, 05:28:49 PM
Here is the script.log:

Spoiler
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)
AI: AISetRunning m25obj_36 to 0
AI: AISetRunning m25obj_38 to 0
AI: AISetRunning m25obj_40 to 0
AI: AISetRunning m25obj_42 to 0
AI: AISetRunning m25obj_44 to 0
AI: AISetRunning m25obj_46 to 0
CUTSCENE: playing ff.CS_Speak(7,'m25obj_36','Woo-hoo! This is what I call fun!', force=0)
AI: AISetRunning m25obj_26 to 0
AI: AISetRunning m25obj_28 to 0
AI: AISetRunning m25obj_30 to 0
AI: AISetRunning m25obj_32 to 0
AI: AISetRunning m25obj_34 to 0
GROUP: 'm25obj_26' removed from group '3_ally'
GROUP: '3_ally' set to ['m25obj_28', 'm25obj_30', 'm25obj_32', 'm25obj_34']
GROUP: 'm25obj_28' removed from group '3_ally'
GROUP: '3_ally' set to ['m25obj_30', 'm25obj_32', 'm25obj_34']
GROUP: 'm25obj_30' removed from group '3_ally'
GROUP: '3_ally' set to ['m25obj_32', 'm25obj_34']
GROUP: 'm25obj_32' removed from group '3_ally'
GROUP: '3_ally' set to ['m25obj_34']
GROUP: 'm25obj_34' removed from group '3_ally'
GROUP: '3_ally' set to []
GROUP: empty '3_ally' cannot have a leader promoted
AI: AISetRunning m25obj_48 to 0
AI: AISetRunning m25obj_50 to 0
AI: AISetRunning m25obj_52 to 0
AI: AISetRunning m25obj_54 to 0
AI: AISetRunning m25obj_56 to 0
AI: AISetRunning m25obj_58 to 0
CUTSCENE: playing ff.CS_Camera(7,'m25obj_48', dist=-160, yaw=0)
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)
AI: AIRun is restarting m25obj_38
[Plenty more of the same]
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(1029,'m25obj_36',19) to character m25obj_38
GOAL: Adding goal Goal_Guard(1030,'m25obj_36',19) to character m25obj_40
GOAL: Adding goal Goal_Guard(1031,'m25obj_36',19) to character m25obj_42
GOAL: Adding goal Goal_Guard(1032,'m25obj_36',19) to character m25obj_44
GOAL: Adding goal Goal_Guard(1033,'m25obj_36',19) to character m25obj_46
GROUP: '4_minion' set to guard 'm25obj_36'
GOAL: Adding goal Goal_StayWithTeam(1034,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_38:'thug_with_bat' move to 'flash1'
AI: m25obj_36:'thug_with_grenade'  'flash1'
AI: m25obj_44:'thug_with_gun' thug Pistol Shot attack on 'flash1'
AI: m25obj_46:'thug_with_bat' move to 'flash1'
AI: m25obj_42:'thug_with_grenade'  'flash1'
AI: m25obj_38:'thug_with_bat' move to 'flash1'
AI: m25obj_36 no tactic chosen this cycle.
AI: m25obj_46:'thug_with_bat' move to 'flash1'
ENCOUNTER: PlayEncCutscene(): 'allyrescuedcs' : "EncEventCallback(4, '_freed', 'm25obj_52')"
ENCOUNTER: PlayCutsceneFromList(): None : "EncEventCallback(4, '_freed', 'm25obj_52')" ... [['m25obj_52', 'ally'], ['flash1', '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]
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) - None
[SNIP]
AI: m25obj_48:'civilian_male' goal move to marker 'apartment1_congregate1'
AI: m25obj_56:'civilian_female' goal move to marker 'apartment1_congregate1'
GOAL: Removing goal Goal_MoveToMarker(1025 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_50:'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_36 no tactic chosen this cycle.
AI: m25obj_42:'thug_with_grenade' move to 'flash1'
AI: m25obj_36 no tactic chosen this cycle.
AI: m25obj_44:'thug_with_gun' default Punch attack on 'flash1'
AI: m25obj_46:'thug_with_bat' panicked run 'flash1'
AI: m25obj_38:'thug_with_bat' panicked run 'flash1'
AI: m25obj_48:'civilian_male' goal move to marker 'apartment1_congregate1'
AI: m25obj_56:'civilian_female' goal move to marker 'apartment1_congregate1'
AI: AISetRunning m25obj_52 to 0
AI: m25obj_50:'civilian_female' goal move to marker 'apartment1_congregate1'
AI: m25obj_54:'civilian_female' goal move to marker 'apartment1_congregate1'
GOAL: Removing goal Goal_MoveToMarker(1028 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
AI: m25obj_36 no tactic chosen this cycle.
AI: m25obj_42 no tactic chosen this cycle.
AI: m25obj_36 no tactic chosen this cycle.
AI: m25obj_42 no tactic chosen this cycle.
AI: m25obj_48:'civilian_male' goal move to marker 'apartment1_congregate1'
AI: m25obj_56:'civilian_female' goal move to marker 'apartment1_congregate1'
AI: m25obj_50:'civilian_female' goal move to marker 'apartment1_congregate1'
GOAL: Removing goal Goal_MoveToMarker(1026 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
AI: AISetRunning m25obj_58 to 0
AI: m25obj_36 no tactic chosen this cycle.
AI: m25obj_42 no tactic chosen this cycle.
AI: m25obj_46:'thug_with_bat' panicked run 'flash1'
AI: m25obj_38:'thug_with_bat' move to 'flash1'
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
Title: Re: EZScript Comics Vol. 2
Post by: BentonGrey on January 06, 2009, 05:29:29 PM
Spoiler
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_36 no tactic chosen this cycle.
AI: m25obj_42 overpowers his/her/its attack!
AI: m25obj_42:'thug_with_grenade' thug Grenade attack on 'flash1'
AI: m25obj_48:'civilian_male' goal move to marker 'apartment1_congregate1'
AI: m25obj_56:'civilian_female' goal move to marker 'apartment1_congregate1'
AI: m25obj_50:'civilian_female' goal move to marker 'apartment1_congregate1'
AI: AISetRunning m25obj_54 to 0
AI: m25obj_36 overpowers his/her/its attack!
AI: m25obj_36:'thug_with_grenade' thug Grenade attack on 'flash1'
AI: m25obj_38:'thug_with_bat' move to 'flash1'
AI: m25obj_46:'thug_with_bat' move to 'flash1'
GOAL: Removing goal Goal_MoveToMarker(1023 from character m25obj_48
ENCOUNTER: PlayEncCutscene(): 'allycongregatescs' : None
ENCOUNTER: PlayCutsceneFromList(): None : None ... [['m25obj_48', '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_56:'civilian_female' goal move to marker 'apartment1_congregate1'
GOAL: Removing goal Goal_MoveToMarker(1024 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
ENCOUNTER: PlayEncCutscene(): 'bantercs' : None
ENCOUNTER: PlayCutsceneFromList(): None : None ... []
AI: m25obj_38:'thug_with_bat' move to 'flash1'
GROUP: 'm25obj_40' removed from group '4_minion'
GROUP: '4_minion' set to ['m25obj_36', 'm25obj_38', 'm25obj_42', 'm25obj_44', 'm25obj_46']
AI: m25obj_46:'thug_with_bat' move to 'flash1'
AI: m25obj_42 no tactic chosen this cycle.
AI: AISetRunning m25obj_48 to 0
AI: m25obj_56:'civilian_female' goal move to marker 'apartment1_congregate1'
AI: AISetRunning m25obj_50 to 0
AI: m25obj_38:'thug_with_bat' move to 'flash1'
AI: m25obj_42:'thug_with_grenade'  'flash1'
AI: m25obj_46:'thug_with_bat' move to 'flash1'
AI: m25obj_56:'civilian_female' 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: '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
AI: m25obj_42 no tactic chosen this cycle.
Object_GetVar called on nonexistant object 'm25obj_578'.
AI: m25obj_42 no tactic chosen this cycle.
AI: m25obj_56:'civilian_female' goal move to marker 'apartment1_congregate1'
AI: m25obj_42 no tactic chosen this cycle.
AI: m25obj_42 no tactic chosen this cycle.
AI: m25obj_56:'civilian_female' goal move to marker 'apartment1_congregate1'
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 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_42' automatically promoted to leader of group '4_minion'
GROUP: 'm25obj_42' made leader of group '4_minion'
GOAL: Removing goal Goal_Guard( from character m25obj_42
GROUP: '4_minion' set to guard 'm25obj_42'
GOAL: Adding goal Goal_StayWithTeam(1035,20) to character m25obj_42
AI: m25obj_42:'thug_with_grenade'  'flash1'
AI: m25obj_56:'civilian_female' goal move to marker 'apartment1_congregate1'
GROUP: 'm25obj_44' removed from group '4_minion'
GROUP: '4_minion' set to ['m25obj_36', 'm25obj_38', 'm25obj_42', 'm25obj_46']
AI: m25obj_42:'thug_with_grenade'  'flash1'
AI: m25obj_56:'civilian_female' goal move to marker 'apartment1_congregate1'
AI: m25obj_42:'thug_with_grenade'  'flash1'
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) - ['villains gone']
GROUP: '4_minion' leader koed
AI: m25obj_56:'civilian_female' goal move to marker 'apartment1_congregate1'
AI: m25obj_56:'civilian_female' goal move to marker 'apartment1_congregate1'
GROUP: 'm25obj_38' removed from group '4_minion'
GROUP: '4_minion' set to ['m25obj_36', 'm25obj_42', 'm25obj_46']
GROUP: 'm25obj_46' removed from group '4_minion'
GROUP: '4_minion' set to ['m25obj_36', 'm25obj_42']
AI: m25obj_56:'civilian_female' goal move to marker 'apartment1_congregate1'
AI: m25obj_56:'civilian_female' goal move to marker 'apartment1_congregate1'
GROUP: 'm25obj_36' removed from group '4_minion'
GROUP: '4_minion' set to ['m25obj_42']
AI: m25obj_56:'civilian_female' goal move to marker 'apartment1_congregate1'
ENCOUNTER: PlayEncCutscene(): 'bantercs' : None
ENCOUNTER: PlayCutsceneFromList(): None : None ... []
AI: m25obj_56:'civilian_female' goal move to marker 'apartment1_congregate1'
AI: m25obj_56:'civilian_female' goal move to marker 'apartment1_congregate1'
GROUP: 'm25obj_42' removed from group '4_minion'
GROUP: '4_minion' set to []
GROUP: empty '4_minion' cannot have a leader promoted
AI: m25obj_56:'civilian_female' goal move to marker 'apartment1_congregate1'
[15 lines of the same]
ENCOUNTER: PlayEncCutscene(): 'bantercs' : None
ENCOUNTER: PlayCutsceneFromList(): None : None ... []
AI: m25obj_56:'civilian_female' goal move to marker 'apartment1_congregate1'
[12 lines of the same]
ENCOUNTER: PlayEncCutscene(): 'bantercs' : None
ENCOUNTER: PlayCutsceneFromList(): None : None ... []
AI: m25obj_56:'civilian_female' goal move to marker 'apartment1_congregate1'
AI: m25obj_56:'civilian_female' goal move to marker 'apartment1_congregate1'
GetCharacterData: called on non-character sc_fire_hydrant_013, template=fire_hydrant
GetCharacterData: called on non-character sc_fire_hydrant_013_fh, template=ffx_target
AI: m25obj_56:'civilian_female' goal move to marker 'apartment1_congregate1'
[8 lines of the same]
AI: m25obj_56:'civilian_female' goal move to marker 'apartment1_congregate1'
Title: Re: EZScript Comics Vol. 2
Post by: M25 on January 06, 2009, 07:01:33 PM
The encounter is working, but one of the civilians can't get close enough to the marker the civilians are fleeing to to trigger the end.  Chances are if you play it again, it will work, but of course that's not the most elegant solution.  You can place a marker nearby called apartment1_congregate on the map so that it is easier for the civilians to get to it.


Title: Re: EZScript Comics Vol. 2
Post by: BentonGrey on January 06, 2009, 08:05:47 PM
Hmm...I have such a marker...maybe I should move it out into the street where they will be able to get closer.  Also, should I reduce the number of civilians?  Thanks M, I thought something like that might be the case, but I didn't have a clue how to solve it. 
Title: Re: EZScript Comics Vol. 2
Post by: BentonGrey on January 06, 2009, 09:28:35 PM
Well, the testing continues, and so do the bugs!  The 5th level's base screen is actually loading now, thanks to M's astute observation, but the briefing cutscene will not play.  Here is the cutscene in question:

Spoiler
Encounter: Briefing
Type: Cutscene
Starts When: Briefing

Start Cutscene:
Camera on aquaman_classis
aquaman_classis says, "It's not that simple Vulko, I think we need to take a firmer hand with Orm's supporters in the great houses. We can't afford to let them see us as weak."
vulko says "As you say, your majesty."
aquaman_classis, "Come on Vulko, it's bad enough that our people forced the crown on me, but I can't have you calling me 'your majesty' along with everyone else. It will start to go to my head!"
vulko says, "Haha, very well Arthur my boy, I'll refrain from using honorifics as long as we're in private. how does that strike you?"
aquaman_classis says, "It's a step in the right direction, now if I could talk the courtiers out of bowing every time they-"
aquaman_classis plays animation stunned
Play effect effect_mentor at aquaman_classis
vulko plays animation recover_from_stun
vulko says, "Lord Arthur! Are you alright, sire?"
aquaman_classis says, "I...I...that voice...in my mind again..."
vulko says, "A voice in your mind, sire? What is going on?"
aquaman_classis says, "It...it's been happening more and more often. It's like someone whispering in the back of my mind, only I could never make out the words...until now."
vulko says, "What is it...what is it saying?"
aquaman_classis plays animation melee_idle
aquaman_classis says, "I understand! I don't have any time to explain Vulko, but I have to leave for the surface. Something terrible is about to happen!"
aquaman_classis moves to throne1
aquaman_classis says, "I'll return as soon as I can...if I can. In the meantime muster the army and protect the kingdom!"

And the script.log, which doesn't have anything that jumps out at me:

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 1231276920.691000
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': 'fountain1', 'type': 'Base', 'timeofday': 'none', 'required_map': [], 'trigger': [], 'next': [], 'objectives': [], 'parameters': [], 'name': 'Start', 'cutscenes': [{'replace': [], 'name': 'Start', 'required': ['aquaman_classis'], 'priority': 1, 'cutscene': ['CS_Start()', "CS_Camera('aquaman_classis', dist=-160, yaw=0)", 'CS_UnFade(3)', 'CS_End()']}], 'pre': []}, {'marker': 'encounter', 'type': 'Cutscene', 'timeofday': 'none', 'required_map': [], 'trigger': ['Briefing'], 'next': [], 'objectives': [], 'parameters': [], 'name': 'Briefing', 'cutscenes': [{'replace': [], 'name': 'Start', 'required': ['aquaman_classis', 'vulko', 'throne1'], 'priority': 1, 'cutscene': ['CS_Start()', "CS_Camera('aquaman_classis', dist=-160, yaw=0)", 'CS_Speak(\'aquaman_classis\', "It\'s not that simple Vulko, I think we need to take a firmer hand with Orm\'s supporters in the great houses. We can\'t afford to let them see us as weak.", force=0)', "CS_Speak('vulko', 'As you say, your majesty.', force=0)", 'CS_Speak(\'vulko\', "Haha, very well Arthur my boy, I\'ll refrain from using honorifics as long as we\'re in private. how does that strike you?", force=0)', 'CS_Speak(\'aquaman_classis\', "It\'s a step in the right direction, now if I could talk the courtiers out of bowing every time they-", force=0)', "CS_Animate('aquaman_classis','stunned')", "CS_Effect('effect_mentor','aquaman_classis')", "CS_Animate('vulko','recover_from_stun')", "CS_Speak('vulko', 'Lord Arthur! Are you alright, sire?', force=0)", "CS_Speak('aquaman_classis', 'I...I...that voice...in my mind again...', force=0)", "CS_Speak('vulko', 'A voice in your mind, sire? What is going on?', force=0)", 'CS_Speak(\'aquaman_classis\', "It...it\'s been happening more and more often. It\'s like someone whispering in the back of my mind, only I could never make out the words...until now.", force=0)', "CS_Speak('vulko', 'What is it...what is it saying?', force=0)", "CS_Animate('aquaman_classis','melee_idle')", 'CS_Speak(\'aquaman_classis\', "I understand! I don\'t have any time to explain Vulko, but I have to leave for the surface. Something terrible is about to happen!", force=0)', "CS_MoveTo('aquaman_classis', 'throne1')", 'CS_Speak(\'aquaman_classis\', "I\'ll return as soon as I can...if I can. In the meantime muster the army and protect the kingdom!", 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\', \'aquaman_classis\'], [\'cutscene\', \'CS_Start()\', "CS_Camera(\'aquaman_classis\', dist=-160, yaw=0)", \'CS_UnFade(3)\', \'CS_End()\']]]], marker = \'fountain1\')'], 'required_map': []}, 'Briefing': {'timeofday': 'none', 'next': ['__end__'], 'trigger': ['Briefing'], 'action': ['DoEncCutscene(cutscenes = [[\'startcs\', [[\'priority\', 1], [\'required\', \'aquaman_classis\', \'vulko\', \'throne1\'], [\'cutscene\', \'CS_Start()\', "CS_Camera(\'aquaman_classis\', dist=-160, yaw=0)", \'CS_Speak(\\\'aquaman_classis\\\', "It\\\'s not that simple Vulko, I think we need to take a firmer hand with Orm\\\'s supporters in the great houses. We can\\\'t afford to let them see us as weak.", force=0)\', "CS_Speak(\'vulko\', \'As you say, your majesty.\', force=0)", \'CS_Speak(\\\'vulko\\\', "Haha, very well Arthur my boy, I\\\'ll refrain from using honorifics as long as we\\\'re in private. how does that strike you?", force=0)\', \'CS_Speak(\\\'aquaman_classis\\\', "It\\\'s a step in the right direction, now if I could talk the courtiers out of bowing every time they-", force=0)\', "CS_Animate(\'aquaman_classis\',\'stunned\')", "CS_Effect(\'effect_mentor\',\'aquaman_classis\')", "CS_Animate(\'vulko\',\'recover_from_stun\')", "CS_Speak(\'vulko\', \'Lord Arthur! Are you alright, sire?\', force=0)", "CS_Speak(\'aquaman_classis\', \'I...I...that voice...in my mind again...\', force=0)", "CS_Speak(\'vulko\', \'A voice in your mind, sire? What is going on?\', force=0)", \'CS_Speak(\\\'aquaman_classis\\\', "It...it\\\'s been happening more and more often. It\\\'s like someone whispering in the back of my mind, only I could never make out the words...until now.", force=0)\', "CS_Speak(\'vulko\', \'What is it...what is it saying?\', force=0)", "CS_Animate(\'aquaman_classis\',\'melee_idle\')", \'CS_Speak(\\\'aquaman_classis\\\', "I understand! I don\\\'t have any time to explain Vulko, but I have to leave for the surface. Something terrible is about to happen!", force=0)\', "CS_MoveTo(\'aquaman_classis\', \'throne1\')", \'CS_Speak(\\\'aquaman_classis\\\', "I\\\'ll return as soon as I can...if I can. In the meantime muster the army and protect the kingdom!", force=0)\', \'CS_End()\']]]], marker = \'encounter\')'], 'required_map': []}}}}
MISSION: On Post Init... complete; starting story.
ENCOUNTER: PlayEncCutscene(): 'startcs' : 'BaseDone(1)'
ENCOUNTER: PlayCutsceneFromList(): [['priority', 1], ['required', 'aquaman_classis'], ['cutscene', 'CS_Start()', "CS_Camera('aquaman_classis', dist=-160, yaw=0)", 'CS_UnFade(3)', 'CS_End()']] : 'BaseDone(1)' ... []
CUTSCENE: request to play cutscene.
CUTSCENE:  - CS_Start()
CUTSCENE:  - CS_Camera('aquaman_classis', dist=-160, yaw=0)
CUTSCENE:  - CS_UnFade(3)
CUTSCENE:  - CS_End()
CUTSCENE: calling PlayCurrentCutscene 1
CUTSCENE: playing ff.CS_Start(1)
CUTSCENE: playing ff.CS_Camera(1,'aquaman_classis', dist=-160, yaw=0)
CUTSCENE: playing ff.CS_UnFade(1,3)
initialising FFQ_initialiseExtras()
Plugin 'firehydrant' OnPostInit() called
Plugin 'zombie' has no OnPostInit()
Plugin 'freeroam_keepbuildingdamage' OnPostInit() called
Plugin 'm25ai_lowjumper' has no OnPostInit()
Plugin 'm25ai_realitymanipulation' has no OnPostInit()
Plugin 'cutscene_power' has no OnPostInit()
Plugin 'm25encexit' has no OnPostInit()
Plugin 'm25enc_opendoor' has no OnPostInit()
Plugin 'm25enc_reqchar' has no OnPostInit()
Plugin 'm25enc_simplechoice' has no OnPostInit()
Plugin 'm25encstory' has no OnPostInit()
CUTSCENE: playing ff.CS_End(1)
CUTSCENE: calling cutscene return function.
ENCOUNTER: Setting up encounter 2
ENCOUNTER: Start marker found for ['encounter'] None
ENCOUNTER: No start marker found for ['encounter']
ENCOUNTER: Setting up encounter 3
ENCOUNTER: Start marker found for ['encounter'] None
ENCOUNTER: No start marker found for ['encounter']
Title: Re: EZScript Comics Vol. 2
Post by: Previsionary on January 06, 2009, 10:07:12 PM
Quoteaquaman_classis, "Come on Vulko, it's bad enough that our people forced the crown on me, but I can't have you calling me 'your majesty' along with everyone else. It will start to go to my head!"

Not a fix, but an observation. You're missing a "says", no? As for the script log, it keeps pointing out it cant find a start marker...dunno if that's the problem, so I'll leave that to m25. :P
Title: Re: EZScript Comics Vol. 2
Post by: M25 on January 06, 2009, 10:46:03 PM
Prev's right on both counts.  It's looking for an encounter marker and not finding one.  Put a marker named encounter1 somewhere on the map.  And the second aquaman line is missing the says.



Title: Re: EZScript Comics Vol. 2
Post by: BentonGrey on January 06, 2009, 11:29:38 PM
D'oh!  STILL?  I JUST read through it AGAIN looking for that.  Prev...do the rest of my testing for me. :P  Hmm...I've got an encounter_1.....and I guess that's the problem...apparently I put an underscore in there for no reason...urrghhh...Thanks guys, now on to the next problem caused by my stupidity. :banghead:

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

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

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

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

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

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


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

The script.log: http://f1.grp.yahoofs.com/v1/gPBjSdm8DuFTl-DnwrmcnlN41V8zbI1w2rh7irXEBrJQs1qj6M_I-rxcFLa76nH_HQK9Y1yVQryYNh91cTmwZw/script.log
Title: Re: EZScript Comics Vol. 2
Post by: BentonGrey on January 07, 2009, 05:56:36 PM
Okay, after a second play through, I did not get the same error, so I'm moving on and hoping it was a one time thing.  I've got plenty other troubles to keep me busy.  Let's start with mission 7, which is working perfectly, except for the last encounter.  It won't start, and I've tested it six ways from Sunday.  I've tried removing all of the dialog from the cutscenes in case I made a typo, I've double and triple checked the heading, and everything SEEMS copacetic to me.  I can't tell what the trouble is.  

Here is the encounter in question:

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

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

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

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

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

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

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




On an unrelated note, I'm trying to improve the 6th mission (Aquaman) as it seems a bit too hard.  In it, you've got to fight your way past a number of guards to reach a big set of doors.  After you pass the initial guards, there are still tons in front of the doors.  While I could just cut their numbers down, I'd like to add another wrinkle to the mission.  Is there a way that I can either A) Spawn a turret in that location that the player can later convert to his side, forcing it to attack the guards, or B) Similarly, set a turret guarding that area to explode, damaging the guards, also from another location.  I can't think of any way to do that with EZScript, but I know that someone around here might.
Title: Re: EZScript Comics Vol. 2
Post by: M25 on January 07, 2009, 07:02:28 PM
From the script.log, it looks like you are using batman and flash as your heroes.   The Alert Cutscene requires flash and martian_man, so I'd say you need to place martian_man on the map somewhere, add him to the encounter, or use him as one of your heroes.


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

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

All Switches Turned Off Cutscene:
turncoat is killed

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

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


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

Title: Re: EZScript Comics Vol. 2
Post by: BentonGrey on January 07, 2009, 11:05:57 PM
Hmm...I've got all three heroes selected as the 3 required heroes for that mission.  I don't understand how that is causing it... :huh:

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

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

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

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

All Switches Turned Off Cutscene:
turret_carrier is killed

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

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

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

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

All Switches Turned Off Cutscene:
turret_carrier is killed

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

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

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

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

All Switches Turned Off Cutscene:
turret_carrier is killed

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

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

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

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

All Switches Turned Off Cutscene:
turret_carrier is killed

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

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

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

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

All Switches Turned Off Cutscene:
turret_carrier is killed

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

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

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

But when the switches were flipped, nothing happened.

Here is the script.log:

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

It looks like it can't kill the turrets, but I can't tell why.
Title: Re: EZScript Comics Vol. 2
Post by: M25 on January 08, 2009, 02:53:05 AM
For the previous mission, the log is showing only two heroes:

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

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



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

Villains: turret_carrier named tur1

All Switched Off Cutscene:
tur1 is killed


Title: Re: EZScript Comics Vol. 2
Post by: BentonGrey on January 08, 2009, 04:22:53 AM
I can't tell, unfortunately, as the screen is black.  There is a hero3 marker for him to spawn at...should I just place all three of them on the map?

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

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

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

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

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

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

All Switches Turned Off Cutscene:
turret_factory named tur1 is killed

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

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

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

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

All Switches Turned Off Cutscene:
turret_factory named tur3 is killed

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

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

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

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

All Switches Turned Off Cutscene:
turret_factory named tur5 is killed

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

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

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

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

All Switches Turned Off Cutscene:
turret_factory named tur7 is killed

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

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

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

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

All Switches Turned Off Cutscene:
turret_factory named tur9 is killed

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

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

#---------------------------------------
Title: Re: EZScript Comics Vol. 2
Post by: M25 on January 08, 2009, 03:43:32 PM
The marker should be named hero_3  (this is an FFvTTR marker, not an EZ script marker).


The line:
turret_factory named tur1 is killed

should be:
tur1 is killed


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



Title: Re: EZScript Comics Vol. 2
Post by: BentonGrey on January 08, 2009, 05:45:04 PM
Okay M, thanks!  I'll fix both of these things and test them out.
Title: Re: EZScript Comics Vol. 2
Post by: BentonGrey on January 08, 2009, 08:24:49 PM
Alright, so I've made some pretty great strides today, solving several problems myself, and all in all, I'm feeling better about the whole thing, but I've still got a handful of bugs that I can't figure out.  First off, I've got the forest mission working perfectly now, so that one is solid.  The Aquaman mission is now acting just the way it should, with the bad turrets dying and the good turrets spawning, but we have two problems.  First, the turrets are inactive both as villains and allies.  They don't do anything, although the enemies DO attack them once they become allies.  They have turret AI, of course, could that have something to do with it?.  Secondly, the dead turrets remain behind for a while.  That can be handled easily enough by teleporting them somewhere else, but can I teleport a corpse, so to speak?




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

Spoiler
Story: My Story

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

Encounter: Start
Type: Base
Marker: atom1

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

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

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

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





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

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

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

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

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

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

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

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


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

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

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

tur1 is killed
tur1 is destroyed

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



For the briefing cutscene, you spelled camera wrong.



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

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



Title: Re: EZScript Comics Vol. 2
Post by: BentonGrey on January 08, 2009, 10:24:05 PM
BEAUTIFUL!  Thanks so much M!  (I can't BELIEVE I mispelled camera...but oh well, at least you caught it for me...after I had stared at that stupid briefing cutscene for hours!)  Pending a little touch up on the Aquaman mission, and me throwing SOMETHING together for a WW mission...the JLA campaign is DONE.  I actually just finished it while testing it...I'm excited! :thumbup:
Title: Re: EZScript Comics Vol. 2
Post by: BentonGrey on January 09, 2009, 07:26:02 AM
Alright, Batman is coming along pretty well, and I'm even finding a little energy to improve the early missions (the first ones I made, so not the best ever).  I have run into a few errors though, but I've been able to solve all of them...except this one.  I've got a briefing cutscene that isn't playing.  Here is the cutscene itself:

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


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

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


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

Spoiler
>>> system/init.py executed
>>> system/localinit.py executed
>>> system\tredir.py executed
Starting ffx.py v. 3.2.0 build 11; branch = Gold / Release
Loading m25ai.py v. 3.2.0 build 10; branch = beta 2: m25 branch 2
importing missionobjvar.py v1.18
loading datfiles version 0.251000
importing MLOG Reader 1.0.18 release
Starting General Utilities 1.0
missionobjvar(FixLongs): Fixing overflow issue with <SCSTATE_BUOYANT>
missionobjvar defining functions for Campaign play.
CustomHeadCurrentTime 1231485437.406000
Starting Height Check module 1.4
Starting System Utilities 1.4
OBJECTS_HEIGHT: 604 entries
NIF_OBJECTS: 482 entries
BUILDINGS_IN_OBJECTS_DAT: 30 entries
BUILDING_DIMENSIONS: 30 entries
Starting skXMapInfo.py  v 0.79 beta
skXMapInfo: m25ai available
Campaign_ReadObjects() warning: object template <water> has more than one entry for attribute <mass>, values 650.000000 and 650.000000
Campaign_ReadObjects() warning: object template <jm_pad_white> has more than one entry for attribute <canPickUp>, values 0.000000 and 0.000000
Campaign_ReadObjects() warning: object template <jm_pad_green> has more than one entry for attribute <canPickUp>, values 0.000000 and 0.000000
Campaign_ReadObjects() warning: object template <jm_pad_brown> has more than one entry for attribute <canPickUp>, values 0.000000 and 0.000000
Campaign_ReadObjects() warning: object template <jm_pad> has more than one entry for attribute <canPickUp>, values 0.000000 and 0.000000
Campaign_ReadObjects() warning: object template <bigwater> has more than one entry for attribute <mass>, values 650.000000 and 650.000000
FFX Mission Plugin 'firehydrant' imported
FFX Mission Plugin 'zombie' imported
Loading freeroam_keepbuildingdamage.py v.1.0.0 build 0; branch = main
FREEROAM_KBD: initialized
FFX Mission Plugin 'freeroam_keepbuildingdamage' imported
FFX Mission Plugin 'm25ai_lowjumper' imported
FFX Mission Plugin 'm25ai_realitymanipulation' imported
FFX Mission Plugin 'cutscene_power' imported
Loading m25enc.py v.3.2.0 July 27, 2008
Loading m25freeroam.py v. 3.2.0 build 7; branch = m25 branch 1
FFX Mission Plugin 'm25encexit' imported
Loading     m25enc_OPENDOOR.py v.1.0.0 build 0; branch = main
FFX Mission Plugin 'm25enc_opendoor' imported
FFX Mission Plugin 'm25enc_reqchar' imported
Loading     m25enc_simplechoice.py v.1.0.0 build 0; branch = main
FFX Mission Plugin 'm25enc_simplechoice' imported
FFX Mission Plugin 'm25encstory' imported
Starting Built-In Function Wrapper 1.5
('Object_CalcPrestige', 'js')
>>> C:\Documents and Settings\Owner\Local Settings\Application Data\Irrational Games\Freedom Force vs the 3rd Reich\temp\base.py executed
MISSION: EZScript MiniMod/Campaign Precache.
PSTORY: {'name': 'My Story', 'encounters': [{'marker': 'batmobile4', 'type': 'Base', 'timeofday': 'none', 'required_map': [], 'trigger': [], 'next': [], 'objectives': [], 'parameters': [], 'name': 'Start', 'cutscenes': [{'replace': [], 'name': 'Start', 'required': ['robin'], 'priority': 1, 'cutscene': ['CS_Start()', "CS_Camera('robin', dist=-160, yaw=0)", 'CS_UnFade(3)', 'CS_End()']}], 'pre': []}, {'marker': 'batmobile4', 'type': 'Cutscene', 'timeofday': 'none', 'required_map': [], 'trigger': ['Briefing'], 'next': [], 'objectives': [], 'parameters': [], 'name': 'Briefing', 'cutscenes': [], 'pre': []}], 'start': []}
PSTORY: {'My Story': {'encounters': {'__lose__': {'action': ['ff.Story_LoseMission()']}, '__win__': {'action': ['ff.Story_WinMission()']}, '__end__': {'action': ["ff.Story_SetStoryEnded('My Story')"]}, 'Start': {'timeofday': 'none', 'next': ['Briefing'], 'trigger': ['start'], 'action': ['DoEncBase(cutscenes = [[\'startcs\', [[\'priority\', 1], [\'required\', \'robin\'], [\'cutscene\', \'CS_Start()\', "CS_Camera(\'robin\', dist=-160, yaw=0)", \'CS_UnFade(3)\', \'CS_End()\']]]], marker = \'batmobile4\')'], 'required_map': []}, 'Briefing': {'timeofday': 'none', 'next': ['__end__'], 'trigger': ['Briefing'], 'action': ["DoEncCutscene(cutscenes = [], marker = 'batmobile4')"], 'required_map': []}}}}
! GetMapInfo
Building_GetDimensions() non-fatal error:
    template 'pier' not found in list of building dimensions.
    To detect approximate dimensions, use
    getBuildingDimensions ()
Building_GetDimensions() non-fatal error:
    template 'pier' not found in list of building dimensions.
    To detect approximate dimensions, use
    getBuildingDimensions ()
Building_GetDimensions() non-fatal error:
    template 'pier' not found in list of building dimensions.
    To detect approximate dimensions, use
    getBuildingDimensions ()
Building_GetDimensions() non-fatal error:
    template 'pier' not found in list of building dimensions.
    To detect approximate dimensions, use
    getBuildingDimensions ()
Building_GetDimensions() non-fatal error:
    template 'pier' not found in list of building dimensions.
    To detect approximate dimensions, use
    getBuildingDimensions ()
Building_GetDimensions() non-fatal error:
    template 'pier' not found in list of building dimensions.
    To detect approximate dimensions, use
    getBuildingDimensions ()
Building_GetDimensions() non-fatal error:
    template 'pier' not found in list of building dimensions.
    To detect approximate dimensions, use
    getBuildingDimensions ()
Building_GetDimensions() non-fatal error:
    template 'pier' not found in list of building dimensions.
    To detect approximate dimensions, use
    getBuildingDimensions ()
Building_GetDimensions() non-fatal error:
    template 'pier' not found in list of building dimensions.
    To detect approximate dimensions, use
    getBuildingDimensions ()
Building_GetDimensions() non-fatal error:
    template 'pier' not found in list of building dimensions.
    To detect approximate dimensions, use
    getBuildingDimensions ()
MISSION: On Post Init... complete; starting story.
ENCOUNTER: PlayEncCutscene(): 'startcs' : 'BaseDone(1)'
ENCOUNTER: PlayCutsceneFromList(): [['priority', 1], ['required', 'robin'], ['cutscene', 'CS_Start()', "CS_Camera('robin', dist=-160, yaw=0)", 'CS_UnFade(3)', 'CS_End()']] : 'BaseDone(1)' ... []
GetCharacterData: called on non-character bat car, template=bat car
CUTSCENE: request to play cutscene.
CUTSCENE:  - CS_Start()
CUTSCENE:  - CS_Camera('robin', dist=-160, yaw=0)
CUTSCENE:  - CS_UnFade(3)
CUTSCENE:  - CS_End()
CUTSCENE: calling PlayCurrentCutscene 1
CUTSCENE: playing ff.CS_Start(1)
CUTSCENE: playing ff.CS_Camera(1,'robin', dist=-160, yaw=0)
GetCharacterData: called on non-character bat car, template=bat car
CUTSCENE: playing ff.CS_UnFade(1,3)
initialising FFQ_initialiseExtras()
Plugin 'firehydrant' OnPostInit() called
Plugin 'zombie' has no OnPostInit()
Plugin 'freeroam_keepbuildingdamage' OnPostInit() called
Plugin 'm25ai_lowjumper' has no OnPostInit()
Plugin 'm25ai_realitymanipulation' has no OnPostInit()
Plugin 'cutscene_power' has no OnPostInit()
Plugin 'm25encexit' has no OnPostInit()
Plugin 'm25enc_opendoor' has no OnPostInit()
Plugin 'm25enc_reqchar' has no OnPostInit()
Plugin 'm25enc_simplechoice' has no OnPostInit()
Plugin 'm25encstory' has no OnPostInit()
CUTSCENE: playing ff.CS_End(1)
CUTSCENE: calling cutscene return function.
Title: Re: EZScript Comics Vol. 2
Post by: Previsionary on January 09, 2009, 07:57:46 AM
well, for one, if I'm following correctly, you're missing the words: "start cutscene".

But maybe I'm wrong. I only compared this entry to your earlier one. *shrugs*. ^_^
Title: Re: EZScript Comics Vol. 2
Post by: M25 on January 09, 2009, 04:24:48 PM
That would be it, yes.  You're missing Start Cutscene:

Title: Re: EZScript Comics Vol. 2
Post by: BentonGrey on January 09, 2009, 04:45:15 PM
Ugghhh.......I'm glad y'all are around, 'cause apparently I'm blind. :P
Title: Re: EZScript Comics Vol. 2
Post by: BentonGrey on January 10, 2009, 05:00:10 AM
Okay, still testing and tweaking Batman (halfway done!), and I was wondering if someone could tell me a little bit about the Cinematic camera.  When it works, it looks SOOO nice, but half the time when I call for Cinematic camera on batman, or whoever, it doesn't work.  It seems almost never to work when I call for it on batman to robin, or the like.  Any advice?




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

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

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



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

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

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

And the script.log:

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

Spoiler
ENCOUNTER: Encounter spawn complete for 2
ENCOUNTER: Encounter cutscenes complete for 2
ENCOUNTER: Encounter goals complete for 2
ENCOUNTER: Encounter objectives complete for 2
ENCOUNTER: Encounter parameters complete for 2
ENCOUNTER: Encounter post function 'Examine_Setup'
ENCOUNTER: 2 - registering EncCustom_DisarmBomb_Disarmed on variable _examined
ENCOUNTER: Encounter post function 'EncCustom_Timer_Start'
ENCOUNTER: 2 - registering EncCustom_DisarmBomb_Explode on variable _customtimerup
ENCOUNTER: Encounter post function 'EncStartOnEnterMarker_Setup'
ENCOUNTER: Encounter post complete for 2
ENCOUNTER: Saving encounter data for 2
ENCOUNTER: PlayEncCutscene(): 'alertcs' : None
ENCOUNTER: PlayCutsceneFromList(): None : None ... []
ENCOUNTER: Encounter setup complete for 2
CUTSCENE: playing ff.CS_Camera(1,'hero_1', dist=-160, yaw=0)
initialising FFQ_initialiseExtras()
CUTSCENE: playing ff.CS_UnFade(1,3)
AI: [SNIP]
initAttribsForChar[SNIP]
Plugin 'firehydrant' OnPostInit() called
Plugin 'zombie' has no OnPostInit()
Plugin 'freeroam_keepbuildingdamage' OnPostInit() called
Plugin 'm25ai_lowjumper' has no OnPostInit()
Plugin 'm25ai_realitymanipulation' has no OnPostInit()
Plugin 'cutscene_power' has no OnPostInit()
Plugin 'm25encexit' has no OnPostInit()
Plugin 'm25enc_opendoor' has no OnPostInit()
Plugin 'm25enc_reqchar' has no OnPostInit()
Plugin 'm25enc_simplechoice' has no OnPostInit()
Plugin 'm25encstory' has no OnPostInit()
initAttribsForChar: [SNIP]
execInitAttrib: init vehicle attribute
    on form_1 of template batwing_veh (batwing_veh)
CUTSCENE: playing ff.CS_End(1)
CUTSCENE: calling cutscene return function.
CUTSCENE: no return function to call.
ENCOUNTER: Enc_CheckStart starting 2
AI: [SNIP]
ENCOUNTER: PlayEncCutscene(): 'startcs' : 'Enc_StandardStartEnable(2)'
ENCOUNTER: PlayCutsceneFromList(): None : 'Enc_StandardStartEnable(2)' ... []
GROUP: 'm25obj_6' automatically promoted to leader of group '2_minion'
GROUP: 'm25obj_6' made leader of group '2_minion'
GOAL: Adding goal Goal_Guard(1002,'m25obj_6',19) to character m25obj_8
[SNIP]
GROUP: '2_minion' set to guard 'm25obj_6'
GOAL: Adding goal Goal_StayWithTeam(1010,20) to character m25obj_6
ENCOUNTER: -- custom check end EncCustom_DisarmBomb_CheckEnd(2) - None
ENCOUNTER: -- custom check end EncCustom_Timer_CheckEnd(2) - ['timer still going']
ENCOUNTER: -- custom check end EncCustom_VillainsFight_CheckEnd(2) - None
GROUP: '2_minion' member koed
ENCOUNTER: PlayEncCutscene(): 'm25obj_22kocs' : None
ENCOUNTER: PlayCutsceneFromList(): None : None ... [['m25obj_22', 'fallen']]
ENCOUNTER: PlayEncCutscene(): 'clown_thugkocs' : None
ENCOUNTER: PlayCutsceneFromList(): None : None ... [['m25obj_22', 'fallen']]
ENCOUNTER: PlayEncCutscene(): 'villainkocs' : None
ENCOUNTER: PlayCutsceneFromList(): None : None ... [['m25obj_22', 'fallen']]
ENCOUNTER: -- custom check end EncCustom_DisarmBomb_CheckEnd(2) - None
ENCOUNTER: -- custom check end EncCustom_Timer_CheckEnd(2) - ['timer still going']
ENCOUNTER: -- custom check end EncCustom_VillainsFight_CheckEnd(2) - None
GROUP: '2_minion' member koed
ENCOUNTER: PlayEncCutscene(): 'm25obj_8kocs' : None
ENCOUNTER: PlayCutsceneFromList(): None : None ... [['m25obj_8', 'fallen']]
ENCOUNTER: PlayEncCutscene(): 'clown_thugkocs' : None
ENCOUNTER: PlayCutsceneFromList(): None : None ... [['m25obj_8', 'fallen']]
ENCOUNTER: PlayEncCutscene(): 'villainkocs' : None
ENCOUNTER: PlayCutsceneFromList(): None : None ... [['m25obj_8', 'fallen']]
ENCOUNTER: -- custom check end EncCustom_DisarmBomb_CheckEnd(2) - None
ENCOUNTER: -- custom check end EncCustom_Timer_CheckEnd(2) - ['timer still going']
ENCOUNTER: -- custom check end EncCustom_VillainsFight_CheckEnd(2) - None
GROUP: '2_minion' member koed
ENCOUNTER: PlayEncCutscene(): 'm25obj_6kocs' : None
ENCOUNTER: PlayCutsceneFromList(): None : None ... [['m25obj_6', 'fallen']]
ENCOUNTER: PlayEncCutscene(): 'harley_quinnkocs' : None
ENCOUNTER: PlayCutsceneFromList(): None : None ... [['m25obj_6', 'fallen']]
ENCOUNTER: PlayEncCutscene(): 'villainkocs' : None
ENCOUNTER: PlayCutsceneFromList(): None : None ... [['m25obj_6', 'fallen']]
ENCOUNTER: -- custom check end EncCustom_DisarmBomb_CheckEnd(2) - None
ENCOUNTER: -- custom check end EncCustom_Timer_CheckEnd(2) - ['timer still going']
ENCOUNTER: -- custom check end EncCustom_VillainsFight_CheckEnd(2) - None
[SNIP]
ENCOUNTER: PlayEncCutscene(): 'm25obj_12kocs' : None
ENCOUNTER: PlayCutsceneFromList(): None : None ... [['m25obj_12', 'fallen']]
ENCOUNTER: PlayEncCutscene(): 'clown_thugkocs' : None
ENCOUNTER: PlayCutsceneFromList(): None : None ... [['m25obj_12', 'fallen']]
ENCOUNTER: PlayEncCutscene(): 'villainkocs' : None
ENCOUNTER: PlayCutsceneFromList(): None : None ... [['m25obj_12', 'fallen']]
ENCOUNTER: -- custom check end EncCustom_DisarmBomb_CheckEnd(2) - None
ENCOUNTER: -- custom check end EncCustom_Timer_CheckEnd(2) - ['timer still going']
ENCOUNTER: -- custom check end EncCustom_VillainsFight_CheckEnd(2) - None
GROUP: '2_minion' member koed
ENCOUNTER: PlayEncCutscene(): 'm25obj_16kocs' : None
ENCOUNTER: PlayCutsceneFromList(): None : None ... [['m25obj_16', 'fallen']]
ENCOUNTER: PlayEncCutscene(): 'clown_thugkocs' : None
ENCOUNTER: PlayCutsceneFromList(): None : None ... [['m25obj_16', 'fallen']]
ENCOUNTER: PlayEncCutscene(): 'villainkocs' : None
ENCOUNTER: PlayCutsceneFromList(): None : None ... [['m25obj_16', 'fallen']]
ENCOUNTER: -- custom check end EncCustom_DisarmBomb_CheckEnd(2) - None
ENCOUNTER: -- custom check end EncCustom_Timer_CheckEnd(2) - ['timer still going']
ENCOUNTER: -- custom check end EncCustom_VillainsFight_CheckEnd(2) - None
GROUP: '2_minion' member koed
ENCOUNTER: PlayEncCutscene(): 'm25obj_20kocs' : None
ENCOUNTER: PlayCutsceneFromList(): None : None ... [['m25obj_20', 'fallen']]
ENCOUNTER: PlayEncCutscene(): 'clown_thugkocs' : None
ENCOUNTER: PlayCutsceneFromList(): None : None ... [['m25obj_20', 'fallen']]
ENCOUNTER: PlayEncCutscene(): 'villainkocs' : None
ENCOUNTER: PlayCutsceneFromList(): None : None ... [['m25obj_20', 'fallen']]
ENCOUNTER: -- custom check end EncCustom_DisarmBomb_CheckEnd(2) - None
ENCOUNTER: -- custom check end EncCustom_Timer_CheckEnd(2) - ['timer still going']
ENCOUNTER: -- custom check end EncCustom_VillainsFight_CheckEnd(2) - None
GROUP: '2_minion' member koed
ENCOUNTER: PlayEncCutscene(): 'm25obj_10kocs' : None
ENCOUNTER: PlayCutsceneFromList(): None : None ... [['m25obj_10', 'fallen']]
ENCOUNTER: PlayEncCutscene(): 'clown_thugkocs' : None
ENCOUNTER: PlayCutsceneFromList(): None : None ... [['m25obj_10', 'fallen']]
ENCOUNTER: PlayEncCutscene(): 'villainkocs' : None
ENCOUNTER: PlayCutsceneFromList(): None : None ... [['m25obj_10', 'fallen']]
ENCOUNTER: -- custom check end EncCustom_DisarmBomb_CheckEnd(2) - None
ENCOUNTER: -- custom check end EncCustom_Timer_CheckEnd(2) - ['timer still going']
ENCOUNTER: -- custom check end EncCustom_VillainsFight_CheckEnd(2) - None
GROUP: '2_minion' leader koed
GROUP: 'm25obj_14' automatically promoted to leader of group '2_minion'
GROUP: 'm25obj_14' made leader of group '2_minion'
GOAL: Removing goal Goal_Guard( from character m25obj_14
GOAL: Removing goal Goal_Guard( from character m25obj_18
GOAL: Adding goal Goal_Guard(1017,'m25obj_14',19) to character m25obj_18
GROUP: '2_minion' set to guard 'm25obj_14'
GOAL: Adding goal Goal_StayWithTeam(1018,20) to character m25obj_14
GROUP: '2_minion' member koed
ENCOUNTER: PlayEncCutscene(): 'm25obj_14kocs' : None
ENCOUNTER: PlayCutsceneFromList(): None : None ... [['m25obj_14', 'fallen']]
ENCOUNTER: PlayEncCutscene(): 'clown_thugkocs' : None
ENCOUNTER: PlayCutsceneFromList(): None : None ... [['m25obj_14', 'fallen']]
ENCOUNTER: PlayEncCutscene(): 'villainkocs' : None
ENCOUNTER: PlayCutsceneFromList(): None : None ... [['m25obj_14', 'fallen']]
ENCOUNTER: -- custom check end EncCustom_DisarmBomb_CheckEnd(2) - None
ENCOUNTER: -- custom check end EncCustom_Timer_CheckEnd(2) - ['timer still going']
ENCOUNTER: -- custom check end EncCustom_VillainsFight_CheckEnd(2) - None
GROUP: '2_minion' leader koed
GROUP: 'm25obj_18' automatically promoted to leader of group '2_minion'
GROUP: 'm25obj_18' made leader of group '2_minion'
GOAL: Removing goal Goal_Guard( from character m25obj_18
GROUP: '2_minion' set to guard 'm25obj_18'
GOAL: Adding goal Goal_StayWithTeam(1019,20) to character m25obj_18
GROUP: '2_minion' member koed
ENCOUNTER: PlayEncCutscene(): 'm25obj_18kocs' : None
ENCOUNTER: PlayCutsceneFromList(): None : None ... [['m25obj_18', 'fallen']]
ENCOUNTER: PlayEncCutscene(): 'clown_thugkocs' : None
ENCOUNTER: PlayCutsceneFromList(): None : None ... [['m25obj_18', 'fallen']]
ENCOUNTER: PlayEncCutscene(): 'villainkocs' : None
ENCOUNTER: PlayCutsceneFromList(): None : None ... [['m25obj_18', 'fallen']]
ENCOUNTER: -- custom check end EncCustom_DisarmBomb_CheckEnd(2) - None
ENCOUNTER: -- custom check end EncCustom_Timer_CheckEnd(2) - ['timer still going']
ENCOUNTER: -- custom check end EncCustom_VillainsFight_CheckEnd(2) - ['villains gone']
GROUP: '2_minion' leader koed
ENCOUNTER: PlayCutsceneFromList(): None : 'Examine_End(2)' ... [['hero_1', 'hero']]
ENCOUNTER: 2 - event callback _examined has value ['EncCustom_DisarmBomb_Disarmed']
ENCOUNTER: 2 - event callback _examined calling EncCustom_DisarmBomb_Disarmed
ENCOUNTER: 2 - event callback _customtimerstopped has value []
ENCOUNTER: PlayEncCutscene(): 'bombdisarmedcs' : 'EncCheckEnd(2)'
ENCOUNTER: PlayCutsceneFromList(): [['priority', 1], ['required', 'robin'], ['cutscene', 'CS_Start()', "CS_Camera('robin', dist=-160, yaw=0)", "CS_Speak('robin', 'Whew, that was just too close!', force=0)", 'CS_End()']] : 'EncCheckEnd(2)' ... []
CUTSCENE: request to play cutscene.
CUTSCENE:  - CS_Start()
CUTSCENE:  - CS_Camera('robin', dist=-160, yaw=0)
CUTSCENE:  - CS_Speak('robin','Whew, that was just too close!', force=0)
CUTSCENE:  - CS_End()
CUTSCENE: calling PlayCurrentCutscene 2
CUTSCENE: playing ff.CS_Start(2)
ENCOUNTER: -- custom check end EncCustom_DisarmBomb_CheckEnd(2) - ['bomb disarmed']
ENCOUNTER: -- custom check end EncCustom_Timer_CheckEnd(2) - ['timer still going']
ENCOUNTER: -- custom check end EncCustom_VillainsFight_CheckEnd(2) - ['villains gone']
ENCOUNTER: PlayEncCutscene(): 'endcs' : "EncCustom_CleanUp(2, ['end', 'bomb disarmed', 'timer still going', 'villains gone'])"
ENCOUNTER: PlayCutsceneFromList(): None : "EncCustom_CleanUp(2, ['end', 'bomb disarmed', 'timer still going', 'villains gone'])" ... []
ENCOUNTER: Encounter ended 2 with ['end', 'bomb disarmed', 'timer still going', 'villains gone']
CUTSCENE: playing ff.CS_Camera(2,'robin', dist=-160, yaw=0)
CUTSCENE: playing ff.CS_Speak(2,'robin','Whew, that was just too close!', force=0)
ENCOUNTER: Setting up encounter 3
ENCOUNTER: Start marker found for ['vent1'] 'vent1'
ENCOUNTER: No markers for 3 [['allyleave', 'vent1_allyleave', 'dist500']]
[SNIP]
[SNIP]
CUTSCENE: playing ff.CS_End(2)
AI: [SNIP]
CUTSCENE: calling cutscene return function.
CUTSCENE: retrieving the next cutscene from the queue.
GROUP: 'm25obj_22' removed from group '2_minion'
GROUP: '2_minion' set to ['m25obj_6', 'm25obj_8', 'm25obj_10', 'm25obj_12', 'm25obj_14', 'm25obj_16', 'm25obj_18', 'm25obj_20']
CUTSCENE: playing ff.CS_Start(3)
CUTSCENE: playing ff.CS_Fade(3,2)
AI: [SNIP]
GROUP: 'm25obj_8' removed from group '2_minion'
GROUP: '2_minion' set to ['m25obj_6', 'm25obj_10', 'm25obj_12', 'm25obj_14', 'm25obj_16', 'm25obj_18', 'm25obj_20']
GROUP: 'm25obj_12' removed from group '2_minion'
GROUP: '2_minion' set to ['m25obj_6', 'm25obj_10', 'm25obj_14', 'm25obj_16', 'm25obj_18', 'm25obj_20']
GROUP: 'm25obj_16' removed from group '2_minion'
GROUP: '2_minion' set to ['m25obj_6', 'm25obj_10', 'm25obj_14', 'm25obj_18', 'm25obj_20']
AI: [SNIP]
GROUP: 'm25obj_20' removed from group '2_minion'
GROUP: '2_minion' set to ['m25obj_6', 'm25obj_10', 'm25obj_14', 'm25obj_18']
CUTSCENE: playing ff.CS_TeleportTo(3,'catwoman', 'batman')
GROUP: 'm25obj_10' removed from group '2_minion'
GROUP: '2_minion' set to ['m25obj_6', 'm25obj_14', 'm25obj_18']
CUTSCENE: playing ff.CS_CinematicCamera(3,'catwoman')
GROUP: 'm25obj_14' removed from group '2_minion'
GROUP: '2_minion' set to ['m25obj_6', 'm25obj_18']
CUTSCENE: playing ff.CS_UnFade(3,2)
CUTSCENE: playing ff.CS_AddArrow(3,'m25obj_24arrow', 'm25obj_24', arrow_type=js.ARROW_YELLOW)
addArrow m25obj_24arrow m25obj_24 1 1
CUTSCENE: playing ff.CS_TurnTo(3,'catwoman', 'batman')
CUTSCENE: playing ff.CS_Speak(3,'catwoman','Finally! now that this is all over, can we please go find that little wooden twerp? There were rumors about a jewel heist...', force=0)
GROUP: 'm25obj_6' removed from group '2_minion'
GROUP: '2_minion' set to ['m25obj_18']
GROUP: 'm25obj_18' removed from group '2_minion'
GROUP: '2_minion' set to []
GROUP: empty '2_minion' cannot have a leader promoted
ENCOUNTER: 2 - event callback _customtimerup has value ['EncCustom_DisarmBomb_Explode']
ENCOUNTER: 2 - event callback _customtimerup calling EncCustom_DisarmBomb_Explode
ENCOUNTER: PlayEncCutscene(): 'bombexplodingcs' : 'EncCustom_DisarmBomb_Explode2(2)'
ENCOUNTER: PlayCutsceneFromList(): [['priority', 1], ['required', 'batman'], ['cutscene', 'CS_Start()', "CS_Camera('batman', dist=-160, yaw=0)", "CS_Speak('batman', 'Oh no!', force=0)", 'CS_End()']] : 'EncCustom_DisarmBomb_Explode2(2)' ... []
CUTSCENE: request to play cutscene.
CUTSCENE:  - CS_Start()
CUTSCENE:  - CS_Camera('batman', dist=-160, yaw=0)
CUTSCENE:  - CS_Speak('batman','Oh no!', force=0)
CUTSCENE:  - CS_End()
CUTSCENE: adding cutscene to queue.
CUTSCENE: playing ff.CS_TurnTo(3,'batman', 'catwoman')
CUTSCENE: playing ff.CS_Speak(3,'batman',"Hmm...Gotham Jems is in this area, let's go check it out.", force=0)
CUTSCENE: playing ff.CS_End(3)
CUTSCENE: calling cutscene return function.
CUTSCENE: no return function to call.
CUTSCENE: retrieving the next cutscene from the queue.
CUTSCENE: playing ff.CS_Start(4)
CUTSCENE: playing ff.CS_Camera(4,'batman', dist=-160, yaw=0)
CUTSCENE: playing ff.CS_Speak(4,'batman','Oh no!', force=0)
CUTSCENE: playing ff.CS_End(4)
CUTSCENE: calling cutscene return function.
GROUP: 'm25obj_4' removed from group '2_bomb'
GROUP: '2_bomb' set to []
GROUP: empty '2_bomb' cannot have a leader promoted
Title: Re: EZScript Comics Vol. 2
Post by: GogglesPizanno on January 10, 2009, 05:21:23 AM
Quoteby the way, what do you need to name a marker in order for a bomb to spawn there?  I've tried both object1 and item1 with no luck.

I think you can use any marker on the map you want, just give the encounter a "Marker: marker_name" entry to tell the bomb encounter to start there... or am I misunderstanding the question?
Title: Re: EZScript Comics Vol. 2
Post by: BentonGrey on January 10, 2009, 05:40:51 AM
Yeah Goggles, I should have been more specifc, I mean the bomb itself, the actual device.  I've got encounter1_villain1, encounter1_object1, encounter1_item1, etc., but the bomb is still spawning wherever it pleases (which happens to be inside a building, rather than on top of it).

One more question, I know that captions can be generated by having the game scan the 'stories' directory, but can I just toss copies of all of my 'mission' files in that folder and get all three campaigns captioned that way?  Will the game recognize line by line, or do I need to have Story: BLANK in each story?
Title: Re: EZScript Comics Vol. 2
Post by: M25 on January 10, 2009, 11:00:42 PM
I sent a patch to the email address I had for you (the yahoo one).  It should correct an issue with the cinematic camera and with the disarm bomb encounter not preventing the explosion.

The bomb is spawned at <encounter_marker>_bomb1


Title: Re: EZScript Comics Vol. 2
Post by: BentonGrey on January 10, 2009, 11:35:37 PM
Thanks so much M!  I want to tell you, that this mod would not have been even remotely possible without you, first for being part of the FFX team, and second for all of the help you've given me here. :D
Title: Re: EZScript Comics Vol. 2
Post by: BentonGrey on January 13, 2009, 03:51:18 AM
Alright, D-Day+2, and I'm trying to fit in all the pieces.  First off, I'm having trouble with captions.  I've run the captions generator, but my missions are still just scrolling text, no talking heads (and I've got animportrait entries for all of the pertinent characters).  I'm I missing something here?  I went through every mission, renamed the mission and base file's "Story: My Story" entries to be unique (01jlabase, 01jla, etc.), and copied and pasted them into my Stories folder.  Then I ran the Captions Generator.  Thoughts?




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

Spoiler
Encounter: Briefing
Type: Cutscene
Starts When: Briefing

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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

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

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

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


Title: Re: EZScript Comics Vol. 2
Post by: BentonGrey on January 13, 2009, 07:55:27 PM
No, I believe that is where it ended M.  I was definitely not getting anything with the captions generator, I'll try it again and check the log. 

:EDIT: Ohh, there was this, after a few dozen lines of blank space:
^
SyntaxError: invalid token
Title: Re: EZScript Comics Vol. 2
Post by: M25 on January 13, 2009, 08:39:38 PM
EZ script seems to be mangling the line with 10:00 AM in it. 

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

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

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


Title: Re: EZScript Comics Vol. 2
Post by: BentonGrey on January 18, 2009, 05:39:44 AM
Thanks M!  Freaking colons!  Ha, thanks to you, the DCUG has been released, and is in (mostly) working order.  I do have one thing that I can't figure out (so far), and I was hoping someone might have some insight.

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

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

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

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

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

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

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

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

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

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

servants!"

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

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

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

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

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

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

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

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

Spoiler
CUTSCENE: calling cutscene return function.
GROUP: 'm25obj_110' automatically promoted to leader of group '9_minion'
GROUP: 'm25obj_110' made leader of group '9_minion'
GOAL:[SNIP]
GROUP: '9_minion' set to guard 'm25obj_110'
GOAL: Adding goal Goal_StayWithTeam(1085,20) to character m25obj_110
ENCOUNTER: -- custom check end EncCustom_VillainsFight_CheckEnd(9) - None
ENCOUNTER: -- custom check end EncCustom_InvulnerableEndMinions_CheckEnd(9) - None
AI: m25obj_4:'aquaman_classic' goal move to hero 'hero_2'
AI: m25obj_126:'white_martian' goal guard (-120.658997682, -188.316273968, 36.7567863464)
AI: m25obj_6:'wonder_woman' goal move to hero 'hero_2'
AI: m25obj_2:'batman' goal move to hero 'hero_2'
GROUP: '9_minion' member koed
ENCOUNTER: PlayEncCutscene(): 'm25obj_118kocs' : None
ENCOUNTER: PlayCutsceneFromList(): None : None ... [['m25obj_118', 'fallen']]
ENCOUNTER: PlayEncCutscene(): 'white_martiankocs' : None
ENCOUNTER: PlayCutsceneFromList(): None : None ... [['m25obj_118', 'fallen']]
ENCOUNTER: PlayEncCutscene(): 'minionkocs' : None
ENCOUNTER: PlayCutsceneFromList(): None : None ... [['m25obj_118', 'fallen']]
ENCOUNTER: -- custom check end EncCustom_VillainsFight_CheckEnd(9) - None
ENCOUNTER: -- custom check end EncCustom_InvulnerableEndMinions_CheckEnd(9) - None
AI: m25obj_4:'aquaman_classic' goal move to hero 'hero_2'
GROUP: '9_minion' member koed
ENCOUNTER: PlayEncCutscene(): 'm25obj_114kocs' : None
ENCOUNTER: PlayCutsceneFromList(): None : None ... [['m25obj_114', 'fallen']]
ENCOUNTER: PlayEncCutscene(): 'white_martiankocs' : None
ENCOUNTER: PlayCutsceneFromList(): None : None ... [['m25obj_114', 'fallen']]
ENCOUNTER: PlayEncCutscene(): 'minionkocs' : None
ENCOUNTER: PlayCutsceneFromList(): None : None ... [['m25obj_114', 'fallen']]
ENCOUNTER: -- custom check end EncCustom_VillainsFight_CheckEnd(9) - None
ENCOUNTER: -- custom check end EncCustom_InvulnerableEndMinions_CheckEnd(9) - None
GROUP: '9_minion' member koed
ENCOUNTER: PlayEncCutscene(): 'm25obj_112kocs' : None
ENCOUNTER: PlayCutsceneFromList(): None : None ... [['m25obj_112', 'fallen']]
ENCOUNTER: PlayEncCutscene(): 'white_martiankocs' : None
ENCOUNTER: PlayCutsceneFromList(): None : None ... [['m25obj_112', 'fallen']]
ENCOUNTER: PlayEncCutscene(): 'minionkocs' : None
ENCOUNTER: PlayCutsceneFromList(): None : None ... [['m25obj_112', 'fallen']]
ENCOUNTER: -- custom check end EncCustom_VillainsFight_CheckEnd(9) - None
ENCOUNTER: -- custom check end EncCustom_InvulnerableEndMinions_CheckEnd(9) - None
GROUP: '9_minion' member koed
ENCOUNTER: PlayEncCutscene(): 'm25obj_124kocs' : None
ENCOUNTER: PlayCutsceneFromList(): None : None ... [['m25obj_124', 'fallen']]
ENCOUNTER: PlayEncCutscene(): 'white_martiankocs' : None
ENCOUNTER: PlayCutsceneFromList(): None : None ... [['m25obj_124', 'fallen']]
ENCOUNTER: PlayEncCutscene(): 'minionkocs' : None
ENCOUNTER: PlayCutsceneFromList(): None : None ... [['m25obj_124', 'fallen']]
ENCOUNTER: -- custom check end EncCustom_VillainsFight_CheckEnd(9) - None
ENCOUNTER: -- custom check end EncCustom_InvulnerableEndMinions_CheckEnd(9) - None
GROUP: '9_minion' member koed
ENCOUNTER: PlayEncCutscene(): 'm25obj_110kocs' : None
ENCOUNTER: PlayCutsceneFromList(): None : None ... [['m25obj_110', 'fallen']]
ENCOUNTER: PlayEncCutscene(): 'white_martiankocs' : None
ENCOUNTER: PlayCutsceneFromList(): None : None ... [['m25obj_110', 'fallen']]
ENCOUNTER: PlayEncCutscene(): 'minionkocs' : None
ENCOUNTER: PlayCutsceneFromList(): None : None ... [['m25obj_110', 'fallen']]
ENCOUNTER: -- custom check end EncCustom_VillainsFight_CheckEnd(9) - None
ENCOUNTER: -- custom check end EncCustom_InvulnerableEndMinions_CheckEnd(9) - None
GROUP: '9_minion' leader koed
GROUP: 'm25obj_116' automatically promoted to leader of group '9_minion'
GROUP: 'm25obj_116' made leader of group '9_minion'
GOAL: [SNIP]
GROUP: '9_minion' set to guard 'm25obj_116'
GOAL: Adding goal Goal_StayWithTeam(1093,20) to character m25obj_116
GROUP: '9_minion' member koed
ENCOUNTER: PlayEncCutscene(): 'm25obj_128kocs' : None
ENCOUNTER: PlayCutsceneFromList(): None : None ... [['m25obj_128', 'fallen']]
ENCOUNTER: PlayEncCutscene(): 'white_martiankocs' : None
ENCOUNTER: PlayCutsceneFromList(): None : None ... [['m25obj_128', 'fallen']]
ENCOUNTER: PlayEncCutscene(): 'minionkocs' : None
ENCOUNTER: PlayCutsceneFromList(): None : None ... [['m25obj_128', 'fallen']]
ENCOUNTER: -- custom check end EncCustom_VillainsFight_CheckEnd(9) - None
ENCOUNTER: -- custom check end EncCustom_InvulnerableEndMinions_CheckEnd(9) - None
GROUP: '9_minion' member koed
ENCOUNTER: PlayEncCutscene(): 'm25obj_126kocs' : None
ENCOUNTER: PlayCutsceneFromList(): None : None ... [['m25obj_126', 'fallen']]
ENCOUNTER: PlayEncCutscene(): 'white_martiankocs' : None
ENCOUNTER: PlayCutsceneFromList(): None : None ... [['m25obj_126', 'fallen']]
ENCOUNTER: PlayEncCutscene(): 'minionkocs' : None
ENCOUNTER: PlayCutsceneFromList(): None : None ... [['m25obj_126', 'fallen']]
ENCOUNTER: -- custom check end EncCustom_VillainsFight_CheckEnd(9) - None
ENCOUNTER: -- custom check end EncCustom_InvulnerableEndMinions_CheckEnd(9) - None
GROUP: '9_minion' member koed
ENCOUNTER: PlayEncCutscene(): 'm25obj_130kocs' : None
ENCOUNTER: PlayCutsceneFromList(): None : None ... [['m25obj_130', 'fallen']]
ENCOUNTER: PlayEncCutscene(): 'white_martiankocs' : None
ENCOUNTER: PlayCutsceneFromList(): None : None ... [['m25obj_130', 'fallen']]
ENCOUNTER: PlayEncCutscene(): 'minionkocs' : None
ENCOUNTER: PlayCutsceneFromList(): None : None ... [['m25obj_130', 'fallen']]
ENCOUNTER: -- custom check end EncCustom_VillainsFight_CheckEnd(9) - None
ENCOUNTER: -- custom check end EncCustom_InvulnerableEndMinions_CheckEnd(9) - None
GROUP: '9_minion' member koed
ENCOUNTER: PlayEncCutscene(): 'm25obj_132kocs' : None
ENCOUNTER: PlayCutsceneFromList(): None : None ... [['m25obj_132', 'fallen']]
ENCOUNTER: PlayEncCutscene(): 'white_martiankocs' : None
ENCOUNTER: PlayCutsceneFromList(): None : None ... [['m25obj_132', 'fallen']]
ENCOUNTER: PlayEncCutscene(): 'minionkocs' : None
ENCOUNTER: PlayCutsceneFromList(): None : None ... [['m25obj_132', 'fallen']]
ENCOUNTER: -- custom check end EncCustom_VillainsFight_CheckEnd(9) - None
ENCOUNTER: -- custom check end EncCustom_InvulnerableEndMinions_CheckEnd(9) - None
GROUP: '9_minion' member koed
ENCOUNTER: PlayEncCutscene(): 'm25obj_116kocs' : None
ENCOUNTER: PlayCutsceneFromList(): None : None ... [['m25obj_116', 'fallen']]
ENCOUNTER: PlayEncCutscene(): 'white_martiankocs' : None
ENCOUNTER: PlayCutsceneFromList(): None : None ... [['m25obj_116', 'fallen']]
ENCOUNTER: PlayEncCutscene(): 'minionkocs' : None
ENCOUNTER: PlayCutsceneFromList(): None : None ... [['m25obj_116', 'fallen']]
ENCOUNTER: -- custom check end EncCustom_VillainsFight_CheckEnd(9) - None
ENCOUNTER: -- custom check end EncCustom_InvulnerableEndMinions_CheckEnd(9) - None
GROUP: '9_minion' leader koed
GROUP: 'm25obj_120' automatically promoted to leader of group '9_minion'
GROUP: 'm25obj_120' made leader of group '9_minion'
GOAL: Removing goal Goal_Guard( from character m25obj_120
GOAL: Removing goal Goal_Guard( from character m25obj_122
GOAL: Adding goal Goal_Guard(1094,'m25obj_120',19) to character m25obj_122
GOAL: Removing goal Goal_Guard( from character m25obj_134
GOAL: Adding goal Goal_Guard(1095,'m25obj_120',19) to character m25obj_134
GROUP: '9_minion' set to guard 'm25obj_120'
GOAL: Adding goal Goal_StayWithTeam(1096,20) to character m25obj_120
GROUP: '9_minion' member koed
ENCOUNTER: PlayEncCutscene(): 'm25obj_120kocs' : None
ENCOUNTER: PlayCutsceneFromList(): None : None ... [['m25obj_120', 'fallen']]
ENCOUNTER: PlayEncCutscene(): 'white_martiankocs' : None
ENCOUNTER: PlayCutsceneFromList(): None : None ... [['m25obj_120', 'fallen']]
ENCOUNTER: PlayEncCutscene(): 'minionkocs' : None
ENCOUNTER: PlayCutsceneFromList(): None : None ... [['m25obj_120', 'fallen']]
ENCOUNTER: -- custom check end EncCustom_VillainsFight_CheckEnd(9) - None
ENCOUNTER: -- custom check end EncCustom_InvulnerableEndMinions_CheckEnd(9) - None
GROUP: '9_minion' leader koed
GROUP: 'm25obj_122' automatically promoted to leader of group '9_minion'
GROUP: 'm25obj_122' made leader of group '9_minion'
GOAL: Removing goal Goal_Guard( from character m25obj_122
GOAL: Removing goal Goal_Guard( from character m25obj_134
GOAL: Adding goal Goal_Guard(1097,'m25obj_122',19) to character m25obj_134
GROUP: '9_minion' set to guard 'm25obj_122'
GOAL: Adding goal Goal_StayWithTeam(1098,20) to character m25obj_122
AI: m25obj_4:'aquaman_classic' move to 'm25obj_122'
GROUP: '9_minion' member koed
ENCOUNTER: PlayEncCutscene(): 'm25obj_122kocs' : None
ENCOUNTER: PlayCutsceneFromList(): None : None ... [['m25obj_122', 'fallen']]
ENCOUNTER: PlayEncCutscene(): 'white_martiankocs' : None
ENCOUNTER: PlayCutsceneFromList(): None : None ... [['m25obj_122', 'fallen']]
ENCOUNTER: PlayEncCutscene(): 'minionkocs' : None
ENCOUNTER: PlayCutsceneFromList(): None : None ... [['m25obj_122', 'fallen']]
ENCOUNTER: -- custom check end EncCustom_VillainsFight_CheckEnd(9) - None
ENCOUNTER: 9 - event callback _invulnerability_over has value ['EncCustom_InvulnerableVillain_Over']
ENCOUNTER: 9 - event callback _invulnerability_over calling EncCustom_InvulnerableVillain_Over
ENCOUNTER: -- custom check end EncCustom_InvulnerableEndMinions_CheckEnd(9) - None
GROUP: '9_minion' leader koed
GROUP: 'm25obj_134' automatically promoted to leader of group '9_minion'
GROUP: 'm25obj_134' made leader of group '9_minion'
GOAL: Removing goal Goal_Guard( from character m25obj_134
GROUP: '9_minion' set to guard 'm25obj_134'
GOAL: Adding goal Goal_StayWithTeam(1099,20) to character m25obj_134
AI: m25obj_2:'batman' goal move to hero 'hero_2'
GOAL: Adding goal Goal_Throw(1100,'sc_boulder_extra_large4','move',1.0,21) to character m25obj_4
AI: m25obj_4:'aquaman_classic' preparing to throw
GOAL: Removing goal Goal_Throw from character m25obj_4
AI: m25obj_4 : 'aquaman_classic' ffx.OnLeapTo(target,char) attack on 'm25obj_134'
AI: m25obj_4 overpowers his/her/its attack!
AI: m25obj_4:'aquaman_classic' aqua deep sea punch attack on 'm25obj_134'
AI: m25obj_2:'batman' goal move to hero 'hero_2'
GROUP: 'm25obj_118' removed from group '9_minion'
GROUP: '9_minion' set to ['m25obj_110', 'm25obj_112', 'm25obj_114', 'm25obj_116', 'm25obj_120', 'm25obj_122', 'm25obj_124', 'm25obj_126', 'm25obj_128', 'm25obj_130', 'm25obj_132', 'm25obj_134']
clearCarrierRegistration: clearing attribute 'ragetocrystallisehero_2' for destroyed object 'm25obj_118'
AI: m25obj_4:'aquaman_classic' move to 'm25obj_134'
GROUP: 'm25obj_114' removed from group '9_minion'
GROUP: '9_minion' set to ['m25obj_110', 'm25obj_112', 'm25obj_116', 'm25obj_120', 'm25obj_122', 'm25obj_124', 'm25obj_126', 'm25obj_128', 'm25obj_130', 'm25obj_132', 'm25obj_134']
clearCarrierRegistration: clearing attribute 'ragetocrystallisehero_2' for destroyed object 'm25obj_114'
GROUP: 'm25obj_112' removed from group '9_minion'
GROUP: '9_minion' set to ['m25obj_110', 'm25obj_116', 'm25obj_120', 'm25obj_122', 'm25obj_124', 'm25obj_126', 'm25obj_128', 'm25obj_130', 'm25obj_132', 'm25obj_134']
clearCarrierRegistration: clearing attribute 'ragetocrystallisehero_2' for destroyed object 'm25obj_112'
GROUP: 'm25obj_124' removed from group '9_minion'
GROUP: '9_minion' set to ['m25obj_110', 'm25obj_116', 'm25obj_120', 'm25obj_122', 'm25obj_126', 'm25obj_128', 'm25obj_130', 'm25obj_132', 'm25obj_134']
clearCarrierRegistration: clearing attribute 'ragetocrystallisehero_2' for destroyed object 'm25obj_124'
GROUP: 'm25obj_110' removed from group '9_minion'
GROUP: '9_minion' set to ['m25obj_116', 'm25obj_120', 'm25obj_122', 'm25obj_126', 'm25obj_128', 'm25obj_130', 'm25obj_132', 'm25obj_134']
clearCarrierRegistration: clearing attribute 'ragetocrystallisehero_2' for destroyed object 'm25obj_110'
GROUP: 'm25obj_128' removed from group '9_minion'
GROUP: '9_minion' set to ['m25obj_116', 'm25obj_120', 'm25obj_122', 'm25obj_126', 'm25obj_130', 'm25obj_132', 'm25obj_134']
clearCarrierRegistration: clearing attribute 'ragetocrystallisehero_2' for destroyed object 'm25obj_128'
GROUP: 'm25obj_126' removed from group '9_minion'
GROUP: '9_minion' set to ['m25obj_116', 'm25obj_120', 'm25obj_122', 'm25obj_130', 'm25obj_132', 'm25obj_134']
clearCarrierRegistration: clearing attribute 'ragetocrystallisehero_2' for destroyed object 'm25obj_126'
GROUP: 'm25obj_130' removed from group '9_minion'
GROUP: '9_minion' set to ['m25obj_116', 'm25obj_120', 'm25obj_122', 'm25obj_132', 'm25obj_134']
clearCarrierRegistration: clearing attribute 'ragetocrystallisehero_2' for destroyed object 'm25obj_130'
GROUP: 'm25obj_132' removed from group '9_minion'
GROUP: '9_minion' set to ['m25obj_116', 'm25obj_120', 'm25obj_122', 'm25obj_134']
clearCarrierRegistration: clearing attribute 'ragetocrystallisehero_2' for destroyed object 'm25obj_132'
GROUP: 'm25obj_116' removed from group '9_minion'
GROUP: '9_minion' set to ['m25obj_120', 'm25obj_122', 'm25obj_134']
clearCarrierRegistration: clearing attribute 'ragetocrystallisehero_2' for destroyed object 'm25obj_116'
GROUP: 'm25obj_120' removed from group '9_minion'
GROUP: '9_minion' set to ['m25obj_122', 'm25obj_134']
clearCarrierRegistration: clearing attribute 'ragetocrystallisehero_2' for destroyed object 'm25obj_120'
GROUP: 'm25obj_122' removed from group '9_minion'
GROUP: '9_minion' set to ['m25obj_134']
clearCarrierRegistration: clearing attribute 'ragetocrystallisehero_2' for destroyed object 'm25obj_122'
GROUP: '9_minion' member koed
ENCOUNTER: PlayEncCutscene(): 'm25obj_134kocs' : None
ENCOUNTER: PlayCutsceneFromList(): None : None ... [['m25obj_134', 'fallen']]
ENCOUNTER: PlayEncCutscene(): 'bel_juzkocs' : None
ENCOUNTER: PlayCutsceneFromList(): None : None ... [['m25obj_134', 'fallen']]
ENCOUNTER: PlayEncCutscene(): 'villainkocs' : None
ENCOUNTER: PlayCutsceneFromList(): None : None ... [['m25obj_134', 'fallen']]
ENCOUNTER: -- custom check end EncCustom_VillainsFight_CheckEnd(9) - ['villains gone']
ENCOUNTER: -- custom check end EncCustom_InvulnerableEndMinions_CheckEnd(9) - None
speak('m25obj_134','SPEECH_Y4_INTEROGATEME_01')
cshelper: Cutscene [cutscene] submitted for playing
cshelper: Now playing cutscene [cutscene]
Step 1 of 2
0
GROUP: '9_minion' leader koed
Step 2 of 2
cshelper: Cutscene [cutscene] has ended
AI: AISetRunning m25obj_134 to 0
Title: Re: EZScript Comics Vol. 2
Post by: M25 on January 18, 2009, 06:56:08 PM
I think the 'Invulnerability can End' action is canceling out the invulnerability granted by being interrogatable (so the villain is getting ko'd).  I'll see if I can fix that.

Title: Re: EZScript Comics Vol. 2
Post by: BentonGrey on January 18, 2009, 09:04:40 PM
Bizarre!  It didn't do that when I tested it before compiling the captions, but maybe I just got lucky.
Title: Re: EZScript Comics Vol. 2
Post by: BentonGrey on February 05, 2009, 01:13:36 AM
Howdy guys!  I've got a quick (and hopefully simple) question for you.  I'm working on a level where Aquaman storms an island held by mercenaries.  The idea is to have a few different encounters, as well as roving patrols.  What I'd like to know, is how can I set up a squad of soldiers so that they patrol the island?
Title: Re: EZScript Comics Vol. 2
Post by: M25 on February 05, 2009, 03:55:26 PM
An add-on for handling patrols is in the works.

Title: Re: EZScript Comics Vol. 2
Post by: BentonGrey on February 05, 2009, 05:51:50 PM
M, you are undoubtedly, unequivocally, the man. :D
Title: Re: EZScript Comics Vol. 2
Post by: BentonGrey on February 16, 2009, 05:38:03 PM
Okay, I'm trying to work out how to do something, and I could use a little advice.  So, I've got the first Aquaman mission, where Aquaman is taking out teams of gunmen in various kinds of encounters until the boss shows up.  When he shows up, I want a nice, epic fight, followed by a cutscene in which an ally talks to our hero, telling him the place is wired to blow.  At this point, I want a race to the shore, while the villain is revived and attacks again.  What I'm doing at the moment is a custom encoutner in which the ally is incapacitated until you remove the villains, and the villain can be interrogated.  That should be fine, but how can I go about reviving this villain for the next encounter?  The only thing I can think to do is just spawn him again, and wait until the body of the first one is likely to have disappeared with the screen blacked out.  I remembered that naming trick M advised for the JLA mission with the turrets, but I'm not sure how to apply it.
Title: Re: EZScript Comics Vol. 2
Post by: M25 on February 16, 2009, 05:58:02 PM
You can use the same character in multiple encounters by giving them a name.

Encounter: One
Villains: my_villain named bob

Then you can use bob in a second encounter by specifying the name again

Encounter: Two
Villains: my_villain named bob

And you can revive bob in a cutscene

Alert Cutscene:
bob is revived


Title: Re: EZScript Comics Vol. 2
Post by: BentonGrey on February 16, 2009, 06:33:08 PM
That's what I thought, M.  Thanks for clarifying!

:EDIT: So, the EZScript editor is awesome, and it kept me from making any of the piddly little errors that normally plague me, but I do seem to have a problem with a custom encounter.

Pertinent area of the script.log
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(7,villains = [['bob', 'marine_marauder']], minions = ['terror_marine'], cutscenes = [['alertcs', [['priority', 1], ['required', 'bob'], ['cutscene', 'CS_Start()', "CS_CinematicCamera('bob')", 'CS_Speak(\'bob\', "What in the world is going on up here? Report! If I don\'t get some answers, I\'ll skin each and every one of you alive!", force=0)', 'CS_End()']]], ['startcs', [['priority', 1], ['required', 'aquaman_young', 'bob'], ['cutscene', 'CS_Start()', "CS_CinematicCamera('aquaman_young')", "CS_TurnTo('aquaman_young', 'bob')", "CS_TurnTo('bob', 'aquaman_young')", 'CS_Speak(\'aquaman_young\', "You must be the man in charge. These people are under my protection. You\'ve got about thirty seconds to lay down your weapons and surrender, or I\'m going make sure you don\'t wake up until you\'re in a cell...or a hospital bed.", force=0)', "CS_Animate('aquaman_young','ranged')", "CS_Camera('bob', dist=-160, yaw=0)", 'CS_Speak(\'bob\', "Just who do you think you are? I gather you\'re the reason that my men aren\'t answering their radios...and you\'re obviously not with the Royal Navy...so just who ARE you?", force=0)', 'CS_Speak(\'aquaman_young\', "People have taken to calling me aquaman. Let\'s stick with that. I suppose you\'re the Marauder I\'ve heard so much about. Now drop your guns.", force=0)', 'CS_Speak(\'bob\', "So YOU\'RE the aquaman, huh? I\'ve heard about you...and that incident with those pirates in the Indian Ocean...some kind of freak, right? You can talk to fish, breathe underwater, huh? Well, let\'s see what you can do.", force=0)', "CS_Speak('aquaman_young', 'With pleasure...', force=0)", 'CS_End()']]], ['allyfreedcs', [['priority', 1], ['replace', ['ally1', 'ally']], ['required', 'aquaman_young', 'front5'], ['cutscene', 'CS_Start()', "CS_CinematicCamera('ally1','aquaman_young')", "CS_TurnTo('ally1', 'aquaman_young')", 'CS_Speak(\'aquaman_young\', "You\'re the project leader, right? Are you okay?", force=0)', 'CS_Speak(\'ally1\', "That\'s not important, we\'ve got to get out of here!", force=0)', 'CS_Speak(\'aquaman_young\', "It\'s okay, calm down.  I\'ve taken care of all the gunmen. No-one is going to hurt you.", force=0)', 'CS_Speak(\'ally1\', "No, you don\'t understand! When I realized what these blackguards were after I knew I couldn\'t let them get their hands on our research. I managed to sneak away, and I set our generator to overload.  We have to get off this island NOW!", force=0)', 'CS_Speak(\'aquaman_young\', "Well, why didn\'t you say so! Make for the dock!", force=0)', 'CS_Speak(\'ally1\', "But there\'s no boat, what are we supposed to do?", force=0)', "CS_Speak('aquaman_young', 'Leave that to me!', force=0)", "CS_MoveTo('ally1', 'front5')", 'CS_End()']]], ['interrogationcs', [['priority', 1], ['required', 'aquaman_young', 'bob'], ['cutscene', 'CS_Start()', "CS_TurnTo('aquaman_young', 'bob')", 'CS_Speak(\'aquaman_young\', \'Alright, talk. What were you after here?"\\013bob says, "Heh...you...you\\\'re tougher than you look fishman....you should have told me that you\\\'re bulletproof...and strong enough to bend steel...\', force=0)', 'CS_Speak(\'aquaman_young\', "And you need to tell ME what you were after...or I\'ll show you just how strong I am...", force=0)', "CS_Animate('aquaman_young','melee_idle')", 'CS_Speak(\'bob\', "Take...take it easy Nemo...I\'ll tell ya\'. I got wind of the work these eggheads were doing, and one of my tech contacts informed me of the potential...military benefits it would have.", force=0)', 'CS_Speak(\'aquaman_young\', "I\'m listening.", force=0)', "CS_Speak('bob', 'Yeah, well...these acoustic devices they were developing, they can be used to talk to fish...', force=0)", 'CS_Speak(\'aquaman_young\', "Dolphins aren\'t fish.", force=0)', 'CS_Speak(\'bob\', "Whatever! They can also be used to screw up a missle\'s guidance system. You aim something like this at a torpedo, or a SAM, and it will lose its electronic mind...just go anywhere it pleases. Something like that could be worth a pretty penny.", force=0)', 'CS_Speak(\'aquaman_young\', "So you\'re just another pirate, out to take what isn\'t yours.", force=0)', 'CS_Speak(\'bob\', "Yeah...but I\'m the best...", force=0)', 'CS_Fade(2)', 'CS_End()']]]], marker = 'front2', actions = 'allies can be freed, allies cower, allies move when freed, allies remain after encounter ends, villains can be interrogated, villains fight heroes,', allies = ['scientist'],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 4246, 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 4262, 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 4325, in EncGetCustomValues
    value = eval('ff.EncCustom_%s(%i,%s)'%(m25string.String_ConvertToTemplate(name), enc_id, parameters))
  File "<string>", line 0, in ?
AttributeError: EncCustom_

And the pertinent area of the script itself:
Spoiler
#---------------------------------------

Encounter: Attack6
Type: Custom
Actions: allies can be freed, allies cower, allies move when freed, allies remain after encounter ends, villains can be interrogated, villains fight heroes,
Villains: marine_marauder named bob
Minions: terror_marine
Allies: scientist
Marker: front2
Next: Run1

Alert Cutscene:
Cinematic camera on bob
bob says, "What in the world is going on up here? Report! If I don't get some answers, I'll skin each and every one of you alive!"

Start Cutscene:
Cinematic camera on aquaman_young
aquaman_young turns to bob
bob turns to aquaman_young
aquaman_young says, "You must be the man in charge. These people are under my protection. You've got about thirty seconds to lay down your weapons and surrender, or I'm going make sure you don't wake up until you're in a cell...or a hospital bed."
aquaman_young plays animation ranged
Camera on bob
bob says, "Just who do you think you are? I gather you're the reason that my men aren't answering their radios...and you're obviously not with the Royal Navy...so just who ARE you?"
aquaman_young says, "People have taken to calling me aquaman. Let's stick with that. I suppose you're the Marauder I've heard so much about. Now drop your guns."
bob says, "So YOU'RE the aquaman, huh? I've heard about you...and that incident with those pirates in the Indian Ocean...some kind of freak, right? You can talk to fish, breathe underwater, huh? Well, let's see what you can do."
aquaman_young says, "With pleasure..."

Ally Freed Cutscene:
Cinematic camera on Ally1 to aquaman_young
Ally1 turns to aquaman_young
aquaman_young says, "You're the project leader, right? Are you okay?"
Ally1 says, "That's not important, we've got to get out of here!"
aquaman_young says, "It's okay, calm down.  I've taken care of all the gunmen. No-one is going to hurt you."
Ally1 says, "No, you don't understand! When I realized what these blackguards were after I knew I couldn't let them get their hands on our research. I managed to sneak away, and I set our generator to overload.  We have to get off this island NOW!"
aquaman_young says, "Well, why didn't you say so! Make for the dock!"
Ally1 says, "But there's no boat, what are we supposed to do?"
aquaman_young says, "Leave that to me!"
Ally1 moves to front5

Interrogation Cutscene:
aquaman_young turns to bob
aquaman_young says, "Alright, talk. What were you after here?"
bob says, "Heh...you...you're tougher than you look fishman....you should have told me that you're bulletproof...and strong enough to bend steel..."
aquaman_young says, "And you need to tell ME what you were after...or I'll show you just how strong I am..."
aquaman_young plays animation melee_idle
bob says, "Take...take it easy Nemo...I'll tell ya'. I got wind of the work these eggheads were doing, and one of my tech contacts informed me of the potential...military benefits it would have."
aquaman_young says, "I'm listening."
bob says, "Yeah, well...these acoustic devices they were developing, they can be used to talk to fish..."
aquaman_young says, "Dolphins aren't fish."
bob says, "Whatever! They can also be used to screw up a missle's guidance system. You aim something like this at a torpedo, or a SAM, and it will lose its electronic mind...just go anywhere it pleases. Something like that could be worth a pretty penny."
aquaman_young says, "So you're just another pirate, out to take what isn't yours."
bob says, "Yeah...but I'm the best..."
Fade for 2 seconds

#---------------------------------------
Title: Re: EZScript Comics Vol. 2
Post by: BentonGrey on February 18, 2009, 09:03:16 PM
Alright, I'm still having trouble with the above, but I'm also having issues with the villain AI.  I thought it was a minor thing that I had missed, but once I fixed that I'm still getting the same lack of action.  Basically, the villains of the mission just don't do anything.  They don't seem to have their AI turned on.  Everything else seems to be working, other than the previously mentioned encounter that won't start.

I'm uploading the script.log to the DCUG Yahoo group.
Title: Re: EZScript Comics Vol. 2
Post by: M25 on February 18, 2009, 10:32:27 PM
Sorry, I missed this one somehow.  It's better to add a reply than edit your post.


Anyway, you need to remove the last comma (,) after the list of actions.
Title: Re: EZScript Comics Vol. 2
Post by: BentonGrey on February 19, 2009, 03:16:16 AM
So....forget what I said about not making piddly errors.... :huh:

Yeah M, I should have known better.  I figured that was the case, since I edited the post.  Anyway, any thoughts on the AI issue?
Title: Re: EZScript Comics Vol. 2
Post by: M25 on February 19, 2009, 03:28:43 AM
I suspect fixing the issue with the one encounter will fix the AI issues as well.

Title: Re: EZScript Comics Vol. 2
Post by: BentonGrey on February 19, 2009, 06:17:36 AM
Well M....you were wrong...but mostly because you probably underestimated my stupidity.  I'm not going to go into exactly WHY the Terror Marines weren't fighting...but let's just say it was so obvious it makes my head hurt.  Anyway, everything seems to be working quite wonderfully now!  Thanks M!
Title: Re: EZScript Comics Vol. 2
Post by: BentonGrey on February 22, 2009, 08:39:17 PM
Okay, I've got three questions for you EZScript-ites:

1) Is there any way to set up a mission in EZScript where you would start out controlling one character, but after a certain amount of time, he would be replaced by another?  I have a vague idea for a mission with Dr. Thirteen in the DCUG secret project, but he couldn't carry an entire mission by himself.  If this isn't possible, don't worry about it. 

2) I have a vague memory of a technique existing with EZScript that allowed you to give a character dialog, but only if they were included in the mission.  How is that done?

3) Is there a way to make EZScript missions save-able?

Thanks for any help y'all can give me.
Title: Re: EZScript Comics Vol. 2
Post by: M25 on February 23, 2009, 04:21:47 PM
1)  You could use the Allies Become Controllable action to add a character to the team, and then have a cutscene where dr_thirteen is destroyed to remove him.

2) There's a condition on the says command in cutscenes that might do what you want.  Basically, you write out lines for specific characters and then a generic line for all other characters.

Hero says, if Hero is minute_man, "Let's go team!"
    if Hero is mentor, "The miscreants must be apprehended."
    "We're on our way."

3) EZ script missions should already work with saved games.  Are you having any sort of problem?

Title: Re: EZScript Comics Vol. 2
Post by: BentonGrey on February 23, 2009, 04:51:02 PM
Thanks for the response M!  Ahh, that would probably work nicely for Dr. Thirteen.  I should have thought about that.

That is PERFECT M, thanks!

Well, I haven't tested since I got your EZScript update the other day, but loading a save game in the campaign, the game loads fine, but all of the scripted stuff no longer works.
Title: Re: EZScript Comics Vol. 2
Post by: M25 on February 23, 2009, 07:26:01 PM
OK, can you get me a script.log from after you load a saved game?


Title: Re: EZScript Comics Vol. 2
Post by: BentonGrey on February 23, 2009, 07:27:13 PM
Sure M, I'll try and do it this evening.
Title: Re: EZScript Comics Vol. 2
Post by: BentonGrey on March 24, 2009, 03:20:51 AM
Okey doke, I still haven't gotten around to testing that save feature, I'll try and do that soon.  In the meantime, I've been working on a new mission, and surprise surprise, I hit a snag!  So, here's what I've got:

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

Encounter: Attack1
Type: Custom
Actions: allies thank heroes, heroes sabotage object, heroes rescue allies, item exists, villains attack innocent allies, villains fight heroes
Objects: crate
Villains: raptor_boss, raptor_boss, raptor_bezerk, raptor, raptor_bezerk, raptor
Allies: civilian_male, civilian_female, civilian_female
Next: Enemy1

Alert Cutscene:
Camera on Villain1
Villain1 says, "Rooaaarr!"
Camera on Ally1
Ally1 plays animation power
Ally1 says, "Dear Lord, what are these things? Help!"
Red Arrow on Villain1

Start Cutscene:
Camera on doctor_fate
doctor_fate says, "I must reach that portal or even more creatures will pour through!"
Camera on aquaman_classic
aquaman_classic says, "Down fido!"

Next: If Ally Survives: Enemy1
Next: If Ally Lost: __lose__

Ally Thanks Hero Cutscene:
Ally1 turns to doctor_fate
Ally1 moves to doctor_fate
Camera on Ally1
doctor_fate turns to Ally1
Ally1 says, "Thank you! We were almost dino chow!"

Ally Lost Cutscene:
Camera on Hero
Hero plays animation stunned
Hero says, "Noooo!"

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

Encounter: Attack2
Type: Custom
Actions: allies thank heroes, heroes sabotage object, heroes rescue allies, item exists, villains attack innocent allies, villains fight heroes
Objects: crate
Villains: wraith_warrior, wraith_manta, wraith_warrior, wraith_manta, wraith_warrior, wraith_manta
Allies: civilian_male, civilian_female, civilian_male, civilian_female
Next: Attack4

Alert Cutscene:
Red Arrow on Villain1

Start Cutscene:
Camera on Villain1
Villain1 says, "Mortals! We must feed!"
Camera on Ally1
Ally1 plays animation power
Ally1 says, "What are they...? Ghosts? Run!"
Camera on aquaman_classic
aquaman_classic says, "Sorry Casper, but I don't think you belong here. Let's take them out!"
Camera on Hero
Hero says, if Hero is blue_devil says, "Heck, I'm scarrier than these guys. Come on spooky, pick on someone your own size!"
if Hero is shinning_knight, "Have at thee beings of dark magic! Thou shalt not pray upon the weak this day!"
Hero says, "We're with you!"

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

Ally Thanks Hero Cutscene:
Ally1 turns to doctor_fate
Ally1 moves to doctor_fate
Camera on Ally1
doctor_fate turns to Ally1
Ally1 says, "So-o-o-o...c-c-cold...what...what were those things?"
doctor_fate says, "It would be better for you to remain ignorant of the creatures of the outer darkness...just know that the chill shall pass in time."

Ally Lost Cutscene:
Camera on Hero
Hero plays animation stunned
Hero says, "Noooo!"

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

Encounter: Attack3
Type: Custom
Actions: allies thank heroes, heroes sabotage object, heroes rescue allies, item exists, villains attack innocent allies, villains fight heroes
Objects: crate
Villains: wraith_warrior, wraith_manta, wraith_warrior, wraith_manta, wraith_warrior, wraith_manta
Allies: civilian_female, civilian_female, civilian_female
Next: Attack5

Alert Cutscene:
Red Arrow on Villain1

Start Cutscene:
Camera on Villain1
Villain1 says, "Fresh souls...it is good to walk the sunlit lands once more!"
Camera on Ally1
Ally1 plays animation power
Ally1 says, "Help, help!"
Camera on aquaman_classic
aquaman_classic says, "Great, more monsters..."
Camera on Hero
Hero says, if Hero is blue_devil says, "Yeah, I LOVE bashing boogeymen!"
if Hero is zatanna, "Where are these things coming from? They shouldn't be able to cross over on a night like tonight."
Hero says, "I thought ghosts said 'boo.'"

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

Ally Thanks Hero Cutscene:
Ally1 turns to Hero
Ally1 moves to Hero
Camera on Ally1
Hero turns to Ally1
Ally1 says, "Thank you so much! I've never been so scared in my life."
Hero says, "There is nothing left to be afraid of, you're alright now."

Ally Lost Cutscene:
Camera on Hero
Hero plays animation stunned
Hero says, "Noooo!"

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

Encounter: Attack4
Type: Custom
Actions: allies thank heroes, heroes sabotage object, heroes rescue allies, item exists, villains attack innocent allies, villains fight heroes
Objects: crate
Villains: raptor_boss, raptor_boss, raptor_bezerk, raptor, raptor, raptor_boss, raptor, raptor_boss
Allies: civilian_female, civilian_female, civilian_female, civilian_male
Next: Attack6

Alert Cutscene:
Red Arrow on Villain1

Start Cutscene:
Camera on Ally1
Ally1 plays animation power
Ally1 says, "Dinosaurs! What's going on?"
Camera on Hero
Hero says, if Hero is zatanna says, "Malovelent spirits and dinosaurs...what kind of magic can bend time and space like THIS?"
if Hero is etrigan, "You want your meal creature of the past, but this demon will see you stopped fast!"
Hero says, "We've got to stop them!"

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

Ally Lost Cutscene:
Camera on Hero
Hero plays animation stunned
Hero says, "Noooo!"

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

Encounter: Attack5
Type: Custom
Actions: allies thank heroes, heroes sabotage object, heroes rescue allies, item exists, villains attack innocent allies, villains fight heroes
Objects: crate
Villains: raptor_boss, raptor_boss, raptor_bezerk, raptor, raptor, raptor_boss, trex
Allies: civilian_female, civilian_female, civilian_female, civilian_male, civilian_male
Next: None

Alert Cutscene:
Red Arrow on Villain1

Start Cutscene:
Camera on Ally1
Ally1 plays animation power
Ally1 says, "Ahhhhh!"
Camera on doctor_fate
doctor_fate says, "The disturbance must be growing more powerful if something that size can break through the barrier. Beware my friends!"
Camera on Hero
Hero says, if Hero is hawk, "Punching dinosaurs just doesn't get old!"
if Hero is zatanna, "Fate, how are we going to stop something like this? Even the two of us together might not be powerful enough to stop whatever is ripping these portals open!"
Hero says, "Wow, that's one big lizard!'"

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

Ally Thanks Hero Cutscene:
Ally1 turns to Hero
Ally1 moves to Hero
Camera on Ally1
Hero turns to Ally1
Ally1 says, "Was...was that a t-rex?"
Hero says, if Hero is hawk, "Well, it wasn't Barney!"
if Hero is shinning_knight, "I don't know fair maid, but it was unlike any dragon I have faced ere today."
Hero says, "Whatever it was, it's gone now. Try and stay indoors until we've managed to get the rest of them.'"

Ally Lost Cutscene:
Camera on Hero
Hero plays animation stunned
Hero says, "Noooo!"

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

Encounter: Attack6
Type: Custom
Actions: allies thank heroes, heroes sabotage object, heroes rescue allies, item exists, villains attack innocent allies, villains fight heroes
Objects: crate
Villains: wraith_warrior, wraith_manta, wraith_warrior, wraith_manta, wraith_warrior, chaotic_servant, wraith_warrior, chaotic_servant
Allies: civilian_female, civilian_male, civilian_male
Next: None

Alert Cutscene:
Red Arrow on Villain1

Start Cutscene:
Camera on Villain1
Villain1 says, "We are free, free to sow chaos and destruction in the winds once more!"
Camera on Ally1
Ally1 plays animation power
Ally1 says, "Ahhhh!"
Camera on aquaman_classic
aquaman_classic says, "Come friends, we are needed!"
Camera on Hero
Hero says, if Hero is shinning_knight says, "I stand with you, sire!"
if Hero is dove, "Wait, perhaps we should try and communicate with them? We might not need to resort to violence."
Hero says, "More ghosts...great."

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

Ally Thanks Hero Cutscene:
Ally1 turns to Hero
Ally1 moves to Hero
Camera on Ally1
Hero turns to Ally1
Ally1 says, "Thank you so much! I've never been so scared in my life."
Hero says, "There is nothing left to be afraid of, you're alright now."

Ally Lost Cutscene:
Camera on Hero
Hero plays animation stunned
Hero says, "Noooo!"

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

Encounter: Enemy1
Type: Save Civilian
Villains: circe, lion, lion, lion, lion, lion
Allies: civilian_male, civilian_male, civilian_male, civilian_female
Next: Enemy2

Alert Cutscene:
Camera on Villain1
Villain1 turns to Ally
Villain1 says, "Ahh...the air here veritably sings with power! This is going to be more fun than I've had for a thousand years!"
Villain1 says, "Well my pets, here is meat for you! Your former friends will feed you!"
Red Arrow on Villain1

Start Cutscene:
doctor_fate turns to Villain1
doctor_fate says, "Stop sorceress! You've spread your destructive magics here enough!"
Camera on Villain1
Villain1 says, "Don't be silly darling! I'm sorry little man, neither you nor your parlor tricks can stop me. I am a godess, and I don't fear any of you mortals."
Hero says, if Hero is zatanna says, "Sorry yourself sister, you'd better change those guys back or us mortals are gonna' kick your butt!"
"We'll see about that!"
Villain1 plays animation ranged
Villain1 says, "Bon appetite, my pets!"

End Cutscene:
Camera on Hero
Hero says, if Hero is zatanna says, "Well, we defeated a godess...not too bad for a mortal stage magician and her friends, huh?"
if Hero is Hawk, "Take that you crazy broad!"
Hero says, "That's it for her!"
aquaman_classic says, "Come on troops! We've got work to do!"

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

Encounter: Enemy2
Type: Gang War
Villains: wraith_warrior, wraith_manta, wraith_warrior, wraith_manta, wraith_warrior, wraith_manta, wraith_warrior, chaotic_servant
Rivals: raptor_boss, raptor_boss, raptor_bezerk, raptor, raptor, raptor_boss, raptor
Next: Enemy3

Alert Cutscene:
Red Arrow on Villain1
Red Arrow on Rival1

Start Cutscene:
Camera on Villain1
Villain1 says, "Our massster wants that object, and we must not disappoint him! We must find it, and these creatures cannot stand in our way!"
Camera on doctor_fate
doctor_fate turns to Villain1
doctor_fate says, "Something in this area is the source of the magical disturbance, but we must restore peace to this area before I can locate it. These beings must not be allowed to persist in their combat."
Camera on aquaman_classic
aquaman_classic says, "Alright Fate, we'll take these creatures out."
Hero says, if Hero is Hawk says, "Let's stop talking about it then, and let's get to smashing magical uglies!"
"Let's do it!"

End Cutscene:
Camera on aquaman_classic
aquaman_classic says, "Well those things won't be bothering the city anymore."
Hero says, if Hero is shinning_knight says, "Verily, we have striken well this day!"
if Hero is dove, "I still think we could have tried to reason with them..."
Hero says, "Now we just need to find whatever is causing all this madness."

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

Encounter: Enemy3
Type: Custom
Actions: rivals fight villains, item exists, item is invulnerable, villains fight heroes, villains want item, villains only flee with item
Villains: felix_faust
Minions: raptor, raptor_boss, raptor_boss, raptor_bezerk
Rivals: wotan
Cohorts: wraith_warrior, wraith_manta, wraith_warrior, wraith_manta
Item: phone_booth

Alert Cutscene:
Red Arrow on Villain1
Red Arrow on Rival1
Camera on Rival1
Rival1 says, "FAUST! You shall stand in my way no longer mortal!"
Villain1 says, "Sorry you ghoulish, superannuated fool, but I have plans for the power in that little booth."
Rival1 says, "Insect, you dare to pit your will against me? I have seen generations of such clawing, grasping creatures such as you scrabble for life across the world, and yet I still remain."
Villain1 says, "We shall see old man!"

Start Cutscene:
Camera on doctor_fate
doctor_fate turns to Rival1
doctor_fate turns to Villain1
doctor_fate says, "Wotan, Faust! Cease your battle at once. You are doing great damage to this plane."
Camera on Rival1
Rival1 turns to doctor_fate
Rival1 says, "Fate, you small minded servant of Order, even you should be able to feel the incredible power locked within that otherwise mundane object."
Villain1 says, "That's right, and it shall be mine! Think of the knowledge I could aquire with that kind of power. I could force my way into Hades itself and feast on the great library of darkness!"
Camera on aquaman_classic
aquaman_classic says, "Wherever this thing came from, neither of you two can be allowed to have it. You'll have to go through us to get it!"
Camera on Hero
Hero says, if Hero is zatanna says, "Don't encourage them Arthur!"
if Hero is shinning_knight, "Yea varlats, ye shall not lay hand upon this object while we draw breath!"
"Yeah, clear out!"

End Cutscene:
doctor_fate moves to aquaman_classic
Cinematic camera on aquaman_classic to doctor_fate
aquaman_classic says, "Well Fate, the magicians are down...but where in the world did a magical phonebooth come from?"
doctor_fate says, "I don't know Arthur of Atlantis, but it must have been created by an incredibly powerful entity."
Hero says, if Hero is zatanna says, "I don't know doc, this thing is beyond anything I've seen."
if Hero is blue_devil, "Well what are we waiting for? Let's grab the doohickey and get going."
Hero says, "At least Faust or Wotan didn't get their hands on it!"
doctor_fate says, "Yes...I must bring this back to my tower for study. This requires a great deal more thought..."

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

There is an opening cutscene that starts Attack1, 2, and 3, but then each of them is supposed to trigger the start of a new encounter.  None of them are triggering what should come next.

My error log is too big to post on the forum, but it can be downloaded here:

http://games.groups.yahoo.com/group/bentongrey/files/
Title: Re: EZScript Comics Vol. 2
Post by: M25 on March 24, 2009, 03:24:59 PM
The action - item exists - is not hitting an end condition since you aren't doing anything with the item, or even spawning one.  You don't need it in your encounters, so just take it out and they should work.

Items are intended to be things that can be picked up by heroes and villains and run off with (think 'capture the flag').

Title: Re: EZScript Comics Vol. 2
Post by: BentonGrey on March 24, 2009, 03:37:14 PM
D'oh!  Thanks M!  I should have thought about that one a little harder. ;)
Title: Re: EZScript Comics Vol. 2
Post by: BentonGrey on April 01, 2009, 04:30:47 AM
Howdy guys, I'm having a few errors on the level I'm working on, one of which is an unexplained COMPLETE invulnerability for characters with "random mutation."  I've got to do some more testing on that one before I bother y'all with it though.  In the meantime, maybe someone can help me figure out why I keep getting the message that I didn't include a generic dialog line when I seem to have just that.  Here is an example:

Spoiler
Hero says, if Hero is blue_devil says, "Heck, I'm scarrier than these guys. Come on spooky, pick on someone your own size!"
if Hero is shinning_knight, "Have at thee beings of dark magic! Thou shalt not pray upon the weak this day!"
Hero says, "We're with you!"

I think I've got everything I need, but I get that message nonetheless.
Title: Re: EZScript Comics Vol. 2
Post by: M25 on April 01, 2009, 03:27:43 PM
The problem is here:

Hero says, "We're with you!"

should be:

"We're with you!"

(No 'Hero says,)

Title: Re: EZScript Comics Vol. 2
Post by: BentonGrey on April 01, 2009, 04:13:29 PM
Ahh, thanks M!  I got some wires crossed somewhere along the way there.
Title: Re: EZScript Comics Vol. 2
Post by: BentonGrey on April 18, 2009, 08:59:30 PM
So, I finally got a few minutes to test this mission again, and I'm still getting the random invulnerable T-Rexes.  In checking through the script.log I'm not seeing anything in the attribute initialization to explain this:

Spoiler
initAttribsForChar: working on m25obj_4 (trex_chaos)
initAttribsForChar (trex_chaos): looking at attribute ponderous
initAttribsForChar (trex_chaos): looking at attribute solid skeleton
initAttribsForChar (trex_chaos): looking at attribute armoured
initAttribsForChar (trex_chaos): looking at attribute grim resolve
initAttribsForChar (trex_chaos): looking at attribute randommutation
execInitAttrib: init randommutation attribute
    on m25obj_4 of template trex_chaos (trex_chaos)
GOAL: Adding goal Goal_DynamicAbility(1004, "ice beam", 'ff.AIGenericPowerOnTarget(tactic_id,event.object,event.string,event.float,event.user, pct = 60, energy = 34, situation = 1, power = "mut_icebeam", subtype = 2, carrier = -1, mindist = 50, maxdist = 300)') to character m25obj_4
GOAL: Adding goal Goal_DynamicAbility(1005, "ice patch", 'ff.AIGenericFunctionOnTarget(tactic_id,event.object,event.string,event.float,event.user, pct = 60, energy = 33, maxdist = 300, time = 3, power = "ffx.OnIcePatch(target,char)", mindist = 0, subtype = 3)') to character m25obj_4
GOAL: Adding goal Goal_DynamicAbility(1006, "ice shield", 'ff.AIGenericActiveDefense(tactic_id,event.object,event.string,event.float,event.user, pct = 80, defense_time = 10, energy = 34, situation = 4, power = "mut_iceshield", mindist = 0, subtype = 5)') to character m25obj_4
initAttribsForChar: working on m25obj_2 (trex_chaos)
initAttribsForChar (trex_chaos): looking at attribute ponderous
initAttribsForChar (trex_chaos): looking at attribute solid skeleton
initAttribsForChar (trex_chaos): looking at attribute armoured
initAttribsForChar (trex_chaos): looking at attribute grim resolve
initAttribsForChar (trex_chaos): looking at attribute randommutation
execInitAttrib: init randommutation attribute
    on m25obj_2 of template trex_chaos (trex_chaos)
GOAL: Adding goal Goal_DynamicAbility(1007, "xray blast", 'ff.AIGenericPowerOnTarget(tactic_id,event.object,event.string,event.float,event.user, pct = 60, energy = 34, situation = 6, power = "mut_xray", subtype = None, carrier = -1, mindist = 50, maxdist = 300)') to character m25obj_2
GOAL: Adding goal Goal_DynamicAbility(1008, "xray form", 'ff.AIGenericPowerOnSelf(tactic_id,event.object,event.string,event.float,event.user, pct = 60, energy = 67, situation = 7, power = "microwave Displace Image", mindist = 0, maxdist = 400)') to character m25obj_2
GOAL: Adding goal Goal_DynamicAbility(1009, "jinx", 'ff.AIGenericPowerOnTarget(tactic_id,event.object,event.string,event.float,event.user, pct = 60, energy = 34, situation = 8, power = "mut_jinx", subtype = 9, carrier = -1, mindist = 0, maxdist = 300)') to character m25obj_2

Here is a relevant portion of the mission itself:

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

Encounter: Attack1
Type: Custom
Actions: heroes sabotage object, villains fight heroes, villains rampage
Objects: crate
Villains: trex_chaos, trex_chaos, raptor_boss, raptor_boss, raptor_bezerk
Next: Enemy1

Alert Cutscene:
Camera on Villain1
Villain1 says, "Rooaaarr!"
Red Arrow on Villain1

Start Cutscene:
Camera on doctor_fate
doctor_fate says, "I must reach that portal or even more creatures will pour through!"
Camera on aquaman_classic
aquaman_classic says, "Down fido!"

End Cutscene:
Camera on aquaman_classic
aquaman_classic moves to doctor_fate
aquaman_classic says, "By Neptune's beard! I thought Tyrannasours were just big, strong predators...how could they do THAT?"
Camera on doctor_fate
doctor_fate turns to aquaman_classic
doctor_fate says, "The creatures had been drawn to this city by an incredibly powerful magical force, but the relocation did not leave them untouched. They passed through dimensions of chaos magicks, which left their mark upon the beasts. We must locate the rest of these portals and close them before the chaos in this city draws more creatures through time and space!"

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

Any ideas?  I'm also uploading the script.log to my yahoo group if anyone wants to check the entire thing.

http://games.groups.yahoo.com/group/bentongrey/
Title: Re: EZScript Comics Vol. 2
Post by: Torch on April 18, 2009, 09:32:24 PM
Quote from: BentonGrey on April 18, 2009, 08:59:30 PM
So, I finally got a few minutes to test this mission again, and I'm still getting the random invulnerable T-Rexes...
Could a 'random mutation' BE 'invulnerability'?
Title: Re: EZScript Comics Vol. 2
Post by: BentonGrey on April 18, 2009, 10:35:57 PM
I believe it could be one of the grades of invulnerability, but I was hitting the rex with fairly high damage powers, and getting NOTHING.  I'm not entirely sure, but I don't think I was even getting damage boxes.
Title: Re: EZScript Comics Vol. 2
Post by: cmdrkoenig67 on April 19, 2009, 02:12:31 AM
Benton...Buddy...A certain map is still at the Yahoo group...Go get it!...And empty your PM inbox here, so I can PM you again...Sheesh!  :lol:

Dana

Title: Re: EZScript Comics Vol. 2
Post by: BentonGrey on April 19, 2009, 03:35:23 AM
Urgh!  My inbox should be open now.  I don't see the map in the group you linked me to...PM me again, maybe I got some wires crossed. :wacko:
Title: Re: EZScript Comics Vol. 2
Post by: M25 on April 20, 2009, 02:09:22 AM
The part of the mlogreader that watches for damage is throwing errors, so it is possible that's the issue.  There might be a bug in the random mutation attribute.

Title: Re: EZScript Comics Vol. 2
Post by: BentonGrey on April 22, 2009, 09:03:43 PM
Hmm...what do you suggest I do M?  I'm just trying to make this interesting without adding in a dozen new minion types, and the random mutation attribute seems like the perfect answer.  Also, I'm not quite getting the kind of mission I want here.  What I'm really going for is a situation like in FF1, where there are portals opening up that will keep spitting out enemies until you close them.  Any ideas on how to model that?  What I've got right now is just the portals set up as objects which you have to sabotage, and they are guarded by a group of bad guys.  I don't have any real sense of urgency to it, though, since they aren't actually spitting out reinforcements. 
Title: Re: EZScript Comics Vol. 2
Post by: Torch on April 22, 2009, 11:55:01 PM
Quote from: BentonGrey on April 22, 2009, 09:03:43 PM
Hmm...what do you suggest I do M?  I'm just trying to make this interesting without adding in a dozen new minion types, and the random mutation attribute seems like the perfect answer.  Also, I'm not quite getting the kind of mission I want here.  What I'm really going for is a situation like in FF1, where there are portals opening up that will keep spitting out enemies until you close them.  Any ideas on how to model that?  What I've got right now is just the portals set up as objects which you have to sabotage, and they are guarded by a group of bad guys.  I don't have any real sense of urgency to it, though, since they aren't actually spitting out reinforcements. 
I know you can loop random encounters, or have them called multiple times.  Could you somehow set a timer between looping (so there is a delay between them) and then end the random encounters once the player sabotages the portal?
Title: Re: EZScript Comics Vol. 2
Post by: BentonGrey on April 23, 2009, 05:00:22 AM
That's the question Torch.  That is indeed the question.  The timer is easy enough to work, but how to end it...I don't know.
Title: Re: EZScript Comics Vol. 2
Post by: Torch on April 23, 2009, 12:24:30 PM
Quote from: BentonGrey on April 23, 2009, 05:00:22 AM
That's the question Torch.  That is indeed the question.  The timer is easy enough to work, but how to end it...I don't know.
I can test it out right now, but I'm thinking something with the 'starts when <encounter> at end'.
Title: Re: EZScript Comics Vol. 2
Post by: M25 on April 26, 2009, 04:31:03 PM
You can also key encounters to start when something else hasn't ended. 

Starts when: not my_encounter at end

or even Starts When: my_encounter not at end

(you can also use 'or' and 'and')

Starts When: my_encounter at end or my_encounter2 at end



So...

Encounter: Portal1
Type: Sabotage
Next: None

Encounter: Spawn Stuff
Starts When: Portal1 not at End
Villains: spawns
Next: Spawn Stuff



As for the random mutation attribute... if it isn't working, I can't offer much help.  Maybe TaskmasterX would know.

Title: Re: EZScript Comics Vol. 2
Post by: BentonGrey on April 30, 2009, 07:04:46 PM
Thanks M!  So, when would that one start?  Obviously, it would start sometime during the other encounter, but how long would it take?  It might not be good to have the thing spit out bad guys at the very beginning....then again, that might work okay if I don't have too many at the portal in the first place.  Thanks M, I think you've given me just the layout I wanted!

I'll contact TMX and see if he can give me any help with that attribute, then.  Thanks for the suggestion. :)
Title: Re: EZScript Comics Vol. 2
Post by: M25 on May 04, 2009, 11:54:28 PM
To expand on that... you need to have an encounter that starts the portal and the 'spawn'.

Encounter: Do Portal and Spawn
Type: None
Next: Portal1, Spawn Stuff


Both would start at the same time, so you'd get spawns immediately.  However, you could put in a Wait encounter to delay the spawn

Encounter: Do Portal and Spawn
Type: None
Next: Portal1, Delayed Spawn

Encounter: Delayed Spawn
Type: Wait
Minimum Time: 30
Maximum Time: 35
Next: Spawn Stuff
Title: Re: EZScript Comics Vol. 2
Post by: BentonGrey on May 20, 2009, 10:24:36 PM
So...in trying to keep busy I have started on the JSA/JLA crossover.  I can't really focus to work on my thesis...but this, this is more accessible to pick up and put down as necessary.  I've got the first mission written, but I'm having trouble with the first encounter.  Everything else seems to be triggering fine.  The problem seems to be the Alert Cutscene.  It isn't playing for some reason, although the Start Cutscene is playing fine.  This should be the very first thing that the player sees when he starts the mission:

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

Encounter: Bad1
Type: Fight
Villains: nazi_general, nazi_rifleman, nazi_rifleman, nazi_rifleman, nazi_gunner,

nazi_grenadier, nazi_gunner
Allies: scientist, per_degaton
Marker: lab1
Next: Future1

Alert Cutscene:
Fade for 1 second
Narrator says, "Our story begins...and ends...in Germany during the Spring of 1944."
Cinematic camera on Ally1 to Ally2
Unfade for 5 seconds
Ally2 turns to Ally1
Ally2 says, "But Dr. Zee...Malachi, the Nazis will pay through the nose for this!"
Ally1 turns to Ally2
Ally1 says, "It doesn't matter Per. Some things are more important than material gain...a

great deal more important. That madman must never get his hands on this device. The

consequences would be...unthinkable."
Villain4 moves to spot1
Villain3 moves to spot2
Villain1 moves to spot3
Cinematic camera on Villain1 to Ally1
Villain1 says, "Now now Herr Doktor, that sounds suspiciously like treason."
Villain1 plays animation power
Ally2 turns to Villain1
Ally2 says, "No! You're too early! I haven't had time to convince him yet!"
Villain1 says, "You have had all the time that der Fuehrer deemed necessary. Now we shall

persuade the good doktor on OUR terms."
Ally1 says, "You've come for the device? So...you betrayed me Per...after all these

months...well, your Fuehrer will never see the machine.  I'll destroy it!"
Ally 1 moves to spot4
Ally2 says, "No...no! I won't let you do this...I won't let you ruin everything. I've

waited so long...I've been so patient. It's mine, and you can't take it from me!"
Ally2 plays animation ranged_gun_2
Play effect effect_ffx_gun at Ally1
Ally1 is killed
Ally2 moves to spot4
Play effect effect_portal_activate at Ally2
Fade for 1 second
Ally2 teleports to lab4
Cinematic camera on Hero1
Unfade for 3 seconds
Hero1 says, "This is where Dr. Zee said to meet him...but the door has been smashed in. Be

on your guard!"

Start Cutscene:
Camera on Hero1
Hero1 turns to Villain1
Hero1 says, "Ratzis! What are they doing here? This looks like a set-up guys. Let's take it

to the Reich!"
Camera on Villain1
Villain1 turns to Hero1
Villain1 says, "Nein! This mission is a disaster! Der Feuhrer will have my head for

this...first we lose the scientist and his assistant, and now those troublesome American

mystery men interfere. Kill them!"

End Cutscene:
Camera on Hero1
Hero1 turns to Hero2
Hero1 says, "Well gents, that takes care of this bunch. We'd better check the rest of the

place and make sure they didn't have any friends along for the ride."

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

There is nothing that jumps out at me in the script.log.  Any thoughts?

Excerpt from script.log:

Spoiler
ENCOUNTER: PlayCutsceneFromList(): [['priority', 1], ['replace', ['ally1', 'ally'], ['ally2', 'ally'], ['villain4', 'villain'], ['villain3', 'villain'], ['villain1', 'villain'], ['ally 1', 'ally'], ['hero1', 'hero']], ['required', 'spot1', 'spot2', 'spot3', 'spot4', 'lab4'], ['cutscene', 'CS_Start()', "CS_Speak('narrator', 'Our story begins...and ends...in Germany during the Spring of 1944.', force=0)", "CS_CinematicCamera('ally1','ally2')", 'CS_UnFade(5)', "CS_TurnTo('ally2', 'ally1')", "CS_Speak('ally2', 'But Dr. Zee...Malachi, the Nazis will pay through the nose for this!', force=0)", "CS_TurnTo('ally1', 'ally2')", 'CS_Speak(\'ally1\', "It doesn\'t matter Per. Some things are more important than material gain...a great deal more important. That madman must never get his hands on this device. The consequences would be...unthinkable.", force=0)', "CS_MoveTo('villain4', 'spot1')", "CS_MoveTo('villain3', 'spot2')", "CS_MoveTo('villain1', 'spot3')", "CS_CinematicCamera('villain1','ally1')", "CS_Speak('villain1', 'Now now Herr Doktor, that sounds suspiciously like treason.', force=0)", "CS_Animate('villain1','power')", "CS_TurnTo('ally2', 'villain1')", 'CS_Speak(\'ally2\', "No! You\'re too early! I haven\'t had time to convince him yet!", force=0)', "CS_Speak('villain1', 'You have had all the time that der Fuehrer deemed necessary. Now we shall persuade the good doktor on OUR terms.', force=0)", 'CS_Speak(\'ally1\', "You\'ve come for the device? So...you betrayed me Per...after all these months...well, your Fuehrer will never see the machine.  I\'ll destroy it!", force=0)', "CS_MoveTo('ally 1', 'spot4')", 'CS_Speak(\'ally2\', "No...no! I won\'t let you do this...I won\'t let you ruin everything. I\'ve waited so long...I\'ve been so patient. It\'s mine, and you can\'t take it from me!", force=0)', "CS_Animate('ally2','ranged_gun_2')", "CS_Effect('effect_ffx_gun','ally1')", "CS_MoveTo('ally2', 'spot4')", "CS_Effect('effect_portal_activate','ally2')", "CS_TeleportTo('ally2', 'lab4')", "CS_CinematicCamera('hero1')", 'CS_UnFade(3)', "CS_Speak('hero1', 'This is where Dr. Zee said to meet him...but the door has been smashed in. Be on your guard!', force=0)", 'CS_End()']] : None ... []
ENCOUNTER: Encounter setup complete for 1
ENCOUNTER: Setting up encounter 2
ENCOUNTER: Start marker found for ['lab2'] 'lab2'
ENCOUNTER: No markers for 2 [['allyleave', 'lab2_allyleave', 'dist500']]
Title: Re: EZScript Comics Vol. 2
Post by: BentonGrey on May 22, 2009, 04:37:27 AM
I think I'm going to try reformating that part as a cutscene, and see if I have any better luck with it.  Alert scenes seem to be more temperamental to me.
Title: Re: EZScript Comics Vol. 2
Post by: BentonGrey on May 22, 2009, 05:48:27 PM
Urg...so, mission two is written, but I'm having two problems with it.  First, it seems that the second encounter is not ending.  I've tested it several times, and the third encounter will play if I trigger it first, but when I put it in order, nothing happens after the second one is supposed to have ended.  I can only assume something weird is going on here.  I think I may be able to solve it by adding in a Ally Thanks Hero cutscene, but we'll see. 

The second problem is that the final encounter is not playing properly.  I've got a whole bunch of villains showing up to play with my heroes, and the alert cutscene is working properly, but the start cutscene isn't playing.  I don't see anything in the script.log that jumps out at me, but I'm including what I hope is the pertinent portion of it for those wiser than me.

Spoiler
ENCOUNTER: Encounter spawn complete for 2
ENCOUNTER: Encounter cutscenes complete for 2
ENCOUNTER: Encounter goals complete for 2
ENCOUNTER: Encounter objectives complete for 2
ENCOUNTER: Encounter parameters complete for 2
ENCOUNTER: Encounter post function 'Interrogate_Setup'
-----------------------
villain ['m25obj_26', 'm25obj_28', 'm25obj_30', 'm25obj_32', 'm25obj_34', 'm25obj_36', 'm25obj_38', 'm25obj_40', 'm25obj_42']
ENCOUNTER: Encounter post function 'EncStartOnEnterMarker_Setup'
ENCOUNTER: Encounter post complete for 2
ENCOUNTER: Saving encounter data for 2
ENCOUNTER: PlayEncCutscene(): 'alertcs' : None
ENCOUNTER: PlayCutsceneFromList(): [['priority', 1], ['replace', ['villain1', 'villain'], ['hero1', 'hero']], ['cutscene', 'CS_Start()', "CS_Camera('villain1', dist=-160, yaw=0)", 'CS_Speak(\'villain1\', "Foreign interlopers! Face me or I\'ll shake this entire city to its foundations and bury you in the rubble!", force=0)', "CS_Camera('hero1', dist=-160, yaw=0)", 'CS_Shake()', 'CS_Speak(\'hero1\', "Where did THAT come from? I\'ve read the file on Sonar, and he has never been that powerful before!", force=0)', "CS_AddArrow('villain1arrow', 'villain1', arrow_type=js.ARROW_RED)", 'CS_End()']] : None ... []
CUTSCENE: request to play cutscene.
CUTSCENE:  - CS_Start()
CUTSCENE:  - CS_Camera('m25obj_26', dist=-160, yaw=0)
CUTSCENE:  - CS_Speak('m25obj_26',"Foreign interlopers! Face me or I'll shake this entire city to its foundations and bury you in the rubble!", force=0)
CUTSCENE:  - CS_Camera('hero_1', dist=-160, yaw=0)
CUTSCENE:  - CS_Shake()
CUTSCENE:  - CS_Speak('hero_1',"Where did THAT come from? I've read the file on Sonar, and he has never been that powerful before!", force=0)
CUTSCENE:  - CS_AddArrow('m25obj_26arrow', 'm25obj_26', arrow_type=js.ARROW_RED)
CUTSCENE:  - CS_End()
CUTSCENE: calling PlayCurrentCutscene 2
CUTSCENE: playing ff.CS_Start(2)
ENCOUNTER: Encounter setup complete for 2
CUTSCENE: playing ff.CS_Camera(2,'m25obj_26', dist=-160, yaw=0)
CUTSCENE: playing ff.CS_Speak(2,'m25obj_26',"Foreign interlopers! Face me or I'll shake this entire city to its foundations and bury you in the rubble!", force=0)
initAttribsForChar: working on m25obj_2 (per_futurebot)
initAttribsForChar (per_futurebot): looking at attribute cybernetic brain
initAttribsForChar: working on m25obj_4 (mech_man_flame)
initAttribsForChar (mech_man_flame): looking at attribute cybernetic brain
initAttribsForChar: working on m25obj_6 (mech_man_flame)
initAttribsForChar (mech_man_flame): looking at attribute cybernetic brain
initAttribsForChar: working on m25obj_8 (per_futurebot)
initAttribsForChar (per_futurebot): looking at attribute cybernetic brain
initAttribsForChar: working on m25obj_10 (per_futurebot)
initAttribsForChar (per_futurebot): looking at attribute cybernetic brain
initAttribsForChar: working on m25obj_12 (mech_man_flame)
initAttribsForChar (mech_man_flame): looking at attribute cybernetic brain
initAttribsForChar: working on m25obj_14 (mech_man_flame)
initAttribsForChar (mech_man_flame): looking at attribute cybernetic brain
initAttribsForChar: working on m25obj_16 (mech_man_flame)
initAttribsForChar (mech_man_flame): looking at attribute cybernetic brain
initAttribsForChar: working on m25obj_18 (per_futurebot)
initAttribsForChar (per_futurebot): looking at attribute cybernetic brain
initAttribsForChar: working on m25obj_20 (mech_man_flame)
initAttribsForChar (mech_man_flame): looking at attribute cybernetic brain
initAttribsForChar: working on m25obj_22 (per_futurebot)
initAttribsForChar (per_futurebot): looking at attribute cybernetic brain
initAttribsForChar: working on m25obj_24 (per_futurebot)
initAttribsForChar (per_futurebot): looking at attribute cybernetic brain
initAttribsForChar: working on m25obj_26 (sonar)
initAttribsForChar (sonar): looking at attribute flier
initAttribsForChar: working on m25obj_28 (count_vertigo)
initAttribsForChar (count_vertigo): looking at attribute levitate
initAttribsForChar (count_vertigo): looking at attribute disciplined
initAttribsForChar (count_vertigo): looking at attribute unheroic
initAttribsForChar: working on m25obj_30 (copperhead)
initAttribsForChar (copperhead): looking at attribute claws
initAttribsForChar (copperhead): looking at attribute nimble
initAttribsForChar (copperhead): looking at attribute danger sense
initAttribsForChar (copperhead): looking at attribute wall climbing
initAttribsForChar (copperhead): looking at attribute slippery
execInitAttrib: init slippery attribute
    on m25obj_30 of template copperhead (copperhead)
initAttribsForChar: working on m25obj_32 (goldface)
initAttribsForChar (goldface): looking at attribute jumper
initAttribsForChar (goldface): looking at attribute temperature control
initAttribsForChar (goldface): looking at attribute strange visitor
initAttribsForChar: working on m25obj_34 (solomon_grundy)
initAttribsForChar (solomon_grundy): looking at attribute fast healing
initAttribsForChar (solomon_grundy): looking at attribute unheroic
initAttribsForChar (solomon_grundy): looking at attribute hot tempered
initAttribsForChar (solomon_grundy): looking at attribute jumper
initAttribsForChar (solomon_grundy): looking at attribute toughguy2
execInitAttrib: init toughguy2 attribute
    on m25obj_34 of template solomon_grundy (solomon_grundy)
inittoughguy2: char=<m25obj_34>
inittoughguy2: initializing for m25obj_34
initAttribsForChar: working on m25obj_36 (deathstroke)
initAttribsForChar (deathstroke): looking at attribute armoured
initAttribsForChar (deathstroke): looking at attribute solid skeleton
initAttribsForChar (deathstroke): looking at attribute crack shot
initAttribsForChar (deathstroke): looking at attribute fast healing
initAttribsForChar (deathstroke): looking at attribute flier
initAttribsForChar: working on m25obj_38 (fisherman)
initAttribsForChar (fisherman): looking at attribute tough guy
initAttribsForChar (fisherman): looking at attribute solid skeleton
initAttribsForChar (fisherman): looking at attribute temperature control
initAttribsForChar (fisherman): looking at attribute jumper
initAttribsForChar (fisherman): looking at attribute armoured
initAttribsForChar: working on m25obj_42 (per_futurebot)
initAttribsForChar (per_futurebot): looking at attribute cybernetic brain
initAttribsForChar: working on m25obj_40 (per_futurebot)
initAttribsForChar (per_futurebot): looking at attribute cybernetic brain
AI: AISetRunning m25obj_2 to 0
AI: AISetRunning m25obj_4 to 0
AI: AISetRunning m25obj_6 to 0
AI: AISetRunning m25obj_8 to 0
AI: AISetRunning m25obj_10 to 0
AI: AISetRunning m25obj_12 to 0
AI: AISetRunning m25obj_14 to 0
AI: AISetRunning m25obj_16 to 0
AI: AISetRunning m25obj_18 to 0
AI: AISetRunning m25obj_20 to 0
AI: AISetRunning m25obj_22 to 0
AI: AISetRunning m25obj_24 to 0
AI: AISetRunning m25obj_26 to 0
AI: AISetRunning m25obj_28 to 0
AI: AISetRunning m25obj_30 to 0
AI: AISetRunning m25obj_32 to 0
AI: AISetRunning m25obj_34 to 0
AI: AISetRunning m25obj_36 to 0
AI: AISetRunning m25obj_38 to 0
AI: AISetRunning m25obj_40 to 0
AI: AISetRunning m25obj_42 to 0
CUTSCENE: playing ff.CS_Camera(2,'hero_1', dist=-160, yaw=0)
CUTSCENE: playing ff.CS_Shake(2)
CUTSCENE: playing ff.CS_Speak(2,'hero_1',"Where did THAT come from? I've read the file on Sonar, and he has never been that powerful before!", force=0)
CUTSCENE: playing ff.CS_AddArrow(2,'m25obj_26arrow', 'm25obj_26', arrow_type=js.ARROW_RED)
addArrow m25obj_26arrow m25obj_26 0 1
CUTSCENE: playing ff.CS_End(2)
CUTSCENE: calling cutscene return function.
CUTSCENE: no return function to call.
ENCOUNTER: Enc_CheckStart starting 2
AI: AIRun is restarting m25obj_2
AI: AISetRunning m25obj_2 to 1
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
AI: AIRun is restarting m25obj_14
AI: AISetRunning m25obj_14 to 1
AI: AIRun is restarting m25obj_16
AI: AISetRunning m25obj_16 to 1
AI: AIRun is restarting m25obj_18
AI: AISetRunning m25obj_18 to 1
AI: AIRun is restarting m25obj_20
AI: AISetRunning m25obj_20 to 1
AI: AIRun is restarting m25obj_22
AI: AISetRunning m25obj_22 to 1
AI: AIRun is restarting m25obj_24
AI: AISetRunning m25obj_24 to 1
AI: AIRun is restarting m25obj_26
AI: AISetRunning m25obj_26 to 1
AI: AIRun is restarting m25obj_28
AI: AISetRunning m25obj_28 to 1
AI: AIRun is restarting m25obj_30
AI: AISetRunning m25obj_30 to 1
AI: AIRun is restarting m25obj_32
AI: AISetRunning m25obj_32 to 1
AI: AIRun is restarting m25obj_34
AI: AISetRunning m25obj_34 to 1
AI: AIRun is restarting m25obj_36
AI: AISetRunning m25obj_36 to 1
AI: AIRun is restarting m25obj_38
AI: AISetRunning m25obj_38 to 1
AI: AIRun is restarting m25obj_40
AI: AISetRunning m25obj_40 to 1
AI: AIRun is restarting m25obj_42
AI: AISetRunning m25obj_42 to 1
ENCOUNTER: PlayEncCutscene(): 'startcs' : 'Enc_StandardStartEnable(2)'
ENCOUNTER: PlayCutsceneFromList(): None : 'Enc_StandardStartEnable(2)' ... []
GROUP: 'm25obj_2' automatically promoted to leader of group '2_minion'
GROUP: 'm25obj_2' made leader of group '2_minion'
GOAL: Adding goal Goal_Guard(1004,'m25obj_2',19) to character m25obj_4
GOAL: Adding goal Goal_Guard(1005,'m25obj_2',19) to character m25obj_6
GOAL: Adding goal Goal_Guard(1006,'m25obj_2',19) to character m25obj_8
GOAL: Adding goal Goal_Guard(1007,'m25obj_2',19) to character m25obj_10
GOAL: Adding goal Goal_Guard(1008,'m25obj_2',19) to character m25obj_12
GOAL: Adding goal Goal_Guard(1009,'m25obj_2',19) to character m25obj_14
GOAL: Adding goal Goal_Guard(1010,'m25obj_2',19) to character m25obj_16
GOAL: Adding goal Goal_Guard(1011,'m25obj_2',19) to character m25obj_18
GOAL: Adding goal Goal_Guard(1012,'m25obj_2',19) to character m25obj_20
GOAL: Adding goal Goal_Guard(1013,'m25obj_2',19) to character m25obj_22
GOAL: Adding goal Goal_Guard(1014,'m25obj_2',19) to character m25obj_24
GOAL: Adding goal Goal_Guard(1015,'m25obj_2',19) to character m25obj_26
GOAL: Adding goal Goal_Guard(1016,'m25obj_2',19) to character m25obj_28
GOAL: Adding goal Goal_Guard(1017,'m25obj_2',19) to character m25obj_30
GOAL: Adding goal Goal_Guard(1018,'m25obj_2',19) to character m25obj_32
GOAL: Adding goal Goal_Guard(1019,'m25obj_2',19) to character m25obj_34
GOAL: Adding goal Goal_Guard(1020,'m25obj_2',19) to character m25obj_36
GOAL: Adding goal Goal_Guard(1021,'m25obj_2',19) to character m25obj_38
GOAL: Adding goal Goal_Guard(1022,'m25obj_2',19) to character m25obj_40
GOAL: Adding goal Goal_Guard(1023,'m25obj_2',19) to character m25obj_42
GROUP: '2_minion' set to guard 'm25obj_2'
GOAL: Adding goal Goal_StayWithTeam(1024,20) to character m25obj_2
ENCOUNTER: -- custom check end EncCustom_VillainsFight_CheckEnd(2) - None
ENCOUNTER: -- custom check end EncCustom_AlliesFightVillains_CheckEnd(2) - ['no allies']

And here is the final encounter:

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

Encounter: Attack6
Type: Interrogation
Villains: sonar, count_vertigo, copperhead, goldface, solomon_grundy, deathstroke, fisherman, per_futurebot, per_futurebot
Minions: per_futurebot, mech_man_flame
Next: None

Alert Cutscene:
Camera on Villain1
Villain1 says, "Foreign interlopers! Face me or I'll shake this entire city to its foundations and bury you in the rubble!"
Camera on Hero1
Shake Camera
Hero1 says, "Where did THAT come from? I've read the file on Sonar, and he has never been that powerful before!"
Red Arrow on Villain1

Start Cutscene:
Camera on Hero1
Hero1 moves to Villain1
Hero2 moves to Villain1
Hero3 moves to Villain1
Hero4 moves to Villain1
Hero1 turns to Villain1
Hero1 says, "We're here Sonar...but you can't seriously think that you can take on the Justice League. Even if you beat us, there is no way the UN will allow this kind of attack to go unanswered. "
Cinematic camera on Villain1
Villain1 says, "Ahh...the wheels of democracy turn slowly...especially when it comes to war. The world doesn't have the will that I do...that our leader does. Even if they can stop bickering long enough to challenge us, we are not afraid of anything this world can throw at us."
Hero2 turns to Villain1
Villain1 says, "You have already had a taste of my power, yes? I have much greater range than ever before. It isn't of great use against a single target...but now cities will tremble before me...or fall beneath me. This is the least of the wonders that our leader can bring to bear...and I am hardly alone."
Villain1 says, "When all is said and done, my beloved nation of Modora will take its rightful place as the center of an empire worthy of it, and of me."
Villain2 says, "BOTH our nations will have the glory denied them...don't forget that Sonar."
Cinematic camera on Hero2
Hero2 says, "Quite a motely assortment of scum you've collected."
Cinematic camera on Villain1
Villain1 says, "Yes...they are willing to fight and conquer for mere money, but they serve as adequate insurance against the interference of fools like you."
Villain5 says, "When Grundy get gold? Grundy was promised gold!"
Villain3 says, "Yessss...when do we get paid?"
Villain6 says, "Amateurs, we'll get paid when the job is done, and it looks to me like these heores have just become the job."
Villain1 says, "Very astute Deathstroke. Maybe you are worth what we're paying after all. Kill them!"

Interrogation Cutscene:
camera on Villain1
Hero1 moves to Villain1
Villain1 says, "Uhhh...please...no more...what do you want to know?"
Hero1 says, "What is behind all this?"
Villain1 says, "A...brilliant man...named Degaton, Per Degaton...contacted me."
Villain1 says, "He told me that he was going to be great...told me that he was going to SIEZE greatness...and that I could join him in rising. He showed me technological wonders...and he said he wanted an empire. I was supposed to have a part of it...Modora!"
Hero1 says, "Where! Where can we find this guy?"
Villain1 says, "He...our base of operations is a castle in the mountains to the east...."
Fade for 3 seconds

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


As you can see, it isn't anything fancy, just an interrogation encounter.  I'm baffled.  I'll continue testing the other stuff, and hopefully someone can help me figure this out.

:EDIT: A quick update, JSA#1 is working and pretty much done.
Title: Re: EZScript Comics Vol. 2
Post by: BentonGrey on May 22, 2009, 07:10:45 PM
Grr!  Okay, so the last encounter is working fine now...EXCEPT that when you defeat the primary villain (Sonar), just as he SHOULD be getting the interrogation symbol, I'm getting a CTD!  Neither FF.log, nor script.log have anything that points to something like this.  Help!

The updated encounter:

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

Encounter: Attack6
Type: Interrogation
Villains: sonar, count_vertigo, copperhead, goldface, solomon_grundy, deathstroke, fisherman, per_futurebot, per_futurebot
Minions: per_futurebot, mech_man_flame
Next: End

Alert Cutscene:
Camera on sonar
sonar says, "Foreign interlopers! Face me or I'll shake this entire city to its foundations and bury you in the rubble!"
Camera on Hero1
Shake Camera
Hero1 says, "Where did THAT come from? I've read the file on Sonar, and he has never been that powerful before!"
Red Arrow on sonar

Start Cutscene:
Camera on Hero1
Hero1 moves to sonar
Hero2 moves to sonar
Hero3 moves to sonar
Hero4 moves to sonar
Hero1 turns to sonar
Hero1 says, "We're here Sonar...but you can't seriously think that you can take on the Justice League. Even if you beat us, there is no way the UN will allow this kind of attack to go unanswered. "
Cinematic camera on sonar
sonar says, "Ahh...the wheels of democracy turn slowly...especially when it comes to war. The world doesn't have the will that I do...that our leader does. Even if they can stop bickering long enough to challenge us, we are not afraid of anything this world can throw at us."
Hero2 turns to sonar
sonar says, "You have already had a taste of my power, yes? I have much greater range than ever before. It isn't of great use against a single target...but now cities will tremble before me...or fall beneath me. This is the least of the wonders that our leader can bring to bear...and I am hardly alone."
sonar says, "When all is said and done, my beloved nation of Modora will take its rightful place as the center of an empire worthy of it, and of me."
count_vertigo says, "BOTH our nations will have the glory denied them...don't forget that Sonar."
Cinematic camera on Hero2
Hero2 says, "Quite a motely assortment of scum you've collected."
Cinematic camera on sonar
sonar says, "Yes...they are willing to fight and conquer for mere money, but they serve as adequate insurance against the interference of fools like you."
solomon_grundy says, "When Grundy get gold? Grundy was promised gold!"
copperhead says, "Yessss...when do we get paid?"
deathstroke says, "Amateurs, we'll get paid when the job is done, and it looks to me like these heores have just become the job."
sonar says, "Very astute Deathstroke. Maybe you are worth what we're paying after all. Kill them!"

Interrogation Cutscene:
Camera on sonar
Hero1 moves to sonar
sonar says, "Uhhh...please...no more...what do you want to know?"
Hero1 says, "What is behind all this?"
sonar says, "A...brilliant man...named Degaton, Per Degaton...contacted me."
sonar says, "He told me that he was going to be great...told me that he was going to SIEZE greatness...and that I could join him in rising. He showed me technological wonders...and he said he wanted an empire. I was supposed to have a part of it...Modora!"
Hero1 says, "Where! Where can we find this guy?"
sonar says, "He...our base of operations is a castle in the mountains to the east...."
Fade for 3 seconds
Title: Re: EZScript Comics Vol. 2
Post by: GogglesPizanno on May 22, 2009, 08:34:40 PM
Its been a while since i did any EZScript stuff so I'm just spitballing, but could it be an issue with you specifying Sonar as the villain during the interrogation cutscene? Since you have so many villains, what if Sonar is the first one killed. If the game has removed him, and then the cutscene is specifically targeting him, it seems to me that it might crash because that character doesn't exist anymore to be the target of the camera.

But like I say. Im rusty so its just a random guess.
Title: Re: EZScript Comics Vol. 2
Post by: BentonGrey on May 22, 2009, 09:16:38 PM
According to my understanding Goggles, I don't think that is likely.  EZScript, as far as I know, picks the first villain in a list and makes them the target of interrogations.  Besides, in this instance I killed everyone else with the developer console to see if the thing was working right.  I beat Sonar last, with in game powers.
Title: Re: EZScript Comics Vol. 2
Post by: BentonGrey on May 31, 2009, 01:37:44 AM
So, I went a different way with the mission, and things seem to be working out.  I've got a new question for any of those with EZScript experience.  I'm facing the same problem I did when I was working on my last JLA missions.  I want to offer the player a chance to chose his or her team, but if I do that, then the rest of the JSA/JLA won't be able to join them, as I have no way to figure out who they chose.  I was thinking that there might be a way to handle this through the Simple Choice plugin, but I can't think of any good way to go about it.  Does anyone have any ideas?

:EDIT:  Hmm...what if...I spawn ALL of the characters, and then I do four simple choice encounters, in which the players say who they chose, and each one of those points to ANOTHER encounter that kills the spawned character that they say they have on the mission?

:EDIT2: No ideas?
Title: Re: EZScript Comics Vol. 2
Post by: BentonGrey on August 22, 2009, 09:34:41 PM
Urg....so, one of the things I've been doing with my time is trying to improve the original 3 campaigns included in the DCUG.  I specifically wanted to improve a certain exposition heavy cutscene in JLA.  I tried to make it a bit more dynamic, and that grew into me creating an entire new mission.  I can't get the darn thing to work, and I'm sick of beating my head against a wall.  What follows is the mission file.  Does anyone see any reason this shouldn't work?  I want it to basically be one big cutscene.  Is there an easier way to do this?  It works until the third encounter, and that cs never plays.

Spoiler
Story: 05ajla

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

Encounter: Begin1
Type: Alliance
Allies: martian_man, superman, batman, flash, green_lantern
Marker: skirmishspawn
Next: Chat1

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

Encounter: Chat1
Type: Cutscene
Next: Chat2

Start Cutscene:
Unfade for 3 seconds
Cinematic camera on martian_man
superman says, "W-where are we? A moment ago we were standing in that army base..."
batman says, "It looks like...Mars?"
green_lantern says, "You've got good eyes Bats...it looks JUST like Mars."
martian_man says, "Yes. It is...or rather, it is a memory of a place that no longer exists."
batman says, "Telepathy. I don't like people in my head."
flash turns to green_lantern
flash says, "I'm sure it's crowded enough in there already."
flash turns to martian_man
martian_man says, "Please, I mean no harm. I only wish to answer your questions...and this is the best way that I have at my disposal. The threat that faces your world is not new..."
martian_man says, "It began many millenia ago, in the days before your people had so much as discovered fire. My homeworld, Mars, was in turmoil, the great prophet H'ronmeer was trying to unite our people and bring peace to the troubled planet."
martian_man plays animation ranged_2
martian_man says, "He had almost succeeded when a sect of our people called the S'ourns betrayed him, murdering him and almost destroying the peace he had created, but the rest of the Martians drew together, honoring his memory, and his dream was not lost."
martian_man says, "Follow me, and observe the final days of my home."
martian_man moves to city1

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

Encounter: Chat2
Type: Fight
Allies: martian_mann, martian_mann, martian_mann, martian_mann, martian_mann, martian_mann, martian_mann
Villains: white_martian, white_martian, white_martian, white_martian, white_martian, white_martian, white_martian, martian_walker, martian_walker, martian_walker, martian_fighter, martian_fighter
Marker: city1
Next: End

Alert Cutscene:
Camera on city1
Ally1 moves to spot1
Ally2 moves to spot2
Ally3 plays animation ranged
martian_man says, "The S'ourns were banished to the vast emptiness of space, cast adrift far from the warmth of the suns, and a golden age began. My world was a paradise, it's people pursuing art and literature instead of war and destruction. Our civilization had achieved peace and prosperity and we were happy...until they returned."
Ally2 moves to city1
Villain1 moves to dot1
Villain2 moves to dot2
Villain3 moves to dot3
Villain4 moves to dot4
Villain5 moves to dot5
Villain6 moves to dot6
martian_man says, "The S'ourns had escaped their exile and they returned, much changed by their ordeal. They were pale and hideous, twisted by being trapped so long with the evil of their own hearts. They invaded, and...fed upon my people."
Cinematic camera on Villain1
Villain1 moves to Ally2
Ally2 turns to Villain1
Villain1 plays animation ranged
Ally2 plays animation stunned
Play effect effect_mentor at Ally2
Ally2 is killed
Villain7 moves to dot7
Villain8 moves to dot8
Villain9 moves to dot9
Ally1 turns to spot2
Ally3 turns to spot2
Ally4 turns to spot2
Ally5 turns to spot2
Ally6 turns to spot2
Ally7 turns to spot2
Villain10 moves to dot10
Villain11 moves to dot11
Villain12 moves to dot12
martian_man says, "All Martians are telepathic, and there is no greater crime than to invade another's mind, but these creatures who had once been Martains now preyed upon their brethren. They had become a type of psychic vampire, draining the strength and knowledge of my people to increase their own."
Cinematic camera on Villain4
Villain4 plays animation ranged
Camera on Ally4
Ally4 plays animation stunned
Ally4 is killed
Cinematic camera on Villain5
Villain 5 plays animation ranged
Camera on Ally5
Ally5 plays animation stunned
Ally5 is killed
Cinematic camera on Ally6
Ally6 moves to Villain1
martian_man says, "We had abandoned war centuries before, but we relearned the craft quickly. We fought bravely, but we were outmatched. I was a Manhunter, a lawkeeper, a defender of the people, but even the Manhunters could not stem the tide."
Ally6 plays animation melee
Ally3 moves to Villain4
Villain1 plays animation stunned
Villain1 is killed
Cinematic camera on Ally3
Ally plays animation melee
Villain4 plays animation stunned
Villain4 is killed
Cinematic camera on Villain9
Villain9 turns to Ally1
Villain9 plays animation ranged
Play effect effect_nuke at Ally1
Ally1 is killed
Ally3 is killed
Ally6 is killed
Ally7 is killed
Cinematic camera on martian_man
martian_man turns to aquaman_classic
martian_man plays animation stunned
martian_man says, "I...I was there at the end. I led the last, desperate raid in the twilight hours of the war. We invaded their subterannean citadel, and released a powerful nerve gas that paralyzed them all. Our last gambit had been successful, but the cost...ohh, the cost!"
Camera on martian_man
martian_man plays animation recover_from_stun
martian_man says, "I was...I am, the last Martian. I sealed their citadel, condeming them to an eternity of paralysis, but while I was in a hybernation cycle explorers from your planet released them. When I awoke I discovered what had happened and attempted to warn your world...to spare it the destruction that my own suffered."
batman moves to martian_man
Cinematic camera on batman
batman says, "But you were captured by the military and imprisoned."
Camera on martian_man
superman moves to martian_man
martian_man says, "Yes, they did not trust me...and now it is too late."
Cinematic camera on superman to martian_man
superman says, "No...now we know what they are, we know what we're fighting, we have a real chance!"
martian_man says, "You don't understand...it is beginning!"
Fade for 3 seconds
Villain2 is killed
Villain3 is killed
Villain5 is killed
Villain6 is killed
Villain7 is killed
Villain8 is killed
Villain9 is killed
Villain10 is killed
Villain11 is killed
Villain12 is killed

#-----------------------------------------
Title: Re: EZScript Comics Vol. 2
Post by: GogglesPizanno on August 22, 2009, 10:22:56 PM
Have you tried changing the offending encounter from an alert cutscene to a start custscene. I remember in the past I always had weird issues trying to do Dialogue and what not in an alert CS. So I always used the alert CS to set arrows and positions etc, but any dialogue story stuff I put in the start CS.
Title: Re: EZScript Comics Vol. 2
Post by: BentonGrey on August 22, 2009, 10:45:56 PM
Haha, yeah, I actually just changed it from "Start" to "Alert" in a desperate attempt to get it to work.  It's been a "Cutscene" type encounter, and the CS itself has been both Start and Alert.  There is nothing in the script.log, by the way.  I suppose what I'm really looking for is just a way to have this mission work like a long cutscene, get this information across, and keep it moderately entertaining.
Title: Re: EZScript Comics Vol. 2
Post by: John Jr. on August 28, 2009, 04:06:53 AM
Quote from: M25 on January 10, 2009, 11:00:42 PM
I sent a patch to the email address I had for you (the yahoo one).  It should correct an issue with the cinematic camera and with the disarm bomb encounter not preventing the explosion.

The bomb is spawned at <encounter_marker>_bomb1




I am facing the same problem as Benton with a "disarm bomb" encounter on my Legion mod's first mission. Where I can get this patch?
Thanks!
Title: Re: EZScript Comics Vol. 2
Post by: BentonGrey on August 28, 2009, 03:21:16 PM
If it isn't in his newest patches, then I likely have it somewhere...but I don't remember what files they were.
Title: Re: EZScript Comics Vol. 2
Post by: John Jr. on August 28, 2009, 09:46:32 PM
I got EZ script campaign V1.1 and still have the " bomb problem". I believe the patch is the only way to fix it, please let me know if someone can send me the files.
Thanks!
Title: Re: EZScript Comics Vol. 2
Post by: BentonGrey on August 28, 2009, 11:15:50 PM
I'll try and look this weekend John.  If I haven't sent you SOMETHING by Sunday, PM me.
Title: Re: EZScript Comics Vol. 2
Post by: John Jr. on August 28, 2009, 11:42:24 PM
Thanks a lot, Benton!
I really want make this mod, but never will be able without help.
Once again, thanks!
Title: Re: EZScript Comics Vol. 2
Post by: BentonGrey on January 09, 2010, 04:37:11 AM
I've got a question for those of you in the know; is there a way to UNrecruit someone through EZScript?  In my JLA/JSA campaign, I want the player to be able to choose some JSAers occasionally, but I don't want them to be available in future arcs.
Title: Re: EZScript Comics Vol. 2
Post by: earl of bronze on April 11, 2010, 12:17:03 AM
Here is my script from the DCU

>>> system/init.py executed
>>> system/localinit.py executed
>>> system\tredir.py executed
Starting ffx.py v. 3.3.1 build 0; branch = main release update
Loading m25ai.py v. 3.2.0 build 10; branch = beta 2: m25 branch 2
importing missionobjvar.py v1.20
importing MLOG Reader 1.0.23
loading datfiles version 0.256000
Starting General Utilities 1.0.1
missionobjvar(FixLongs): Fixing overflow issue with <SCSTATE_BUOYANT>
missionobjvar defining functions for Campaign play.
Loading m25cutscene.py v.3.3.08 January 18, 2010
CustomHeadCurrentTime 1270924597.515000
Starting Height Check module 1.4
Starting System Utilities 1.5
OBJECTS_HEIGHT: 604 entries
NIF_OBJECTS: 482 entries
BUILDINGS_IN_OBJECTS_DAT: 30 entries
BUILDING_DIMENSIONS: 30 entries
Starting skXMapInfo.py  v 0.79 beta
skXMapInfo: m25ai available
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.py v.3.3.09 Feb 2, 2010
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
Loading m25pstory.py  v.3.3.07 January 30, 2009
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
! 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 ()
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()
Title: Re: EZScript Comics Vol. 2
Post by: earl of bronze on April 14, 2010, 01:24:01 AM
My script with the JSA mission problem:


>>> system/init.py executed
>>> system/localinit.py executed
>>> system\tredir.py executed
Starting ffx.py v. 3.3.1 build 0; branch = main release update
Loading m25ai.py v. 3.2.0 build 10; branch = beta 2: m25 branch 2
importing missionobjvar.py v1.20
importing MLOG Reader 1.0.23
loading datfiles version 0.256000
Starting General Utilities 1.0.1
missionobjvar(FixLongs): Fixing overflow issue with <SCSTATE_BUOYANT>
missionobjvar defining functions for Campaign play.
Loading m25cutscene.py v.3.3.08 January 18, 2010
CustomHeadCurrentTime 1271207764.312000
Starting Height Check module 1.4
Starting System Utilities 1.5
OBJECTS_HEIGHT: 604 entries
NIF_OBJECTS: 482 entries
BUILDINGS_IN_OBJECTS_DAT: 30 entries
BUILDING_DIMENSIONS: 30 entries
Starting skXMapInfo.py  v 0.79 beta
skXMapInfo: m25ai available
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.py v.3.3.09 Feb 2, 2010
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
Loading m25pstory.py  v.3.3.07 January 30, 2009
FFX Mission Plugin 'm25encstory' imported
Starting Built-In Function Wrapper 1.5
('Object_CalcPrestige', 'js')
>>> C:\Documents and Settings\Owner\Local Settings\Application Data\Irrational Games\Freedom Force vs the 3rd Reich\temp\mission.py executed
! GetMapInfo
MLOG_Init(keepRunningModules=0): starting up
mlogreader.MLOG_Init: current mission = '01_JSA_DS_CASTLE_DOOM'
initialising FFX: skirmish=0
mapinfocaliper0 is not a valid explosion object
mapinfocaliper2 is not a valid explosion object
mapinfocaliper1 is not a valid explosion object
mapinfocaliper3 is not a valid explosion object
storing hero_1: id_1,140
storing hero_2: id_2,334
storing hero_3: id_3,132
storing hero_4: id_4,37
frank nazi_general lab1_villain1
tom nazi_rifleman lab1_villain2
dick nazi_rifleman lab1_villain3
harry nazi_rifleman lab1_villain4
john nazi_gunner lab1_villain5
jack nazi_grenadier lab1_villain6
joe nazi_gunner lab1_villain7
bob doctor lab1_ally1
m25obj_2 per_degaton lab1_ally2
m25obj_4 nazi_rifleman lab2_villain1
m25obj_6 nazi_rifleman lab2_villain2
m25obj_8 nazi_gunner lab2_villain3
m25obj_10 nazi_gunner lab2_villain4
m25obj_12 nazi_grenadier lab2_villain5
m25obj_14 nazi_gunner lab2_villain6
m25obj_16 nazi_gunner lab2_villain7
m25obj_18 nazi_general lab3_villain1
m25obj_20 nazi_rifleman lab3_villain2
m25obj_22 nazi_grenadier lab3_villain3
m25obj_24 nazi_gunner lab3_villain4
m25obj_26 nazi_gunner lab3_villain5
m25obj_28 nazi_grenadier lab3_villain6
m25obj_30 nazi_rifleman lab3_villain7
m25obj_32 nazi_gunner lab3_villain8
m25obj_34 nazi_rifleman lab4_villain1
m25obj_36 nazi_rifleman lab4_villain2
m25obj_38 nazi_gunner lab4_villain3
m25obj_40 nazi_gunner lab4_villain4
m25obj_42 nazi_gunner lab4_villain5
m25obj_44 nazi_rifleman lab4_villain6
m25obj_46 nazi_gunner lab4_villain7
m25obj_48 nazi_gunner lab4_villain8
m25obj_50 nazi_rifleman lab5_villain1
m25obj_52 nazi_rifleman lab5_villain2
m25obj_54 nazi_gunner lab5_villain3
m25obj_56 nazi_gunner lab5_villain4
m25obj_58 nazi_gunner lab5_villain5
m25obj_60 nazi_gunner lab5_villain6
m25obj_62 nazi_gunner lab5_villain7
m25obj_64 nazi_gunner lab5_villain8
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))
clearCarrierRegistration: clearing attribute 'hextothrow2hero_1' for destroyed object 'mapinfocaliper0'
clearCarrierRegistration: clearing attribute 'energizetograpplehero_1' for destroyed object 'mapinfocaliper0'
clearCarrierRegistration: clearing attribute 'hextothrow2hero_4' for destroyed object 'mapinfocaliper0'
clearCarrierRegistration: clearing attribute 'hextothrow2hero_1' for destroyed object 'mapinfocaliper1'
clearCarrierRegistration: clearing attribute 'energizetograpplehero_1' for destroyed object 'mapinfocaliper1'
clearCarrierRegistration: clearing attribute 'hextothrow2hero_4' for destroyed object 'mapinfocaliper1'
clearCarrierRegistration: clearing attribute 'hextothrow2hero_1' for destroyed object 'mapinfocaliper2'
clearCarrierRegistration: clearing attribute 'energizetograpplehero_1' for destroyed object 'mapinfocaliper2'
clearCarrierRegistration: clearing attribute 'hextothrow2hero_4' for destroyed object 'mapinfocaliper2'
clearCarrierRegistration: clearing attribute 'hextothrow2hero_1' for destroyed object 'mapinfocaliper3'
clearCarrierRegistration: clearing attribute 'energizetograpplehero_1' for destroyed object 'mapinfocaliper3'
clearCarrierRegistration: clearing attribute 'hextothrow2hero_4' for destroyed object 'mapinfocaliper3'
initAttribsForChar: working on m25obj_12 (nazi_grenadier)
initAttribsForChar: working on m25obj_22 (nazi_grenadier)
initAttribsForChar: working on m25obj_30 (nazi_rifleman)
initAttribsForChar (nazi_rifleman): looking at attribute timid
initAttribsForChar: working on m25obj_54 (nazi_gunner)
initAttribsForChar: working on m25obj_50 (nazi_rifleman)
initAttribsForChar (nazi_rifleman): looking at attribute timid
initAttribsForChar: working on hero_2 (flash1)
initAttribsForChar (flash1): looking at attribute wall climbing
initAttribsForChar (flash1): looking at attribute danger sense
initAttribsForChar (flash1): looking at attribute nimble
initAttribsForChar (flash1): looking at attribute fast healing
initAttribsForChar (flash1): looking at attribute rapid metabolism
initAttribsForChar: working on m25obj_60 (nazi_gunner)
initAttribsForChar: working on m25obj_64 (nazi_gunner)
initAttribsForChar: working on m25obj_24 (nazi_gunner)
initAttribsForChar: working on m25obj_6 (nazi_rifleman)
initAttribsForChar (nazi_rifleman): looking at attribute timid
initAttribsForChar: working on m25obj_14 (nazi_gunner)
initAttribsForChar: working on m25obj_18 (nazi_general)
initAttribsForChar: working on m25obj_34 (nazi_rifleman)
initAttribsForChar (nazi_rifleman): looking at attribute timid
initAttribsForChar: working on frank (nazi_general)
initAttribsForChar: working on m25obj_2 (per_degaton)
initAttribsForChar (per_degaton): looking at attribute disciplined
initAttribsForChar (per_degaton): looking at attribute unheroic
initAttribsForChar (per_degaton): looking at attribute summoner4
execInitAttrib: init summoner4 attribute
    on m25obj_2 of template per_degaton (per_degaton)
initAttribsForChar (per_degaton): looking at attribute metashieldp
execInitAttrib: init metashieldp attribute
    on m25obj_2 of template per_degaton (per_degaton)
initAttribsForChar (per_degaton): looking at attribute dispersed
execInitAttrib: init dispersed attribute
    on m25obj_2 of template per_degaton (per_degaton)
initAttribsForChar: working on m25obj_10 (nazi_gunner)
initAttribsForChar: working on harry (nazi_rifleman)
initAttribsForChar (nazi_rifleman): looking at attribute timid
initAttribsForChar: working on m25obj_46 (nazi_gunner)
initAttribsForChar: working on bob (doctor)
initAttribsForChar: working on m25obj_38 (nazi_gunner)
initAttribsForChar: working on m25obj_42 (nazi_gunner)
initAttribsForChar: working on hero_3 (hourman_miraclo)
initAttribsForChar (hourman_miraclo): looking at attribute grim resolve
initAttribsForChar (hourman_miraclo): looking at attribute heroic
initAttribsForChar (hourman_miraclo): looking at attribute shake it off
initAttribsForChar (hourman_miraclo): looking at attribute jumper
initAttribsForChar (hourman_miraclo): looking at attribute miraclo
execInitAttrib: init miraclo attribute
    on hero_3 of template hourman_miraclo (hourman_miraclo)
initAttribsForChar: working on m25obj_20 (nazi_rifleman)
initAttribsForChar (nazi_rifleman): looking at attribute timid
initAttribsForChar: working on tom (nazi_rifleman)
initAttribsForChar (nazi_rifleman): looking at attribute timid
initAttribsForChar: working on joe (nazi_gunner)
initAttribsForChar: working on m25obj_26 (nazi_gunner)
initAttribsForChar: working on m25obj_8 (nazi_gunner)
initAttribsForChar: working on m25obj_44 (nazi_rifleman)
initAttribsForChar (nazi_rifleman): looking at attribute timid
initAttribsForChar: working on m25obj_62 (nazi_gunner)
initAttribsForChar: working on m25obj_48 (nazi_gunner)
initAttribsForChar: working on hero_1 (atom_I)
initAttribsForChar (atom_I): looking at attribute fearless
execInitAttrib: init fearless attribute
    on hero_1 of template atom_I (atom_I)
initAttribsForChar (atom_I): looking at attribute wall climbing
initAttribsForChar (atom_I): looking at attribute tough guy
initAttribsForChar (atom_I): looking at attribute clumsy
initAttribsForChar (atom_I): looking at attribute wrestler
execInitAttrib: init wrestler attribute
    on hero_1 of template atom_I (atom_I)
initAttribsForChar: working on m25obj_16 (nazi_gunner)
initAttribsForChar: working on m25obj_32 (nazi_gunner)
initAttribsForChar: working on m25obj_4 (nazi_rifleman)
initAttribsForChar (nazi_rifleman): looking at attribute timid
initAttribsForChar: working on m25obj_28 (nazi_grenadier)
initAttribsForChar: working on m25obj_40 (nazi_gunner)
initAttribsForChar: working on m25obj_36 (nazi_rifleman)
initAttribsForChar (nazi_rifleman): looking at attribute timid
initAttribsForChar: working on hero_4 (mrterrific)
initAttribsForChar (mrterrific): looking at attribute grim resolve
initAttribsForChar (mrterrific): looking at attribute heroic
initAttribsForChar (mrterrific): looking at attribute shake it off
initAttribsForChar (mrterrific): looking at attribute wall climbing
initAttribsForChar (mrterrific): looking at attribute nimble
initAttribsForChar: working on m25obj_58 (nazi_gunner)
initAttribsForChar: working on jack (nazi_grenadier)
initAttribsForChar: working on dick (nazi_rifleman)
initAttribsForChar (nazi_rifleman): looking at attribute timid
initAttribsForChar: working on john (nazi_gunner)
initAttribsForChar: working on m25obj_56 (nazi_gunner)
initAttribsForChar: working on m25obj_52 (nazi_rifleman)
initAttribsForChar (nazi_rifleman): looking at attribute timid
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()
Template_GetHeight() non-fatal error:
    template 'doctor' 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_GetHeight() non-fatal error:
    template 'per_degaton' not found in list of template heights.
    To detect approximate height, use
    checkHeight(templateList, precise = 'no', repeat = 0, replace = 0, giants = 1, campaign = 0)
Traceback (innermost last):
  File "C:\Program Files\Irrational Games\Freedom Force vs The 3rd Reich\.\DCUG\missions\scripts\m25cutscene.py", line 93, in PlayCurrentCutscene
    exec cs_string
  File "<string>", line 1, in ?
  File "C:\Program Files\Irrational Games\Freedom Force vs The 3rd Reich\.\DCUG\missions\scripts\m25cutscene.py", line 223, in CS_Effect
    js.Object_PlayEffect(location, effect)
RuntimeError: Object_PlayEffect(): Effect NIF not found - effect_portal_activate
clearCarrierRegistration: clearing attribute 'hextothrow2hero_1' for destroyed object 'bob'
clearCarrierRegistration: clearing attribute 'energizetograpplehero_1' for destroyed object 'bob'
clearCarrierRegistration: clearing attribute 'hextothrow2hero_4' for destroyed object 'bob'
Title: Re: EZScript Comics Vol. 2
Post by: BentonGrey on April 14, 2010, 11:30:12 PM
Alright, this is telling me that your effect, "effect_portal_activate" is missing, which doesn't make any sense, since it is a built in effect.  Check this directory: Data\art\library\fx\fx_levels\large_portal_object\large_portal_activate.nif  and see if the file is there.
Title: Re: EZScript Comics Vol. 2
Post by: earl of bronze on April 15, 2010, 01:22:53 AM
Quote from: BentonGrey on April 14, 2010, 11:30:12 PM
Alright, this is telling me that your effect, "effect_portal_activate" is missing, which doesn't make any sense, since it is a built in effect.  Check this directory: Data\art\library\fx\fx_levels\large_portal_object\large_portal_activate.nif  and see if the file is there.

In my DCUG folder I have art/library/fx/ but no fx levels folder. There are 4 folders textures, ffx, generic and generic states.

Title: Re: EZScript Comics Vol. 2
Post by: BentonGrey on April 15, 2010, 03:11:25 AM
Right, but it should be in your generic Data folder, the one you get from unpacking your art.dat file.  If you haven't done that, that could be the problem.  I'll upload that file and you can simply drop it into your DCUG directory, then the mission should work.
Title: Re: EZScript Comics Vol. 2
Post by: earl of bronze on April 15, 2010, 11:03:53 PM
My bad, I should have told you I checked my Data\art\library\fx folder first and just have 2 folders, textures and generic in it. That's why I then went to the DCU folder.
Title: Re: EZScript Comics Vol. 2
Post by: BentonGrey on April 16, 2010, 12:56:12 AM
Okey doke EoH, this could actually be behind some of your earlier weirdnesses.  I suppose the simplest thing to do is for me simply to put all of that up for you to download.  I'll do that now.

http://www.mediafire.com/?0zmjhg5h2xi
Title: Re: EZScript Comics Vol. 2
Post by: earl of bronze on April 16, 2010, 01:18:24 AM
Ok thanks!
Title: Re: EZScript Comics Vol. 2
Post by: earl of bronze on April 18, 2010, 02:01:02 PM
Here is my script for MIS 1


>>> system/init.py executed
>>> system/localinit.py executed
>>> system\tredir.py executed
Starting ffx.py v. 3.3.1 build 0; branch = main release update
Loading m25ai.py v. 3.2.0 build 10; branch = beta 2: m25 branch 2
importing missionobjvar.py v1.20
importing MLOG Reader 1.0.23
loading datfiles version 0.256000
Starting General Utilities 1.0.1
missionobjvar(FixLongs): Fixing overflow issue with <SCSTATE_BUOYANT>
missionobjvar defining functions for Campaign play.
Loading m25cutscene.py v.3.3.08 January 18, 2010
CustomHeadCurrentTime 1271598524.951000
Starting Height Check module 1.4
Starting System Utilities 1.5
OBJECTS_HEIGHT: 604 entries
NIF_OBJECTS: 482 entries
BUILDINGS_IN_OBJECTS_DAT: 30 entries
BUILDING_DIMENSIONS: 30 entries
Starting skXMapInfo.py  v 0.79 beta
skXMapInfo: m25ai available
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.py v.3.3.09 Feb 2, 2010
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
Loading m25pstory.py  v.3.3.07 January 30, 2009
FFX Mission Plugin 'm25encstory' imported
Starting Built-In Function Wrapper 1.5
('Object_CalcPrestige', 'js')
>>> C:\Documents and Settings\Owner\Local Settings\Application Data\Irrational Games\Freedom Force vs the 3rd Reich\temp\mission.py executed
! 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_skyscraper5' 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_skyscraper5' 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_temple' not found in list of building dimensions.
    To detect approximate dimensions, use
    getBuildingDimensions ()
Building_GetDimensions() non-fatal error:
    template 'building_tower' not found in list of building dimensions.
    To detect approximate dimensions, use
    getBuildingDimensions ()
Building_GetDimensions() non-fatal error:
    template 'building_tower' not found in list of building dimensions.
    To detect approximate dimensions, use
    getBuildingDimensions ()
Building_GetDimensions() non-fatal error:
    template 'building_tower' not found in list of building dimensions.
    To detect approximate dimensions, use
    getBuildingDimensions ()
Building_GetDimensions() non-fatal error:
    template 'building_tower' not found in list of building dimensions.
    To detect approximate dimensions, use
    getBuildingDimensions ()
Building_GetDimensions() non-fatal error:
    template 'building_tower' 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_skyscraper5' 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_skyscraper5' 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_temple' not found in list of building dimensions.
    To detect approximate dimensions, use
    getBuildingDimensions ()
Building_GetDimensions() non-fatal error:
    template 'building_tower' not found in list of building dimensions.
    To detect approximate dimensions, use
    getBuildingDimensions ()
Building_GetDimensions() non-fatal error:
    template 'building_tower' not found in list of building dimensions.
    To detect approximate dimensions, use
    getBuildingDimensions ()
Building_GetDimensions() non-fatal error:
    template 'building_tower' not found in list of building dimensions.
    To detect approximate dimensions, use
    getBuildingDimensions ()
Building_GetDimensions() non-fatal error:
    template 'building_tower' not found in list of building dimensions.
    To detect approximate dimensions, use
    getBuildingDimensions ()
Building_GetDimensions() non-fatal error:
    template 'building_tower' not found in list of building dimensions.
    To detect approximate dimensions, use
    getBuildingDimensions ()
MLOG_Init(keepRunningModules=0): starting up
mlogreader.MLOG_Init: current mission = '01_HAWKMAN_HT_THANAGAR'
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 hero1: id_1,71
storing hero2: id_2,182
m25obj_2 byth tomb1_villain1
m25obj_4 than_female1 tomb1_ally1
m25obj_6 than_male2 tomb1_ally2
m25obj_8 than_female1 tomb1_ally3
m25obj_10 than_female2 tomb1_ally4
m25obj_12 than_female1 tomb1_ally5
m25obj_14 than_male2 tomb1_ally6
m25obj_16 than_male1 tomb1_ally7
m25obj_18 than_male2 tomb1_ally8
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 m25obj_18 (than_male2)
initAttribsForChar: working on m25obj_16 (than_male1)
initAttribsForChar: working on m25obj_14 (than_male2)
initAttribsForChar: working on m25obj_12 (than_female1)
initAttribsForChar: working on m25obj_10 (than_female2)
initAttribsForChar: working on m25obj_8 (than_female1)
initAttribsForChar: working on m25obj_6 (than_male2)
initAttribsForChar: working on m25obj_2 (byth)
initAttribsForChar (byth): looking at attribute disciplined
initAttribsForChar (byth): looking at attribute unheroic
initAttribsForChar (byth): looking at attribute metashieldp
execInitAttrib: init metashieldp attribute
    on m25obj_2 of template byth (byth)
initAttribsForChar (byth): looking at attribute shapeshifter
execInitAttrib: init shapeshifter attribute
    on m25obj_2 of template byth (byth)
initAttribsForChar: working on m25obj_4 (than_female1)
initAttribsForChar: working on hero1 (hawkman_gun)
initAttribsForChar (hawkman_gun): looking at attribute thanagarian
execInitAttrib: init ffqnimbleflier attribute inside ['thanagarian', 'ffqnimbleflier', 'fastflier', 'grimresolve', 'fasthealing'] combo
    on hero1 of template hawkman_gun (hawkman_gun)
execInitAttrib: init fastflier attribute inside ['thanagarian', 'ffqnimbleflier', 'fastflier', 'grimresolve', 'fasthealing'] combo
    on hero1 of template hawkman_gun (hawkman_gun)
execInitAttrib: init grimresolve attribute inside ['thanagarian', 'ffqnimbleflier', 'fastflier', 'grimresolve', 'fasthealing'] combo
    on hero1 of template hawkman_gun (hawkman_gun)
execInitAttrib: init fasthealing attribute inside ['thanagarian', 'ffqnimbleflier', 'fastflier', 'grimresolve', 'fasthealing'] combo
    on hero1 of template hawkman_gun (hawkman_gun)
initAttribsForChar (hawkman_gun): looking at attribute flier
initAttribsForChar (hawkman_gun): looking at attribute temperature control
initAttribsForChar (hawkman_gun): looking at attribute solid skeleton
initAttribsForChar: working on hero2 (hawkgirl_gun)
initAttribsForChar (hawkgirl_gun): looking at attribute solid skeleton
initAttribsForChar (hawkgirl_gun): looking at attribute thanagarian
execInitAttrib: init ffqnimbleflier attribute inside ['thanagarian', 'ffqnimbleflier', 'fastflier', 'grimresolve', 'fasthealing'] combo
    on hero2 of template hawkgirl_gun (hawkgirl_gun)
execInitAttrib: init fastflier attribute inside ['thanagarian', 'ffqnimbleflier', 'fastflier', 'grimresolve', 'fasthealing'] combo
    on hero2 of template hawkgirl_gun (hawkgirl_gun)
execInitAttrib: init grimresolve attribute inside ['thanagarian', 'ffqnimbleflier', 'fastflier', 'grimresolve', 'fasthealing'] combo
    on hero2 of template hawkgirl_gun (hawkgirl_gun)
execInitAttrib: init fasthealing attribute inside ['thanagarian', 'ffqnimbleflier', 'fastflier', 'grimresolve', 'fasthealing'] combo
    on hero2 of template hawkgirl_gun (hawkgirl_gun)
initAttribsForChar (hawkgirl_gun): looking at attribute flier
initAttribsForChar (hawkgirl_gun): looking at attribute nimble
initAttribsForChar (hawkgirl_gun): looking at attribute temperature control
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()
m25obj_20 than_kasta encounter13_villain1
m25obj_22 than_kasta encounter13_villain2
m25obj_24 than_kasta encounter13_villain3
m25obj_26 than_male1 encounter13_ally1
m25obj_28 than_male2 encounter13_ally2
m25obj_30 than_female1 encounter13_ally3
m25obj_32 than_female2 encounter13_ally4
initAttribsForChar: working on m25obj_32 (than_female2)
initAttribsForChar: working on m25obj_30 (than_female1)
initAttribsForChar: working on m25obj_28 (than_male2)
initAttribsForChar: working on m25obj_26 (than_male1)
initAttribsForChar: working on m25obj_24 (than_kasta)
initAttribsForChar (than_kasta): looking at attribute jumper
initAttribsForChar (than_kasta): looking at attribute claws
initAttribsForChar (than_kasta): looking at attribute nimble
initAttribsForChar (than_kasta): looking at attribute danger sense
initAttribsForChar (than_kasta): looking at attribute hot tempered
initAttribsForChar: working on m25obj_20 (than_kasta)
initAttribsForChar (than_kasta): looking at attribute jumper
initAttribsForChar (than_kasta): looking at attribute claws
initAttribsForChar (than_kasta): looking at attribute nimble
initAttribsForChar (than_kasta): looking at attribute danger sense
initAttribsForChar (than_kasta): looking at attribute hot tempered
initAttribsForChar: working on m25obj_22 (than_kasta)
initAttribsForChar (than_kasta): looking at attribute jumper
initAttribsForChar (than_kasta): looking at attribute claws
initAttribsForChar (than_kasta): looking at attribute nimble
initAttribsForChar (than_kasta): looking at attribute danger sense
initAttribsForChar (than_kasta): looking at attribute hot tempered
addArrow m25obj_30arrow m25obj_30 1 0
Title: Re: EZScript Comics Vol. 2
Post by: BentonGrey on April 18, 2010, 02:28:37 PM
Hmm...curses.  Nothing is obviously breaking down.  Did you get get an interrogate icon on the civilians you rescued?  Did a CS play when you clicked on them?  I'm going to do some testing on my end, and we'll see what happens.
Title: Re: EZScript Comics Vol. 2
Post by: earl of bronze on April 18, 2010, 03:15:02 PM
Yes I interrogated them and got the cut scene. However then I flew all around the map and nothing else happened. I even went to the top of a couple buildings that looked like they might be important.
Title: Re: EZScript Comics Vol. 2
Post by: BentonGrey on April 18, 2010, 03:18:11 PM
Okey doke, I've fixed it, and now I'm troubleshooting a few of the later missions in that campaign.  Expect a minor patch sometime today. 

Apparently, the "Lose" result which was supposed to come into play if you let all the civilians die was causing a bunch of weirdness, so I simply removed it.  Now you can still win the mission if you let everyone get killed...which sucks, but at least you CAN win it.  Also, I'm fixing the ghosting issue on several of the villains for this campaign.
Title: Re: EZScript Comics Vol. 2
Post by: BentonGrey on April 21, 2010, 04:02:43 PM
Ehh, I forgot all about this because of some real life things that came up, but I'll try and put a patch out soon-ish.  I'm getting some weird errors in The Atom's campaign, but it seems to be playable despite that.  I suppose I'll just patch what I can, and if anyone can solve the other issues, then bully for them. :P
Title: Re: EZScript Comics Vol. 2
Post by: earl of bronze on May 04, 2010, 02:31:55 AM
Here is the script for the Bat5

Spoiler
Ras and Mr Freeze are usually mentioned then crash to desktop. Sometimes it crashes sooner.


>>> system/init.py executed
>>> system/localinit.py executed
>>> system\tredir.py executed
Starting ffx.py v. 3.3.1 build 0; branch = main release update
Loading m25ai.py v. 3.2.0 build 10; branch = beta 2: m25 branch 2
importing missionobjvar.py v1.20
importing MLOG Reader 1.0.23
loading datfiles version 0.256000
Starting General Utilities 1.0.1
missionobjvar(FixLongs): Fixing overflow issue with <SCSTATE_BUOYANT>
missionobjvar defining functions for Campaign play.
Loading m25cutscene.py v.3.3.08 January 18, 2010
CustomHeadCurrentTime 1272939827.562000
Starting Height Check module 1.4
Starting System Utilities 1.5
OBJECTS_HEIGHT: 604 entries
NIF_OBJECTS: 482 entries
BUILDINGS_IN_OBJECTS_DAT: 30 entries
BUILDING_DIMENSIONS: 30 entries
Starting skXMapInfo.py  v 0.79 beta
skXMapInfo: m25ai available
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.py v.3.3.09 Feb 2, 2010
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
Loading m25pstory.py  v.3.3.07 January 30, 2009
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
! GetMapInfo
Building_GetDimensions() non-fatal error:
    template 'pier' not found in list of building dimensions.
    To detect approximate dimensions, use
    getBuildingDimensions ()
Building_GetDimensions() non-fatal error:
    template 'pier' not found in list of building dimensions.
    To detect approximate dimensions, use
    getBuildingDimensions ()
Building_GetDimensions() non-fatal error:
    template 'pier' not found in list of building dimensions.
    To detect approximate dimensions, use
    getBuildingDimensions ()
Building_GetDimensions() non-fatal error:
    template 'pier' not found in list of building dimensions.
    To detect approximate dimensions, use
    getBuildingDimensions ()
Building_GetDimensions() non-fatal error:
    template 'pier' not found in list of building dimensions.
    To detect approximate dimensions, use
    getBuildingDimensions ()
Building_GetDimensions() non-fatal error:
    template 'pier' not found in list of building dimensions.
    To detect approximate dimensions, use
    getBuildingDimensions ()
Building_GetDimensions() non-fatal error:
    template 'pier' not found in list of building dimensions.
    To detect approximate dimensions, use
    getBuildingDimensions ()
Building_GetDimensions() non-fatal error:
    template 'pier' not found in list of building dimensions.
    To detect approximate dimensions, use
    getBuildingDimensions ()
Building_GetDimensions() non-fatal error:
    template 'pier' not found in list of building dimensions.
    To detect approximate dimensions, use
    getBuildingDimensions ()
Building_GetDimensions() non-fatal error:
    template 'pier' not found in list of building dimensions.
    To detect approximate dimensions, use
    getBuildingDimensions ()
GetCharacterData: called on non-character bat car, template=bat car
Campaign_ReadCharactersFromSavedGame: character <commissioner_gordon> has no corresponding object template.
GetCharacterData: called on non-character bat car, template=bat car
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()
Title: Re: EZScript Comics Vol. 2
Post by: earl of bronze on August 28, 2010, 02:11:16 AM
Here is my script for the Batman Glacier/cave mission

>>> system/init.py executed
>>> system/localinit.py executed
>>> system\tredir.py executed
Starting ffx.py v. 3.3.1 build 0; branch = main release update
Loading m25ai.py v. 3.2.0 build 10; branch = beta 2: m25 branch 2
importing missionobjvar.py v1.20
importing MLOG Reader 1.0.23
loading datfiles version 0.256000
Starting General Utilities 1.0.1
missionobjvar(FixLongs): Fixing overflow issue with <SCSTATE_BUOYANT>
missionobjvar defining functions for Campaign play.
Loading m25cutscene.py v.3.3.08 January 18, 2010
CustomHeadCurrentTime 1282960576.187000
Starting Height Check module 1.4
Starting System Utilities 1.5
OBJECTS_HEIGHT: 604 entries
NIF_OBJECTS: 482 entries
BUILDINGS_IN_OBJECTS_DAT: 30 entries
BUILDING_DIMENSIONS: 30 entries
Starting skXMapInfo.py  v 0.79 beta
skXMapInfo: m25ai available
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.py v.3.3.09 Feb 2, 2010
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
Loading m25pstory.py  v.3.3.07 January 30, 2009
FFX Mission Plugin 'm25encstory' imported
Starting Built-In Function Wrapper 1.5
('Object_CalcPrestige', 'js')
>>> C:\Documents and Settings\Owner\Local Settings\Application Data\Irrational Games\Freedom Force vs the 3rd Reich\temp\mission.py executed
! GetMapInfo
MLOG_Init(keepRunningModules=0): starting up
mlogreader.MLOG_Init: current mission = '07_BATMAN_GLACIER_CAVE'
initialising FFX: skirmish=0
mapinfocaliper3 is not a valid explosion object
mapinfocaliper2 is not a valid explosion object
mapinfocaliper1 is not a valid explosion object
mapinfocaliper0 is not a valid explosion object
storing hero_1: id_1,172
storing hero_2: id_2,212
Campaign_ReadCharactersFromSavedGame: character <commissioner_gordon> has no corresponding object template.
Campaign_ReadCharactersFromSavedGame: character <aquaman_trident> has power <aqua trident of poseidon1> with no corresponding powers.dat entry.
Looking for hero1 from 1
initialising FFQ_initialiseExtras()
FFX_UpdateSun: getting default sun
FFX_UpdateSun: setting = (-45.0, 45.0, 1.0, 0.800000011921, (1.0, 1.0, 1.0))
initAttribsForChar: working on hero_2 (robin)
initAttribsForChar (robin): looking at attribute capedcrusader
execInitAttrib: init disciplined attribute inside ['capedcrusader', 'disciplined', 'utilitybelt', 'nimble', 'acrobatic', 'grimresolve', 'ffqtracking'] combo
    on hero_2 of template robin (robin)
execInitAttrib: init utilitybelt attribute inside ['capedcrusader', 'disciplined', 'utilitybelt', 'nimble', 'acrobatic', 'grimresolve', 'ffqtracking'] combo
    on hero_2 of template robin (robin)
execInitAttrib: init nimble attribute inside ['capedcrusader', 'disciplined', 'utilitybelt', 'nimble', 'acrobatic', 'grimresolve', 'ffqtracking'] combo
    on hero_2 of template robin (robin)
execInitAttrib: init acrobatic attribute inside ['capedcrusader', 'disciplined', 'utilitybelt', 'nimble', 'acrobatic', 'grimresolve', 'ffqtracking'] combo
    on hero_2 of template robin (robin)
execInitAttrib: init grimresolve attribute inside ['capedcrusader', 'disciplined', 'utilitybelt', 'nimble', 'acrobatic', 'grimresolve', 'ffqtracking'] combo
    on hero_2 of template robin (robin)
execInitAttrib: init ffqtracking attribute inside ['capedcrusader', 'disciplined', 'utilitybelt', 'nimble', 'acrobatic', 'grimresolve', 'ffqtracking'] combo
    on hero_2 of template robin (robin)
initAttribsForChar (robin): looking at attribute wall climbing
initAttribsForChar (robin): looking at attribute nimble
initAttribsForChar: working on hero_1 (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 hero_1 of template batman (batman)
execInitAttrib: init presence attribute inside ['capedcrusaderbat', 'disciplined', 'presence', 'utilitybelt', 'nimble', 'acrobatic', 'grimresolve', 'ffqtracking'] combo
    on hero_1 of template batman (batman)
execInitAttrib: init utilitybelt attribute inside ['capedcrusaderbat', 'disciplined', 'presence', 'utilitybelt', 'nimble', 'acrobatic', 'grimresolve', 'ffqtracking'] combo
    on hero_1 of template batman (batman)
execInitAttrib: init nimble attribute inside ['capedcrusaderbat', 'disciplined', 'presence', 'utilitybelt', 'nimble', 'acrobatic', 'grimresolve', 'ffqtracking'] combo
    on hero_1 of template batman (batman)
execInitAttrib: init acrobatic attribute inside ['capedcrusaderbat', 'disciplined', 'presence', 'utilitybelt', 'nimble', 'acrobatic', 'grimresolve', 'ffqtracking'] combo
    on hero_1 of template batman (batman)
execInitAttrib: init grimresolve attribute inside ['capedcrusaderbat', 'disciplined', 'presence', 'utilitybelt', 'nimble', 'acrobatic', 'grimresolve', 'ffqtracking'] combo
    on hero_1 of template batman (batman)
execInitAttrib: init ffqtracking attribute inside ['capedcrusaderbat', 'disciplined', 'presence', 'utilitybelt', 'nimble', 'acrobatic', 'grimresolve', 'ffqtracking'] combo
    on hero_1 of template batman (batman)
initAttribsForChar (batman): looking at attribute driver
execInitAttrib: init driver attribute
    on hero_1 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 '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 form_1 (batmobile_veh)
initAttribsForChar (batmobile_veh): looking at attribute grim resolve
initAttribsForChar (batmobile_veh): looking at attribute ponderous
initAttribsForChar (batmobile_veh): looking at attribute disciplined
initAttribsForChar (batmobile_veh): looking at attribute acidblood
execInitAttrib: init acidblood attribute
    on form_1 of template batmobile_veh (batmobile_veh)
initAttribsForChar (batmobile_veh): looking at attribute vehicle
execInitAttrib: init vehicle attribute
    on form_1 of template batmobile_veh (batmobile_veh)
m25obj_2 freeze_lackey room5_villain1
m25obj_4 freeze_lackey room5_villain2
m25obj_6 freeze_lackey room5_villain3
m25obj_8 freeze_lackey room5_villain4
m25obj_10 freeze_lackey room5_villain5
m25obj_12 freeze_lackey room5_villain6
m25obj_14 freeze_lackey room2_villain1
m25obj_16 freeze_lackey room2_villain2
m25obj_18 freeze_lackey room2_villain3
m25obj_20 freeze_lackey room2_villain4
m25obj_22 freeze_lackey room2_villain5
m25obj_24 freeze_lackey guard1_villain1
m25obj_26 freeze_lackey guard1_villain2
m25obj_28 freeze_lackey guard1_villain3
m25obj_30 freeze_lackey guard1_villain4
m25obj_32 freeze_lackey guard1_villain5
m25obj_34 freeze_lackey guard1_villain6
m25obj_36 freeze_lackey room6_villain1
m25obj_38 freeze_lackey room6_villain2
m25obj_40 freeze_lackey room6_villain3
m25obj_42 freeze_lackey room6_villain4
m25obj_44 freeze_lackey room6_villain5
m25obj_46 freeze_lackey room6_villain6
initAttribsForChar: working on m25obj_42 (freeze_lackey)
initAttribsForChar (freeze_lackey): looking at attribute weak minded
initAttribsForChar (freeze_lackey): looking at attribute bedevilled
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_28 (freeze_lackey)
initAttribsForChar (freeze_lackey): looking at attribute weak minded
initAttribsForChar (freeze_lackey): looking at attribute bedevilled
initAttribsForChar: working on m25obj_26 (freeze_lackey)
initAttribsForChar (freeze_lackey): looking at attribute weak minded
initAttribsForChar (freeze_lackey): looking at attribute bedevilled
initAttribsForChar: working on m25obj_24 (freeze_lackey)
initAttribsForChar (freeze_lackey): looking at attribute weak minded
initAttribsForChar (freeze_lackey): looking at attribute bedevilled
initAttribsForChar: working on m25obj_22 (freeze_lackey)
initAttribsForChar (freeze_lackey): looking at attribute weak minded
initAttribsForChar (freeze_lackey): looking at attribute bedevilled
initAttribsForChar: working on m25obj_20 (freeze_lackey)
initAttribsForChar (freeze_lackey): looking at attribute weak minded
initAttribsForChar (freeze_lackey): looking at attribute bedevilled
initAttribsForChar: working on m25obj_18 (freeze_lackey)
initAttribsForChar (freeze_lackey): looking at attribute weak minded
initAttribsForChar (freeze_lackey): looking at attribute bedevilled
initAttribsForChar: working on m25obj_16 (freeze_lackey)
initAttribsForChar (freeze_lackey): looking at attribute weak minded
initAttribsForChar (freeze_lackey): looking at attribute bedevilled
initAttribsForChar: working on m25obj_46 (freeze_lackey)
initAttribsForChar (freeze_lackey): looking at attribute weak minded
initAttribsForChar (freeze_lackey): looking at attribute bedevilled
initAttribsForChar: working on m25obj_44 (freeze_lackey)
initAttribsForChar (freeze_lackey): looking at attribute weak minded
initAttribsForChar (freeze_lackey): looking at attribute bedevilled
initAttribsForChar: working on m25obj_14 (freeze_lackey)
initAttribsForChar (freeze_lackey): looking at attribute weak minded
initAttribsForChar (freeze_lackey): looking at attribute bedevilled
initAttribsForChar: working on m25obj_4 (freeze_lackey)
initAttribsForChar (freeze_lackey): looking at attribute weak minded
initAttribsForChar (freeze_lackey): looking at attribute bedevilled
initAttribsForChar: working on m25obj_2 (freeze_lackey)
initAttribsForChar (freeze_lackey): looking at attribute weak minded
initAttribsForChar (freeze_lackey): looking at attribute bedevilled
initAttribsForChar: working on m25obj_12 (freeze_lackey)
initAttribsForChar (freeze_lackey): looking at attribute weak minded
initAttribsForChar (freeze_lackey): looking at attribute bedevilled
initAttribsForChar: working on m25obj_10 (freeze_lackey)
initAttribsForChar (freeze_lackey): looking at attribute weak minded
initAttribsForChar (freeze_lackey): looking at attribute bedevilled
initAttribsForChar: working on m25obj_8 (freeze_lackey)
initAttribsForChar (freeze_lackey): looking at attribute weak minded
initAttribsForChar (freeze_lackey): looking at attribute bedevilled
initAttribsForChar: working on m25obj_6 (freeze_lackey)
initAttribsForChar (freeze_lackey): looking at attribute weak minded
initAttribsForChar (freeze_lackey): looking at attribute bedevilled
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}
hero_1 resisted the primary state attack!
m25obj_48 freeze_lackey room3_villain1
m25obj_50 freeze_lackey room3_villain2
m25obj_52 freeze_lackey room3_villain3
m25obj_54 freeze_lackey room3_villain4
m25obj_56 freeze_lackey room3_villain5
m25obj_58 freeze_lackey room3_villain6
m25obj_60 generator room3_object1
initAttribsForChar: working on m25obj_58 (freeze_lackey)
initAttribsForChar (freeze_lackey): looking at attribute weak minded
initAttribsForChar (freeze_lackey): looking at attribute bedevilled
initAttribsForChar: working on m25obj_56 (freeze_lackey)
initAttribsForChar (freeze_lackey): looking at attribute weak minded
initAttribsForChar (freeze_lackey): looking at attribute bedevilled
initAttribsForChar: working on m25obj_48 (freeze_lackey)
initAttribsForChar (freeze_lackey): looking at attribute weak minded
initAttribsForChar (freeze_lackey): looking at attribute bedevilled
initAttribsForChar: working on m25obj_54 (freeze_lackey)
initAttribsForChar (freeze_lackey): looking at attribute weak minded
initAttribsForChar (freeze_lackey): looking at attribute bedevilled
initAttribsForChar: working on m25obj_52 (freeze_lackey)
initAttribsForChar (freeze_lackey): looking at attribute weak minded
initAttribsForChar (freeze_lackey): looking at attribute bedevilled
initAttribsForChar: working on m25obj_50 (freeze_lackey)
initAttribsForChar (freeze_lackey): looking at attribute weak minded
initAttribsForChar (freeze_lackey): looking at attribute bedevilled
hero_1 resisted the primary state attack!