Register for your free account! | Forgot your password?

You last visited: Today at 01:09

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



Block Asia join EU Party

Discussion on Block Asia join EU Party within the SRO Private Server forum part of the Silkroad Online category.

Reply
 
Old   #1
 
sonzenbi's Avatar
 
elite*gold: 0
Join Date: Feb 2017
Posts: 197
Received Thanks: 120
Block Asia join EU Party

I want the characters in the two races can not join party
I guess that is 0x7060 opcodes .
anyone have some suggestions ?
Thannks
sonzenbi is offline  
Old 05/26/2018, 16:40   #2

 
sarkoplata's Avatar
 
elite*gold: 166
Join Date: Apr 2009
Posts: 2,339
Received Thanks: 2,661
as far as I remember party invite packets (not party matching) work with UniqueID, so you'll have to store every uniqueID in the server to some big hashtable, and check the race

the party matching packets probably have some kind of race/refobjid data, so should be easy. When someone tries to join your party through party matching, player won't be able to accept if incoming player is not from the same race. (a little lame)

better solution would be to keep all parties in an hashtable as well and block the request from the beginning.
sarkoplata is offline  
Thanks
1 User
Old 05/26/2018, 22:59   #3
 
sonzenbi's Avatar
 
elite*gold: 0
Join Date: Feb 2017
Posts: 197
Received Thanks: 120
I succeeded in blocking at packet 0x7060 and 0x7062
Quote:
#region 0x7060_PARTY_ADD_MEMBER
else if (opcode == 0x7060)
{
#region ASI JOIN PT EU
if (FilterMain.ASI_JOIN_GRPARTY)
{
uint Target = _pck.ReadUInt32();
int race = Task.Run(async () => await sqlCon.prod_int($"EXEC [{FilterMain.sql_db}].[dbo].[_FindRaceByUniqueID] '{Target}'")).Result;
if (this.Chinese)
{
if (race == 0)
{
this.SendNotice("CHINA_PARTY_EU");
continue;
}
}
else
{
if (race == 1)
{
this.SendNotice("CHINA_PARTY_EU");
continue;
}
}
}
But i'm having trouble at 0x706D
Quote:
else if (opcode == 0x706D)
{
#region ASI JOIN PT EU 2
if (FilterMain.ASI_JOIN_GRPARTY)
{
string Target = _pck.ReadAscii(); // Charname
int race = Task.Run(async () => await sqlCon.prod_int($"EXEC [{FilterMain.sql_db}].[dbo].[_FindRaceByCharname] '{Target}'")).Result;
if (this.Chinese)
...
Did I miss something?

PVP is charname
Code:
[S -> C][706D]
13 00 00 00                                       ................
03 00 00 00                                       ................
1F 00 00 00                                       ................
00 00 00 00                                       ................
00 00 00 00                                       ................
04                                                ................
FF                                                ................
03 00 00 00                                       ................
03 00                                             ................
50 56 50                                          PVP.............
73 07 00 00                                       s...............
6E                                                n...............
AA                                                ................
99 66                                             .f..............
71 03                                             q...............
96 FF                                             ................
49 05                                             I...............
01 00 01 00                                       ................
00 00                                             ................
04                                                ................
00 00 00 00                                       ................
00 00 00 00
sonzenbi is offline  
Old 05/27/2018, 00:49   #4

 
sarkoplata's Avatar
 
elite*gold: 166
Join Date: Apr 2009
Posts: 2,339
Received Thanks: 2,661
there are lots of bytes before charname, you must read them first?
btw i think that first DWORD is ModelID, make your checks with that, don't waste performance with an unnecessary sql query...
sarkoplata is offline  
Thanks
1 User
Old 05/27/2018, 02:30   #5
 
B1Q's Avatar
 
elite*gold: 350
Join Date: Aug 2015
Posts: 2,008
Received Thanks: 1,193
i recently parsed 706D for my ecsro server
the structure looks identical

Code:
                uint requesterID = pck.ReadUInt();
                uint requestModel = pck.ReadUInt();
                uint partyNumber = pck.ReadUInt();
                uint randomNumber = pck.ReadUInt();
                pck.ReadUInt(); // random #2
                byte flag = pck.ReadByte();
                uint uniqueID = pck.ReadUInt();
                string charname = pck.ReadAscii();
                uint model = pck.ReadUInt();
                byte requesterLevel = pck.ReadByte();
                byte random3 = pck.ReadByte();
                ushort requesterRegion = pck.ReadUShort();
                ushort posX = pck.ReadUShort();
                ushort posY = pck.ReadUShort();
                ushort posZ = pck.ReadUShort();
                string guildName = pck.ReadAscii();
to accept / deny

Code:
                Packet accept = new Packet(0x306E);
                accept.WriteUInt(requesterID);
                accept.WriteUInt(requestModel);
                accept.WriteByte(1); // 1 for accept 0 for decline
                client.Send(accept, Direction.Server);
B1Q is offline  
Thanks
1 User
Reply

Tags
block asia join eu party


Similar Threads Similar Threads
[Question] block ip ou block mannequin in events
08/07/2012 - EO PServer Hosting - 2 Replies
There are some missions and events where you do not want the player not involved more than one time, wanted to know if you have any action to block the ip or mannequin, so the player participates only once in the game
Block für Block für Block... 24/7 root-server
04/01/2012 - Minecraft Server Advertising - 0 Replies
Ich bin neu in dem Gebiet Minecraft, doch das Spiel hat mich sofort gepackt, deswegen habe ich auch gleich einen Server aufgesetzt. Modus: "Classic" Plugins: Ein paar sind drauf und einige kommen noch, der Server befindet sich noch im Aufbau, hat 50 Slots und ich bin für allerlei Spielerein zu haben. Neue User bekommen Starthilfe und Support beim Game, für Fortgeschrittene sind Unterstützung für Projekte selbstverständlich. Der Server wurde Heute aufgesetzt und es gibt mitlerweile...
Block or no Block that is the question
05/20/2009 - Silkroad Online - 6 Replies
Hey guyz,I was wondering do i get blocked even after i delete/rename<move> the error sender and delete the dump folder im thinkin to make a new wiz and bot it up but i cant afford to buy silk on that acc coz i just spent my allowance on my main so do i get block or not or maybe help required thx in progress ...:mofo:
NO MORE BLOCK POSTS end BLOCK HACK
03/07/2009 - Dekaron - 4 Replies
Go here -> http://www.elitepvpers.com/forum/complaint-area/218 508-kikichan-2moons-rf-mod.html <- this post is for SHOW PEOPLE what is going in 2moons HACK SECTION.



All times are GMT +1. The time now is 01:12.


Powered by vBulletin®
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2026 elitepvpers All Rights Reserved.