[Hướng Dẫn] [Hướng dẫn] Biến

TkTsTkTs Posts: 482Registered
Nếu bạn chưa biết biến là gì thì mình khuyên bạn nên tải và chơi game NÀY, đây là một game thế loại Hướng dẫn đã được Việt hóa bởi thành viên TTC. Trong đó có hướng dẫn rất nhiều thứ cơ bản về biến, công tắc, và nhánh điều kiện...

Nếu bạn đã nắm vững được ý nghĩa và cách thức hoạt động của biến rồi thì sẽ dễ dàng tiếp nhận hướng dẫn này hơn.

[chapter]Tạo và nhập mật khẩu[/chapter]
Các Event có vai trò yêu cầu người chơi phải nhập mật khẩu chính xác để được qua màn mới, phần thưởng, hoặc giải đố... đều có một cách làm giống nhau. Đầu tiên mở Database (F9), chọn tab Actor và tạo một nhân vật mới có tên rỗng, mật khẩu chính là tên của nhân vật này. Bạn có thể đặt nickname cho nó là Mật khẩu để nhận biết giữa các nhân vật khác.
KrJBoH0.png

Sau đó bạn tạo một Event đặt tên là [Tạo mật khẩu] với nội dung sau:
MeUXkCX.png

Lệnh Name Input Processing ta sẽ chỉnh như sau:
C91Xm0T.png

Lệnh này cho phép ta chỉnh sửa tên của nhân vật và cũng là cách duy nhất để cho người chơi nhập liệu vào. Nếu bạn nhập là "AAA" thì lúc này tên của nhân vật id 2 sẽ trở thành "AAA". 

Kế tiếp bạn tạo một biến mới tên là [Mật khẩu mới]gán tên của nhân vật id 2 vào. 
8mifU8N.png

Lúc này giá trị của biến [Mật khẩu mới] sẽ là "AAA". Biến [Mật khẩu mới] này sẽ cập nhật mới mỗi lần bạn chạy Event này.

Vậy là xong Event dùng để tạo một mật khẩu mới, tiếp đến là Event cho phép bạn nhập và kiểm tra xem mật khẩu bạn nhập vào có trùng khớp với mật khẩu mà bạn tạo trước đó không. Event [Kiểm tra] có nội dung như sau:
kMzpcck.png
Ý nghĩa của từng dòng lệnh:
+Đầu tiên là [b]Show Text[/b]... đơn giản để hỏi người chơi mật khẩu.
+Vì hiện tại tên của nhân vật id 2 đã là "AAA" rồi nên để tránh việc mật khẩu bị hiển thị thì 
ta sẽ dùng lệnh [b]Change Actor Name[/b] và sửa tên nhân vật id 2 thành rỗng.
+Lệnh [b]Name Input Processing[/b] sẽ hiển thị màn hình cho ta nhập mật khẩu vào.
+Cuối cùng là so sánh mật khẩu người chơi nhập vào có trùng khớp với mật khẩu được tạo không. 

Chạy lệnh Conditional Branch và chỉnh như sau:
zNtsOsr.png

Trong ô script ta viết như sau:
$game_variables[1] == $game_actors[2].name
Lệnh Conditional Branch này sẽ lấy giá trị của biến 1 ($game_variables[1]) so sánh với tên của nhân vật id 2 ($game_actors[2].name), và nó sẽ xảy ra hai trường hợp đúng hoặc sai.
Vậy là bạn đã biết được cách tạo và kiểm tra mật khẩu bằng Event. Quá đơn giản!

[chapter]Biến ngẫu nhiên[/chapter]
Biến ngẫu nhiên là một biến sẽ trả về một giá trị ngẫu nhiên nằm trong một khoảng do bạn quyết định. Mình sẽ hướng dẫn các bạn làm một Event giao nhiệm vụ ngẫu nhiên tuần hoàn. Đầu tiên tạo một Event mới đặt tên là [Nhiệm vụ ngẫu nhiên] với nội dung đơn giản trước là giao nhiệm vụ:
25zBUpL.png

Trong phần [Được thôi!], bạn tạo một biến mới tên [Biến ngẫu nhiên] và chỉnh giá trị như sau:
gvK9iOg.png

Kiểu Set sẽ làm mới giá trị của [Biến ngẫu nhiên] bằng một giá trị Random (ngẫu nhiên) từ 1 tới 3. Vậy là mỗi khi nhận nhiệm vụ thì biến này sẽ có giá trị khác nhau với tỉ lệ 33,33%. Tiếp đến ta tạo các nhiệm vụ tương ứng với các biến, vì ở đây là 1 hoặc 2 hoặc 3 nên chỉ có 3 nhiệm vụ. Ta sẽ dùng lệnh Conditional Branch để kiểm giá trị biến:
9Nexp6Z.png

Làm tương tự với hai giá trị 2 và 3. Sau đó ta thêm vào nội dung của từng nhiệm vụ:
TRaSyxY.png

Kế tiếp ta cần dùng một công tắc (Switch) hoặc biến (Variable) để phân biệt lúc đã nhận được nhiệm vụ và lúc hoàn thành:
A5KnesX.png

Ta tạo thêm 1 trang Event mới, và có các tùy chọn sau tương ứng với yêu cầu nhiệm vụ:
3ELmguy.png

Đầu tiên ta sẽ cần đến một biến mới để kiểm tra xem ta thực hiện đúng yêu cầu nhiệm vụ chưa:
1hyD5dv.png

Cho dễ hình dung mình sẽ dùng giá trị tương ứng với mỗi nhiệm vụ. 
Tiếp đến là phần [Trả nhiệm vụ], gồm có các lệnh Conditional Branch để kiểm trả bạn có thực hiện đúng yêu cầu nhiệm vụ được giao không:
Lfk62pf.png
+Đầu tiên ta sẽ kiểm tra xem người chơi được giao nhiệm vụ số mấy bằng biến [Biến ngẫu nhiên]
+Sau khi biết được nhiệm vụ nào rồi thì kiểm tra xem người chơi đã hoàn thành yêu cầu được giao chưa
        +Nếu ta chọn "Hôn!" thì sẽ đáp ứng được yếu cầu và hoàn thành nhiệm vụ. Lúc này ta sẽ reset lại biến [Yêu cầu] = 0 để tránh việc gian lận và tắt công tắc [Đã nhận] đi, và Event này sẽ trở lại trang 1.
        +Nếu không đáp ứng được thì sẽ bị sỉ nhục

Làm tương tự cho các nhiệm vụ 2 và 3.
Vậy là xong cách làm một Event giao nhiệm vụ tuần hoàn. Các bạn cũng có thế áp dụng biến ngẫu nhiên này để làm các Event như lời thoại ngẫu nhiên cho NPC, thời tiết ngẫu nhiên, quay sổ xố các kiểu,vvv...

Vậy là xong hai Event đơn giản. Tiếp đến thì hơi nhức não tí, đó là những khả năng của biến. Bạn có biết rằng một biến được tạo nên từ nhiều biến khác không? Có nghĩa là bạn có thể tạo ra hơn 5000 biến so với mặc định của Ace. Theo lý thuyết thì bạn có thể tạo ra tới hơn 2 tỉ biến (rãnh ngồi tạo chơi vui lắm), nhưng mà mặc định Ace chỉ cho phép ta tạo tới 5000 biến thôi. Vậy thì lúc này ta sẽ dùng đến một thứ được gọi là mảng.

Đầu tiên ta cần làm quen với một script call để tạo biến:
$game_variables[x] = y
x là id của biến trong Database
y là giá trị của nó (chữ, số, chữ và số, giá trị của biến khác, các thông tin, chỉ số của game có thể lưu được,vvv...)

Để rõ hơn hãy thử tạo một Event như sau:
xZrJpBF.png
Ta tạo hai biến mới có id là 4 và 5 có giá trị tương ứng là 1000 và 5000. Sau đó dùng \v[x] để kiểm tra.

Kế tiếp là cách tạo mảng, ta dùng lệnh script call:
$game_variables[x] = [x1, x2, x3, xn]
Lúc này x không còn đại diện cho một biến mà là một mảng gồm nhiều biến con. Các biến con sẽ 
được đặt trong 2 dấu "[" và "]" và ngăn cách nhau bằng dấu ",". Ta hãy thử đưa ba biến con vào mảng bằng script call:
$game_variables[4] = [1000, 5000, 9999]

vậy trong mảng số 4 này đã có 3 biến con tương ứng là 1000, 5000, và 9999. Ta phân biệt chúng như sau:
$game_variables[x][n]
x là tất nhiên là id của mảng
n là vị trí của biến con (bắt đầu từ 0 nhé)
Để xem mảng ta dùng lệnh: \v[x]

Để gọi ra từng biến con, ta cần phải lưu tạm giá trị của biến con đó vào một biến mới:
$game_variables[z] = $game_variables[x][n]
z là id của biến tạm

Ta thử lưu 3 biến con trong mảng vào và 3 biến tạm và gọi chúng ra nhé:
8cPVa4O.png
Nếu như bạn gọi các biến con không tồn tại trong mảng thì nó sẽ cho ra giá trị là 0.

CHÚ Ý:
+Script Call dùng để tạo mảng phải được để riêng biệt để tránh nhầm lẫn.
+Việc lưu một giá trị mới vào biến chứa mảng sẽ dẫn đến việc mảng bị xóa đi. (ví dụ bạn chỉnh cho biến số 4 giá trị là 1 thì toàn bộ mảng sẽ bị xóa và có giá trị mới là 1)

Như đã nói ở trên, mảng có thể chứa biến loại chữ hay còn được gọi là chuỗi kí tự. Chuỗi cũng giống như số nhưng nó đặc biệt phải được đặt trong hai dấu " ". Ta hãy thử tạo một mảng với các biến con là chữ:
x9d3urV.png
Nhưng sao kết quả lại khác, đó là do mình đã thực hiện nối chuỗi kí tự:
$game_variables[5]=
$game_variables[4][0] + " " + "sệt cái " + 
$game_variables[4][1]

Còn một điều quan trọng nữa là đối với các dữ liệu dạng chuỗi nào trong Database đã được lưu vào một biến thì biến đó được xem là một mảng luôn. Ví dụ ta sẽ lưu tên của nhân vật id 1 (Eric) vào biến số 4:
548ThaA.png
Lúc này biến số 4 đã trở thành mảng và lưu 4 chuỗi kí tự sau: "E", "r", "i", "c"

Sau khi đã biết rõ về mảng, ta có thể nâng cấp Event mật khẩu lên một mức đặc biệt hơn:
wqDgzrU.png

Đây là script call:
$game_variables[4]=$game_party.leader.name
$game_variables[5]=$game_party.gold.to_s()
#ở đây ta phải .to_s() để chuyển dạng số sang dạng chuỗi, chỉ có chuỗi mới ghép với chuỗi được thôi
$game_variables[6]=
$game_variables[4][0]+
$game_variables[5]
#Ở đây ta ghép chữ đầu trong tên trưởng nhóm với số tiền hiện tại và lưu nó vào biến số 6

CHÚ Ý: Đúng! Ta có thể lồng mảng trong mảng (mảng hai chiều). Vì phần này khó hiểu lắm nên 
mình để LINK BÀI GỐC cho ai muốn thì xem nhóe.

Vậy là xong! Nếu chịu khó vọc thì bạn có thể làm ra các Event như hệ thống kiểm tra nhiệm vụ, 
hệ thống sinh tồn (đói, khát), hệ thống thời gian, vvv...

[chapter]Nguồn[/chapter]
seita

Comments

Sign In or Register to comment.