70 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			Plaintext
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			70 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			Plaintext
		
	
	
		
			Executable File
		
	
	
	
	
local defReliveConfId = StaticFubens[0].reliveConfId or 1
 | 
						|
local defReliveConf = ReliveConfig[defReliveConfId] or ReliveConfig[1]
 | 
						|
 | 
						|
--人物死亡事件
 | 
						|
defaultHandlerActorDead = function (pActor)
 | 
						|
	local pFuben = Actor.getFubenPrt(pActor)
 | 
						|
	--Actor.addState(pActor, esStateDeath)
 | 
						|
	print("死亡")
 | 
						|
	Actor.updateActorEntityProp(pActor)
 | 
						|
 | 
						|
	-- 静态场景
 | 
						|
	if Fuben.isFuben(pFuben) == false then
 | 
						|
		if Actor.getReliveTimeOut(pActor) == 0 then
 | 
						|
 | 
						|
			--复活特权
 | 
						|
			local nCurReviveDuration = Actor.getIntProperty2(pActor, PROP_ACTOR_CURREVIVEDURATION);
 | 
						|
 | 
						|
			if defReliveConf then
 | 
						|
 | 
						|
				--复活特权
 | 
						|
				if nCurReviveDuration ~= 0 then
 | 
						|
					Actor.setReliveTimeOut(pActor, (defReliveConf.VipRevive or 5))
 | 
						|
				else
 | 
						|
					Actor.setReliveTimeOut(pActor, (defReliveConf.expire or 10))
 | 
						|
				end
 | 
						|
 | 
						|
				local npack = DataPack.allocPacket(pActor, enDefaultEntitySystemID, sActorReliveInfo)
 | 
						|
				if npack then
 | 
						|
					DataPack.writeByte(npack, defReliveConfId)
 | 
						|
					DataPack.writeByte(npack, -1)
 | 
						|
					local count = (defReliveConf.selectInfo and #defReliveConf.selectInfo) or 0
 | 
						|
					DataPack.writeByte(npack, count)
 | 
						|
					local actorData = FubenDispatcher.GetActorData(pActor,0)
 | 
						|
					if actorData.relive == nil then
 | 
						|
						actorData.relive = {}
 | 
						|
					end
 | 
						|
					if count > 0 then
 | 
						|
						for i=1,count do
 | 
						|
							if actorData.relive[i] == nil then
 | 
						|
								actorData.relive[i] = defReliveConf.selectInfo[i].limit or -1
 | 
						|
							end
 | 
						|
							DataPack.writeByte(npack, actorData.relive[i])
 | 
						|
						end
 | 
						|
					end
 | 
						|
 | 
						|
					-- 添加击杀者名字
 | 
						|
					local h_killer = Actor.getKillHandle(pActor)
 | 
						|
					local pKiller = Actor.getEntity(h_killer)
 | 
						|
					local name = ""
 | 
						|
					if pKiller then
 | 
						|
						name = Actor.getName(pKiller)
 | 
						|
					end
 | 
						|
					DataPack.writeString( npack, name )
 | 
						|
        			DataPack.flush(npack)
 | 
						|
				end
 | 
						|
			else
 | 
						|
				--复活特权
 | 
						|
				if nCurReviveDuration ~= 0 then
 | 
						|
					Actor.setReliveTimeOut(pActor, 5)
 | 
						|
				else
 | 
						|
					Actor.setReliveTimeOut(pActor, 10)
 | 
						|
				end
 | 
						|
				
 | 
						|
			end
 | 
						|
		end
 | 
						|
	-- 副本中
 | 
						|
	else
 | 
						|
		FubenDispatcher.OnActorDeath(pActor, pFuben)
 | 
						|
	end
 | 
						|
end |