手游传奇私服发布站

 找回密码
 注册账号
查看: 359|回复: 0

装备合成 NPC脚本

[复制链接]

133

主题

138

帖子

592

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
592
发表于 2015-10-27 15:40:39 | 显示全部楼层 |阅读模式
新建一个NPC脚本,NPC的代码为2048,然后复制如下脚本自行修改

function ontalk2048(npc,event,player)
zqitem={
{150005,160005,170005,180005,"战"};
{150006,160006,170006,180006,"法"};
{150007,160007,170007,180007,"道"}
}
zqitem2={
{150101,160101,170101,180101,"战"};
{150102,160102,170102,180102,"法"};
{150103,160103,170103,180103,"道"}
}
player:echo(0,npc:GetLowGUID(),[[
在我这可合成最强王者内四格装备
合成最强王者·首饰(]]..zqitem2[player:get_job()][5]..[[).
         主宰头巾(]]..zqitem2[player:get_job()][5]..[[)*2+烈焰石*2+永恒玫瑰*2
#&item]]..zqitem2[player:get_job()][1]..[[#&                 <u><a href='event:M2402,1'>锻造</a></u>
         主宰吊坠(]]..zqitem2[player:get_job()][5]..[[)*2+烈焰石*2+永恒玫瑰*2
#&item]]..zqitem2[player:get_job()][2]..[[#&                 <u><a href='event:M2402,2'>锻造</a></u>
         主宰护肩(]]..zqitem2[player:get_job()][5]..[[)*2+烈焰石*2+永恒玫瑰*2
#&item]]..zqitem2[player:get_job()][3]..[[#&                 <u><a href='event:M2402,3'>锻造</a></u>
         主宰护膝(]]..zqitem2[player:get_job()][5]..[[)*2+烈焰石*2+永恒玫瑰*2
#&item]]..zqitem2[player:get_job()][4]..[[#&                 <u><a href='event:M2402,4'>锻造</a></u>
]]);
player:echo(0,npc:GetLowGUID(),[[
合成烈焰锻造石

#&item18100#&  需要烈焰锻造石碎片x3     <u><a href='event:M2402,5'>合成</a></u>
]]);
end



function ontalk2048_1(npc,event,player)
        if player:num_item_level(zqitem[player:get_job()][1],1) >= 2 and player:num_item(18100) >= 2 and player:num_item(10198)>=2 then
             player:remove_item(zqitem[player:get_job()][1],2);
                 player:remove_item(18100,2);
                player:remove_item(10198,2);
                 player:add_item(zqitem2[player:get_job()][1],1,0);
                 player:alert(110,0,0,"锻造成功");
                else
                        player:alert(10,0,0,"材料不足,请确认后再来找我");
                end
        ontalk2048(npc,0,player,0);
end

function ontalk2048_2(npc,event,player)
        if player:num_item_level(zqitem[player:get_job()][2],1) >= 2 and player:num_item(18100) >= 2 and player:num_item(10198)>=2 then
             player:remove_item(zqitem[player:get_job()][2],2);
                 player:remove_item(18100,2);
                player:remove_item(10198,2);
                 player:add_item(zqitem2[player:get_job()][2],1,0);
                 player:alert(110,0,0,"锻造成功");
                else
                        player:alert(10,0,0,"材料不足,请确认后再来找我");
                end
        ontalk2048(npc,0,player,0);
end

function ontalk2048_3(npc,event,player)
        if player:num_item_level(zqitem[player:get_job()][3],1) >= 2 and player:num_item(18100) >= 2 and player:num_item(10198)>=2 then
             player:remove_item(zqitem[player:get_job()][3],2);
                 player:remove_item(18100,2);
                player:remove_item(10198,2);
                 player:add_item(zqitem2[player:get_job()][3],1,0);
                 player:alert(110,0,0,"锻造成功");
                else
                        player:alert(10,0,0,"材料不足,请确认后再来找我");
                end
        ontalk2048(npc,0,player,0);
end

function ontalk2048_4(npc,event,player)
        if player:num_item_level(zqitem[player:get_job()][4],1) >= 2 and player:num_item(18100) >= 2 and player:num_item(10198)>=2 then
             player:remove_item(zqitem[player:get_job()][4],2);
                 player:remove_item(18100,2);
                player:remove_item(10198,2);
                 player:add_item(zqitem2[player:get_job()][4],1,0);
                 player:alert(110,0,0,"锻造成功");
                else
                        player:alert(10,0,0,"材料不足,请确认后再来找我");
                end
        ontalk2048(npc,0,player,0);
end

function ontalk2048_5(npc,event,player)
        if  player:num_item(18101) >= 3 then        
                 player:remove_item(18101,3);               
                 player:add_item(18100,1,0);
                 player:alert(110,0,0,"锻造成功");
                else
                        player:alert(10,0,0,"材料不足,请确认后再来找我");
                end
        ontalk2048(npc,0,player,0);
end        


Npc2048Funid =
{
[0] = ontalk2048;
[3] = ontalk2048_3;
[4] = ontalk2048_4;
[1] = ontalk2048_1;
[2] = ontalk2048_2;
[5] = ontalk2048_5;
}

function CreatureNpcFun(npc,event,player,funid)
        if Npc2048Funid[funid] ~= nil then
                Npc2048Funid[funid](npc,event,player);
        end
end

RegisterUnitEvent(2048,20,"ontalk2048")
RegisterUnitEvent(2048,29,"CreatureNpcFun")

这里合成脚本使用了lua自带功能的数组功能这样写的好处就是可以减少代码的编写量.
而且易于修改和更新.
520页游论坛www.ye520.com 欢迎您的到来,本论坛需要您的多多支持,有空常来逛逛!

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册账号

本版积分规则

手游传奇私服发布站

GMT+8, 2025-4-18 21:02 , Processed in 0.049886 second(s), 23 queries , Gzip On.

快速回复 返回顶部 返回列表