Đăng nhập

View Full Version : [TLBB] Hỏi hàm Set/GetCopySceneData_Param



Sói Đẹp Trai
20-07-14, 03:36 AM
Như tiêu đề ai biết giúp mình nhé. Giải thích cái hàm này nó lấy giá trị từ khai báo ở chỗ nào. Cách dùng của nó giống với ScriptGlobal nhưng không rõ mấy cái tham biến bên trong nó khai báo ở đâu. Vì nó có liên quan đến hàm tính thời gian tồn tại của phụ bản mà mình mới chỉ làm được bằng cách sử dụng biến toàn cục nhưng cái đó hơi lãng phí vì đây chỉ là Copy Scene. Thanks nhiều.

huuduyen_05
20-07-14, 07:14 AM
mỗi phụ bản trong tlbb có 32 biến tạm cho mình sử dụng, 32 biến đó lưu thông tin của phụ bản đó.

Cách set:
LuaFnSetCopySceneData_Param( sceneId, x, y ) => set y vào vùng biến x của phụ bản
Cách get:
LuaFnGetCopySceneData_Param( sceneId, x) => trả về giá trị y

Sói Đẹp Trai
20-07-14, 01:21 PM
mỗi phụ bản trong tlbb có 32 biến tạm cho mình sử dụng, 32 biến đó lưu thông tin của phụ bản đó.

Cách set:
LuaFnSetCopySceneData_Param( sceneId, x, y ) => set y vào vùng biến x của phụ bản
Cách get:
LuaFnGetCopySceneData_Param( sceneId, x) => trả về giá trị yCảm ơn anh. Nhưng mà em còn một thắc mắc nữa là cái giá trị này nó không tồn tại nếu chưa được ghép vào phụ bản. Và cái x kia nó có thể là tên mình đặt ra đc ko hay chỉ có thể là số?
Ví dụ thay vì thế này
LuaFnSetCopySceneData_Param(sceneId,1,0)
Thì mình có thể để như này cho nó dễ nhìn
LuaFnSetCopySceneData_Param(sceneId,SHENGXIAOLEITA I_LAST_DIED,0)
Có đc ko ạ?

huuduyen_05
20-07-14, 04:29 PM
Cảm ơn anh. Nhưng mà em còn một thắc mắc nữa là cái giá trị này nó không tồn tại nếu chưa được ghép vào phụ bản. Và cái x kia nó có thể là tên mình đặt ra đc ko hay chỉ có thể là số?
Ví dụ thay vì thế này
LuaFnSetCopySceneData_Param(sceneId,1,0)
Thì mình có thể để như này cho nó dễ nhìn
LuaFnSetCopySceneData_Param(sceneId,SHENGXIAOLEITA I_LAST_DIED,0)
Có đc ko ạ?

Cái x đó tất nhiên là số rồi.
Nhưng muốn dễ nhìn thì khai báo 1 biến nào đó trước, rồi lát thay biến đó vào x thì cũng vậy.
Khi khởi tạo phụ bản thì set luôn các giá trị đó.

Sói Đẹp Trai
20-07-14, 05:13 PM
Cái x đó tất nhiên là số rồi.
Nhưng muốn dễ nhìn thì khai báo 1 biến nào đó trước, rồi lát thay biến đó vào x thì cũng vậy.
Khi khởi tạo phụ bản thì set luôn các giá trị đó.

OK cảm ơn anh nhiều......................................

--- Chế độ gộp bài viết ---

Còn cái em thắc mắc nữa đó là cái phần tính thời gian cho phụ bản ấy mà anh. Thì cái phần tính đó nó nằm trong function tên OnSceneTimer đúng không ạ. Và cái function đó hoạt động liên tục suốt thời gian diễn ra phụ bản hay là nó chỉ dừng lại. Em có liên tưởng đến một cái hàm TG hiện tại-TG khởi tạo=TG phụ bản nhưng mà không rõ là nó hoạt động ra sao, có liên tục không hay bị ngắt quãng.

huuduyen_05
21-07-14, 07:35 AM
Hàm xxx_OnSceneTimer chạy liên tục trong mỗi giây.
Đối với phụ bản thì nó sẽ dừng khi phụ bản đóng, đối với hàm ở scene.lua thì nó chạy suốt trong quá trình vận hành server.

Phụ bản chỉ đóng khi lúc tạo có set hàm LuaFnSetCopySceneData_NoUserCloseTime (sceneid, thoigian)

Trong đó: thoigian => biến lưu thời gian tính bằng ms.

Trường hợp của Sói muốn viết phụ bản kết thúc sau 1 khoảng thời gian thì trong xxx_OnSceneTimer -> cho 1 biến set +1 liên tục sau mỗi giây.

Trong hàm đó cũng check sao cho nếu biến đó đạt đến xx giây thì -> cho out all mem trong phụ bản.
Sau thoigian ms không có mem nào trong phụ bản thì phụ bản tự đóng.

Tham khảo các script chuẩn gốc để xem cách vận hành của script như: Phiêu Miễu Phong.
Hoặc tham khảo script mình đã share: phụ bản 12 con giáp (sinh tiêu lôi đài)

Sói Đẹp Trai
21-07-14, 06:03 PM
Hàm xxx_OnSceneTimer chạy liên tục trong mỗi giây.
Đối với phụ bản thì nó sẽ dừng khi phụ bản đóng, đối với hàm ở scene.lua thì nó chạy suốt trong quá trình vận hành server.

Phụ bản chỉ đóng khi lúc tạo có set hàm LuaFnSetCopySceneData_NoUserCloseTime (sceneid, thoigian)

Trong đó: thoigian => biến lưu thời gian tính bằng ms.

Trường hợp của Sói muốn viết phụ bản kết thúc sau 1 khoảng thời gian thì trong xxx_OnSceneTimer -> cho 1 biến set +1 liên tục sau mỗi giây.

Trong hàm đó cũng check sao cho nếu biến đó đạt đến xx giây thì -> cho out all mem trong phụ bản.
Sau thoigian ms không có mem nào trong phụ bản thì phụ bản tự đóng.

Tham khảo các script chuẩn gốc để xem cách vận hành của script như: Phiêu Miễu Phong.
Hoặc tham khảo script mình đã share: phụ bản 12 con giáp (sinh tiêu lôi đài)Vậy em hiểu rồi ạ trước không biết nó chạy liên tục cứ gọi đi gọi lại cái thủ tục đó :D. Em sợ cái đó nó gây tràn bộ nhớ nên chưa dám thử. Cái đó nó gọi là quay lui thì phải...

huuduyen_05
21-07-14, 09:25 PM
Vậy em hiểu rồi ạ trước không biết nó chạy liên tục cứ gọi đi gọi lại cái thủ tục đó :D. Em sợ cái đó nó gây tràn bộ nhớ nên chưa dám thử. Cái đó nó gọi là quay lui thì phải...

Đệ qui chứ quay lui gì.

Mà đối với server tl thì nó run suốt không sao, trước mình có code hàm anti hack đổi tên cho bản 3 lỗ.
Viết ở scene.lua cứ sau mỗi 3s thì call hàm check tên của nhân vật và kiểm tra điều kiện addimpact cho nhân vật.
Server chỉ lỗi khi chạy vòng lặp vô hạn ở phụ bản => dump thread.