Search the Community
Showing results for tags 'топ'.
Found 1 result
-
Мод Система рейтинга игроков
V3ct0r posted a topic in Моды для клиента и сервера (PKOdev.NET mod loader)
[Мод] Система рейтинга игроков Данный мод реализует систему рейтинга игроков, которая позволяет игрокам сравнивать своих персонажей по какому-либо критерию в зависимости от того, как администратор настроит систему. Например, можно определить рейтинг как сумму всех базовых характеристик персонажа (см. скриншот выше), тогда с помощью рейтинга можно понять насколько силен персонаж относительно другого. Либо можно выводить в рейтинге количество убитых игроков или монстров. Так же можно выводить количество золота, очков репутации и тому подобное. Система очень гибкая и зависит от фантазии администратора. Рейтинг отображается над именем персонажей и выделяется цветом. После выхода персонажа из игры, рейтинг сохранятся в базе данных, таким образом, можно выводить рейтинг игроков на Вашем сайте. Требования Установленный Загрузчик модов для сервера и клиента (PKOdev.NET mod loader). Информация о моде Название: pkodev.mod.power; Версия: 1.1; Автор: V3ct0r; Тип: для клиента и сервера (Game.exe и GameServer.exe); Поддерживаемые исполняемые .exe файлы: GAME_13X_0, GAME_13X_1, GAME_13X_2, GAME_13X_3, GAME_13X_4, GAME_13X_5, GAMESERVER_136 и GAMESERVER_138. Обновление мода от 17.01.2022 + Исправлен баг, когда при убийстве монстра у персонажа игрока не обновлялось количество опыта (спасибо @Rewind и @Tera за обнаружение бага); + Формат вывода количества очков рейтинга вынесен в файл настроек pkodev.mod.power.cfg на стороне клиента: - [{:power:}] - Установка Сервер: 1) В директории "GameServer\mods" Вашего сервера создайте папку "pkodev.mod.power"; 2) Поместите в неё файл DLL-библиотеки мода "pkodev.mod.power.server.13<x>.dll" для Вашей версии GameServer.exe; 3) В файл functions.lua ("GameServer\resource\script\calculate\") запишите следующий скрипт: -- Power system (pkodev.mod.power) -- Calculate player's character power amount function CalculatePower(role) -- Get some character attributes local str = GetChaAttr(role, ATTR_STR) local agi = GetChaAttr(role, ATTR_AGI) local con = GetChaAttr(role, ATTR_CON) local spr = GetChaAttr(role, ATTR_STA) local acc = GetChaAttr(role, ATTR_DEX) -- Power formula local formula = ( str + agi + con + spr + acc ) -- Return calculated power amount and color return formula, GetPowerColor(formula) end -- Power system (pkodev.mod.power) -- Get color of power value function GetPowerColor(power) -- Green color (0xFF00FF00) return 4278255360 end 4) В MSSQL Management Studio выполните SQL-запрос: USE GameDB ALTER TABLE character ADD power INT NOT NULL DEFAULT (0) Клиент: 1) В директории "mods" Вашего клиента создайте папку "pkodev.mod.power"; 2) Поместите в неё файл DLL-библиотеки мода "pkodev.mod.power.client.13x_<x>.dll" для Вашей версии Game.exe. 3) Поместите в неё файл настроек мода "pkodev.mod.power.cfg" и запишите в него желаемый формат вывода количества очков рейтинга персонажей (маркер {:power:}), например: - [{:power:}] - Настройка мода 1) В файле functions.lua, в функции CalculatePower(role) запишите код, который будет вычислять рейтинг персонажа игрока. На вход функции подается переменная role - дескриптор текущего персонажа. На выходе функция должна вернуть рейтинг в виде целого числа. В примере выше, скрипт вычисляет рейтинг как сумму базовых характеристик персонажа; 2) В файле functions.lua, в функции GetPowerColor(power), запишите код, который будет определять цвет рейтинга в зависимости от его числа - power. Например, можно сделать, чтобы рейтинг менее 50 выделялся желтым цветом, от 50 до 100 - зеленым, выше 100 - красным. Цвет необходимо записывать в формате 0xFFRRGGBB, в десятичной системе счисления. Пример: зеленый цвет = 0xFF00FF00, переводим в десятичную ССч и получим число 4278255360, его и нужно записать в скрипт; 3) Мод предусматривает сохранение рейтинга персонажа в базе данных после выхода из игры. Например, для вывода на сайте в различных ТОПах. Если Вам не нужна эта возможность, её можно отключить. Для этого пропустите пункт 4 раздела "Установка - Сервер" и закомментируйте следующие строки в исходном коде серверной части мода (проект pkodev.mod.power.server, файл dllmain.cpp, функции Start() и Stop()), после чего скомпилируйте проект: DetourAttach(&(PVOID&)pkodev::pointer::CTableCha__SaveAllData, pkodev::hook::CTableCha__SaveAllData); и DetourDetach(&(PVOID&)pkodev::pointer::CTableCha__SaveAllData, pkodev::hook::CTableCha__SaveAllData); 4) Чтобы получить рейтинг персонажа из базы данных, выполните SQL-запрос: SELECT power FROM GameDB.dbo.character WHERE cha_name = '<Имя персонажа>' 5) Настройка на стороне клиента не требуется. Скачать 1) Бинарные файлы мода (.dll); 2) Исходный код мода для Visual Studio 2019 Community (C++). Если Вы столкнулись с какой-либо проблемой, багом или у Вас возникли вопросы, то пишите в данной теме.