THIS IS MY ATTACK HANDLER AGAIN JUST IN CASE YOU COULDENT SEE IT
V
V
V
V
the attack void contains 20 lines 20 nothing complicated dosent need a holly breakpoint dosent take a Genius to understand it .Fuck its not even namespaced .
PHP Code:
//simple starts with a check on the case number case number is 28 ok great
//lets process it Cus WE DONT HAVE ANY OTHER ATTACK TYPES cept the 28
//case the data is being converted.done converting great we got the target id .
//creating a new Dictionary named targets = null and adding it as a reference to the get targets void .
//the player target is gonna turn from 0 to the new target uid.
//We are done here .
uint AttackType = BitConverter.ToUInt32(Data, 20);
switch (AttackType)
{
case 28:
{
try
{
#region Bow Attack
if ((DateTime.Now > GC.MyChar.LastAttack.AddMilliseconds(800)))
{
uint TargetUID = BitConverter.ToUInt32(Data, 12);
Dictionary<uint, int> Targets = null;
PlayerTargets.GetTargets(TargetUID, ref Targets, GC.MyChar, 0, 28);
GC.MyChar.Target = TargetUID;
Targets.Clear();
}
break;
#endregion
}
}
catch (Exception e) { Program.WriteLine(e); }
PlayerTargets.get targets void
PHP Code:
// the get targets void starts a few checks on the targeted player
//dead/ghost/shadow/inrange/etc done checking and its all fine
// the get targets void Calculates the damage .
// once its done checking/Calculating and the target is alive a check to see
//which attack type is being Processed and for sure its not 2 so its gonna
//jump to DoPlayer.TakeOff Void and than the damage/player id will be
//added to the targets Dictionary KNOWING THAT ITS NOT BEING USED WHEN THE ATTACK TYPE is 28.
//We are done here .
Character C = (Character)WorldTables.H_Chars[Target];
if (C != null && !C.Shadow && !C.Dead)
{
if (C != Attacker && !C.Flying)
{
if (MyMath.PointDistance(C.Loc.X, C.Loc.Y, Attacker.Loc.X, Attacker.Loc.Y) <= 16)
{
if (C.secondeimunity > 0)
{
if (C.Body == 1001 || C.Body == 1002 || C.Body == 2001 || C.Body == 2002) { SpawnMe(C, Packets.String(C.MyClient.MyChar.EntityID, 10, "fort1"));}
else { SpawnMe(C, Packets.String(C.MyClient.MyChar.EntityID, 10, "fort7")); } Attacker.IsMeleeAttacking = false;
}
else
{
uint Damage = FuckOffServer.Attacking.Calcolate.Calculation.DamagePlayer(Attacker, C, SkillID, AttackType);
if (AttackType == 2)
{
if (!DotheSkillEffect.WeaponSkill(Attacker, C.Loc.X, C.Loc.Y, C.EntityID))
{
if (MyMath.PointDistance(C.Loc.X, C.Loc.Y, Attacker.Loc.X, Attacker.Loc.Y) <= 3)
{
DoPlayer.TakeOff(C, Attacker, Damage, AttackType);
Targets.Add(C.EntityID, (int)Damage);
}
else { Attacker.IsMeleeAttacking = false; }
}
else { DoPlayer.TakeOff(C, Attacker, Damage, 24); Targets.Add(C.EntityID, (int)Damage); }
}
else { DoPlayer.TakeOff(C, Attacker, Damage, AttackType); Targets.Add(C.EntityID, (int)Damage); }
}
}
else { Attacker.IsMeleeAttacking = false; }
}
else { Attacker.IsMeleeAttacking = false; }
}
The takeoff void
PHP Code:
// the takeOff void checks the playerHP/ decide to kill the player or keep him alive
//is melee attacking means keep attacking the target cus he is still alive
//the spawnme void takes care of supplying the in range players with the attack packet
//
switch (AttackType)
{
case 2:
{
#region Attack type 2 // Melee
if (Player != Attacker)
{
if (Damage < Player.CurHP)
{
Attacker.FirstFaital = false;
Attacker.IsMeleeAttacking = true;
Attacker.LastAttack = DateTime.Now;
//and before you even mention that i had it this way
Attacker.supply(Packets.AttackPacket(Attacker.EntityID, Player.EntityID, Player.Loc.X, Player.Loc.Y, Damage, (byte)AttackType));
// this way the attack packet is being sent only to the attacker
//and still its the same
//SpawnMe(Player, Packets.AttackPacket(Attacker.EntityID, Player.EntityID, Player.Loc.X, Player.Loc.Y, Damage, (byte)AttackType));
HelthPowerFactor.CheckHP(Player, false, Damage);
}
else
{
it dosent matter if the player is dead or not its long enough .
}
}
}
the spawn Packet .
PHP Code:
// oh and finally the lovely Spawnme Packet i guess you already know what
//dose it do or i have to explain it again !
public static void Spawnme (Character Tospawn, byte[] Data)
{
try
{
foreach (Character spawnTo in WorldTables.H_Chars.Values)
{
if (spawnTo.Loc.Map == Tospawn.Loc.Map && MyMath.InBox(Tospawn.Loc.X, Tospawn.Loc.Y, spawnTo.Loc.X, spawnTo.Loc.Y, 20))
spawnTo.MyClient.supply(Data);
}
}
catch (Exception e) { Program.WriteLine(e); }
}
i hope that you like/understand my simple way of debugging/ice age breakpointing .
PLEASE GET IT the source is half empty there is no fucking why that another attack packet is being sent there is no other attack type that handles the attack type 28 or another void that contains the attack packet i Blocked it all i showed you that in the damn video and still you keep Insisting that its the attack packet i dont know what to say now .
just quit telling me that why is it that hard for you to believe that its not !
and btw i told you before i know how to breakpoint so why are you telling me how to do your own way of breakpointing.the process thingy ! well i told you earlier its NOT gonna run throw the client side and that the problem is in the packet it self ,
you are talking like i dont know how to debug shit lmfao well guess what YOU well never be able to fix that problem And Fail to understand shit you know why Cus you are setting there guessing/posting all kind off thing that has nothing to do with the problem AND YOU CANT EVEN UNDERSTAND what i have provided up there .
And Next time Dont judge ppl depending on your guessing ballshit.
now forgive me rude way to say shit and leave the room for someone else to have a try thats IF there is any room left.