Welcome Guest [Log In] [Register]
Welcome to Fire Emblem Fusion. We hope you enjoy your visit.


You're currently viewing our forum as a guest. This means you are limited to certain areas of the board and there are some features you can't use. If you join our community, you'll be able to access member-only sections, and use many member-only features such as customizing your profile, sending personal messages, and voting in polls. Registration is simple, fast, and completely free.


Join our community!


If you're already a member please log in to your account to access all of our features:

Username:   Password:
Add Reply
Fire Emblem Stat Calculator for mIRC; Handy for debates
Topic Started: Nov 16 2007, 10:37 AM (489 Views)
Mekkah

FEFFer
After doing a couple of debate posts I noticed it's pretty tiring and time consuming to repeatedly shift between FEA, Serene's, your text/word document and everything else you need to determine something simple as Guy's offensive stats.

So I build a tool in mIRC that allows you to fill in all relevant stats, and then does the calculating work for you. Just put in HP, Str, Def, etc, as well as weapon properties and relevant supporting affinities and levels, and it'll give you the battle stats you need.

Posted Image
Guy's stats using a Killing Edge

How to get it:

1) Get mIRC if you haven't already and open it
2) Press Alt + R and you should see the Remote Editor
3) Copypaste all code below into the text field
4) Click OK
5) Just in case, turn the Remote on by typing /remote on

Now, to use it, simply fill in all relevant stats and weapon properties, fill in your unit's name as well as the name of the weapon if you like, and press the Go! button.

There's only 2 errors I know of:
- There's a little issue with the spacing in the supporting field. As you can see, 12.5 gets cut off. But that's okay, we know what it means.
- There's no way of implementing the class Crt boost.

This one is mostly meant for the GBA FEs obviously. You could use it for FE9 though, just pretend it actually says Str instead of Con. Supports are a lot different there though. FE4 and FE5 have some changes as well but it can still be functional for those if you know how to convert your stuff.

Have fun. :)

Code:
 
alias fedi {
 dialog -m fedi fedi
}
alias f8 { fedi }

dialog fedi {

;Obligatory stuff for dialogs
 title "Mekkah's Fire Emblem Stat Calculator"
 size -l -l 390 230
 option dbu

;Boxes
 box "Primary Stats", 1, 10 10 120 110
 box "Supports", 2, 130 10 240 110
 box "Weapon", 3, 10 120 120 100
 box "Final Stats", 4, 130 120 240 100

;Primary Stats
;Name Editbox
 edit "", 5, 20 20 40 10
;Start button
 button "Go!", 100, 65 20 40 10

;Primary stat editor
 text "MHP", 6, 20 40 30 10
 text "Pow", 7, 20 50 30 10
 text "Skl", 8, 20 60 30 10
 text "Spd", 9, 20 70 30 10

 text "Def", 10, 70 40 30 10
 text "Res", 11, 70 50 30 10
 text "Luk", 12, 70 60 30 10
 text "Con", 13, 70 70 30 10

;Editboxes for stats
 edit "0", 14, 45 40 20 10
 edit "0", 15, 45 50 20 10
 edit "0", 16, 45 60 20 10
 edit "0", 17, 45 70 20 10

 edit "0", 18, 95 40 20 10
 edit "0", 19, 95 50 20 10
 edit "0", 20, 95 60 20 10
 edit "0", 21, 95 70 20 10

;Supports Stuff
;Character support affinity
 text "Unit Affinity", 22, 140 20 30 10
 combo 23, 140 30 40 10, drop

;Supporting unit affinities
 text "Supporter Affinity", 30, 140 40 50 10
 combo 24, 140 50 40 10, drop
 combo 25, 140 60 40 10, drop
 combo 26, 140 70 40 10, drop
 combo 27, 140 80 40 10, drop
 combo 28, 140 90 40 10, drop

;Character support levels
 text "Support Level", 29, 200 40 40 10
 combo 31, 200 50 20 10, drop
 combo 32, 200 60 20 10, drop
 combo 33, 200 70 20 10, drop
 combo 34, 200 80 20 10, drop
 combo 35, 200 90 20 10, drop

;Support Bonuses
 text "Atk", 36, 250 40 50 10
 text "0", 37, 250 50 10 10
 text "0", 38, 250 60 10 10
 text "0", 39, 250 70 10 10
 text "0", 40, 250 80 10 10
 text "0", 41, 250 90 10 10

 text "Def", 42, 270 40 50 10
 text "0", 43, 270 50 10 10
 text "0", 44, 270 60 10 10
 text "0", 45, 270 70 10 10
 text "0", 46, 270 80 10 10
 text "0", 47, 270 90 10 10

 text "Hit", 48, 290 40 50 10
 text "0", 49, 290 50 10 10
 text "0", 50, 290 60 10 10
 text "0", 51, 290 70 10 10
 text "0", 52, 290 80 10 10
 text "0", 53, 290 90 10 10

 text "Avo", 54, 310 40 50 10
 text "0", 55, 310 50 10 10
 text "0", 56, 310 60 10 10
 text "0", 57, 310 70 10 10
 text "0", 58, 310 80 10 10
 text "0", 59, 310 90 10 10

 text "Crt", 60, 330 40 50 10
 text "0", 61, 330 50 10 10
 text "0", 62, 330 60 10 10
 text "0", 63, 330 70 10 10
 text "0", 64, 330 80 10 10
 text "0", 65, 330 90 10 10

 text "CEV", 66, 350 40 50 10
 text "0", 67, 350 50 10 10
 text "0", 68, 350 60 10 10
 text "0", 69, 350 70 10 10
 text "0", 70, 350 80 10 10
 text "0", 71, 350 90 10 10

;Totals
 text "Total", 90, 200 105 30 10
 text "0", 91, 250 105 10 10
 text "0", 92, 270 105 10 10
 text "0", 93, 290 105 10 10
 text "0", 94, 310 105 10 10
 text "0", 95, 330 105 10 10
 text "0", 96, 350 105 10 10

;Weapon Properties
;box is at 10 120 120 100

 text "Weapon", 72, 20 130 20 10
 text "Mt", 73, 20 150 20 10
 text "Acc", 74, 20 160 20 10
 text "Crt", 75, 20 170 20 10
 text "Wt", 76, 20 180 20 10

 edit "", 77, 50 130 50 10
 edit "", 78, 50 150 30 10
 edit "", 79, 50 160 30 10
 edit "", 80, 50 170 30 10
 edit "", 81, 50 180 30 10

;Final Box
;[Character] with [Weapon]
;Offensively: atk, AS, hit, crt
;Defensively: avo, HP, def, res, crt eva

 edit "", 82, 140 130 220 80, multi, return

}
;Start button event, scroll down a lot to see what /goforit does
on *:dialog:fedi:sclick:100: { goforit }

on *:dialog:fedi:init:0: {

;Adding affinities to the combo boxes
 did -a fedi 23,24,25,26,27,28 Fire
 did -a fedi 23,24,25,26,27,28 Anima
 did -a fedi 23,24,25,26,27,28 Wind
 did -a fedi 23,24,25,26,27,28 Light
 did -a fedi 23,24,25,26,27,28 Thunder
 did -a fedi 23,24,25,26,27,28 Dark
 did -a fedi 23,24,25,26,27,28 Ice
 did -a fedi 23,24,25,26,27,28 (no support)

;Adding A/B/C to the combo boxes
 did -a fedi 31,32,33,34,35 A
 did -a fedi 31,32,33,34,35 B
 did -a fedi 31,32,33,34,35 C
 did -a fedi 31,32,33,34,35 -
}
alias supportcalc {
;Calculating support bonuses

;Defining the unit's affinity as %unit.aff
 set %unit.aff $did(fedi,23)

;Adding bonuses, seperated by rows

;Defining supportlevel for supporting unit #1
 var %suplevel.1 $supportlevel($did(fedi,31))

 did -o fedi 37 1 $calc( ( ( $affb.atk( %unit.aff ) + $affb.atk( $did(fedi,24) ) ) / 2 ) * %suplevel.1 )
 did -o fedi 43 1 $calc( ( ( $affb.def( %unit.aff ) + $affb.def( $did(fedi,24) ) ) / 2 ) * %suplevel.1 )
 did -o fedi 49 1 $calc( ( ( $affb.hit( %unit.aff ) + $affb.hit( $did(fedi,24) ) ) / 2 ) * %suplevel.1 )
 did -o fedi 55 1 $calc( ( ( $affb.avo( %unit.aff ) + $affb.avo( $did(fedi,24) ) ) / 2 ) * %suplevel.1 )
 did -o fedi 61 1 $calc( ( ( $affb.crt( %unit.aff ) + $affb.crt( $did(fedi,24) ) ) / 2 ) * %suplevel.1 )
 did -o fedi 67 1 $calc( ( ( $affb.cev( %unit.aff ) + $affb.cev( $did(fedi,24) ) ) / 2 ) * %suplevel.1 )

;Defining supportlevel for supporting unit #2
 var %suplevel.1 $supportlevel($did(fedi,32))

 did -o fedi 38 1 $calc( ( ( $affb.atk( %unit.aff ) + $affb.atk( $did(fedi,25) ) ) / 2 ) * %suplevel.1 )
 did -o fedi 44 1 $calc( ( ( $affb.def( %unit.aff ) + $affb.def( $did(fedi,25) ) ) / 2 ) * %suplevel.1 )
 did -o fedi 50 1 $calc( ( ( $affb.hit( %unit.aff ) + $affb.hit( $did(fedi,25) ) ) / 2 ) * %suplevel.1 )
 did -o fedi 56 1 $calc( ( ( $affb.avo( %unit.aff ) + $affb.avo( $did(fedi,25) ) ) / 2 ) * %suplevel.1 )
 did -o fedi 62 1 $calc( ( ( $affb.crt( %unit.aff ) + $affb.crt( $did(fedi,25) ) ) / 2 ) * %suplevel.1 )
 did -o fedi 68 1 $calc( ( ( $affb.cev( %unit.aff ) + $affb.cev( $did(fedi,25) ) ) / 2 ) * %suplevel.1 )

;Defining supportlevel for supporting unit #3
 var %suplevel.1 $supportlevel($did(fedi,33))

 did -o fedi 39 1 $calc( ( ( $affb.atk( %unit.aff ) + $affb.atk( $did(fedi,26) ) ) / 2 ) * %suplevel.1 )
 did -o fedi 45 1 $calc( ( ( $affb.def( %unit.aff ) + $affb.def( $did(fedi,26) ) ) / 2 ) * %suplevel.1 )
 did -o fedi 51 1 $calc( ( ( $affb.hit( %unit.aff ) + $affb.hit( $did(fedi,26) ) ) / 2 ) * %suplevel.1 )
 did -o fedi 57 1 $calc( ( ( $affb.avo( %unit.aff ) + $affb.avo( $did(fedi,26) ) ) / 2 ) * %suplevel.1 )
 did -o fedi 63 1 $calc( ( ( $affb.crt( %unit.aff ) + $affb.crt( $did(fedi,26) ) ) / 2 ) * %suplevel.1 )
 did -o fedi 69 1 $calc( ( ( $affb.cev( %unit.aff ) + $affb.cev( $did(fedi,26) ) ) / 2 ) * %suplevel.1 )

;Defining supportlevel for supporting unit #4
 var %suplevel.1 $supportlevel($did(fedi,34))

 did -o fedi 40 1 $calc( ( ( $affb.atk( %unit.aff ) + $affb.atk( $did(fedi,27) ) ) / 2 ) * %suplevel.1 )
 did -o fedi 46 1 $calc( ( ( $affb.def( %unit.aff ) + $affb.def( $did(fedi,27) ) ) / 2 ) * %suplevel.1 )
 did -o fedi 52 1 $calc( ( ( $affb.hit( %unit.aff ) + $affb.hit( $did(fedi,27) ) ) / 2 ) * %suplevel.1 )
 did -o fedi 58 1 $calc( ( ( $affb.avo( %unit.aff ) + $affb.avo( $did(fedi,27) ) ) / 2 ) * %suplevel.1 )
 did -o fedi 64 1 $calc( ( ( $affb.crt( %unit.aff ) + $affb.crt( $did(fedi,27) ) ) / 2 ) * %suplevel.1 )
 did -o fedi 70 1 $calc( ( ( $affb.cev( %unit.aff ) + $affb.cev( $did(fedi,27) ) ) / 2 ) * %suplevel.1 )

;Defining supportlevel for supporting unit #5
 var %suplevel.1 $supportlevel($did(fedi,35))

 did -o fedi 41 1 $calc( ( ( $affb.atk( %unit.aff ) + $affb.atk( $did(fedi,28) ) ) / 2 ) * %suplevel.1 )
 did -o fedi 47 1 $calc( ( ( $affb.def( %unit.aff ) + $affb.def( $did(fedi,28) ) ) / 2 ) * %suplevel.1 )
 did -o fedi 53 1 $calc( ( ( $affb.hit( %unit.aff ) + $affb.hit( $did(fedi,28) ) ) / 2 ) * %suplevel.1 )
 did -o fedi 59 1 $calc( ( ( $affb.avo( %unit.aff ) + $affb.avo( $did(fedi,28) ) ) / 2 ) * %suplevel.1 )
 did -o fedi 65 1 $calc( ( ( $affb.crt( %unit.aff ) + $affb.crt( $did(fedi,28) ) ) / 2 ) * %suplevel.1 )
 did -o fedi 71 1 $calc( ( ( $affb.cev( %unit.aff ) + $affb.cev( $did(fedi,28) ) ) / 2 ) * %suplevel.1 )

;Adding up the support bonuses

 did -o fedi 91 1 $calc( $did(fedi,37) + $did(fedi,38) + $did(fedi,39) + $did(fedi,40) + $did(fedi,41) )
 did -o fedi 92 1 $calc( $did(fedi,43) + $did(fedi,44) + $did(fedi,45) + $did(fedi,46) + $did(fedi,47) )
 did -o fedi 93 1 $calc( $did(fedi,49) + $did(fedi,50) + $did(fedi,51) + $did(fedi,52) + $did(fedi,53) )
 did -o fedi 94 1 $calc( $did(fedi,55) + $did(fedi,56) + $did(fedi,57) + $did(fedi,58) + $did(fedi,59) )
 did -o fedi 95 1 $calc( $did(fedi,61) + $did(fedi,62) + $did(fedi,63) + $did(fedi,64) + $did(fedi,65) )
 did -o fedi 96 1 $calc( $did(fedi,67) + $did(fedi,68) + $did(fedi,69) + $did(fedi,70) + $did(fedi,71) )
}

;Identifiers that check if an affinity gives a certain boost
alias affb.atk {
 if ( $1 == Fire ) { return 1 }
 if ( $1 == Anima ) { return 1 }
 if ( $1 == Wind ) { return 1 }
 if ( $1 == Light ) { return 1 }
 else { return 0 }
}
alias affb.def {
 if ( $1 == Thunder ) { return 1 }
 if ( $1 == Anima ) { return 1 }
 if ( $1 == Ice ) { return 1 }
 if ( $1 == Light ) { return 1 }
 else { return 0 }
}
alias affb.hit {
 if ( $1 == Thunder ) { return 0 }
 if ( $1 == Anima ) { return 0 }
 else { return 5 }
}
alias affb.avo {
 if ( $1 == Wind ) { return 0 }
 if ( $1 == Light ) { return 0 }
 else { return 5 }
}
alias affb.crt {
 if ( $1 == Ice ) { return 0 }
 if ( $1 == Anima ) { return 0 }
 else { return 5 }
}
alias affb.cev {
 if ( $1 == Light ) { return 0 }
 if ( $1 == Fire ) { return 0 }
 else { return 5 }
}

alias supportlevel {
 if ( $1 == A ) { return 3 }
 if ( $1 == B ) { return 2 }
 if ( $1 == C ) { return 1 }
 if ( $1 == - ) { return 0 }
}
alias goforit {
 supportcalc

;Final Box
;[Character] with [Weapon]
;Offensively: atk, AS, hit, crt
;Defensively: avo, HP, def, res, crt eva

;Atk
;Atk = Pow + Supports + Mt
 var %final.atk $calc( $did(fedi,15) + $did(fedi,91) + $did(fedi,78) )

;AS
;if Con > Wt, AS = Spd
;if Con < Wt, AS = Spd - (Con-Wt)

;Check for AS loss
 var %coner $calc( $did(fedi,21) - $did(fedi,81) )
 if ( %coner > 0 ) { var %asloss 0 }
 else { var %asloss %coner }

;Actual calculating the AS
 var %final.as $calc( $did(fedi,17) + %asloss )

;Hit
;Hit = (2 * Skl) + (0.5 * Luk) + Weapon Acc + Supports
 var %final.hit $calc( (2 * $did(fedi,16) ) + ( 0.5 * $did(fedi,20) ) + $did(fedi,79) + $did(fedi,93) )

;Crt
;Crt = (0.5 * Skl) + Weapon Crt + Supports (+Class Bonus)
 var %final.crt $calc( 0.5 * $did(fedi,16) + $did(fedi,80) + $did(fedi,95) )

;Avo
;Avo = (2 * AS) + Luk + Supports
 var %final.avo $calc( ( 2 * %final.as ) + $did(fedi,20) + $did(fedi,94) )

;Def
;Actual Def = Def + Supports
 var %final.def $calc( $did(fedi,18) + $did(fedi,92) )

;Res
;Actual Res = Res + Supports
 var %final.res $calc( $did(fedi,19) + $did(fedi,92) )

;Crt Avo
;Crt Avo = Luk + Supports
 var %final.crtavo $calc( $did(fedi,20) + $did(fedi,96) )

;Final
 did -o fedi 82 1 $did(fedi,5) using $did(fedi,77)
 did -o fedi 82 2 Offensively: %final.atk Atk, %final.as AS, %final.hit Hit, %final.crt Crt
 did -o fedi 82 3 Defensively: %final.avo Avoid, $did(fedi,14) HP, %final.def Def, %final.res Res, %final.crtavo Crt Avo
}
Offline Profile Quote Post Goto Top
 
Psiwri
Member Avatar
Too Many Words
Veteran
Add an RNG generator and it's golden.
Posted Image
Please support my efforts in creating writing~
Offline Profile Quote Post Goto Top
 
Mekkah

FEFFer
An RNG generator is easy to make. Hell, if you just type //echo -a $rand(1,100) in mIRC you get a random number between 0 and 100. Unless you meant something like a situation sketcher between two units, such as a PC unit and a generic enemy. Or even a calculator for average stats.

But that's an assload of work I don't feel like doing right now. If anything I'd build in a save feature first (so you can save things like Killer Lance!Kent, 20/8, A Sain, B Fiora).
Offline Profile Quote Post Goto Top
 
Psiwri
Member Avatar
Too Many Words
Veteran
I mean a plain old RNG generator.

I made an old, very basic stat calculator with a button that would generate 10 RNs a click, if you add that then mine will be 100% obsolete. :D
Posted Image
Please support my efforts in creating writing~
Offline Profile Quote Post Goto Top
 
Mekkah

FEFFer
I didn't feel like building a new dialog so here's a command-controled one:

Code:
 
alias start {
 set %howmany $?="Generate how many RNs?"
 set %range $?="Generate numbers between 0 and?"
}

alias randno {
 var %x 0
 while ( %x < %howmany ) {
   inc %x
   echo -a $rand(0,%range)
 }
}


Implement in Remote, then type /start for configuration, then for every time you want to generate some type /randno .
Offline Profile Quote Post Goto Top
 
Super Saiyan SolidSense
Member Avatar

FEFFer
Looks good. I still find it easier to do it the traditional way since I've done it that way so many times that the formulas are ingrained in my head.
this is the best Brawl match ever....EVER
Offline Profile Quote Post Goto Top
 
Big Boss
Member Avatar

FEFFer
This looks petty sexy. Good job
Posted Image
^^by comatose from NationalSigLeague^^

Kratos/Jeigan
Offline Profile Quote Post Goto Top
 
Reikken
Member Avatar

FEFFer
Looking at the code, I don't think so, but just to make sure...
Does it have character or weapon stats in there, or is the weapon/char name just for the display, and you have to type the stats in yourself?
I would check myself, but I don't feel like getting mIRC.
NP: Wind Waker, Clannad, Ever17, Shoddy Battle, Brawl (Wi-Fi)
Offline Profile Quote Post Goto Top
 
Mekkah

FEFFer
It doesn't have any character or weapon data saved, though it does have the affinity bonuses. I plan to make a feature to save weapon and character data though so you don't have to put in the same stats over and over again.
Offline Profile Quote Post Goto Top
 
Reikken
Member Avatar

FEFFer
Ah. Well then, as it is, I like mine better, and not just because I don't have mIRC. Because copypasta is easier than typing.
Except rpgdl has those annoying ±#s in between each stat that I have to go in and remove instead of just c/p-ing.
Though..hmm... I could probably change it to ignore any numbers that follow a '±'... Why didn't I think of that before? It seems typing this out has proven beneficial to me.
NP: Wind Waker, Clannad, Ever17, Shoddy Battle, Brawl (Wi-Fi)
Offline Profile Quote Post Goto Top
 
Mekkah

FEFFer
In that case I'm glad I've been of service. Somehow.

Though I still like mine because it looks pretty.
Offline Profile Quote Post Goto Top
 
1 user reading this topic (1 Guest and 0 Anonymous)
« Previous Topic · Suggestions/Questions · Next Topic »
Add Reply


Affiliates
Fire Emblem Planet Global Trade Station Plus Emblem of the Zodiac Photobucket Image Hosting Fire Emblem Spritez Serenes Forest
Topsites
Final Fantasy Skies Topsites
Fire Emblem Fusion Skin, © Cubic and SwordsAreShiney.