Family_zhaoji = {} function I4800127_Use(MapID, InstanceID, TypeID, TargetID) local FamilyID = role.GetRoleFamilyID(MapID, InstanceID,TargetID) if FamilyID ~= nil then local MemberID = {} MemberID[1],MemberID[2],MemberID[3],MemberID[4],MemberID[5],MemberID[6],MemberID[7],MemberID[8],MemberID[9],MemberID[10],MemberID[11],MemberID[12] = family.GetFamilyAllMemberID(FamilyID) for k,v in pairs(MemberID) do if v ~= TargetID then local Map, Instance = role.GetRoleMapID(v) if Map ~= nil then if not role.IsRoleHaveBuff(Map, Instance, v, 60016) and not unit.IsDead(Map, Instance, v) then if MapID ~= 3911351072 and MapID ~= 1266370382 then -- k1_tower and f09 fix msg.SendRoleSwitchMsg(2, Map, Instance, v, 1, 13) local x, y ,z = unit.GetPosition(MapID, InstanceID, TargetID) Family_zhaoji[v] = {MapID, InstanceID, x, y ,z, 2} end end end end end end end function I4800127_CanUse(MapID, InstanceID, TypeID, TargetID) local bRet, bIgnore = 0, false --判断背包空闲空间是否足够 local FamilyID = role.GetRoleFamilyID(MapID, InstanceID,TargetID) if FamilyID == nil then --提示玩家背包空间不足 bRet = 32 end local bool = false if MapID ~= nil then for k,v in pairs(Skill_NormalCRC) do if MapID == v then bool = true break end end end if not bool then bRet = 32 end return bRet, bIgnore end aux.RegisterItemEvent(4800127, 1, "I4800127_Use") aux.RegisterItemEvent(4800127, 0, "I4800127_CanUse") function Family_OnClick(MapID, InstanceID, RoleID, TOMsgID, ToMapID, x, y, z) if Family_zhaoji[RoleID] ~= nil and not unit.IsDead(MapID, InstanceID, RoleID) and Family_zhaoji[RoleID][1] ~= 3911351072 and Family_zhaoji[RoleID][1] ~= 1266370382 then -- k1_tower and f09 fix if role.IsRoleInStatus(RoleID, 1024) then role.CancelRoleStallState(MapID, InstanceID, RoleID) end unit.AddBuff(MapID, InstanceID, RoleID, 6001601, RoleID) role.RoleGotoNewMap(MapID, InstanceID, RoleID, Family_zhaoji[RoleID][1], Family_zhaoji[RoleID][3], Family_zhaoji[RoleID][4], Family_zhaoji[RoleID][5]) Family_zhaoji[RoleID] = nil end end aux.RegisterActEvent(13, 8, "Family_OnClick") function I4800126_Use(MapID, InstanceID, TypeID, TargetID) local FamilyID = role.GetRoleFamilyID(MapID, InstanceID,TargetID) local x, y ,z = unit.GetPosition(MapID, InstanceID, TargetID) if FamilyID ~= nil then local MemberID = {} MemberID[1],MemberID[2],MemberID[3],MemberID[4],MemberID[5],MemberID[6],MemberID[7],MemberID[8],MemberID[9],MemberID[10],MemberID[11],MemberID[12] = family.GetFamilyAllMemberID(FamilyID) for k,v in pairs(MemberID) do local Map, Instance = role.GetRoleMapID(v) if Map ~= nil and MapID == Map then local x1, y1 ,z1 = unit.GetPosition(Map, Instance, v) if (x1-x)^2+(z1-z)^2 <= 22500 then local BUFF = {} BUFF[0] = 2000101 BUFF[10] = 2000101 BUFF[20] = 2000201 BUFF[30] = 2000201 BUFF[40] = 2000301 BUFF[50] = 2000301 BUFF[60] = 2000401 BUFF[70] = 2000501 BUFF[80] = 2000601 BUFF[90] = 2000701 BUFF[100] = 2000801 local rolelevel = math.floor(role.GetRoleLevel(Map, Instance, v)/10)*10 if rolelevel > 100 then rolelevel = 100 end unit.AddBuff(Map, Instance, v, BUFF[rolelevel], v) end end end end end function I4800126_CanUse(MapID, InstanceID, TypeID, TargetID) local bRet, bIgnore = 0, false --判断背包空闲空间是否足够 local FamilyID = role.GetRoleFamilyID(MapID, InstanceID,TargetID) if FamilyID == nil then --提示玩家背包空间不足 bRet = 32 end return bRet, bIgnore end aux.RegisterItemEvent(4800126, 1, "I4800126_Use") aux.RegisterItemEvent(4800126, 0, "I4800126_CanUse") --?-СйИ? function I4820037_GiftBag(MapID, InstanceID, TypeID, TargetID) local tbl = {} tbl[30] = 2100 tbl[31] = 2160 tbl[32] = 2300 tbl[33] = 2460 tbl[34] = 2610 tbl[35] = 2770 tbl[36] = 2930 tbl[37] = 3090 tbl[38] = 3160 tbl[39] = 3300 tbl[40] = 3560 tbl[41] = 3750 tbl[42] = 3960 tbl[43] = 4170 tbl[44] = 5530 tbl[45] = 5790 tbl[46] = 6050 tbl[47] = 6300 tbl[48] = 6560 tbl[49] = 6840 tbl[50] = 7130 tbl[51] = 7410 tbl[52] = 7700 tbl[53] = 8010 tbl[54] = 8330 tbl[55] = 8640 tbl[56] = 8950 tbl[57] = 9270 tbl[58] = 9580 tbl[59] = 11750 tbl[60] = 12150 tbl[61] = 12560 tbl[62] = 12960 tbl[63] = 13400 tbl[64] = 13800 tbl[65] = 14280 tbl[66] = 14720 tbl[67] = 15160 tbl[68] = 15600 tbl[69] = 18930 tbl[70] = 19480 tbl[71] = 20040 tbl[72] = 20600 tbl[73] = 21190 tbl[74] = 21790 tbl[75] = 25340 tbl[76] = 26010 tbl[77] = 26690 tbl[78] = 27360 tbl[79] = 28080 tbl[80] = 28800 tbl[81] = 29520 tbl[82] = 30240 tbl[83] = 31010 tbl[84] = 31770 tbl[85] = 36880 tbl[86] = 37740 tbl[87] = 38610 tbl[88] = 39480 tbl[89] = 40400 tbl[90] = 41310 tbl[91] = 42230 tbl[92] = 43150 tbl[93] = 44120 tbl[94] = 45090 tbl[95] = 50800 tbl[96] = 51870 tbl[97] = 52940 tbl[98] = 54000 tbl[99] = 55130 tbl[100] = 56250 local level = role.GetRoleLevel(MapID, InstanceID, TargetID) if level > 100 then level = 100 end role.AddRoleExp(MapID, InstanceID, TargetID, tbl[level]) end aux.RegisterItemEvent(4820037, 1, "I4820037_GiftBag") --?-Сй±|Ж? function I4820043_GiftBag(MapID, InstanceID, TypeID, TargetID) local tbl = {} tbl[30] = 21000 tbl[31] = 21600 tbl[32] = 23000 tbl[33] = 24600 tbl[34] = 26100 tbl[35] = 27700 tbl[36] = 29300 tbl[37] = 30900 tbl[38] = 31600 tbl[39] = 33000 tbl[40] = 35600 tbl[41] = 37500 tbl[42] = 39600 tbl[43] = 41700 tbl[44] = 55300 tbl[45] = 57900 tbl[46] = 60500 tbl[47] = 63000 tbl[48] = 65600 tbl[49] = 68400 tbl[50] = 71300 tbl[51] = 74100 tbl[52] = 77000 tbl[53] = 80100 tbl[54] = 83300 tbl[55] = 86400 tbl[56] = 89500 tbl[57] = 92700 tbl[58] = 95800 tbl[59] = 117500 tbl[60] = 121500 tbl[61] = 125600 tbl[62] = 129600 tbl[63] = 134000 tbl[64] = 138000 tbl[65] = 142800 tbl[66] = 147200 tbl[67] = 151600 tbl[68] = 156000 tbl[69] = 189300 tbl[70] = 194800 tbl[71] = 200400 tbl[72] = 206000 tbl[73] = 211900 tbl[74] = 217900 tbl[75] = 253400 tbl[76] = 260100 tbl[77] = 266900 tbl[78] = 273600 tbl[79] = 280800 tbl[80] = 288000 tbl[81] = 295200 tbl[82] = 302400 tbl[83] = 310100 tbl[84] = 317700 tbl[85] = 368800 tbl[86] = 377400 tbl[87] = 386100 tbl[88] = 394800 tbl[89] = 404000 tbl[90] = 413100 tbl[91] = 422300 tbl[92] = 431500 tbl[93] = 441200 tbl[94] = 450900 tbl[95] = 508000 tbl[96] = 518700 tbl[97] = 529400 tbl[98] = 540000 tbl[99] = 551300 tbl[100] = 562500 for i = 70,100 do tbl[i] = tbl[i] + (i-69)*250000 end local level = role.GetRoleLevel(MapID, InstanceID, TargetID) if level > 100 or level < 30 then level = 100 end role.AddRoleExp(MapID, InstanceID, TargetID, tbl[level]) if math.random(10) == 7 then role.AddRoleExp(MapID, InstanceID, TargetID, tbl[level]*0.5) end end aux.RegisterItemEvent(4820043, 1, "I4820043_GiftBag") aux.RegisterItemEvent(4700278, 1, "I4820043_GiftBag") --51АН???±ХВ function I4800098_Use(MapID, InstanceID, TypeID, TargetID) local exp_lv = {} exp_lv[11] = 22800 exp_lv[12] = 24850 exp_lv[13] = 26850 exp_lv[14] = 28900 exp_lv[15] = 41300 exp_lv[16] = 44100 exp_lv[17] = 46900 exp_lv[18] = 49750 exp_lv[19] = 52600 exp_lv[20] = 72950 exp_lv[21] = 76600 exp_lv[22] = 80300 exp_lv[23] = 84000 exp_lv[24] = 87750 exp_lv[25] = 91550 exp_lv[26] = 95350 exp_lv[27] = 99200 exp_lv[28] = 103050 exp_lv[29] = 140650 exp_lv[30] = 249500 exp_lv[31] = 266250 exp_lv[32] = 285750 exp_lv[33] = 305400 exp_lv[34] = 325200 exp_lv[35] = 345150 exp_lv[36] = 365300 exp_lv[37] = 505750 exp_lv[38] = 505750 exp_lv[39] = 514100 exp_lv[40] = 544950 exp_lv[41] = 576000 exp_lv[42] = 607350 exp_lv[43] = 710050 exp_lv[44] = 746050 exp_lv[45] = 746050 exp_lv[46] = 818850 exp_lv[47] = 855600 exp_lv[48] = 896400 exp_lv[49] = 1171900 exp_lv[50] = 1223650 exp_lv[51] = 1275750 exp_lv[52] = 1333000 exp_lv[53] = 1390650 exp_lv[54] = 1448750 exp_lv[55] = 1507200 exp_lv[56] = 1566100 exp_lv[57] = 1625400 exp_lv[58] = 2028000 exp_lv[59] = 2106000 exp_lv[60] = 2184600 exp_lv[61] = 2263700 exp_lv[62] = 2349250 exp_lv[63] = 2522150 exp_lv[64] = 2609500 exp_lv[65] = 2697400 exp_lv[66] = 2785900 exp_lv[67] = 3969000 exp_lv[68] = 4097550 exp_lv[69] = 4226900 exp_lv[70] = 4226900 exp_lv[71] = 4365300 exp_lv[72] = 4365300 exp_lv[73] = 4504600 exp_lv[74] = 4644750 exp_lv[75] = 4785850 exp_lv[76] = 4927850 exp_lv[77] = 5070750 exp_lv[78] = 7834350 exp_lv[79] = 8064000 exp_lv[80] = 8295150 exp_lv[81] = 8527700 exp_lv[82] = 8774450 exp_lv[83] = 9022700 exp_lv[84] = 9272500 exp_lv[85] = 9523800 exp_lv[86] = 9776700 exp_lv[87] = 10031050 exp_lv[88] = 10300000 exp_lv[89] = 14094000 exp_lv[90] = 14456900 exp_lv[91] = 14821950 exp_lv[92] = 15206700 exp_lv[93] = 15593800 exp_lv[94] = 15983100 exp_lv[95] = 16374750 exp_lv[96] = 16768650 exp_lv[97] = 17164800 exp_lv[98] = 17581200 exp_lv[99] = 18000000 exp_lv[100] = 18000000 local rolelevel = role.GetRoleLevel(MapID, InstanceID, TargetID) if rolelevel > 100 then rolelevel = 100 end if rolelevel <= 10 then role.AddRoleExp(MapID, InstanceID, TargetID, exp_lv[11]) else role.AddRoleExp(MapID, InstanceID, TargetID, exp_lv[rolelevel]) end end aux.RegisterItemEvent(4800098, 1, "I4800098_Use") --?????? function chuanshuozhuangbei_CanUse(MapID, InstanceID, TypeID, TargetID) local tbl = {} tbl[4090004] = {id = 4090001,num = 5} tbl[4090005] = {id = 4090002,num = 5} tbl[4090006] = {id = 4090003,num = 10} tbl[4090012] = {id = 4090007,num = 5} tbl[4090013] = {id = 4090008,num = 5} tbl[4090014] = {id = 4090009,num = 5} tbl[4090015] = {id = 4090010,num = 10} tbl[4090016] = {id = 4090011,num = 20} local bRet, bIgnore = 0, false local k = role.GetRoleItemNum(TargetID, TypeID) local FreeSize = role.GetBagFreeSize(TargetID) if FreeSize < 1 then bRet = 40 end if k < tbl[TypeID].num then bRet = 32 end --?? return bRet, bIgnore end --???? function chuanshuozhuangbei_QuestUsable(MapID, InstanceID, TypeID, TargetID) local tbl = {} tbl[4090004] = {id = 4090001,num = 5} tbl[4090005] = {id = 4090002,num = 5} tbl[4090006] = {id = 4090003,num = 10} tbl[4090012] = {id = 4090007,num = 5} tbl[4090013] = {id = 4090008,num = 5} tbl[4090014] = {id = 4090009,num = 5} tbl[4090015] = {id = 4090010,num = 10} tbl[4090016] = {id = 4090011,num = 20} role.RemoveFromRole(MapID, InstanceID, TargetID, TypeID, tbl[TypeID].num, 420) role.AddRoleItem(MapID, InstanceID, TargetID, tbl[TypeID].id, 1, -1, 8, 420) return 1 end --?? aux.RegisterItemEvent(4090004, 1, "chuanshuozhuangbei_QuestUsable") aux.RegisterItemEvent(4090004, 0, "chuanshuozhuangbei_CanUse") aux.RegisterItemEvent(4090005, 1, "chuanshuozhuangbei_QuestUsable") aux.RegisterItemEvent(4090005, 0, "chuanshuozhuangbei_CanUse") aux.RegisterItemEvent(4090006, 1, "chuanshuozhuangbei_QuestUsable") aux.RegisterItemEvent(4090006, 0, "chuanshuozhuangbei_CanUse") aux.RegisterItemEvent(4090012, 1, "chuanshuozhuangbei_QuestUsable") aux.RegisterItemEvent(4090012, 0, "chuanshuozhuangbei_CanUse") aux.RegisterItemEvent(4090013, 1, "chuanshuozhuangbei_QuestUsable") aux.RegisterItemEvent(4090013, 0, "chuanshuozhuangbei_CanUse") aux.RegisterItemEvent(4090014, 1, "chuanshuozhuangbei_QuestUsable") aux.RegisterItemEvent(4090014, 0, "chuanshuozhuangbei_CanUse") aux.RegisterItemEvent(4090015, 1, "chuanshuozhuangbei_QuestUsable") aux.RegisterItemEvent(4090015, 0, "chuanshuozhuangbei_CanUse") aux.RegisterItemEvent(4090016, 1, "chuanshuozhuangbei_QuestUsable") aux.RegisterItemEvent(4090016, 0, "chuanshuozhuangbei_CanUse") -- function I4800131_Use(MapID, InstanceID, TypeID, TargetID) local time1 = {} time1[4800131] = 30 time1[4800132] = 240 time1[4800133] = 720 local k = role.GetRoleScriptData(TargetID, 1, RoleDataType["XiuLianChang_Time"]) k = k+time1[TypeID] role.SetRoleScriptData(TargetID, 1, RoleDataType["XiuLianChang_Time"], k) local hour = math.floor(k/60) local minute = k%60 local MsgID = msg.BeginMsgEvent() msg.AddMsgEvent(MsgID, 13, 0) msg.AddMsgEvent(MsgID, 1, 605016) --?????????????XX??XX?? msg.AddMsgEvent(MsgID, 9, hour) msg.AddMsgEvent(MsgID, 9, minute) msg.DispatchRoleMsgEvent(TargetID, MsgID) if MapID == 2748433913 or MapID == 2748434169 or MapID == 2748434425 then local MsgID = msg.BeginMsgEvent() msg.AddMsgEvent(MsgID, 16, 28) -- msg.AddMsgEvent(MsgID, 16, k*60) --???? msg.DispatchRoleMsgEvent(TargetID, MsgID) end end function I4800131_CanUse(MapID, InstanceID, TypeID, TargetID) local time1 = {} time1[4800131] = 30 time1[4800132] = 240 time1[4800133] = 720 local k = role.GetRoleScriptData(TargetID, 1, RoleDataType["XiuLianChang_Time"]) if k + time1[TypeID] > 2880 then local MsgID = msg.BeginMsgEvent() msg.AddMsgEvent(MsgID, 26, 605017) --?????????????48?? msg.DispatchRoleMsgEvent(TargetID, MsgID) return 32, false end return 0,false end aux.RegisterItemEvent(4800131, 1, "I4800131_Use") aux.RegisterItemEvent(4800131, 0, "I4800131_CanUse") aux.RegisterItemEvent(4800132, 1, "I4800131_Use") aux.RegisterItemEvent(4800132, 0, "I4800131_CanUse") aux.RegisterItemEvent(4800133, 1, "I4800131_Use") aux.RegisterItemEvent(4800133, 0, "I4800131_CanUse") function I3500001_OnUse(MapID, InstanceID, TypeID, TargetID) --??100????? local slpoint = role.GetRoleAttValue(MapID, InstanceID, TargetID, 133) if slpoint <= 500 then role.ModRoleAttValue(MapID, InstanceID, TargetID, 133, 100) else role.ModRoleAttValue(MapID, InstanceID, TargetID, 133, 600-slpoint) end end aux.RegisterItemEvent(3500001, 1 , "I3500001_OnUse") aux.RegisterItemEvent(3500002, 1 , "I3500001_OnUse") function I3500003_OnUse(MapID, InstanceID, TypeID, TargetID) --??200????? local slpoint = role.GetRoleAttValue(MapID, InstanceID, TargetID, 133) if slpoint <= 400 then role.ModRoleAttValue(MapID, InstanceID, TargetID, 133, 200) else role.ModRoleAttValue(MapID, InstanceID, TargetID, 133, 600-slpoint) end end aux.RegisterItemEvent(3500003, 1 , "I3500003_OnUse") function I3500004_OnUse(MapID, InstanceID, TypeID, TargetID) --??300????? local slpoint = role.GetRoleAttValue(MapID, InstanceID, TargetID, 133) if slpoint <= 300 then role.ModRoleAttValue(MapID, InstanceID, TargetID, 133, 300) else role.ModRoleAttValue(MapID, InstanceID, TargetID, 133, 600-slpoint) end end aux.RegisterItemEvent(3500004, 1 , "I3500004_OnUse") function I3500005_OnUse(MapID, InstanceID, TypeID, TargetID) --??600????? local slpoint = role.GetRoleAttValue(MapID, InstanceID, TargetID, 133) role.ModRoleAttValue(MapID, InstanceID, TargetID, 133, 600-slpoint) end aux.RegisterItemEvent(3500005, 1 , "I3500005_OnUse") function I3541001_CanUse(MapID, InstanceID, ItemID, TargetID) local bRet, bIgnore = 0, false if role.GetRoleItemNum(TargetID, 3541001) < 19 then local MsgID = msg.BeginMsgEvent() msg.AddMsgEvent(MsgID, 26, 440010) msg.DispatchRoleMsgEvent(TargetID, MsgID) bRet = 32 else local FreeSize = role.GetBagFreeSize(TargetID) if(FreeSize < 1) then bRet = 40 end end return bRet, bIgnore end aux.RegisterItemEvent(3541001, 0, "I3541001_CanUse") function I3541001_Use(MapID, InstanceID, ItemID, TargetID) role.AddRoleItem(MapID, InstanceID, TargetID, 3540103, 1, -1, 1, 104) role.RemoveFromRole(MapID, InstanceID, TargetID, 3541001, 19, 300) end aux.RegisterItemEvent(3541001, 1, "I3541001_Use") function I6600837_CanUse(MapID, InstanceID, ItemID, TargetID) local bRet, bIgnore = 0, false if role.GetRoleItemNum(TargetID, 6600837) < 20 then local MsgID = msg.BeginMsgEvent() msg.AddMsgEvent(MsgID, 26, 440010) msg.DispatchRoleMsgEvent(TargetID, MsgID) bRet = 32 else local FreeSize = role.GetBagFreeSize(TargetID) if(FreeSize < 1) then bRet = 40 end end return bRet, bIgnore end aux.RegisterItemEvent(6600837, 0, "I6600837_CanUse") function I6600837_Use(MapID, InstanceID, ItemID, TargetID) role.AddRoleItem(MapID, InstanceID, TargetID, 6600651, 1, -1, 1, 104) role.RemoveFromRole(MapID, InstanceID, TargetID, 6600837, 20, 300) end aux.RegisterItemEvent(6600837, 1, "I6600837_Use") --???? function I3010043_onUse(MapID, InstanceID, TypeID, TargetID) --?????? local n = role.GetRoleLevel( MapID , InstanceID , TargetID) if n > 100 then n = 100 end --???????buff unit.AddBuff( MapID , InstanceID , TargetID , 2004101+100*(n-1) , TargetID ) end aux.RegisterItemEvent(3010043, 1 , "I3010043_onUse") --?????? function I3010044_onUse(MapID, InstanceID, TypeID, TargetID) --?????? local n = role.GetRoleLevel( MapID , InstanceID , TargetID) if n > 100 then n = 100 end --???????buff unit.AddBuff( MapID , InstanceID , TargetID , 2014101+100*(n-1) , TargetID ) end aux.RegisterItemEvent(3010044, 1 , "I3010044_onUse") --?????? function I3010045_onUse(MapID, InstanceID, TypeID, TargetID) --?????? local n = role.GetRoleLevel( MapID , InstanceID , TargetID) if n > 100 then n = 100 end --???????buff unit.AddBuff( MapID , InstanceID , TargetID , 2024101+100*(n-1) , TargetID ) end aux.RegisterItemEvent(3010045, 1 , "I3010045_onUse") --?????? function I3010046_onUse(MapID, InstanceID, TypeID, TargetID) --?????? local n = role.GetRoleLevel( MapID , InstanceID , TargetID) if n > 100 then n = 100 end --???????buff unit.AddBuff( MapID , InstanceID , TargetID , 2034101+100*(n-1) , TargetID ) end aux.RegisterItemEvent(3010046, 1 , "I3010046_onUse") --ЙсЦ??РЗы function I4820040_Use(MapID, InstanceID, TypeID, TargetID) local k = math.random(30) if k <= 1 then role.AddRoleItem(MapID, InstanceID, TargetID, 4820039, 1, -1, 8, 420) end local n = math.random(6) role.AddRoleItem(MapID, InstanceID, TargetID, 4820038, n+2, -1, 8, 420) end function I4820040_CanUse(MapID, InstanceID, TypeID, TargetID) local bRet, bIgnore = 0, false local freeSize = role.GetBagFreeSize(TargetID) if(freeSize < 2) then bRet = 40 end return bRet, bIgnore end aux.RegisterItemEvent(4820040, 1, "I4820040_Use") aux.RegisterItemEvent(4820040, 0, "I4820040_CanUse") --ЙсЦ??Р?к function I4820080_Use(MapID, InstanceID, TypeID, TargetID) local k = math.random(30) if k <= 1 then role.AddRoleItem(MapID, InstanceID, TargetID, 4820079, 1, -1, 8, 420) end local n = math.random(6) role.AddRoleItem(MapID, InstanceID, TargetID, 4820078, n+2, -1, 8, 420) end function I4820080_CanUse(MapID, InstanceID, TypeID, TargetID) local bRet, bIgnore = 0, false local freeSize = role.GetBagFreeSize(TargetID) if(freeSize < 2) then bRet = 40 end return bRet, bIgnore end aux.RegisterItemEvent(4820080, 1, "I4820080_Use") aux.RegisterItemEvent(4820080, 0, "I4820080_CanUse") -- function I3020014_Use(MapID, InstanceID, TypeID, TargetID) role.AddRoleItem(MapID, InstanceID, TargetID, 3020015, 1, -1, 8, 420) role.RemoveFromRole(MapID, InstanceID, TargetID, 3020014, 5, 101) return 1 end function I3020014_CanUse(MapID, InstanceID, TypeID, TargetID) local b = role.GetRoleItemNum(TargetID,3020014) --???????????? local FreeSize = role.GetBagFreeSize(TargetID) if(FreeSize < 1) then --?????????? return 40, false end if b <= 4 then return 32, false end return 0,false end aux.RegisterItemEvent(3020014, 1, "I3020014_Use") aux.RegisterItemEvent(3020014, 0, "I3020014_CanUse") function I3020062_Use(MapID, InstanceID, TypeID, TargetID) role.AddRoleItem(MapID, InstanceID, TargetID, 3020014, 1, -1, 8, 420) role.RemoveFromRole(MapID, InstanceID, TargetID, 3020062, 20, 101) return 1 end function I3020062_CanUse(MapID, InstanceID, TypeID, TargetID) local b = role.GetRoleItemNum(TargetID,3020062) --???????????? local FreeSize = role.GetBagFreeSize(TargetID) if(FreeSize < 1) then --?????????? return 40, false end if b <= 19 then return 32, false end return 0,false end aux.RegisterItemEvent(3020062, 1, "I3020062_Use") aux.RegisterItemEvent(3020062, 0, "I3020062_CanUse") --ЙП№Еμд?? function I4820035_OnUse(MapID, InstanceID, TypeID, TargetID) local level = role.GetRoleLevel(MapID, InstanceID, TargetID) if level < 60 then role.AddRoleExp(MapID, InstanceID, TargetID, 5000000) elseif level >=60 and level < 80 then role.AddRoleExp(MapID, InstanceID, TargetID, 10000000) elseif level >=80 and level < 90 then role.AddRoleExp(MapID, InstanceID, TargetID, 20000000) elseif level >=90 and level < 95 then role.AddRoleExp(MapID, InstanceID, TargetID, 40000000) elseif level >=95 and level < 100 then role.AddRoleExp(MapID, InstanceID, TargetID, 80000000) elseif level >=100 and level < 105 then role.AddRoleExp(MapID, InstanceID, TargetID, 150000000) elseif level >=105 and level < 110 then role.AddRoleExp(MapID, InstanceID, TargetID, 220000000) elseif level >=110 and level < 116 then role.AddRoleExp(MapID, InstanceID, TargetID, 320000000) elseif level >=116 then role.AddRoleExp(MapID, InstanceID, TargetID, 430000000) end end aux.RegisterItemEvent(4820035, 1, "I4820035_OnUse") function I4820279_OnUse(MapID, InstanceID, TypeID, TargetID) local level = role.GetRoleLevel(MapID, InstanceID, TargetID) if level < 60 then role.AddRoleExp(MapID, InstanceID, TargetID, 1200000) elseif level >=60 and level < 80 then role.AddRoleExp(MapID, InstanceID, TargetID, 3000000) elseif level >=80 and level < 90 then role.AddRoleExp(MapID, InstanceID, TargetID, 12150000) elseif level >=90 and level < 95 then role.AddRoleExp(MapID, InstanceID, TargetID, 13500000) elseif level >=95 and level < 100 then role.AddRoleExp(MapID, InstanceID, TargetID, 15000000) elseif level >=100 and level < 105 then role.AddRoleExp(MapID, InstanceID, TargetID, 15750000) elseif level >=105 and level < 110 then role.AddRoleExp(MapID, InstanceID, TargetID, 17250000) elseif level >=110 and level < 116 then role.AddRoleExp(MapID, InstanceID, TargetID, 17250000) elseif level >=116 then role.AddRoleExp(MapID, InstanceID, TargetID, 17250000) end end aux.RegisterItemEvent(4820279, 1, "I4820279_OnUse") --30??? function I3010033_onUse(MapID, InstanceID, TypeID, TargetID) --??30??? local pilao = role.GetRoleAttValue(MapID, InstanceID, TargetID, 81) if pilao <= 30 then role.ModRoleAttValue(MapID, InstanceID, TargetID, 81, -pilao) else role.ModRoleAttValue(MapID, InstanceID, TargetID, 81, -30) end end aux.RegisterItemEvent(3010033, 1 , "I3010033_onUse") --100??? function I3010034_onUse(MapID, InstanceID, TypeID, TargetID) --??100??? local pilao = role.GetRoleAttValue(MapID, InstanceID, TargetID, 81) if pilao <= 100 then role.ModRoleAttValue(MapID, InstanceID, TargetID, 81, -pilao) else role.ModRoleAttValue(MapID, InstanceID, TargetID, 81, -100) end end aux.RegisterItemEvent(3010034, 1 , "I3010034_onUse") --????30? aux.RegisterItemEvent(3010053, 1 , "I3010033_onUse") --???? --???????? function I3530001_Use(MapID, InstanceID, TypeID, TargetID) role.AddRoleItem(MapID, InstanceID, TargetID, 3530002, 1, -1, 8, 420) role.RemoveFromRole(MapID, InstanceID, TargetID, 3530001, 20, 101) return 1 end function I3530001_CanUse(MapID, InstanceID, TypeID, TargetID) local b = role.GetRoleItemNum(TargetID,3530001) --???????????? local FreeSize = role.GetBagFreeSize(TargetID) if(FreeSize < 1) then --?????????? return 40, false end if b <= 19 then return 32, false end return 0,false end aux.RegisterItemEvent(3530001, 1, "I3530001_Use") aux.RegisterItemEvent(3530001, 0, "I3530001_CanUse") -- function I3050084_Use(MapID, InstanceID, TypeID, TargetID) role.AddRoleItem(MapID, InstanceID, TargetID, 3050085, 1, -1, 8, 420) role.RemoveFromRole(MapID, InstanceID, TargetID, 3050084, 10, 101) return 1 end function I3050084_CanUse(MapID, InstanceID, TypeID, TargetID) local b = role.GetRoleItemNum(TargetID,3050084) --???????????? local FreeSize = role.GetBagFreeSize(TargetID) if(FreeSize < 1) then --?????????? return 40, false end if b <= 9 then return 32, false end return 0,false end aux.RegisterItemEvent(3050084, 1, "I3050084_Use") aux.RegisterItemEvent(3050084, 0, "I3050084_CanUse") function I4820021_Use(MapID, InstanceID, TypeID, TargetID) role.AddRoleItem(MapID, InstanceID, TargetID, 4820022, 1, -1, 8, 420) role.RemoveFromRole(MapID, InstanceID, TargetID, 4820021, 10, 101) return 1 end function I4820021_CanUse(MapID, InstanceID, TypeID, TargetID) local b = role.GetRoleItemNum(TargetID,4820021) --???????????? local FreeSize = role.GetBagFreeSize(TargetID) if(FreeSize < 1) then --?????????? return 40, false end if b <= 9 then return 32, false end return 0,false end aux.RegisterItemEvent(4820021, 1, "I4820021_Use") aux.RegisterItemEvent(4820021, 0, "I4820021_CanUse") -- function I4820173_Use(MapID, InstanceID, TypeID, TargetID) role.AddRoleItem(MapID, InstanceID, TargetID, 4820085, 1, -1, 8, 420) role.RemoveFromRole(MapID, InstanceID, TargetID, 4820173, 20, 101) return 1 end function I4820173_CanUse(MapID, InstanceID, TypeID, TargetID) local b = role.GetRoleItemNum(TargetID,4820173) --???????????? local FreeSize = role.GetBagFreeSize(TargetID) if(FreeSize < 1) then --?????????? return 40, false end if b < 20 then return 32, false end return 0,false end aux.RegisterItemEvent(4820173, 1, "I4820173_Use") aux.RegisterItemEvent(4820173, 0, "I4820173_CanUse") function I4090036_Use(MapID, InstanceID, TypeID, TargetID) role.AddRoleItem(MapID, InstanceID, TargetID, 4090027, 1, -1, 8, 420) role.RemoveFromRole(MapID, InstanceID, TargetID, 4090036, 100, 101) return 1 end function I4090036_CanUse(MapID, InstanceID, TypeID, TargetID) local b = role.GetRoleItemNum(TargetID,4090036) --???????????? local FreeSize = role.GetBagFreeSize(TargetID) if(FreeSize < 1) then --?????????? return 40, false end if b <= 99 then return 32, false end return 0,false end aux.RegisterItemEvent(4090036, 1, "I4090036_Use") aux.RegisterItemEvent(4090036, 0, "I4090036_CanUse") function mohuazhipingCanUse(MapID, InstanceID, ItemID, TargetID) local bRet, bIgnore = 0, false if MapID ~= 3424073512 then bRet = 43 end return bRet, bIgnore end aux.RegisterItemEvent(4810006, 0, "mohuazhipingCanUse") function mohuazhipingUse(MapID, InstanceID, ItemID, TargetID) local x, y, z = unit.GetPosition(MapID, InstanceID, TargetID) local cid = map.MapCreateColCreature(MapID, InstanceID, 1099001, x, y, z, 1, "") unit.AddBuff(MapID, InstanceID, cid, 6100002, cid) end aux.RegisterItemEvent(4810006, 1, "mohuazhipingUse") function zuobiaodingwei_Use(MapID, InstanceID, TypeID, TargetID) local x,y,z = unit.GetPosition(MapID, InstanceID, TargetID) local MsgID = msg.BeginMsgEvent() msg.AddMsgEvent(MsgID, 13, 1) msg.AddMsgEvent(MsgID, 1, 304003) msg.AddMsgEvent(MsgID, 9, x) msg.AddMsgEvent(MsgID, 9, y) msg.AddMsgEvent(MsgID, 9, z) msg.DispatchRoleMsgEvent(TargetID, MsgID) end aux.RegisterItemEvent(4500044, 1, "zuobiaodingwei_Use") --РВДкЗ??ь function I4800085_OnUse(MapID, InstanceID, TypeID, TargetID) local k = math.random(100) local gold = 0 if k <=85 then gold = 100000 elseif k <= 99 then gold = 500000 elseif math.random(100) <= 99 then gold = 1000000 else gold = 10000000 end role.AddRoleSilver(MapID, InstanceID, TargetID, gold, 101) end aux.RegisterItemEvent(4800085, 1, "I4800085_OnUse") --???????? function I3010042_CanUseneishangyao(MapID, InstanceID, TypeID, TargetID) local bRet, bIgnore = 0, false --???????????0 local neishang = role.GetRoleAttValue(MapID, InstanceID , TargetID , 64 ) if(neishang == 0) then --?????0???? bRet = 31 end return bRet, bIgnore end aux.RegisterItemEvent(3010042, 0, "I3010042_CanUseneishangyao") function I3070086_GiftBag(MapID, InstanceID, TypeID, TargetID) role.AddRoleExp(MapID, InstanceID, TargetID, 42140) end aux.RegisterItemEvent(3070086, 1, "I3070086_GiftBag") function I3070087_GiftBag(MapID, InstanceID, TypeID, TargetID) role.AddRoleExp(MapID, InstanceID, TargetID, 55201700) end aux.RegisterItemEvent(3070087, 1, "I3070087_GiftBag") function I4810185_GiftBag(MapID, InstanceID, TypeID, TargetID) role.AddRoleAwake(MapID,InstanceID,TargetID,1000000) local MsgID = msg.BeginMsgEvent() msg.AddMsgEvent(MsgID, 26, 100011) msg.AddMsgEvent(MsgID, 9, 1000000) msg.DispatchRoleMsgEvent(TargetID, MsgID) end aux.RegisterItemEvent(4810185, 1, "I4810185_GiftBag") function I4820087_Use(MapID, InstanceID, TypeID, TargetID) role.ModRoleAttValue(MapID, InstanceID, TargetID, 107, 1000) end aux.RegisterItemEvent(4820087, 1, "I4820087_Use") function duijuezhizheng_Use(MapID, InstanceID, TypeID, TargetID) local tbl = {} tbl[30] = 21000 tbl[31] = 21600 tbl[32] = 23000 tbl[33] = 24600 tbl[34] = 26100 tbl[35] = 27700 tbl[36] = 29300 tbl[37] = 30900 tbl[38] = 31600 tbl[39] = 33000 tbl[40] = 35600 tbl[41] = 37500 tbl[42] = 39600 tbl[43] = 41700 tbl[44] = 55300 tbl[45] = 57900 tbl[46] = 60500 tbl[47] = 63000 tbl[48] = 65600 tbl[49] = 68400 tbl[50] = 71300 tbl[51] = 74100 tbl[52] = 77000 tbl[53] = 80100 tbl[54] = 83300 tbl[55] = 86400 tbl[56] = 89500 tbl[57] = 92700 tbl[58] = 95800 tbl[59] = 117500 tbl[60] = 121500 tbl[61] = 125600 tbl[62] = 129600 tbl[63] = 134000 tbl[64] = 138000 tbl[65] = 142800 tbl[66] = 147200 tbl[67] = 151600 tbl[68] = 156000 tbl[69] = 189300 tbl[70] = 194800 tbl[71] = 200400 tbl[72] = 206000 tbl[73] = 211900 tbl[74] = 217900 tbl[75] = 253400 tbl[76] = 260100 tbl[77] = 266900 tbl[78] = 273600 tbl[79] = 280800 tbl[80] = 288000 tbl[81] = 295200 tbl[82] = 302400 tbl[83] = 310100 tbl[84] = 317700 tbl[85] = 368800 tbl[86] = 377400 tbl[87] = 386100 tbl[88] = 394800 tbl[89] = 404000 tbl[90] = 413100 tbl[91] = 422300 tbl[92] = 431500 tbl[93] = 441200 tbl[94] = 450900 tbl[95] = 508000 tbl[96] = 518700 tbl[97] = 529400 tbl[98] = 540000 tbl[99] = 551300 tbl[100] = 562500 local rolelevel = role.GetRoleLevel(MapID, InstanceID, TargetID) if rolelevel > 100 then rolelevel = 100 end if rolelevel >= 30 then role.AddRoleExp(MapID, InstanceID, TargetID, tbl[rolelevel]*0.5) else role.AddRoleExp(MapID, InstanceID, TargetID, rolelevel*700) end end aux.RegisterItemEvent(4800282, 1, "duijuezhizheng_Use") function I6612303_onUse(MapID, InstanceID, TypeID, TargetID) unit.AddBuff( MapID , InstanceID , TargetID , 4865001, TargetID ) end aux.RegisterItemEvent(6612303, 1 , "I6612303_onUse") function I6612333_onUse(MapID, InstanceID, TypeID, TargetID) role.AddSkill( MapID , InstanceID , TargetID , 1014101, TargetID ) end aux.RegisterItemEvent(6612333, 1 , "I6612333_onUse") function I6612334_onUse(MapID, InstanceID, TypeID, TargetID) role.AddSkill( MapID , InstanceID , TargetID , 1015102, TargetID ) end aux.RegisterItemEvent(6612334, 1 , "I6612334_onUse") function gui_new(MapID, InstanceID, TypeID, TargetID) local apptek = role.IsLearnedSkill(TargetID, 40012) if apptek ~= nil and apptek > 0 then local proccentget = 5*apptek -- Вычисления процента local apptekitemshp = {} apptekitemshp[4820277] = {82720} apptekitemshp[3010203] = {94300} apptekitemshp[4820091] = {56100} apptekitemshp[4820092] = {60720} apptekitemshp[4820093] = {66000} apptekitemshp[4820094] = {72600} local apptekitemsmp = {} apptekitemsmp[4820095] = {10450} apptekitemsmp[4820096] = {12650} apptekitemsmp[4820097] = {17600} apptekitemsmp[4820098] = {22000} apptekitemsmp[3010204] = {39996} apptekitemsmp[4820278] = {31493} if TypeID == 4820277 or TypeID == 3010203 or TypeID == 4820091 or TypeID == 4820092 or TypeID == 4820093 or TypeID == 4820094 then role.ModRoleAttValue(MapID, InstanceID, TargetID, 9, apptekitemshp[TypeID][1]/100*proccentget) elseif TypeID == 4820095 or TypeID == 4820096 or TypeID == 4820097 or TypeID == 4820098 or TypeID == 3010204 or TypeID == 4820278 then role.ModRoleAttValue(MapID, InstanceID, TargetID, 11, apptekitemsmp[TypeID][1]/100*proccentget) end end end aux.RegisterItemEvent(4820277, 1, "gui_new") aux.RegisterItemEvent(3010203, 1, "gui_new") aux.RegisterItemEvent(4820091, 1, "gui_new") aux.RegisterItemEvent(4820092, 1, "gui_new") aux.RegisterItemEvent(4820093, 1, "gui_new") aux.RegisterItemEvent(4820094, 1, "gui_new") aux.RegisterItemEvent(4820095, 1, "gui_new") aux.RegisterItemEvent(4820096, 1, "gui_new") aux.RegisterItemEvent(4820097, 1, "gui_new") aux.RegisterItemEvent(4820098, 1, "gui_new") aux.RegisterItemEvent(3010204, 1, "gui_new") aux.RegisterItemEvent(4820278, 1, "gui_new")