🌟NoName Server High Five for mega stats

zlDrag0nSlz

Знаменитый
Участник
Сообщения
37
Розыгрыши
0
Репутация
15
Реакции
10
Баллы
1 245
Запрещено публиковать исходный код без BB-кода — CODE
Хроники
  1. Chaotic Throne: High Five

NoName - потому что еще не придумал название =)​

От автора: проект только начинается, делаю один — буду рад любым отзывам, идеям и баг-репортам!
Платить ни за что не нужно.


1) Продажа предметов сразу заточенные и с атрибутами.​

Поддержка продажи предметов с заранее заданной заточкой enchantCount="3" — на сколько будет заточено при покупке.
Продажа предметов с элементами (вода, огонь, земля и т.д.)
Возможность выдавать статус героя предмету:
Код:
<set name="setHeroCharacter" val="true" />
(может пригодится )



2) Полный рефакторинг системы заточки​


Заточка стала модульной, гибкой, расширяемой

Добавлены глобальные правила типа:

Код:
<enchant id="6570" targetGrade="A" allTarget="true"/> → точит всё надетое с таким же грейдом.

Новый параметр perenchant — самый востребованный:

Код:
<perenchant stat="pAtkSpd" val="10" />
<perenchant stat="mAtkSpd" val="10" />

Каждая заточка будет добавлять +10 к скорости атаки (или любой другой стат).


3) Damage Zones​

Добавлены расширенные конфиги для фарм/фан зон:
Код:
# Включить функцию настраиваемой зоны урона.
EnableCustomDamageZone = True

# ID зон, к которым применяется настройка настраиваемого урона (через запятую).
CustomDamageZoneAllowIdZones = 300012

# Урон в секунду, наносимый игрокам внутри зоны.
CustomDamageZoneDamageCount = 100

# Разрешить игрокам умирать внутри зоны?
CustomDamageZoneAllowDie = True

# ID шаблонов NPC, которые должны автоматически возрождаться в зоне (список через запятую).
CustomDamageZoneNpcIds = 22222

# Количество NPC, появляющихся в точке появления.
CustomDamageZoneNpcCount = 5

# Количество доступных точек появления внутри зоны.
CustomDamageZoneNpcLocks = 10

# Снять все положительные эффекты с игроков, входящих в зону?
CustomDamageZoneRemoveBuff = True

# ID предметов, которые не экипированы и заблокированы в зоне (список через запятую).
CustomDamageZoneBlockedItems = 6376

Можно создавать зоны «в один клик»: указываете ID моба, кол-во, точки спавна — всё остальное автоматизировано.

Лбо через сам файл зоны можно сделать тоже самое, кому как удобно.
Код:
    <zone name="test2" id="300012" type="DamageZone" shape="NPoly" minZ="-3500" maxZ="-3300">
        <stat name="reuse" val="5000" />
        <stat name="allowDie" val="false" />
        <stat name="removeBuff" val="true" />
        <stat name="npcIds" val="22222" />
        <stat name="npcCount" val="5" />
        <stat name="npcLocks" val="5" />
        <stat name="blockedItems" val="14120" />
        <node X="84608" Y="149269" />
        <node X="83393" Y="149224" />
        <node X="83401" Y="149048" />
        <node X="83621" Y="149050" />
    </zone>


4) Skill Shop​

Полностью кастомный магазин умений в Community Board.
Пока в разработке но уже работает немного =)
Показывает досутпные, купленные. при покупке показывает описание, стоимость и можно подтвердить покупку.
Данные берутся из communitySkillShop.json
Пример:
Код:
      {
        "id": 1,
        "skillId": 1068,
        "skillLevel": 3,
        "description": "+10% Attack Speed",
        "price": [
          { "itemId": 57, "count": 5000 }
        ]
      }


5) Перековка статов​


Дело щипетильное с кучей проверок конечно же но штука интересная для сервера с мега статами, можно включить\выключить конечно же.
Перенос статов допустим из STR в WIN или CON, кому как хочется.




6) Автозаточка

Понятное дело есть и в КБ и через .autoenchant.
Полностью конфигурируемая:

  • любой расходный материал
  • шансы
  • лимиты
  • условия



7) Автофарм


.farm on/off также и в Community Board.
В конфиге указывается автобутылки, если они есть в инвентаре то юзаются сами, скилы можно добавить, выставить радиус, возможность реагировать на атаки игроков, если ваш бот был атакова то персонаж сам отвечает в ответ. (далее будет реализовано автовоскрешение).





8) Смена внешнего вида оружия или брони​


Через Community Board можно в любой предмет засунуть внешний вид другого предмета, вся реализация на стороне сервера. (проверка на тип оружия\брони, одето\снято)




9) Система контрактов​



Через Community Board есть возможность посмотреть дневные контракты и контракты на завтра,
  • убийство боссов
  • в пати убить мобов
  • заточить предмет
  • убить игроков в пвп
  • клановый бой.
Все настраивается через файл contracts.json




10) Система ИИ ботов​


Реализована расширенная AI-система (в процессе разработки):

  • Автофарм бот.
  • Автоторговля (Продажа\покупка). Крафт пока в разработке.
  • Авто ПК убийца с автотаргетом и участием на ТВТ.
  • Ассистент-помощник (фича для прикола)
  • Если бота Автофарм убивают прибегает бишоп и ресает его, можно установить откат этого биша =)
Код:
# Master toggle: enable spawning and management of AI-driven player characters.
AiPlayers = True

# Directory structure for AI assets (profiles, routes, dialogs).
AiProfilesDirectory = data/ai/profiles
AiRoutesDirectory = data/ai/routes
AiDialogsDirectory = data/ai/dialogs

# General AI runtime parameters.
AiBootstrapDelayMs = 15000
AiPollingIntervalMs = 4000
AiMaxSimultaneousPlayers = 50

# -----------------------------------------------------------------------------
# Auto-farm bots
# -----------------------------------------------------------------------------
AiAutoFarm = True
AiAutoFarmProfiles = autofarm/default.json;autofarm/damage.json
AiAutoFarmRespawnDelayMs = 60000
AiAutoFarmAttackPlayers = True
AiAutoFarmAssistPlayers = True
AiAutoFarmUseShots = True
AiAutoFarmReturnDelayMs = 300000
AiAutoFarmReturnDistance = 6000

# -----------------------------------------------------------------------------
# Support bots
# -----------------------------------------------------------------------------
AiSupportProfiles = support/bishop.json

#30000 default
AiSupportCooldownMs = 30
AiSupportApproachDistance = 300

# 5000 default
AiSupportDespawnDelayMs = 5000

# -----------------------------------------------------------------------------
# Auto-trade bots
# -----------------------------------------------------------------------------
AiAutoTrade = True
AiAutoTradeProfiles = autotrade/giran.json;autotrade/giran_2.json;autotrade/giran_3.json

# -----------------------------------------------------------------------------
# Walker / patroller bots
# -----------------------------------------------------------------------------
AiPlayerWalker = True
AiWalkerRoutes = giran_walkers.json
AiWalkerLoopDelayMs = 5000

# -----------------------------------------------------------------------------
# Combat / attacker bots
# -----------------------------------------------------------------------------
AiPlayerAttacker = True
AiAttackerProfiles = attackers/giran_attackers.json
AiAttackerInitDelayMs = 15000
AiAttackerInitThreads = 5
AiAttackerAggroRange = 2000
AiAttackerRespawnDelayMs = 120000
AiAttackerTargetPlayers = True
AiAttackerPkKill = True
AiAttackerAssistPlayers = True
AiAttackerTvtRegister = True
AiAttackerOlympiadRegister = False
AiAttackerRunSpeedPercent = 30
AiAttackerAttackSpeedPercent = 30
AiAttackerCastSpeedPercent = 0
AiAttackerPAtkPercent = 0
AiAttackerMAtkPercent = 0
AiAttackerBowReusePercent = 100
AiAttackerSkillReusePercent = 100
AiAttackerMageCastSpeedPercent = 200
AiAttackerTvtCloneNames = ShadowRider;IronWolf;NightHunter;StormBlade;SilverFang;DarkArcher;FlameGhost;FrostKnight;ThunderStrike;MoonRogue;MysticRaven;SilentBlade;FireDrake;SteelViper;WildHawk;VoidRunner;BattleLion;IceWarden;LoneRanger;GhostSamurai;CrimsonFalcon;StormReaper;

# -----------------------------------------------------------------------------
# Social / talk bots
# -----------------------------------------------------------------------------
AiPlayerTalk = False
AiTalkProfiles = dialogs/default.json
AiTalkChannels = SAY,WHISPER,SHOUT
AiChatServiceProvider = none
AiChatServiceBaseUrl =
AiChatServiceModel = gpt-3.5-turbo
AiChatServiceApiKey =
AiChatReplyDelayMs = 5000
AiChatSessionTimeoutMs = 300000

Ну и для снижения нагрузки на сервер для подгрузки всех ботов добавлена конфигурация для возможности увеличения потоков их загрузки и количеству.
Статус готовности:

Воин: 90%
Маг: 70%
Саммонеры: 0% (скоро)




11) Система Баланса (очень важно для мега сервера с мега статами)​

Код:
# Формат: maxSkillDamage, maxNormalDamage, maxCritDamage, maxMagicCritDamage
# Значения — это проценты от максимального HP цели (0 = отключено)
# Пример: "50,10,20,30" означает:
# - Максимальный урон от навыков: 50% от максимального HP цели
# - Максимальный урон от обычных атак: 10% от максимального HP цели
# - Максимальный урон от критических ударов: 20% от максимального HP цели
# - Максимальный урон от магических критических ударов: 30% от максимального HP цели
# Оставьте пустым или установите "0,0,0,0", чтобы отключить ограничения для данного класса

# Ограничения урона для классов магов (волшебник, чародей, некромант, заклинатель и т. д.)
# Пример: "50,10,20,30" = 50% от максимального урона от навыков, 10% от максимального урона от обычных атак, 20% от максимального урона от критических ударов, 30% от максимального урона крит магии
DamageLimitMage = 0,0,0,0

# Лимиты урона для класса танка (Паладин, Тёмный мститель, Рыцарь храма, Рыцарь Шилен и т. д.)
# Пример: "30,10,20,0" = 30% от максимального навыка, 10% от максимального обычного, 20% от максимального крита, без магического крита
DamageLimitTank = 0,0,0,0

# Лимиты урона для класса лучника (Соколиный глаз, Серебряный рейнджер, Призрачный рейнджер, Стрелец и т. д.)
# Пример: "40,8,10,0" = 40% от максимального навыка, 8% от максимального обычного, 10% от максимального крита, без магического крита
DamageLimitArcher = 0,0,0,0

# Лимиты урона для класса кинжала (Охотник за сокровищами, Странник равнин, Странник бездны, Авантюрист и т. д.)
# Пример: "35,8,15,0" = 35% от максимального навыка, 8% от максимального обычного, 15% от максимального критического удара, без магического крита
DamageLimitDagger = 0,0,0,0

# Лимиты урона для класса призывателя (Чернокнижник, Призыватель стихий, Призыватель фантомов, Повелитель магии и т. д.)
# Пример: "45,10,15,25" = 45% от максимального навыка, 10% от максимального обычного, 15% от максимального критического удара, 25% от максимального магического критического удара
DamageLimitSummoner = 0,0,0,0

# Лимиты урона для класса Камаэль (все классы Камаэль)
# Пример: "40,10,18,0" = 40% от максимального навыка, 10% от максимального обычного, 18% от максимального критического удара, без магического крита
DamageLimitKamael = 0,0,0,0


12) Бесконечные стрелы и соски​

Код:
(понятно)


13) Система Community Board​


Всю систему КБ пишу с 0, пока в разработке, нет проверок на пвп, пк, ивенты и так далее. работает в тестовом режиме, показывает, нажимается.

Добавлены:

Мультиселлы
HTML окна
Телепорты
Баффер
Магазин умений
Смена пола
Геройство
Цвет ника
Перековка статов (распределение STR → CON и т.д.)
Смена внешнего вида оружия и брони (visual change)
Автофарм
Автозаточка



14) Премиум система​

Код:
# Включить/отключить премиум-пакеты
premiumEnable = true

# Премиум-пакеты: id,itemId,count (пары, разделенные символом «;»)
premium = 1,57,1000000;2,57,5000000;3,57,100

# Множители премиум-опыта: id,value (используйте «.» или «,» в качестве десятичного разделителя)
premiumRateXp = 1,2.0;2,3.0;3,4.0

# Множители премиум-SP: id,value
premiumRateSp = 1,2.0;2,3.0;3,4.0

# Множители шанса выпадения премиум-пакетов: id,value
premiumRateDrop = 1,2.0;2,3.0;3,4.0

# Длительность премиум-пакета: id,duration — поддерживаемые единицы: с/сек, мин, час, день, неделя, месяц (30 дн.), год (365 дн.)
premiumTime = 1,2 week.; 2,2 day.; 3,1 min.


15) Контроллер урона и жизней боссов и мобов​

Три режима:

oiginal - означает что статы будут браться из фала xml
level - значение будет равно уровню моба\босса\героя в зависимостри что за конфигурация
статическое число - будет утановленно статическое значение =)

Код:
# HP мобов (original/level/число)
staticMobsHp = level  
# Урон моба по игроку
staticMobsDamage = level    

# HP мобов (original/level/число)
staticBossHp = level   
 
# Урон босса по игроку  (original/level/число)
staticBossDamage = 100 

# Урон игроков по боссам # Маги и скиллы (original/level/число)
staticOnBossDamageMage = 10

# Воины/автоатаки (original/level/число)
staticOnBossDamageFighter = 10

# Урон игроков по обычным мобам (original/level/число)
staticOnMobsDamageMage = 10
staticOnMobsDamageFighter = 10

# Кастомные исключения (перечисление через ;)
# Формат: id,damage,hp,damageOn
# customBossConfig = 29020,50000,200000,150; 29006,level,original,level
# customMobsConfig = 22601,original,5000,100;22222,10,100,1
customBossConfig=
customMobsConfig=

16) Автоматический прокси логин сервер​


Логинсервер может работать как прокси:

Показывает пинг
Кол-во подключенных игроков
Передаёт трафик на основной сервер
Для игроков в игре отображается, через какой прокси он подключился

Код:
Настройка:
# Основной хост сервера для регистрации прокси
# Прокси-сервер будет подключаться к этому хосту для регистрации
# Значение по умолчанию: (пусто)
ProxyClientMainServerHost = 127.0.0.1

# Основной порт сервера для регистрации прокси
# Значение по умолчанию: 2108
ProxyClientMainServerPort = 2108

# IP-адрес прокси-сервера (видимый клиентами)
# Это IP-адрес, к которому будут подключаться клиенты
# Значение по умолчанию: (пусто)
ProxyClientProxyIp = 127.0.0.2

# Порт прокси-сервера (к которому подключаются клиенты)
# Значение по умолчанию: 2106
ProxyClientProxyPort = 2106

# Региональное имя прокси-сервера
# Пример: Russia, Germany, Test
# по умолчанию: Unknown
ProxyClientRegion = Russia

Пример лога Основного логина:
Код:
[INFO ] 2025-11-15 11:31:45 LoginServer: === Proxy Servers Status ===
[INFO ] 2025-11-15 11:31:45 LoginServer: Total registered proxies: 2, Total connected players: 12
[INFO ] 2025-11-15 11:31:45 LoginServer: Proxy 127.0.0.2:2106 (Russia) - Ping: 3 ms, Players: 7
[INFO ] 2025-11-15 11:31:45 LoginServer: Proxy 127.0.0.3:2106 (Amsterdam) - Ping: 82 ms, Players: 5
[INFO ] 2025-11-15 11:31:45 LoginServer: ===========================

Лог с прокси логина:
Код:
[INFO ] 2025-11-15 11:33:10 ProxyClient: Heartbeat sent: OK, IP: 127.0.0.1:2106, Ping: 4ms, Connected players: 7

Добавил антифлуд запищу в логин
Код:
# Антифлуд при входе через прокси (для каждого IP-адреса клиента)
# Количество новых подключений, разрешённых в течение окна до временной блокировки (0 отключает ограничение)
ProxyLoginFloodMaxAttempts = 5
# Временной интервал в секундах для подсчёта попыток
ProxyLoginFloodWindowSeconds = 60
# Длительность блокировки в секундах после превышения лимита
ProxyLoginFloodLockSeconds = 60



17) Переводы (Lang)​


Конечно же переводы, добавлены файлы с translations.properties для перевода Community Board

Код:
# Main Menu (пример)
menu.main.title=Доска объявлений
menu.main.teleport=Телепорт
menu.main.buff=Бафф
menu.main.skillshop=Магазин умений
menu.main.premium=Премиум
menu.main.appearance=Смена внешнего вида
menu.main.contracts=Контракты
menu.main.farm=Автофарм
menu.main.autoenchant=Автозаточка
menu.main.services=Услуги игрока

# Main Menu (Exanple)
menu.main.title=Community Board
menu.main.teleport=Teleport
menu.main.buff=Buff
menu.main.skillshop=Skill Shop
menu.main.premium=Premium
menu.main.appearance=Appearance Change
menu.main.contracts=Contracts
menu.main.farm=Auto Farm
menu.main.autoenchant=Auto Enchant
menu.main.services=Player Services

реализованы показы html из папок html-%s

Код:
# Шаблон пути для локализованных HTML-каталогов (используйте %s для кода языка)
MultiLangHtmlDir = data/html-%s/

18) Откат скилов, стрелки, автоатаки​

Нашел проблему с формулой стандартной, она не расчитана на очень высокие статы (например 40к атак спида или 40к каста).
Герой просто зависал с вытянутой рукой при автоатаке, стрелок вставал на одной ноге спамя стрелами без возможности подвинуться.
Магические скилы нормально не откатывались и не использовались. Добавил новый конфиг чтоб решить эту проблему.


Код:
# Минимальное время применения в миллисекундах, применяемое после применения скорости применения.

# Ограничены только навыки, базовое время попадания которых превышает это значение.

# Установите 0, чтобы отключить минимальный предел в 500 мс, как в обычном режиме.

SkillMinCastTimeMs = 100

# Минимальная задержка повторного использования в миллисекундах, применяемая после применения модификаторов характеристик.

# Установите 0, чтобы разрешить мгновенное повторное использование навыков при достижении нулевого значения.

SkillMinReuseDelayMs = 0

# Включить масштабирование задержки повторного использования навыков в зависимости от скорости атаки/применения (только для нестатических навыков).

SkillReuseScaleWithSpeed = False

# Минимальные значения (в миллисекундах), которых может достичь повторное использование после масштабирования для каждого типа навыка.

# Эти значения действуют как минимальные значения: даже при очень высокой скорости повторное использование не опустится ниже.
SkillReuseMagicBaseMs = 100
SkillReusePhysicalBaseMs = 100

# Базовые скорости (в миллисекундах), используемые для масштабирования. Только скорости выше этих
# значений уменьшат повторное использование; установите меньшее значение, чтобы масштабирование сработало раньше.
SkillReuseMagicReferenceMs = 100
SkillReusePhysicalReferenceMs = 100

# Минимальное время (мс), допустимое между автоатаками для определённых семейств оружия.
# Используйте эти значения, чтобы предотвратить анимацию с нулевой задержкой при экстремальных скоростях атаки.
AttackMinBowIntervalMs = 100
AttackMinCrossbowIntervalMs = 100
AttackMinFistIntervalMs = 100
upd 15.11


От меня =)​


Проект я делаю один, работа только началась.
Ищу:

ваши пожелания
идеи
предложения
замеченные баги
тестеров

Если кто-то хочет получить билд для просмотра — пишите в личные сообщения.


Спасибо всем, кто поддержит и поможет сделать сборку лучше

Буду добавлять описания и что сделал по мере поступления.
 

Вложения

  • 1763207038853.webp
    46,3 КБ · Просмотры: 228
Последнее редактирование:
Which server can be work brother
Could you please clarify what exactly you mean?

Are you referring to the launcher, the website, the protection, or something else?

If you mean the server build — it’s a private custom development and is not related to Mobius in any way.

If you want to use the launcher, some modifications must be made on the server side to support the additional packets required by the protection system and the launcher.
 
Данный сайт использует cookie. Вы должны принять их для продолжения использования. Узнать больше…