V3ct0r 2,117 Report post Posted October 22, 2016 Рейты сервера Привет! В данной статье я расскажу как изменить рейты сервера. Рейты - это значения, на которые умножаются опыт, шанс выпадения предмета, рост феи. Откройте файл variable.lua (папка GameServer\resource\script\calculate) и найдите следующие переменные: EXP_RAID = 15 -- Рейт на опыт TeamExp_RAID = 30 -- Рейт на опыт в отряде MF_RAID = 25 -- Рейт на выпадение предметов из монстров Resource_RAID_ADJUST = 10 -- Рейт на выпадение ресурсов ELEEXP_GETRAD = 1000 -- Рейт на рост феи В данном случае: 15х кач соло, 30х кач в пати, 25х дроп, 10х дроп ресурсов, 1000х рост феи. Изменяя значения этих переменных Вы можете настраивать рейты сервера. Не забудьте сохранить файл variable.lua и перезапустить все GameServer.exe после проделанных изменений. Так же Вы можете воспользоваться специальной программой: Вы можете создать рейт для получения опыта корабля, по умолчанию он отсутствует в скриптах. Добавьте в variable.lua переменную для нового рейта, для примера назовем ее SHIP_RAID: SHIP_RAID = 1 Затем откройте файл exp_and_level.lua (папка GameServer\resource\script\calculate) и найдите функцию GetExp_PKM(dead , atk), а в ней строку: local ship_expadd = math.floor(math.min(7, (dead_lv / 10 + 2))) замените эту строку на следующую: local ship_expadd = math.floor(math.min(7, (dead_lv / 10 + 2)) * SHIP_RAID) Теперь получаемый опыт в корабле будет умножаться на значение переменной SHIP_RAID. В 24.10.2016 в 18:10, NMS3RR сказал: Если вы хотите повысить опыт за квест или золото за квест то: а)Опыт 1.Идем в папку GameServer\resource\script\MisSdk 2.Ищем elseif actions.func == AddExp then 3.Добавляем EXP_QUEST_RAID как показано в примере. elseif actions[i].func == AddExp then PRINT( "ActionProc:AddExp, p1 = , p2 = ", actions[i].p1, actions[i].p2 ) local retExpState = GetExpState(character) actions[i].p1 = (actions[i].p1 * GetExpState(character) /100)*EXP_QUEST_RAID actions[i].p2 = (actions[i].p2 * GetExpState(character) /100)*EXP_QUEST_RAID local ret = AddExp( character, npc, actions[i].p1, actions[i].p2 ) if ret ~= LUA_TRUE then PRINT( "ActionProc: AddExp failed!" ) SystemNotice( character, "ActionProc: AddExp Add Exp failed!" ) return LUA_FALSE end 4. EXP_QUEST_RAID переменная из variable для рейтов. б)Золото 1.Идем в папку GameServer\resource\script\MisSdk 2.Ищем elseif actions.func == AddMoney then 3.Добавляем MONEY_QUEST_RAID как показано в примере. elseif actions[i].func == AddMoney then PRINT( "ActionProc:AddMoney, p1 =", actions[i].p1 ) local ret = AddMoney( character, npc, actions[i].p1 )* MONEY_QUEST_RAID if ret ~= LUA_TRUE then PRINT( "ActionProc: AddMoney failed!param1 = %d", actions[i].p1 ) SystemNotice( character, "ActionProc: AddMoney failed!" ) return LUA_FALSE end 4. MONEY_QUEST_RAID переменная из variable для рейтов. См. также: [FYI] Разному времени суток - разный дроп 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
WVWMK 121 Report post Posted October 23, 2016 @V3ct0r рейты на опыт с заданий описывать не будешь? Quote Делай добро и бросай его в воду Share this post Link to post Share on other sites
WVWMK 121 Report post Posted October 24, 2016 Добавлю сам. Если вы хотите повысить опыт за квест или золото за квест то: а)Опыт 1.Идем в папку GameServer\resource\script\MisSdk 2.Ищем elseif actions.func == AddExp then 3.Добавляем EXP_QUEST_RAID как показано в примере. elseif actions[i].func == AddExp then PRINT( "ActionProc:AddExp, p1 = , p2 = ", actions[i].p1, actions[i].p2 ) local retExpState = GetExpState(character) actions[i].p1 = (actions[i].p1 * GetExpState(character) /100)*EXP_QUEST_RAID actions[i].p2 = (actions[i].p2 * GetExpState(character) /100)*EXP_QUEST_RAID local ret = AddExp( character, npc, actions[i].p1, actions[i].p2 ) if ret ~= LUA_TRUE then PRINT( "ActionProc: AddExp failed!" ) SystemNotice( character, "ActionProc: AddExp Add Exp failed!" ) return LUA_FALSE end 4. EXP_QUEST_RAID переменная из variable для рейтов. б)Золото 1.Идем в папку GameServer\resource\script\MisSdk 2.Ищем elseif actions.func == AddMoney then 3.Добавляем MONEY_QUEST_RAID как показано в примере. elseif actions[i].func == AddMoney then PRINT( "ActionProc:AddMoney, p1 =", actions[i].p1 ) local ret = AddMoney( character, npc, actions[i].p1 )* MONEY_QUEST_RAID if ret ~= LUA_TRUE then PRINT( "ActionProc: AddMoney failed!param1 = %d", actions[i].p1 ) SystemNotice( character, "ActionProc: AddMoney failed!" ) return LUA_FALSE end 4. MONEY_QUEST_RAID переменная из variable для рейтов. 1 Quote Делай добро и бросай его в воду Share this post Link to post Share on other sites
V3ct0r 2,117 Report post Posted October 27, 2016 Спасибо, @NMS3RR. Добавил в гайд 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
WVWMK 121 Report post Posted October 28, 2016 (edited) @V3ct0r Еще один Апдейт для ленивых : Каждой локации свой шанс выпадения. 1.Идем в файл skilleffect.lua и ищем function Check_Baoliao 2.Вставляем в начало функции local map_name_ATKER = GetChaMapName ( ATKER ) local RAID_MAP=1 3.Вставляем перед if IsPlayer(Defer) == 1 then if map_name_ATKER =="abandonedcity" or map_name_ATKER=="abandonedcity2" or map_name_ATKER="abandonedcity3" then RAID_MAP=хх -- Шанс в ФС elseif map_name_ATKER == "darkswamp" then RAID_MAP=хх -- Шанс в ДС elseif map_name_ATKER == "garner2" then RAID_MAP=хх -- Шанс в ХС elseif map_name_ATKER == "07xmas" then RAID_MAP=хх -- Шанс в СНВ elseif map_name_ATKER == "puzzleworld" or map_name_ATKER == "puzzleworld2" then RAID_MAP=хх -- Шанс в ДВ else RAID_MAP=хх -- Не данж end 4. Добавляем нашу переменную RAID_MAP mf = math.min ( 1, 100 / arg[i] * ( bsmf / 100 ) ) * ... * RAID_MAP * ... Теперь мы можем контролировать шанс выпадения на разных картах не переписывая CharacterInfo Edited November 1, 2016 by NMS3RR Quote Делай добро и бросай его в воду Share this post Link to post Share on other sites
Duduf 44 Report post Posted October 28, 2016 Если карты "данж" и "не данж" на одном ГСе, то игроки на разных картах будут друг другу переписывать рейты. Надо делать отдельные переменные на каждую карту либо в массив их сложить Quote Share this post Link to post Share on other sites
V3ct0r 2,117 Report post Posted October 28, 2016 @NMS3RR можно сделать что-то вроде такого: variable.lua -- Массив <карта> = дополнительный рейт на дроп MAP_RAID = {} MAP_RAID["abandonedcity"] = 1 MAP_RAID["abandonedcity2"] = 2 MAP_RAID["abandonedcity3"] = 3 MAP_RAID["darkswamp"] = 15 MAP_RAID["07xmas"] = 25 MAP_RAID["puzzleworld"] = 50 MAP_RAID["puzzleworld2"] = 20 Начало функции Check_Baoliao() из skilleffect.lua: local raid = 1 local map_name = GetChaMapName(ATKER) if (MAP_RAID[map_name] ~= nil) then raid = MAP_RAID[map_name] end Редактируем формулу, та же функция и файл: mf = math.min(1, 100 / arg[i] * bsmf) * MF_RAID * MF_RAID_STATE * raid Либо просто сделать переменную RAID_MAP локальной в контексте функции Check_Baoliao(), т.е. не выносить ее в variable.lua local RAID_MAP = 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