• Welcome to Freedom Reborn Archive.
 

EZscript, Oh behave yourself!

Started by qazwsx, September 20, 2008, 10:45:20 AM

Previous topic - Next topic

qazwsx

Ok so I'm trying to give consequences to the player's decisions and naturally you can decide to behave badly. Some whipped on something like this(unfinished): Story: Morlock Massacre


Encounter: Hurt
Type: Custom
Actions: Rivals start at distance, Timed Encounter
Allies: x
Rivals:bacchite_extra
Marker: Hurt
Time: 4 seconds

Start Cutscene:
Rival moves to Ally
Cinematic Camera on Ally to Rival
Rival plays animation stunned
Ally turns to Rival
Ally says, "What is it child, are you hurt?!"
Rival says, "Ple.. Please... help.. the others..."
Rival plays animation fall

Timer Expired cutscene:
Fade for 0 seconds
Ally says, "Get her medical attention immediately!"
Rival is destroyed
Unfade for 2 seconds


Encounter: Investigate
Type: Chat
Allies: x
Map: cityfreedom
Marker: Investigate

Chat Cutscene:
Hero turns to Ally
Ally turns to Hero
Cinematic Camera on Hero to Ally
Hero says, "Professor, did she make it?."
Cinematic Camera on Ally to Hero
Ally says, "I'm afraid not, tragically. But we must now concentrate on what can still be done"
Ally says, "Before her passing, I was able catch a glimpse of a bystander who saw her being chased. He was entering a building which resembled a.. top hat. Find out what you can."
Hero says, "On it professor."


Encounter: Interrogate
Type: Simple Choice
Allies: gangster
Map: tophat

Choice1: Ask nicely
Choice2: Act like a female no no place

Next: If Ask nicely: Choose 1 from Spill the beans, Ignored
Next: If Act like a female no no place: Fight
Primary Objective: "Investigate the incident"

Start Cutscene:
Camera on Ally
x says telepathically, "That's him."

End Cutscene:
Cinematic Camera on Hero to Ally
Hero says, "Excuse me"

--------------------------------------------Choices--------------------------------------


Encounter: Spill the beans
Type: Cutscene
Allies: gangster
Map: tophat
Bonus: 50 prestige and 25 xp
Next: Manhole

Start Cutscene:
Cinematic Camera on Hero to Ally
Ally says, "They came that way from the city, guy was a large hairy bastard."
Hero says, "Appreciate it."
Ally says, " Don't mention'"

Start Cutscene:
Cinematic Camera on Hero to Ally
Ally says, "They came that way from the city, guy was a large hairy bastard."
Hero says, "Appreciate it."
Ally says, "Yeah just leave me alone freak."

End Cutscene:
Hero says, "Professor, I suspect this may have been Sabertooth's doing"
x says telepathically, "Yes, that seems quite likely. However it might be a bit soon to conclude that as fact."
x says telepathically, "I want you to find out more."
Hero says, "You read my mind"


Encounter: Ignored
Type: Simple Choice
Allies: gangster
Map: tophat

Choice1: Ask nicely again
Choice2: Threaten

Next: If Ask nicely again: Choose 1 from Ignored, Lie
Next: If Threaten: Choose 1 from Spill the beans, Fight, Lie

Start Cutscene:
Cinematic Camera on Hero to Ally
Ally says, "Scram, yer freak"

Start Cutscene:
Cinematic Camera on Hero to Ally
Ally says, "Scram"

Start Cutscene:
Cinematic Camera on Hero to Ally
Ally says, "frell off"

Start Cutscene:
Cinematic Camera on Hero to Ally
Ally says, "Sod off female no no place"

Start Cutscene:
Ally says, "."

Start Cutscene:
Hero says, "..."

Start Cutscene:
Hero says, "."

Start Cutscene:
Hero says, ".."


Encounter: Lie
Type: Cutscene
Allies: gangster
Map: tophat

Next: Goosechase

Start Cutscene:
Cinematic Camera on Hero to Ally
Ally says, "She came that way east. Freak."


Encounter: Goosechase
Type: Wait
Map: tophat

Next: Ignored
Primary Objective: "Investigate"

Minimum Time: 6 seconds
Maximum Time: 12 seconds


Encounter: Fight
Type: Custom
Actions: villains fight heroes, allies fight villains, Allies Fight Heroes, Allies Start At Distance, Villains Can Be Interrogated
Map: tophat
Villains: gangster
Allies: Security, Security
Primary Objective: "Get him to talk without causing any more trouble" for 0 prestige and 30 xp
Next: If Allies Saved: Manhole
Next: If Allies defeated: Lose

Alert Cutscene:
Cinematic Camera on Hero to Villain
Villain says, "Why you little! I'll have your head for this!"
Hero says, "You can try, bud, die tryin'."

Banter Cutscene:
Ally says, "Oy we cannot have that behaviour in this establishment! Leave it out!"

Interrogation Cutscene:
Cinematic Camera on Villain
Villain says, "Alright alright! What do you want from me?!"
Hero says, "You saw a ragged girl being chased. Who and what!?"
Villain says, "it was a large hairy bloke and they came that way from the city, that's all I know I swear to god.
Hero says, "Swear to me!!!"
Villian says, "I swear! I swear!"
Ally says, "I insist you desist or we're calling the cops!"
Hero says, "I was just about to leave. heh... I've had my fun."

End Cutscene:
Hero says, "I think this is Sabertooth's handiwork."
x says telepathically, "Yes, get out of there and make sure without doing any more damage"
Hero says, "Soree"


Encounter: Manhole

Would it work so the player would get in trouble for murdering bouncers? Oh and how about the use of the "banter" cutscene? Will it play midway through the fight and is there a way to control when? Lastly is it possible to have a script where attacking civs in the city will get you shot at? Cheers!

M25

You can certainly have different story branches based on the outcomes of an encounter.  Look at the documentation and you'll see which endings are available for each encounter type and you can set up the story using those. 

Banter cutscenes are played at random intervals during an encounter.  There's no way to control exactly when or which one is played.  They are meant to be random color.

You can play a cutscene when someone is KO'd, such as

Villian KO Cutscene:
...

thug_with_gun KO Cutscene:
...


For the civilians, you could fake it by setting up the map so that civilians spawn at certain places, and then use an encounter to check if they are hurt.  I would put some markers named 'civilian1', 'civilian2', etc. on the map to control where the civilians pop up.

Encounter: Leave the Civ Alone
Type: Custom
Actions: villain stops at two-thirds health
Villains: civilian_male
Marker: civilian
Next: Cops Investigate Heroes

Villains stop Cutscene:
Civilian says, "Help! These so-called heroes are attacking me!"


You can run that encounter more than once, at the same time, to have multiple civilians.

Encounter: Start Civilians
Type: None
Next: Leave the Civ Alone, Leave the Civ Alone, Leave the Civ Alone



qazwsx

lol :thumbup: Genuis! Would running many of them strain the cpu though? I'm really starting to get the hang of ezscripting but I still can't make the freeroam start after another. Nothing happens if you click on "mission briefing"(I've even tried adding a briefing cutscene), and there's no way out of the base screen. Does the base screen's map need to be a seperate map from the map which you start on?(that's what you did with your sample) If so, how do you transition from the base_map to the "start map"? Cheers mate.

qazwsx

O and one more minor question, is there a cutscene command to have the characters Kayoed? If I play the fall animation they get back up again before the next action. Sorry I know this must rather tedious, it'll die off soon I promise :lol:

M25

An example.... If you have a base called hideout, and you want to move to a map called mycity, you need the following:

Three directories:  one called hideout, one called mycity, and one called freeroam.

The hideout map needs to have a marker called base_map, a marker called mapname_hideout, and a marker called to_mycity

The mycity map needs to have a marker called mapname_mycity, and a marker called to_hideout

Inside Missions/freeroam/mission.py  change the starting map to 'hideout'.


Encounters don't take a lot of cpu time until they are actually running (the hero gets close enough to activate it), so having several on the map at once shouldn't be too much of a problem.


You can ko a character in a cutscene by using 'is killed'

Villain is killed

You can completely remove a character from the map by using 'is destroyed'




qazwsx

Quote from: M25 on September 21, 2008, 10:06:37 AM
An example.... If you have a base called hideout, and you want to move to a map called mycity, you need the following:

Three directories:  one called hideout, one called mycity, and one called freeroam.

The hideout map needs to have a marker called base_map, a marker called mapname_hideout, and a marker called to_mycity

The mycity map needs to have a marker called mapname_mycity, and a marker called to_hideout

Inside Missions/freeroam/mission.py  change the starting map to 'hideout'.


Encounters don't take a lot of cpu time until they are actually running (the hero gets close enough to activate it), so having several on the map at once shouldn't be too much of a problem.


You can ko a character in a cutscene by using 'is killed'

Villain is killed

You can completely remove a character from the map by using 'is destroyed'




Oh thanks for "is killed", works brilliantly(apart from some occasional weird utterings).
Yeah I've been using "is destroyed" rather lots, cause when you simulate one encounter though several, you have to "destroy" everyone at the end of each encounter, do you not? Otherwise you'de end up with lots of copied characters init. Is there a more elegant method of linking encounters? I can only imagine what an infinitely looping choice would look like :lol:

Quote from: M25 on September 21, 2008, 10:06:37 AM
An example.... If you have a base called hideout, and you want to move to a map called mycity, you need the following:

Three directories:  one called hideout, one called mycity, and one called freeroam.

The hideout map needs to have a marker called base_map, a marker called mapname_hideout, and a marker called to_mycity

The mycity map needs to have a marker called mapname_mycity, and a marker called to_hideout

Inside Missions/freeroam/mission.py  change the starting map to 'hideout'.
Hmm, according to what I've observed so far it seems to be far more complicated than this. When you first start a new campaign, "cityfreedom" loads, then immediately fades to the selection screen. Selecting restart will send you to "fortressbase"(or whatever you defined in mission.py I Think) after selecting your character it then fades and finally sends you to "fortress". The link to "fortressbase" remains, but will instead send you to your desktop if you get curious. Finally you now move to "cityfreedom" once again, and from here on end it's mostly trouble free. However with the beta(whatever version of ezscript your sample had) linking "fortress" to anywhere but "cityfreedom" just warps you back to where you started "fortress" infinitely. I have not tried this as yet with the lastest EZscript, but it seems everything will be OK as long as you mantain the three map names "fortressbase" "fortress" "cityfreedom". Then you're free. This is of course absolutely liveable with, as you have already brought more than what anyone thought was possible. Lastly at least with this structure("fortressbase" "fortress" to "cityfreedom") starting the freeroam after another mission will just have you stuck at the base screen with no options whatsoever(not even esc) the mouse appears and the game is not actually frozen, though.

Hope you know what I mean and that this was all just some silly mistake I did. :P

M25

Each encounter cleans up after itself, although there is a delay.  You'll see characters running off after an encounter and then vanish as EZ script removes them. 

If you have a character that you want to use in multiple encounters, give it a name, and EZ script will use the same on-screen character between encounters.

Encounter: One
Type: Cutscene
Allies: minute_man named joe

Encounter: Two
Type: Cutscene
Allies: minute_man named joe

Start Cutscene:
...
joe is destroyed

Encounter One will spawn minute_man and flag him so that he won't be removed at the end of the encounter.  Encounter Two will use the same minute_man.  You'll have to explicitly destroy characters with names though.



You're getting some strange behavior with the freeroam maps.  It shouldn't matter at all what the map is called... it isn't hardwired anywhere in the script.  Are there any errors in the script.log file (in the Freedom Force directory) after you try running the campaign?


qazwsx

Yeah I think there's something thoroughly wrong with the one I'm using. At first, custom encounters didn't work "doencustom" not found or something, so downloaded the latest FFX, which solved that problem, but then the "cutscene" and "Local cutscene" decided to stop working(nothing happens at the encounter), no biggie right, every encounter can be done with custom encounters after all. But the worst was yet to come. After getting some leeway into actually writing instead of sorting technical problems, I hit a brickwall. No matter what I do I can't get any encounters to play after a particular one. Here is the script if you're free to browse through for errors, but I certainly doubt it, as I've millionquadruple checked. Nothing happens after the simple choice: Encounter: Interrogate
Type: Simple Choice
Allies: mafioso_gun named clint
Map: tophat
Marker: interrogate

Choice1: Ask nicely
Choice2: Act like a female no no place

Next: If Ask nicely: Choose 1 from Spill the beans, Ignored
Next: If Act like a female no no place: Fight

Start Cutscene:
Camera on Ally
x says telepathically, "That's him."

Chat Cutscene:
Cinematic Camera on Hero to Ally
Hero says, "Excuse me"
clint turns to Hero


Encounter: Spill the beans
Type: Cutscene
Allies: mafioso_gun named clint
Map: tophat
Marker: beans
Bonus: 50 prestige and 25 xp
Marker: interrogate

Start Cutscene:
Cinematic Camera on Hero to Ally
Ally says, "They came that way from the city, guy was a large hairy bastard."
Hero says, "Appreciate it."
Ally says, " Don't mention'"

Start Cutscene:
Cinematic Camera on Hero to Ally
Ally says, "They came that way from the city, guy was a large hairy bastard."
Hero says, "Appreciate it."
Ally says, "Yeah just leave me alone freak."

End Cutscene:
Hero says, "Professor, I suspect this may have been Sabertooth's doing"
x says telepathically, "Yes, that seems quite likely. However it might be a bit soon to conclude that as fact."
x says telepathically, "I want you to find out more."
Hero says, "You read my mind"


Encounter: Ignored
Type: Simple Choice
Allies: mafioso_gun named clint
Map: tophat
Marker: interrogate

Choice1: Ask nicely again
Choice2: Threaten

Next: If Ask nicely again: Choose 1 from Ignored, Lie
Next: If Threaten: Choose 1 from Spill the beans, Fight, Lie

Start Cutscene:
Cinematic Camera on Hero to Ally
Ally says, "Scram, yer freak"

Start Cutscene:
Cinematic Camera on Hero to Ally
Ally says, "Scram"

Start Cutscene:
Cinematic Camera on Hero to Ally
Ally says, "frell off"

Start Cutscene:
Cinematic Camera on Hero to Ally
Ally says, "Sod off female no no place"

Start Cutscene:
Ally says, "."

Start Cutscene:
Hero says, "..."

Start Cutscene:
Hero says, "."

Start Cutscene:
Hero says, ".."


Encounter: Lie
Type: Cutscene
Allies: mafioso_gun named clint
Map: tophat
Marker: interrogate

Next: Goosechase

Start Cutscene:
Cinematic Camera on Hero to Ally
Ally says, "She came that way east. Freak."


Encounter: Goosechase
Type: Wait
Map: tophat

Next: Ignored
Primary Objective: "Investigate"

Minimum Time: 6 seconds
Maximum Time: 12 seconds


Encounter: Fight
Type: Custom
Actions: villains fight heroes, allies fight villains, Allies Fight Heroes, Allies Start At Distance, Villains Can Be Interrogated
Map: tophat
Marker: interrogate
Villains: mafioso_gun named clint
Allies: black_jack, black_jack
Primary Objective: "Get him to talk without causing any more trouble" for 0 prestige and 30 xp
Next: If Allies Saved: Manhole
Next: If Allies defeated: Lose

Alert Cutscene:
Cinematic Camera on Hero to Villain
Villain says, "Why you little! I'll have your head for this!"
Hero says, "You can try, bud, die tryin'."

Banter Cutscene:
Ally says, "Oy we cannot have that behaviour in this establishment! Leave it out!"

Interrogation Cutscene:
Cinematic Camera on Villain
Villain says, "Alright alright! What do you want from me?!"
Hero says, "You saw a ragged girl being chased. Who and what!?"
Villain says, "it was a large hairy bloke and they came that way from the city, that's all I know I swear to god.
Hero says, "Swear to me!!!"
Hero plays animation special_3
villain says, "I swear! I swear!"
Ally says, "I insist you desist or we're calling the cops!"
Hero says, "I was just about to leave. heh... I've had my fun."

:banghead:
I'm probably gonna quit after this, you've been just grand, thanks for all the help and patience, which is what really made me "perservere" :lol: as I didn't want it going to waste.

M25

Make your choices lower case (it's a bug).  So 'ask nicely' instead of 'Ask nicely'

It's very gratifying to see a mission come to life, so to speak, in the game.  Just start small and keep at it.

qazwsx

Woah! Can't believe it was as simple as that. Many thanks to you yet again. Though I think you might wanna include that "little tidbit" in the User Manual. Here's another one I discovered :rolleyes:: Choose X from won't directly work with Simple choices. But instead you can lead it to a "Type: None" with the Chooser. Another odd thing I discovered, my freeroam only works(read starts) if I have both "freeroam start" and "ezscriptfreeroam" in the campdef, respectively, though I haven't tried it the other way round, is this supposed to be? As a side note, I've been wondering, where do the EZscript characters get their stats and powers from? At first I thought it would use the character which shares the same name as the template, but this turned out to be false. Oh and three last questions:
-Is there a way to act out two cutscene commands simultaneosly?(two animations or speech while animating)
-Can "X move to" be directed to a specific location?(with a marker or something)
-Can a character be given animation commans out of a cutscene?

Cheers.

M25

Heh, I thought I had fixed the simple choice issue, but apparently not. 

The issue with campdef sounds odd.  I've never had to include ezscriptfreeroam in the campaign. 


Characters get their stats either from the templates in the dat files, or from hero files in your hero directory.

-Cutscenes are strictly sequential.  You can't run two commands at once.

- You can specify a marker in the move to command.  Villain moves to my_marker

- No, characters cannot be given animation commands outside of a cutscene.  What are you trying to do?


qazwsx

Oh you know, just to have people in the club dancing or maybe using characters as corpses(instead of a new mesh). Could probably be done through AI yeah? Though I have yet to venture there. I spose a brute force method would be to replace the idle keyframe with whatever you need, but you'd be limited to one. Is it possible to spawn allies depending on who the player character is? meaning, you wouldn't want to have a copy of your character as an ally now would you?
Thanks!

qazwsx

[quote

Characters get their stats either from the templates in the dat files, or from hero files in your hero directory.

[/quote]

But the templates don't list any powers. :huh:

M25

If you look at the characters tab in ffedit, you'll see that characters have the same name as the templates in the templates tab.  The game links them automatically.  Each character entry contains a list of powers and attributes, and the actual power descriptions are contained in the entries in the powers tab.


For the club dancing, you could use Banter cutscenes that play a sequence of animations. 

Encounter: Dance
Type: Custom
Actions: allies start immediately
Allies: <list of allies>

Banter Cutscene:
Ally plays animation 1
Ally plays animation 2
etc.

Banter Cutscene:
Ally plays animation 2
Ally plays animation 4
etc.

Banter Cutscene:
...


EZ script can't spawn allies based on they player's team.  That is a good idea though.



qazwsx

Thanks, although for the banter cutscene, the animation would only play IN the cutscene, would it not? The idea is not to "watch some dancin'" but rather to add to the atmosphere and make a club feel like a club, a room full of people standing still deosn't really get that message across you know?(Although I have seen such an occurance in real life actually!) Okey, time for my daily list of questions :P I know I promise I'd stop, but you're always learning with EZscript)

1. How do direct where fleeing characters flee to? I have a marker called "end" but they simply flee to random edges of the map. An extension of some sort perhaps? My "end" isn't an edge of the map by the way, but a sewer cover.

2. Going back to the corpses bit, could I simply directly kill the characters? How is fading handled?(minions fade in a blink I know)

3. Can I use multiple markers with the same name? I know you can have <markername>1, <markername>2 etc, but then would marker1 positions like <markername>1villain1 still work for the other numbered markers? Oh and lastly, can you substitue the template or given name for marker1"ally1"?

Much thanks once again, and I apologize if they seem a bit rapid-fire :lol:

M25

A cutscene doesn't have to take over the interface to the game.  If you don't add any camera commands, then a cutscene will play while the player can still move their characters around.  So the banter cutscenes could simulate the dancing while the player is off doing something else.

1.  The marker needs to be called <encountername_end1>.  So if you have an encounter marker called encounter1, the end marker is called encounter1_end1.  You can also have encounter1_end2, encounter1_end3, etc. if you want a bit of randomization.  If EZ script doesn't find such a marker, it creates one at the edge of the map.  So... if you want someone to flee to a specific spot, you can either put all of the encounterX_end1 markers at the sewer cover, or place your own marker on the map to use for the encounter.  If you call the marker 'sewerflee1' then the end marker would be called sewerflee1_end1, and you'd need a

Marker: sewerflee1

statement in your encounter.


2. Templates that are marked as GAME_OBJ_VILLAIN in the templates tab of ffedit won't fade when ko'd.

3. No and no.  Encounter markers don't share anything.  markername1_villain1 will only work for markername1.  You can't use a template or given name for the marker name (that's a good idea too).



qazwsx

Hmm, I do recall being in full control of the characters during cutscenes with certain installations of ffx or a mod, but not with my freeroam folder. I wonder what causes it? I'm sure it' (a) specific file(s) as I remember installing something before the game transformed itself. It was one of Premonitioner's mods I was playing I believe, and initially all was normal(ie locked controls during cutscenes). But after installing something ontop of it which I can't remember, the top and bottom borders of the cutscenes would move away after the first few seconds or so, and then you'd have full control of the heroes. It's nearly identical to the situation you get if you haven't captioned your dialogue in EZscript. Oh actually I've completely forgetten to mention that as it is the screen locks during the CS haven't I? :lol: So it does, but I think it'd be able to work if the borders and locking were removed. Here is the script I've whipped up Story: Club Dancing

Encounter: Loop
Type: None
Next: Dance1, Dance2, Dance3, Dance4, Dance5, Dance6


Encounter: Dance1
Type: Custom
Actions: Minions Start Immediately
Minions: alchemiss named a, berlin_female named b, berlin_male named c, charles_wilson named d, civilian_female named e, clint coltrane_extra named f, cuban_male named g, duplicate_male named h, duplicate_fem named i, fortissimo named j, ironox named k, nick_craft_beige named l, sukhov named m, shadow named n, blackjack named o
Map: tophat
Next: Loop

Start cutscene:
Minions plays animation direct
Minions plays animation climb
Minions plays animation power
Minions plays animation dodge_left
Minions plays animation dodge_right
Minions plays animation active_defence
Minions plays animation drop_pole
Minions plays animation melee_idle
Minions plays animation hit_and_stunned
Minions plays animation stunned
Minions plays animation walk
Minions plays animation land_from_jump
Minions plays animation walk_with_pole
Minions plays animation area
Minions plays animation run
Minions plays animation walk_with_object


Encounter: Dance2
Type: Custom
Actions: Minions Start Immediately
Minions: alchemiss named a, berlin_female named b, berlin_male named c, charles_wilson named d, civilian_female named e, clint coltrane_extra named f, cuban_male named g, duplicate_male named h, duplicate_fem named i, fortissimo named j, ironox named k, nick_craft_beige named l, sukhov named m, shadow named n, blackjack named o, girl named p
Map: tophat
Next: Loop

Start cutscene:
Minions plays animation direct
Minions plays animation climb
Minions plays animation power
Minions plays animation dodge_left
Minions plays animation dodge_right
Minions plays animation active_defence
Minions plays animation drop_pole
Minions plays animation melee_idle
Minions plays animation hit_and_stunned
Minions plays animation stunned
Minions plays animation walk
Minions plays animation land_from_jump
Minions plays animation walk_with_pole
Minions plays animation area
Minions plays animation run
Minions plays animation walk_with_object


Encounter: Dance3
Type: Custom
Actions: Minions Start Immediately
Minions: alchemiss named a, berlin_female named b, berlin_male named c, charles_wilson named d, civilian_female named e, clint coltrane_extra named f, cuban_male named g, duplicate_male named h, duplicate_fem named i, fortissimo named j, ironox named k, nick_craft_beige named l, sukhov named m, shadow named n, blackjack named o, girl named p
Map: tophat
Next: Loop

Start cutscene:
Minions plays animation direct
Minions plays animation climb
Minions plays animation power
Minions plays animation dodge_left
Minions plays animation dodge_right
Minions plays animation active_defence
Minions plays animation drop_pole
Minions plays animation melee_idle
Minions plays animation hit_and_stunned
Minions plays animation stunned
Minions plays animation walk
Minions plays animation land_from_jump
Minions plays animation walk_with_pole
Minions plays animation area
Minions plays animation run
Minions plays animation walk_with_object


Encounter: Dance4
Type: Custom
Actions: Minions Start Immediately
Minions: alchemiss named a, berlin_female named b, berlin_male named c, charles_wilson named d, civilian_female named e, clint coltrane_extra named f, cuban_male named g, duplicate_male named h, duplicate_fem named i, fortissimo named j, ironox named k, nick_craft_beige named l, sukhov named m, shadow named n, blackjack named o, girl named p
Map: tophat
Next: Loop

Start cutscene:
Minions plays animation direct
Minions plays animation climb
Minions plays animation power
Minions plays animation dodge_left
Minions plays animation dodge_right
Minions plays animation active_defence
Minions plays animation drop_pole
Minions plays animation melee_idle
Minions plays animation hit_and_stunned
Minions plays animation stunned
Minions plays animation walk
Minions plays animation land_from_jump
Minions plays animation walk_with_pole
Minions plays animation area
Minions plays animation run
Minions plays animation walk_with_object


Encounter: Dance5
Type: Custom
Actions: Minions Start Immediately
Minions: alchemiss named a, berlin_female named b, berlin_male named c, charles_wilson named d, civilian_female named e, clint coltrane_extra named f, cuban_male named g, duplicate_male named h, duplicate_fem named i, fortissimo named j, ironox named k, nick_craft_beige named l, sukhov named m, shadow named n, blackjack named o, girl named p
Map: tophat
Next: Loop

Start cutscene:
Minions plays animation direct
Minions plays animation climb
Minions plays animation power
Minions plays animation dodge_left
Minions plays animation dodge_right
Minions plays animation active_defence
Minions plays animation drop_pole
Minions plays animation melee_idle
Minions plays animation hit_and_stunned
Minions plays animation stunned
Minions plays animation walk
Minions plays animation land_from_jump
Minions plays animation walk_with_pole
Minions plays animation area
Minions plays animation run
Minions plays animation walk_with_object


Encounter: Dance6
Type: Custom
Actions: Minions Start Immediately
Minions: alchemiss named a, berlin_female named b, berlin_male named c, charles_wilson named d, civilian_female named e, clint coltrane_extra named f, cuban_male named g, duplicate_male named h, duplicate_fem named i, fortissimo named j, ironox named k, nick_craft_beige named l, sukhov named m, shadow named n, blackjack named o, girl named p
Map: tophat
Next: Loop

Start cutscene:
Minions plays animation direct
Minions plays animation climb
Minions plays animation power
Minions plays animation dodge_left
Minions plays animation dodge_right
Minions plays animation active_defence
Minions plays animation drop_pole
Minions plays animation melee_idle
Minions plays animation hit_and_stunned
Minions plays animation stunned
Minions plays animation walk
Minions plays animation land_from_jump
Minions plays animation walk_with_pole
Minions plays animation area
Minions plays animation run
Minions plays animation walk_with_object


I had them as minions so their appearances would be randomized, and start instead of banter cutscene so they wouldn't stop dancing, and whichever group you were near to would start dancing. As I remember banter cutscenes also locked the game. Then I had to name every last one of them to prevent them from infinitely multiplying :doh:
and lastly remove most of everyone's powers less there be world war III. Yes it seem minions will attempt to kill one another if they're not the same object type. In case wondering, this does take quite a toll on the system  :)

Previsionary

that "screen lock" is a function of a cutscene. There are "coding hooks" to remove them if you want a normal screen or if you want the player to be able to move around during it. I'd assume it's similar with ezscript.

qazwsx

Quote from: Previsionary on September 27, 2008, 07:15:24 AM
that "screen lock" is a function of a cutscene. There are "coding hooks" to remove them if you want a normal screen or if you want the player to be able to move around during it. I'd assume it's similar with ezscript.
Oh hey mate, yeah I pretty sure I've had it happen with EZscript before too. But I wonder how my addition of something can affaect Your code. Even after installing your Web tales ontop the aforementioned mod I'm still expereincing this "Phenomenon". I haven't played much, but it was quite brilliant actually cause when Rhino biffed the car I overode the Cutscene to stay there :lol: But what was even cooler was when I decided that instead of letting the cutscene have all the fun, I had spidey "webswing" over the car at the last possible second. That sure was sweet, feel like a director or sumin. :D

qazwsx

Oh and btw M25, is there a way to have the manhole cover missing for the encounter without removing it permanently?
Cheerio

M25

EZ script goes into cinematic mode when you use certain commands inside of a cutscene.  Any sort of camera command or movement command will turn on cinematic mode.  If you just have talking, then it will not go into cinematic mode.

Sometimes you will see EZ script go cinematic, then drop out again right away.  That happens when you have someone say something without having a caption for it in captions.txt and captions.dat.  EZ script will give you the text on the side of the screen instead, but since the game won't display that text in cinematic mode, EZ script has to force it back to normal mode.

That said, 'plays animation' is one of the commands that EZ script interprets as cinematic.  If you want, send me a private message with your email address and I can send you a 'fix' so that it won't go into cinematic mode for 'plays animation'.



I would use allies instead of minions for the dancing, since allies won't attack, or can be set up not to attack more (Actions: allies start immediately, allies do not fight)

Minions are random, but you'll have no control over how many are spawned, eating up resources, and you have to give an animation command for each minion separately (there's no group play animation).  You can achieve some randomness, by having different dance encounters, and having a separate encounter that chooses them at random.

Encounter: Choose Dance
Type: None
Next: Choose 1 of Dance1, Dance2, Dance3



I used banter cutscenes since they play at random intervals rather than all at once.  You could do both, have a start cutscene and banter cutscenes.  And if you use banter cutscenes with enough animations, it will appear to play more of less continuously without having to loop over the encounter.



For the manhole cover, if you place a marker off the edge of the map, or somewhere hidden, you can teleport the manhole cover to the marker so that it appears to have disappeared.  If you also place a marker where the manhole cover is supposed to be, you can teleport it back later.  You need to know the name of the manhole cover though.  So if it is called impobj_124

impobj_124 teleports to off_screen_marker
...
impobj_124 teleports to manhole_marker





qazwsx

Lovely stuff! Your ideas never cease to awe mate ;) Pmed. Oh and what's this group play you speak of? Can it be used to move two characters together?

qazwsx

Quote from: M25 on September 25, 2008, 08:42:38 AM
EZ script can't spawn allies based on they player's team.  That is a good idea though.




I think I have an idea to simulate that. You see, I've found that EZscript is able to give individual characters their own cutscenes(lovely touch by the way), so what if you placed all of the allies markers outside of the map,(in the black area) then teleport to the encounter different chracters for that each cutscene? Would that work well enough? Are there any commands to make allies controllable? Do the freeroam characters use m25ai? Thanks in advance! :)

Boalt92

Been away for a few weeks (looking for a J.O.B.) but have read this thread with interest.

I'm reviving (yet again) my EZ Script freeroam mod and you've given me some interesting ideas.

One option for allies is to give the player a 'setup' encounter, where player's can choose their allies via simple choice.  They would only be able to choose from a limited number of allies, but you would avoid character duplication.  This would limit the drain on resources, as you wouldn't have a number of allies 'waiting' in the wings.

Check the manual for making allies controllable, you can do it with a custom encounter.

In terms of consequences, here's a post I made using Simple Choice and placeholders to manage multiple story threads: http://freedomreborn.net/archive/index.php?topic=46445.0 (check last few posts for examples).

It's worked out pretty well so far, maybe you have some ideas to tweak it.

B92

yell0w_lantern

Simple Choice sounds like a very useful tool.

Can branching campaigns be made?

M25

EZ script stories can branch, and it is easy to make a freeroam mod with a branching storyline.  I haven't played around with trying to get traditional campaigns to branch though.



qazwsx

Hello again M25, now you see I've kept my promise and left you alone for a while now. But um, I'm gonna have to break it now :lol:
So I've been testing in the Rumble Room as per your suggestion, but is everything handled identically in FreeroamCampaign and RumbleRoom? I have a feeling the AI and maybe more may be different. Also I'm experiencing something strange with the "flee" commands. In the rumble room at least, it seems the "fleeer" in question will just stay put if continued from a previous encounter. ie. if you name a character for and encounter then reuse him for the flee encounter, be it a villain or ally, the fleeer will be recruited onto the player's team (controllable but still with AI). Hope you share some insight, thanks.

M25

There is no difference in both the AI and EZ script when running freeroam missions vs. the rumble room.  It's all the same python code.

Freeroam lets you specify the map that an encounter runs on, but that is about it.


I'll look into the flee thing.

Edit:  On second thought, could you post the part of the story that is causing the problem.  I can't replicate it.




qazwsx

Ok thanks mate, here's an exerpt I used for testing:
Story: Morlock Massacre


Encounter: stupidcow
Type: Custom
Actions: Heroes Escort Allies, Minions Start Immediately, Minions start at distance
Allies: ultimate_jean named jean, nick_craft_extra named rusty
Minions: upgraded_soldier
Marker: cow


Encounter: Moar
Type: custom
Actions: Villains Flee
Allies: ultimate_jean named jean
Villains: nick_craft_extra named rusty2
Minions: upgraded_soldier named skids
Rivals: darkman_extra named dark
Marker: moar

start Cutscene:
camera on minions
dark is killed
minion turns to hero


Encounter: seek
Type: Custom
Actions: allies start immediately, Allies Flee Map
Allies: ultimate_jean named jean
Villains: nick_craft_extra named rusty2
Primary Objective: "find rusty, again"
Marker: seek

Alert cutscene:
jean says, "rusty!"


Encounter: Dark
Type: Simple Choice
Allies: ultimate_jean named jean
Villains: nick_craft_extra named rusty2

Alert cutscene:
cinematic camera on darkman_extra

Just delete the Marker: entries if you want.
Something I haven't been able to test in RR: you can't set end markers on another map can you?

Cheers

M25

No, you can't set end markers on another map.  You could have a 'flee' encounter trigger another flee encounter on the second map though.


OK, I see the issue with the ally suddenly joining your team.   Something odd is going on with the game engine and it may take me a while to figure it out.  But for now, you don't really need to give the allies a name in the first encounter.  Is there some reason why you need to?