hoivegame
14-08-12, 06:10 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>
----Edited: CALL
---check dk can chuyen sinh
check_dkcs = function(num)
task_cs = GetTask(197) ---so lan cs
check_money = GetCash() ---ktra tien
check_level = GetLevel() ---ktra level nv
check_xu = GetTask(200) ---ktra xu or vang
if num == 1 then
return task_cs --
elseif num == 2 then
return check_money --
elseif num == 3 then
return check_level
elseif num == 4 then
return check_xu
else
return nil
end
end
----reset ky nang + tiem nang then add ky nang + tiem nang sau khi chuyen sinh
function RollPoint()
add_kntn(1)
add_kntn(2)
AddProp(-GetProp())
AddMagicPoint(-GetMagicPoint())
AddProp(GetTask(130))
AddMagicPoint(GetTask(129))
end
-----ky nang + tiem nang give cho nhan vat
add_kntn = function(num)
kn = 1 --mun cho bao nhiu diem ky nang sau khi chuyen sinh chi can thay doi so nay
tn = 2 --mun cho bao nhiu diem tiem nang sau khi chuyen sinh chi can thay doi so nay
if num == 1 then
goi_kn = SetTask(129,GetTask(129)+kn)
return goi_kn
elseif num == 2 then
goi_tn = SetTask(130,GetTask(130)+tn)
return goi_tn
else
return nil
end
end
---ham set level nhan vat sau cs
SetLevel = function(nLevel)
if(nLevel<1 or nLevel >200) then
return 0;
end
local a=GetNpcIdx();
a=setx(a,nLevel);
if(a==1) then
else
end
end
---check tat ca nhung cai can cho chuyen sinh
call_cs = function()
limit_cs = 20 --- mun thay doi gioi han chuyen sinh thi thay doi so nay
money = 1000 ---so tien chuyen sinh
level = 10 ---level doi hoi de chuyen sinh
max_xu = 0 -- so xu chuyen sinh, co the thay doi tuy y'
if check_dkcs(1) < limit_cs then
if check_dkcs(2) >= money then
if check_dkcs(3) >= level then
if check_dkcs(4) >= max_xu then
process_cs()
else
Msg2Player("Kh«ng ®ñ sè lîng xu yªu cÇu ®Ó chuyÓn sinh. Yªu cÇu cã "..max_xu.." xu míi cã thÓ chuyÓn sinh. ")
end
else
Msg2Player("Yªu cÇu nh©n vËt cÊp: "..level.." míi cã thÓ chuyÓn sinh.")
end
else
Msg2Player("Kh«ng ®ñ "..money.." v¹n lîng ®Ó tiÕn hµnh chuyÓn sinh. Ng¬i hiÖn cã "..check_dkcs(2).." v¹n lîng trong hµnh trang")
end
else
Msg2Player("ChuyÓn sinh ®· ®¹t tíi gi¹n. ChuyÓn sinh hiÖn t¹i lµ: "..check_dkcs(1).." lÇn ")
end
end
---tien hanh chuyen sinh
process_cs = function()
idxu = 200 ---id xu
soxu = 0 ---so xu de chuyen sinh
money = 1000 ---so tien can del de chuyen sinh
SetTask(197,check_dkcs(1)+1) ---set so lan chuyen sinh
Pay(money)
SetTask(idxu,GetTask(idxu)-soxu) ---cai nay dung task xu con mun dung xu bang vat pham cu viec thay doi o tren ham check cac vat can de chuyen sinh
SetLevel(1)
RollPoint()
KickOutSelf()
AddGlobalNews(""..GetName().." chuyÓn sinh lÇn "..check_dkcs(1).." thµnh c«ng." )
end
---==========main function===================
main = function()
call_cs() --goi ham chuyen sinh ra o main
end
Code này đã đơn giản hóa bạn mún thay đổi sao tùy ý. Lưu ý: cần fai copy file: LuaLibDll.dll của skylight đã share bỏ vào server mới có thể đọc được hàm setx().
----Edited: CALL
---check dk can chuyen sinh
check_dkcs = function(num)
task_cs = GetTask(197) ---so lan cs
check_money = GetCash() ---ktra tien
check_level = GetLevel() ---ktra level nv
check_xu = GetTask(200) ---ktra xu or vang
if num == 1 then
return task_cs --
elseif num == 2 then
return check_money --
elseif num == 3 then
return check_level
elseif num == 4 then
return check_xu
else
return nil
end
end
----reset ky nang + tiem nang then add ky nang + tiem nang sau khi chuyen sinh
function RollPoint()
add_kntn(1)
add_kntn(2)
AddProp(-GetProp())
AddMagicPoint(-GetMagicPoint())
AddProp(GetTask(130))
AddMagicPoint(GetTask(129))
end
-----ky nang + tiem nang give cho nhan vat
add_kntn = function(num)
kn = 1 --mun cho bao nhiu diem ky nang sau khi chuyen sinh chi can thay doi so nay
tn = 2 --mun cho bao nhiu diem tiem nang sau khi chuyen sinh chi can thay doi so nay
if num == 1 then
goi_kn = SetTask(129,GetTask(129)+kn)
return goi_kn
elseif num == 2 then
goi_tn = SetTask(130,GetTask(130)+tn)
return goi_tn
else
return nil
end
end
---ham set level nhan vat sau cs
SetLevel = function(nLevel)
if(nLevel<1 or nLevel >200) then
return 0;
end
local a=GetNpcIdx();
a=setx(a,nLevel);
if(a==1) then
else
end
end
---check tat ca nhung cai can cho chuyen sinh
call_cs = function()
limit_cs = 20 --- mun thay doi gioi han chuyen sinh thi thay doi so nay
money = 1000 ---so tien chuyen sinh
level = 10 ---level doi hoi de chuyen sinh
max_xu = 0 -- so xu chuyen sinh, co the thay doi tuy y'
if check_dkcs(1) < limit_cs then
if check_dkcs(2) >= money then
if check_dkcs(3) >= level then
if check_dkcs(4) >= max_xu then
process_cs()
else
Msg2Player("Kh«ng ®ñ sè lîng xu yªu cÇu ®Ó chuyÓn sinh. Yªu cÇu cã "..max_xu.." xu míi cã thÓ chuyÓn sinh. ")
end
else
Msg2Player("Yªu cÇu nh©n vËt cÊp: "..level.." míi cã thÓ chuyÓn sinh.")
end
else
Msg2Player("Kh«ng ®ñ "..money.." v¹n lîng ®Ó tiÕn hµnh chuyÓn sinh. Ng¬i hiÖn cã "..check_dkcs(2).." v¹n lîng trong hµnh trang")
end
else
Msg2Player("ChuyÓn sinh ®· ®¹t tíi gi¹n. ChuyÓn sinh hiÖn t¹i lµ: "..check_dkcs(1).." lÇn ")
end
end
---tien hanh chuyen sinh
process_cs = function()
idxu = 200 ---id xu
soxu = 0 ---so xu de chuyen sinh
money = 1000 ---so tien can del de chuyen sinh
SetTask(197,check_dkcs(1)+1) ---set so lan chuyen sinh
Pay(money)
SetTask(idxu,GetTask(idxu)-soxu) ---cai nay dung task xu con mun dung xu bang vat pham cu viec thay doi o tren ham check cac vat can de chuyen sinh
SetLevel(1)
RollPoint()
KickOutSelf()
AddGlobalNews(""..GetName().." chuyÓn sinh lÇn "..check_dkcs(1).." thµnh c«ng." )
end
---==========main function===================
main = function()
call_cs() --goi ham chuyen sinh ra o main
end
Code này đã đơn giản hóa bạn mún thay đổi sao tùy ý. Lưu ý: cần fai copy file: LuaLibDll.dll của skylight đã share bỏ vào server mới có thể đọc được hàm setx().