PDA

View Full Version : [JX] Dame CB rồng Skill 15x



Uchiha_Tai
20-02-12, 10:10 PM
Tình hình là xai bo skill 15x của DNT dame cái bang rồng quá to. nền AWJX cho hỏi chỉnh dame nó nhỏ xuổng 50% thì chinh o dau. thanks.
Code dame CB

function SkillExpFunc(Exp0,a,Level,Time,Range)
return floor(Exp0*(a^(Level-1))*Time*Range/2)
end
SKILLS={
feilong_zaitian={ --飞龙在天
seriesdamage_p={{{1,20},{15,20},{20,60},{21,62}}},
firedamage_v={
[1]={{1,150},{15,650},{20,900}},
[3]={{1,150},{15,650},{20,900}}
},
skill_eventskilllevel={{{1,1},{20,20}}},
addskilldamage1={
[1]={{1,326},{20,326}},
[3]={{1,0},{11,0},{12,12},{20,20}}
},
addskilldamage5={
[1]={{1,10},{20,836}},
[3]={{1,1},{20,20}}
},
skill_misslenum_v={{{1,1},{12,2},{16,3},{19,3},{20 ,4},{21,4}}},
missle_speed_v={{{1,18},{20,32},{21,32}}},
skill_misslesform_v={{{1,0},{10,0},{10,0},{20,0},{ 21,0}}},
skill_attackradius={{{1,488},{20,488},{21,488}}},
skill_cost_v={{{1,10},{20,65}}},
skill_eventskilllevel={{{1,1},{20,20}}},
-- skill_flyevent={
-- [1]={{1,0},{10,0},{10,1},{20,1}},
-- [2]={{1,4},{2,4}},
-- [3]={{1,389},{20,389}}
-- },
skill_collideevent={
[1]={{1,0},{10,0},{10,1},{20,1}},
[3]={{1,389},{20,389}}
},
addskillexp1={{{1,0},{2,0}},{{1,1},{20,1}},{{1,0}, {2,0}}},
skill_skillexp_v={{ {1,SkillExpFunc(8600,1.15,1,1,1)},
{2,SkillExpFunc(8600,1.15,2,1,1)},
{3,SkillExpFunc(8600,1.16,3,1,1)},
{4,SkillExpFunc(8600,1.17,4,1,1)},
{5,SkillExpFunc(8600,1.18,5,1,1)},
{6,SkillExpFunc(8600,1.19,6,2,1)},
{7,SkillExpFunc(8600,1.20,7,2,1)},
{8,SkillExpFunc(8600,1.21,8,2,1)},
{9,SkillExpFunc(8600,1.22,9,2,1)},
{10,SkillExpFunc(8600,1.23,10,2,1)},
{11,SkillExpFunc(8600,1.24,11,2,1)},
{12,SkillExpFunc(8600,1.23,12,2,1)},
{13,SkillExpFunc(8600,1.22,13,2,1)},
{14,SkillExpFunc(8600,1.21,14,2,1)},
{15,SkillExpFunc(8600,1.20,15,3,1)},
{16,SkillExpFunc(8600,1.19,16,3,1)},
{17,SkillExpFunc(8600,1.18,17,3,1)},
{18,SkillExpFunc(8600,1.17,18,3,1)},
{19,SkillExpFunc(8600,1.16,19,3,1)},
{20,SkillExpFunc(8600,1.15,20,4,1)},
}},
},
feilong_zaitia={
missle_speed_v={{{1,32},{20,32},{21,32}}},
skill_misslenum_v={{{1,1},{10,1},{12,2},{20,4},{21 ,4}}},
seriesdamage_p={{{1,60},{20,60}}},
firedamage_v={
[1]={{1,991},{20,991}},
[3]={{1,991},{20,991}}
},
},
-- qianlong_zaiyuan={ --潜龙在渊
-- seriesdamage_p={{{1,20},{20,60}}},
-- firedamage_v={
-- [1]={{1,17},{20,591}},
-- [3]={{1,17},{20,591}}
-- },
-- },
longzhan_yuye={ --龙战于野
seriesdamage_p={{{1,60},{20,60},{21,62}}},
firedamage_v={
[1]={{1,791},{20,791}},
[3]={{1,791},{20,791}}
},
-- skill_eventskilllevel={{{1,1},{20,20}}},
-- skill_collideevent={
-- [1]={{1,0},{15,0},{15,1},{20,1}},
-- [3]={{1,358},{20,358}}
-- },
-- skill_showevent={{{1,0},{15,0},{15,4},{20,4}}},
},
tianxia_wugou={ --天下无狗
seriesdamage_p={{{1,20},{15,20},{20,60},{21,62}}},
physicsenhance_p={{{1,25},{15,175},{20,250}}},
firedamage_v={
[1]={{1,70},{15,150},{20,185}},
[3]={{1,70},{15,240},{20,332}}
},
skill_eventskilllevel={{{1,1},{20,20}}},
skill_misslesform_v={{{1,1},{10,1},{10,0},{20,0},{ 21,0}}},
skill_misslenum_v={{{1,1},{10,1},{12,2},{20,3},{21 ,3}}},
missle_speed_v={{{1,20},{20,32},{21,32}}},
skill_attackradius={{{1,448},{20,448},{21,448}}},
skill_cost_v={{{1,20},{20,50}}},
addskillexp1={{{1,0},{2,0}},{{1,1},{20,1}},{{1,0}, {2,0}}},
skill_skillexp_v={{ {1,SkillExpFunc(7000,1.15,1,1,1)},
{2,SkillExpFunc(7000,1.15,2,1,1)},
{3,SkillExpFunc(7000,1.16,3,1,1)},
{4,SkillExpFunc(7000,1.17,4,1,1)},
{5,SkillExpFunc(7000,1.18,5,1,1)},
{6,SkillExpFunc(7000,1.19,6,1,1)},
{7,SkillExpFunc(7000,1.20,7,1,1)},
{8,SkillExpFunc(7000,1.21,8,1,1)},
{9,SkillExpFunc(7000,1.22,9,1,1)},
{10,SkillExpFunc(7000,1.23,10,1,1)},
{11,SkillExpFunc(7000,1.24,11,1,1)},
{12,SkillExpFunc(7000,1.23,12,1,1)},
{13,SkillExpFunc(7000,1.22,13,1,1)},
{14,SkillExpFunc(7000,1.21,14,2,1)},
{15,SkillExpFunc(7000,1.20,15,2,1)},
{16,SkillExpFunc(7000,1.19,16,2,1)},
{17,SkillExpFunc(7000,1.18,17,3,1)},
{18,SkillExpFunc(7000,1.17,18,3,1)},
{19,SkillExpFunc(7000,1.16,19,3,1)},
{20,SkillExpFunc(7000,1.15,20,3,1)},
}},
},
tianxia_wugo={ --天下无狗
seriesdamage_p={{{1,60},{15,60},{20,60},{21,62}}},
physicsenhance_p={{{1,56},{20,156}}},
firedamage_v={
[1]={{1,185},{15,185},{20,185}},
[3]={{1,185},{15,185},{20,185}}
},
skill_eventskilllevel={{{1,1},{20,20}}},
skill_misslenum_v={{{1,1},{10,1},{12,2},{20,3},{21 ,3}}},
missle_speed_v={{{1,32},{20,32},{21,32}}},
skill_attackradius={{{1,448},{20,448},{21,448}}},
skill_cost_v={{{1,1},{20,1}}},
-- addskillexp1={{{1,0},{2,0}},{{1,1},{20,1}},{{1,0}, {2,0}}},
-- skill_skillexp_v={{ {1,SkillExpFunc(7000,1.15,1,1,1)},
-- {2,SkillExpFunc(7000,1.15,2,1,1)},
-- {3,SkillExpFunc(7000,1.16,3,1,1)},
-- {4,SkillExpFunc(7000,1.17,4,1,1)},
-- {5,SkillExpFunc(7000,1.18,5,1,1)},
-- {6,SkillExpFunc(7000,1.19,6,1,1)},
-- {7,SkillExpFunc(7000,1.20,7,1,1)},
-- {8,SkillExpFunc(7000,1.21,8,1,1)},
-- {9,SkillExpFunc(7000,1.22,9,1,1)},
-- {10,SkillExpFunc(7000,1.23,10,1,1)},
-- {11,SkillExpFunc(7000,1.24,11,1,1)},
-- {12,SkillExpFunc(7000,1.23,12,1,1)},
-- {13,SkillExpFunc(7000,1.22,13,1,1)},
-- {14,SkillExpFunc(7000,1.21,14,2,1)},
-- {15,SkillExpFunc(7000,1.20,15,2,1)},
-- {16,SkillExpFunc(7000,1.19,16,2,1)},
-- {17,SkillExpFunc(7000,1.18,17,3,1)},
-- {18,SkillExpFunc(7000,1.17,18,3,1)},
-- {19,SkillExpFunc(7000,1.16,19,3,1)},
-- {20,SkillExpFunc(7000,1.15,20,3,1)},
-- }},
},
gaibang120={ --丐帮120级技能
autoattackskill={{{1,720*256 + 1},{20,720*256 + 20},{21,720*256 + 21}},{{1,-1},{20,-1}},{{1,12*18*256 + 1},{15,12*18*256 + 5},{20,12*18*256 + 6},{21,12*18*256 + 6}}},
skill_desc=
function(level)
return "命中目标时有<color=orange>"..floor(Link(level,SKILLS.gaibang120.autoattackski ll[3]) - 12*18*256).."%<color>的概率使其灼伤\n"..
"灼伤将使普防减少<color=orange>"..floor(-Link(level,SKILLS.gaibang120zuzhou.physicsres_p[1]))..
"%<color>,火防减少<color=orange>"..floor(-Link(level,SKILLS.gaibang120zuzhou.fireres_p[1]))..
"%<color>,\n受远程攻击时伤害反弹减少<color=orange>"..floor(-Link(level,SKILLS.gaibang120zuzhou.rangedamageretu rn_p[1]))..
"%<color>,持续<color=orange>"..floor(Link(level,SKILLS.gaibang120zuzhou.physics res_p[2]) / 18).."秒<color>\n"..
"灼伤后<color=orange>"..floor((Link(level,SKILLS.gaibang120.autoattacksk ill[3]) / (18*256))).."秒<color>内不会再次触发"
end,
skill_skillexp_v={{ {1,17851239},
{2,19487603},
{3,22760330},
{4,27669421},
{5,34214875},
{6,42396694},
{7,52214875},
{8,63669421},
{9,76760330},
{10,91487603},
{11,107851239},
{12,135669421},
{13,174942148},
{14,225669421},
{15,274418181},
{16,344618181},
{17,425738181},
{18,517778181},
{19,620738181},
{20,620738181},
}},
},
gaibang120zuzhou={ --丐帮120级技能诅咒
physicsres_p={{{1,-2},{15,-8},{20,-10},{21,-10}},{{1,3*18},{15,8*18},{20,9*18},{21,9*18}}},
fireres_p={{{1,-3},{15,-12},{20,-15},{21,-15}},{{1,3*18},{15,8*18},{20,9*18},{21,9*18}}},
--meleedamagereturn_p={{{1,-4},{15,-16},{20,-20},{21,-20}},{{1,3*18},{15,8*18},{20,9*18},{21,9*18}}},
rangedamagereturn_p={{{1,-4},{15,-25},{20,-30},{21,-30}},{{1,3*18},{15,8*18},{20,9*18},{21,9*18}}},
},
}
-----------------------------------------------
--Create by yfeng 2004-05-20
-----------------------------------------------

-----------------------------------------------
--根据2个点,求线形函数f(x)=k*x+b
--y= (y2-y1)*(x-x1)/(x2-x1)+y1
--当x2=x1, 有x=c,该直线是一条垂直于x轴的直线
--这是可以取得y=任意值
--因此,如果已知两点(x1,y1),(x2,y2)可求� �过此2点的
--函数为:
function Line(x,x1,y1,x2,y2)
if(x2==x1) then
return y2
end
return (y2-y1)*(x-x1)/(x2-x1)+y1
end

-----------------------------------------------
--根据2个点,求2次形函数f(x)=a*x2+c
--y= (y2-y1)*x*x/(x2*x2-x1*x1)-(y2-y1)*x1*x1/(x2*x2-x1*x1)+y1
--当x1或者x2 < 0 ,y =0
--当x2=x1, 有x=c,是一条垂直于x轴的直线
--这是可以取得y=任意值
--因此,如果已知两点(x1,y1),(x2,y2)可求� �过此2点的
--函数为:extrac
function Conic(x,x1,y1,x2,y2)
if((x1 < 0) or (x2<0))then
return 0
end
if(x2==x1) then
return y2
end
return (y2-y1)*x*x/(x2*x2-x1*x1)-(y2-y1)*x1*x1/(x2*x2-x1*x1)+y1
end

-----------------------------------------------
--根据2个点,求-2次形函数f(x)=a*sqrt(x2)+c
--y=(y2-y1)*x/(sqrt(x2)-sqrt(x1))+y1-(y2-y1)/((sqrt(x2)-sqrt(x1))
--当x2或者x1<0, y=0,
--当x1=x2,有x=c,是一条垂直于x轴的直线
--这是可以取得y=任意值
--因此,如果已知两点(x1,y1),(x2,y2)可求� �过此2点的
--函数为:extrac
function Extrac(x,x1,y1,x2,y2)
if((x1 < 0) or (x2<0))then
return 0
end
if(x2==x1) then
return y2
end
return (y2-y1)*(x-x1)/(x2-x1)+y1
end

-----------------------------------------------
--描绘连接线:Link(x,points)
--根据points提供的一系列点,用相邻的� �个点描绘曲线
--return y值
--x 输入值
--points 点集合
--形如:points是形如{{x1,y1,func=xxx},{x2,y2,f unc=xxx},...{xn,yn,func=xxx}}的映射
function Link(x,points)
num = getn(points)
if(num<2) then
return -1
end
for i=1,num do
if(points[i][3]==nil) then
points[i][3]=Line
end
end
if(x < points[1][1]) then
return points[1][3](x,points[1][1],points[1][2],points[2][1],points[2][2])
end
if(x > points[num][1]) then
return points[num][3](x,points[num-1][1],points[num-1][2],points[num][1],points[num][2])
end

c = 2
for i=2,num do
if((x >= points[i-1][1]) and (x <= points[i][1])) then
c = i
break
end
end
return points[c][3](x,points[c-1][1],points[c-1][2],points[c][1],points[c][2])
end

------------------------------------------------------
--技能设定格式如下:
--SKILLS={
-- 技能名称= {
-- 魔法属性= {
-- [1]={{级别,数值,曲线},{级别,数值,� �线},。。。。},
-- [2]={{级别,数值,曲线},{级别,数值,� �线},。。。。},
-- [3]={{级别,数值,曲线},{级别,数值,� �线},。。。。},
-- },
-- 魔法属性= {
-- [1]={{级别,数值,曲线},{级别,数值,� �线},。。。。},
-- [2]={{级别,数值,曲线},{级别,数值,� �线},。。。。},
-- [3]={{级别,数值,曲线},{级别,数值,� �线},。。。。},
-- },
-- 。。。。。
-- },
-- 技能名称= {
-- 魔法属性= {
-- [1]={{级别,数值,曲线},{级别,数值,� �线},。。。。},
-- [2]={{级别,数值,曲线},{级别,数值,� �线},。。。。},
-- [3]={{级别,数值,曲线},{级别,数值,� �线},。。。。},
-- },
-- 魔法属性= {
-- [1]={{级别,数值,曲线},{级别,数值,� �线},。。。。},
-- [2]={{级别,数值,曲线},{级别,数值,� �线},。。。。},
-- [3]={{级别,数值,曲线},{级别,数值,� �线},。。。。},
-- },
-- 。。。。。
-- },
-- 。。。。。
--}
--如:
--SKILLS={
-- Sanhuan-taoyue={
-- physicsenhance_p={
-- [1]={{1,50},{20,335}},--魔法属性physicsenhance_p参数1,1级时为35 ,20级时为335,曲线不填,默认线形
-- [2]={{1,0},{20,0}},
-- },--没有[3],表示魔法属性physicsenhance_p参数2,默 认为任何时候都是0
-- lightingdamage_v={
-- [1]={{1,65},{20,350}},
-- [3]={{1,65},{20,350}},
-- }
-- }
--}
--以上描述技能“三环套月”的魔法属� �和数值
-----------------------------------------------------------
--函数GetSkillLevelData(levelname, data, level)
--levelname:魔法属性名称
--data:技能名称
--level:技能等级
--return:当技能名称为data,技能等级为l evel
-- 时的魔法属性levelname所需求的三个参� �的具体值
-----------------------------------------------------------
function GetSkillLevelData(levelname, data, level)
if(data==nil) then
return ""
end
if(data == "") then
return ""
end
if(SKILLS[data]==nil) then
return ""
end
if(SKILLS[data][levelname]==nil) then
return ""
end
if(type(SKILLS[data][levelname]) == "function") then
return SKILLS[data][levelname](level)
end
if(SKILLS[data][levelname][1]==nil) then
SKILLS[data][levelname][1]={{0,0},{20,0}}
end
if(SKILLS[data][levelname][2]==nil) then
SKILLS[data][levelname][2]={{0,0},{20,0}}
end
if(SKILLS[data][levelname][3]==nil) then
SKILLS[data][levelname][3]={{0,0},{20,0}}
end
p1=floor(Link(level,SKILLS[data][levelname][1]))
p2=floor(Link(level,SKILLS[data][levelname][2]))
p3=floor(Link(level,SKILLS[data][levelname][3]))
return Param2String(p1,p2,p3)
end;


function Param2String(Param1, Param2, Param3)
return Param1..","..Param2..","..Param3
end;


File:gaibang.lua hay là nằm trong file khác. các bạn giúp mình. thanks

thaihoa91
21-02-12, 12:32 AM
Trích 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>


*skill.lua
SkillExp(i) = Exp1*a^(i-1)*time*range
function SkillExpFunc(Exp0,a,Level,Time,Range)
return floor(Exp0*(a^(Level-1))*Time*Range/2)
end
-- Đây là công thức tính toán Exp cho skill 9x, cũng như Vinagame, đây là dạng skill tăng kinh nghiệm ko phải tăng theo điểm. Có lẽ do server bị thiếu chức năng nào đó nên toàn bộ hệ thống tăng skill theo kn ko hoạt động?! -- Công thức này tui chưa hiểu chỉ biết các thông số ảnh hưởng gồm có mức độ thăng cấp skill a, lev skill Level, thời gian xuất skill (??) Time, và phạm vi skill Range. Ngoài ra còn serie dame (chuỗi dame)
- skill dc đặt theo dạng sau:
SKILLS={
-- tên skills = {
-- Thuộc tính magic = {
-- [1]={{cấp,giá trị,đường},{cấp,giá trị,đường},。。。。},
-- [2]={{cấp,giá trị,đường},{cấp,giá trị,đường},。。。。},
-- [3]={{cấp,giá trị,đường},{cấp,giá trị,đường},。。。。},
-- },
-- Thuộc tính magic= {
-- [1]={{cấp,giá trị,đường},{cấp,giá trị,đường},。。。。},
-- [2]={{cấp,giá trị,đường},{cấp,giá trị,đường},。。。。},
-- [3]={{cấp,giá trị,đường},{cấp,giá trị,đường},。。。。},
-- },
-- 。。。。。
-- },
-- 。。。。。
--}
Giải thích sơ: cái SKILLS: tên hàm của skill giống như mở đầu hàm thì có funtionc do đó cái này giữ nguyên
- tên skills: theo quy tắc của jx: ví dụ nga mi kiếm pháp thì tên là emei_jianfa, mộng điệp có tên là mengdie- không thay đổi dc, thay đổi lỗi script ráng chịu
- thuộc tính magic trong magicdesc.ini: ví dụ lifereplenish_v: là phục hồi sl mỗi nửa giây ... điểm
- [1],[2],[3] là các thông số (parameters) của thuộc tính magic
- cấp: là level của skill, giá trị: số gán cho skill ở level đó, đường: chưa hiểu có thể là đường cong hoặc ko phải dạng dg thẳng thì set cái số vào đây???
Lấy 1 ví dụ: Tam Nga Tề Tuyết (skill kiếm 9x của Nga Mi)
sane_jixue={ --三峨霁雪
physicsenhance_p={{{1,510},{15,1200},{20,1637}}},
seriesdamage_p={{{1,20},{15,20},{20,60},{21,62}}},
colddamage_v={
[1]={{1,1310},{20,2435}},
[3]={{1,1310},{20,2451}}
},
deadlystrike_p={{{1,10},{20,54}}},
missle_speed_v={{{1,28},{20,32},{21,32}}},
skill_attackradius={{{1,448},{20,512},{21,512}}},
skill_cost_v={{{1,35},{20,35}}},
skill_eventskilllevel={{{1,1},{20,20}}},
skill_startevent={
[1]={{1,0},{10,0},{10,1},{20,1}}, [3]={{1,329},{20,329}}
},
skill_showevent={{{1,0},{10,0},{10,1},{20,1}}},
addskillexp1={{{1,0},{2,0}},{{1,1},{20,1}},{{1,0}, {2,0}}},
skill_skillexp_v={{ {1,SkillExpFunc(5000,1.25,1,3,1)},
{2,SkillExpFunc(5000,1.15,2,3,1)},
{3,SkillExpFunc(5000,1.16,3,3,1)},
{4,SkillExpFunc(5000,1.17,4,3,1)},
{5,SkillExpFunc(5000,1.18,5,3,1)},
{6,SkillExpFunc(5000,1.19,6,3,1)},
{7,SkillExpFunc(5000,1.20,7,3,1)},
{8,SkillExpFunc(5000,1.21,8,3,1)},
{9,SkillExpFunc(5000,1.22,9,3,1)},
{10,SkillExpFunc(5000,1.23,10,3,1)},
{11,SkillExpFunc(5000,1.24,11,3,1)},
{12,SkillExpFunc(5000,1.23,12,3,1)},
{13,SkillExpFunc(5000,1.22,13,3,1)},
{14,SkillExpFunc(5000,1.21,14,3,1)},
{15,SkillExpFunc(5000,1.20,15,3,1)},
{16,SkillExpFunc(5000,1.19,16,3,1)},
{17,SkillExpFunc(5000,1.18,17,3,1)},
{18,SkillExpFunc(5000,1.17,18,3,1)},
{19,SkillExpFunc(5000,1.16,19,3,1)},
{20,SkillExpFunc(5000,1.15,20,3,1)},
}},
},
- Tên skill: sane_jixue
- Các thuộc tính magic: Tăng sát thương vật lý(%) - physicsenhance_p chuỗi dame - seriesdamage_p Băng sát ngoại công (điểm) - colddamage_v tỉ lệ chí mạng (%) - deadlystrike_p tốc độ di chuyển missile - missle_speed_v Phạm vi hiệu quả - skill_attackradius tiêu tốn - skill_cost_v sự kiện lên lev skill - skill_eventskilllevel sự kiện bắt đầu skill - skill_startevent sự kiện thể hiện skill - skill_showevent exp của skill - addskillexp1 thiết đặt giá trị kinh nghiệm skill - skill_skillexp_v
- Lấy 1 thuộc tính làm ví dụ:
colddamage_v={
[1]={{1,1310},{20,2435}},
[3]={{1,1310},{20,2451}}
},
thông số [1]={{cấp 1 sẽ có băng sát ngoại công là 1310 (1,1310)},{cấp 20 sẽ là 2435}}
thông số [3] ý nghĩa tương tự nhưng giá trị khác, tùy thuộc vào thuộc tính. thuộc tính dame thì là giống như set các trường hợp ăn dame không phải lúc nào cũng dame 2435 mà có thể hơn hoặc thấp hơn. Thông số có thể khác nhau về ý nghĩa dù cùng thuộc tính. Có nghĩa là thông số [1] có thể quy định trình tự, thông số [2], [3] quy định giá trị...
Khi skill mở bao nhiêu { thì khi hết skill cũng phải đóng đủ bấy nhiêu }.
Các thuộc tính thường set 2 đến 3 thông số theo hệ lev như vầy:
thuộc tính={{{1, giá trị},{20, giá trị},{21, giá trị}}}, để "chốt" giá trị đầu, giá trị cuối khoảng giữa máy sẽ tự tính theo pt f(x) = ax + b. Giá trị lev 21 là để mở rộng trạng thái vượt ngưỡng 20 thì mức độ tăng giá trị có thay đổi (thường theo hướng nhiều hơn)
- Việc các thuộc tính này có dc thể hiện trong skill hay ko thì còn phụ thuộc vào việc hàm đó có dc khai báo trong skills.txt hay ko> Khai báo thuộc tính này chỉ bằng các đơn giản là copy tên thuộc tính rùi dán vào ô trống kế bên tên của skill. Ví dụ thuộc tính sát thương vật lý của Tam Nga: thì copy physicsenhance_p dán vào file skills.txt ở ô kế bên tên sane_jixue (các cột từ BN trở đi). Số thuộc tính tối đa có thể khai báo trong skills.txt là 10. thuộc tính thứ 11 trở đi sẽ bất hoạt.
- Sau đây là các hàm tính toán liên quan đến các dạng đường skill (tui hiểu ý nghĩa nhưng hàm thì hok bit giải thích)
1. Từ 2 điểm, có hàm đường thẳng: f(x) = kx + b
y= (y2-y1)*(x-x1)/(x2-x1)+y1 (đây chính là công thức xác định giá trị y thông tọa độ 2 điểm cho trc (x1, y1), (x2,y2) dựa vào hàm đường thẳng)
Khi x1 = x2, với x=c (x thành hằng số), lúc đó đường thẳng này sẽ vuông góc với trục x với mọi giá trị y
Như vậy, khi bit dc 2 điểm (x1, y1), (x2,y2) ta có thể dựng dc đường thẳng đi qua 2 điểm này
Hàm:
function Line(x,x1,y1,x2,y2)
if(x2==x1) then
return y2
end
return (y2-y1)*(x-x1)/(x2-x1)+y1
end
Ứng dụng hàm này: tuyến tính của skill khi thăng cấp. chỉ cần set 2 giá trị lev, game sẽ bit cách set thông số cho các lev còn lại. hoặc đường đi của missile: chỉ cần tọa độ ng chơi và quái có thể vẽ ra đường đi của missile từ ng đi đến quái...) mới bit chừng đó :(
2. Từ 2 điểm, có hàm bậc 2: f(x) = a*x2+c
y= (y2-y1)*x*x/(x2*x2-x1*x1)-(y2-y1)*x1*x1/(x2*x2-x1*x1)+y1 (đây chính là công thức xác định giá trị y thông tọa độ 2 điểm cho trc (x1, y1), (x2,y2) dựa vào hàm bậc 2)
Khi x1 hay x2< 0 , y=0
Khi x1 = x2, với x=c (x thành hằng số), lúc đó đường thẳng này sẽ vuông góc với trục x với mọi giá trị y
Như vậy, khi bit dc 2 điểm (x1, y1), (x2,y2) ta có thể dựng dc đường tuyến tính qua 2 điểm này
Hàm:
function Conic(x,x1,y1,x2,y2)
if((x1 < 0) or (x2<0))then
return 0
end
if(x2==x1) then
return y2
end
return (y2-y1)*x*x/(x2*x2-x1*x1)-(y2-y1)*x1*x1/(x2*x2-x1*x1)+y1
end
3. Từ 2 điểm, có hàm căn bậc 2: f(x)=a*sqrt(x2)+c
y=(y2-y1)*x/(sqrt(x2)-sqrt(x1))+y1-(y2-y1)/((sqrt(x2)-sqrt(x1)) (đây chính là công thức xác định giá trị y thông tọa độ 2 điểm cho trc (x1, y1), (x2,y2) dựa vào hàm căn bậc 2)
Khi x1 hay x2< 0 , y=0
Khi x1 = x2, với x=c (x thành hằng số), lúc đó đường thẳng này sẽ vuông góc với trục x với mọi giá trị y
Như vậy, khi bit dc 2 điểm (x1, y1), (x2,y2) ta có thể dựng dc đường tuyến tính qua 2 điểm này
Hàm:
function Extrac(x,x1,y1,x2,y2)
if((x1 < 0) or (x2<0))then
return 0
end
if(x2==x1) then
return y2
end
return (y2-y1)*(x-x1)/(x2-x1)+y1
end
4. Vẽ đường xoắn: Link(x,points)
- Từ chuỗi điểm dc cho trc, với 2 điểm liên tiếp có thể vẽ dc 1 đường cong.
- Các chùm điểm sẽ có dạng :{{x1,y1,func=xxx},{x2,y2,func=xxx},...{xn,yn,func =xxx}}
- Hàm:
function Link(x,points)
num = getn(points)
if(num<2) then
return -1
end
for i=1,num do
if(points[i][3]==nil) then
points[i][3]=Line
end
end
if(x < points[1][1]) then
return points[1][3](x,points[1][1],points[1][2],points[2][1],points[2][2])
end
if(x > points[num][1]) then
return points[num][3](x,points[num-1][1],points[num-1][2],points[num][1],points[num][2])
end

c = 2
for i=2,num do
if((x >= points[i-1][1]) and (x <= points[i][1])) then
c = i
break
end
end
return points[c][3](x,points[c-1][1],points[c-1][2],points[c][1],points[c][2])
end
5. Hàm GetSkillLevelData(levelname, data, level)
--levelname:Tên thuộc tính magic (ví du: physicsenhance_p)
--data:tên của skill
--level:levels của skill
-
function GetSkillLevelData(levelname, data, level)
if(data==nil) then
return ""
end
if(data == "") then
return ""
end
if(SKILLS[data]==nil) then
return ""
end
if(SKILLS[data][levelname]==nil) then
return ""
end
if(SKILLS[data][levelname][1]==nil) then
SKILLS[data][levelname][1]={{0,0},{20,0}}
end
if(SKILLS[data][levelname][2]==nil) then
SKILLS[data][levelname][2]={{0,0},{20,0}}
end
if(SKILLS[data][levelname][3]==nil) then
SKILLS[data][levelname][3]={{0,0},{20,0}}
end
p1=floor(Link(level,SKILLS[data][levelname][1]))
p2=floor(Link(level,SKILLS[data][levelname][2]))
p3=floor(Link(level,SKILLS[data][levelname][3]))
return Param2String(p1,p2,p3)
end;

function Param2String(Param1, Param2, Param3)
return Param1..","..Param2..","..Param3
end;
Hết....

DNTmaster
23-02-12, 11:11 AM
firedamage_v={
[1]={{1,150},{15,650},{20,900}},
[3]={{1,150},{15,650},{20,900}}

firedamage_v={
[1]={{1,991},{20,991}},
[3]={{1,991},{20,991}}
},


Chỉnh lại đoạn đó.
Skills 150 có tổng cộng 4 hiệu ứng dame khi tác dụng lên sẽ nhân lên 4 lần...
Cơ bản là vậy muốn yếu lại thì sữa cái đó