Final Fantasy Forums > Tools
[RELEASE] FF7tk
Dark_Ansem:
AFAIK they're both very busy, but one can try....
sithlord48:
While Work on this project has been slowed down a bit there is still progress being made. For some objects we are waiting for Qt 5.0 to come out so that we can use some of the newer features. For older objects there will only need to have small update to build with Qt 5.0. ( this is basicly Done already and it all works under Qt5 currently)
Some FF7Tk Related News:
Updated: CharEditor, mostly completed.needs the layout optimized before i am ready to use it in black chocobo.(its to large)
Updated: All Static Data Classes Have Been updated.
New: ChocoboEditor Widget to Edit your Chocobo Stable.
Some Data on the Objects of Use: (start of Documentation)
Please Note: Requirements for items only count the files from the Tk that need inclusion in your project. All objects require Assorted Items from the Qt Toolkit.
FF7Text - Convert Text To/ From FF7 Format
Requirements for use: None
Functions:
void FF7Text::init(bool ja)
Sets What Char Table will be retruned.
true: for Japanese Char Table
false: for all others.
QString FF7Text::toPC(QByteArray text)
Converts text into a standard QString decoded from ff7text format
QByteArray FF7Test::toFF7(QString text)
Converts text into ff7 text format
FF7Save - The Core Object for Working with FF7 Save Games.
Requirements for use:
FF7Save_Const.h - All consts placed here
FF7Save_Types.h - All Custom Types for this class here.
FF7Text.h - Text Conversion Object
Loading and Saving Functions
bool loadFile(const QString &fileName)
bool saveFile(const QString &fileName)
Load or Save fileName (type is auto detected)
bool exportPC(const QString &fileName)
bool exportVMC(const QString &fileName)
bool exportDEX(const QString &fileName)
bool exportVGS(const QString &fileName)
Export data as that type to fileName , all 15 slots
bool exportPSX(int s,const QString &fileName)
Exports Slot s to raw PSX format file name fileName. (even if more then one data block)
bool exportCharacter(int s,int char_num,QString fileName)
Exports Character from slot s in character slot char_num to fileName
bool importCharacter(int s,int char_num,QByteArray new_char)
Imports new_char (raw 132 byte array) to slot s in character slot char_num.
All Above Functions Return 0 if Fails to load/save fileName
void importPSX(int s,const QString &fileName)
void importPSV(int s,const QString &fileName)
Imports data from fileName to slot s
void clearSlot(int s)
clears data in slot s (fills with 0's)
void copySlot(int s)
saves slot s into a buffer
void pasteSlot(int s)
pastes save stored in buffer to slot s
void newGame(int s,QString fileName="")
Puts default Save in slot s if no fileName is provided.
if a fileName is provided it MUST BE PSX Format data.
void newGamePlus(int s,QString CharFileName,QString fileName="")
Creates a new Game + in slot s. exports cait/ vincent to CharFileName.
if no fileName is provided will use default save to make the new game +
if a fileName is provided it will be used to create the new game + it MUST BE PSX Format.
File Info Functions (the headers code says it all)
int lenFile(void);//Return File length.
int lenFileHeader(void);//Return File Header length
int lenFileFooter(void);//Return File Footer length
int lenCoreSave(void);//Return Slot length (data portion)
int lenSlotHeader(void);//Return slot header length
int lenSlotFooter(void);//Return slot footer length
int lenSlot(void);//Return Slot length
int numberOfSlots(void);//Return number of slots in the file_footer_dex
QString type(void);// Returns the file type loaded.
bool isFF7(int s);//valid ff7 slot?
bool isPAL(int s);//PAL SLOT?
bool isNTSC(int s);//NTSC SLOT??
bool isJPN(int s);//is a Japanese File
QString region(int s);// region string of slot s
//Set Needed Info Stuffs
void setType(QString);//allows for slot change.
void setRegion(int s ,QString region);
QByteArray slot_header(int s); //return slot header.
quint8 psxBlockType(int s);//mask of psx slot (used by index)
quint8 psxBlockNext(int s);// if using more then one block return location of next block
quint8 psxBlockSize(int s);//how many blocks save uses.
void fix_pc_bytemask(int s);// update so last slot is shown selected on load (must be public to set to currently viewed slot).
FF7Char - Info About Characters.
Requirements : xpm files in icons/Char_Icons
Functions
quint8 id(int who);
return who's id
int numberOfWeapons(int who);
return the number of weapons who can use
int weaponOffset(int who);
return the starting item # of who's weapons
QString defaultName(int who);
return whos DefaultName (translated)
QImage image(int who);
return QImage Version of who avatar picture.
QIcon icon(int who);
return QIcon Version of who avatar picture.
QPixmap pixmap(int who);
return QPixmap Version of who avatar picture.
QStringList limits(int who);
Return a list of whos limits (translated)
quint32 totalExpForLevel(int who,int level);
return how much xp who needs to reach what level
quint32 tnlForLevel(int who,int level);
returns starting tnl for who at what level
int statGain(int who,int stat,int stat_amout,int next_lvl);
return amount gained in stat by who in what stat , needs to know the current stat_amount , and next_level of who
stat table 0 str, 1 vit, 2 mag, 3 spi, 4 dex, 5 luck,6 hp,7mp
usefull for when leveling up or down (not so much down )
FF7Item - Info About FF7 Items
Requirements: xpm files in icons/Item_Icons/
Functions:
General Info about Item
QString name(int id);
return translated Name if item id
QString desc(int id);
return translated description of item id
qint8 type(int id);
return item id's type
type : 1-item, 2-wep_cloud, 3-wep_barret, 4-wep_tifa, 5-wep_red, 6-wep_aerith, 7-wep_cid, 8-wep_yuffie, 9-wep_cait, 10-wep_vincent, 11-armor, 12-accessory
qint8 materisSlots(int id);
return number of materia slots item id has
qint8 linkedSlots(int id);
return number of linked pairs of materia slots item id has
qint8 materiaGrowthRate(int id);
Return materia growth rate for item id.
Status Info For Items
qint8 statHP(int id);
Return Bonus item id provides for Hp
qint8 statMP(int id);
Return Bonus item id provides for Mp
qint8 statSTR(int id);
Return Bonus item id provides for strength
qint8 statVIT(int id);
Return Bonus item id provides for vitality
qint8 statDEX(int id);
Return Bonus item id provides for dexterity
qint8 statLCK(int id);
Return Bonus item id provides for luck
qint8 statMAG(int id);
Return Bonus item id provides for magic
qint8 statSPI(int id);
Return Bonus item id provides for spirit
Elemental Functions
qint8 elementRestoration(int id);
qint8 elementFire(int id);
qint8 elementCold(int id);
qint8 elementLightning(int id);
qint8 elementEarth(int id);
qint8 elementWind(int id);
qint8 elementWater(int id);
qint8 elementGravity(int id);
qint8 elementHoly(int id);
qint8 elementPoison(int id);
qint8 elementCut(int id);
qint8 elementShoot(int id);
qint8 elementPunch(int id);
qint8 elementHit(int id);
Above Functions return the kind of effect item id has for each element
for all elemental functions
-3: Absorb
-2: Nullify
-1: Halve
0: No Effect
+1: damage
//Status Functions
qint8 statusDeath(int id);
qint8 statusSlowNumb(int id);
qint8 statusDeathSentence(int id);
qint8 statusParalysis(int id);
qint8 statusPetrify(int id);
qint8 statusSilence(int id);
qint8 statusSleep(int id);
qint8 statusConfusion(int id);
qint8 statusBerserk(int id);
qint8 statusFrog(int id);
qint8 statusMini(int id);
qint8 statusPoison(int id);
qint8 statusFury(int id);
qint8 statusSadness(int id);
qint8 statusDarkness(int id);
qint8 statusHaste(int id);
qint8 statusSlow(int id);
qint8 statusStop(int id);
qint8 statusBarrier(int id);
qint8 statusMagicBarrier(int id);
qint8 statusReflect(int id);
qint8 statusShield(int id);
qint8 statusRegen(int id);
qint8 statusResist(int id);
Above Functions return the kind of effect item id has for each element
all Status Effects
-2: Protect
-1: Remove
0: No Effect
+1: Infilict
+2: Auto SelfCast
//Pictures
QImage image(int id);
return QImage of Items in game icon
QImage imageMateriaSlotNoGrowth(void);
return QImage of in game Materia slot (no growth type)
QImage imageMateriaSlot(void);
return QImage of in game Materia slot (no growth)
QImage imageMateriaLink(void);
return QImage of in game Materia link
//StyleSheet Equilvents (ONLY QButtons)
QString styleMateriaSlotNoGrowth(void);
Return Style Sheet version of Custom No Growth Slot(only use on a QPushButton)
QString styleMateriaSlot(void);
Return Style Sheet version of Custom Growth Slot(only use on a QPushButton)
QString styleMateriaLink(void);
Style Sheet version of Custom Materia Link (only use on a QLabel)
Jenova's Witness:
Thank you for doing this, and doing it right.
Request:
*Instructions on adding your PPA to my sources
*Instructions for linux newbs on what to git clone, and a list of sudo apt-get commands to get all the required dependencies.
Also, I noticed you're using qt. Are you sure that's a good idea for something as simple as a game editing program (though editing FF7 isn't exactly simple). Do you think it may be a better idea to use something smaller, like, say, Phoenix, or GTK?
sithlord48:
--- Quote from: Jenova's Witness on 2012-07-03 18:48:06 ---Thank you for doing this, and doing it right.
Request:
*Instructions on adding your PPA to my sources
*Instructions for linux newbs on what to git clone, and a list of sudo apt-get commands to get all the required dependencies.
--- End quote ---
add my ppa in (*)buntu thread about there here:
http://forums.qhimm.com/index.php?topic=11928.msg165409#msg165409
instructions.. well i don't use git. and to build the FF7tk you neeed the source (link in first post above) and extract it
then for programs you can install them easily with the following command
--- Code: (run in terminal) ---sudo apt-get install build-essential qtcreator
--- End code ---
after you install you just have to open the .pro file in Qt Creator and build the Program.
--- Quote from: Jenova's Witness on 2012-07-03 18:48:06 ---Also, I noticed you're using qt. Are you sure that's a good idea for something as simple as a game editing program (though editing FF7 isn't exactly simple).
Do you think it may be a better idea to use something smaller, like, say, Phoenix, or GTK?
--- End quote ---
No i think Qt is perfect for this project. it has more os support then either of those toolkits mentioned.None of those toolkits run on phones,linux, windows, mac os Qt does. above i said something about not having to dupilcate work if you have to recode to make it work on an os or a device your redoing work. also unlike GTK, QT looks good on more then just Gnome.
Jenova's Witness:
I just don't want your effort to be screwed over by some of the bugs in QT. So you can be aware of them:
http://byuu.org/articles/qt
You might wanna ask byuu yourself if something goes wrong with QT. He has a lot of experience with it, and, if anyone can help you get it working, he can.
Navigation
[0] Message Index
[#] Next page
[*] Previous page
Go to full version