Register for your free account! | Forgot your password?

You last visited: Today at 18:29

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

Advertisement



Changing Grant name

Discussion on Changing Grant name within the SRO Coding Corner forum part of the Silkroad Online category.

Reply
 
Old   #1
 
elite*gold: 0
Join Date: Apr 2012
Posts: 263
Received Thanks: 271
Changing Grant name

Hello

Can someone help me how grant name changing Through Filter
i want to send this packet via the guild master's

I tried many ways, but the filter still only sends by char guild member

PHP Code:
 public void ChangeGrant()
        {

            
Packet name = new Packet(0x7256); //C->S
            
name.WriteUInt32(12591); // id char Guild member 
            
name.WriteAscii("AnhE101"); // grant name
            
m_RemoteSecurity.Send(name);
            
Send(false);
        } 
thaidu0ngpr0 is offline  
Old 08/07/2020, 22:57   #2
 
ownkhan's Avatar
 
elite*gold: 0
Join Date: Apr 2015
Posts: 116
Received Thanks: 106
u need bypass GS for instant update
ownkhan is offline  
Old 08/08/2020, 00:39   #3
 
Chigako's Avatar
 
elite*gold: 0
Join Date: Aug 2020
Posts: 32
Received Thanks: 21
Quote:
Originally Posted by ownkhan View Post
u need bypass GS for instant update
Do you mean this?

PHP Code:
void CGObjPC::UpdateGrantName(uint32_t playerchar *grantname
Chigako is offline  
Old 08/08/2020, 10:09   #4
 
elite*gold: 100
Join Date: Sep 2017
Posts: 1,109
Received Thanks: 903
Quote:
Originally Posted by Chigako View Post
Do you mean this?

PHP Code:
void CGObjPC::UpdateGrantName(uint32_t playerchar *grantname
Stop acting like...


If you're not gonna give him a proper answer, then you better not answer.

-

In topic, there you go: (GameServer code)

Code:
push charid; //charid as dword
mov ebx, strptr; //vc80's std::string ptr
mov esi, pcptr; //CGObjPC ptr
call 0x005C7560; //returns short as result code
This is the main function, but it checks if you're the master of the guild, so you don't need that, you need to get deeper.

Code:
push stringptr; //vc80's std::string ptr
push 0x25; //just a constant value, its actually update type since the function we're calling now is guild update
push pcptr; //CGObjPC ptr
mov ecx, charid; //charid as dword
xor edx, edx; //edx is a ptr to something, but u set it null so u're fine
call 0x005C80A0; //guild update
This one is guild update function, doesn't do any checks to get your grant name change rejected. So that should be what we need.

You can turn this little assemblies into an actual member function, like:

Code:
void CGObjPC::SetGrantName(std::string* grantname)
{
	if (m_instance)
	{
		unsigned int charid = m_instance->CharID;

		__asm
		{
			push grantname;
			push 0x25;
			push this;

			mov ecx, charid;
			xor edx, edx;
			
			mov eax, 0x005C80A0;
			call eax;
		}
	}
}

Or you can just disable the master member class check here:

Code:
005CFF9A | 3848 3C                   | cmp byte ptr ds:[eax+3C],cl                      |
005CFF9D | 0F94C1                    | sete cl                                          |
005CFFA0 | 8BC1                      | mov eax,ecx                                      |
And then just use original packets (but that will allow anyone to change the grant name of anyone in his guild to anything he wants)
#HB is offline  
Thanks
10 Users
Old 08/08/2020, 16:43   #5
 
elite*gold: 0
Join Date: Apr 2012
Posts: 263
Received Thanks: 271
Quote:
Originally Posted by #HB View Post
Stop acting like...


If you're not gonna give him a proper answer, then you better not answer.

-

In topic, there you go: (GameServer code)

Code:
push charid; //charid as dword
mov ebx, strptr; //vc80's std::string ptr
mov esi, pcptr; //CGObjPC ptr
call 0x005C7560; //returns short as result code
This is the main function, but it checks if you're the master of the guild, so you don't need that, you need to get deeper.

Code:
push stringptr; //vc80's std::string ptr
push 0x25; //just a constant value, its actually update type since the function we're calling now is guild update
push pcptr; //CGObjPC ptr
mov ecx, charid; //charid as dword
xor edx, edx; //edx is a ptr to something, but u set it null so u're fine
call 0x005C80A0; //guild update
This one is guild update function, doesn't do any checks to get your grant name change rejected. So that should be what we need.

You can turn this little assemblies into an actual member function, like:

Code:
void CGObjPC::SetGrantName(string05* grantname)
{
	if (m_instance)
	{
		unsigned int charid = m_instance->CharID;

		__asm
		{
			push grantname;
			push 0x25;
			push this;

			mov ecx, charid;
			xor edx, edx;
			
			mov eax, 0x005C80A0;
			call eax;
		}
	}
}

Or you can just disable the master member class check here:

Code:
005CFF9A | 3848 3C                   | cmp byte ptr ds:[eax+3C],cl                      |
005CFF9D | 0F94C1                    | sete cl                                          |
005CFFA0 | 8BC1                      | mov eax,ecx                                      |
And then just use original packets (but that will allow anyone to change the grant name of anyone in his guild to anything he wants)
thanks idol , work perfect
thaidu0ngpr0 is offline  
Old 08/08/2020, 19:17   #6
 
Chigako's Avatar
 
elite*gold: 0
Join Date: Aug 2020
Posts: 32
Received Thanks: 21
Quote:
Originally Posted by #HB View Post
Stop acting like...


If you're not gonna give him a proper answer, then you better not answer.

-

In topic, there you go: (GameServer code)

Code:
push charid; //charid as dword
mov ebx, strptr; //vc80's std::string ptr
mov esi, pcptr; //CGObjPC ptr
call 0x005C7560; //returns short as result code
This is the main function, but it checks if you're the master of the guild, so you don't need that, you need to get deeper.

Code:
push stringptr; //vc80's std::string ptr
push 0x25; //just a constant value, its actually update type since the function we're calling now is guild update
push pcptr; //CGObjPC ptr
mov ecx, charid; //charid as dword
xor edx, edx; //edx is a ptr to something, but u set it null so u're fine
call 0x005C80A0; //guild update
This one is guild update function, doesn't do any checks to get your grant name change rejected. So that should be what we need.

You can turn this little assemblies into an actual member function, like:

Code:
void CGObjPC::SetGrantName(string05* grantname)
{
	if (m_instance)
	{
		unsigned int charid = m_instance->CharID;

		__asm
		{
			push grantname;
			push 0x25;
			push this;

			mov ecx, charid;
			xor edx, edx;
			
			mov eax, 0x005C80A0;
			call eax;
		}
	}
}

Or you can just disable the master member class check here:

Code:
005CFF9A | 3848 3C                   | cmp byte ptr ds:[eax+3C],cl                      |
005CFF9D | 0F94C1                    | sete cl                                          |
005CFFA0 | 8BC1                      | mov eax,ecx                                      |
And then just use original packets (but that will allow anyone to change the grant name of anyone in his guild to anything he wants)
You have to stop pretending to be smart. Because you got caught in my trap
Chigako is offline  
Old 08/08/2020, 20:50   #7
 
elite*gold: 100
Join Date: Sep 2017
Posts: 1,109
Received Thanks: 903
Quote:
Originally Posted by Chigako View Post
You have to stop pretending to be smart. Because you got caught in my trap
Looks like you've decided to turn to blablabla talk, after feeling embarrassed.

I won't reply anymore, since there's no point of doing so.
#HB is offline  
Thanks
1 User
Reply


Similar Threads Similar Threads
Changing Grant name
07/24/2020 - SRO Coding Corner - 3 Replies
Hello Can someone help me how grant name changing Through Filter which packets and how it works please :)
[Help] Grant Name Block
04/29/2012 - SRO Private Server - 3 Replies
Anyone knows, which .txt I have to edit to unblock swear words / special letters like _:;^ etc. for Grant names? Would help me a lot.
>> Admin Please need Grant Name <<
01/30/2012 - Main - 3 Replies
i want to change my grant name to ‡°•._ĚϚłipśę_.•°‡ please admin!! and thanks
how can i use special characters in grant name?
02/10/2009 - SRO Private Server - 6 Replies
im playing on fembria, and i saw ppl with "*,^,>,_" those characters, but when im trying to use them, it says "this name cant be used because it contains special characters what to do?



All times are GMT +1. The time now is 18:30.


Powered by vBulletin®
Copyright ©2000 - 2025, 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 ©2025 elitepvpers All Rights Reserved.