function Main(g_player)
	
end


--ʼ
function OnPrepare(CasterID, SkillName, SkillID, SkillLevel, TargetType, TargetID, PosY, PosZ, Frame, StartFrame, FrameCount)
	if CasterID == id() then
		if TargetType == 2 then
			print("OnPrepareXYZ->["..xname(CasterID).."] ʼ:"..SkillName..", ID:"..SkillID..", ܵȼ:"..SkillLevel..", Ŀλ:"..TargetID.."|"..PosY.."|"..PosZ..", ֡:"..Frame..", ʼ֡:"..StartFrame..", ǰ֡:"..FrameCount)
		else
			print("OnPrepare->["..xname(CasterID).."] ʼ:"..SkillName..", ID:"..SkillID..", ܵȼ:"..SkillLevel..", ĿID:"..TargetID..", ֡:"..Frame..", ʼ֡:"..StartFrame..", ǰ֡:"..FrameCount)
		end
	end
end

--ʼ
function OnChannel(CasterID, SkillName, SkillID, SkillLevel, TargetType, TargetID, PosY, PosZ, Frame, StartFrame, FrameCount)
	if CasterID == id() then
		if TargetType == 2 then
			print("OnChannelXYZ->["..xname(CasterID).."] ʼ:"..SkillName..", ID:"..SkillID..", ܵȼ:"..SkillLevel..", Ŀλ:"..TargetID.."|"..PosY.."|"..PosZ..", ֡:"..Frame..", ʼ֡:"..StartFrame..", ǰ֡:"..FrameCount)
		else
			print("OnChannel->["..xname(CasterID).."] ʼ:"..SkillName..", ID:"..SkillID..", ܵȼ:"..SkillLevel..", ĿID:"..TargetID..", ֡:"..Frame..", ʼ֡:"..StartFrame..", ǰ֡:"..FrameCount)
		end
	end
end


local tSkill = {
[17] = "",
[13] = "񽣷",
[18383] = "ؽ񽣷Ч",
[6505] = "_90Ѩ_ǧ",
[1795] = "ļ",
[1797] = "ؽ_ڹ_¼_ͨл",
[22423] = "жǷ3DϰһĿ",
[2341] = "ķ_ӽ",
[21286] = "ɾǱͼ",
}

--ͷż
function OnCast(CasterID, SkillName, SkillID, SkillLevel, TargetType, TargetID, PosY, PosZ, StartFrame, FrameCount)
	--˵Ҫļ
	if tSkill[SkillID] then return end

	--ԼͷϢ
	if CasterID == id() then
		if TargetType == 2 then
			print("OnCast->["..xname(CasterID).."] ͷ:"..SkillName..", ID:"..SkillID..", ܵȼ:"..SkillLevel..", Ŀλ:"..TargetID.."|"..PosY.."|"..PosZ..", ʼ֡:"..StartFrame..", ǰ֡:"..FrameCount)
		else
			print("OnCast->["..xname(CasterID).."] ͷ:"..SkillName..", ID:"..SkillID..", ܵȼ:"..SkillLevel..", ĿID:"..TargetID..", ʼ֡:"..StartFrame..", ǰ֡:"..FrameCount)
		end
	end
end

--Ƶˢ²Ҫbuff
local tBuff = {
[103] = "Ϣ",
[23390] = "NPCսbuff",
[12740] = "(_ͨӵӻ)",
[12085] = "ͨü",
[24104] = "ע (ע)",
[7795] = "_̱BUFF",
[1687] = "ˮBuff",
[21607] = "龣",
[12850] = "ҹϳBuff",
[12590] = "ÿǼӹ",
[6193] = "_",
[6094] = "_λж1",
[6095] = "_λж2",
[6422] = "_",
[8423] = "",
[8393] = "",
[10440] = "ʱ˱BUFF",
[8571] = "ķ10%פ",
[6204] = "_ϴ_Ѫ",
[6004] = "лѨЧ",
[6176] = "_10㽣",
[12382] = "",
[21756] = "ҩ_Ҷ",
[15798] = "ͷűBUFF",
}

--ԼͶѵbuff
function OnBuff(CharacterID, BuffName, BuffID, BuffLevel, StackNum, SkillSrcID, StartFrame, EndFrame, FrameCount)
	--˵Ҫbuff
	if tBuff[BuffID] then return end

	--ԼbuffϢ
	if CharacterID == id() or xname(CharacterID) == "ڤ΢" then
		if StackNum  > 0 then
			print("OnBuff->["..xname(CharacterID).."] buff: ".. BuffName..", ID: "..BuffID..", ȼ: "..BuffLevel..", : "..StackNum..", ԴID: "..SkillSrcID..", ʼ֡: "..StartFrame..", ǰ֡: "..FrameCount..", ֡: "..EndFrame..", ʣʱ: "..(EndFrame-FrameCount)/16)
		else
			print("OnBuff->["..xname(CharacterID).."] Ƴbuff: ".. BuffName..", ID: "..BuffID..", ȼ: "..BuffLevel..", : "..StackNum..", ԴID: "..SkillSrcID..", ʼ֡: "..StartFrame..", ǰ֡: "..FrameCount)
		end
	end
end

--NPC볡
function OnNpcEnter(NpcID, NpcName, NpcTemplateID, NpcModelID, EmployerID)
	if EmployerID == id() then
		print("OnNpcEnter->"..NpcName..", NPCID: "..NpcID..", ģID: "..NpcTemplateID..", ID: "..NpcModelID)
	end
end

--״̬
function OnStateUpdate(nCurrentLife, nCurrentMana, nCurrentRage, nCurrentEnergy, nCurrentSunEnergy, nCurrentMoonEnergy)
	--print(": "..nCurrentSunEnergy / 100, "»: "..nCurrentMoonEnergy / 100)
end

--Ϣ
function OnWarning(szText, szType)
	print("OnWarning->"..szText)
end

--
function OnQidianUpdate()

end

--лڹ
function OnMountKungFu(KungFu, Level)

end

--ϵͳϢ
function OnMessage(szMsg, szType)

end

--NPC
function OnSay(szName, szSay, CharacterID, nChannel)

end

--սս
function OnFight(bFight)

end

--buffб
function OnBuffList(CharacterID)

end
