| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172 |
- -- 涉及到的相关属性在属性表配置
- NewEquipWear = {}
- local this = NewEquipWear;
- function NewEquipWear.closePet(actor)
- local petActor = NewEquipWear.GetEquipPet(actor)
- if petActor ~= nil then
- removepartner(petActor);
- end
- end
- function NewEquipWear.onLoginEnd(actor)
- local equiplist = getputonequipinfo(actor)
- local data = {}
- for index, value in ipairs(equiplist) do
- local equip = equiplist[index]
- data[equip.subtype] = equip.cfgid;
- end
- NewEquipWear.UpdateWear(actor, data);
- end
- function NewEquipWear.onLogout(actor)
- NewEquipWear.closePet(actor)
- end
- function NewEquipWear.UpdateWear(actor, data)
- if data[10002] then
- local petActor = NewEquipWear.SummonEquipPet(actor, data[10002])
- if petActor == nil then
- return
- end
- setplaydef(actor, "@" .. "EQUIP_PET_TYPE", petActor:toString())
- else
- NewEquipWear.closePet(actor)
- end
- end
- function NewEquipWear.SummonEquipPet(actor, cfgPetId)
- local isSummon = NewEquipWear.GetEquipPet(actor) ~= nil
- if not isSummon then
- local monsterId = ConfigDataManager.getTableValue("cfg_pet", "mid", "id", cfgPetId)
- if monsterId == nil or monsterId == "" then
- return nil
- end
- monsterId = tonumber(monsterId)
- if monsterId == nil then
- return nil
- end
- return callpartner(actor, monsterId, 1)
- end
- return nil
- end
- function NewEquipWear.GetEquipPet(actor)
- local pets = getpartners(actor)
- local typeString = type(pets)
- if typeString ~= "table" then
- return nil
- end
- local petId = getplaydef(actor, "@" .. "EQUIP_PET_TYPE")
- for index, value in pairs(pets) do
- local petActor = pets[index]
- local pet1 = petActor:toString()
- local pet2 = tostring(petId)
- if pet1 == pet2 then
- return petActor
- end
- end
- return nil
- end
|