ABLUA的NetLoopFunction定时增加活力的系统

2019-11-06 10:36 石器战报 石器

NetLoopFunction()这个函数默认是写在netloopfunction.lua里的,但这个函数并没有指定的lua文件里,也就是说可以写在任意lua文件下,只需要声明这个函数即可直接执行。

那么就可以写一个每分钟或每几分钟增加活力的LUA

Bash
function NetLoopFunction()
	--定义最大玩家索引,减1是因为char.getPlayerMaxNum()是从1开始的,但索引是从0开始的
    local maxplayer = char.getPlayerMaxNum() - 1
	--摩尔求值looptimer整除10,等于0就相当于余数为0,这样的效果就是looptimer只要是每10分钟就会执行一次下面的语句	if math.mod(looptimer, 10) == 0 then
		--从0到玩家最大索引开始循环		for i = 0, maxplayer do、
			--检查索引是否存在,即玩家索引是否在游戏上			if char.check(i) == 1 then
				--这里加个判断当玩家不是离线状态并且已经5转了				if char.getWorkInt(i, "离线") == 0 and char.getInt(i, "转数") == 5 then
					--然后每次增加一点活力
				    char.setInt(i, "活力", char.getInt(i, "活力") + 1)
				end
			end
		end
	end
	--全局变量累计数值,因为在NetLoopFunction函数里是每分钟执行一次这个函数,因此是每分钟加1
	looptimer = looptimer + 1
endfunction data()
	--定义一个类似计时器的全局变量,并初始化为0
	--写在data这函数里是方便当重读lua的时候,looptimer为0
	--如果写在main函数里重读lua就不会清0
    looptimer = 0
endfunction main()
	data()end