Register for your free account! | Forgot your password?

You last visited: Today at 18:03

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



Regarding 0xB070

Discussion on Regarding 0xB070 within the SRO PServer Questions & Answers forum part of the SRO Private Server category.

Reply
 
Old   #1
 
painmaker_'s Avatar
 
elite*gold: 0
Join Date: Dec 2021
Posts: 85
Received Thanks: 74
Regarding 0xB070

Hello community
i have spent some time parsing 0xB070 to get anything related to ignore hits but unluckily i am failed, could someone help me, the main goal is to check if the hit is ignore or no, thanks.
painmaker_ is offline  
Old 02/21/2022, 10:19   #2
 
elite*gold: 0
Join Date: Jan 2009
Posts: 314
Received Thanks: 685
Damage value consists of a 32 bit struct. 24 bits are used to represent the damage amount and 8 bits are used to represent a damage flag which tells the game client if the damage was anything special to display something like critical. Keep in mind that this damage value can be found in multiple messages like 0xB071 and 0xB0BC.

Code:
(MSB)                                                                                                                                                  (LSB)
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 | 15 | 14 | 13 | 12 | 11 | 10 | 09 | 08 | 07 | 06 | 05 | 04 | 03 | 02 | 01 |
|              DamageFlag               |                                                     DamageAmount                                                 |
Code:
[Flags]
public enum DamageFlag : byte
{
    Normal = 1,
    Critical = 2,
    Hwan = 4,
    //No sample for 8 yet,
    Effect = 16,
    ArmorIgnored = 32,
}
DaxterSoul is offline  
Thanks
2 Users
Old 02/21/2022, 22:31   #3
 
Hynix_1337's Avatar
 
elite*gold: 0
Join Date: Dec 2015
Posts: 119
Received Thanks: 16
Quote:
Originally Posted by DaxterSoul View Post
Damage value consists of a 32 bit struct. 24 bits are used to represent the damage amount and 8 bits are used to represent a damage flag which tells the game client if the damage was anything special to display something like critical. Keep in mind that this damage value can be found in multiple messages like 0xB071 and 0xB0BC.


(MSB) (LSB)
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 | 15 | 14 | 13 | 12 | 11 | 10 | 09 | 08 | 07 | 06 | 05 | 04 | 03 | 02 | 01 |
| DamageFlag | DamageAmount |
[/code]

[code]
[Flags]
public enum DamageFlag : byte
{
Normal = 1,
Critical = 2,
Hwan = 4,
//No sample for 8 yet,
Effect = 16,
ArmorIgnored = 32,
}
maybe 8 for blocked? like from shield?
Hynix_1337 is offline  
Old 02/21/2022, 23:34   #4
 
elite*gold: 0
Join Date: Jan 2009
Posts: 314
Received Thanks: 685
Quote:
Originally Posted by Hynix_1337 View Post
maybe 8 for blocked? like from shield?
Blocked is a flag in a different value used for knockback and death signaling where no damage is transmitted.
DaxterSoul is offline  
Thanks
1 User
Old 02/22/2022, 19:43   #5
 
painmaker_'s Avatar
 
elite*gold: 0
Join Date: Dec 2021
Posts: 85
Received Thanks: 74
Quote:
Originally Posted by DaxterSoul View Post
Damage value consists of a 32 bit struct. 24 bits are used to represent the damage amount and 8 bits are used to represent a damage flag which tells the game client if the damage was anything special to display something like critical. Keep in mind that this damage value can be found in multiple messages like 0xB071 and 0xB0BC.

Code:
(MSB)                                                                                                                                                  (LSB)
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 | 15 | 14 | 13 | 12 | 11 | 10 | 09 | 08 | 07 | 06 | 05 | 04 | 03 | 02 | 01 |
|              DamageFlag               |                                                     DamageAmount                                                 |
Code:
[Flags]
public enum DamageFlag : byte
{
    Normal = 1,
    Critical = 2,
    Hwan = 4,
    //No sample for 8 yet,
    Effect = 16,
    ArmorIgnored = 32,
}
Hey, i appreciate your efforts, thank you , you helped me and i did it but theres's a note, the correct byte for armorignored was 33 not 32, i am wondering if this is something related to the filter?
painmaker_ is offline  
Old 02/23/2022, 02:45   #6
 
elite*gold: 0
Join Date: Jan 2009
Posts: 314
Received Thanks: 685
Quote:
Originally Posted by painmaker_ View Post
Hey, i appreciate your efforts, thank you , you helped me and i did it but theres's a note, the correct byte for armorignored was 33 not 32, i am wondering if this is something related to the filter?
The enum is marked with the [Flags] attribute which means it'll be handled as a bit field.
Multiple bits can be active at once. You've see this as 33 because Normal (1) and ArmorIgnored (32) are active together. If the attack would create a status effect (16) too it gonna be a 49. So checking
Code:
 
if (damageFlag == 33)
doesn't work correctly in all cases.
Instead you should check
Code:
 
if ((damageFlag & 32) != 0)
to know if the armor ignored bit was set.
DaxterSoul is offline  
Old 02/23/2022, 10:42   #7
 
painmaker_'s Avatar
 
elite*gold: 0
Join Date: Dec 2021
Posts: 85
Received Thanks: 74
Quote:
Originally Posted by DaxterSoul View Post
The enum is marked with the [Flags] attribute which means it'll be handled as a bit field.
Multiple bit can be active at once. You've see this as 33 because Normal (1) and ArmorIgnored (32) are active together that's 33. If the attack would create status effects you might also have a 16 in there becoming a 49 total. So checking
Code:
 
 if (damageFlag == 32)
doesn't work correctly in all cases.
Instead you should check
Code:
 
 if ((damageFlag & 32) != 0)
to know if the armor ignored bit was set.
Thank you bro, solved <3
painmaker_ is offline  
Reply


Similar Threads Similar Threads
Fully Parsed Packets[3015~0xb070]Paid for 300$ now for free
12/13/2018 - SRO Coding Corner - 9 Replies
Hello, today i'll released Fully Parsed Packets paid them for 300$ , parsed by:Isoline* https://prnt.sc/lo8hcc https://prnt.sc/lo8hkp
Packet 0xB070 from S -> C
09/30/2015 - SRO Coding Corner - 2 Replies
Some1 know the complete packet structure? Just found the "start" .. Opcode: 0xB070 Data: 01 02 30 20 D4 00 00 BE 35 8B 03 5D BB 03 00 1E 1E 88 03 01 01 03 1E 1E 88 03 04 02 9D 74 01 00 00 00 00 58 58 89 00 00 00 04 00 00 00 21 06 00 00 DF 29 87 03 04 01 2C 7A 00 00 00 00 00 58 58 6A 00 00 00 05 00 00 00 48 06 00 00 7F 5D 89 0300 01 1E 51 00 00 00 00 00 Analyze: 01 // skill success 02 // skill success



All times are GMT +1. The time now is 18:05.


Powered by vBulletin®
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2025 elitepvpers All Rights Reserved.