Friday, June 6, 2014

Half Life 1 Events: Registering, Using, and Reading them - Đăng Lý, Sử Dụng và Đọc chúng


Helpful Links
Half Life 1 Events and their Data
Correct use of certain Events by: VEN

Giới Thiệu

Hướng dẫn này sẽ bao gồm những cách chính xác để đăng ký, sử dụng và đọc các sự kiện. Nó được viết để giải quyết mới bắt đầu mới với ngôn ngữ Pawn.  Vì vậy, cho phép bắt đầu:

Phần 1 : Đăng Ký Sự Kiện

Đăng ký sự kiện là khá dễ dàng. Chỉ cần sử dụng register_event trong plugin_init () để làm cho sự kiện đó có thể sử dụng trong mã của bạn.


e.x.:

Code:
#include <amxmodx> #include <amxmisc> public plugin_init() {     register_plugin("Events", "1.0", "Rolnaaba")     register_event("DeathMsg", "Death", "a", "3!0") }
khi sử dụng register_event tham số đầu tiên là sự kiện được đăng ký (trong trường hợp này là "DeathMsg" sự kiện, được gọi là bất cứ khi nào có ai chết) thứ hai là chức năng được gọi là khi điều này thậm chí xảy ra (trong trường hợp này là "Death "), tham số thứ ba là những tham số (mà trong trường hợp này là cờ" a "(sự kiện toàn cầu), để biết thêm thông tin về cờ kiểm tra amxmodx.inc của bạn), tham số thứ tư là hạn chế. Trong trường hợp này các hạn chế như sau: 3 đối số (mà là liệu killshot là một headshot hay không), có thể không ("") bằng "0". (điều này có nghĩa là bắn giết phải là một headshot cho các chức năng được kêu gọi) 

Đây là mã từ amxmodx.inc liên quan đến register_event:
Code:
/* Registers event on which a given function will be called
* Flags:
* "a" - global event.
* "b" - specified.
* "c" - send only once when repeated to other players.
* "d" - call if is send to dead player.
* "e" - to alive.
* Examples for conditions:
* "2=c4" - 2nd parameter of message must be sting "c4".
* "3>10" - 3rd parameter must be greater then 10.
* "3!4" - 3rd must be different from 4.
* "2&Buy" - 2nd parameter of message must contain "Buy" substring.
* "2!Buy" - 2nd parameter of message can't contain "Buy" substring. */
native register_event(const event[],const function[],const flags[],cond[]="", ... );
Phần 2 : Sử Dụng 

Sử dụng một sự kiện thậm chí còn dễ dàng hơn so với gọi nó. Tất cả các bạn làm là đăng ký các sự kiện bạn muốn sử dụng sau đó vào chức năng mà bạn thiết lập, sau đó thực hiện những gì bạn muốn làm. 
Cho phép nói rằng bạn muốn tạo ra một tin nhắn trò chuyện (gửi đến tất cả mọi người trên máy chủ) nói rằng "một người nào đó đã chết bởi một headshot"
e.x.:

Code:
#include <amxmodx> #include <amxmisc> public plugin_init() {     register_plugin("Events", "1.0", "Rolnaaba")     register_event("DeathMsg", "Death", "a", "3!0") } public Death() {     client_print(0, print_chat, “Someone has died by a headshot”) }

Phần 3: đọc dữ liệu sự kiện đó thu thập

Hầu hết các sự kiện có dữ liệu đặc biệt được thu thập khi sự kiện xảy ra trong game. Cho phép sử dụng "DeathMsg" sự kiện là một ví dụ. Sự kiện này được gọi là bất cứ khi nào có người chết. Các dữ liệu thu thập được như sau: (1) ID của Killer, (2) ID của nạn nhân, (3) Có phải Kill A Headshot hay không, (4) Vũ khí Tên đã ra Kill. (xem "Sự kiện HL1 và dữ liệu của họ" trong Liên kết hữu ích Phần đầu của hướng dẫn này để biết thêm thông tin về tất cả các sự kiện và dữ liệu của họ). Điều này có nghĩa chúng ta có thể sử dụng chức năng read_data để có được dữ liệu này. 
e.x.:

Code:
#include <amxmodx> #include <amxmisc> public plugin_init() {     register_plugin("Events", "1.0", "Rolnaaba")     register_event("DeathMsg", "Death", "a", “3!0”) } public Death() {     new victim = read_data(2)     client_print(victim, print_chat, “You died by a headshot”) }
Điều này sẽ có được ID của người chết (new victim = read_data (2)) và in "You died by a headshot" trong trò chuyện của họ, khi "DeathMsg" sự kiện được gọi là. Bạn sử dụng read_data (2) kể từ khi nạn nhân ID là gói thứ hai của dữ liệu thu thập trong sự kiện này. Nếu chúng ta đã viết:

Code:
#include <amxmodx> #include <amxmisc> public plugin_init() {     register_plugin("Events", "1.0", "Rolnaaba")     register_event("DeathMsg", "Death", "a", “3!0”) } public Death() {     new victim = read_data(1)     client_print(victim, print_chat, “You died by a headshot”) }
Điều này sẽ có in "Ngài đã chết bởi một headshot" trong trò chuyện của màn hình của kẻ giết người kể từ khi chúng tôi sử dụng read_data (1) để đọc các gói dữ liệu đầu tiên, mà trong trường hợp này là những kẻ giết người ID, và không read_data (2) (các nạn nhân ID).

0 nhận xét:

Post a Comment