- Özel Başlık (Postbit)
- Software Developer
ÇÖZÜM;
Maalesef döküman bu opcode için hatalı.
Başka bir forumdan aşağıdaki yapıyı buldum. Sorunsuz çalışıyor.
github.com
Filter üzerinde B0710 ve B071 okumak istedim.
SilkroadDoc'dan kontrol ettiğimde;
B0710 Kodu patlatmıyor ancak targetDamage her zaman 0 okunuyor.
B071 ile ilgili bir hata olduğunu düşünmeye başladım. Forumda bu kod için konu açılmış ancak beceremedim.
public uint SkillUID;
public uint EntityDestinationUID;
public byte hasDamage;
public byte hitCount;
public byte targetCount;
public uint TargetUID;
public uint TargetSkillEffectFlag;
public byte TargetSkillDamageFlag;
public uint TargetDamage;
public uint unkUInt01;
public byte Result;
Okuduğum veriler;
SkillUID: 710
EntityDestinationUID: 113711
hasDamage: 1
hitCount: 1
targetCount: 1
TargetUID: 113711
TargetSkillEffectFlag: 1687880064 (Muhtemelen Hatalı)
TargetSkillDamageFlag: 26
TargetDamage: 16384
unkUInt01: Crash...
Bilgili arkadaşların desteklerini bekliyorum. Herkese iyi forumlar.
Maalesef döküman bu opcode için hatalı.
Başka bir forumdan aşağıdaki yapıyı buldum. Sorunsuz çalışıyor.
| // 0xB070 Server_WorldObject_Cast_Start 1 byte isSuccess if (isSuccess == 1 ) { 1 byte unk1 1 byte unk2 4 byte skillTypId 4 byte casterWorldId 4 byte unk3 4 byte targetWorldId 1 byte instantResponse if (instantResponse == 1) { ParseDmg() } else { 1 byte hasDmg ?? --> 1 --> yes ?? } } else { 2 byte ErrorCode } |
| // 0xB071 Server_WorldObject_Cast_End 1 byte isSuccess if (isSuccess == 1) { 4 byte castWorldId 4 byte castTargetWorldId ParseDmg(); } else if (isSuccess == 2) { 2 byte ErrorCode 4 byte castWorldId } ------------------------------------------------------ // ParseDmg 1 byte hasDmg if (hasDmg == 1 ) { 1 byte hitcount 1 byte targetCount for (int i = 0; i < targetCount; i++) { 4 byte targetWorldId for (int ii = 0; ii < hitcount; ii++) { 1 byte effects // bitmask --> ATTACK_STATE_KNOCKBACK = 0x01, ATTACK_STATE_BLOCK = 0x02, ATTACK_STATE_POSITION = 0x04, abort ? --> 0x08 ATTACK_STATE_DEAD = 0x80 1 byte dmgSource // bitmask --> DAMAGE_STATE_NORMAL = 0x01, DAMAGE_STATE_CRIT = 0x02, DAMAGE_STATE_STATUS = 0x10 if ((attackState & 0x0A) != 0x00) // if ATTACK_STATE_BLOCK or abort --> no more data { continue; } 4 byte dmg 1 byte unk4 1 byte unk5 1 byte unk6 } } } |
Silkroad developing documentation. Contribute to DummkopfOfHachtenduden/SilkroadDoc development by creating an account on GitHub.
Filter üzerinde B0710 ve B071 okumak istedim.
SilkroadDoc'dan kontrol ettiğimde;
B0710 Kodu patlatmıyor ancak targetDamage her zaman 0 okunuyor.
B071 ile ilgili bir hata olduğunu düşünmeye başladım. Forumda bu kod için konu açılmış ancak beceremedim.
public uint SkillUID;
public uint EntityDestinationUID;
public byte hasDamage;
public byte hitCount;
public byte targetCount;
public uint TargetUID;
public uint TargetSkillEffectFlag;
public byte TargetSkillDamageFlag;
public uint TargetDamage;
public uint unkUInt01;
public byte Result;
Okuduğum veriler;
SkillUID: 710
EntityDestinationUID: 113711
hasDamage: 1
hitCount: 1
targetCount: 1
TargetUID: 113711
TargetSkillEffectFlag: 1687880064 (Muhtemelen Hatalı)
TargetSkillDamageFlag: 26
TargetDamage: 16384
unkUInt01: Crash...
Bilgili arkadaşların desteklerini bekliyorum. Herkese iyi forumlar.
