烈焰服务端功能脚本之修仙脚本
function ontalk1200(npc,event,player)
player:echo(0,npc:GetLowGUID(),[[
<font color='#FF0000'>修仙说明:</font>
#&talk_line#&
只有达到轮回20级后才可以修仙。
修仙一共10级,每级都会获得非常强大的属性
加成,以及专属的称号。
修仙石为修仙必须物品,可以在风之谷中获得。
#&talk_line#&
<u><a href='event:M2402,1'>开始修仙</a></u> <u><a href='event:M2402,2'>了解修仙石</a></u>
]]);
end
function ontalk1200_1(npc,event,player)
local chenghao = {
"<font color='#A6FFA6'>◆</font><font color='#93FF93'>◆</font><font color='#79FF79'>一</font><font color='#53FF53'>阶</font><font color='#28FF28'>初</font><font color='#28FF28'>入</font><font color='#53FF53'>仙</font><font color='#79FF79'>门</font><font color='#93FF93'>◆</font><font color='#A6FFA6'>◆</font>",
"<font color='#9393FF'>◆</font><font color='#7D7DFF'>◆</font><font color='#6A6AFF'>二</font><font color='#4A4AFF'>阶</font><font color='#2828FF'>两</font><font color='#2828FF'>仪</font><font color='#4A4AFF'>脱</font><font color='#6A6AFF'>俗</font><font color='#7D7DFF'>◆</font><font color='#9393FF'>◆</font>",
"<font color='#FFFFAA'>◆</font><font color='#FFFF93'>◆</font><font color='#FFFF6F'>三</font><font color='#FFFF37'>阶</font><font color='#F9F900'>出</font><font color='#F9F900'>类</font><font color='#FFFF37'>拔</font><font color='#FFFF6F'>萃</font><font color='#FFFF93'>◆</font><font color='#FFFFAA'>◆</font>",
"<font color='#FFBB77'>◆</font><font color='#FFAF60'>◆</font><font color='#FFA042'>四</font><font color='#FF9224'>阶</font><font color='#FF8000'>出</font><font color='#FF8000'>神</font><font color='#FF9224'>入</font><font color='#FFA042'>化</font><font color='#FFAF60'>◆</font><font color='#FFBB77'>◆</font>",
"<font color='#CA8EFF'>◆</font><font color='#BE77FF'>◆</font><font color='#B15BFF'>五</font><font color='#9F35FF'>阶</font><font color='#921AFF'>仙</font><font color='#921AFF'>界</font><font color='#9F35FF'>奇</font><font color='#B15BFF'>才</font><font color='#BE77FF'>◆</font><font color='#CA8EFF'>◆</font>",
"<font color='#FF9D6F'>◆</font><font color='#FF8F59'>◆</font><font color='#FF8040'>六</font><font color='#FF5809'>阶</font><font color='#F75000'>不</font><font color='#F75000'>灭</font><font color='#FF5809'>元</font><font color='#FF8040'>神</font><font color='#FF8F59'>◆</font><font color='#FF9D6F'>◆</font>",
"<font color='#ffa6ff'>◆</font><font color='#FF8EFF'>◆</font><font color='#FF77FF'>七</font><font color='#FF44FF'>阶</font><font color='#FF00FF'>惊</font><font color='#FF00FF'>世</font><font color='#FF44FF'>骇</font><font color='#FF77FF'>俗</font><font color='#FF8EFF'>◆</font><font color='#ffa6ff'>◆</font>",
"<font color='#FF95CA'>◆</font><font color='#FF79BC'>◆</font><font color='#FF60AF'>八</font><font color='#FF359A'>阶</font><font color='#FF0080'>傲</font><font color='#FF0080'>视</font><font color='#FF359A'>群</font><font color='#FF60AF'>仙</font><font color='#FF79BC'>◆</font><font color='#FF95CA'>◆</font>",
"<font color='#FF9797'>◆</font><font color='#ff7575'>◆</font><font color='#FF5151'>九</font><font color='#FF2D2D'>阶</font><font color='#FF0000'>仙</font><font color='#FF0000'>界</font><font color='#FF2D2D'>至</font><font color='#FF5151'>尊</font><font color='#ff7575'>◆</font><font color='#FF9797'>◆</font>",
"<font color='#28FF28'>◆</font><font color='#FF5809'>◆</font><font color='#9F35FF'>十</font><font color='#FF00FF'>阶</font><font color='#FF0000'>群</font><font color='#FF0000'>仙</font><font color='#FF00FF'>之</font><font color='#9F35FF'>首</font><font color='#FF5809'>◆</font><font color='#28FF28'>◆</font>"
};
local minattack = {15,35,100,250,450,750,1150,2500,4000,8000};
local maxattack = {30,65,145,350,550,850,1250,3000,6000,12000};
local minguard = {15,25,80,160,260,400,700,1750,3000,6500};
local maxguard = {30,40,120,220,350,550,850,2050,4500,10000};
local lifeupper = {
{2,4,6,8,10,12,14,30,50,80},
{4,8,12,16,20,24,28,40,60,90},
{6,12,18,24,30,36,42,60,80,110}
};
local absorbs = {1,2,3,4,5,6,7,12,20,30};
local extrahurt = {15,50,100,250,450,750,1000,3500,7000,15000};
local addinter = {150,350,700,1500,4000,10000,20000,70000,150000,300000};
local recoverinter = {5,15,35,50,80,120,200,1000,2000,4000};
local needitems = {10248,10249,10250,10251,10252,10253,10254,10255,10256,10257};
local hanzi = {"一","二","三","四","五","六","七","八","九","十"};
local job = player:get_job();
local chinajob = {"物理","魔法","道术"};
local xxdj = player:get_param(348);
local xxdjn = xxdj + 1;
if xxdj < 10 then
player:echo(0,npc:GetLowGUID(),[[
#&talk_line#&
目前修仙等级:<font color='#FF0000'>]]..xxdj..[[级</font>,到达下一级需要:
#&item]]..needitems[xxdjn]..[[#& <font color="#FFFF00">修仙石]]..xxdjn..[[级 x 1</font>
#&talk_line#&
]]..hanzi[xxdjn] ..[[级修仙称号:<font color="#FFFF00">]]..chenghao[xxdjn]..[[</font>
#&talk_line#&
]]..hanzi[xxdjn] ..[[级修仙属性:
<font color="#C4E1FF">]]..chinajob[job]..[[攻击增加:]]..minattack[xxdjn]..[[-]]..maxattack[xxdjn]..[[</font>
<font color="#C4E1FF">血量增加:]]..lifeupper[job][xxdjn]..[[%</font>
<font color="#C4E1FF">防御增加:]]..minguard[xxdjn]..[[-]]..maxguard[xxdjn]..[[</font>
<font color="#C4E1FF">伤害吸收:]]..absorbs[xxdjn]..[[%</font>
<font color="#C4E1FF">暴击力增加:]]..extrahurt[xxdjn]..[[</font>
<font color="#C4E1FF">内力值增加:]]..addinter[xxdjn]..[[</font>
<font color="#C4E1FF">内力恢复增加:]]..recoverinter[xxdjn]..[[</font>
#&talk_line#&
<u><a href='event:M2402,11'>确认修仙</a></u> <u><a href='event:M2402,10000'>返回上页</a></u>
]]);
else
player:echo(0,npc:GetLowGUID(),[[
#&talk_line#&
<font color='#FF0000'>你修仙已经到达顶级,如果还想再继续提高实力,需等待我师兄的到来!</font>
#&talk_line#&
]]);
end
end
function ontalk1200_11(npc,event,player)
local chenghao = {40,41,42,43,44,45,46,47,48,49};
local needitems = {10248,10249,10250,10251,10252,10253,10254,10255,10256,10257};
local xxdj = player:get_param(348)+1;
local job = player:get_job();
local buff = {
{401,402,403,404,405,406,407,408,409,410},
{411,412,413,414,415,416,417,418,419,420},
{421,422,423,424,425,426,427,428,429,430},
};
if player:get_param(265) == 20 then
if player:num_item_level(needitems[xxdj],1) >= 1 then
player:set_status(buff[job][xxdj],0,100,5);
player:set_name_pre(chenghao[xxdj],"1");
if xxdj > 1 then
player:set_name_pre(chenghao[xxdj-1],"");
end
player:set_param(348,xxdj);
player:remove_item_level(needitems[xxdj],1,1);
else
player:alert(10,0,0,"你没有修仙石"..xxdj.."级,无法继续修仙!");
end
else
player:alert(10,0,0,"你轮回等级不足20级,无法修仙!");
end
ontalk1200_1(npc,0,player);
end
function ontalk1200_2(npc,event,player)
player:echo(0,npc:GetLowGUID(),[[
#&talk_line#&
修仙石主要出现在<font color='#FF0000'>风之谷</font>中,
在我这儿还可以帮你合成<font color='#FF0000'>高级修仙石</font>。
#&talk_line#&
<u><a href='event:M2402,21'>送我去风之谷</a></u>
<u><a href='event:M2402,22'>合成高级修仙石</a></u>
]]);
end
function ontalk1200_21(npc,event,player)
if player:get_param(265) == 20 or player:get_param(348) > 0 then
g_alert("玩家[<font color='#FF0000'>"..player:GetName().."</font>]通过修仙使者进入风之谷",2,1000,0,1);
player:randomthismap(501);
else
player:alert(10,0,0,"你轮回等级不足20级或还未修仙,不能进入!");
ontalk1200_2(npc,0,player,0);
end
end
function ontalk1200_22(npc,event,player)
player:echo(0,npc:GetLowGUID(),[[
<font color="#FF0000">注:合成后无法分解!</font>
#&talk_line#&
#&item10249#& <font color="#FFFF00">合成需要修仙石1级 x 3</font> <u><a href='event:M2402,2201'>合成</a></u>
#&item10250#& <font color="#FFFF00">合成需要修仙石2级 x 3</font> <u><a href='event:M2402,2202'>合成</a></u>
#&item10251#& <font color="#FFFF00">合成需要修仙石3级 x 3</font> <u><a href='event:M2402,2203'>合成</a></u>
#&item10252#& <font color="#FFFF00">合成需要修仙石4级 x 3</font> <u><a href='event:M2402,2204'>合成</a></u>
#&item10253#& <font color="#FFFF00">合成需要修仙石5级 x 3</font> <u><a href='event:M2402,2205'>合成</a></u>
<u><a href='event:M2402,10000'>返回首页</a></u> <u><a href='event:M2402,221'>下一页</a></u>
]]);
end
function ontalk1200_23(npc,event,player)
if player:get_param(349) < 2 then
if player:get_vcoin() >= 100000 then
player:sub_vcoin(100000);
player:set_param(340,player:get_param(340) - 1);
player:set_param(349,player:get_param(349) + 1);
else
player:alert(10,0,0,"你没有10万元宝!不能购买!");
end
else
player:alert(10,0,0,"购买次数不足!每天最多只能购买2次!");
end
ontalk1200_2(npc,0,player,0);
end
function ontalk1200_221(npc,event,player)
player:echo(0,npc:GetLowGUID(),[[
<font color="#FF0000">注:合成后无法分解!</font>
#&talk_line#&
#&item10254#& <font color="#FFFF00">合成需要修仙石6级 x 3</font> <u><a href='event:M2402,2206'>合成</a></u>
#&item10255#& <font color="#FFFF00">合成需要修仙石7级 x 3</font> <u><a href='event:M2402,2207'>合成</a></u>
#&item10256#& <font color="#FFFF00">合成需要修仙石8级 x 3</font> <u><a href='event:M2402,2208'>合成</a></u>
#&item10257#& <font color="#FFFF00">合成需要修仙石9级 x 3</font> <u><a href='event:M2402,2209'>合成</a></u>
<u><a href='event:M2402,10000'>返回首页</a></u> <u><a href='event:M2402,22'>上一页</a></u>
]]);
end
function ontalk1200_2201(npc,event,player)
if player:num_item_level(10248,1) >= 3 then
player:remove_item_level(10248,3,1);
player:add_item(10249,1,1);
player:alert(110,0,0,"合成修仙石2级");
else
player:alert(10,0,0,"您没有3个修仙石1级,无法合成!");
end
ontalk1200_22(npc,0,player);
end
function ontalk1200_2202(npc,event,player)
if player:num_item_level(10249,1) >= 3 then
player:remove_item_level(10249,3,1);
player:add_item(10250,1,1);
player:alert(110,0,0,"合成修仙石3级");
else
player:alert(10,0,0,"您没有3个修仙石2级,无法合成!");
end
ontalk1200_22(npc,0,player);
end
function ontalk1200_2203(npc,event,player)
if player:num_item_level(10250,1) >= 3 then
player:remove_item_level(10250,3,1);
player:add_item(10251,1,1);
player:alert(110,0,0,"合成修仙石4级");
else
player:alert(10,0,0,"您没有3个修仙石3级,无法合成!");
end
ontalk1200_22(npc,0,player);
end
function ontalk1200_2204(npc,event,player)
if player:num_item_level(10251,1) >= 3 then
player:remove_item_level(10251,3,1);
player:add_item(10252,1,1);
player:alert(110,0,0,"合成修仙石5级");
else
player:alert(10,0,0,"您没有3个修仙石4级,无法合成!");
end
ontalk1200_22(npc,0,player);
end
function ontalk1200_2205(npc,event,player)
if player:num_item_level(10252,1) >= 3 then
player:remove_item_level(10252,3,1);
player:add_item(10253,1,1);
player:alert(110,0,0,"合成修仙石6级");
else
player:alert(10,0,0,"您没有3个修仙石5级,无法合成!");
end
ontalk1200_22(npc,0,player);
end
function ontalk1200_2206(npc,event,player)
if player:num_item_level(10253,1) >= 3 then
player:remove_item_level(10253,3,1);
player:add_item(10254,1,1);
player:alert(110,0,0,"合成修仙石7级");
else
player:alert(10,0,0,"您没有3个修仙石6级,无法合成!");
end
ontalk1200_221(npc,0,player);
end
function ontalk1200_2207(npc,event,player)
if player:num_item_level(10254,1) >= 3 then
player:remove_item_level(10254,3,1);
player:add_item(10255,1,1);
player:alert(110,0,0,"合成修仙石8级");
else
player:alert(10,0,0,"您没有3个修仙石7级,无法合成!");
end
ontalk1200_221(npc,0,player);
end
function ontalk1200_2208(npc,event,player)
if player:num_item_level(10255,1) >= 3 then
player:remove_item_level(10255,3,1);
player:add_item(10256,1,1);
player:alert(110,0,0,"合成修仙石9级");
else
player:alert(10,0,0,"您没有3个修仙石8级,无法合成!");
end
ontalk1200_221(npc,0,player);
end
function ontalk1200_2209(npc,event,player)
if player:num_item_level(10256,1) >= 3 then
player:remove_item_level(10256,3,1);
player:add_item(10257,1,1);
player:alert(110,0,0,"合成修仙石10级");
else
player:alert(10,0,0,"您没有3个修仙石9级,无法合成!");
end
ontalk1200_221(npc,0,player);
end
function ontalk1200_23(npc,event,player)
if player:get_param(349) < 1 then
if player:get_vcoin() >= 100000 then
player:sub_vcoin(100000);
player:set_param(349,player:get_param(349) + 1);
player:set_param(340,player:get_param(340) - 1);
else
player:alert(10,0,0,"你没有10万元宝!不能购买!");
ontalk1200_2(npc,0,player,0);
end
else
player:alert(10,0,0,"购买次数不足,每天最多购买2次!");
ontalk1200_2(npc,0,player,0);
end
end
function ontalk1200_10000(npc,event,player)
ontalk1200(npc,0,player,0);
end
Npc1200Funid =
{
[1] = ontalk1200_1;
[2] = ontalk1200_2;
[11] = ontalk1200_11;
[21] = ontalk1200_21;
[22] = ontalk1200_22;
[23] = ontalk1200_23;
[221] = ontalk1200_221;
[2201] = ontalk1200_2201;
[2202] = ontalk1200_2202;
[2203] = ontalk1200_2203;
[2204] = ontalk1200_2204;
[2205] = ontalk1200_2205;
[2206] = ontalk1200_2206;
[2207] = ontalk1200_2207;
[2208] = ontalk1200_2208;
[2209] = ontalk1200_2209;
[10000] = ontalk1200_10000;
}
function CreatureNpcFun(npc,event,player,funid)
if Npc1200Funid[funid] ~= nil then
Npc1200Funid[funid](npc,event,player);
end
end
RegisterUnitEvent(1200,20,"ontalk1200")
RegisterUnitEvent(1200,29,"CreatureNpcFun")
脚本为大概内容,具体需要自己进行修改和调整。修仙所需的buff 需要自行在数据库和客户端添加数据和图片资源.