Disabling pk thru proxy

09/04/2015 08:53 sarkoplata#1
Heya,
I couldn't analyze it deeply due to lack of time but I got how pking system works.

So I got the idea that reading the 0xB045 for the last selected target would help. If the unique_id of last selected target was a player it would block the next 0x7074s until the target is changed. But 0x7074 is used for pretty much everything (pick up, attack, trace etc) so obv it did not work. Then i filtered the 0x7074 and i thought reading the skillID and checking if it was a dmg spell. But there are too many spell types and I believe that there is a better way to do this.

Im open to any kind of suggestion :)
This is not a function im seeing around so it might be helpful to people as well. Lets dev it.
09/04/2015 09:12 vorosmihaly#2
imo,you should check if attacker & target are both wearing capes or not first,as it might cause problems if you don't do it...I could help you once I get home,as I'm at work and not gonna be home until sunday or so,but I've got this done somewhere,sooo add me on skype and I'll msg you once I'm at home,if you won't find a solution until then,I'll help you out ^_^
09/04/2015 13:03 LastThief*#3
You could dc user upon status change. this will dc user when his name turns from white to purple / red
09/04/2015 15:09 sarkoplata#4
Quote:
Originally Posted by vorosmihaly View Post
imo,you should check if attacker & target are both wearing capes or not first,as it might cause problems if you don't do it...I could help you once I get home,as I'm at work and not gonna be home until sunday or so,but I've got this done somewhere,sooo add me on skype and I'll msg you once I'm at home,if you won't find a solution until then,I'll help you out ^_^
That's already OK. Addition to that, user can be at guild war, fortress war, ctf, battle arena or something else.
And he can be casting a buff too, like str/int on Cleric. That should also be filtered.

Quote:
Originally Posted by LastThief* View Post
You could dc user upon status change. this will dc user when his name turns from white to purple / red
That will fuck up the user, will be harsh (i was just trying to send a humanly mesaage to user when he tries to PK) but i guess it's the only possible solution.
I never thought about that. Probably a packet is sent upon color change. Let me check :)

Edit: and also user will be able to attack atleast once
09/08/2015 01:44 theking200051#5
as i know 0x7074 structure :-
01 :flag
04 :flag
55 23 00 00 : Skill ID
01 :attack or buff flag
80 02 0D 00 : Target ID
or for buff
01 :flag
04 :flag
55 23 00 00 : Skill ID
00 :attack or buff flag

so u can make the proxy save all players id in a list and every time the client sent the 0x7074 let the proxy check the target ID and search the list for a same ID if he found it proxy will just do nothing , if not it will bass it to the gateway . if that idea helps i can give u another idea for passing the buffs skills packets.
09/08/2015 14:47 sarkoplata#6
Quote:
Originally Posted by theking200051 View Post
as i know 0x7074 structure :-
01 :flag
04 :flag
55 23 00 00 : Skill ID
01 :attack or buff flag
80 02 0D 00 : Target ID
or for buff
01 :flag
04 :flag
55 23 00 00 : Skill ID
00 :attack or buff flag

so u can make the proxy save all players id in a list and every time the client sent the 0x7074 let the proxy check the target ID and search the list for a same ID if he found it proxy will just do nothing , if not it will bass it to the gateway . if that idea helps i can give u another idea for passing the buffs skills packets.
Yeah, correct
But there are so many possibilities that someone might use an attack skill against someone without pking. Few examples:
Guild war
Fortress War
Battle Arena

I would still like to develop this idea. If we can pass all the checks that would work better than the status update packet (0x30BF).
Hit me on skype/pm. I'll be in town in 3 days.
09/08/2015 15:13 Devsome#7
Then why not checking after 0x7074 playerID => TargetID if playerID && TargetID

is in Guild => Guild war ?
is in Guild => Fortress war time => right section ?
is in Battle Arena section ?