烈焰心法修炼通过NPC脚本代码
local cs= 1; --测试模式,为1时,自动清空等级并刷无限元力,正常运行改成0
local xfxtdjparam=267; --心法等级变量
local xfxtylparam=268; --心法元力变量
local xfxtname = {"<font color='#003300'>心</font><font color='#006600'>法</font><font color='#009900'>未</font><font color='#00CC00'>激</font><font color='#00FF00'>活</font>","<font color='#FF3A00'>一</font><font color='#FF7300'>气</font><font color='#FFAC00'>纯</font><font color='#FFE600'>元</font>","<font color='#FF3A00'>两</font><font color='#FF7300'>仪</font><font color='#FFAC00'>向</font><font color='#FFE600'>心</font>","<font color='#FF3A00'>三</font><font color='#FF7300'>花</font><font color='#FFAC00'>聚</font><font color='#FFE600'>顶</font>","<font color='#FF3A00'>四</font><font color='#FF7300'>极</font><font color='#FFAC00'>归</font><font color='#FFE600'>真</font>","<font color='#FF3A00'>五</font><font color='#FF7300'>气</font><font color='#FFAC00'>朝</font><font color='#FFE600'>元</font>","<font color='#FF3A00'>六</font><font color='#FF7300'>合</font><font color='#FFAC00'>归</font><font color='#FFE600'>一</font>","<font color='#FF3A00'>七</font><font color='#FF7300'>魄</font><font color='#FFAC00'>化</font><font color='#FFE600'>形</font>","<font color='#FF3A00'>八</font><font color='#FF7300'>荒</font><font color='#FFAC00'>破</font><font color='#FFE600'>灭</font>","<font color='#FF3A00'>九</font><font color='#FF7300'>转</font><font color='#FFAC00'>轮</font><font color='#FFE600'>回</font>","<font color='#FF3A00'>真</font><font color='#FF7300'>龙</font><font color='#FFAC00'>神</font><font color='#FFE600'>卫</font>"}
local xfxtjob = {"物理","魔法","道术"}
local xfxtgj ={
{1000,2000,3000,4000,5000,6000,7000,8000,9000,10000}, --战士物攻
{1000,2000,3000,4000,5000,6000,7000,8000,9000,10000}, --法师魔攻
{1000,2000,3000,4000,5000,6000,7000,8000,9000,10000} --道士道攻
}
local xfxtsm ={
{10,20,30,40,50,60,70,80,90,100}, --战士生命百分比
{10,20,30,40,50,60,70,80,90,100}, --法师生命百分比
{10,20,30,40,50,60,70,80,90,100} --道士生命百分比
}
local xfxt ={
{1000,1000,1000,200000}, --1阶{物防,魔防,爆击值,提升到1阶所需经验},
{1000,1000,1000,600000}, --2阶{物防,魔防,爆击值,提升到2阶所需经验},
{1000,1000,1000,1500000}, --3阶{物防,魔防,爆击值,提升到3阶所需经验},
{1000,1000,1000,3000000}, --4阶{物防,魔防,爆击值,提升到4阶所需经验},
{1000,1000,1000,5400000}, --5阶{物防,魔防,爆击值,提升到5阶所需经验},
{1000,1000,1000,8640000}, --6阶{物防,魔防,爆击值,提升到6阶所需经验},
{1000,1000,1000,12960000}, --7阶{物防,魔防,爆击值,提升到7阶所需经验},
{1000,1000,1000,18144000}, --8阶{物防,魔防,爆击值,提升到8阶所需经验},
{1000,1000,1000,24494400}, --9阶{物防,魔防,爆击值,提升到9阶所需经验},
{1000,1000,1000,31842720} --10阶{物防,魔防,爆击值,提升到10阶所需经验}
}
local function top(npc,event,player)
player:echo(0,npc:GetLowGUID(),[[
<font color="#66B3FF">------------------------------------------------</font>
<font color='#FF3A00'>欢</font><font color='#FF7300'>迎</font><font color='#FFAC00'>光</font><font color='#FFE600'>临</font><font color="#FF0000"> --- XX烈焰</font>
<font color="#66B3FF">------------------------------------------------</font>
]]);
end
function ontalk2107(npc,event,player)
if cs == 1 then
player:set_param(xfxtdjparam,0);
player:set_param(xfxtylparam,999999999);
end
top(npc,event,player)
player:echo(0,npc:GetLowGUID(),[[
<font color="#ccca30">自从心法古籍被带出神殿,远古的封印被破坏
龙魔神殿内沉睡的魔物被再次唤醒
灾难即将降临,勇士们,趁着封印未完全解封
怪物的力量尚未完全恢复,前往消灭怪物吧
心法等级[<font color='#FF0000'>总共分为10阶真龙神卫</font>]
心法经验可通过永恒玫瑰兑换
每上升一个等级属性提升越高哦
#&talk_line#&
<u><a href='event:M2402,100'>提升--心法等级</a></u>
#&talk_line#&
<u><a href='event:M2402,200'>兑换--心法元力</a></u>
<font color="#66B3FF">------------------------------------------------</font></font>
]]);
end
function ontalk2107_100(npc,event,player)
local m,n = player:get_param(xfxtdjparam),player:get_job();
top(npc,event,player)
if m <= 9 then
player:echo(0,npc:GetLowGUID(),[[
<font color="#ccca30">当前心法元力:[<font color='#FF0000'>]]..player:get_param(xfxtylparam)..[[</font>]
#&talk_line#&
提升至【]]..xfxtname[m+2]..[[】将消耗:[<font color='#FF0000'>]]..xfxt[(m+1)][5]..[[</font>]元力
#&talk_line#&
【]]..xfxtname[(m+2)]..[[】属性:
#&talk_line#&
]]..xfxtjob[n]..[[攻击:]]..xfxtgj[n][m+1]..[[
物理防御:]]..xfxt[(m+1)][1]..[[
魔法防御:]]..xfxt[(m+1)][2]..[[
爆击值:]]..xfxt[(m+1)][3]..[[
生命百分比:]]..xfxtsm[n][m+1]..[[%
#&talk_line#&
<u><a href='event:M2402,0'>返 回 首 页</a></u> <u><a href='event:M2402,101'>提升--心法等级</a></u>
<font color="#66B3FF">------------------------------------------------</font></font>
]]);
else
player:echo(0,npc:GetLowGUID(),[[
<font color="#ccca30">当前心法元力:[<font color='#FF0000'>]]..player:get_param(xfxtylparam)..[[</font>]
#&talk_line#&
【<font color='#FF0000'>已达满级 无需继续提升</font>】
#&talk_line#&
【]]..xfxtname[(m+1)]..[[】属性:
#&talk_line#&
]]..xfxtjob[n]..[[攻击:]]..xfxtgj[n][m]..[[
物理防御:]]..xfxt[(m)][1]..[[
魔法防御:]]..xfxt[(m)][2]..[[
爆击值:]]..xfxt[(m)][3]..[[
生命百分比:]]..xfxtsm[n][m]..[[%
#&talk_line#&
<u><a href='event:M2402,0'>返 回 首 页</a></u>
<font color="#66B3FF">------------------------------------------------</font></font>
]]);
end
end
function ontalk2107_200(npc,event,player)
top(npc,event,player)
player:echo(0,npc:GetLowGUID(),[[
<font color="#ccca30">当前心法元力:[<font color='#FF0000'>]]..player:get_param(xfxtylparam)..[[</font>]
#&talk_line#&
<font color="#ccca30"><u><a href='event:M2402,1'>兑换1W心法元力</a></u> <font color='#FF0000'>需永恒爱恋x1</font>
#&talk_line#&
<u><a href='event:M2402,2'>兑换5W心法元力</a></u> <font color='#FF0000'>需永恒爱恋x5</font>
#&talk_line#&
<u><a href='event:M2402,3'>兑换10W心法元力</a></u> <font color='#FF0000'>需永恒爱恋x10</font>
#&talk_line#&
<u><a href='event:M2402,4'>兑换100W心法元力</a></u> <font color='#FF0000'>需永恒爱恋x100</font>
#&talk_line#&
<u><a href='event:M2402,0'>返 回 首 页</a></u>
<font color="#66B3FF">------------------------------------------------</font></font>
]]);
end
function ontalk2107_1(npc,event,player)
if player:num_item(10198,1) >= 1 then
player:remove_item(10198,1,1);
player:set_param(xfxtylparam,player:get_param(xfxtylparam)+10000);
player:alert(10,0,0,"元力+1W 当前元力:"..player:get_param(xfxtylparam).."");
else
player:alert(10,0,0,"没有永恒爱恋x1,无法兑换");
end
ontalk2107_200(npc,0,player,0);
end
function ontalk2107_2(npc,event,player)
if player:num_item(10198,1) >= 5 then
player:remove_item(10198,5,1);
player:set_param(xfxtylparam,player:get_param(xfxtylparam)+50000);
player:alert(10,0,0,"元力+5W 当前元力:"..player:get_param(xfxtylparam).."");
else
player:alert(10,0,0,"没有永恒爱恋x5,无法兑换");
end
ontalk2107_200(npc,0,player,0);
end
function ontalk2107_3(npc,event,player)
if player:num_item(10198,1) >= 10 then
player:remove_item(10198,10,1);
player:set_param(xfxtylparam,player:get_param(xfxtylparam)+100000);
player:alert(10,0,0,"元力+10W 当前元力:"..player:get_param(xfxtylparam).."");
else
player:alert(10,0,0,"没有永恒爱恋x10,无法兑换");
end
ontalk2107_200(npc,0,player,0);
end
function ontalk2107_4(npc,event,player)
if player:num_item(10198,1) >= 100 then
player:remove_item(10198,100,1);
player:set_param(xfxtylparam,player:get_param(xfxtylparam)+1000000);
player:alert(10,0,0,"元力+100W 当前元力:"..player:get_param(xfxtylparam).."");
else
player:alert(10,0,0,"没有永恒爱恋x100,无法兑换");
end
ontalk2107_200(npc,0,player,0);
end
function ontalk2107_101(npc,event,player)
local i = player:get_job()*100+5000+player:get_param(xfxtdjparam);
if player:get_param(xfxtylparam) >=xfxt[(player:get_param(xfxtdjparam)+1)][5] then
player:set_param(xfxtylparam,player:get_param(xfxtylparam)-xfxt[(player:get_param(xfxtdjparam)+1)][5]);
player:set_param(xfxtdjparam,player:get_param(xfxtdjparam)+1);
player:set_status(i,0,100,5);
player:set_name_pre(5,""..xfxtname[player:get_param(xfxtdjparam)+1].."");
g_alert("玩家[<font color='#FF0000'>"..player:GetName().."</font>]经过重重努力,终于将心法等级提高到:[<font color='#FF0000'>"..xfxtname[player:get_param(xfxtdjparam)+1].."</font>]",2,1000,0,1);
player:alert(10,0,0,"心法等级提高到:[<font color='#FF0000'>"..xfxtname[player:get_param(xfxtdjparam)+1].."</font>]");
else
player:alert(10,0,0,"心法元力不足,无法进行下一级修炼");
end
ontalk2107_100(npc,0,player,0);
end
function xfEnterGame(event,player,Mapx,Mapy)
if player:get_param(xfxtdjparam) >= 1 then
player:set_status(player:get_job()*100+5000+player:get_param(xfxtdjparam),0,100,5);
end
player:set_name_pre(5,""..xfxtname[player:get_param(xfxtdjparam)+1].."");
end
RegisterServerHook(19,"xfEnterGame")
Npc2107Funid =
{
[0] = ontalk2107;
[1] = ontalk2107_1;
[2] = ontalk2107_2;
[3] = ontalk2107_3;
[4] = ontalk2107_4;
[200] = ontalk2107_200;
[100] = ontalk2107_100;
[101] = ontalk2107_101;
}
function CreatureNpcFun(npc,event,player,funid)
if Npc2107Funid[funid] ~= nil then
Npc2107Funid[funid](npc,event,player);
end
end
RegisterUnitEvent(2107,20,"ontalk2107")
RegisterUnitEvent(2107,29,"CreatureNpcFun")