Kết quả 1 đến 2 của 2
Chủ đề: Lua basic
-
15-12-14, 04:50 PM #1
- Ngày tham gia
- Apr 2011
- Đang ở
- 地獄
- Bài viết
- 3,991
- Thanks
- 369
- Thanked 4,068 Times in 1,403 Posts
Lua basic
LUA là ngôn ngữ lập trình mở, nó có đầy đủ các tính chất của một ngôn ngữ mở, các hàm trong nó có thể được build từ nhiều ngôn ngữ khác. Nói nôm na là như vậy. Đó là cái lý do giải thích cho mấy cái hàm riêng trong game TLBB.
Để làm được những script đơn giản trước tiên bạn phải biết lập trình, nếu ai biết rồi có thể tham khảo webside chuyên về Lua basic.
Code:http://www.lua.org/pil/1.html
Các khái niệm như biến, kiểu, mảng, bản ghi hay chuỗi cần đọc kỹ hơn một chút. Đặc biệt trong lua mọi thứ đều được định nghĩa dạng con trỏ, ví dụ như muốn khai báo biến nó na ná Java và C, ta dùng cấu trúc.
Code:local Tên_biến=Giá_Trị <<Lưu ý là nếu không có phần Giá_Trị thì Tên_biến mặc định sẽ là kiểu con trỏ nil>>
Code:local Tên_mảng={} <<Mảng này sẽ mặc định các phần tử của nó = nil và số phần tử ban đầu = 0>> local Tên_mảng={1,2,"a","b"} <<Mảng này gồm 4 phần tử khác nil và được định nghĩa sẵn đánh số từ 1 đến 4, Phần tử thứ 3 có giá trị "a">>
Code:getn(Tên_Mảng)
Ví dụ cách định vị phần tử của mảng như sau.
Code:local My_Array={} My_Array["Soi"]="Soi" My_Array[0]=0
Code:Lệnh rẽ nhánh if BT_Logic_1 then TH_Lệnh_1 elseif BT_Logic_2 then TH_Lệnh_2 ... else TH_Lệnh_N end //Chú ý là elseif này viết liền vẫn đúng mà tách ra cũng không sai nhé. Vòng lặp for for i=x,y do end //Vòng lặp với i chạy từ x đến y, mỗi lần lặp i tăng 1 đơn vị, nếu y<x thì vòng lặp ko tồn tại. Nó giống vòng for bên Pascal. Vòng lặp repeat until repeat until BT_Logic //Vòng lặp này sẽ thực hiện lệnh trước khi kiểm tra điều kiện BT_Logic, cấu trúc này giống bên Pascal và bên C/Java là do..while Vòng lặp while do while BT_Logic do end //Vòng lặp này ngược với repeat until nghĩa là kiểm tra điều kiện trước khi thực hiện lệnh, giống bên Pascal Lệnh thoát khỏi vòng lặp và tiếp tục vòng lặp Để thoát khỏi vòng lặp ngay ta dùng lệnh break và để tiếp tục vòng lặp bỏ qua các lệnh bên dưới ta dùng lệnh continue. Hàm con function Tên_hàm(Tham_biến_1,Tham_biến_2,...,Tham_biến_N) return Giá_trị_của_hàm end Khóa return có thể có hoặc không tùy mục đích, nhưng một khi đã return thì sẽ out ra khỏi hàm con ngay lập tức. //Lưu ý các phương pháp đệ quy quay lui hoàn toàn vẫn áp dụng được, và hàm có thể không trả về kiểu gì giống procedure của Pascal và void của Java/C.
Code:--Các hàm tính toán trên số thực math.mod(x,y) => Trả về giá trị phần dư của phép chia 2 số nguyên x cho y. math.floor(x) => Trả về số nguyên gần nhất nhỏ hơn số thực x, giống hàm trunc(x) bên Pascal. math.abs(x) => Trả về trị tuyệt đối của số thực x. math.sqrt(x) => Trả về căn bậc 2 số học của số thực x. --Các hàm trên chuỗi string.len(s) => Trả về độ dài chuỗi s. string.sub(s,x,y) => Trả về chuỗi con của s tính từ vị trí x đến y. Nếu y vượt quá độ dài chuỗi s thì mình chưa check cái này nhưng theo suy đoán nó sẽ trả ra giá trị nil, nếu không tìm thấy chuỗi x trong s thì hàm trả về giá trị nil. string.gsub(s,x,y) => Trả về chuỗi s sau khi đã thay thế tất cả các chuỗi con x thành y. string.find(s,x) => Tìm vị trí chuỗi con x trong s. Lưu ý không có khái niệm chuỗi giống mảng char như các ngôn ngữ lập trình khác. Vì thế muốn lấy phần tử thứ i của chuỗi s ta phải dùng hàm string.sub(s,i,i) tostring(x) => Chuyển số x thành chuỗi tonumber(x) => Chuyển chuỗi x thành số. Trường hợp không chuyển được hàm trả về giá trị nil. type(x) => Trả ra kiểu của giá trị x. Ví dụ type("a")=="string", type(1)=="number" Lưu ý là không thể so sánh lớn nhỏ một kiểu xác định với con trỏ nil. Ví dụ 4>nil, s<nil. Nếu là 4~=nil và s~=nil thì ok. Trong lua hoàn toàn thực hiện được phép cộng 2 số lớn mà bên ngôn ngữ khác trừ Java, Python ta phải xây dựng hàm riêng.
Một ví dụ về code Lua Basic
Ai còn ý kiến gì về Lua basic cứ post tại đây nếu biết mình sẽ giải đáp. Hẹn gặp lại vào topic Lua in game.Lần sửa cuối bởi Sói Đẹp Trai, ngày 11-01-15 lúc 03:11 AM.
Khách viếng thăm hãy cùng Sói Đẹp Trai xây dựng diễn đàn CLBGAMESVN vững mạnh nhé!
-
The Following 3 Users Say Thank You to Sói Đẹp Trai For This Useful Post:
dinhdtd (16-12-14), makute7413 (16-12-14),
zacktt(17-12-15)
-
21-08-23, 11:05 PM #2
Ðề: Lua basic
tonumber(x) => Chuyển chuỗi x thành số. Trường hợp không chuyển được hàm trả về giá trị nil.
cái này chuyển x thành số, nếu mk muốn chuyển x thành chuỗi ký tự dạng văn bản thì chuyển thành gì ạ em cảm ơnKhách viếng thăm hãy cùng kv02301009 xây dựng diễn đàn CLBGAMESVN vững mạnh nhé!
Các Chủ đề tương tự
-
Cần xin gamemode basic map san fierro!
Bởi sacon12 trong diễn đàn GTA: SA MultiplayerTrả lời: 0Bài viết cuối: 07-09-14, 12:01 PM -
[VB6] Mã nguồn game caro viết bằng Visual Basic (AI)
Bởi iaion trong diễn đàn Thư Viện Mã Nguồn MởTrả lời: 0Bài viết cuối: 12-02-14, 02:39 PM -
Basic WebShop + Rage Fighter Items
Bởi Mr.Noob trong diễn đàn SQL Server & WebsiteTrả lời: 0Bài viết cuối: 18-01-11, 11:40 PM -
Basic MU Server Guides
Bởi datinh4ever trong diễn đàn Guides - Kho Lưu trữTrả lời: 8Bài viết cuối: 14-04-07, 05:59 PM