WVWMK 121 Report post Posted March 26, 2016 (edited) Для создания или редактирования самоцветов нам понадобятся такие файлы : variable,stoneinfo,iteminfo,scripts. Пройдемся по каждому файлу.Variable.lua - файл лежит на стороне сервера в папке GameServer\resource\scripts\calculate\ В этом файле есть массивы самоцветов: 1.StoneAttrType - массив в котором написано какой стат будет давать\дает самоцвет. Список характеристик можно посмотреть в теме Здесь 2.StoneEff - массив в котором указано какое кол-во характеристики дает самоцвет 3.StoneTpye_ID - массив в котором указан ID самоцвета в Iteminfo. 4.StoneEffType - массив с типами самоцветов (1 - на атаку 2 - на защиту 4 - другое) 5.StoneItemType - массив с типами предметов, куда может быть вставлен самоцвет: 1 - одноручные мечи 2 - двуручные мечи 3 - луки 4 - пистолеты 7 - клинки покорителей морей 9 - посохи 11 - щиты 20 - шапки 22 - доспехи 23 - перчатки 24 - ботинки 27 - тату Stoneinfo -файл лежит на стороне клиента в формате bin в папке Game\scripts\table В этом файле у нас лежит список гемов в таком типе: ID | Название | ID в Iteminfo | Куда вставляется | Тип | Хинт 1 Огненный самоцвет 878 1,0,0 1 ItemHint_LieYanS ID - мы берем из массивов Variable. Название - мы берем из Iteminfo ID в Iteminfo - ну тут понятно Куда вставляется - мы берем из массива StoneItemType в файле Variable Тип - берем из массива StoneEffType в файле Variable Хинт - мы пишем свой хинт который потом дублируется в файле scripts. Iteminfo - файл лежит на стороне сервера по адресу GameServer\resource\ и на стороне клиента Game\scripts\table в формате bin В этом файле находится список всех предметов, так как самоцветы являются предметами то без этого не обойтись. Scripts - файл лежит на стороне клиента по адресу Game\scripts\lua\table В этом файле хранятся хинты самоцветов, которые служат за отображение того что дает самоцвет: function ItemHint_ABS( Lv ) -- Название хинта local eff = Lv * 12 -- Сколько стата дает за уровень local Hint ="Самоцвет: Сила +"..eff -- То что написано у самоцвета return Hint end Чистые файлы из сборкиDayLight Online II iteminfo.txt scripts.lua StoneInfo.txt Variable.txt Edited March 26, 2016 by NMS3RR 1 Quote Делай добро и бросай его в воду Share this post Link to post Share on other sites
Dimasik 5 Report post Posted May 23, 2020 @NMS3RR Привет, я когда то делал гемы, но сейчас забыл можно как нибудь попоросить тебя пошаговую инструкцию по вводу нового гема к примеру +80 силы, мне что то очень тяжело разобраться и этих файлов я к сожалению не смогу найти у себя (возможно что они называются иначе?) Quote Share this post Link to post Share on other sites
Graf 219 Report post Posted May 23, 2020 7 часов назад, Dimasik сказал: @NMS3RR Привет, я когда то делал гемы, но сейчас забыл можно как нибудь попоросить тебя пошаговую инструкцию по вводу нового гема к примеру +80 силы, мне что то очень тяжело разобраться и этих файлов я к сожалению не смогу найти у себя (возможно что они называются иначе?) Эти файлы у всех одинаковые.. 1 Quote Share this post Link to post Share on other sites
Dimasik 5 Report post Posted May 28, 2020 Да все уже перепутал файлы с массивами приплыли вхаххахаха) Quote Share this post Link to post Share on other sites
Dimasik 5 Report post Posted February 8, 2022 Есть один вопрос по поводу гемов изменил желтый нефрит в шапку до 5к дефа при вставке 6 уровня он дает 30к дефа, а при 7 не дает 35к дефа, а просто обнуляется значение. Аналогичная проблема с красным самоцветом в шапку который поменял на +15к жз, 1 уровень ставлю все ок начинаю ставить 2 одеваю вещь сразу персонаж умирает и жз -20к примерно и так же с камнем на ману сделал его +15к маны при вставке 2 уровня мн -20к вопрос как быть? Все функции проверены ошибок вроде нет. Может ли это быть как то связано с лимитами для вставки самоцветов в шапку этот лимит примерно 36к с чем то при таком раскладе гемы начинают вести себя не адекватно. Заранее спасибо!!! Кто ответит плюсик от меня автоматом! Quote Share this post Link to post Share on other sites
Dimasik 5 Report post Posted February 9, 2022 Так же если создаете новый гем нужно обязательно сделать из текстовика 'StoneInfo.txt' бинарник и положить его в папку игры по пути Клиент\scripts\table с заменой 1 Quote Share this post Link to post Share on other sites
3kov 1 Report post Posted September 16, 2022 В 08.02.2022 в 23:27, Dimasik сказал: Есть один вопрос по поводу гемов изменил желтый нефрит в шапку до 5к дефа при вставке 6 уровня он дает 30к дефа, а при 7 не дает 35к дефа, а просто обнуляется значение. Аналогичная проблема с красным самоцветом в шапку который поменял на +15к жз, 1 уровень ставлю все ок начинаю ставить 2 одеваю вещь сразу персонаж умирает и жз -20к примерно и так же с камнем на ману сделал его +15к маны при вставке 2 уровня мн -20к вопрос как быть? Все функции проверены ошибок вроде нет. Может ли это быть как то связано с лимитами для вставки самоцветов в шапку этот лимит примерно 36к с чем то при таком раскладе гемы начинают вести себя не адекватно. Заранее спасибо!!! Кто ответит плюсик от меня автоматом! Столкнулся с данной проблемой, если узнали как решить дайте знать. Или может кто-то еще поможет Quote Share this post Link to post Share on other sites
Graf 219 Report post Posted September 16, 2022 54 минуты назад, 3kov сказал: Столкнулся с данной проблемой, если узнали как решить дайте знать. Или может кто-то еще поможет Попробуй уменьшить прибавку самоцвета. Слишком большое значение для сервера. Quote Share this post Link to post Share on other sites
3kov 1 Report post Posted September 16, 2022 5 минут назад, Graf сказал: Попробуй уменьшить прибавку самоцвета. Слишком большое значение для сервера. Нашел корень проблемы. В Gameserver.exe на прибавку от самоцветов стоит Short тип данных от -32767 до +32767. Надо хексить ГС и менять тип данных на это. Но как это сделать решения у меня нет. 1 Quote Share this post Link to post Share on other sites
Graf 219 Report post Posted September 16, 2022 6 минут назад, 3kov сказал: Нашел корень проблемы. В Gameserver.exe на прибавку от самоцветов стоит Short тип данных от -32767 до +32767. Надо хексить ГС и менять тип данных на это. Но как это сделать решения у меня нет. И это нужно будет менять не только в 1 месте.. Поэтому и говорю, проще использовать самоцветы с меньшим значением) 1 Quote Share this post Link to post Share on other sites
Magicsea Online 124 Report post Posted September 16, 2022 Распишу на будущее как искать подобные проблемы подсматривая в исходный код. При форже LUA вызывают функцию lua_AddItemFinalAttr inline int lua_AddItemFinalAttr(lua_State* pLS) { ... long lAttrID = static_cast<int>(lua_tonumber(pLS, 2)); short sAttr = static_cast<short>(lua_tonumber(pLS, 3)); if (!pSItem->AddAttr(lAttrID, sAttr)) { lua_pushinteger(pLS, 0); return 1; } ... } Тут нам интересна функция AddAttr inline short SItemGrid::AddAttr(long lAttrID, short sAttr) { if (!CheckAttr()) return 0; return CAttr.AddAttr(short(lAttrID), sAttr); } Тут мы видим, что тип аргумента должен быть short Цитата short: представляет целое число в диапазоне от –32768 до 32767. Занимает в памяти 2 байта (16 бит). Для того чтоб все работало нужно изменить аргументы функции и этот массив + все места где он используется. class CItemAttr { ... private: short m_sAttr[ITEMATTR_MAX_NUM]; ... } 1 Quote Контакты: Сайт: https://magicseaonline.com/ Telegram: https://t.me/magicsea_online - здесь мы публикуем последние новости по разработке Discord: https://discord.gg/nqkv76YVbj Telegram Chat: @magicsea_chat Группа VK: https://vk.cc/chjbzd Чат VK: https://vk.cc/chjc8L YouTube: https://www.youtube.com/@magicsea_online Форум: https://forum.magicseaonline.com Служба поддержки: https://magicseaonline.com/support или https://t.me/magicsea_support База знаний: https://magicseaonline.com/knowledge Рейтинг: https://magicseaonline.com/rating Финансовая помощь проекту: https://magicseaonline.com/donate С уважением, Magicsea Team Share this post Link to post Share on other sites
V3ct0r 2,145 Report post Posted September 18, 2022 On 9/16/2022 at 2:45 PM, Kara Online said: Распишу на будущее как искать подобные проблемы подсматривая в исходный код. При форже LUA вызывают функцию lua_AddItemFinalAttr inline int lua_AddItemFinalAttr(lua_State* pLS) { ... long lAttrID = static_cast<int>(lua_tonumber(pLS, 2)); short sAttr = static_cast<short>(lua_tonumber(pLS, 3)); if (!pSItem->AddAttr(lAttrID, sAttr)) { lua_pushinteger(pLS, 0); return 1; } ... } Тут нам интересна функция AddAttr inline short SItemGrid::AddAttr(long lAttrID, short sAttr) { if (!CheckAttr()) return 0; return CAttr.AddAttr(short(lAttrID), sAttr); } Тут мы видим, что тип аргумента должен быть short Для того чтоб все работало нужно изменить аргументы функции и этот массив + все места где он используется. class CItemAttr { ... private: short m_sAttr[ITEMATTR_MAX_NUM]; ... } + все то же самое в Game.exe 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
Kolobok 0 Report post Posted May 28, 2024 Сделал все по гайду, но почему-то возникла проблема: покупка гемов, выпадение с монстров, получение гемов через ГМ команду дают 0 лвл самоцвета. Решил ещё через ГМ команду вызвать 9 лвл, но выдает все равно 0 лвл гема... Подскажите направление, где искать причину? Quote Share this post Link to post Share on other sites
Magicsea Online 124 Report post Posted May 28, 2024 21 минуту назад, Kolobok сказал: Сделал все по гайду, но почему-то возникла проблема: покупка гемов, выпадение с монстров, получение гемов через ГМ команду дают 0 лвл самоцвета. Решил ещё через ГМ команду вызвать 9 лвл, но выдает все равно 0 лвл гема... Подскажите направление, где искать причину? в функции Creat_Item сделать проверку на тип самоцвет и выставлять энергию как у 1ого уровня. Quote Контакты: Сайт: https://magicseaonline.com/ Telegram: https://t.me/magicsea_online - здесь мы публикуем последние новости по разработке Discord: https://discord.gg/nqkv76YVbj Telegram Chat: @magicsea_chat Группа VK: https://vk.cc/chjbzd Чат VK: https://vk.cc/chjc8L YouTube: https://www.youtube.com/@magicsea_online Форум: https://forum.magicseaonline.com Служба поддержки: https://magicseaonline.com/support или https://t.me/magicsea_support База знаний: https://magicseaonline.com/knowledge Рейтинг: https://magicseaonline.com/rating Финансовая помощь проекту: https://magicseaonline.com/donate С уважением, Magicsea Team Share this post Link to post Share on other sites
Kolobok 0 Report post Posted June 14, 2024 В 28.05.2024 в 17:15, Magicsea Online сказал: в функции Creat_Item сделать проверку на тип самоцвет и выставлять энергию как у 1ого уровня. Не найду эту функцию у себя. Если не трудно, можешь написать пример кода, пожалуйста? Quote Share this post Link to post Share on other sites
Magicsea Online 124 Report post Posted June 14, 2024 2 минуты назад, Kolobok сказал: Не найду эту функцию у себя. Если не трудно, можешь написать пример кода, пожалуйста? Найди что-то вроде этого: SetItemForgeParam_MonsterBaoliao(item, Num) или Creat_Item_Tattr Я не могу сейчас достать стандартный код, поэтому с примером сложно будет Quote Контакты: Сайт: https://magicseaonline.com/ Telegram: https://t.me/magicsea_online - здесь мы публикуем последние новости по разработке Discord: https://discord.gg/nqkv76YVbj Telegram Chat: @magicsea_chat Группа VK: https://vk.cc/chjbzd Чат VK: https://vk.cc/chjc8L YouTube: https://www.youtube.com/@magicsea_online Форум: https://forum.magicseaonline.com Служба поддержки: https://magicseaonline.com/support или https://t.me/magicsea_support База знаний: https://magicseaonline.com/knowledge Рейтинг: https://magicseaonline.com/rating Финансовая помощь проекту: https://magicseaonline.com/donate С уважением, Magicsea Team Share this post Link to post Share on other sites
Kolobok 0 Report post Posted June 14, 2024 Мне наверное надо было уточнить, что выпадают, продаются и призываются гемы 0 лвл только те, которые новыми добавил (с остальными, которые изначально были в серверных файлах, все нормально). Может где-то лимит есть по gameserver.exe? Или функция какая-то отвечающая за это? Quote Share this post Link to post Share on other sites
Danila 0 Report post Posted June 22, 2024 Проблема следующая, аналогично выше парню, выпадают/покупаются/комбинируются/через гм выдаются 0 уровни гемов, задал, как я понял, энергию гемов (ниже прикрепляю 1 скрин) как у 1 уровня, но проблема сохраняется (данная проблема для нововведенных гемов) Quote Share this post Link to post Share on other sites