Ninja School: Hướng dẫn mod khinh công, độn thổ, dịch trái, dịch phải

 Mình tình cờ thấy một bạn share cách đọc code Game phiên bản PC nên cũng vọc thử. Được 1 lúc thì thấy cũng ok, nhờ vô bản PC mà mình tìm được cách đọc code bản java và tìm code để Mod nhanh và hiệu quả hơn.

Ở bài này mình làm được mấy cái đơn giản như là: khinh công, độn thổ, dịch trái, dịch phải.

Trong quá trình làm thì mình thấy khá đơn giản, vài dòng code là xong rồi. Nếu bạn nào hứng thú thì có thể làm thêm các cải tiến như quay về vị trí vừa chết, di chuyển nhanh qua map... tùy à.

Thôi nói vậy đủ rồi.

1. Chuẩn bị:

Do code java nó đổi hết tên hàm đi thành a,b,c rồi def gì đó nên suy luận tốn não quá, mình thấy có bạn kia share cách tìm code bằng bản PC hay hay nên làm thử. Chưa làm gì hết nên chưa biế được không nữa. Nếu mà thành công thì mình sẽ post lên ak.

1. Nguyên lý:

Bản PC dùng C# viết, nên có thể tạo 1 project C# rồi Add các file data “.dll” tim kiếm rất tiện.

Sau 1 hồi thì mình thấy không cần tạo project C# gì hết, dùng tool dnSpy là được rồi.

2. Công cụ: 

1. dnSpy: Tải về tại đây

2. Thực hiện:

Để xem làm cái gì hay hay đây. Đúng rồi, thấy nhiều bạn thích dùng các bản auto next map các thứ, mình cũng làm 1 bản chơi hen.

1. Đầu tiên mở code game trên pc đã:

Cái này các bạn tải phiên bản PC của Game về rồi bung ra là có hen.

2. Tìm dữ kiện:

1. Đầu tiên thử tìm xem “move” có không. Kết quả ra rất nhiều nhưng mình nghi nghi là hàm “sendMove” có nghĩa là gửi vị trí về sever ak.

Đọc sơ qua thì mình hiểu là: 

2. Ánh xạ lên code java:

Tìm thử cái đoạn “>=250L” xem: tìm được hàm b() của class df.

df.f().bA là sever check point x
df.f().bB là sever check point y
df.f().k là tọa độ x
df.f().l là tọa độ y
 

*Phần này liên qua tới “singleton pattern” bạn nào thích thì nghiên cứu thêm nha, cái này mà hiểu thì có lợi sao này lắm á, kinh nghiệm đi học + đi làm ak.

3. Kiểm tra xem đúng không.

Tạo 1 lệnh chat thử xem. Kết nối code với game thì bài trước mình cũng có nói rồi hen, mà nhiều bạn cũng có hướng dẫn rồi ak.

Kết quả:

  

3. Tạo lệnh dịch trái, dịch phải, khinh công, độn thổ:

Code:

/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */


/**
 *
 * @author Tran Thao Nguyen
 */
public class Mod_Fun {


    /**
     * Chat funtion
     *
     * @param content
     */
    public static void chat_com(String content, String comd) {
        /**
         * Check location
         */
        if (content.equals("td")) {
            String con_chat = "Td: [" + df.f().k + " - " + df.f().l + "]";
            cv.a().c(con_chat);
        }
        /**
         * Move up 50
         */
        else if (content.equals("u")){
            shift(0,-20);
        }
        /**
         * Move down 50
         */
        else if (content.equals("d")){
            shift(0,20);
        }
        /**
         * Move left 50
         */
        else if (content.equals("l")){
            shift(-20,0);
        }
        /**
         * Mov right 50
         */
        else if (content.equals("r")){
            shift(20,0);
        } else {
            cv.a().c(content);
        }
    }


    /**
     * Shift loacation
     * @param x add to xLocation
     * @param y add to yLocation 
     */
    public static void shift(int x, int y) {
        /**
         * shift loaction
         */
        df.f().k += x;
        df.f().l += y;
        /**
         * Send loaction
         */
        cv.a().b(df.f().k, df.f().l);
        /**
         * Update time checkpoint
         */
        //df.f().cx = System.currentTimeMillis();
        /**
         * update location checkpoint
         */
        df.f().bA = df.f().k;
        df.f().bB = df.f().l;


    }
}
 

Demo

Video + source ở đây: https://drive.google.com/file/d/1Hq9r-kLW4rd9_u3SSBjc147xY-WWr13H/view?usp=sharing

NguyenKZ

Đăng nhận xét

Mới hơn Cũ hơn