• Welcome to Freedom Reborn Archive.
 

EZscript Freeroam campaign sample

Started by M25, February 20, 2007, 12:31:36 PM

Previous topic - Next topic

M25

I've posted an example of using EZ script to make a freeroam (as in Dr.Mike's Patriot City) campaign.  This is a complete mod and includes FFX 3.2 - just extract it into its own directory and use the shortcut supplied, or make your own.

You can grab it at.

http://www.4shared.com/file/10968115/9818a195/ezfreeroam_poc.html


It has something akin to a story, but it's more of an example. 

More importantly, it has a set of linked maps and you can drop your own EZ script stories into the 'freeroam' directory (/EZfreeroam_poc/freeroam/) and play them instead of or in addition to what's already there.


catwhowalksbyhimself

If you like, I'll upload it to my own site and give it a permanent home on the FFX download page.

M25


joemama

Great skills, but you beat me to my next project!

Would you mind if linked some maps to yours to be released as a free-roam world?


JM

Epimethee

Kudos, M25! :D (Question, since the 4Shared link seems KO for now: which version of 3.2 is it using?)

Cat, once it's on your site, maybe you could post in the Releases forum? Thanks.

Carravaggio

thankyouthankyouthankyouthankyouthankyouthankyouthankyouthankyouthankyouthankyouthankyouthankyou...etc.
this will be a big help!

M25

Quote from: joemama on February 20, 2007, 07:49:25 PM
Great skills, but you beat me to my next project!

Would you mind if linked some maps to yours to be released as a free-roam world?


JM

Please do.  This is just an example, and certainly not the definitive map of the city, or world.

Epimethee - It's using Beta 1 with the corrected powers.dat.   I'll have to update it to newer versions, but as a quick guide, the only shared files that get modified are:

campdef.dat - replaced by the freeroam version
strings.dat - changed 'restart mission' and 'failed' to 'continue'
captions.dat - contains any captions for the mod

And obviously, the missions themselves are different.

Any updates to the scripts and other dat files can be copied over top of this mod directly.  I've tried to keep things as standard as possible.  There are no special objects, characters, powers, fx, sounds or other resources to worry about.




detourne_me

This is super!
man the campaign was so much fun!

just a few quick questions....
do i need to add anything to an EZscript to make it the campaign script?
do i need to place specific markers on the maps for spawn points for EZScript? (i didnt see definitions of locations in the police or mook scripts)

ummn, for the random skirmishes... I only ever saw the riot from the police, or the Street Fight events... and not the other encounters...will the others eventuaslly pop up? i only played long enoughto complete both storylines.


oh and to reiterate... This is GREAT!

M25

Quote from: detourne_me on February 21, 2007, 09:33:44 AM
This is super!
man the campaign was so much fun!

just a few quick questions....
do i need to add anything to an EZscript to make it the campaign script?
do i need to place specific markers on the maps for spawn points for EZScript? (i didnt see definitions of locations in the police or mook scripts)

ummn, for the random skirmishes... I only ever saw the riot from the police, or the Street Fight events... and not the other encounters...will the others eventuaslly pop up? i only played long enoughto complete both storylines.


oh and to reiterate... This is GREAT!

You don't need anything special to make a script work in a campaign.  You may want to add objectives and prestige and XP values to your scripts though. 

You only need specific markers on the map if you want an encounter to occur in a specific place (like the final fight in the aliens story only occurs in the park).   If you're ok with the encounter popping up anywhere, you don't need to specify a particular marker.

If you want the encounter to only appear on a given map or type of map (like the one that only appears in the sewers), you can use the Map: parameter and give it the name of the map.


The random skirmishes are, well, random.  If you only saw a few encounters, it's certainly possible that only one type would come up.  I'll double check the code anyway.

Edit:  Urk, the street crime and police stories have an error in the script.  It should be 'Choose X from' and not 'Choose X of'   Change that and it should work as intended.


Renegade

I've been playing this "example" the past couple of days and I just wanted to drop a note about how much fun it's been! It's like having a game based on your favorite comicbook character! I'm running Billy Batson/Captain Marvel and Cap's been getting his butt kicked pretty hard by those aliens.  Whoo-Hoo. I can't wait to look behind the scenes and understand how this works.

I will say though that anyone else planning on testing this out with a mutli-form custom will have to remember to change back to their primary form before moving from one map to another or the custom form will disappear a few seconds after the new map loads and force a restart of the mod.

M25

Glad you're enjoying the experience.  Adding your own stories is as simple as writing them up and dropping them into the freeroam directory. 

Quote from: Renegade on February 26, 2007, 12:50:29 PM
I will say though that anyone else planning on testing this out with a mutli-form custom will have to remember to change back to their primary form before moving from one map to another or the custom form will disappear a few seconds after the new map loads and force a restart of the mod.

Hrm, I missed that one completely.  I'll see if I can prevent it from happening.

detourne_me

hmmn a custom form eh?  did you have to recruit both forms? or did you make cap a built-in?
the character i used to play it has random skins and it was pretty funny to see his skins change as he went through maps... refreshing though! haha

catwhowalksbyhimself

That actually gives me a good idea for a new attribute.

The character randomly transforms into one of a series of forms for the duration of the mission.

A variant of that would have him randomly transform throughout the mission. 

Call them Unstable form and Very Unstable Form.

quiet

I started it up and attempted to play "new campaign".  I got this error:



So then I tried to run FFx 3.2 on top of it and it loaded but It came up with the normal first mission of the campaign only the lighting was off (it was bright) and it did not run properly (I could just run around with alchemiss). so then I ran the Ezscript  Freeroam back over it and it froze while loading the campaign.   I am not real sharp when it comes to this stuff, so forgive my ignorance.

Here is the script log:
[spoiler]>>> system/init.py executed
>>> system/localinit.py executed
>>> def MP_IsTeamGame():
    pass

>>> def MP_GetShortDescription():
    pass

>>> def MP_GetLongDescription():
    pass

>>> def MP_IsStoryModeOnly():
    pass

>>> def MP_IsLeaderGame():
    pass

>>> def MP_NeedsTargetChoice():
    pass

>>> C:\Documents and Settings\Amanda\Local Settings\Application Data\Irrational Games\Freedom Force vs the 3rd Reich\temp\ARENA.PY executed
>>> def MP_IsTeamGame():
    pass

>>> def MP_GetShortDescription():
    pass

>>> def MP_GetLongDescription():
    pass

>>> def MP_IsStoryModeOnly():
    pass

>>> def MP_IsLeaderGame():
    pass

>>> def MP_NeedsTargetChoice():
    pass

>>> C:\Documents and Settings\Amanda\Local Settings\Application Data\Irrational Games\Freedom Force vs the 3rd Reich\temp\ARENA_TEAM.PY executed
>>> def MP_IsTeamGame():
    pass

>>> def MP_GetShortDescription():
    pass

>>> def MP_GetLongDescription():
    pass

>>> def MP_IsStoryModeOnly():
    pass

>>> def MP_IsLeaderGame():
    pass

>>> def MP_NeedsTargetChoice():
    pass

>>> C:\Documents and Settings\Amanda\Local Settings\Application Data\Irrational Games\Freedom Force vs the 3rd Reich\temp\DEATHMATCH.PY executed
>>> def MP_IsTeamGame():
    pass

>>> def MP_GetShortDescription():
    pass

>>> def MP_GetLongDescription():
    pass

>>> def MP_IsStoryModeOnly():
    pass

>>> def MP_IsLeaderGame():
    pass

>>> def MP_NeedsTargetChoice():
    pass

>>> C:\Documents and Settings\Amanda\Local Settings\Application Data\Irrational Games\Freedom Force vs the 3rd Reich\temp\DEATHMATCH_TEAM.PY executed
>>> def MP_IsTeamGame():
    pass

>>> def MP_GetShortDescription():
    pass

>>> def MP_GetLongDescription():
    pass

>>> def MP_IsStoryModeOnly():
    pass

>>> def MP_IsLeaderGame():
    pass

>>> def MP_NeedsTargetChoice():
    pass

>>> C:\Documents and Settings\Amanda\Local Settings\Application Data\Irrational Games\Freedom Force vs the 3rd Reich\temp\DESTRUCTION.PY executed
>>> def MP_IsTeamGame():
    pass

>>> def MP_GetShortDescription():
    pass

>>> def MP_GetLongDescription():
    pass

>>> def MP_IsStoryModeOnly():
    pass

>>> def MP_IsLeaderGame():
    pass

>>> def MP_NeedsTargetChoice():
    pass

>>> C:\Documents and Settings\Amanda\Local Settings\Application Data\Irrational Games\Freedom Force vs the 3rd Reich\temp\LEADER.PY executed
>>> def MP_IsTeamGame():
    pass

>>> def MP_GetShortDescription():
    pass

>>> def MP_GetLongDescription():
    pass

>>> def MP_IsStoryModeOnly():
    pass

>>> def MP_IsLeaderGame():
    pass

>>> def MP_NeedsTargetChoice():
    pass

>>> C:\Documents and Settings\Amanda\Local Settings\Application Data\Irrational Games\Freedom Force vs the 3rd Reich\temp\MASSACRE.PY executed
>>> def MP_IsTeamGame():
    pass

>>> def MP_GetShortDescription():
    pass

>>> def MP_GetLongDescription():
    pass

>>> def MP_IsStoryModeOnly():
    pass

>>> def MP_IsLeaderGame():
    pass

>>> def MP_NeedsTargetChoice():
    pass

>>> C:\Documents and Settings\Amanda\Local Settings\Application Data\Irrational Games\Freedom Force vs the 3rd Reich\temp\MASSACRE_TEAM.PY executed
>>> def MP_IsTeamGame():
    pass

>>> def MP_GetShortDescription():
    pass

>>> def MP_GetLongDescription():
    pass

>>> def MP_IsStoryModeOnly():
    pass

>>> def MP_IsLeaderGame():
    pass

>>> def MP_NeedsTargetChoice():
    pass

>>> C:\Documents and Settings\Amanda\Local Settings\Application Data\Irrational Games\Freedom Force vs the 3rd Reich\temp\TAG.PY executed
[/spoiler]

M25

Make sure you are installing the freeroam campaign into it's own separate directory whereever :ffvstr: is located.  It's not meant to be put into the FFX3.2 directory.


quiet

Yeah I got the first error when I did that, so i just reinstalled the ezscript freeroam, and it works fine now.  Its awesome by the way. thanks.

Blitzgott

Pretty awesome mod! Had a lot of fun playing it. Great job!

Anyway, I have a couple of quick questions:

Is there anyway to enable the use of built-in characters other than Freedom Force?

Also, is it possible to improve the starting number of prestige points used to recruit your hero/team?

Thanks!

M25

You can change those things, though it is the most inelegant part of the mod.

If you look in Missions/freeroam_start you'll find a file called mission.py

Open it up with a text editor and you'll see these lines:


# what is the name of the story (the text file) that the mod uses
freeroam_storyfile='freeroam'

# who will the player be able to recruit from at the start of the mod
# built-ins only. 
# the player can still recruit any customs they want
freeroam_addbuiltins=['alchemiss', 'blackbird', 'bullet', 'el_diablo', 'eve',
'green_genie', 'ironox', 'man_bot', 'man_o_war', 'microwave', 'minute_man',
'liberty_lad', 'order', 'quetzalcoatl', 'sea_urchin', 'tombstone']

# How much prestige will the player have to recruit characters
freeroam_startingprestige=11000

# what map does the mod start on
freeroam_startingmap = 'fortressbase'


freeroam_addbuiltins is the list of built-in characters that are available at the start.  You can add to or change characters in that list, but make sure you use the name as it appears in the templates tab of FFEdit.

freeroam_startingprestige is the amount of prestige you start with.  It can be any number.

freeroam_startingmap is the map to, well, start on.  It should match the name of the directory the map can be found in, and it should be a Base.



Unfortunately, due to the trickery used to make the freeroam style work, you have to open up base.py as well and make sure that you set those four variables to the same values.

Just cut and paste the values from one file to the other and it should work.

qazwsx

Can this be added on to the end of an existing campaigns? Oh also, which are the essential freeroam files? Because it comes with FFX I'm having a bit of a problem knowing which are just regular FFX files and which are your? THank you! :)

M25

The freeroam stuff requires FFX, EZ script, and the custom AI, so they shouldn't be separated.  All the freeroam specific code is in the m25freeroam* files. 

The freeroam campaign is contained in the story files in the freeroam directory, and requires the maps that link to each other in the Missions sub-directories.