如何在【烈焰私服】里添加元宝圣地NPC
之前小编为大家分享过怎么定时定点的刷元宝怪,今天我们就来建立一个元宝圣地NPC传送使者,通过这个NPC对话进入元宝地图。那么该如何通过NPC的对话显示并与服务端协议从而进行判断进入该地图呢?接下来小编为大家详解下过程。
首先打开烈焰SF服务端的数据库,然后打开数据库里的creature_proto与creature_staticspawns这两个表库,增加NPC的数据。否则是无法通过NPC正确的对话和显示触发。。。这里我们用2044代表NPC的代码,可以自行更换代码。只要不冲突其他的NPC代码就行啦!
代码如下:
function ontalk2044(npc,event,player)
player:echo(0,npc:GetLowGUID(),[[
#&talk_line#&
本地图BOSS的刷新时间详细如下:
除了死亡之王以外,本地图内其他BOSS刷新时间为15分钟。
死亡之王刷新时间为:60分钟
爆率与其他地图相同的BOSS一致
该地图禁止使用随机传送
#&talk_line#&
VIP1-VIP5进入需要消耗5万元宝
VIP6-VIP9进入需要消耗2万元宝
V10以上玩家可以免费进入
<u><a href='event:M2044,1'>点击进入超级BOSS之家</a></u>
]]);
end
function onTalk2044_1(npc,event,player)
if player:get_player_type()<=5 and player:get_vcoin()>=50000 then
--以上脚本注释为:如果VIP等级小于获得等于5 和 身上元宝数量是否满足5万。
player:sub_vcoin(50000);
--扣除5万元宝
player:randomthismap(98);
--进入地图代码(98)
g_alert("玩家["..player:GetName().."]进入了超级BOSS之家",2,1000,0,1);
--系统提示
elseif (player:get_player_type()<=9 and player:get_player_type()>=6) and player:get_vcoin()>=20000 then
--以上这行代码衔接上面的如果,意思是:否则VIP等级小于等于9 和大于等于6 则扣除身上2万元宝
player:sub_vcoin(20000);
--扣除2万元宝
player:randomthismap(98);
--进入地图代码(98)
g_alert("玩家["..player:GetName().."]进入了超级BOSS之家",2,1000,0,1);
--系统提示
elseif player:get_player_type()>=10 then
--以上这行代码衔接上面的如果,意思是:或者VIP等级大于等于10
player:randomthismap(98);
--进入地图代码(98)
g_alert("玩家["..player:GetName().."]进入了超级BOSS之家",2,1000,0,1);
--系统提示
else
player:alert(10,0,0,"条件不满足,元宝不足");
ontalk2044(npc,0,player,0);
end
end
Npc2044Funid =
{
= ontalk2044;
= onTalk2044_1;
}
function CreatureNpcFun(npc,event,player,funid)
if Npc2044Funid ~= nil then
Npc2044Funid(npc,event,player);
end
end
RegisterUnitEvent(2044,20,"ontalk2044")
RegisterUnitEvent(2044,29,"CreatureNpcFun")
以上代码已经为小伙伴们详细说明了,有需要的可以根据提示自行修改,依样画葫芦。
本期与大家的分享不知不觉的又到结尾了,小伙伴们下期再见哈!
页:
[1]