RedMAN 22 Report post Posted January 26, 2018 (edited) Здравствуйте, интересует такая тема - можно ли создать запрет для определенного самоцвета в определенную вещь? Пример: Самоцвет Ярости можно вставить в меч 55,65,75 лвл, но в 85,95 его уже вставить нельзя. Точнее интересует реверсия этого примера - нужно чтобы самоцвет +8 нельзя было вставить в снаряжение ниже 75ур (типа такого) Это возможно? Пытался вспомнить, кажется такое было со сломанными самоцветами на офе, их нельзя было вставить в шмотки выше 55 уровня, но могу ошибаться. По крайней мере в сборке, приближенной к офу, отыскал только строки запрещающие комбинировать самоцвет выше 3 уровня. Прошу помощи, спасибо:) Edited January 26, 2018 by RedMAN Quote Share this post Link to post Share on other sites
BETEP/macs509 87 Report post Posted January 26, 2018 в forge.lua очень легко делает в функции там где вставка. Там уже есть проверки слотов формы, просто свои условия дописать и всё 1 Quote Share this post Link to post Share on other sites
RedMAN 22 Report post Posted January 27, 2018 8 часов назад, BETEP/macs509 сказал: в forge.lua очень легко делает в функции там где вставка. Там уже есть проверки слотов формы, просто свои условия дописать и всё Что-то никак не могу допереть, как передать уровень предмета,который собираемся форжить. Подскажи поподробнее пожалуйста function can_forge_item_main ( Table ) local role = 0 local ItemBag = {} local ItemCount = {} local ItemBagCount = {} local Get_Count = 4 local ItemReadCount = 0 local ItemReadNow = 1 local ItemReadNext = 0 local ItemBag_Now = 0 local ItemCount_Now = 0 local ItemBagCount_Num = 0 role , ItemBag , ItemCount , ItemBagCount , ItemBag_Now , ItemCount_Now , ItemBagCount_Num = Read_Table ( Table ) local ItemBagCount_Jinglian = ItemBagCount [0] local ItemBag_Jinglian = ItemBag [0] local ItemNum_Jinglian = ItemCount [0] local Item_Jinglian = GetChaItem ( role , 2 , ItemBag_Jinglian ) local Check = 0 if ItemBagCount_Jinglian ~= 1 then SystemNotice( role , "\202\238\226\234\224 \239\240\229\228\236\229\242\224 \241\226\255\231\224\237\224\255 \241 \239\235\224\226\235\229\237\232\229\236 \237\238\226\238\227\238 \241\235\238\242\224 \237\229\231\224\234\238\237\224") --SystemNotice( role , "Ковка предмета связаная с плавлением нового слота незаконна") return 0 end if ItemNum_Jinglian ~= 1 then SystemNotice( role , "\202\238\235\232\247\229\241\242\226\238 \234\243\254\249\232\245\241\255 \239\240\229\228\236\229\242\238\226 \237\229\231\224\234\238\237\238") --SystemNotice( role , "Количество кующихся предметов незаконно") return 0 end Check = CheckItem_CanJinglian ( Item_Jinglian ) if Check == 0 then SystemNotice( role ,"\205\229\226\238\231\236\238\230\237\238 \242\238\247\232\242\252 \239\240\229\228\236\229\242") --SystemNotice( role ,"Невозможно точить предмет") return 0 end if ItemCount [1] ~= 1 or ItemCount [2] ~= 1 or ItemBagCount [1] ~= 1 or ItemBagCount [2] ~= 1 then SystemNotice ( role ,"\205\229\231\224\234\238\237\237\238\229 \234\238\235\232\247\229\241\242\226\238 \241\224\236\238\246\226\229\242\238\226") --SystemNotice ( role ,"Незаконное количество самоцветов") return 0 end local Item_Stone1 = GetChaItem ( role , 2 , ItemBag [1] ) local Item_Stone2 = GetChaItem ( role , 2 , ItemBag [2] ) local Check_Hole = 0 Check_Hole = CheckItem_HaveHole ( Item_Jinglian , Item_Stone1 , Item_Stone2) if Check_Hole == 0 then SystemNotice( role ,"\205\229\228\238\241\242\224\242\238\247\237\238 \241\235\238\242\238\226 \226 \239\240\229\228\236\229\242\229" ) --SystemNotice( role ,"Недостаточно слотов в предмете" ) return 0 end local Check_Stone = 0 Check_Stone = Check_StoneLv ( Item_Jinglian , Item_Stone1 , Item_Stone2 ) if Check_Stone == 0 then SystemNotice ( role , "\209\224\236\238\246\226\229\242 \232\235\232 \243\240\238\226\229\237\252 \241\224\236\238\246\226\229\242\224 \237\229 \241\238\238\242\226\229\242\241\242\226\243\229\242" ) --SystemNotice ( role , "Самоцвет или уровень самоцвета не соответствует" ) return 0 end local Check_StoneItem = 0 Check_StoneItem = Check_StoneItemType ( Item_Jinglian , Item_Stone1 , Item_Stone2 ) if Check_StoneItem == 0 then SystemNotice ( role , "\210\232\239 \209\224\236\238\246\226\229\242\224 \232 \242\232\239 \239\240\229\228\236\229\242\224 \237\229 \241\238\238\242\226\229\242\241\242\226\243\254\242" ) --SystemNotice ( role , "Тип Самоцвета и тип предмета не соответствуют" ) return 0 end local Money_Need = getforge_money_main ( Table ) local Money_Have = GetChaAttr ( role , ATTR_GD ) if Money_Need > Money_Have then SystemNotice( role ,"\205\229\228\238\241\242\224\242\238\247\237\238 \231\238\235\238\242\224. \209\238\247\229\242\224\237\232\229 \237\229\226\238\231\236\238\230\237\238.") --SystemNotice( role ,"Недостаточно золота. Сочетание невозможно.") return 0 end --SystemNotice(role ,"determination completed ") return 1 end Сам не справлюсь Quote Share this post Link to post Share on other sites
WVWMK 121 Report post Posted January 27, 2018 12 часа назад, RedMAN сказал: Смотри у тебя есть функция получения предмета : local Item_Jinglian = GetChaItem ( role , 2 , ItemBag_Jinglian )ItemBag_Jinglian - твой предмет. Далее берем - local lvl_item= GetItemAttr ( ItemBag_Jinglian , ITEMATTR_LV) -- хз есть ли такое или нет, нужно пробовать. потом все понятно 1 Quote Делай добро и бросай его в воду Share this post Link to post Share on other sites
BETEP/macs509 87 Report post Posted January 27, 2018 Не помню как там в старых файлах было сделано, но можно если не найдешь проверку по лвл шмотки (а она должна вроде как быть), можно просто указать в какие id шмоток можно плавить, только нужно будет не забыть сделать проверку на шмоток в апе по аналогии с бд бонусом (когда id считывает самой шмотки и базовой шмотки в апе). 1 Quote Share this post Link to post Share on other sites
WVWMK 121 Report post Posted January 30, 2018 1 час назад, Stinger сказал: Такой нету, но есть такая: local item_lv = GetItemAttr(Item, ITEMATTR_VAL_LEVEL) О госпади. ну наверное парень разобрался бы что такой нет, я в слепую пишу обычно это и не помню что есть, а чего нет. 1 Quote Делай добро и бросай его в воду Share this post Link to post Share on other sites
RedMAN 22 Report post Posted February 7, 2018 Спасибо большое Stinger! Всё сделали Quote Share this post Link to post Share on other sites
V3ct0r 2,116 Report post Posted February 11, 2018 Из темы про самоцветы на МД: Цитата а как сделать чтобы гемы ковались в вещи не выше 55 лвл? Файл forge.lua (.\resource\script\calculate). В функцию can_forge_item_main() После (сообщение может отличаться) if Check_StoneItem == 0 then SystemNotice ( role , "Этот самоцвет нельзя вставить в этот тип оружия." ) return 0 end добавить local GemID = GetItemID(Item_Stone1) local Itemlvl = GetItemLv(Item_Jinglian) if GemID >= 6817 and GemID <= 6831 then if Itemlvl > 55 then SystemNotice(role, "Этот самоцвет можно вковать в оружие для персонажей не выше 55 уровня.") return 0 end end Чтобы самоцветы можно было соединять только до 3-го уровня, в файл forge.lua в функцию can_unite_item_main() после local BagItem1 = ItemBag [0] local BagItem2 = ItemBag [1] local BagItem3 = ItemBag [2] local Item1 = GetChaItem ( role , 2 , BagItem1 ) local Item2 = GetChaItem ( role , 2 , BagItem2 ) local Item3 = GetChaItem ( role , 2 , BagItem3 ) local ItemID1 = GetItemID ( Item1 ) local ItemID2 = GetItemID ( Item2 ) local ItemID3 = GetItemID ( Item3 ) local ItemType1 = GetItemType ( Item1 ) local ItemType2 = GetItemType ( Item2 ) local ItemType3 = GetItemType ( Item3 ) if ItemType1 ~= 47 then SystemNotice( role ,"This is not a combining scroll") return 0 end if ItemType2 ~= 49 or ItemType3 ~= 49 then if ItemType2 ~= 50 or ItemType3 ~= 50 then SystemNotice( role , "Это не самоцвет!") return 0 end end Добавить: if ItemID2 == 6718 or ItemID2 == 6717 then if Item2_Lv>=2 or Item3_Lv >= 2 then SystemNotice ( role , "Максимальный уровень этого самоцвета 2.") return 0 end end if ItemID2 >= 6817 and ItemID2 <= 6831 then if Item2_Lv>=3 or Item3_Lv >= 3 then SystemNotice ( role , "Максимальный уровень этого самоцвета 3.") return 0 end end 1 Quote Some useful links / Полезные ссылки Tips for making a topic in 'Questions & Help' / Рекомендации по созданию тем в разделе "Помощь" Server Advertising Section Rules / Правила раздела "Реклама серверов" Available e-mail domains for registration / Допустимые e-mail домены для регистрации User groups / Группы пользователей User ranks / Звания пользователей "Broken" pictures on the forum / "Битые" изображения на форуме Beware of scammers! / Осторожно, мошенники! My developments / Мои разработки Mods for client and server / Моды для клиента и сервера PKOdev.NET website for Tales of Pirates Server / PKOdev.NET веб-обвязка для сервера Пиратии I do not provide any help in private messages and outside the forum. Use 'Questions & Help' section please. Thank you for understanding! Я не оказываю какую-либо помощь в личных сообщениях и вне форума. Пожалуйста, используйте раздел "Пиратия: Помощь". Благодарю за понимание! Share this post Link to post Share on other sites