QUEST for SIMULATION! Flash and speedsters>>through tweaking fastforward feature

Started by Red Fantom, February 23, 2015, 04:13:57 PM

Previous topic - Next topic

Red Fantom

is it possible to modify the fast forward/slow motion, through script???
I suppose since there is already the fast forw/slow mo feature in the game ,theres got to be a way to mess around with it,but does anyone got any idea  how?

Basicly I was thinking of doubling or tripling  the fast forward element BEYOND its normal limits, and then maybe slow  a b i t  down the action animations (through customising each meshe's kf),the moving speed of normal characters/civilians/cars, (easily ,just using the editor,or in game),  AND their rensponse time to like five seconds or possibly more if possible/needed (dont remeber exactly how but I remember stepping into it in the past), some tweaks/modifications in various aspects,like the time things fall in game/gravity issues(no idea how on this one) or like making longer the time the effects of powers last,like hypnotise,acid burn etc..

And eventually when playing the game in fast forward for normal, accessing the possibility of the simmulation of super speeding speedsters,as well as speeding bullets while everything else will seem like moving normal, AND in reverse,playing from the view of a speedster,seeing everything in slo-mo,giving an array of new possibilities as well as new levels of hardness considering the new mediums(super fast ai,etc).

mac402

For the latter (slow mode) you could modify the script for time master attribute. It's an interresting idea btw. I came up with a piece of a code you can try out and use. It shouldn't conflict with the time master attribute. It excludes speedsters (speed 8 or higher), characters with dilated perception (this power) and characters with speed greater than the user.

code for ffx2.py

############## DILATED PERCEPTION ###################################################

def initdilatedperception(char,update=0):
    Mission_CustomAction(ffx.getByTemplate(char,FFX_SPEEDSIGHT_CUSTOM,1),char,char,'OnSpeedSight',1,0)
    try:
        Mission_GetAttr('ffqtimeflow')
    except:
        Mission_SetAttr('ffqtimeflow',0)

def OnSpeedSight(char,dummy):
    if Mission_GetAttr('ffqtimeflow')==1:
        Mission_StatusText('Dilated perception not available!')
        return
    if ffx.chargeEP(char,ffx.getByTemplate(char,FFX_SPEEDSIGHT_CUSTOM,3))==0:
        return
    Sound_PlaySound('ui_time_slowdown',Get_ObjectPos(char),1)
    Mission_SetAttr('ffqtimeflow',1)
    for obj in Mission_GetDynamicObjects():
        objclass = Object_GetClass(obj)
        if (objclass & FFX_CHARACTER):
            ffx.FFX_ObjectSetAttr(obj,'beforeSlowDownSpeed',Object_GetAttr(obj,'speed'))
            ffx.FFX_ObjectSetAttr(obj,'beforeSlowDownAgility',Object_GetAttr(obj,'agility'))
            if (ffx.hasAttribute(obj,'dilatedperception') | ffx.FFX_ObjectGetAttr(char, 'dilatedperception') | (Object_GetAttr(obj,'speed')>6) | (Object_GetAttr(obj,'speed')>Object_GetAttr(char,'speed'))):
                newSpeed = Object_GetAttr(obj,'speed') * 4
                Object_SetAttr(obj,'speed',newSpeed)
                Object_SetAttr(obj,'agility',Object_GetAttr(obj,'agility') * 4)
            elif (objclass & FFX_CHARACTER):
                newSpeed = Object_GetAttr(obj,'speed')
                if newSpeed < 4:
                    Object_SetAttr(obj,'speed',0)
                else:
                    Object_SetAttr(obj,'speed',newSpeed-4)
    ff.APP_TIME_SCALE = 0.25
    ffx.RegTimer('SpeedSightOff',3,0,char)
    fx=ffx.getByTemplate(char,FFX_SPEEDSIGHT_CUSTOM,2)
    if fx!='':
        Object_PlayEffect(char, fx,'', FX_TRACK_OBJECT_FULL)

def SpeedSightOff(event):
    char = event.object
    RPG_SetActive(1) #added since hi speed doesn't prevent power use in FFvsTTR; could cause problems with cutscenes
    for obj in Mission_GetDynamicObjects():
        objclass = Object_GetClass(obj)
        if (objclass & FFX_CHARACTER):
            try:
                Object_SetAttr(obj,'speed',ffx.FFX_ObjectGetAttr(obj,'beforeSlowDownSpeed'))
            except:
                print "can't get the 'beforeSlowDownSpeed' of %s. He may have been created after the slowing of time."%(obj)
            try:
                Object_SetAttr(obj,'agility',ffx.FFX_ObjectGetAttr(obj,'beforeSlowDownAgility'))
            except:
                print "can't get the 'beforeSlowDownAgility of %s. He may have been created after the slowing of time."%(obj)
            if ffx.FFX_ObjectGetAttr(obj, 'timeFlowAccelerated'):
                ffx.FFX_ObjectSetAttr(obj, 'timeFlowAccelerated', 0)
    ff.APP_TIME_SCALE = 1.0
    Sound_PlaySound('ui_time_speedup',Get_ObjectPos(char),1)
    Mission_SetAttr('ffqtimeflow',0)


code for ffxcustom2.py

FFX_SPEEDSIGHT_CUSTOM=[
["default","CUSTOM_DILATEDPERCEPTION","",33],
["types","CCommand","OObject FX","iEP Cost"],
]

Amazo Version 2.2

wasn't someone making a flash mod? maybe you could ask them for help?
For anyone, and everyone, who has ever done anything to improve the FF/FFvs3R gaming experience, I want to say thank you. Life is so short, and you have all brought me so much joy. I hope that one day, I am somehow able to return the kindness and generosity that all of you have shown.

spydermann93


hoss20

I hate to ask, but is the Time Master or Time Control attribute still available in FFX 3.3? I remember it being in FFX at one time, but I can no longer find it.

spydermann93

Yep, it sure is!

I have the latest version of FFX, and it shows up for me.

Epimethee

Note on Time Master: The attribute shouldn't be visible in-game in the default FFX for FFvsTTR installation; if it is, it might be because the attributes.dat file was somehow merged with an FF1 version. The code itself kind of works, but I never finished porting it to FFvsTTR, due to various bugs related to the new game. Caveat emptor.

Hopefully, it still works well enough for your purpose.
FFX add-on for FFvsTTR at ffx.freedomforce4ever.com

hoss20

Thanks for clearing that up, Epimethee. I thought I remembered seeing it as a choice in a previous version of FFX, but there was some sort of issue with implementing the attribute. It wasn't included in the attributes list in the latest FFX manual, so I figured it was no longer an "active" attribute.