Friday, June 6, 2014

Fakemeta General Usage - Cách sử dụng tổng thể về Fakemeta


Đây là một bản sao của bài viết tôi đã thực hiện trong AMWiki tại URL này:
http://wiki.tcwonline.org/index.php/...28AMX_Mod_X%29
Current FakeMeta and Old

FakeMeta từng là một mini-metamod nội bộ bên trong AMX Mod X. này đã bị xóa trong 1.50, và bây giờ chỉ còn lại các mô-đun. Các mô-đun là một khái niệm hoàn toàn khác nhau, kéo dài, quyền hạn lập trình metamod HL1 đến kịch bản.


Thông tin

FakeMeta là một mô-đun cực kỳ mạnh mẽ cho AMX Mod X có hiệu quả cho phép bạn viết plugin metamod trong Pawn.
Không giống như Engine FakeMeta không sử dụng CPU nếu nó không được bảo phải làm bất cứ điều gì (khác hơn là để tồn tại). Vì lý do này, bạn nên sử dụng FakeMeta hơn Engine. Không có gì trong Ènine đó không phải là trong FakeMeta là - trong khi một số chức năng có thể là ít trừu tượng, nó vẫn có thể đạt được, và thường linh hoạt hơn.


Engine vs. FakeMeta

So sánh giữa Engine và FakeMeta:
FakeMeta: 

Code:
#include <amxmodx> #include <fakemeta>   public plugin_init() {     register_plugin("FakeMeta Test","1.0","Hawk552");         register_forward(FM_PlayerPreThink,"PreThink"); }   public PreThink(id) {     // here you would insert some code         return FMRES_IGNORED; }
Engine: 
Code:
#include <amxmodx> #include <engine>   public plugin_init() {     register_plugin("FakeMeta Test","1.0","Hawk552"); }   public client_PreThink(id) {     // here you would insert some code         return; }
"return FMRES_IGNORED" sẽ được diễn tả sau trên trang này.


Chức năng chung

FakeMeta cũng cho phép bạn làm những việc khác, chẳng hạn như lấy dữ liệu cá nhân (sử dụng PEV, set_pev / get_pdata_int, get_pdata_float, get_pdata_string, set_pdata_int, set_pdata_float, set_pdata_string), buộc các chức năng DLL được thực thi, cũng như kêu gọi Engine (không phải là mô-đun) hàm.


Entvars

Nó rất dễ dàng để đọc entvars trong FakeMeta, tuy nhiên đôi khi nó có thể gây ra vấn đề nếu không được thực hiện một cách chính xác (đó là lý do tại sao engine thường được sử dụng). Entvars là các biến trong cấu trúc chỉ dụ của người chơi (một sắc lệnh là cơ sở cho một tổ chức).

Dưới đây là một ví dụ về cách để lấy entvar armor từ một thực thể trong FakeMeta:
Code:
#include <amxmodx> #include <fakemeta>   public plugin_init() {     register_plugin("FakeMeta Test","1.0","Hawk552");         register_forward(FM_PlayerPreThink, "PreThink"); }   public PreThink(id) {     new value = pev(id,pev_armorvalue); // Lấy armo từ client/thực thể         client_print(id,print_chat,"%i",value); // hiện nó lên trên màn hình         return FMRES_IGNORED; }
DLL / Engine Cách sử dụng hàm

Trong file DLL và những Engine có hàm được gọi khi sự kiện nào đó xảy ra. Chúng có thể được buộc phải được gọi là thông qua FakeMeta. Đây là một ví dụ chung:

Code:
#include <amxmodx> #include <fakemeta>   public plugin_init() {     register_plugin("FakeMeta Test","1.0","Hawk552");         register_forward(FM_PlayerPreThink,"PreThink"); }   public PreThink(id) {     dllfunc(DLLFunc_RegisterEncoders);         return FMRES_IGNORED; }
Tham khảo các cuối dòng trong khi xem các phần DLLFunc và EngFunc, như thường có một số mô tả về paramaters, chẳng hạn như edict_t * p_Entity hoặc khoảng trống. làm mất hiệu lực thường dùng để chỉ không có tham số, trong khi edict_t * p_Entity có nghĩa là thực thể id, vì vậy tham số đầu tiên trong các chức năng sẽ được thực thể gọi hàm trên.


Giá trị trả về

Có 4 giá trị trả lại trong FakeMeta:

  • FMRES_HANDLED --> Một cái gì đó đã được thực hiện trong chức năng này, nhưng gọi một trong các DLL / engine anyways.
  • FMRES_SUPERCEDE --> Ngăn chặn chức năng trong DLL / engine từ được gọi.
  • FMRES_IGNORED --> Gọi chức năng ban đầu.
  • FMRES_OVERRIDE --> Gọi chức năng ban đầu, nhưng thay đổi giá trị trả về.

Constants / General

Một danh sách các hằng số và sử dụng chung có thể được tìm thấy trên trang này:http://www.amxmodx.org/funcwiki.php?go=module&id=16

0 nhận xét:

Post a Comment