PDA

View Full Version : Hàm Kinh Nghiệm + dồn



banynavy
02-09-11, 08:03 AM
cái hàm này không biết script có thể viết được không hay liên quan đến soucre bạn nào bik chỉ mình với sẳn tiện post cho mình và mọi ng tham khảo với[-O
Hàm trong sv của mình như thế này

function AddExpz(num)
Tabel=LoadData("Settings/npc/player/level_exp.txt")
EXP = Tabel[GetLevel()][2]
_exp=EXP-GetExp()
if _exp>num then
AddOwnExp (num)
else
AddOwnExp(num)
AddOwnExp(num-_exp)
end
end
Theo ý ThaiHoa fix như thế này thì phải

KingMax
02-09-11, 11:00 AM
hàm thì thiếu Lib thì nhận xét kiểu gì bro

banynavy
02-09-11, 11:12 AM
ah` mình muốn hỏi nếu viết bạn viết ra sao thôi? chứ cái trên là cái ý của mình

Edward_Newgate
02-09-11, 07:55 PM
Mình không hiểu ý bạn chủ topic lắm
Ý bạn muốn tìm hàm set exp 1 phát lên đến 1 cấp nào đó lun hả
Hay bạn muốn các pro vào kiểm tra cái hàm của bạn :-?

KingMax
02-09-11, 08:33 PM
nếu viết thì :
- Cách của mình là đưa toàn bộ list Exp về mảng
MangExp = {
{1,ẽxp},
{2,exp},
...
{200,exp}}
rồi Check level ban đầu , tính toán trong mảng đó . Còn theo chickenood cũng vậy đó :D

banynavy
02-09-11, 08:38 PM
VD:
Ống KN là 100triêu
Nhân vật đã đạt 99 triệu
ăn bánh trung thu 3 Triệu
--> lên cấp + thêm 2 triệu
Là kinh nghiêm + dồn ấy

phungtien
02-09-11, 11:54 PM
new bie xin góp ý,
function cap()
for i=1,130 do
AddOwnExp(1000000000) end
end
mong các pro bỏ qua .

f-fantasy
03-09-11, 01:30 AM
Theo mình kinh nghiệm cộng dồn thì chịu khó ngồi làm ra cái table thông tin level và exp tương ứng rồi sử dụng thôi.

banynavy
03-09-11, 09:28 AM
ah cái này mình load từ file level_exp.txt trong settings nhưng ko hiểu cách tính toán làm sao hixhix

thaihoa91
03-09-11, 09:54 AM
Ý tưởng của tui thế này, kiểm tra điểm exp trong level_exp.txt ở level hiện tại của nhân vật (A)

Kiểm tra điểm exp mà nhân vật có hiện tại (B)

Lấy (A) - (B) = (C)

Thằng (C) này là số Exp còn lại để nhân vật lên level mới !

Kiểm tra hàm add thêm kinh nghiệm vào nhân vật (D) là bao nhiu !

Sau đó, nếu (D) này nhỏ hơn (C) thì chắc ăn là nhân vật sẽ chưa lên level dc !

Còn ngược lại, nếu (D) này lớn hơn (C) thì ngoài lấy (D) - (C) ta dc điểm kinh nghiệm còn dư khi đã lên level (E)

Ta add thêm số exp (E) này vào sau khi nhân vật lên level mới, thế là đã cộng dồn !

banynavy
03-09-11, 10:05 AM
hì thank mình hiểu ùi để tí thử

banynavy
03-09-11, 10:15 AM
hix nhưng lại có vấn đề khác những nhân vật lever thấp chỉ + dồn 1< cấp

jxvietnam
03-09-11, 10:31 AM
Ý tưởng của tui thế này, kiểm tra điểm exp trong level_exp.txt ở level hiện tại của nhân vật (A)

Kiểm tra điểm exp mà nhân vật có hiện tại (B)

Lấy (A) - (B) = (C)

Thằng (C) này là số Exp còn lại để nhân vật lên level mới !

Kiểm tra hàm add thêm kinh nghiệm vào nhân vật (D) là bao nhiu !

Sau đó, nếu (D) này nhỏ hơn (C) thì chắc ăn là nhân vật sẽ chưa lên level dc !

Còn ngược lại, nếu (D) này lớn hơn (C) thì ngoài lấy (D) - (C) ta dc điểm kinh nghiệm còn dư khi đã lên level (E)

Ta add thêm số exp (E) này vào sau khi nhân vật lên level mới, thế là đã cộng dồn !
ví dụ nhân vật tui cần 1 triệu kinh nghiệm để lên từ 100 lên 101. Dùng hàm addexp 1tr5 kinh nghiệm
vậy làm sao để nó add 1 triệu kinh nghiệm ở cấp 100 rồi mới add 500k kinh nghiệm còn lại ?
và nếu số exp này đủ thêm vào 3,4 .... 10 cấp thì sao ?
vd như số exp cấp 100 -> 101 = 1triệu kn, 101 -> 102 = 1 triệu kn, 102 - 103 = 1 triệu kn. Dùng hàm add kinh nghiệm 3.5 triệu. Làm sao để nó add 1 triệu exp ở cấp 100, 1 triệu ở cấp 101, 1 triệu ở cấp 102 :) và 500k ở cấp 103 ?

vanluong92
05-09-11, 10:14 AM
ví dụ nhân vật tui cần 1 triệu kinh nghiệm để lên từ 100 lên 101. Dùng hàm addexp 1tr5 kinh nghiệm
vậy làm sao để nó add 1 triệu kinh nghiệm ở cấp 100 rồi mới add 500k kinh nghiệm còn lại ?
và nếu số exp này đủ thêm vào 3,4 .... 10 cấp thì sao ?
vd như số exp cấp 100 -> 101 = 1triệu kn, 101 -> 102 = 1 triệu kn, 102 - 103 = 1 triệu kn. Dùng hàm add kinh nghiệm 3.5 triệu. Làm sao để nó add 1 triệu exp ở cấp 100, 1 triệu ở cấp 101, 1 triệu ở cấp 102 :) và 500k ở cấp 103 ?
ý tưởng: check số kinh nghiệm cần để up lv cho từng cấp. ( VD để lên cấp 100 cần A, lên cấp 101 cần B. Số kinh nghiệm add vào là E. Lấy E - A. Nếu giá trị dương thì sẽ up 1 lv( ( ,xét tiếp giá trị E-A-B, nếu dương thì up lv tiếp, nếu âm thì cộng E-A exp vào. Tương tự cho các cấp tiếp theo. Có thể xài if then nhiều lần nhưng mất công viết. Các bro chém nhẹ tay :P

Edward_Newgate
05-09-11, 10:20 AM
ý tưởng: check số kinh nghiệm cần để up lv cho từng cấp. ( VD để lên cấp 100 cần A, lên cấp 101 cần B. Số kinh nghiệm add vào là E. Lấy E - A. Nếu giá trị dương thì sẽ up 1 lv( ( ,xét tiếp giá trị E-A-B, nếu dương thì up lv tiếp, nếu âm thì cộng E-A exp vào. Tương tự cho các cấp tiếp theo. Có thể xài if then nhiều lần nhưng mất công viết. Các bro chém nhẹ tay :P
Hix
Thế này thì 250 lv viết bao nhiu if và then đây 8-}
Vất lắm đó

f-fantasy
05-09-11, 10:36 AM
Dùng hàm while xem lặp đến khi nào điều kiện sai thì dừng.

KingMax
05-09-11, 08:53 PM
thì đề cập là hàm while đó , khi check đủ level sẽ lấy exp gốc trừ cho exp còn lại và gán cho nó 1 biến , thực hiện while do đến khi biến đó = 0 thì dừng lại :)

honcuahoa
28-01-12, 05:51 PM
để test thử xem , chứ làm nó báo error :(

Thank chủ thớt !

thachlong78
10-03-12, 10:36 AM
Cái này để ngắm chứ dùng thì khó đó. Load dữ liệu liên tục như vậy không sợ tràn bộ nhớ sao, chưa kể sẽ gây lag khi dùng liên tục.

runkissbig
12-03-12, 12:17 PM
Cái này để ngắm chứ dùng thì khó đó. Load dữ liệu liên tục như vậy không sợ tràn bộ nhớ sao, chưa kể sẽ gây lag khi dùng liên tục.
minh cung nghĩ như vậy. Nhất là mở online mà mạng yếu thì vài thằng nó up cái thì:D