vSRO-ServerAddon (C++/DLL)

07/27/2021 01:59 sasa5214#76
yes please add
Please add
- Split exp / sp rate
- SOX Drop rate
07/27/2021 02:36 gigola123#77
Awesome project !

If you want to add "Astral failback" to + 4, here opcode:

Quote:
Originally Posted by gigola123 View Post
on your gameserver just change those:

00506D92 CMP EBX,4
00506DD2 MOV CL,4

Just change 4 by the new "+" you want after astral does effect.
Make sure to change both ! Because the first line (CMP EBX,4) check if the item "+" is greater or equal to 4, if it stay at "CMP EBX,4", people who will put astral from +4 to +5 which fail, will go directly to the value that you put on CL.
07/27/2021 23:09 truongdz7777#78
Quote:
Originally Posted by WolfgangNeverDie View Post
Please add
- Split exp / sp rate
- SOX Drop rate :D
cc
07/28/2021 13:20 #HB#79
In case anyone might need it, here's beginner marker option level limit:

Code:
00518B99 | 8078 66 13                  | cmp byte ptr ds:[eax+66],13                                   | Beginner Marker Level Limit
(edit: never mind, seems like you already have it)
07/28/2021 14:05 therock2007e#80
Quote:
Originally Posted by JellyBitz View Post
Hello there!

Customize Silkroad Online server files (v1.188) behavior through DLL injection.

Features:
  • Patch values from memory directly
  • Define all options from the respective config file
  • Easy to inject using STUD_PE
  • Execute actions from Gameserver (the first gameserver running will execute these actions)

Preview:

Gameserver Action (Example):


Full info on GitHub: [Only registered and activated users can see links. Click Here To Register...]





Latest version: [Only registered and activated users can see links. Click Here To Register...]


Dude we need all this in your project


07/30/2021 11:11 MinaThabit#81
thank You
08/10/2021 11:23 therock2007e#82
Quote:
Originally Posted by therock2007e View Post
Dude we need all this in your project


Dude need this offest

MISC_MAX_LEVEL_FOR_RESSURECT_AT_SAME_POS_OFFSET 0x00510180

And

Pet
#define GRAB_PET_INVENTORY_SIZE_OFFSET 0x004D6F9F
#define GRAB_PET_PAGE_FIX_OFFSET 0x004FBD8A
08/10/2021 18:51 JellyBitz#83
v1.0.3.0 has been released yesterday.

Quote:
Originally Posted by therock2007e View Post
#define GRAB_PET_INVENTORY_SIZE_OFFSET 0x004D6F9F
#define GRAB_PET_PAGE_FIX_OFFSET 0x004FBD8A
Please, make sure the patch is working before requesting.
I know what's the issue about grab pet inventory and I'm pretty sure a jmp instruction will not fix it.
08/10/2021 20:09 SubZero**#84
Quote:
Originally Posted by JellyBitz View Post
v1.0.3.0 has been released yesterday.



Please, make sure the patch is working before requesting.
I know what's the issue about grab pet inventory and I'm pretty sure a jmp instruction will not fix it.
If you use jmp some scrolls ill give a disconnect. (pet scrolls)
08/11/2021 05:49 pushedx#85
I don't think it's been posted, but if it has, please ignore.

I recently wanted to make a full party with all level 1 characters. The following GameServer logic can be modified to change the minimal level required for creating a party from 5 to whatever.

I've been doing a lot of testing on the EU side of things, and the level 1 mobs there do still swarm the party, so it's not completely useless.

Code:
00513FEA | FFD0 | call eax
00513FEC | 3C 05 | cmp al, 0x5 | can increase/decrease this level for a speciality server
00513FEE | 73 06 | jae 0x513FF6 | or could just force jmp to allow parties from every level, but less flexible
00513FF0 | 66:B8 0A2C | mov ax, 0x2C0A | error code for character level too low to make a party   
00513FF4 | 59 | pop ecx
00513FF5 | C3 | ret
08/23/2021 04:27 JellyBitz#86
v1.0.4.0 has been released. Everything is on Github as usual.
08/30/2021 11:11 thehaifisch#87
Hi! First of all, thank you for this!

How could we use it with multiple gameservers? It seems that only one gameserver is executing actions. Maybe I am doing something wrong...

Thank you in advance and keep up!
:handsdown:
08/31/2021 20:45 JellyBitz#88
Quote:
Originally Posted by thehaifisch View Post
How could we use it with multiple gameservers? It seems that only one gameserver is executing actions.
I never tried actually. So I'm not aware about the issues can be over there.
08/31/2021 22:40 thehaifisch#89
Quote:
Originally Posted by JellyBitz View Post
I never tried actually. So I'm not aware about the issues can be over there.
Forgot to add that all 3 gameservers read the ini correctly and also write into the LOG DB. But only one of them is putting out in these 3 lines in the debug console:

Code:
* Initializing database fetch to execute actions...
 - Waiting 1min before start fetching...
 - Fetching started!
Every time the server modules are started it is completely random which of the gameservers will execute functions.
Maybe some of you already tried it and have some experience running with multiple GS?

Edit: I realized it is by design

Code:
CreateMutexA(0, FALSE, "JellyBitz/vSRO-GameServer");
	if (GetLastError() == ERROR_ALREADY_EXISTS)
	{
		// Avoid create fetch connection
		return;
	}
Without this part, all GS could process the records from _ExeGameServer but we would have to solve the second problem where only the first GS to grab any record would actually process it because it would no longer have the Action_Result UNKNOWN by the time the other gameservers get to it.

It might be a dumb idea but do gameservers have IDs? If yes, we could have as many tables as there are gameservers all named for example _ExeGameServer_ID and would insert desired actions into all such tables. I think it wouldn't hurt as all GS would process their respective tables but only one gameserver would return SUCCESS and execute the action because the others would return CHARNAME_NOT_FOUND.

Of course this is just an idea and there are probably better ways to solve this. I am nowhere near that level to evaluate that.
09/01/2021 03:06 JellyBitz#90
Quote:
Originally Posted by thehaifisch View Post
... we could have as many tables as there are gameservers ...

Of course this is just an idea and there are probably better ways to solve this.
I had some ideas but as I said, I never tried since I don't have this setup at the moment.

Synchronize a process in the same machine it's easy actually but it gets complicated when we are talking about a process between multiples machines. At this case, yes, creating another table will avoid desyncronization but as result you'll have to deal with "CHARNAME_NOT_FOUND" by checking all tables before take some conclusion.

Just hit me up on Discord if you want to try the latest changes.