Game


You are not connected. Please login or register

HƯỚNG DẪN ADD OPTION THEO CÁCH CƠ BẢN NHẤT

Go down  Message [Page 1 of 1]

Fenix

Fenix
Game Master
Game Master
Bài hướng dẫn của Net4Viet Team

Hì, hôm này rãnh rỗi tí ngồi viết cái hướng dẫn add option cho các bạn, chắc các bạn cũng biết lợi ích và sự tiện lợi của các option rồi nên mình khỏi nói chi nữa. Ở bài hướng dẫn này mình sẽ hướng dẫn add option theo cách cơ bản nhất mà trong GameServer đã có code mẫu sẵn, dựa vào những code đó ta mở rộng ra các option mới. Nào chúng ta bắt tay vào công việc nào:

Đoạn code mẫu dùng để add option



Code:
00521AD4 |. 68 98E56900 PUSH 0069E598 ; ASCII "commonserver.cfg" <- Giữ nguyên
00521AD9 |. B9 287BC50A MOV ECX,0AC57B28 ; <- Giữ nguyên
00521ADE |. E8 4E14EEFF CALL 00402F31 ; <- Giữ nguyên
00521AE3 |. 50 PUSH EAX ; /IniFileName <- Giữ nguyên
00521AE4 |. 6A 00 PUSH 0 ; |Default = 0 <- Sẽ thay đổi
00521AE6 |. 68 D80B6A00 PUSH 006A0BD8 ; |Key = "XMasEvent" <- Sẽ thay đổi
00521AEB |. 68 74E56900 PUSH 0069E574 ; |Section = "GameServerInfo" <- Giữ nguyên
00521AF0 |. FF15 08CF650C CALL DWORD PTR DS:[C65CF08] ; \GetPrivateProfileIntA <- Giữ nguyên
00521AF6 |. A3 7C80420B MOV DWORD PTR DS:[B42807C],EAX ; <- Sẽ thay đổi



Chú ý:

1- 00521AE4 |. 6A 00 PUSH 0 ; |Default = 0 <- Sẽ thay đổi : Ở đây là giá trị mặc định của các loại Option, nên tùy Option mà ta sẽ thay đổi lại

2- 00521AE6 |. 68 D80B6A00 PUSH 006A0BD8 ; |Key = "XMasEvent" <- Sẽ thay đổi : Ở đây là offset chứa tên Option mình cần sửa lại, ở trong hướng dẫn này tôi lấy ví dụ là :


Code:
00609410 . 4E 34 56 43 61>ASCII "N4VCanUseShadowN"
00609420 . 50 43 4D 61 78>ASCII "PCMaxLevel",0



3- 00521AF6 |. A3 7C80420B MOV DWORD PTR DS:]B42807C],EAX <- Sẽ thay đổi : Ở đây là offset của Option ta cần add, và trong GS này offset đó là : 0054C2F0 <-- Offset "Level cao nhất có thể sử dụng Elfbuff free"

Gián đoạn Offset và JMP nó tới Offset mới nơi ta sẽ add option mới cho GameServer

Offset ta chọn để gián đoạn và JMP tới Offset mới:


Code:
00521AFB |. 68 98E56900 PUSH GameServ.0069E598 ; ASCII "commonserver.cfg" // Ta sẽ gián đoạn ở offset này và JMP nó tới offset mới là nơi ta bắt đầu add option
00521B00 |. B9 287BC50A MOV ECX,GameServ.0AC57B28



Offset được JMP tới và cũng là nơi ta dùng để add option mới cho GameServer:


Code:
006208F0 00 DB 00 // Offset nay la noi ta bat dau de add option



Chú ý: Các bạn muốn chọn offset nào cũng được nhưng phải nằm ở offset có dạng DB 00 các bạn chú ý sẽ nhận ra được

Code cho option:


Code:
PUSH 0069E598 ; ASCII "commonserver.cfg"
MOV ECX,0AC57B28
CALL 00402F31
PUSH EAX
PUSH 0B4
PUSH 00609410 ; ASCII "N4VCanUseShadowNPCMaxLevel"
PUSH 0069E574 ; ASCII "GameServerInfo"
CALL DWORD PTR DS:[C65CF08]; KERNEL32.GetPrivateProfileIntA
MOV DWORD PTR DS:[54C2F0],EAX
PUSH 0069E598 ; ASCII "commonserver.cfg"
JMP 00521B00



Chú ý:
Nếu muốn add tiếp Option nữa thì bạn delete 2 dòng code in đậm đỏ cuối đi:


Code:
PUSH 0069E598 ; ASCII "commonserver.cfg"
JMP 00521B00



Và lưu ý là khi kết thúc hoàn toàn add các option thì ở Option cuối cùng thì các bạn phải thêm 2 dòng code đó vào.
Chú ý:
Ở phần trên ta đã gián đoạn các Option trong GameServer để JMP tới 1 offset trống mới để add các option mới thì cuối cùng các bạn chú ý là phải JMP ngược lại offset nơi ta gián đoạn ban đầu để GameServer đọc được các Option liền mạch với nhau


Code:
JMP 00521B00 <- Offset nằm bên dưới Offset mà ta gián đoạn ở phần trên



Và công việc cuối cùng và cũng quan trong nhất để GameServer đọc và thực hiện các tùy chỉnh của OPtion:

- Các bạn vào MUServer\Data\commonserver.cfg: mở file này ra và thêm vào tên option mình vừa add và giá trị tùy chỉnh theo ý muốn của các bạn


Code:
N4VCanUseShadowNPCMaxLevel = 400 ; Level cao nhat co the su dung duoc NPC ElfBuff Free




Chúc các bạn thành công!!!

http://www.devgame.ga

Back to top  Message [Page 1 of 1]

Permissions in this forum:
You cannot reply to topics in this forum