Luk and freezing

Muyo

New member
Messages
8
Points
0
On old emulator this do that LUK unfreeze more fast

src/map/status.c

case SC_FREEZE: sc_def = status->mdef*100; sc_def2 = status->luk*10; tick = status->luk>249?0:tick; // luk:250 = unfreeze break;

Now, the new emulator is (src/map/status.c)

case SC_FREEZE: sc_def = st->mdef*100; sc_def2 = st->luk*10 + SCDEF_LVL_DIFF(bl, src, 99, 10); tick_def = 0; //No duration reduction
And if add this "tick = status->luk>249?0:tick;" gives error.

Sorry my english...

How do for not freeze with luk = 250?

Thanks

 
try add

Code:
tick_def = st->luk>249?0:tick_def;
 
try add

tick_def = st->luk>249?0:tick_def;
I try this

case SC_FREEZE: sc_def = st->mdef*100; sc_def2 = st->luk*10 + SCDEF_LVL_DIFF(bl, src, 99, 10); tick_def = 0; //No duration reduction tick_def = st->luk>249?0:tick_def;
but no sucess. Time of unfreeze continue even. More idea?

 
Umm, tick_def is the reduction. In your case, you just set it up to 0
default_biggrin.png
Of course it had no effect. Try it like this:

Code:
case SC_FREEZE:		sc_def = st->mdef*100;		sc_def2 = st->luk*10 + SCDEF_LVL_DIFF(bl, src, 99, 10);		tick_def = (st->luk>249)?10000:0;
 
try add

tick_def = st->luk>249?0:tick_def;
I try this

case SC_FREEZE: sc_def = st->mdef*100; sc_def2 = st->luk*10 + SCDEF_LVL_DIFF(bl, src, 99, 10); tick_def = 0; //No duration reduction tick_def = st->luk>249?0:tick_def;
but no sucess. Time of unfreeze continue even. More idea?
I gave changed line, this mean need remove old "tick_def = 0; //No duration reduction"

 
Umm, tick_def is the reduction. In your case, you just set it up to 0
default_biggrin.png
Of course it had no effect. Try it like this:

case SC_FREEZE: sc_def = st->mdef*100; sc_def2 = st->luk*10 + SCDEF_LVL_DIFF(bl, src, 99, 10); tick_def = (st->luk>249)?10000:0;
I tried this and continue slow.

try add

tick_def = st->luk>249?0:tick_def;
I try this

case SC_FREEZE: sc_def = st->mdef*100; sc_def2 = st->luk*10 + SCDEF_LVL_DIFF(bl, src, 99, 10); tick_def = 0; //No duration reduction tick_def = st->luk>249?0:tick_def;
but no sucess. Time of unfreeze continue even. More idea?
I gave changed line, this mean need remove old "tick_def = 0; //No duration reduction"
Ok, too tried this and no success, slow for unfreeze.

=[ 

More idea?  Please, say "yes".

 
Wait wait wait. According to the code you gave there was no reduction to the freeze time whatsoever, just after 250 luk you were pretty much immune to the status change. Like with curse and 100 vit - status still strikes, but is removed same moment.

Can you clearify what do you want? So that luk would bring linear reduction to freeze time? Or % reduction? How much each point of luck should reduce?

 
Wait wait wait. According to the code you gave there was no reduction to the freeze time whatsoever, just after 250 luk you were pretty much immune to the status change. Like with curse and 100 vit - status still strikes, but is removed same moment.

Can you clearify what do you want? So that luk would bring linear reduction to freeze time? Or % reduction? How much each point of luck should reduce?
Dude, in little words. More luk the player = less time frozen. 
 
Equal the cause of curse with VIT.
 
case SC_FREEZE: sc_def = st->mdef*100; sc_def2 = st->luk*10 + SCDEF_LVL_DIFF(bl, src, 99, 10); tick_def = 0; //No duration reduction tick_def = st->luk>249?0:tick_def;
to this.

case SC_FREEZE: sc_def = status->mdef*100; sc_def2 = status->luk*100/35 + status_get_lv(bl)*10 - status_get_lv(src)*10; tick_def2 = status->luk*10 + status_src->luk*-10; // Caster can increase final duration with luk

or refer to this http://rathena.org/board/topic/99448-about-frozen-and-luk-resistane/

 
Sigh. The example above will give you at least 2 compiling errors.

case SC_FREEZE: sc_def = st->mdef*100; sc_def2 = st->luk*10 + SCDEF_LVL_DIFF(bl, src, 99, 10); tick_def = st->luk*40;
Try this one, should reduce it in % manner. Every 25 luk will reduce duration by additinal 10%.

Like this:

25 luk -> 10% freeze time reduction

50 -> 20%

75 -> 30%

and so on. On 250 you'll reach immunity.

 
Sigh. The example above will give you at least 2 compiling errors.

case SC_FREEZE: sc_def = st->mdef*100; sc_def2 = st->luk*10 + SCDEF_LVL_DIFF(bl, src, 99, 10); tick_def = st->luk*40;
Try this one, should reduce it in % manner. Every 25 luk will reduce duration by additinal 10%.

Like this:

25 luk -> 10% freeze time reduction

50 -> 20%

75 -> 30%

and so on. On 250 you'll reach immunity.
Thanks, love. But... one question. How I can increase or decrease the need for LUK? Can you explain this "equation"? Maybe change of 250 for 300.

(Sorry my english xD)

I LOVE YOU!

 
Last edited by a moderator:
It's pretty simple, first thing you'll need to know is that max for tick_def is 10000 (100%). Out of this and luk that you want immunity on you solve simple equation:

x = 10000 / ChosenLuk;

After that just change this line:

tick_def = st->luk*40;
to

tick_def = st->luk*x;
Where x is the result of equation.

Example: You want immunity on 300 luk, that means

x = 10000 / 300;

x = 34;

(It's for you to decide where to round, up or down. I rounded up. That measn that actual luk you'll need for immunity is 295. If you round it down, then needed luk will be 303)

So the resulting line will be:

Code:
tick_def = st->luk*34;
 
Last edited by a moderator:
It's pretty simple, first thing you'll need to know is that max for tick_def is 10000 (100%). Out of this and luk that you want immunity on you solve simple equation:

x = 10000 / ChosenLuk;

After that just change this line:

tick_def = st->luk*40;
to

tick_def = st->luk*x;
Where x is the result of equation.

Example: You want immunity on 300 luk, that means

x = 10000 / 300;

x = 34;

(It's for you to decide where to round, up or down. I rounded up. That measn that actual luk you'll need for immunity is 295. If you round it down, then needed luk will be 303)

So the resulting line will be:

tick_def = st->luk*34;
Thank you. = ]

 
Back
Top