Also ich hab die DLLs nun entschlüsselt, da ich aber nicht weiß obs gegen Foren Regeln ist die hier zu posten, poste ich mal nen kleinen Ausschnitt der auch Interessant sein könnte für C# Devs.
Curse kann also Server pakete empfangen und auswerten
Gut dann können wir das bald auch
Code:
int num4 = (int) packet.data[65];
uint index2 = BitConverter.ToUInt32(packet.data, 1);
if (this.GetTeam(index2) != this.PbhbrrdInw)
break;
uint key1 = BitConverter.ToUInt32(packet.data, 12);
string str1 = (string) null;
string str2 = string.Format("{0,8:x8}", (object) index2);
string key2 = string.Format("{0,8:x8}", (object) index2);
if (this.dqmbewWsSf.ContainsKey(index2))
str2 = this.dqmbewWsSf[index2];
if (this.dictionary_5.ContainsKey(index2))
key2 = this.dictionary_5[index2];
Dictionary<uint, object> dictionary = this.dictionary_0["SummonerSpells"];
int num5 = 2;
if (dictionary.ContainsKey(key1))
str1 = (string) dictionary[key1];
else if (this.dictionary_0.ContainsKey(key2))
{
dictionary = this.dictionary_0[key2];
if (dictionary.ContainsKey(key1))
{
str1 = string.Concat((object) "?QWER"[(int) (long) dictionary[key1]]);
num5 = 1;
}
}
if (str1 == null)
break;
InternalLoLTimers.AbilityEventData abilityEventData_0 = new InternalLoLTimers.AbilityEventData();
if (num5 == 1)
{
abilityEventData_0.AbilitySlot = str1;
}
else
{
abilityEventData_0.AbilitySlot = "";
abilityEventData_0.AbilityName = str1;
}
abilityEventData_0.PlayerName = str2;
abilityEventData_0.HeroName = key2;
abilityEventData_0.PlayerSlot = 0;
abilityEventData_0.CooldownTime = BitConverter.ToSingle(packet.data, 78 + num4 * 17);
float float_3 = BitConverter.ToSingle(packet.data, 78 + num4 * 17 + 30);
abilityEventData_0.AbilityType = (float) num5;
DateTime now = DateTime.Now;
double deltaTime = this.GetDeltaTime(now);
TimeSpan timeSpan = now - new DateTime(1970, 1, 1);
abilityEventData_0.Time = this.float_0 + (float) deltaTime;
abilityEventData_0.EpochTime = timeSpan.TotalMilliseconds;
if (num5 == 1)
{
int int_0 = (int) (long) dictionary[key1] - 1;
float float_4 = 0.0f;
if (this.method_4(index2, int_0, abilityEventData_0.Time, 1, abilityEventData_0.CooldownTime, float_3, out float_4))
abilityEventData_0.CooldownTime = float_4;
}
List<uint> list = new List<uint>();
for (int index3 = 0; index3 < num4; ++index3)
list.Add(BitConverter.ToUInt32(packet.data, 66 + index3 * 17));
BaseSingleton<ScriptManager>.get_Instance().QueueEvent("LoLTimers.AbilityUsed", (object) abilityEventData_0);
this.method_7(abilityEventData_0, list.Count > 0 ? list : (List<uint>) null);