Zoneserver with PvP notification

how you edit this ? wen i try to replace hex value of "%s killed %s" wid "%s Trolled %s" or "[PK-Notice]" wid "[pvp-system]" zone server dnt e1 start ( initfail() error i get )

As Prot said just overwrite. If you add even one extra byte, the executable might not work as intended!
 
Re: Zoneserver with PvP notification + RB

All right, released a ZS RB output is possible.
It gets the value of BR and level using the ODBC.


pvp1 - Zoneserver with PvP notification - RaGEZONE Forums pvp2 - Zoneserver with PvP notification - RaGEZONE Forums

I tested at 219 Client.
Does not change the color of the PvP Shout. To change the color, you should edit the client.

ZoneServer open in hex editor, if you want to change the text of PvP Shout.
Address: 0x77D2 - "[PvP-Msg]"
Address: 0x77E6 - "%s (Rb%u,%u) killed %s (Rb%u,%u)"


Caution
After you change the below, please make use of.

If the name of your ODBC is not the ASD (there "charac0" table)
Address: 0x2DCD04 - "ASD"

If there is no column name "d_restart" your BR will be saved if
Address: 0x7816 - "SELECT a.d_restart,a.c_sheaderc,b.d_restart,b.c_sheaderc FROM charac0 AS a JOIN(SELECT c_id,d_restart,c_sheaderc FROM charac0) AS b ON b.c_id='%s' WHERE a.c_id='%s'"



* Notice: This zoneserver one that has been provided, has the following characteristics.

Public Shout cost has been changed to 2000000WZ.
- In order to return to this default(100000WZ), change the 4bytes of address 131E23 Hex editor.
- find: 80 84 1E 00, change to: A0 86 01 00

GM Commands in "GIFT" has been changed to "GIVE".
- In order to return to this default(GIFT), change the 4bytes of address 2DE0C8 Hex editor.
- find: 47 49 56 45, change to: 47 49 46 54

Password required for connection (A3SerialList, A3RcvResult) ODBC has been changed to "serial.password".
- In order to return to this default(dkdlxpawprhdnpc), change the 15bytes of address 2DCD5C Hex editor.
- find: 73 65 72 69 61 6C 2E 70 61 73 73 77 6F 72 64, change to: 64 6B 64 6C 78 70 61 77 70 72 68 64 6E 70 63
 

Attachments

After using that new ZoneServer, We are getting EventItemConnector Error.
Tried Every possible way. Still trying to do it. But Can you give any idea what all DB Connection related changes you did ?

View attachment 125023


I think in order to integrate and use the ID as "sa" instead "a3serial" necessary to make the connection of my Event Item Provider DB environment.

- Open the ZS in hex editor and change the text of the following addresses.
0x2DCD50 : "a3serial" change to "sa"
0x2DCD5C : "serial.password"(or "dkdlxpawprhdnpc") change to "password for your"
 
Well,
The ZoneServer was running perfectly. And the Shout Also Worked.

I would Like to ask you a query.

In our game, We want to display 3 results
Level, Rebirth As well as RB reset (New concept in our server).

I tried to do it in following way :
I created d_restart column.
I copied the contents of both columns Rebirth and Reset into that column.
Now the result in my d_restart looks something like this :
(1,15). Where 1 = Reset , 15 = RB

But what happening is While the character gets PKed in game,
The shout is coming something like following :

[PvP-Msg] : Magix (RB 3123124124, 165) Killed xxxxx (RB 3123124124, 165)

I assume this '3123124124' is coming because of a kind of overflow.
So what can I use instead of %u ?
Kindly suggest.
Data Type for d_restart I used is varchar(50)




This is the result after I changed The Hex Bytes as (Rb%d, %u).
1 - Zoneserver with PvP notification - RaGEZONE Forums

When I did %s instead of that value (Thinking that it will act as string), Zoneserver crashed !
 
Last edited:
Well,
The ZoneServer was running perfectly. And the Shout Also Worked.

I would Like to ask you a query.

In our game, We want to display 3 results
Level, Rebirth As well as RB reset (New concept in our server).

I tried to do it in following way :
I created d_restart column.
I copied the contents of both columns Rebirth and Reset into that column.
Now the result in my d_restart looks something like this :
(1,15). Where 1 = Reset , 15 = RB

But what happening is While the character gets PKed in game,
The shout is coming something like following :

[PvP-Msg] : Magix (RB 3123124124, 165) Killed xxxxx (RB 3123124124, 165)

I assume this '3123124124' is coming because of a kind of overflow.
So what can I use instead of %u ?
Kindly suggest.
Data Type for d_restart I used is varchar(50)




This is the result after I changed The Hex Bytes as (Rb%d, %u).
View attachment 125033

When I did %s instead of that value (Thinking that it will act as string), Zoneserver crashed !


Was not designed as part of the query execution processes the string value.
Change only the part you said, it does not work.

Is where we part 0x00421B4B to perform a query in the debugger when I opened the ZS.
You need to add code to handle the string value here.

Where reference is part deserves 0x00447940.
 
has any1 got it working? i did but it doesnt show pk i even made a column in charac0 named d_restart varchar 255 Null default
 
any1 knw how to add town in pvp shout ?

eg: [PvP-Msg] : Magix (T, 165) Killed xxxxx (Q, 165)

You have to fetch nation from database by editing query and insert the value into PK shout. Do not as me how to edit ZS because I never tried ollying ZS :8:
 
No need to fetch nation from database. ZS already knows that :P
Quoting prolog's post from another thread
This article was created with the help of Google translation.
If this post useful, please move to the tutorial.


You can find the area under the debugger and I opened the ZS.
By leveraging well here, you can make it impossible to PK the specified map.

Address | Command
00521FE1 | MOV EDX,DWORD PTR SS:[LOCAL.1]
00521FE4 | XOR EAX,EAX
00521FE6 | MOV AX,WORD PTR DS:[EDX+54]
00521FEA | CMP EAX,14 : Comparing the number of the current map - 0x14 = 20 = Nevia
00521FED | JNE SHORT 00522016 : Jump, if map is different from the number 20. PvP is possible.
00521FEF | MOV ECX,DWORD PTR SS:[LOCAL.1]
00521FF2 | MOV EDX,DWORD PTR DS:[ECX+98]
00521FF8 | AND EDX,000000FF
00521FFE | MOV EAX,DWORD PTR SS:[LOCAL.2]
00522001 | MOV ECX,DWORD PTR DS:[EAX+98]
00522007 | AND ECX,000000FF
0052200D | CMP EDX,ECX : Comparison of the village of Player1 and Player2
0052200F | JNE SHORT 00522016 : Jump, PvP is possible If the different village of Player1 and Player2.
00522011 |JMP 005220A6 : Jump, PvP is impossible If the same village of Player1 and Player2.

You notice the line marked in blue?
 
It does checks when a player tries to PK. I m not sure it will store it when he successfully kill the other player. What I mean to say is, It can be done without checking DB. This way or another.
 
It does checks when a player tries to PK. I m not sure it will store it when he successfully kill the other player. What I mean to say is, It can be done without checking DB. This way or another.

Have you started Ollying ZS yourself? If yes can you share a basic guide as to how to find a particular function (procedure) in zone server and editing it as we want?
 
@Karthik, I have the same question.
Searching the specific procedure in Zoneserver is hard. (Or May not be hard as I've no Idea how to do it.)

@Prologs, that would be great if u just share the technique by which you get hands on a specific procedure in Olly !
 
Back