Thứ Tư, 22 tháng 4, 2009

Tự viết lệnh Half Life bắn súng ngắm không tâm

Trong Counter-strike, việc tận dụng lợi thế sử dụng các lệnh là cực kì cần thiết, ở đây tôi xin đề cập đến các tệp script do người chơi tự viết, ví dụ như script mua nhanh (Một tệp *.cfg đàng hoàng chứ không fải bind bound gì đâu nhé), nếu ta mua nhanh hơn địch thủ thì có thể tận dụng được lợi thế 5 giây mua súng đạn đầu tiên, lệnh chống rung giúp bắn 5-1, 4-4, 4-2, 3-5 tốt hơn, lệnh bắn ngắm b46 không có tiếng động sẽ giấu tung tích bạn, địch thủ không biết bạn đang chơi súng gì (cho đến khi hắn die :P ) v.v....
Trước hết xin các bạn tìm hiểu SCRIPT FILE là gì.
SCRIPT FILE là một file có đuôi *.cfg (config), được kích hoạt khi ta goi nó bằng lệnh /exec trong Half Life. Nó bao gồm các lệnh có sẵn trong HL và các lệnh do người chơi tự định nghiã (chủ yếu bằng aliases).

Ta hãy tìm hiểu dần bằng cách tạo lệnh bắn súng ngắm không tiếng. Xin hãy xem mã nguồn:

==============================
//Mẫu nội dung một script file đơn giản
alias d1 "developer 1"
alias d0 "developer 0"
d1
echo -=]Lệnh bắn súng ngắm AWP (Còn gọi theo tên mua là b46) không tiếng[=-
echo -=]Viết bởi alley cat[=-
echo -=]Tham khảo từ OGC.DE[=-
d0
alias +b46 "+attack; impulse 100"
alias -b46 "impulse 100; -attack"
alias bat46 "bind mouse1 +b46; bind f2 tat46; d1; echo -=]B46 KHÔNG TIẾNG: Bật[=-; d0"
alias tat46 "bind mouse1 +attack; bind f2 bat46; d1; echo -=]B46 KHÔNG TIẾNG: Tắt[=-; d0"
bind f2 bat46
==============================

các bạn chỉ cần đơn giản save đoạn text trên vào một file đặt tên tuỳ ý có đuôi là *.cfg (ví dụ: 46.cfg) và lưu file đó vào thư mục ../cstrike
sau đó khi nào vào chơi CS, bạn kéo menu lệnh xuống (nút ~) và gõ dòng gọi tệp "/exec 46.cfg"
Vậy là xong, nhấn f2 để bật/tắt script này.

Như vậy, các bạn có thể thấy các lệnh trên đều là quen thuộc cả, dễ cả :D, nhưng ai đã từng học lập trình thì cũng đều qua TP, cũng thấy câu lệnh dễ cả, nhưng vận dụng nó vào mục đích mới khó, đúng không? Đây cũng vậy, chúng ta hãy phân tích kĩ đoạn code trên.
Ý tưởng:
Tận dụng tiếng bật/tắt đèn pin trong trò chơi (một tiếng "xịch" nhỏ), ta làm như sau: tạo một script sao cho khi ấn chuôtị trái (bắn) thì máy thực hiện các việc: bắn, bật đèn, tắt đèn, thôi bắn. Luc đó âm thanh phát ra là Tiếng súng, tiếng đèn, tiếng đèn, hết tiếng và tiếng súng sẽ bị tiếng bật đèn lấp đi.
Thực hiện:

==============================
alias d1 "developer 1"
alias d0 "developer 0"
:Khai báo lệnh d1, d0 là lệnh bật/tắt chế độ developer (dùng cho lệnh echo)
d1
echo -=]Lệnh bắn súng ngắm AWP (Còn gọi theo tên mua là b46) không tiếng[=-
echo -=]Viết bởi alley cat[=-
echo -=]Tham khảo từ OGC.DE[=-
d0: Hiện dòng thông báo khi script được gọi, các dòng trên sẽ xuất hiện trên màn hình
alias +b46 "+attack; impulse 100"
alias -b46 "impulse 100; -attack":Khai báo lệnh +/-b46 là lệnh chính, thể hiện ý tưởng ta nói ở trên.
alias bat46 "bind mouse1 +b46; bind f2 tat46; d1; echo -=]B46 KHÔNG TIẾNG: Bật[=-; d0"
alias tat46 "bind mouse1 +attack; bind f2 bat46; d1; echo -=]B46 KHÔNG TIẾNG: Tắt[=-; d0": khai báo lệnh bật/tắt script, thực tế là bind nút chuột trái theo ý muốn bật/tắt lệnh bắn không tiếng.
bind f2 bat46: Gán lệnh cho nút F2
==============================

Như vậy các bạn thấy lệnh alias xuất hiện nhiều nhất trong script này, đúng không?
đó là một lệnh rất hữu ích, cú pháp của nó là alias tên_lệnh "lệnh hay các lệnh", tức là "tôi muốn" + "lệnh này" + là "thế này". "Thế này" bắt buộc phải là các lệnh thực của Half Life hay một alias khác đã được định nghĩa trước đó, ví dụ: alias +b46 "+attack; impulse 100"
alias -b46 "impulse 100; -attack" (Các lệnh trong ngoặc kép đều là của HL)
alias bat46 "bind mouse1 +b46; bind f2 tat46; d1; echo -=]B46 KHÔNG TIẾNG: Bật[=-; d0"
(Lệnh +b46 đẵ được khai báo)v.v...tôi sẽ nói thêm vào bài sau. Như vậy, giả sử các bạn muốn tạo lệnh vừa thay đạn vừa nói với đòng đội là bạn thay đạn, bạn cần các lệnh +/-reload, say_team đúng không? các bạn có thể bind shift "+reload; say_team .:: Đang nạp đạn, bắn che giúp với ::."
. Nhưng các bạn có thể khai báo một lệnh "napdan" như sau:alias napdan "+reload; say_team .:: Đang nạp đạn, bắn che giúp với ::."
.Sau đó bạn chỉ cần bind shift "napdan" là được. Tức là máy đã hiểu "napdan" là "+reload; say_team .:: Đang nạp đạn, bắn che giúp với ::.".
Thôi mệt rồi, tôi nghỉ đây, anh em nào muốn tìm hiểu sâu vào CS, muốn lấy các script mà tôi đã viết hay sưu tầm thì cùng trao đổi nhé.
Theo 848.vn

1 Comment:

Meoluoihvtc said...

Thank a. Nhưng mờ e vẫn mù tịt. :D . A có thể up trực tiếp file hoàn thiện lên được không. :D

Đăng nhận xét

» VnTim™ cảm ơn bạn đã đọc bài viết.
» Nếu có thắc mắc hay góp ý, bạn hãy để lại một nhận xét.
» Nếu thấy bài viết hay hãy chia sẻ với những người quanh bạn.
» Bạn có thể sử dụng một số thẻ HTML như <b>, <i>,<a>.
» Vui lòng đăng những nhận xét lịch sự và gõ tiếng Việt có dấu nếu có thể.
» Rất cảm ơn những comment thiện ý.

 

VnTim™ Trái Tim Việt Nam Copyright © 2010 VnTim™ Trái Tim Việt Nam