2025-06-04 05:02:57 +08:00

49 lines
1.4 KiB
Plaintext

CreaturePropCommand = class("CreaturePropCommand",pm.SimpleCommand)
function CreaturePropCommand:execute(note)
local data = note.body
if note.name == ServiceEvent.PlayerMapObjectData then
local target = SceneCreatureProxy.FindCreature(data.guid)
if(target ~= nil) then
self:UpdateProp(target,data)
end
elseif note.name == ServiceEvent.NpcChangeHp then
local target = SceneCreatureProxy.FindCreature(data.charid)
if(target ~= nil) then
self:UpdatePropHp(target,data)
end
end
end
function CreaturePropCommand:UpdateProp(target,data)
-- print("creature Prop---Start----")
if(target.props == nil) then
target.props = PropsContainer.new(UserProxy.Instance.creatureProps,true)
end
target:SetProps(data.attrs)
-- print("creature Prop---End----")
if(data.attrs ~= nil and #data.attrs >0) then
GameFacade.Instance:sendNotification(SceneCreatureEvent.PropChange, target)
end
-- if(data.datas ~= nil and #data.datas >0) then
-- GameFacade.Instance:sendNotification(MyselfEvent.MyDataChange, data.datas)
-- end
-- GameFacade.Instance:sendNotification(MyselfEvent.MyAttrChange, UserAttrSyncCmd)
end
function CreaturePropCommand:UpdatePropHp(target,data)
if target.props == nil then
return
end
if data.hp ~= nil then
local oldHP = target.props.Hp:GetValue()
target.props.Hp:SetValue(data.hp)
GameFacade.Instance:sendNotification(SceneCreatureEvent.PropHpChange, target)
end
end