石器LUA脚本NPC重叠事件讲解

今天给大家讲解的是石器时代里LUA中的重叠事件,顾名思义,就是当玩家和NPC碰触重叠了产生的事件。在重叠事件里,一般是用作于和NPC对战或者得到/丢失某个道具等。下面我将以两组LUA脚本代码讲述重叠事件的效果。

代码一:

--NPC重叠事件(NPC索引, 玩家索引)
function Overlap(meindex, toindex)
	--怪物队列数组设置战斗的宠物ID(enemy1.txt),最大10只,-1则是没有
	enemytable = {1610, 1610, 1610, 1610, 1610, -1, -1, -1, -1, -1}
	--创建战斗的接口(toindex为玩家索引,meindex为NPC索引,enemytable为怪物队列数组)
	battle.CreateVsEnemy(toindex, meindex, enemytable)
end

function Create(name, metamo, floorid, x, y, id)
	npcindex = npc.CreateNpc(name, metamo, floorid, x, y, dir)
	--给这个NPC写入重叠事件,重叠事件的函数名定义为Overlap,对应的是上面那个函数
	char.setFunctionPointer(npcindex, "重叠事件", "Overlap", "")
end

function main()
    Create("重叠事件", 100000, 2000, 56, 68, 4)
end

从代码一中我已经加了注释应该可以很明白的看出来,先是创建了这个NPC,然后当玩家去碰到这个NPC的时候就会发生战斗,这里举了个很简单的例子,当然咱们也可以设计成会走动的NPC。

代码二:

--NPC重叠事件(NPC索引, 玩家索引)
function Overlap(meindex, toindex)
	--定义获取玩家活力的变量huoli
	huoli = char.getInt(toindex, "活力")
	--获得活力1点
	char.setInt(toindex, "活力", huoli + 1)
	--当碰触到NPC后删除NPC
	npc.DelNpc(meindex)
end

function Create(name, metamo, floorid, x, y, id)
	npcindex = npc.CreateNpc(name, metamo, floorid, x, y, dir)
	--给这个NPC写入重叠事件,重叠事件的函数名定义为Overlap,对应的是上面那个函数
	char.setFunctionPointer(npcindex, "重叠事件", "Overlap", "")
end

function main()
    Create("重叠事件", 100000, 2000, 56, 68, 4)
end

在代码二中也可以直观的看到当碰触的NPC的时候,谁碰到NPC谁就可以获得到1点活力,同时会把NPC删除掉。

重叠事件并不是很难,在玩法上可以发挥想象。例如可以做个打地鼠的模式(目前还没有人做这个功能,不排除神奇的牧羊人会去做这个功能)。

发表评论

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。