PDA

View Full Version : cách thức viết script



alisson
04-02-11, 10:31 AM
mọi người cho mình hỏi tác dụng của mấy cái file lua trong thư mục lib không
để khi mình viết script biết cái gì cần thì con khai báo

mà sao mình thấy các server khi viết script sao khai báo đi khao báo lại các thư viện thế
ví dụ file a.lua khai báo file b.lua
trong file c.lua khai báo a.lua ,lại còn khai báo b.lua

mình tưởng đã khai báo file b trong file a rôi thì file c khi khai báo file a tức là cũng đã khai báo file b cần gì phải khai báo lại nữa


======================
mọi người biết tạo thủ tục switch không
trong lua sao lại không có cái này vậy nhỉ bất tiện quá
================================
à cho hỏi có phải muốn huỷ giá trị hay hàm thì ta cho nó =nil không



====================================
cho hỏi thêm cái làm sao để thiết đặt random cho hàm ran dom vậy
ở trong c++ có hàm randommize()
còn trong lua nó là hàm nào vậy
chứ không lần nào ran dom cung giống y nhau

[M]r[K]id
04-02-11, 11:01 AM
VD file a.lua khia bái file b.lua thì b.lua ko cần mian nữa
tham khảo bài cùa thái hòa link wen rùi ^^!
hủy giá trị hàm là sao ko hỉu
switch là j` ??
VD
a = random(số dầu,số cuối)
VD
a = random (10,50)
thì nó sẽ là 10 -> 50 có 11,12,13,14....,50

alisson
04-02-11, 02:24 PM
ủa bạn chưa học lập trình c hả

ví dụ file a.lua khai báo include("\\b.lua")
file c.lua khai báo include("\\a.lua")
nếu file c.lua muốn sử dụng hàm trong file b.lua thì không cần lhai báo file b.lua nữa vì nó đã khai báo file a.lua
mà file a.lua đã khai báo b.lua rồi

liệu như thế có được không

còn huỷ giá trị là vì :1 biến khi được tạo ra sẽ chiếm 1 ô nhớ cần phải huỷ để giải phóng biến nhớ cho nhẹ game

switch là lựa chọn dùng đỡ tốn hơn là if và elseif

hàm random thì mình biết rồi nhưng mà khi random nó random các số giống y nhau

ví dụ mình có file a.lua trong đó có lệnh print(random(1,10))
chạy lệnh nó được 1 số ngâu nhiên là 5 chẳng hạn
thì lần sau chạy nó cũng ra y nguyên số 5 và hầu như lần nào cũng vậy
vì vậy cần phải đặt 1 hàm set random

ở trong các ngôn ngữ lập trình thường là randommize()
còn trong lua là gì thì mình không biết tìm hiểu mãi mà không thấy

thaihoa91
04-02-11, 06:37 PM
ví dụ file a.lua khai báo include("\\b.lua")
file c.lua khai báo include("\\a.lua")
nếu file c.lua muốn sử dụng hàm trong file b.lua thì không cần lhai báo file b.lua nữa vì nó đã khai báo file a.lua
mà file a.lua đã khai báo b.lua rồi

liệu như thế có được không

Hoàn toàn dc ! Các file .lua miễn là đã dc khai báo Include thì nó chạy OK hết !


còn huỷ giá trị là vì :1 biến khi được tạo ra sẽ chiếm 1 ô nhớ cần phải huỷ để giải phóng biến nhớ cho nhẹ game

switch là lựa chọn dùng đỡ tốn hơn là if và elseif

hàm random thì mình biết rồi nhưng mà khi random nó random các số giống y nhau

ví dụ mình có file a.lua trong đó có lệnh print(random(1,10))
chạy lệnh nó được 1 số ngâu nhiên là 5 chẳng hạn
thì lần sau chạy nó cũng ra y nguyên số 5 và hầu như lần nào cũng vậy
vì vậy cần phải đặt 1 hàm set random

ở trong các ngôn ngữ lập trình thường là randommize()
còn trong lua là gì thì mình không biết tìm hiểu mãi mà không thấy

Hàm random bạn sử dụng nhiều lần thì mỗi lần random bạn cho 1 biến khác ! Đừng để bị trùng là dc !

Ví dụ trong cùng 1 file cùng 1 function mà bạn ghi 2 lần random đều cùng 1 biến a thì chắc ăn nó lần random thứ nhất thì a đã chọn dc 1 số và lần random thứ 2 vô tác dụng !

Còn mún 2 lần random khác thì có thể cho random lần 1 là biến a và random lần 2 là biến b ! Như vậy sẽ ko bị trùng giá trị khi random nhiều lần !

alisson
04-02-11, 08:13 PM
các pro vẫn chưa hiểu ý mình

code ví dụ đây

file a.lua

function main()

print(random(1,100))

end

sử dụng công cụ biên dịch file lua
kết quả 100 lần biên dịch kết quả luôn giống nhau

=================================
các pro dev server lâu năm cho mình hỏi 1 số thắc mắc được không:
1.tác dụng của 2 thư mục npclevelscript và transpoter trong thư mục script là gì nó có phải là thư mục gốc của game hay không hay là do người dev game thêm vào

2.file nào quy định load dữ liệu các file item như vũ khí,áo........
3.file nào điều khiển việc save nhân vật và save vào đâu
4.file nào load dữ liệu của file npcs.txt
5.khi nhân vật giết chết quái vật thì file nào xử lí cộng kinh nghiệm cho nhân vật
6.mọi chỉ số sinh lực,nội lực,kháng tính,cấp độ của nhân vật thay đổi khi ta có sự thay đổi do file nào trong script quy định hay
là 1 file bên ngoài script quy định
ví dụ :khi cộng 1 điểm kĩ năng vào skill cấp 10 :vậy việc xử lí trừ đi 1 điểm kĩ năng,tăng 1 cấp level skill cấp 10 và cập nhật điểm kĩ năng cũng như level skill cấp 10 là do file nào có phải trong script không hay là 1 file dll
7.đang dev tiếp
thank

thaihoa91
04-02-11, 09:21 PM
1) Các file .lua npclevelscript gốc do KingSoft quy định dc khai báo trong NpcS.txt nhằm cho bít mức độ thông minh cũng như thuộc tính của loại quái hay NPC đó !

2) Từ trong SOURCE compile ra CoreClient.dll, CoreServer.dll để nó load dc !

3) GameServer.exe cũng như 5 trình chạy Server ! Dữ liệu dc lưu dưới các file .log và ko thể chỉnh gì trong .log dc !

4) CoreClient.dll, CoreServer.dll

5) Cột ExpParam trong NpcS.txt (mở bằng Excel)

6) Quy định tận trong SOURCE !

alisson
05-02-11, 08:44 AM
uhm cám ơn thai hoa
sao thay cái avatar chuối thế

câu thứ 5 :ý mình là file nào điều khiển cộng kinh nghiệm vào nhân vật chứ không phải chỉnh sủa điểm kinh nghiệm nhận được

thế mấy cái file blueitem.txt,golditem.txt ,magicattriblevel.txt, minebase.txt,rangeweapon.txt trong thư mục item có tác dụng gì
sao mình thấy trong script có mấy cái hàm load file này vào

[M]r[K]id
05-02-11, 09:35 AM
cái đó là nó quy định item
níu mún add item trong đó thì ngâm ebook đi
mấy cái hàm đó
hàm đó là
additem()

alisson
05-02-11, 04:54 PM
không phải thế
mấy cái file item này là các file khác
mấy cái file này nó đủ loại item không phân loại
tôi thấy lạ
thấy trong file sourcejx49.lua nó load mà không hiểu có tác dụng gì

thaihoa91
05-02-11, 06:04 PM
blueitem.txt và golditem.txt thực chất cả Server và Client đều ko load !

Sở dĩ load dc 2 file .txt chỉ định là do code LUA gần giống C ! code C cho phép mở ra 1 file chỉ định rùi ghi vào hoặc lấy dữ liệu theo các cột và dòng ! LUA cũng tương tự !

<b><font color=red>[Chỉ có thành viên mới xem link được. <a href="register.php"> Nhấp đây để đăng ký thành viên......</a>]</font></b>

<b><font color=red>[Chỉ có thành viên mới xem link được. <a href="register.php"> Nhấp đây để đăng ký thành viên......</a>]</font></b>

alisson
05-02-11, 08:03 PM
uhm ,cái quan trọng là load nó có để làm gì không,del có được không để tôi còn xoá cho đỡ nặng

thaihoa91
07-02-11, 08:35 AM
blueitem.txt và golditem.txt có thể xóa dc, còn lại giữ nguyên !