User blog:Ginrikuzuma/Update and a guide to skills

First a quick disclaimer.

'''I have never written a side-story before so chances are the way to add in new skills for side stories is different. What you are about to see in the second section of this blagokabob thing...stuff. . . . Is only what I know I have to do far as Full patch mods (like WOTG, or Mine) if you really don't care and are just here for the second section skip to it I guess >.>; '''

PLEASE DO NOTE THAT I AM TRYING TO BE AS DETAILED YET AS SHORT AS POSSIBLE SO DON'T EXPECT A 4 STEP (INCLUDING PROFIT) EXPLANATION.

Update...
BUT first an update cause yeah why not lol.

Since reports have been coming in slow (and I know I'm not that good when it comes to self debugging (I'm pretty sure there is at least 1-2 more bugs in there somewhere... ) I took the liberty to work on continuing to add more skills and attacks to Tamamo's list (what originally was, and I will still add it as a post-end game patch bonus well 1 of 2 upcoming bonuses anyways the second one I plan to add as I come close to finishing Sealed [although actually making it will have to wait till Chapter 3 comes out and I have played through it... since I have it set 1-3 years after the end of Chapter 3 and thus I don't want to start working on it and stuff I figure will happen actually don't happen or stuff.... )

Skills
I seen already perhaps 2 people in comments here and there (might be the same person... don't recall ) and I'm sure those who want to make their own mods maybe also styled as a full-repatch instead of a story (and if Covar has any plans for making his editor have that sort of option)

Skills. I honestly Don't know how I'm gonna organize this so chances are I'll publish this within a few minutes  and just edit the blag as I update it and rearrange crap. I'll probably do this first with screenshots and it doesn't end up being too long (and my voice not shitting on me) of a pointless rant, I might also make a video and upload to youtube...

So I'll jump straight to it and go straight into the code.

You are going to need a few things (aside from the obvious like an idea on the name, etc. etc. ) and I'll use my mod (Sealed) as the example here since I will be adding Tamamo as a playable character here in my mod in Chapter 6 (MAYBE chapter 5 but WE, [as in me and the person I'm letting write chapter 5 for me] haven't even discussed that option since we are focusing on the other branch of Chapter 5)

so lets jump to the skills. In my case I am using Notepad++ since it shows up in a similar environment like Visual Studios and Netbeans (where I am used to programming in both) so I'm going to quickly Find (Ctrl + F) and type in bbb[skillname] since that is one of the two ways skills show up instead of having to look for the actual label.

I"m going to type bbbSylph before I get into the code I'm going to explain some of the stuff on the screenshot...

near the top you see 4 tabs (ignore the last one that is a copy of a previous copy of Sealed where I accidently had earlier erased something but thankfully didn't overwrite the script so I just grabbed it from there and put it into my normal copy)

I got 2 copies of Rouge's (I know Rogue but w/e I tend to alternate the spelling...) pre-Cecil (meaning not modified for Cecil) why 2 copies? well so I can have look at 2 different sections of the code when I need references or things to look at without jumping (OR memorizing the line number) through the thousands of codes of lines since its over 100 K lines of code

the "Mine.txt" is where I work on sealed and that is where we are now then lets jump to the actual screenshot...

It highlighted what I was looking for bbbSylph was found on bbbbbbSylph. near the top of this section you will see a label saying *cmd_skill2 that is because this is the second section of the skills (the spirits)

SO from here I am going to scroll up and explain the attack skills we are going to focus on the first skill on the list Demon Decapitation

I'm going to paste both of its lines here if %skill01>0 && %mp>1 lsp 601,":s/20,20,0;#FFFFFF#FF4444Demon Decapitation@- 2 ",70,418:spbtn 601,21 if %skill01>0 && %mp<2 lsp 601,":s/20,20,0;#bbbbbbDemon Decapitation@- 2 ",70,418 so here Demon Decapitation will show up depending on different continues

IF your skill is greater than (but not including) 0 it is bound to show up in both cases. && is code language for AND meaning that all of the conditions (rules if you want to call them that) have to be true. So here we will go with the first one, If you skill is greater than 0 AND you got more than 1 MP point (your yellow dots) it will lsp (load sprite)

":s/20,20,0;" this particular code has to deal with text sprites which personally I don't know exactly what it does but whatever copy it as it is the next part is the important part


 * 1) FFFFFF is hexadecimal code for White so if you think back to the game if you DO got 2 or more SP and your skill is greater than 0 you will (first of all) be able to see this skill option BUT you will also be able to see it in white text. Now #FF4444 is hexadecimal for red, so when you hover your mouse over the text, it will change red meaning.

Now for the rest of that line: ,70,418:spbtn 601,21 the 70, 418. is the coordinate plane location of the text sprite (X and Y ) and then the colon   here means that at the same time it is loading the sprite it will also make a sprite button (a clickable picture in otherwords) so sprite # 601 (which is our text) will have a value of #21

we will get to that later but first lets look at the second code of line.

Basically its the same thing except you don't got the required MP points so you will instead have it colored #bbbbbb which is grey AND its not a clickable sprite so you can't choose it.

Now lets say we do meet the requirements and we do choose it what then? Well lets jump down the code

Lets go back to find (Ctrl + F) and type in the label for the actions. type in "*common_skill" and you should see something similar (not exactly cause this is my mod not the rogue's patch so you won't have Final daze in there >.> ....) to this...

our clickable button went into a variable called "cmd1" (I'm skipping the behind the scenes stuff since you can try to figure that out its not too hard if you understand what you are reading)

so when we clicked on it cmd1 became 21 since we clicked Demon Decapitation and we met the conditions. So far as the picture goes we meet the condition where if %cmd1=21 goto *skill1 here its very basic. If %cmd1 equals 21 goto label *skill1 so ok lets go there....

There you will see aloooot of crap so I'll break it down...yo? lol XD

disclaimer, I got no idea what before_action is for...

Here you will see that a variable called %before_action has been set to 21

(one thing I will say however is that each individual skill has and action [guard,wait, attack,etc.] has its own number so when making a new skill use a number that isn't taken... )

next the game will randomize %ransu with a number between 1 and 3

from there depending on the number will depend on what dialogue will be chosen (this chosen dialogue will be stored inside $sel1 )

Also side note: for those who don't know anything on programming all those characters inside the quotation marks is called a string (i might drop the work here and there so I don't want to lose people...)

so yeah anyone that gets a 1 to a 3 will get one of those 3 dialogues so that is what will be placed. but what if this is a side story? well from what little I understand of side stories, unless otherwise specified, the "player" is 99 (player 0 is Luka, player 1 is Alice [look at 1st Chimera Plant in chapter 1 and the Nabe in chapter 2] )

in side stories player 99 is the black anonymous icon so if you are in a side story it will overwrite (replace) what is inside of $sel1 with what is in there with whatever you have in there again I don't know too much on side stories...

now then afterwards it will go to name $ori_name

ori_name is the name of the Hero (I'm assuming in side stories you can change the $ori_name... i haven't played any [if we even got any...] side story that has a battle that isn't someone other than Luka) which in the game itself by how it is written (elsewhere obviously) it is as Luka.

so in the small tab it will say Luka

and then eng $sel1 is a function (which I'm assuming Rogue himself wrote) which keeps track of how long the text is inside of a variable (in this case $sel1) and figures out hte spacing etc. and puts it into $sel6

then you get $sel6\ which displays what is inside that string

afterwards it blacks out the name by putting name "" (2 sets of quotation marks not 4 paraenthesis)

then it substracts 2 MP from what you currently got (since that is how much Demon Decapitation costs to use) as well as go into its subroutine (gosub) to go ahead and actually remove those MP points

it shows the name of the skill and goes into more dialogue eng $ori_name+" jumps in, and slashes at her neck!" which shows up as (assuming $ori_name is equal to Luka)

Luka jumps in, and slashes at her neck! if you want a skill to miss, in the middle of a fight before you use the attack you move the %skill_sub variable to equal to 1 by default it equals to 0 meaning it won't miss.

then it does your sound effect (dwave)  and then displays all the images that go into that attack (which Demon decapitation uses quite a few to seem fluid like a picture)

then it figures out how much damage you are going to do  by adding the base damage (150) and adding it to whatever your 1.5 times your level is

so say you are level 50 and use this skill it will do the math like this

150+(50*1.5)

then it will go into the subroutine to add/subtract enemy HP (there is where the actual damage multipliers come into effects [do you got salamander on? do you blah blah blah ,etc. )

then it goes to attack common end which basically just checks for 2 things (did your attack [in this case a skill] bring their HP to 0? (if so move to that battle's victory) and also check if the enemy had a counter up at the moment (if so it will go to the enemy's counter) otherwise it will take its normal path)

Now i'm going to take a break here and continue afterwards...