--Мастер синтеза предметов - диалог function mofabu_OnTalk(MapID, InstanceID, TargetID, TargetTypeID, RoleID, TalkIndex) local num1 = role.GetRoleItemNum(RoleID, 4100201) local num2 = role.GetRoleItemNum(RoleID, 4100202) local num3 = role.GetRoleItemNum(RoleID, 4100203) local num4 = role.GetRoleItemNum(RoleID, 4100204) local num5 = role.GetRoleItemNum(RoleID, 4100205) local num6 = role.GetRoleItemNum(RoleID, 4100206) if TalkIndex == -1 then local MsgID = msg.BeginMsgEvent() msg.AddMsgEvent(MsgID, 20, 420052) --Сообщение о возможности синтезировать магический камень msg.AddMsgEvent(MsgID, 24, TargetID) msg.AddMsgEvent(MsgID, 21, 11) --Хотите ли вы синтезировать магический камень msg.AddMsgEvent(MsgID, 1, 420053) --Нажмите чтобы синтезировать магический камень msg.AddMsgEvent(MsgID, 21, 10) --Кнопка отмены 10 msg.AddMsgEvent(MsgID, 1, 420009) --Получить награду msg.DispatchRoleMsgEvent(RoleID, MsgID) elseif TalkIndex == 11 then --Синтезировать магический камень local MsgID = msg.BeginMsgEvent() if num1 < 12 and num2 < 12 and num3 < 12 and num4 < 12 and num5 < 12 and num6 < 12 then msg.AddMsgEvent(MsgID, 20, 420061) --Вам нужно собрать 12 разных материалов чтобы синтезировать msg.AddMsgEvent(MsgID, 21, 10) --Отмена синтеза msg.AddMsgEvent(MsgID, 1, 420009) -- else msg.AddMsgEvent(MsgID, 20, 420054) --Выберите что хотите синтезировать end msg.AddMsgEvent(MsgID, 24, TargetID) if num1 >= 12 then msg.AddMsgEvent(MsgID, 21, 12) --Синтезировать огненный камень msg.AddMsgEvent(MsgID, 1, 420055) -- end if num2 >= 12 then msg.AddMsgEvent(MsgID, 21, 13) --Синтезировать ледяной камень msg.AddMsgEvent(MsgID, 1, 420056) -- end if num3 >= 12 then msg.AddMsgEvent(MsgID, 21, 14) --Синтезировать грозовой камень msg.AddMsgEvent(MsgID, 1, 420057) -- end if num4 >= 12 then msg.AddMsgEvent(MsgID, 21, 15) --Синтезировать водяной камень msg.AddMsgEvent(MsgID, 1, 420058) -- end if num5 >= 12 then msg.AddMsgEvent(MsgID, 21, 16) --Синтезировать деревянный камень msg.AddMsgEvent(MsgID, 1, 420059) -- end if num6 >= 12 then msg.AddMsgEvent(MsgID, 21, 17) --Синтезировать световой камень msg.AddMsgEvent(MsgID, 1, 420060) -- end msg.DispatchRoleMsgEvent(RoleID, MsgID) elseif TalkIndex == 12 then --Синтезировать огненный камень local num = role.GetRoleItemNum(RoleID, 4100201) local FreeSize = role.GetBagFreeSize(RoleID) if num >= 12 and FreeSize >= 1 then role.RemoveFromRole(MapID, InstanceID, RoleID, 4100201, 12, 420) --Удалить 12 огненных камней role.AddRoleItem(MapID, InstanceID, RoleID, 3050109, 1, -1, 8, 420) else local MsgID = msg.BeginMsgEvent() msg.AddMsgEvent(MsgID, 20, 420062) ---Диалоговое окно показывает что у игрока недостаточно материалов msg.AddMsgEvent(MsgID, 24, TargetID) --ID NPC msg.AddMsgEvent(MsgID, 21, 10) --Кнопка отмены msg.AddMsgEvent(MsgID, 1, 100002) msg.DispatchRoleMsgEvent(RoleID, MsgID) end elseif TalkIndex == 13 then --Синтезировать ледяной камень local num = role.GetRoleItemNum(RoleID, 4100202) local FreeSize = role.GetBagFreeSize(RoleID) if num >= 12 and FreeSize >= 1 then role.RemoveFromRole(MapID, InstanceID, RoleID, 4100202, 12, 420) --Удалить 12 ледяных камней role.AddRoleItem(MapID, InstanceID, RoleID, 3050109, 1, -1, 8, 420) else local MsgID = msg.BeginMsgEvent() msg.AddMsgEvent(MsgID, 20, 420062) ---Диалоговое окно показывает что у игрока недостаточно материалов msg.AddMsgEvent(MsgID, 24, TargetID) --ID NPC msg.AddMsgEvent(MsgID, 21, 10) --Кнопка отмены msg.AddMsgEvent(MsgID, 1, 100002) msg.DispatchRoleMsgEvent(RoleID, MsgID) end elseif TalkIndex == 14 then --Синтезировать грозовой камень local num = role.GetRoleItemNum(RoleID, 4100203) local FreeSize = role.GetBagFreeSize(RoleID) if num >= 12 and FreeSize >= 1 then role.RemoveFromRole(MapID, InstanceID, RoleID, 4100203, 12, 420) --Удалить 12 грозовых камней role.AddRoleItem(MapID, InstanceID, RoleID, 3050109, 1, -1, 8, 420) else local MsgID = msg.BeginMsgEvent() msg.AddMsgEvent(MsgID, 20, 420062) ---Диалоговое окно показывает что у игрока недостаточно материалов msg.AddMsgEvent(MsgID, 24, TargetID) --ID NPC msg.AddMsgEvent(MsgID, 21, 10) --Кнопка отмены msg.AddMsgEvent(MsgID, 1, 100002) msg.DispatchRoleMsgEvent(RoleID, MsgID) end elseif TalkIndex == 15 then --Синтезировать водяной камень local num = role.GetRoleItemNum(RoleID, 4100204) local FreeSize = role.GetBagFreeSize(RoleID) if num >= 12 and FreeSize >= 1 then role.RemoveFromRole(MapID, InstanceID, RoleID, 4100204, 12, 420) --Удалить 12 водяных камней role.AddRoleItem(MapID, InstanceID, RoleID, 3050109, 1, -1, 8, 420) else local MsgID = msg.BeginMsgEvent() msg.AddMsgEvent(MsgID, 20, 420062) ---Диалоговое окно показывает что у игрока недостаточно материалов msg.AddMsgEvent(MsgID, 24, TargetID) --ID NPC msg.AddMsgEvent(MsgID, 21, 10) --Кнопка отмены msg.AddMsgEvent(MsgID, 1, 100002) msg.DispatchRoleMsgEvent(RoleID, MsgID) end elseif TalkIndex == 16 then --Синтезировать деревянный камень local num = role.GetRoleItemNum(RoleID, 4100205) local FreeSize = role.GetBagFreeSize(RoleID) if num >= 12 and FreeSize >= 1 then role.RemoveFromRole(MapID, InstanceID, RoleID, 4100205, 12, 420) --Удалить 12 деревянных камней role.AddRoleItem(MapID, InstanceID, RoleID, 3050109, 1, -1, 8, 420) else local MsgID = msg.BeginMsgEvent() msg.AddMsgEvent(MsgID, 20, 420062) ---Диалоговое окно показывает что у игрока недостаточно материалов msg.AddMsgEvent(MsgID, 24, TargetID) --ID NPC msg.AddMsgEvent(MsgID, 21, 10) --Кнопка отмены msg.AddMsgEvent(MsgID, 1, 100002) msg.DispatchRoleMsgEvent(RoleID, MsgID) end elseif TalkIndex == 17 then --Синтезировать световой камень local num = role.GetRoleItemNum(RoleID, 4100206) local FreeSize = role.GetBagFreeSize(RoleID) if num >= 12 and FreeSize >= 1 then role.RemoveFromRole(MapID, InstanceID, RoleID, 4100206, 12, 420) --Удалить 12 световых камней role.AddRoleItem(MapID, InstanceID, RoleID, 3050109, 1, -1, 8, 420) else local MsgID = msg.BeginMsgEvent() msg.AddMsgEvent(MsgID, 20, 420062) ---Диалоговое окно показывает что у игрока недостаточно материалов msg.AddMsgEvent(MsgID, 24, TargetID) --ID NPC msg.AddMsgEvent(MsgID, 21, 10) --Кнопка отмены msg.AddMsgEvent(MsgID, 1, 100002) msg.DispatchRoleMsgEvent(RoleID, MsgID) end end end aux.RegisterCreatureEvent(5516003, 7, "mofabu_OnTalk")