Sign in to follow this  
mrjnumber1

various status effects off from officials, and info from aegis

Recommended Posts


emulating aegis status effects is for sure quite a task.. there are so many bugs and pitfalls that are hard to work around, i am here to share information with devs/community.


hopefully, https://github.com/rathena/rathena/pull/1685 can be updated
i wanted to add the following 
in aegis the status config has different special properties but a lot are hardcoded. luckily one thing that's not is what's removed by certain skills (almost..)
https://paste2.org/fFA7ck03
information i dug in regards to status_change_clear. some of the uses are weird, such as how the tarot card SCC is the same as trickdead's.. and that gospel instead of clearing with dispel or debuffs, it uses the trickdead dispel. currently we have this ugly status_change_clear_buffs flags that don't match at all - but it'd be so easy to make it match!

(note that this info is from old zone so it lacks info about vanishing buster and lux anima rune.)

another issue that has come up and is unfortunately not handled properly on our side - atkPercentInfo defPercentInfo, mDefPercentInfo matkPercentInfo. on aegis, it's another stat that players have that's a bit weird.

basically it's stored as a std::map indexed by the skill id causing it, containing time left, and the actual value (in the case of curse, it'd be -25 for atkPercentInfo). a player can be tarot carded to have lowered atkPercentInfo, say -25. It can be repeated with the value of -50 with another card. since it'll find tarot card with the -25 in it before, it'll overwrite (based on the highest absolute value between the 2). but if a person receives PA_GOSPEL, whcih will SetAtkPercentInfo to -50, it adds the new entry for PA_GOSPEL an the timer for the tarot card is still ticking. 

it appears to use the summation of these values. in renewal, it operates on the status m/def/m/atk, but in pre-re i'd assume it's just all at once. the difference is significant because certain skills, such as MO_EXTREMITYFIST, ignore AtkPercentInfo, which makes things like SC_CURSE or SC_PROVOKE not work on it. currently SC_INCATKRATE is used for a similar purpose, but the fact that it doesn't store all the different values and looks ugly with negatives, it'd be good to make progress on that.. ahhh!

the following are known to modify AtkPercentInfo:

  • LK_CONCENTRATION (5*skLevel)
  • SC_CURSE (-25)
  • SM_PROVOKE(5-32)/SELFPROVOKE(32)/MER_PROVOKE(32) 
  • PA_GOSPEL (varies)
  • LK_JOINTBEAT (-25)
  • SN_SIGHT (25)
  • CG_TAROTCARD (varieS)
  • EL_WATERBARRIER (-3)
  • SC_INERVATION (-30/-40/-50)
  • MH_EQC (skLevel*5)
  • MH_VOLCANIC_ASH (-50)
  • RG_STRIPWEAPON (-10 against mobs)
  • SL_SKE (300)
  • GD_GUARDUP (2*skLevel+8)
  • NPC_INVINCIBLE (100)
  • NPC_POWERUP (200)
  • WS_MELTDOWN (-25, on mobs)
  • RK_STONEHARDSKIN (-25 on mobs)
  • HAMI_BLOODLUST (10*skLevel+2)
  • HFLI_FLEET (5*skLevel+1)

known to use DefPercentInfo:

  • Heavy Poison (-25)
  • LK_CONCENTRATION (-5*skLevel)
  • LK_JOINTBEAT (-50 or -25, depends)
  • BD_ETERNALCHAOS (0?)
  • CG_TAROTCARD (-20 on the one card)
  • LG_EARTHDRIVE (-25)
  • NC_ANALYZE (14/28/42)
  • NC_NEUTRALBARRIER (15/20/25)
  • WL_MARSHOFABYSS (either 0 or tarJOBLEVEL / 2 - tarINT / 10 - 10)
  • frost misty or "freezing" (-10 on NPC type, -30 on players)
  • LG_FORCEOFVANGUARD (sorry im lazy)
  • MI_ECHOSONG (6*skLevel+jLevel/4+WM_LESSON level)
  • WM_SATURDAY_NIGHT_FEVER (-20/-30/-40/-50/-60)
  • MH_NEEDLE_OF_PARALYZE (-5*skLevel)
  • MH_EQC (-5*skLevel)
  • RG_STRIPSHIELD (on mobs, -15)
  • SL_SKE (-50)
  • SM_PROVOKE/SELFPROVOKE/MER_PROVOKE
  • EL_WATERBARRIER (30)

...i can dig more up later! i've work to attend to Q_Q

 

some statuses don't get properly cancelled in pc_checkallowskill by gear switching, these are: SC_LKCONCENTRATION, tension relax, max overthrust, exeed break. attention concentrate should recalculate when a person changes gears, but i'm not sure if that's handled..


oh another thing, quagmire should removes SC_LOUD. i've checked in the code, and it's even noted on irowiki for what that's worth.

 

if you have anything to add about status effects with missing info, please add them here and we can work on a pr to update sc_config and fix these bugs!

  • Like 1

Share this post


Link to post
Share on other sites

Interesting. So the rune skill that casts Refresh removes a little more then what we knew.

Share this post


Link to post
Share on other sites

more info. for whatever reason, wand of hermode, unlike other status clearings, uses a hardcoded global array to determine what statuses to clear. why? well, i dont know. it may have been used before for other things, but this is what buffs it clears.

 

.data:007AFA30 00 00                                   dw EFST_PROVOKE
.data:007AFA32 02 00                                   dw EFST_TWOHANDQUICKEN
.data:007AFA34 06 00                                   dw EFST_ENCHANTPOISON
.data:007AFA36 07 00                                   dw EFST_POISONREACT
.data:007AFA38 08 00                                   dw EFST_QUAGMIRE
.data:007AFA3A 09 00                                   dw EFST_ANGELUS
.data:007AFA3C 0A 00                                   dw EFST_BLESSING
.data:007AFA3E 0C 00                                   dw EFST_INC_AGI
.data:007AFA40 0D 00                                   dw EFST_DEC_AGI
.data:007AFA42 0E 00                                   dw EFST_SLOWPOISON
.data:007AFA44 0F 00                                   dw EFST_IMPOSITIO
.data:007AFA46 10 00                                   dw EFST_SUFFRAGIUM
.data:007AFA48 11 00                                   dw EFST_ASPERSIO
.data:007AFA4A 12 00                                   dw EFST_BENEDICTIO
.data:007AFA4C 13 00                                   dw EFST_KYRIE
.data:007AFA4E 31 00                                   dw EFST_BARRIER
.data:007AFA50 14 00                                   dw EFST_MAGNIFICAT
.data:007AFA52 15 00                                   dw EFST_GLORIA
.data:007AFA54 16 00                                   dw EFST_LEXAETERNA
.data:007AFA56 17 00                                   dw EFST_ADRENALINE
.data:007AFA58 18 00                                   dw EFST_WEAPONPERFECT
.data:007AFA5A 19 00                                   dw EFST_OVERTHRUST
.data:007AFA5C 1A 00                                   dw EFST_MAXIMIZE
.data:007AFA5E 1D 00                                   dw EFST_TRICKDEAD
.data:007AFA60 1E 00                                   dw EFST_SHOUT
.data:007AFA62 1F 00                                   dw EFST_ENERGYCOAT
.data:007AFA64 25 00                                   dw EFST_ATTHASTE_POTION1
.data:007AFA66 26 00                                   dw EFST_ATTHASTE_POTION2
.data:007AFA68 27 00                                   dw EFST_ATTHASTE_POTION3
.data:007AFA6A 29 00                                   dw EFST_MOVHASTE_POTION
.data:007AFA6C 03 00                                   dw EFST_CONCENTRATION
.data:007AFA6E 3A 00                                   dw EFST_AUTOGUARD
.data:007AFA70 3B 00                                   dw EFST_REFLECTSHIELD
.data:007AFA72 3C 00                                   dw EFST_DEVOTION
.data:007AFA74 3D 00                                   dw EFST_PROVIDENCE
.data:007AFA76 3E 00                                   dw EFST_DEFENDER
.data:007AFA78 3F 00                                   dw EFST_MAGICROD
.data:007AFA7A 40 00                                   dw EFST_WEAPONPROPERTY
.data:007AFA7C 42 00                                   dw EFST_SPECIALZONE
.data:007AFA7E 44 00                                   dw EFST_SPEARQUICKEN
.data:007AFA80 43 00                                   dw EFST_MASK
.data:007AFA82 55 00                                   dw EFST_BLADESTOP
.data:007AFA84 56 00                                   dw EFST_EXPLOSIONSPIRITS
.data:007AFA86 57 00                                   dw EFST_STEELBODY
.data:007AFA88 5F 00                                   dw EFST_STOP
.data:007AFA8A 61 00                                   dw EFST_PROPERTYUNDEAD
.data:007AFA8C 66 00                                   dw EFST_STATUSONE
.data:007AFA8E 67 00                                   dw EFST_AURABLADE
.data:007AFA90 68 00                                   dw EFST_PARRYING
.data:007AFA92 69 00                                   dw EFST_LKCONCENTRATION
.data:007AFA94 6A 00                                   dw EFST_TENSIONRELAX
.data:007AFA96 6B 00                                   dw EFST_BERSERK
.data:007AFA98 6C 00                                   dw EFST_SACRIFICE
.data:007AFA9A 6D 00                                   dw EFST_GOSPEL
.data:007AFA9C 6E 00                                   dw EFST_ASSUMPTIO
.data:007AFA9E 6F 00                                   dw EFST_BASILICA
.data:007AFAA0 70 00                                   dw EFST_GROUNDMAGIC
.data:007AFAA2 71 00                                   dw EFST_MAGICPOWER
.data:007AFAA4 7C 00                                   dw EFST_BLOODING
.data:007AFAA6 7D 00                                   dw EFST_JOINTBEAT
.data:007AFAA8 7E 00                                   dw EFST_MINDBREAKER
.data:007AFAAA 7F 00                                   dw EFST_MEMORIZE
.data:007AFAAC 80 00                                   dw EFST_FOGWALL
.data:007AFAAE B5 00                                   dw EFST_PRESERVE
.data:007AFAB0 B6 00                                   dw EFST_CHASEWALK2
.data:007AFAB2 96 00                                   dw EFST_PLUSATTACKPOWER
.data:007AFAB4 97 00                                   dw EFST_PLUSMAGICPOWER
.data:007AFAB6 36 00                                   dw EFST_PROTECTWEAPON
.data:007AFAB8 37 00                                   dw EFST_PROTECTSHIELD
.data:007AFABA 38 00                                   dw EFST_PROTECTARMOR
.data:007AFABC 39 00                                   dw EFST_PROTECTHELM
.data:007AFABE B9 00                                   dw EFST_MOVESLOW_POTION
.data:007AFAC0 BA 00                                   dw EFST_DOUBLECASTING
.data:007AFAC2 BB 00                                   dw EFST_GRAVITATION
.data:007AFAC4 BC 00                                   dw EFST_OVERTHRUSTMAX
.data:007AFAC6 BF 00                                   dw EFST_TAROTCARD
.data:007AFAC8 85 00                                   dw EFST_RUN
.data:007AFACA 91 00                                   dw EFST_STRUP
.data:007AFACC 95 00                                   dw EFST_SOULLINK
.data:007AFACE 99 00                                   dw EFST_KAITE
.data:007AFAD0 A1 00                                   dw EFST_ONEHANDQUICKEN
.data:007AFAD2 93 00                                   dw EFST_ADRENALINE2
.data:007AFAD4 9D 00                                   dw EFST_KAAHI
.data:007AFAD6 9E 00                                   dw EFST_KAUPE
.data:007AFAD8 92 00                                   dw EFST_PROPERTYDARK
.data:007AFADA 94 00                                   dw EFST_PROPERTYTELEKINESIS
.data:007AFADC 32 00                                   dw EFST_NOEQUIPWEAPON
.data:007AFADE 33 00                                   dw EFST_NOEQUIPSHIELD
.data:007AFAE0 34 00                                   dw EFST_NOEQUIPARMOR
.data:007AFAE2 35 00                                   dw EFST_NOEQUIPHELM
.data:007AFAE4 74 00                                   dw EFST_WINDWALK
.data:007AFAE6 73 00                                   dw EFST_TRUESIGHT
.data:007AFAE8 CF 00                                   dw EFST_NJ_BUNSINJYUTSU
.data:007AFAEA CE 00                                   dw EFST_NJ_UTSUSEMI
.data:007AFAEC D5 00                                   dw EFST_MENTAL
.data:007AFAEE D6 00                                   dw EFST_EXPMEMORY
.data:007AFAF0 D7 00                                   dw EFST_PERFORMANCE
.data:007AFAF2 D8 00                                   dw EFST_GAIN
.data:007AFAF4 DA 00                                   dw EFST_DRIFT
.data:007AFAF6 DB 00                                   dw EFST_WALLSHIFT
.data:007AFAF8 DC 00                                   dw EFST_REINCARNATION
.data:007AFAFA E8 00                                   dw EFST_DAURA
.data:007AFAFC E3 00                                   dw EFST_DENERGY
.data:007AFAFE E9 00                                   dw EFST_DFREEZER
.data:007AFB00 EA 00                                   dw EFST_DPUNISH
.data:007AFB02 EB 00                                   dw EFST_DBARRIER
.data:007AFB04 EC 00                                   dw EFST_DWARNING
.data:007AFB06 EF 00                                   dw EFST_DACCEL
.data:007AFB08 F0 00                                   dw EFST_DBLOCK

 

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this