function c9010535_OnTalk(MapID, InstanceID, TargetID, TargetTypeID, RoleID, TalkIndex) local NEED_MAX_PET = 20 --Макс петов local petnum = role.GetRoleCountPetNum(RoleID) -- Подсчёт петов local Percent = math.floor(petnum * 100 / NEED_MAX_PET) -- Подсчёт петов в процентах local skillIDs = {9102001, 9102002, 9102003, 9102004, 9102005, 9102006, 9102007, 9102008} -- Скиллы local thresholds = {10, 20, 30, 40, 50, 65, 80, 100} -- Проценты local MsgID = msg.BeginMsgEvent() if TalkIndex == -1 then msg.AddMsgEvent(MsgID, 20, 950804) msg.AddMsgEvent(MsgID, 24, TargetID) msg.AddMsgEvent(MsgID, 9, petnum) msg.AddMsgEvent(MsgID, 21, 4) msg.AddMsgEvent(MsgID, 1, 950805) msg.AddMsgEvent(MsgID, 21, -1) msg.AddMsgEvent(MsgID, 1, 100002) elseif TalkIndex == 4 then role.RemoveSkill(RoleID, 91020) if petnum >= 2 then for i = 1, #thresholds do if Percent >= thresholds[i] and (i == #thresholds or Percent < thresholds[i + 1]) then role.AddSkill(RoleID, skillIDs[i]) break end end else msg.AddMsgEvent(MsgID, 20, 950467) msg.AddMsgEvent(MsgID, 24, TargetID) msg.AddMsgEvent(MsgID, 21, -1) msg.AddMsgEvent(MsgID, 1, 950674) end end msg.DispatchRoleMsgEvent(RoleID, MsgID) end aux.RegisterCreatureEvent(9010535, 7, "c9010535_OnTalk")