石器LUA战后事件

今天给大家讲解一下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等。


免责声明:本内容来于网络,不代表本站的观点和立场。

相关阅读

  • group1.txt详解

    group1.txt详解

    【教学名称】:group1.txt详解【用途说明】:遇怪时会遇到的怪物  看一下教学因该会懂喔^^【教学开始】: 沙姆岛魔兽,1509,19421,19422,5146,,,,,,,,,,1,,,,,,,,,这是2诶人龙...

    2019.11.06 10:53:27作者:石器
  • skillcode.txt详解

    skillcode.txt详解

    【教学名称】:skillcode.txt详解【用途说明】:限制某些技能只给该宠物学习【教学开始】: 以下为例:首先在skillcode加入 限制捐献只给扑满乌力学习的条件如下资料:扑满乌力 1558 725 Aa&pets...

    2019.11.06 10:53:05作者:石器
  • 修改代码仿石器官方显示经验值

    修改代码仿石器官方显示经验值

    我不知道是不是目前的端都是仿官方化的经验值我的端是经验直跑完升级后NEXT那栏会显示的不是累计经验值而是下ㄧ级跟前ㄧ级的经验差然后我的上面经验值则变回0正服是下面是下次升级所需的总累计经验值上面是目前你所得到的累计经验值原本以为要动很多档案...

    2019.11.06 10:52:38作者:石器时代
  • 老石器实现自动寻路的相关代码

    老石器实现自动寻路的相关代码

    距离估计与实际值越接近,估价函数取得就越好例如对于几何路网来说,可以取两节点间曼哈顿距离做为距离估计,即f=g(n) + (abs(dx - nx) + abs(dy - ny));这样估价函数f(n)在g(n)一定的情况下,会或多或少的受...

    2019.11.06 10:51:53作者:石器
  • 发属于自己的石器时代,都需要哪一些东西?

    发属于自己的石器时代,都需要哪一些东西?

    「第一篇」由于很多原因,所以我决定用源代码进行二次开发学习,创造属于自己的石器时代的版本和功能。相信很多朋友也曾经想过,如果能够拥有一套完全属于自己的石器时代的版本,该是多么自由与方便。这里说的完全属于石器时代的版本,具体应该包括哪一些?很...

    2019.11.06 10:51:15作者:石器时代
  • 用 SDL2 处理石器精灵图

    用 SDL2 处理石器精灵图

      一个精灵图,由多个固定间隔的图标组成。利用精灵图的好处就是不必将图标逐个读入内存进行操作。我们可以将精灵图中需要的部分用一个个矩形截取下来,然后再输出到渲染器上。环境:SDL2 + VC++2015下面的代码将打开sprite...

    2019.11.06 10:50:43作者:石器