• Welcome to Freedom Reborn Archive.
 

FFX Plug ins

Started by GogglesPizanno, August 04, 2007, 09:35:08 PM

Previous topic - Next topic

GogglesPizanno

Since I have imparted what little wisdom I have on porting FF1 to FFvTR to Alex, who will take the reigns on that one, I used the little bit of motivation I had left to finish up a few FFX plug ins for people to try out They are somewhat customizable so look through the readme for each one to see what you can do.

1. Police Help - You can edit a list of objects (such a phone booth) that basically become call boxes for Police backup...for those times when you really need the help.

2. Medical Facilities - A LITTLE bit of work to set up on a map, but gives you lots of flexibility for creating medical facilities such as hospitals, clinics, roving medicine men etc... out of individual map objects.

3. Electrical Damage - This is simple one that adds a small electrical discharge to objects (such as lamps, streetlights etc...) that cause a small bit of electrical damage. I always felt that ripping out a big electrical pole might cause a spark or two.

I think they are working ok, but any errors or what not that spring up, lemme know.
Hopefully they will be fun or useful to someone.

You can find them in my yahoo group http://games.groups.yahoo.com/group/ohnogoggles



Epimethee

Very nice! I'm going to try them ASAP.

Goggles Pizanno is officially the first third-party plugin developer.  :thumbup:

HumanTon


BentonGrey

Great ideas Goggles!  I especially like the medical facilities one.

Epimethee

I played a bit with them... definitively enjoyable! :)

A couple of suggestions for the Electrical Damage plugin: First, the notes should really mention that the powers.dat update is mandatory (plus basic instructions). Second, instead of using a distinct list, maybe you could use ffxextras.py's electricalSources and verify that only fixed objects are registered. Ex:

import ffxextras

(...)

def OnPostInit():
    electric_Objects = []
    for obj in js.Mission_GetObjects():
        if js.Object_GetTemplate(obj) in ffxextras.electricalSources:
           if Object_GetAttr(obj, 'damagedOnMove'):
               #print 'found object'
               electric_Objects.append(obj)
               break
    for obj in electric_Objects:
        cshelper.regDamage(obj, 'ElectricDamage')


BTW, would you like us to host your plugins package on the FFX Downloads page?

GogglesPizanno

Quoteyou could use ffxextras.py's electricalSources and verify that only fixed objects are registered.

A more efficient and logical way of doing something in python that I missed?
Shocking...  ;)

no pun intended...

Thanks for the tips.
Great advice all around.
I'm sure there are a gazillion ffx functions that I am unaware of that would make stuff easier.
I'll take a peek in there to see what elese is lurking..
I also have an additional idea for the police one anyway..

The powers.dat thing was just cause i couldn't find an effect power in FFX that worked quite right with look and damage I was after. Normally I like to avoid dat merging if I can, just cause its such a "fingers crossed" sorta thing...

If you'd like to host them, that would be great.

Epimethee

> I'm sure there are a gazillion ffx functions that I am unaware of that would make stuff easier.
You're not alone... :P

While there are many missing elements (m25ai.py and configuration files such as ffxextras.py, for example), you can get an overview of most functions as of FFX 3.2 in the manual under Mod-Making (the FFX.py page is admittedly VERY rough).

> If you'd like to host them, that would be great.
It would be a pleasure. I suppose I'd better wait for your update with the new police idea?

detourne_me

Oh man!  I'd love to see these in action!
Great work Goggles and the FFX team.
just wondering...  is it easy to substitute the health cannisters with the medkit nif, and the energy cannisters with the pizzabox nif (both found on FRPMods)?

Epimethee

Quote from: detourne_me on August 07, 2007, 09:39:49 PM
Oh man!  I'd love to see these in action!
Download, install, see them in action. :)

QuoteGreat work Goggles and the FFX team.
Credit where credit is due... it's 100% Goggles' work.

Quotejust wondering...  is it easy to substitute the health cannisters with the medkit nif, and the energy cannisters with the pizzabox nif (both found on FRPMods)?
I suppose you just need to change the mesh path in FFEdit. Just back up objects.dat first.

Epimethee

A small suggestion for Electrical Damage plugin, Goggles, which, if you think it adequate, could do away with the powers.dat merge requirement:

I was wondering where I had seen this "electrical objects cause a bit of electrical damage"... turns out I had done an Alternate Current attribute (to be released) which allows you to leech energy from electrical-powered objects, damaging them in the process. The relevant part is that this used the existing "ffx_ex_elec_small", but underpowered, so it might potentially fit your needs:
Trigger_Explosion(elec, 'ffx_ex_elec_small', -1)

GogglesPizanno

Cool.
I'll have to look at this.
Ive been getting hammered at work this week so I haven't had a lot of free time, but getting these finished up is on my todo list... really... seriously...

stumpy

Quote from: GogglesPizanno on August 17, 2007, 08:35:54 PMIve been getting hammered at work this week [...]

Wow! I wish I could drink on the job! 

The phrase just struck me as funny.

GogglesPizanno

QuoteWow! I wish I could drink on the job!

Oh were it still the late 90's dot com bubble when we could (mint julep Fridays!)   :D

GogglesPizanno

OK So I took a little time to try some of the suggestions out.

QuoteTrigger_Explosion(elec, 'ffx_ex_elec_small', -1)
This works great without having to merge dats so I'm sold.

Quotemaybe you could use ffxextras.py's electricalSources and verify that only fixed objects are registered.
This is good idea, but Ive found that things like streetlights aren't registered wit the "damagedOnMove" attribute. So they wont work (unless you add this in FFEdit). However this plug in was mainly designed for those objects players can pick up and interact with, so I added checks for weildable and canPickUp to accommodate that...

So now it first does a check to see if:
A) They are electrical (from ffxextras, so anything deemed electrical is there)
or
B) They are in the custom defined list (I like keeping this list so that people can create custom electrical objects that are specific to the plugin that dont effect all electrical based FFX options)

Once those are found, it checks:
A) damagedOnMove
or
B) wieldable
or
C) canPickUp

Epimethee

This looks pretty solid. :)