[AMXX] Loạt TUT từ cơ bản đến nâng cao

@MrKaii:
- Check PM đi, đừng ngại ngùng. Hãy làm cho giấc mơ của tôi thành hiện thực =))
- Hướng dẫn tôi trình tự học C++ nào :|, có tài liệu không, mấy tài liệu của google vừa dài dòng đọc lại không hiểu. Người ta bảo "chọn sách cho ngắn đọc hiểu dc nhiều" :-"
 
Chỉnh sửa cuối:
nói thực chứ các lão viết kiểu này mình cũng chả biết đâu mà lần
 
Chán nhỉ, mình tưởng viết thế là dễ hiểu lắm rồi, hóa ra................
 
@MrKaii:
- Check PM đi, đừng ngại ngùng. Hãy làm cho giấc mơ của tôi thành hiện thực =))
- Hướng dẫn tôi trình tự học C++ nào :|, có tài liệu không, mấy tài liệu của google vừa dài dòng đọc lại không hiểu. Người ta bảo "chọn sách cho ngắn đọc hiểu dc nhiều" :-"
Học pascal trước đi.
 
buiducduy [B nói:
BÀI 3. TẠO 1 CÂU LỆNH TRONG GAME[/B][spoil]

Có bao giờ bạn mở console (~) lên và gõ 1 vài lệnh để Bá đạo không =)), chắc có nhỉ, ai chơi CS mà không biết console thì thôi đấy

OK, bài học này các bạn sẽ biết đăng kí 1 câu lệnh như thế, có nghĩa là bạn có thể tự tạo ra 1 câu lệnh.
Chúng ta bắt đầu nhé.

Trong amxx có 1 function (hàm/chức năng) cho phép bạn làm thế đó là (cái này mình đã cắt mấy thứ đằng sau, mình thấy nó không cần thiết cho các bạn mới học, để đơn giản bạn có thể nhơ như sau)
1. register_clcmd(”Tên lệnh”, ”Đường dẫn tới func plubic”)
Cái này giúp bạn đăng kí lệnh cho client, hiểu nôm na là bạn gõ mấy chữ cái vào mà nó không hiện ra ở dưới đó

2. register_concmd(”Tên lệnh”, ”Đường dẫn tới func plubic”)
Cái này giúp bạn đăng kí lệnh cho cả server, hiểu nôm na là khi bạn gõ mấy chữ đầu tiên, nó sẽ hiện ra ở bên dưới (như kiểu tìm kiếm của google)

Chúng ta xét 1 ví dụ nho nhỏ nhé (rất rất cụ thể đó, bạn hãy đọc kĩ nhé)

PHP:
#include <amxmodx> // Khai báo thư viện
#include <fun>
//tất cả thư viện nằm trong foder include đó


public plugin_init() // public này sẽ tự động chạy khi server connect (hiểu nôm na là bạn vừa loading xong). Đây là nơi lý tưởng để đăng kí.  Ví dụ bạn muốn đăng kí 1 lớp học thêm, thì bạn phải đăng kí khi vừa mở chứ làm sao mà đợi nó học 5-6 tháng mới đăng kí đúng không :D
{
	register_concmd(”full_health”,”cmd_set_health”)
} 

public cmd_set_health(id) // Plublic này sẽ được gọi khi 1 player gõ lệnh “full_health” , đơn giản chưa, còn tên public bạn đã đăng kí bên trên rồi.  Còn id chính là playerid.  
//Bạn có hiểu id là gì không?. Trên thực tế  , hầu hiện tất cả mọi thứ đều tồn tại dưới dạng THỰC THỂ như cái ô tô hay cái máy bay trên map ,ent id  là 1 con số (1 id), như bạn mua phiếu ở lớp học thêm, số của bạn là 78 thì mình có thể nói id của bạn là 78. và player là 1 dạng thực thể đặc biệt và id của nó là từ 1->32. như vậy id ở đây là những số nguyên trong đoạn từ 1-32. 
// Ví dụ : bạn là thằng player có id là 8, thì khi bạn gõ lệnh “full_health” cái id trong public cmd_set_health(id) sẽ là 8 đó :D . Dễ không nào
{
	client_print(id, print_chat, “Ban da set mau thanh 250”)
	// client_print là hàm để in 1 thông báo ra màn hình
		// print_chat là in ra màn hình theo kiểu CHAT
	// print_chat có thể thay bằng print_center (in giữa màn hình), client_console (in trong console)
	set_user_health(id, 250)
	// đây là lệnh trong fun.inc giúp bạn set máu cho player, do đó thư viện mình đã phải khai báo thư viện fun
	// trong đó id là player id đã đươc giải thích ở trên rôi :D
}
[/spoil]

Em ko hiểu chỗ này, có ai nói rõ hơn ko?
function là gì, nó là file dạng gì? Nó save ở đau hay đó là 1 lệnh trong Pawn!
id nữa, em cũng ko hiểu id là ntn. ID là gì thì em hiểu, nhưng khi viết code, ko lẽ ghi id, ko thay = 1 con số nào à
Có em học đây, bác viết tiếp đi!
 
Chỉnh sửa cuối:
Dẹp Pascal đê, ta ko thích pascal
 
Dẹp Pascal đê, ta ko thích pascal
Hận pascal vl ra. Hồi đi thi tin học trẻ thành phố bị mất giải khuyến khích vì PASCAL đó (Làm ngon lành mà vẫn bị mất giải, lí do dở hơi)
function như trên là 1 hàm/chức năng, cậu vào AMX Studio ở cột bên trái có list function
Giờ đang cần học nhiều cái lệnh, hàm,... Nhiêu đây sợ chưa đủ quá :(
 
1. Đừng khoe giải thành phố ở đây =))
2. Pascal học để làm gì ?, pascal vô tác dụng với những CT lớn
 
1. Đừng khoe giải thành phố ở đây =))
2. Pascal học để làm gì ?, pascal vô tác dụng với những CT lớn
Khoe làm gì ^:)^, bác này sáng tạo vãi =)). Bỏ Pascal từ đấy
Với lại nay mai đi lập trình ai bảo dùng Pascal lập trình đâu :-", nó giúp luyện cách tư duy thuật toán thôi, chả có tác dụng gì khác :-"
 
[/spoil]

Em ko hiểu chỗ này, có ai nói rõ hơn ko?
function là gì, nó là file dạng gì? Nó save ở đau hay đó là 1 lệnh trong Pawn!
id nữa, em cũng ko hiểu id là ntn. ID là gì thì em hiểu, nhưng khi viết code, ko lẽ ghi id, ko thay = 1 con số nào à
Có em học đây, bác viết tiếp đi!

hiểu nôm na theo mình là cái đó lôi từ mấy cái module ra ấy nhỉ
module mà không biết thì thôi rồi
@ngochai: giải thành phố lôi ra làm gì, giỏi thế thì phải tự học amxx ngon rồi nhỉ ?
@dias: học pascal lấy căn bản cũng được mà =))
 
Mình xin đóp góp 1 chút về cơ bản AMXX cho những người mới đến với AMXX.
Bên cạnh đó mình cũng khuyên những người này nên trang bị 1 chút xíu về kiến thức lập trình (any), 1 chút xíu Anh ngữ, 1 chút xíu kỹ năng Google
Về cơ bản AMXX đa số sẽ chia thành 3 đoạn: Đăng ký thư viện/cấu trúc, đăng ký hàm/lệnh, thực thi
Chúng ta sẽ bắt đầu bằng 1 ví dụ cơ bản
#include <amxmodx> //Đăng ký sử dụng thư viện amxmodx
public plugin_init() // Đăng ký lệnh
{
register_plugin("Begin", "1.0", "Newbie") //Đăng ký tên plugin
}
public client_connect(id) // Thực thi lệnh khi client kết nối vô server
{
client_print(id, print_console, "Hello World!") // Thực thi in 1 dòng chữ Hello World! vô bảng console của người đó
}
Nào bây giờ mình sẽ phân tích những thứ tại sao tại sao và tại sao

- Tại sao cần đăng ký thư viện amxmodx?
Đây là thư viện chính của AMXX chứa các lệnh cơ bản. Chúng ta phải khai báo ra thì hệ thống mới hiểu lệnh đó có công dụng gì mà để có thể sử dụng ở bên dưới. Ví dụ: register_plugin, client_print ...v.v... .Nếu có nhu cầu sử dụng thêm các lệnh khác thì cần khai báo thêm thư viện khác. Mỗi thư viện sau khi khai báo sẽ cần được kích hoạt khi plugin được sử dụng trên server. Thông thường các thư viện chính thường nằm trong các bộ module đi kèm trong bản AMXMODX. Như vậy để kích hoạt thư viện đó thì chúng ta sẽ cần kích hoạt module tương úng với thư viện đó (với thư viện amxmodx thì mặc định đã được tự động kích hoạt nên chúng ta không cần tìm module tương ứng để kích hoạt nữa)

- Tại sao trong các lệnh có dấu phẩy "," ?
Thông thường 1 lệnh sẽ có đi kèm 1 chuỗi cấu trúc, và chúng ta cần chỉ rõ ra để lệnh được thực hiện chính xác cái chúng ta muốn. Ví dụ:
client_print(id, print_console, "Hello World!") //in dòng chữ trên người chơi (số thứ tự là id, in lên bảng console, dòng chữ Hello World!)

- id là gì?
Để tiện việc quản lý mọi thứ trong server, AMXX sẽ đánh số thứ tự từng thứ 1. Tuy nhiên thay vì chúng ta phải đi tìm cái chúng ta cần là số thứ tự bao nhiêu thì phức tạp quá, AMXX đã giúp chúng ta đơn giản chuyện này bằng cách tự động lấy số thứ tự cho chúng ta và gán sẵn nó vô hàm tên là id, hàm tên là 0 (hoặc -1) là mặc định tất cả số thứ tự. Tuy nhiên đây chỉ là cách cơ bản khi chúng ta làm việc với 1 mục tiêu, khi làm việc với nhiều mục tiêu hơn thì chúng ta cần làm cách khác. Ví dụ về việc tự động lấy số thứ tự của id
public client_connect(id) //khi có người chơi kết nối vô server, lấy số thứ tự của họ và gán số đó thành id
{
client_print(id, print_console, "Hello World!") // viết dòng chữ Hello World! vô console của người chơi có số thứ tự là id (nếu ai/cái nào không có số thứ tự là id thì sẽ không được in)
}

Kết thúc:
Tuy những điều mình nêu trên hơi dài dòng, nhưng nó là nền tảng cơ bản cần thiết mà mình nghĩ những người mới bắt đầu AMXX nên nắm rõ
GL & HF
 
Chỉnh sửa cuối:
Hận pascal vl ra. Hồi đi thi tin học trẻ thành phố bị mất giải khuyến khích vì PASCAL đó (Làm ngon lành mà vẫn bị mất giải, lí do dở hơi)
Thất bại do chính mình không cẩn thận chứ không phải do ngôn ngữ lập trình, chả có lý do gì mà hận nó cả.
 
Bài viết của bác N?K giải thích dễ hiểu,biết đc từng phần căn bản của 1 câu lệnh và ý nghĩa của nó.:D
 
Thanks bác N?K, để em update lên page 1
 
Thất bại do chính mình không cẩn thận chứ không phải do ngôn ngữ lập trình, chả có lý do gì mà hận nó cả.
[spoil]
Không phải là không cẩn thận mà em bị cái đề thi và bà giám thị troll đau ^:)^
Đề như sau: Cho 1 file input nội dung.......Hãy lập trình để tạo file output sao cho........Nhưng khi vào trong máy đó thấy có 2 cái input (nội dung khác nhau nhưng yêu cầu như nhau), hỏi bà giám thị thì bả nói "Đề hỏi sao làm thế".....Rồi làm y chang như trong đề (đề bảo làm input1), sử dụng input1 để làm bài................................Đến ngày có kết quả thì bị 0 điểm thực hành, lí do vì chưa làm input2 --> Hận pascal từ đó....
[/spoil]
Bác N?K còn biết gì về AMX thì viết hết đi bác \m/
 
cám ơn mấy bạn đã ủng hộ, mình chỉ là phút ngẫu hứng nên viết thôi. GIờ chả biết viết cái gì nữa :D
 
tên diss chưa học pascal nên mới vọc C khổ valve ra đấy =))...
 
[spoil]
Không phải là không cẩn thận mà em bị cái đề thi và bà giám thị troll đau ^:)^
Đề như sau: Cho 1 file input nội dung.......Hãy lập trình để tạo file output sao cho........Nhưng khi vào trong máy đó thấy có 2 cái input (nội dung khác nhau nhưng yêu cầu như nhau), hỏi bà giám thị thì bả nói "Đề hỏi sao làm thế".....Rồi làm y chang như trong đề (đề bảo làm input1), sử dụng input1 để làm bài................................Đến ngày có kết quả thì bị 0 điểm thực hành, lí do vì chưa làm input2 --> Hận pascal từ đó....
[/spoil]
Bác N?K còn biết gì về AMX thì viết hết đi bác \m/
Nó cho 2 file nếu ko chắc thì làm hết cả 2 chứ=))
 
Sao chủ thớt không viết tiếp nhỉ ?
Đang cần học cái này.
 
Back
Top