Jump to content
  • 0
Sign in to follow this  
Blinzer

reproducing the permanent skill state that eddga card has

Question

so i'm fooling around with skills for my upcoming server and i want to make some cards that grant permanent buffs

 

eddga's card script is as such:

 

OnEquipScript: <" sc_start4 SC_ENDURE,60000,10,0,0,1; ">

OnUnequipScript: <" sc_end SC_ENDURE; ">

 

so i figured to reproduce its undispelability all's i have to do is take this script and give it different sc values

 

through tests it has been revealed to me that the big number 60000 is the time the buff lasts, and the 10 is the level of the effect

 

this is a complete lie because eddga card lasts forever and only uses the potency of the first level of endure(1 mdef instead of 10)

 

i have no clue what the 0 0 and 1 do

 

so to avoid scripting i tried the following:

 

OnEquipScript: <" sc_start4 SC_LKCONCENTRATION,-1,1,0,0,1; ">

OnUnequipScript: <" sc_end SC_LKCONCENTRATION; ">

 

this successfully gives any sc effect and infinite duration, using the first level of the skill but if you try to dispel someone(or die) it still takes it away

 

how do i make it so that the skill will remain no matter what? i also found a bug where i couldn't get rid of the endure component of the skill no matter what i tried to do, but it went away after a while and i can't reproduce it because i don't remember exactly how i managed to do it

Edited by Blinzer

Share this post


Link to post
Share on other sites

4 answers to this question

Recommended Posts

  • 0

That's pretty simple. There's file called sc_config.txt in db folder.

 

// Status Change configuration database//// Structure of Database:// SC_NAME, flag//// flag    1  - SC cannot be removed by death.//         2  - SC cannot be saved.//         4  - SC cannot be reset by dispell.//         8  - SC cannot be reset by clearance.//         16 - SC considered as buff and be removed by Hermode and etc.//         32 - SC considered as debuff and be removed by Gospel and etc.//         64 - SC cannot be reset when MADO Gear is taken off.//        128 - SC cannot be reset by 'sc_end SC_ALL' and status change clear.//Example://SC_ENDURE, 21 //SC_ENDURE: cannot be removed by death and dispell and cosidered as buff. (16 + 4 + 1 = 21)

Share this post


Link to post
Share on other sites
  • 0

 

That's pretty simple. There's file called sc_config.txt in db folder.

 

// Status Change configuration database//// Structure of Database:// SC_NAME, flag//// flag    1  - SC cannot be removed by death.//         2  - SC cannot be saved.//         4  - SC cannot be reset by dispell.//         8  - SC cannot be reset by clearance.//         16 - SC considered as buff and be removed by Hermode and etc.//         32 - SC considered as debuff and be removed by Gospel and etc.//         64 - SC cannot be reset when MADO Gear is taken off.//        128 - SC cannot be reset by 'sc_end SC_ALL' and status change clear.//Example://SC_ENDURE, 21 //SC_ENDURE: cannot be removed by death and dispell and cosidered as buff. (16 + 4 + 1 = 21)

 

i am almost embarassed for wasting your time when i could have done it on my own

 

my apologies

Edited by Blinzer

Share this post


Link to post
Share on other sites
  • 0

upon further inspection, it appears that this also causes the original buff to be undispellable. this is not what i want. is there any way to work around this?

 

inb4 you have to duplicate the sc effects

Edited by Blinzer

Share this post


Link to post
Share on other sites
  • 0

Well if you look at status.c and search for SC_ENDURE, you will see that all of its special item-granted properties are hardcoded. Basically that's why it even uses sc_start4 so it can set val4 which then signalizes if it's an item-granted endure.

 

Like for example here:

	if(sc->data[SC_ENDURE])// It has been confirmed that eddga card grants 1 MDEF, not 0, not 10, but 1.		mdef += (sc->data[SC_ENDURE]->val4 == 0) ? sc->data[SC_ENDURE]->val1 : 1;
It's kind of weird as on official server it will simply grants level 1 endure (with duration 9999 seconds), so why do we grant endure level 10 and then hardcode it so that it's reduced to the effect of level 1 endure? Not sure.

 

Anyway, if you don't want to write your own status change and still want item-granted SC to be undispellable then you will need to change the code for dispell / dead and so on to not only check for the status change but also val4 (or any other free value) and only remove the status change when val4 has a certain value. Quite a lot of work, though. You're better off duplicating the status effects.

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
Sign in to follow this  

×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.