石器LUA战后事件

2019-11-0610:17石器单机版石器时代

今天给大家讲解一下ABLUA里的战后事件,这里的战后时间仅针对和NPC战斗的战后事件。

先看一下下列代码:

C
function Talked(meindex, talkerindex , szMes, color )
	if npc.isFaceToFace(meindex, talkerindex) == 1 then 
lssproto.windows(talkerindex, "对话框", "确定|取消", 1, char.getWorkInt( meindex, "对象"), "是否要进行神奇的战后事件测试?")
	end
end
function WindowTalked ( meindex, talkerindex, seqno, select, data)
	if npc.isFaceToFace(meindex, talkerindex) == 1 then 
if select == 1 then
	        bosstable = {1610, -1, -1, -1, -1, -1, -1, -1, -1, -1}
battleindex = battle.CreateVsEnemy(talkerindex, meindex, bosstable)
end
	end
end--和NPC战斗结束事件(NPC索引, 战斗索引,胜负)function BattleOver(meindex, battleindex, iswin)
--iswin表示NPC的输赢,1为NPC输了,0为NPC赢里		if iswin == 1 then			--从0到4循环开始需要搜索位置			for i=0, 4 do
--这里玩家索引是通过战斗库的getCharOne来获取上方或者下方的索引				--battle.getCharOne中0表示下方,1则表示上方,i则表示位置数值范围0~4
charaindex = battle.getCharOne(battleindex, i, 0)
--检查索引是否存在				if char.check(charaindex) == 1 then					--这里就可以增加任意代码了,比如让赢的玩家随机得到一件物品					--做一个奖励的数组。
itemid = {21000,21002,21003}
--定义一个随机值
r = math.random(1, table.getn(itemid))
--得到物品(当道具栏满的时则无法得到)
char.Additem(charaindex, itemid[r])
--系统提示			        char.TalkToCli(charaindex, -1, "恭喜获得"..item.getNameFromNumber(itemid[r]), "青色")
end
end
end
end
function Create(name, metamo, floorid, x, y, dir)
	index = npc.CreateNpc(name, metamo, floorid, x, y, dir)
	if char.check(index) == 1 then		char.setFunctionPointer(index, "对话事件", "Talked", "")
char.setFunctionPointer(index, "窗口事件", "WindowTalked", "")
char.setFunctionPointer(index, "战后事件", "BattleOver", "")
	end
end
function main()
	Create("神奇战后事件", 100000, 2000, 50, 50, 4)end


我们重点看function BattleOver(meindex, battleindex, iswin)这个函数,代码中已经做了注释,相信很好理解。


在战后事件可以发挥自己的想象,增加道具,增加各种货币,或者再增加新的NPC等。


石器时代历史 PC端石器任务 石器时代俱乐部 石器cc 石器时代7.5