U serious? The image he made is the solution. If you can't fix this little bug, take down your server and delete it. :facepalm:Quote:
how slove this shit?!
The problem i think is on this code.. the exploit attack the timer ? :confused:Quote:
U serious? The image he made is the solution. If you can't fix this little bug, take down your server and delete it. :facepalm:
One tip: You see that he shoots very often. So now search where they shoot and check how this could be. Btw: The bug is in the SERVER not in the Client.
private static void LaserAttackTimer(object attacker)
{
//Output.WriteLine("laser attack still running");
Session Session = (Session)attacker;
MapInstance Instance = MapManager.GetInstanceByMapId(Session.CurrentMapId);
Session Ennemy = SessionManager.GetSessionByCharacterId(Session.CharacterInfo.SelectedPlayer);
if (Instance != null)
{
MapActor Actor = Instance.GetActorByReferenceId(Session.CharacterInfo.SelectedPlayer, MapActorType.AiBot);
if (Actor != null)
{
Npc Npc = (Npc)Actor.ReferenceObject;
//Output.WriteLine("Npc name : " + Npc.Name);
AttackNpc(Session, Npc);
//Output.WriteLine("do the action for npc");
return;
}
}
Can't see any error in this code, because I don't know the other code.Quote:
The problem i think is on this code.. the exploit attack the timer ? :confused:
LaserAttackTimer
Code:private static void LaserAttackTimer(object attacker) { .... }
This is the intere code of attack manager..Quote:
Can't see any error in this code, because I don't know the other code.
The bug is in the Server when you receive the packet-id "a".
When the Server receives a|ID then it exectues the damage-script. You have to make that a shoot can only be done every second.
The client should only send "a|ID" for the first time it attacks, not every second.
The server should send the client that there was damage on a npc.
So the server should send every second after the Attack-Packet that the player shooted.
Example:
Player Attacks NPC-ID 5.
Client: Send a|5
Server:
If attack_timer is not running Then
-> do attack
-> can_attack = true;
-> Run attack timer with 1000ms (1 sec.)
Timer after 1 sec.:
-> if(can_attack == true)
---> do attack
---> run timer to check attack with 1000ms again
Client: Send G|5
Server: Only abort attack (can_attack = false). Don't reset timer for attack. Otherwise we could send a|5, G|5, a|5, G|5, a|5... so i would re-run
This is only pseudo-code how it could work, but there are many other ways.
no you didn't in the code you postedQuote:
This is the intere code of attack manager..
[Only registered and activated users can see links. Click Here To Register...]
You can share the exploit for bug damage? so i can test it, if i solve the problem. Thank u
Maybe i sloved the problem... Test please
Hi, you can try if hack dmg is fixed?Quote:
funny your antipush system is a joke 2 firends cant play cause your IP restriction (btw if i want to push i can just get trial VPS for free and im all set) your "speedhack detection" is another joke as you can just teleport around the map if you want without being detected by system... but atleast you trying and i appriciate that (i would still recomend closing it and create your own emulator there are so many known ones on your current one ..)
Remove "Speedhack" detection. The server should calculate the new position, so there can never be any "speedhack". And the client should ONLY send where it wants to move. Only 1|DX|DY, NOT 1|X|Y|DX|DY.Quote:
[B...
ADDED ANTI PUSH![/B]