PDA

View Full Version : [JX] Tại sao hàm GetLevel() trong script : không thể viết <= | chỉ viết được >= ?



dongahchu
10-05-14, 01:01 AM
Tại sao hàm GetLevel() trong script : không thể viết <= | chỉ viết được >= ?


Trường hợp 1 : GetLevel() >= 100 : check level lớn hơn hoặc bằng 100 cấp

Trường hợp 2 : GetLevel() <= 100 : check level nhỏ hơn hoặc bằng 100 cấp


Trường hợp 1 áp dụng với các scirpt thì ok !
Trường hợp 2 : báo lỗi .

Vậy , để thực hiện 1 scirpt check cấp độ của thành viên nhỏ hơn hoặc bằng ( <= ) thì phải làm thế nào vậy mọi người ?


Ai biết chỉ giúp mình với :D

Tiện đây , mình xin hỏi ai có thể làm giới hạn tài khoản / IP hoặc giới hạn tài khoản / PC . Check trên server thì liên hệ thì mình nhé .
Yahoo : lauxanhentertainment

Cảm ơn rất nhiều !

Sesshomaru
10-05-14, 01:07 AM
Thay vì <=100 thì ta cho nó < 101
1 thuật toán đơn giản mà

Sesshomaru
10-05-14, 01:20 AM
1 cách nữa là
if (Getlevel < 100 or getlevel ==100) then

dongahchu
10-05-14, 01:22 AM
Nếu để hàm GetLevel() < 100 được à cậu .
Vấn đề là >= được . nhưng <= thì không .

Sesshomaru
10-05-14, 01:25 AM
Cái đó mình ko rõ.Tùy game.Mình cũng ko ngâm cứu jx nên ko trả lời được.Nhưng mình viết rõ là 101 chứ không phải 100

dongahchu
10-05-14, 01:42 AM
Không thể được , scirpt vẫn báo lỗi :

Mình đã thử :

if ( GetLevel() < 1 or GetLevel() < 100 ) then

cũng không được .

Sesshomaru
10-05-14, 01:49 AM
Không thể được , scirpt vẫn báo lỗi :

Mình đã thử :

if ( GetLevel() < 1 or GetLevel() < 100 ) then

cũng không được .
<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>
Có vụ level nhỏ hơn 1 nữa à
Bạn muốn hỏi làm sao để có điều kiện

if GetLevel() <= 100 then (dịch ra là nếu cấp của tôi nhỏ hơn hoặc bằng 100 thì)

Thì hàm này sẽ tương đương

if GetLevel() < 101 then (dịch ra là nếu cấp của tôi nhỏ hơn 101)

hoặc hàm này cũng được

if ( GetLevel()< 100 or GetLevel() == 100) then (dịch ra là nếu cấp của tôi nhỏ hơn 100 hoặc cấp của tôi bằng 100)

Còn hàm GetLevel() có đúng hay ko thì mình ko biết,Hơn nữa mình ko hề viết < 1,Bạn xem lại cho kỹ

dongahchu
10-05-14, 01:51 AM
Xin lỗi , chết thật < 1 :))

Để mình thử < 10 đến < 100 xem sao

dongahchu
10-05-14, 02:00 AM
Không thể nào dùng đc . ai có cách nào giúp mình với !

Sesshomaru
10-05-14, 02:34 AM
=))

Bạn đưa cái đoạn code đó lên.

dongahchu
10-05-14, 02:43 AM
Đoạn code của mình như sau :



if (GetLevel() <= 100) then
exprand= random(1,4)
if exprand == 1 then
AddOwnExp(1000)
Msg2Player("NhËn ngÉu nhiªn 1000 EXP.")
elseif exprand == 2 then
AddOwnExp(5000)
Msg2Player("NhËn ngÉu nhiªn 5000 EXP.")
elseif exprand == 3 then
AddOwnExp(10000)
Msg2Player("NhËn ngÉu nhiªn 10.000 EXP.")
elseif exprand == 4 then
AddOwnExp(50000)
Msg2Player("NhËn ngÉu nhiªn 50.000 EXP.")
end
end



Mục đích là : với cấp độ < 100 thì sẽ nhận đc ngẫu nhiên điểm exp

Sesshomaru
10-05-14, 03:11 AM
if (GetLevel() < 101) then
exprand= random(1,4)
if exprand == 1 then
AddOwnExp(1000)
Msg2Player("NhËn ngÉu nhiªn 1000 EXP.")
elseif exprand == 2 then
AddOwnExp(5000)
Msg2Player("NhËn ngÉu nhiªn 5000 EXP.")
elseif exprand == 3 then
AddOwnExp(10000)
Msg2Player("NhËn ngÉu nhiªn 10.000 EXP.")
elseif exprand == 4 then
AddOwnExp(50000)
Msg2Player("NhËn ngÉu nhiªn 50.000 EXP.")
end
end







if (GetLevel() < 100 or GetLevel() == 100) then
exprand= random(1,4)
if exprand == 1 then
AddOwnExp(1000)
Msg2Player("NhËn ngÉu nhiªn 1000 EXP.")
elseif exprand == 2 then
AddOwnExp(5000)
Msg2Player("NhËn ngÉu nhiªn 5000 EXP.")
elseif exprand == 3 then
AddOwnExp(10000)
Msg2Player("NhËn ngÉu nhiªn 10.000 EXP.")
elseif exprand == 4 then
AddOwnExp(50000)
Msg2Player("NhËn ngÉu nhiªn 50.000 EXP.")
end
end


Thử 2 đoạn này xem

dongahchu
10-05-14, 05:00 AM
<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>
mình cho vào timeserver check mỗi phút nhưng vẫn báo lỗi

Sesshomaru
10-05-14, 05:22 AM
Nếu vậy mà vẫn sai thì chỉ có 1 khả năng bạn viết sai code
Thử code này xem.Bên Kiếm Thế là phải viết như thế này


if (GetLevel() < 101) then
local exprand= random(1,4);
if exprand == 1 then
AddOwnExp(1000);
Msg2Player("NhËn ngÉu nhiªn 1000 EXP.");
elseif exprand == 2 then
AddOwnExp(5000)
Msg2Player("NhËn ngÉu nhiªn 5000 EXP.");
elseif exprand == 3 then
AddOwnExp(10000);
Msg2Player("NhËn ngÉu nhiªn 10.000 EXP.");
elseif exprand == 4 then
AddOwnExp(50000);
Msg2Player("NhËn ngÉu nhiªn 50.000 EXP.");
end
end

wermanhme1990
10-05-14, 07:23 AM
Đoạn code của mình như sau : if (GetLevel() Mục đích là : với cấp độ < 100 thì sẽ nhận đc ngẫu nhiên điểm expSao bạn không viết ngược lại:if (GetLevel() > 100) then// lv lớn hơn 100 không làm gì cả.else //tức là nhỏ hơn hoặc bằng 100 thì thực hiện hàm ramdom ở dưới.exprand= random(1,4)

vipbk
10-05-14, 09:34 AM
Bạn chủ topic để ý code của bạn Sesshomaru: khi khai báo biến địa phương (hay biến cục bộ: chỉ sử dụng bên trong 1 hàm) phải có từ khóa local, còn với các biến toàn cục (thường thấy khai báo ở đầu chương trình) thì ko cần

dongahchu
10-05-14, 04:04 PM
mình đã thử đoạn code :


if (GetLevel() < 101) then
local exprand= random(1,4);
if exprand == 1 then
AddOwnExp(1000);
Msg2Player("NhËn ngÉu nhiªn 1000 EXP.");
elseif exprand == 2 then
AddOwnExp(5000)
Msg2Player("NhËn ngÉu nhiªn 5000 EXP.");
elseif exprand == 3 then
AddOwnExp(10000);
Msg2Player("NhËn ngÉu nhiªn 10.000 EXP.");
elseif exprand == 4 then
AddOwnExp(50000);
Msg2Player("NhËn ngÉu nhiªn 50.000 EXP.");
end
end


vẫn báo lỗi ở ngay dòng đầu tiên , với hàm getlevel < 100
Không hiểu tại sao .

vipbk
10-05-14, 05:32 PM
Bạn post hình nó báo lỗi lên nhé. ( Góp ý 1 chút: cuối mỗi lệnh ko cần dấu ';' cũng dc nha bạn ). Bạn đang chơi sv nào vậy

dongahchu
10-05-14, 05:42 PM
Bạn post hình nó báo lỗi lên nhé. ( Góp ý 1 chút: cuối mỗi lệnh ko cần dấu ';' cũng dc nha bạn ). Bạn đang chơi sv nào vậy



Với hàm như trên , mình cho vào time server .lua thì báo lỗi check mỗi phú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>

Hình ảnh :
<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>

Server ATN đời đầu bạn à !

GiaHuyOffer
10-05-14, 06:20 PM
Bạn này viết code mà không để ý 1 điều rằng timerserver.lua nó ko thể tìm thấy player cố định nào để add cái function của bạn vào, cái này viết không khó :))

dongahchu
10-05-14, 07:41 PM
Bạn này viết code mà không để ý 1 điều rằng timerserver.lua nó ko thể tìm thấy player cố định nào để add cái function của bạn vào, cái này viết không khó :))

Làm ơn chỉ mình với :D

Cảm ơn bạn

gj4cm0y3u3m
10-05-14, 08:48 PM
local idbt = PlayerIndex
for i=1,GetPlayerCount() do
PlayerIndex = i
if i ~= 0 then
if (GetLevel() < 101) then
local exprand= random(1,4);
if exprand == 1 then
AddOwnExp(1000);
Msg2Player("NhËn ngÉu nhiªn 1000 EXP.");
elseif exprand == 2 then
AddOwnExp(5000)
Msg2Player("NhËn ngÉu nhiªn 5000 EXP.");
elseif exprand == 3 then
AddOwnExp(10000);
Msg2Player("NhËn ngÉu nhiªn 10.000 EXP.");
elseif exprand == 4 then
AddOwnExp(50000);
Msg2Player("NhËn ngÉu nhiªn 50.000 EXP.");
end
end
end
end
PlayerIndex = idbt

Của bạn đây thử xem.

dongahchu
11-05-14, 12:24 AM
Mình đã thử hàm trên nhưng vẫn báo lỗi về hàm GetLevel () < 101

Chính xác là dòng đó báo lỗi !

Sesshomaru
11-05-14, 12:37 AM
Ôi mẹ ơi.Cho vào file hệ thống để check cá nhân.

^:)^ rồi kêu hàm bị lỗi.

Thay vì thế bạn hãy hỏi làm sao để add cho từng nhân vật mỗi lúc nhận exp theo cấp thì hợp lý hơn.Đừng đổ tội hàm sai mà là bạn ko biết cách Add

hoivegame
11-05-14, 01:59 AM
=;Bạn nên kiểm tra hàm GetLevel() ..hàm GetLevel() của bạn viết nó trả về nil nên ko thể compare với số dc.

dongahchu
11-05-14, 11:18 AM
Ôi mẹ ơi.Cho vào file hệ thống để check cá nhân.

^:)^ rồi kêu hàm bị lỗi.

Thay vì thế bạn hãy hỏi làm sao để add cho từng nhân vật mỗi lúc nhận exp theo cấp thì hợp lý hơn.Đừng đổ tội hàm sai mà là bạn ko biết cách Add

Hi , xin lỗi bạn .
Mục đích của mình là check mỗi phút trong timeserver.lua .
Nếu nhân vật đạt cấp độ < 100 thì có thể nhận exp ngẫu nhiên .

Nếu như vậy thì phải CODE script thế nào ?

vipbk
11-05-14, 12:40 PM
Hi , xin lỗi bạn .
Mục đích của mình là check mỗi phút trong timeserver.lua .
Nếu nhân vật đạt cấp độ < 100 thì có thể nhận exp ngẫu nhiên .
Nếu như vậy thì phải CODE script thế nào ?

Bạn tham khảo sv này: <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>
Trong đó có file quy định khi đạt cấp nhất định sẽ tự động nhận phần thưởng
Xem file này: script\levleup.lua

dongahchu
11-05-14, 06:58 PM
Bạn tham khảo sv này: <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>
Trong đó có file quy định khi đạt cấp nhất định sẽ tự động nhận phần thưởng
Xem file này: script\levleup.lua


Hi , cảm ơn bạn đã trả lời .
Nhưng mình check mỗi phút đều nhận đc theo từng cấp độ tương ứng trê time server .
Để hỗ trợ thêm cho người chơi mới mà bạn !

lzlsky301
11-05-14, 07:33 PM
- Timer server thì sao mà code như vậy được. Script toàn hệ thống chứ đâu phải cá nhân mà GetLevel() lỗi là đúng rồi.

dongahchu
11-05-14, 08:45 PM
- Timer server thì sao mà code như vậy được. Script toàn hệ thống chứ đâu phải cá nhân mà GetLevel() lỗi là đúng rồi.

vậy có cách nào khác k bạn .
giúp mình với

lzlsky301
11-05-14, 09:25 PM
local idbt = PlayerIndex
for i=1,GetPlayerCount() do
PlayerIndex = i
if i ~= 0 then
if (GetLevel() < 101) then
local exprand= random(1,4);
if exprand == 1 then
AddOwnExp(1000);
Msg2Player("NhËn ngÉu nhiªn 1000 EXP.");
elseif exprand == 2 then
AddOwnExp(5000)
Msg2Player("NhËn ngÉu nhiªn 5000 EXP.");
elseif exprand == 3 then
AddOwnExp(10000);
Msg2Player("NhËn ngÉu nhiªn 10.000 EXP.");
elseif exprand == 4 then
AddOwnExp(50000);
Msg2Player("NhËn ngÉu nhiªn 50.000 EXP.");
end
end
end
end
PlayerIndex = idbt

Của bạn đây thử xem.

Code như vầy cũng sai nhé :D

for i=1,1200 do

jxvietnam
11-05-14, 09:53 PM
Code như vầy cũng sai nhé :D

for i=1,1200 do
GetPlayerCount() là đếm số người trong server mà cụ, ko dùng dc à

lzlsky301
11-05-14, 10:04 PM
GetPlayerCount() là đếm số người trong server mà cụ, ko dùng dc à

Offline 1 mình thì vô tư =)). Còn online mem đông dùng thử sẽ biết

dongahchu
11-05-14, 10:11 PM
up !!!
help mình với ạ :D

cảm ơn nhiều !

Long.MR
12-05-14, 12:57 AM
Offline 1 mình thì vô tư =)). Còn online mem đông dùng thử sẽ biết

cờ hó núp lùm xả đạn hoài , nay rảnh vkl thế đi spam trên này =))

lzlsky301
12-05-14, 02:20 AM
up !!!
help mình với ạ :D

cảm ơn nhiều !

<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>

dongahchu
16-05-14, 10:38 AM
thử tất cả với các hàm trên đều báo lỗi
:D

datvt123
16-05-14, 07:00 PM
Vãi đã nhỏ hơn hoặc bằng là đúng r , bác hỏi lớn hơn còn hoặc bằng nữa , nữa hơn thì cài luôn là > chứ cần chó gì bằng gì nữa bác