• Welcome to Freedom Reborn Archive.
 

Muliplayer Pack for FFX3!

Started by TaskMasterX, May 15, 2007, 10:59:33 AM

Previous topic - Next topic

TaskMasterX

Yes! I think I've discovered how to get FFX3 to work in multiplayer! I was able to test several FFX attributes and most of the seemed to work! Since I didn't have anyone to play against, I was able to do a trick to make the mission stay open so I could test the attributes out. So far these seem to work:
Magnetic (most likely TTK will too)
Earth Control
Ice Control
Earth Control
Fire Control
Living Laser
Invulnerable (all grades, of course)
Absorb Powers!! (Yes, the new FFX3.2 attribute!)
Mental Damage Power Swap
Shapeshifter!!!!!!!! :thumbup:
Weapon Master
Utility Belt
Hatemonger

I tried Megablast but nothing happened.
I tried SuperLeaper but nothing happened.

I also tried Shapeshifter but the character turned into a block and I got this error in the script.log:
Traceback (innermost last):
  File "C:\Program Files\Irrational Games\Freedom Force vs The 3rd Reich\.\ffx3\missions\scripts\ffx.py", line 4814, in execTimer
    exec(event.object)
  File "<string>", line 1, in ?
  File "C:\Program Files\Irrational Games\Freedom Force vs The 3rd Reich\.\ffx3\missions\scripts\ffx.py", line 4822, in morph2
    AI_MakeIntoHero(name)
RuntimeError: AI_MakeIntoHero() - Object does not have an AI or does not exist - form_1

Any of you moe talented scripters know what to do with this?



I zipped up the files I editted and put them here:
www.geocities.com/taskmasterxff/FFX3_MultiplayerPack_alpha.zip

It's compatible w/ FFX3.2 and I included a ffx3.12a.py file if you want to try it out w/ FFX3.12a. Keep in mind this is an alpha version so not everything is going to work perfectly, but I need testers to try it out and I can try to fix things as they come up. All you need to back up is your ffx.py file and your Data\multiplayer folder and Data\missions\mp_airfield, mp_berlin, etc., (all the folders that begin w/ mp_ in the Data\missions folder.) These last two things might not be there as I think they are folders that are manually extracted from the dat.ff or missions.ff files, so actually the back up for these folders are in the .ff files so you don't really need to back them up.

EDIT: Yes, I'm aware that there's no one playing MP anymore (hopefully that can change now) and I'm willing to meet anyone online to test. Let me know. The best time for me is 9pm or after EST.


EDIT2: Nevermind! I made some changes to Shapeshifter and TempForm and now I'm shapeshifting in MP! I've uploaded the changes.
To get Shapeshifter to work, you'll need to open FFXCC after installing this pack. Select one of the Temp Forms for your Shapeshifter and you'll notice a new field, "Original Form", where you need to type in the exact name of the Shapeshifter. Don't worry about the Commands you see in the drop-down list. Just ignore those and type in the name. You'll need to do this for each Temp Form. Save, Export File and then Close. Now you can choose any of your custom forms and switch back to the original during a MP mission!

electro

Dream Come True - You have just Jolted more life into this game - Thanks alot Task, I,ll be able to test at anytime starting from this Friday Mourning to Sunday Night - just PM me a Time & i'll be there. :blink:

lugaru

WAAAAA!?!?

Wow, I totally didint expect to hear that... If a project can be made around this then the irrational guy's dream will come true of this game having a good multiplayer experience. It would be vindicative for the fans, since several elements of the game (such as inertia) where scrapped for "balance" in the multiplayer that very few people used...


TaskMasterX

Well, this really bites. I tried doing a true test with others online but no one could ever get connected to my game. When using the Internet Play Option, the game never showed up in the list. When using either Direct IP or LAN, the game would show but when the Join button is clicked, several seconds later, a box would pop-up saying "Could not connect to Host!"
I opened up my firewall w/ the correct ports (I found several sites saying that 5050 UDP and 11111UDP should be open), but still nothing. Anyone have any ideas?
Thanks


EDIT: Well, after swapping out my firewall and plugging directly to my modem, I was able to do it. So, obviously it was my firewall. Thanks anyway.

TaskMasterX

 :banghead: After getting the connection working and then figuring out that the meshes need to be stored in the Documents and Setttings folder, I was able to finally run a real test on this. Unfortunately, it isn't working at all. Here's what's happening:
1.) I don't get any FFX commands for any attributes when hosting a game with others joined. The other players don't get any commands either and no Power Swaps work. Basically FFX doesn't work.
2.) If I open up the deathmatch.py file that's included w/ the MP Pack, and change the line:
    regTimer('SkirmishModeCheckEnd',1)
to
    regTimer('SkirmishModeCheckEnd',1000)
so I can load a Deathmatch MP mission by myself and not have anyone join and it not end the mission immediately, I get all my commands, and they work!
Here's a copy of the script.log I get when I load a Shapeshifter and have people join the game:

[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 1179337092.843000
Starting Height Check module 1.4
Starting System Utilities 1.4
OBJECTS_HEIGHT: 604 entries
NIF_OBJECTS: 482 entries
BUILDINGS_IN_OBJECTS_DAT: 30 entries
BUILDING_DIMENSIONS: 30 entries
Starting skXMapInfo.py  v 0.79 beta
skXMapInfo: m25ai available
FFX Mission Plugin 'firehydrant' imported
FFX Mission Plugin 'zombie' imported
Loading freeroam_keepbuildingdamage.py v.1.0.0 build 0; branch = main
FFX Mission Plugin 'freeroam_keepbuildingdamage' imported
FFX Mission Plugin 'm25ai_lowjumper' imported
FFX Mission Plugin 'm25ai_realitymanipulation' imported
FFX Mission Plugin 'cutscene_power' imported
Loading     m25enc_OPENDOOR.py v.1.0.0 build 0; branch = main
FFX Mission Plugin 'm25enc_opendoor' imported
Loading     m25enc_simplechoice.py v.1.0.0 build 0; branch = main
FFX Mission Plugin 'm25enc_simplechoice' imported
Starting Built-In Function Wrapper 1.5
('Object_CalcPrestige', 'js')
>>> C:\Documents and Settings\jbp\Local Settings\Application Data\Irrational Games\Freedom Force vs the 3rd Reich\temp\mplayer.py executed
>>> C:\Documents and Settings\jbp\Local Settings\Application Data\Irrational Games\Freedom Force vs the 3rd Reich\temp\deathmatch.py executed
MLOG_Init(keepRunningModules=0): starting up
mlogreader.MLOG_Init: current mission = 'MP_PRISONYARD'
Traceback (innermost last):
  File "C:\Documents and Settings\jbp\Local Settings\Application Data\Irrational Games\Freedom Force vs the 3rd Reich\temp\mplayer.py", line 14, in OnPostInitMap
    FFX_InitMission(initialise=1)      
  File "C:\Program Files\Irrational Games\Freedom Force vs The 3rd Reich\.\ffx3\missions\scripts\ffx.py", line 259, in FFX_InitMission
    initialise(skirmish=1)
TypeError: call of non-function (type int)
initialising FFQ_initialiseExtras()
Plugin 'firehydrant' OnPostInit() called
ReadHeroIndexData: trouble reading or evaluating data from <c:\program files\irrational games\freedom force vs the 3rd reich\ffx3\HeroIndexData.txt>
Campaign_MakeHeroIndex: Making index <c:\program files\irrational games\freedom force vs the 3rd reich\ffx3\HeroIndexData.txt>
GetCharacterData: unable to determine which character has 'complex'=1015.  Re-run FFX Control Centre
Plugin 'zombie' has no OnPostInit()
Plugin 'freeroam_keepbuildingdamage' OnPostInit() called
Plugin 'm25ai_lowjumper' has no OnPostInit()
Plugin 'm25ai_realitymanipulation' has no OnPostInit()
Plugin 'cutscene_power' has no OnPostInit()
Plugin 'm25enc_opendoor' has no OnPostInit()
Plugin 'm25enc_simplechoice' has no OnPostInit()
! GetMapInfo
MLOG_Init(keepRunningModules=0): starting up
mlogreader.MLOG_Init: current mission = 'MP_PRISONYARD'
initialising FFX: skirmish=1
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
message1 is not a valid explosion object
message2 is not a valid explosion object
message3 is not a valid explosion object
message4 is not a valid explosion object
numberStr=
storing s2:h0: id_1,0
numberStr=
storing s1:h0: id_2,0
Campaign_MakeHeroIndex: Making index <c:\program files\irrational games\freedom force vs the 3rd reich\ffx3\HeroIndexData.txt>
GetCharacterData: unable to determine which character has 'complex'=1015.  Re-run FFX Control Centre
Campaign_MakeHeroIndex: Making index <c:\program files\irrational games\freedom force vs the 3rd reich\ffx3\HeroIndexData.txt>
GetCharacterData: unable to determine which character has 'complex'=1015.  Re-run FFX Control Centre
Campaign_MakeHeroIndex: Making index <c:\program files\irrational games\freedom force vs the 3rd reich\ffx3\HeroIndexData.txt>
GetCharacterData: unable to determine which character has 'complex'=1015.  Re-run FFX Control Centre
getBuiltinTransformers non-fatal error:
    Unable to check if s2:h0 of template None has a law/order type transformation power.
Traceback (innermost last):
  File "C:\Documents and Settings\jbp\Local Settings\Application Data\Irrational Games\Freedom Force vs the 3rd Reich\temp\deathmatch.py", line 26, in OnMPStart
    ffx.FFX_InitSkirmish(1)
  File "C:\Program Files\Irrational Games\Freedom Force vs The 3rd Reich\.\ffx3\missions\scripts\ffx.py", line 268, in FFX_InitSkirmish
    initialise(1)
  File "C:\Program Files\Irrational Games\Freedom Force vs The 3rd Reich\.\ffx3\missions\scripts\ffx.py", line 405, in initialise
    FFX_Transformers = getBuiltinTransformers()
  File "C:\Program Files\Irrational Games\Freedom Force vs The 3rd Reich\.\ffx3\missions\scripts\ffx.py", line 767, in getBuiltinTransformers
    if f == template[ : len(f) ]:
TypeError: unsliceable object
FFX_UpdateSun: getting default sun
FFX_UpdateSun: setting = (-140.0, 60.0, 1.20000004768, 1.0, (0.300000011921, 0.20000000298, 0.899999976158))
Campaign_MakeHeroIndex: Making index <c:\program files\irrational games\freedom force vs the 3rd reich\ffx3\HeroIndexData.txt>
GetCharacterData: unable to determine which character has 'complex'=1015.  Re-run FFX Control Centre
Traceback (innermost last):
  File "C:\Program Files\Irrational Games\Freedom Force vs The 3rd Reich\.\ffx3\missions\scripts\ffx.py", line 659, in initAttribs
    if (hasAttribute(object,'tempform')!=0) | (hasAttribute(object,'involuntaryform')!=0):
  File "C:\Program Files\Irrational Games\Freedom Force vs The 3rd Reich\.\ffx3\missions\scripts\ffx.py", line 684, in hasAttribute
    return chardata.Character_HasAttribute(char, attrib)
  File "C:\Program Files\Irrational Games\Freedom Force vs The 3rd Reich\.\ffx3\missions\scripts\chardata.py", line 35, in Character_HasAttribute
    return attrib in cdata['characterAttributes'][:cdata['activeAttributes']]
KeyError: characterAttributes[/spoiler]

I was so excited when I was doing the preliminary tests by myself and then my heart dropped when I did a real test and nothing worked. What's the difference when people join? Even though their settings are exactly the same?


EDIT: Progress!! I found that if I put the multiplayer folder and the mp_ map folders in their appropriate places in the ffx3 folder instead of the Data folder, i got several attributes to work. Magnetic and Earth Control are what I just tested. Although the Mental Dmg Power Swap did not work and the Short-circuited attribute worked except I didn't see the FX on the PC I had the character being played on, but the Host PC saw the FX! Weird!

EDIT2: I'm constantly getting the same error listed above in the spoiler, whether or not I'm using a Shapeshifter or not, so I guess it's not related to that. Any help would be appreciated! :(

Epimethee

Great work, Jason! :thumbup:

I can't get the download, though, as the link appears wrong. (What do you mean by "FFX 3.12a"? BTW, if you changed ffx.py, I suggest renaming the version number in the file header so bug reports show which version it is.)

Power swap problems: I wish I could remember what were the particular FFX for MP pitfalls Dr Mike mentioned a few years ago... All I remember is that it was abve my head. The FX issue may be due to synchronisation problems. Maybe you could add Mission_StatusText() messages to the power swap code so players can report whether the code itself works for everyone.

Epimethee

Since I very much doubt MP was ever supposed to be in the least mod-friendly, I wouldn't be surprised if some of IG's MP code were hard-coded to use the data folder. This might explain some problems which didn't (?) happen in FFX 2.x.


> Unable to check if s2:h0 of template None has a law/order type transformation power.
There is obviously something very wrong happening here, unless you have a character named  "None" spwaned under the name "s2:h0"... Let's pray it's not because of another of IG's distinct implementations based on whether the game is in MP/RR/Campaign + built-ins/customs/built-ins in saved games/customs in saved games. I think you'll want to add a few print statements to the code to help understand what is going on.

Characters "complex" ID might not match from client to client. I'd suggest people testing do so using a fresh install of FFX 3.2 (just install in a different folder). The more radical step would be, of course, to install in the data folder (creating a backup first, obviously). Also, I'd try avoiding custom characters in MP for the moment, so everyone has the same base.

Good luck!



electro

When playing a Multiplay game with just FF2 only & two people don't have the same custom content the game defaults to Minuteman which is a good thing becuase A: you don't have to share files which cuts down on load times Alot & B: you can interact with him & distroy him - With ussing FFX the game doesn't default to minuteman it goes to a Pink Cube which you cannot hit - If two people have the same content then your good to go - so there must be a way to look at what FF2 is doing to point at Minuteman as the Default mesh, I have no idea where to look mind you & taskmaster seems to have an alternate solution in the works if this can't be figured out :blink:

TaskMasterX

The pink blocks were due to the mesh not being transfered correctely to the other players because the path for the mesh in the hero file doesn't match an existing path on any of the other players' PC. (i.e.C:\Documents and Settings\<username>\etc.,). If this is the path in the hero file then the other players' <username> aren't going to match so the path would be incorrect on their PCs. If the path is truncated (custom_characters\<mesh name>) and the other players don't have a custom_characters folder in their C:\Documents and Settings\...Custom\Art folder then the mesh won't get transferred either. So the pink boxes have to do with the mesh path in the hero file, not this FFX_Muliplayer Pack. Although I wish it was the only problem we had as it would be fixed now.

Thanks, EP. Sorry. I had taken down the .zip file since it really didn't work anyway. I'll put it up on the FFX Dev Group so you guys can see what I've tried so far. Maybe if you can see what I've done, you might be able to point out what I've done wrong!  ^_^

BatWing

alot of hard work you did taskmaster
though it would've been cool to play multiplayer in ffx

TaskMasterX

I haven't given up yet. I thought I was on a roll, since it seemed to be working well. But now that I hit a pretty big brick wall  :banghead:, I'm putting it on the back burner for the moment until I finish a couple of other projects I've been working on.

electro

NP it was a good try - No since in wasting more time with something that only a few would enjoy - Thanks again :blink:

Epimethee

Actually FFX'ed MP FFvsTTR could offer interesting possibilities and stir interest in that game mode. For example, cooperative mission in the host's Patriot City, anyone?

By the way, did anyone ever do a "story mode" or multipart multiplayer mini-campaign that IG spoke about when announcing FFvsTTR? Or was that taken out of the game?

Previsionary

Rick and I tried "story mode"...it's basically regular multiplayer with a backstory. However, I liked Co-op MP in ff1 when alex's tool was around. I vaguely remember playing it with Kommando and TPE at one point.

Major problem with MP in ffvttr, in my opinion, is that it feels more broken. The transfer of custom content happens (with that option checked), but it still has custom characters that the player JUST received show up as pink boxes that can only be hurt by using their portraits. Not to mention that animations sometimes don't work. MP in FF (in general) requires alot of prep work just so everything can go smoothly.

I don't really think FFX will generate that much interest though. FFX was available in FF1 for a time, but no one played MP there either. :S

vaarna_aarne

 :ph34r:

:threadmancy:

Oi, started to fiddle around with the FFX 3.3 when I and several mates got renewed interest in :ffvstr: multiplayer.

So, anyway, since we quickly discovered that the attributes aren't working and that this here linky isn't around anymore, does someone have this still lying around and is kind enough to upload it somewhere? And is there anyone who might pick up on your work here, since FFX MP would kick arse.

Incidentally, loving the FFX3.3.