Здравствуйте, гость ( Вход | Регистрация )

 
Ответить в эту темуОткрыть новую тему
> Разработка сферы 51/Sphere development 51
D3ATH
сообщение 15.11.2025, 16:52
Сообщение #1


**

Голова
Сообщений: 40
Регистрация: 12.12.2005
Группа: Пользователи
Наличность: 20
Пользователь №: 4.576



Webpage:https://sphereserver.ru/ -- Вебсайт будет более актуальная информация билды и документация.

Привет всем, занимаюсь разработкой сферы 51, интересует с какими проблемами и багами столкнулись на этапе использования этого чуда. Если есть возможность буду их исправлять. а там глядишь и релиз выкачу.

Hey everyone, I'm developing Sphere 51 and I'm interested in any issues or bugs I've encountered while using this wonder I'll fix them if I can, and maybe I'll release it later

Ну и ченджлог на текущий момент что бы понимание было вопроса

Well, and the changelog at the moment so that there is an understanding of the issue

По всем вопросам можете связаться

For any questions, you can contact


многие фиксы понятно откуда взяты но это как стандарт проверенный временем) а так планы обширные

SphereServer-0.51x Changelog


�� 14.11.2025 — Ограниченная поддержка Linux
  • ���� Русский:
    • Добавлена ограниченная поддержка Linux: сервер собирается при помощи `make` с GCC, включая встроенный Monocypher и коннектор MariaDB.
    • Подготовлены инструкции по установке зависимостей, сборке и тестированию на Linux.
    • Документация подчёркивает, что Windows-проекты Visual Studio продолжают поддерживаться без изменений.
  • ���� English:
    • Introduced limited Linux support: the server now builds via `make` with GCC, bundling Monocypher and the MariaDB connector.
    • Authored Linux-specific setup, build, and test instructions.
    • Documentation clarifies that existing Visual Studio projects for Windows remain fully supported.


�� 14.11.2025 — Серые должны заслужить награду
  • ���� Русский:
    • Бонус +10% кармы за убийство серого игрока с отрицательной кармой теперь выдаётся только если у жертвы есть положительный фейм.
    • Документация по криминальной системе обновлена и на русском, и на английском: описаны условия штрафа 20% за «синий против синего» и награда за серых.
  • ���� English:
    • The +10% karma bonus for killing a grey, negative-karma player now requires the victim to have positive fame before it is awarded.
    • Refreshed the criminal-system documentation in both Russian and English to cover the 20% blue-on-blue penalty and the fame-gated grey kill reward.


�� 14.11.2025 — Карма и фэйм под контролем
  • ���� Русский:
    • Монстры, убивающие персонажей, больше не получают за это карму.
    • Карма не списывается за убийство криминалов с положительной кармой, если убийца не является NPC.
    • За убийство «синий против синего» у убийцы отнимается половина абсолютного значения кармы жертвы.
    • Если страж убивает монстра, ни карма, ни фейм не начисляются.
    • При смерти персонаж теряет 10% собственного фэйма, а за убийство игрока начисляется 9% фэйма жертвы.
    • Фейм жертвы делится поровну между всеми участниками боя в радиусе 16 тайлов; бегство агрессора из боя стоит ему 10 единиц фэйма.
    • ПК не могут поднять свою карму выше отметки −3000.
  • ���� English:
    • Monsters that kill characters no longer receive karma for those kills.
    • Killing criminals who still have positive karma no longer deducts karma from a non-NPC killer.
    • Blue-on-blue murders now subtract half of the victim's absolute karma value from the killer.
    • Guard kills against monsters award neither karma nor fame to anyone.
    • A character loses 10% of their own fame on death, while killing a player grants 9% of the victim's fame.
    • The victim's fame is shared evenly among all attackers within 16 tiles, and aggressors who flee combat lose 10 fame.
    • Player killers cannot raise their karma above −3000.


�� 13.11.2025 — Карма без преждевременной красноты
  • ���� Русский:
    • Игрок остаётся серым вплоть до -10000 кармы и не становится красным при достижении этой отметки.
    • Убийство персонажей с кармой ниже нуля больше не приносит положительную карму.
    • За убийство тамленных NPC теперь не начисляется ни карма, ни фейм.
  • ���� English:
    • A character now remains grey down to -10000 karma and no longer turns red upon reaching that value.
    • Killing players whose karma is below zero no longer grants positive karma.
    • Slaying tamed NPCs now awards neither karma nor fame.


�� 12.11.2025 — Исправлено самовоскрешение NPC
  • ���� Русский:
    • Исправлена ошибка, из-за которой мобы с отключённым спаунером самопроизвольно возрождались после смерти.
  • ���� English:
    • Fixed a bug where mobs with their spawn generator disabled would resurrect on their own after death.


�� 07.11.2025 — Диагностика аварийных сигналов
  • ���� Русский:
    • В безопасном режиме сервер теперь журналирует подробности сигналов `SIGSEGV`/`SIGBUS`/`SIGFPE`: номер, код, `errno`, адрес и отправителя, что облегчает поиск первопричины падения.
    • Сообщение также указывает текущий сценарный объект (UID, тип, имя/аккаунт), помогая сразу увидеть виновника аварии.
  • ���� English:
    • When secure mode is active the server now logs detailed context for `SIGSEGV`/`SIGBUS`/`SIGFPE`, including the signal number, code, `errno`, fault address, and sender to simplify crash investigations.
    • The log entry now appends the active script object (UID/type/name/account) so crashes immediately reveal the culprit.


�� 01.11.2025 — Фигурки показывают запас корма
  • ���� Русский:
    • Фигурки приручённых животных теперь получают имя вида `Имя [сытость]`, чтобы можно было сразу видеть запас корма питомца в шринке.
  • ���� English:
    • Figurines of tamed animals now use the `Name [food]` format so the stored hunger value is visible right in the shrink item.


�� 01.11.2025 — Метка инвиза для GM
  • ���� Русский:
    • Для всех персонажей со статусом `STATF_Invisible` теперь показывается тег `[invis]`, а для прочих скрытых состояний по-прежнему используется `[hidden]`.
  • ���� English:
    • Any character hidden via `STATF_Invisible` now shows the `[invis]` tag, while other hidden states continue to display `[hidden]`.


�� 31.10.2025 — Быстрое сохранение мира
  • ���� Русский:
    • Добавлен поток сохранения мира с двойным буфером, который записывает *world.scp* в фоне и не блокирует основной сервер.
    • Новый параметр `FASTSAVE` в `sphere.ini` позволяет включать быструю запись (1) или возвращаться к прежнему однотредовому режиму (0).
    • Закрытие сохранения теперь корректно дожидается фоновой записи и фиксирует возможные ошибки ввода-вывода.
  • ���� English:
    • Added a double-buffered save thread that streams *world.scp* to disk asynchronously, keeping the main server responsive.
    • Introduced a `FASTSAVE` toggle in `sphere.ini` to enable the fast writer (1) or fall back to legacy single-threaded saves (0).
    • Save finalisation now waits for the background writer and surfaces any I/O failures cleanly.


�� 31.10.2025 — Mount figurines remember their riders
  • ���� Русский:
    • Фигурки ездовых теперь сохраняют сытость (`morex`) и здоровье (`morey`) маунта при оседлании, а при вызове существа восстанавливают эти значения в допустимых пределах.
    • Имя предмета животного после shrink показывает `Имя [N food]`, где `N` берётся из сохранённого значения `morex`.
    • При посадке на маунта предмет получает таймер на 3600 секунд; при слезании с шансом `1 / (таймер / 40)` уменьшается сытость, чтобы имитировать расход кормов во время поездки.
    • В процессе shrink ссылки `UID` и `more2` очищаются, так что в фигурке остаются только сохранённые характеристики и таймер.
  • ���� English:
    • Rideable figurines now capture mount hunger (`morex`) and hit points (`morey`) when saddled and restore those stats within template limits when the creature is released.
    • Shrunk pet figurine names now appear as `Name [N food]`, pulling `N` from the stored `morex` hunger value.
    • Mount items receive a 3600-second timer on mounting; dismounting has a `1 / (timer / 40)` chance to reduce stored hunger to simulate feed consumption.
    • Shrinking the figurine clears its `UID` link and `more2`, leaving only the saved statistics and timeout information inside the item.


�� 31.10.2025 — ALLSHOW skips disconnected creatures
  • ���� Русский:
    • Команда `ALLSHOW` больше не затрагивает отключённых животных и НПС без владельца, поэтому их UID не отправляется повторно и дубликаты не появляются.
    • Перестроение обзора (`addPlayerSee`) так же пропускает такие существа, что предотвращает повторную рассылку «addChar» сразу после «remove».
  • ���� English:
    • The `ALLSHOW` command now ignores disconnected animals and NPCs with no owner, so their UIDs are no longer re-sent and duplicate entries disappear.
    • Rebuilding the nearby view (`addPlayerSee`) skips the same creatures, avoiding the immediate `addChar` resend that used to follow the `remove` packet.


�� 31.10.2025 — Connected riders hide their mounts
  • ���� Русский:
    • Исправили логику видимости, чтобы отключённые ездовые животные больше не проходили через `ALLSHOW` и не оставались фантомами после смерти всадника.
    • Рекурсивная проверка `Horse_GetMountChar` теперь мгновенно исключает такие цели из очереди рассылки, поэтому ГМы видят только самого игрока и его экипировку.
  • ���� English:
    • Updated visibility checks so logged-out mounts can no longer leak through `ALLSHOW` and linger as phantom creatures once their rider dies.
    • `Horse_GetMountChar` now short-circuits these entries before broadcast, so staff only see the player and their equipped mount layer.


�� 30.10.2025 — Persistent GM chat gump
  • ���� Русский:
    • Страницы справки ГМ теперь открывают персональный чат-гамп, который сохраняет историю диалога и позволяет поддерживать разговор между сессиями.
    • В чате появились отдельные кнопки «Ответить», «Скрыть» и «Завершить» для удобной переписки и контроля над завершением паги.
    • Игроки могут возвращаться в чат, пока ГМ не завершит пагу, а сами разговоры пишутся в журнал для дальнейшего аудита.
    • Команда `.help2` открывает окно обращения к ГМу: из него можно отправить новое сообщение и сразу перейти к чату, если беседа уже активна.
  • ���� English:
    • GM help pages now spawn a dedicated chat gump that persists the conversation history so discussions can continue across sessions.
    • The chat gump now provides Reply, Hide, and End Conversation controls so staff can manage the session without losing context.
    • Players may re-enter the chat until the GM closes the page, and the transcript is archived for later review.
    • Players can type `.help2` to open the GM assistance window, submit a new request, and jump straight back into the chat when a conversation is already in progress.


�� 30.10.2025 — .xedit notoriety flag polish
  • ���� Русский:
    • В разделе `notoriety` файла `.xedit` появились константы с UID и цветом для криминального и убийственного флагов, чтобы сервер знал, какой арт использовать для каждого статуса.
    • Логика `Noto_Murder` и `Noto_Criminal` при создании и обновлении токенов памяти проставляет нужный арт/цвет и при необходимости снимает серый флаг с убийц, чтобы их красный статус не сбрасывался.
    • Для безопасного изменения внешнего вида флагов добавлены методы `CItem::ForceDispID` и `CItemMemory::SetMemoryFlagAppearance`, объявленные в заголовке и вызываемые во время обновления токенов.
    • Меню `.xedit` теперь ищет предметы на слоях флагов и показывает подписи «Criminal flag»/«Murderer flag», чтобы ГМы видели нужные элементы вместо наследованных имён жертв.
  • ���� English:
    • The `.xedit` `notoriety` block now ships constants listing UID and colour values for the criminal and murderer flags so the server always picks the correct artwork for each status.
    • `Noto_Murder` and `Noto_Criminal` logic updates memory tokens with the selected art/colour and clears the grey flag from murderers when needed so their red status stays intact.
    • Added helper methods `CItem::ForceDispID` and `CItemMemory::SetMemoryFlagAppearance`, declared in the header and invoked while refreshing tokens to change flag visuals safely.
    • The `.xedit` menu now targets items on the flag layers and labels them as "Criminal flag"/"Murderer flag", giving GMs readable entries instead of inherited victim names.


�� 30.10.2025 — Persistent OSI power hour
  • ���� Русский:
    • Таймер OSI Power Hour теперь сохраняется при завершении сервера и продолжает работу после перезапуска, сохраняя оставшееся время и расписание запуска.
    • Состояние записывается и в `sphereworld.scp`, и в MySQL-хранилище, поэтому смена режима сохранения больше не сбрасывает настройку Power Hour.
  • ���� English:
    • The OSI Power Hour timer now survives shutdowns and resumes after restart with its remaining duration and schedule intact.
    • The state is persisted to both `sphereworld.scp` and the MySQL backend, so switching storage modes no longer wipes the Power Hour configuration.


�� 30.10.2025 — Loop handles for FORCHARS
  • ���� Русский:
    • Циклы `FORCHARS` и `FOROBJS` теперь предоставляют указатель `FRC` на текущего персонажа, так что скрипты могут напрямую вызывать методы вроде `FRC.SYSMESSAGE` без промежуточных переменных.
    • `FORITEMS` получил симметричный указатель `FRI`, а новая документация описывает практическое использование всех трёх циклов.
    • Исторический ключевик `FOREVERY` вернулся в виде псевдонима `FOROBJS`, получил собственный указатель `AFC` для текущего персонажа и задокументирован для поддержки старых Abyss-скриптов без переделок.
  • ���� English:
    • `FORCHARS`/`FOROBJS` loops now expose an `FRC` handle for the current character, letting scripts call verbs such as `FRC.SYSMESSAGE` without juggling UIDs.
    • `FORITEMS` mirrors the behaviour with an `FRI` handle, and the accompanying documentation walks through real-world loop examples.
    • Restored the legacy `FOREVERY` keyword as an alias of `FOROBJS`, added an `AFC` handle for its character phase, and refreshed the documentation so historical Abyss scripts keep working unchanged.


�� 29.10.2025 — Summons respect blocked tiles
  • ���� Русский:
    • Заклинания призыва теперь отменяются, если цель попадает на забор или другой блокирующий тайл, поэтому существа больше не появляются в недоступных местах.
  • ���� English:
    • Summoning spells now abort when the target lies on a fence or any blocking tile, preventing creatures from materializing in unreachable locations.


�� 29.10.2025 — Hardened gump packet parsing
  • ���� Русский:
    • Обработчик ответа клиента на гампы теперь жёстко ограничивает количество чекбоксов и текстовых строк размерами локальных буферов, обрезает лишние данные и пишет предупреждения, что предотвращает краши при открытии перегруженных контейнеров ГМами и игроками.
    • Конвертация Unicode-текста в ASCII больше не выходит за границы памяти: каждое поле обрезается до допустимой длины перед обработкой скриптами.
  • ���� English:
    • The gump response handler now clamps checkbox counts and text entries to the size of its local buffers, discards excess payload, and logs warnings, which prevents crashes when GMs or players open oversized containers.
    • Unicode text entries are trimmed to the allowed length before being handed to scripts so the ASCII conversion can no longer read past buffer limits.


�� 29.10.2025 — Paralyze Field requires line of sight
  • ���� Русский:
    • Заклинание `Paralyze Field` теперь проверяет прямую видимость выбранной точки перед созданием поля и сообщает заклинателю, если путь закрыт.
  • ���� English:
    • The `Paralyze Field` spell now verifies line of sight to the targeted location before erecting the field and informs the caster when the path is obstructed.


�� 29.10.2025 — Unified bandage item type
  • ���� Русский:
    • Все виды бинтов, включая окровавленные, теперь имеют тип `ITEM_BANDAGE`, что устраняет расхождения при их использовании и очистке.
  • ���� English:
    • All bandage variants, including bloody ones, now share the `ITEM_BANDAGE` type so they behave consistently when applied or cleaned.


�� 29.10.2025 — Retreating aggressors lose 10 fame
  • ���� Русский:
    • Атакующие, покидающие бой, теперь теряют 10 единиц славы как наказание за бегство.
  • ���� English:
    • Aggressors who flee from combat now lose 10 fame as a penalty for retreating.


�� 29.10.2025 — Fame/Karma gains show exact amounts
  • ���� Русский:
    • Сообщения о получении или потере славы и кармы теперь выводят точные значения вида «You gained 20 fame.» или «You lost 15 karma.».
  • ���� English:
    • Fame and karma notifications now display the exact amount gained or lost, using messages such as "You gained 20 fame." or "You lost 15 karma."


�� 29.10.2025 — Arms Lore shows repair percentage
  • ���� Русский:
    • Навык Arms Lore теперь выводит сообщение вида «The item is X% repaired.», чтобы игроки видели процент текущей починки предмета.
  • ���� English:
    • The Arms Lore skill now reports "The item is X% repaired." so players can see the precise repair percentage of their gear.


�� 29.10.2025 — OSI-style power hour scheduler
  • ���� Русский:
    • Добавлен параметр `OSIMOD` в `sphere.ini`, позволяющий включить OSI-подобный power hour с ускоренной прокачкой раз в сутки.
    • Сервер сам выбирает случайный час, объявляет старт сообщением «Power hour has been started» и сбрасывает расписание при смене коэффициента.
    • Рост скиллов во время события умножается на заданный модификатор, но всё ещё учитывает ограничения класса и блокировки.
    • Параметр `OSIMOD` теперь принимает дробные значения: 0 отключает систему, дроби до 1 задают прирост в пунктах скилла, а числа выше 1 работают как множитель.
    • В консоли администрирования добавлена подсказка `O`, показывающая, активен ли power hour сейчас, сколько осталось времени и когда начнётся следующая сессия.
  • ���� English:
    • Introduced the `OSIMOD` key in `sphere.ini` to enable an OSI-style daily power hour with accelerated skill gains.
    • The server now rolls a random one-hour window, announces it with "Power hour has been started", and re-schedules immediately whenever the multiplier changes.
    • Skill gains during the window apply the configured multiplier while still honouring class caps and skill locks.
    • The `OSIMOD` value now accepts decimals: 0 disables the system, fractions below 1 grant that many skill points per gain, and values above 1 continue to act as multipliers.
    • The remote console now reminds administrators that pressing `O` reveals the OSI power hour status, remaining time, or the countdown to the next window.


�� 28.10.2025 — Ghost visibility tied to war mode
  • ���� Русский:
    • Призраки теперь остаются невидимыми для остальных игроков, пока у них не включён боевой режим.
  • ���� English:
    • Ghost characters now stay hidden from other players unless they enable war mode.


�� 28.10.2025 — War mode clears on death
  • ���� Русский:
    • Во время смерти персонажа вар-режим теперь автоматически снимается, чтобы призраки сразу становились нематериальными и выходили из боя.
  • ���� English:
    • When a character dies their war mode now toggles off automatically so ghosts immediately manifest in their intangible, non-combat state.


�� 28.10.2025 — Criminal timer polish
  • ���� Русский:
    • Удар по персонажу со статусом [criminal] или активным килл-таймером теперь сбрасывает соответствующий флаг на минимум 15 секунд, если оставалось меньше.
    • Снятие криминала, возвращение синего цвета за счёт роста кармы и потеря статуса убийцы при списании киллов полностью очищают список боевых воспоминаний и сразу обновляют видимость персонажа.
    • При смерти цель текущей драки очищается сразу после создания трупа, так что «залипшие» таргеты больше не возвращаются после реса.
  • ���� English:
    • Hitting a character flagged as [criminal] or carrying an active kill timer now refreshes the corresponding status to at least 15 seconds whenever less time remained.
    • When the criminal flag burns off, karma restores the character back to blue, or the murder count falls below the murderer threshold, every fight memory is cleared and the character state is immediately broadcast.
    • Upon death the current fight target is wiped right after the corpse is created, preventing stale combat locks after resurrection.


�� 28.10.2025 — Field spells ignore ghosts for crimes
  • ���� Русский:
    • Поля (`Fire Field`, `Poison Field`, `Paralyze Field` и т.п.), накладываемые на призраков, больше не вызывают срабатывание криминального статуса у заклинателя.
  • ���� English:
    • Field spells (`Fire Field`, `Poison Field`, `Paralyze Field`, etc.) cast onto ghosts no longer flag the caster as criminal.


�� 28.10.2025 — Spell visibility tuning
  • ���� Русский:
    • Массовые заклинания (`Arch Protection`, `Explosion`, `Mass Curse`, `Chain Lightning`, `Mass Dispel`, `Meteor Swarm`, `Earthquake`) теперь затрагивают только тех существ и объекты, которые находятся в прямой видимости мага.
    • Радиус действия `Reveal` увеличен до 18 тайлов, что соответствует полной дальности обзора персонажа.
  • ���� English:
    • Area spells (`Arch Protection`, `Explosion`, `Mass Curse`, `Chain Lightning`, `Mass Dispel`, `Meteor Swarm`, `Earthquake`) now affect only targets that the caster has in line of sight.
    • `Reveal` now scans an 18-tile radius, matching the character's full visibility range.


�� 28.10.2025 — Criminal status persistence overhaul
  • ���� Русский:
    • Криминальные и убийственные флаги теперь переиспользуют существующие предметы памяти: на слоях `LAYER_FLAG_Criminal` и `LAYER_FLAG_Murders` хранится ссылка на владельца, поэтому статус переживает сохранения, выход из игры и смерть.
    • При логине предмет убийственного таймера продолжает отсчёт только если в нём был сохранён остаток времени, а сами таймеры тикут даже в виде призрака, что исключает «заморозку» криминального статуса.
    • Фамы и киллы делятся между всеми нападавшими в радиусе 16 тайлов: в лог попадут все участники, владельцы берсерк-петов получат кредит за убийство, а награда за славу автоматически делится поровну.
    • Атака по синему персонажу немедленно выдаёт статус [criminal]: даже если жертва — игрок, нападавший увидит сообщение «Criminal!» и станет серым для всех свидетелей.
    • Предупреждение «Murder!» появляется сразу после первого убийства невиновного персонажа, не дожидаясь присвоения полного статуса убийцы.
  • ���� English:
    • Criminal and murder flag items are now reused instead of recreated: both the `LAYER_FLAG_Criminal` and `LAYER_FLAG_Murders` memories keep a link to their owner, so the status survives world saves, logout, and even death.
    • On login the murder timer only resumes when a stored balance exists, and the decay timers continue to tick while the character is a ghost, preventing the criminal state from freezing.
    • Fame and kill credit are shared across every attacker within 16 tiles: the kill log lists all contributors, berserk-pet owners inherit their pet kills, and fame rewards are split evenly between qualifying participants.
    • Striking an innocent (blue) character now flags the aggressor as [criminal] immediately, showing the "Criminal!" message and turning the attacker grey even when the victim is another player.
    • The "Murder!" warning now pops up right after a player's first innocent kill instead of waiting for the murderer flag threshold.


�� 27.10.2025 — Safe-region combat lockdown
  • ���� Русский:
    • Заблокирована любая агрессия в безопасных регионах: персонажи и питомцы больше не могут начинать бой или отвечать на провокацию, если хотя бы одна сторона находится в зоне с флагом `REGION_FLAG_SAFE`.
    • Игроки и хозяева питомцев получают стандартное сообщение о запрете, чтобы сразу понимать, почему удар не прошёл.
  • ���� English:
    • Prevented every aggressive action inside safe regions: characters and pets can no longer start or retaliate when either participant stands in an area flagged with `REGION_FLAG_SAFE`.
    • Delivered the familiar "action blocked" system message to the attacker, the pet's owner, and any player target so the restriction is obvious in-game.


�� 27.10.2025 — HitTry trigger engine port & Attack trigger overhaul
  • ���� Русский:
    • Добавлен боевой триггер `@HitTry`: перед расчётом удара сервер вызывает скрипт, передаёт цель через `SRC/ARGO` и уважает `RETURN 1`, чтобы превратить попытку в гарантированный промах.
    • Обновлена документация (`docs/hit_try_trigger_en.md`, `docs/ru/hit_try_trigger_ru.md`, раздел `@HitTry` в `docs/script-triggers.md`), описывающая фактическое поведение триггера без упоминания несуществующих помощников.
  • ���� English:
    • Added the `@HitTry` combat trigger: the server now invokes scripts just before a melee swing resolves, exposes the defender through `SRC/ARGO`, and honours `RETURN 1` as a forced miss.
    • Rewrote the documentation (`docs/hit_try_trigger_en.md`, `docs/ru/hit_try_trigger_ru.md`, and the `@HitTry` entry in `docs/script-triggers.md`) so it matches the simplified implementation.


�� 26.10.2025 — Script trigger reference refresh
  • ���� Русский:
    • Зарегистрирован триггер `@CalcDamage` на персонажах (`CTRIG_CalcDamage`): событие запускается после обработки оружия, `SRC` ссылается на защищающегося, а `ARGN1` содержит рассчитанный урон, который можно изменить или сбросить через `RETURN 1`.
    • Исправлен `@CalcDamage` на оружии: скрипт снова вызывается до подсчёта базового урона, получает защитника через `ARGN1` и может модифицировать `MOREX/MOREZ` перед тем, как сервер применит атаку.
    • Добавлен временный параметр `MORECALCDMG` с диапазоном ±10 000: он доступен только внутри `ONTRIGGER=@CalcDamage` на оружии и сбрасывается после удара, позволяя задавать крупные бонусы поверх `MOREZ`.
    • Обновлена документация [`docs/script-triggers.md`](docs/script-triggers.md) и [`docs/ru/script-triggers.md`](docs/ru/script-triggers.md): описан порядок вызова (оружие → персонаж), доступные аргументы и поддержка синтаксиса `ONTRIGGER=@CalcDamage`.
  • ���� English:
    • Registered the `@CalcDamage` character hook (`CTRIG_CalcDamage`): it now fires after the weapon finishes, exposes the defender via `SRC`, and lets scripts rewrite the pending damage in `ARGN1` or cancel the swing with `RETURN 1`.
    • Restored the weapon-side `@CalcDamage` trigger so it runs before the base damage is computed, passes the defender pointer in `ARGN1`, and applies any `MOREX/MOREZ` adjustments supplied by scripts.
    • Added a transient `MORECALCDMG` helper (±10 000 range) that is available only while the weapon-side `ONTRIGGER=@CalcDamage` is executing, letting scripts stack large bonuses that are cleared after the swing.
    • Updated [`docs/script-triggers.md`](docs/script-triggers.md) and its Russian counterpart to document the new firing order (weapon → character), the available arguments, and the accepted `ONTRIGGER=@CalcDamage` header.


�� 30.10.2025 — Remote console inventory guide
  • ���� Русский:
    • Раздел «Шпаргалка по управлению персонажами и инвентарём» переведён в таблицу: отдельные строки показывают команды поиска UID, `NEWITEM`, проверки рюкзака и правки свойств прямо из консоли.
    • Руководство доступно в [`docs/remote-console.md`](docs/remote-console.md) и переведено на русский в [`docs/ru/remote-console.md`](docs/ru/remote-console.md).
    • Вместе с релизом появились шифрованная SSH-консоль и поставляемый клиент `sphereadmin`, чтобы администраторы могли подключаться безопасно "из коробки".
  • ���� English:
    • Reworked the "Character and inventory management" cheat sheet into a compact command table that shows the verbs to resolve UIDs, spawn items with `NEWITEM`, audit backpacks, and edit item properties straight from the SSH session.
    • The reference lives in [`docs/remote-console.md`](docs/remote-console.md) with a Russian translation at [`docs/ru/remote-console.md`](docs/ru/remote-console.md).
    • Bundled the official `sphereadmin` console client and enabled the new encrypted SSH transport so administrators can connect securely out of the box.


�� 25.10.2025 — Player language toggle command
  • ���� Русский:
    • Добавлена команда `.lang`/`/lang` для переключения языка аккаунта между `RUS` и `ENU` с задержкой в пять секунд и предупреждением `not to fast` при попытке спама.
    • Подтверждения смены языка теперь приходят на русском и английском сразу, чтобы игроки всегда понимали результат.
    • Подготовлена документация по использованию команды: [`docs/lang-command.md`](docs/lang-command.md) и [`docs/ru/lang-command.md`](docs/ru/lang-command.md).
  • ���� English:
    • Added a `/lang` (and `.lang`) console command that lets players switch their account language between `RUS` and `ENU`, enforcing a five-second cooldown and showing the `not to fast` warning when spammed.
    • Language change confirmations now include both English and Russian lines so the outcome is obvious regardless of the active locale.
    • Published documentation covering the feature in [`docs/lang-command.md`](docs/lang-command.md) and its Russian translation [`docs/ru/lang-command.md`](docs/ru/lang-command.md).


�� 25.10.2025 — Combat visibility safeguards
  • ���� Русский:
    • Исправлена обработка команды атаки: теперь персонаж атакует только тех, кого действительно видит, поэтому исчезает поворот к целям за пределами видимости.
  • ���� English:
    • Fixed attack command handling so a character only attacks targets it can actually see, preventing forced turning toward victims outside the visibility range.


�� 25.10.2025 — Legacy account auto-update
  • ���� Русский:
    • Сервер раз в секунду проверяет `SPHEREacct.scp` и автоматически запускает `/ACCOUNT UPDATE`, как только появляются новые секции, поэтому правки аккаунтов применяются без участия администратора.
    • Обновлена логика сохранения: изменения из `SPHEREacct.scp` теперь всегда подхватываются даже при активном MySQL-хранилище, а файл изменений очищается после успешной синхронизации.
    • Добавлена документация по формату `SPHEREacct.scp` — см. руководство [`docs/account-change-file.md`](docs/account-change-file.md) и перевод [`docs/ru/account-change-file.md`](docs/ru/account-change-file.md).
  • ���� English:
    • The shard now polls `SPHEREacct.scp` every second and fires `/ACCOUNT UPDATE` automatically whenever new sections appear, so queued account edits are merged without manual intervention.
    • Save logic has been adjusted so legacy change sections are applied even when MySQL storage is enabled, and the change file is cleared once synchronization succeeds.
    • New documentation explains the `SPHEREacct.scp` format; see [`docs/account-change-file.md`](docs/account-change-file.md) and the Russian translation [`docs/ru/account-change-file.md`](docs/ru/account-change-file.md).


�� 22.10.2025 — Connection limit guardrails
  • ���� Русский:
    • Задокументированы новые параметры очереди входа `CLIENTMAXIP`, `CONNECTINGMAX` и `CONNECTINGMAXIP` в руководстве [`docs/connection-limits.md`](docs/connection-limits.md) и в переводе [`docs/ru/connection-limits.md`](docs/ru/connection-limits.md).
    • Описан порядок проверки ограничений и показаны рекомендуемые пороги для частных, маленьких и публичных шардов.
    • Добавлена расшифровка предупреждений `Connection ... rejected`, чтобы администраторам было легче диагностировать отказ в подключении.
  • ���� English:
    • Documented the `CLIENTMAXIP`, `CONNECTINGMAX` and `CONNECTINGMAXIP` configuration keys in [`docs/connection-limits.md`](docs/connection-limits.md) and its Russian counterpart [`docs/ru/connection-limits.md`](docs/ru/connection-limits.md).
    • Explained the evaluation order and provided suggested thresholds for private testing shards, small communities and larger public servers.
    • Clarified the `Connection ... rejected` log message so operators can quickly identify which threshold needs attention.


�� 21.10.2025 — Speech colour permissions
  • ���� Русский:
    • Задокументирована функция `CClient::ResolveSpeechColor`, чтобы администраторам было понятно, как сервер нормализует цвет речи и когда сохраняет оттенок, выбранный клиентом.
    • Добавлено руководство [`docs/speech-color.md`](docs/speech-color.md) с пошаговыми примерами выдачи временного разрешения на клиентский цвет речи.
    • Уточнено поведение разрешающего слоя: предмет на `LAYER_FLAG_SpeechColor` остаётся на персонаже даже после смерти и действует до истечения таймера.
    • Добавлен пример скриптового токена в формате `[ITEM i_speechcolor_token]`, который навешивает слой на время и позволяет обычным игрокам выбирать цвет через клиент до срабатывания таймера.
  • ���� English:
    • Documented `CClient::ResolveSpeechColor` so shard owners can see how the server sanitises speech hues and when it preserves the client-selected colour.
    • Added a bilingual guide ([`docs/speech-color.md`](docs/speech-color.md)) that walks through granting temporary client-side colour control via scripts.
    • Clarified the permission layer behaviour: an item on `LAYER_FLAG_SpeechColor` now stays with the character through death until its timer expires.
    • Provided a sample `[ITEM i_speechcolor_token]` script token that equips the layer for a limited time so regular players can pick their colour in the client until the timer fires.


�� 20.10.2025 — Resync workflow documentation
  • ���� Русский:
    • Добавлено руководство по жизненному циклу ресинка, описывающее паузу, фоновую перезагрузку и возобновление работы сервера.
    • Опубликован перевод руководства на русский язык для локализованной документации.
    • Содержание подключено к оглавлению `docs/README.md`, чтобы администраторы могли быстро найти материал.
    • Обновлена реализация ресинка: тяжёлая перезагрузка выполняется в фоновом потоке, чтобы сервер оставался отзывчивым.
    • Ускорена перезагрузка скриптов: `LoadScripts()` теперь открывает файлы параллельно в нескольких потоках, снижая общее время ресинка.
    • Консольная команда `R` теперь сама инициирует паузу и перезапуск, поэтому уведомление «Resync Complete» приходит без повторного ввода команды.
  • ���� English:
    • Added a resync lifecycle guide that explains the pause, background reload and resume phases of the asynchronous workflow.
    • Provided a Russian translation so the localized documentation stays in sync.
    • Linked the new guides from `docs/README.md` to keep them discoverable for shard operators.
    • Updated the resync implementation to run the heavy reload work in a background thread so the server remains responsive.
    • Sped up script reloads by fanning `LoadScripts()` across multiple threads so resync cycles finish faster.
    • The console `R` command now drives the full pause/reload cycle in one press, so "Resync Complete" appears without issuing the command twice.


�� 19.10.2025 — Stone Wall respects ghosts
  • ���� Русский:
    • Поле заклинания «Стена из камня» больше не пропадает под призраками: оно создаётся даже если цель — гост.
  • ���� English:
    • The "Wall of Stone" field now materialises even when the tile is occupied by a ghostly player instead of fizzling away.


�� 16.10.2025 — Unified help request gump
  • ���� Русский:
    • Пакет запроса помощи клиента (`XCMD_HelpPage`) теперь открывает тот же гамп, что и команда `/HELP`, обеспечивая единое поведение между меню и консольной командой.
  • ���� English:
    • The client help request packet (`XCMD_HelpPage`) now opens the same gump as the `/HELP` command, providing consistent behaviour between the menu and the console command.


�� 15.10.2025 — Spirit Speak ghost chat
  • ���� Русский:
    • Игроки со 100.0 навыка `Spirit Speak` теперь без активации умения понимают речь призраков; персонажам с меньшим уровнем нужно поддерживать эффект навыка, иначе сообщения останутся случайным набором `O`/`o`.
  • ���� English:
    • Characters who mastered `Spirit Speak` at 100.0 skill now decipher ghost speech passively, while those below Grandmaster still hear it as random `O`/`o` gibberish unless the skill effect is active.


�� 14.10.2025 — Script resync triggers
  • ���� Русский:
    • После пересинхронизации определений `ReLoadBases()` теперь принудительно вызывает триггеры `@Load` и `@Resync` для каждого реального предмета и персонажа, чтобы скрипты могли переинициализировать временное состояние.
  • ���� English:
    • Once `ReLoadBases()` refreshes object definitions during a resync, the server now forces both `@Load` and `@Resync` triggers on every real item and character so scripts can rebuild their transient state.


�� 13.10.2025 — Walk speed guard polish
  • ���� Русский:
    • Исправлена компиляция `CClient::Event_Walking` под Windows: проверка каталога использует корректные символьные литералы и создаёт путь `logs/cheater/` при необходимости.
    • Обновлена документация (`docs/walk-speed-guard.md`, `docs/ru/walk-speed-guard.md`) с описанием ключей `WALKSPEED`/`WALKTIME`, механики окна и журналов нарушителей.
    • В `spheredef.ini` уточнены комментарии к настройкам защиты, чтобы администраторы понимали перевод миллисекунд в шаговый бюджет.
  • ���� English:
    • Fixed the Windows build of `CClient::Event_Walking` by normalising path handling and ensuring the `logs/cheater/` directory exists before writing.
    • Added dedicated documentation (`docs/walk-speed-guard.md`, `docs/ru/walk-speed-guard.md`) that walks through the `WALKSPEED`/`WALKTIME` keys, runtime behaviour and cheat logging output.
    • Clarified the `spheredef.ini` comments for the anti-speedhack guard so shard operators know how the millisecond values translate into the internal step budget.


�� 12.10.2025 — Scriptable name hue overrides
  • ���� Русский:
    • Добавлено новое свойство [`NAMEHUE`](docs/ru/namehue.md) для персонажей, позволяющее задавать цвет их имени в шестнадцатеричном формате (например, `NAMEHUE=021`).
    • Параметр сохраняется в мире и распространяется на цвет трупов; чтобы сбросить настройку, оставьте аргументы пустыми или передайте `-1`.
    • Цвет имени теперь имеет приоритет над обычным расчётом нотаритета, что облегчает создание особых NPC и титулованных персонажей.
  • ���� English:
    • Introduced a [`NAMEHUE`](docs/namehue.md) character property so scripters can assign custom name colors using hexadecimal values (for example, `NAMEHUE=021`).
    • The hue persists with world saves and applies to corpse nameplates; clear it by omitting the argument or passing `-1`.
    • When set, the override now takes precedence over notoriety colors, simplifying bespoke NPC and titled character setups.


�� 08.10.2025 — Legacy world auto-import
  • ���� Русский:
    • Настроен автоматический импорт `sphereworld.scp` при пустых таблицах MySQL, чтобы перенос в базу происходил без ручных команд.
    • Добавлена конвертация текстов объектов в UTF-8 во время миграции, включая резервное преобразование из Windows-1251 для старых скриптов.
    • Известная проблема: очень крупные миры могут по-прежнему прерывать транзакцию сохранения из-за перегруженных секторов (`Sector too complex`). Исправление в работе.
  • ���� English:
    • Enabled automatic `sphereworld.scp` imports whenever the MySQL world tables are empty so the migration runs without manual commands.
    • Normalised object text to UTF-8 during migration, including a Windows-1251 fallback for legacy scripts.
    • Known issue: extremely large worlds may still roll back the save transaction because of overloaded sectors (`Sector too complex`). A fix is being worked on.


�� 07.10.2025 — MySQL persistence groundwork
  • ���� Русский:
    • Добавлена поддержка хранения игровых данных в базе данных MySQL.
    • *TODO:* Привести реализацию в работоспособное состояние с полным сохранением игровых сценариев в БД.
  • ���� English:
    • Added support for storing game data in a MySQL database.
    • *TODO:* Bring the implementation into a working state with full persistence of game scenarios in the database.


�� 07.10.2025 — DYEHAIR crash fix
  • ���� Русский:
    • Исправлена обработка команды `DYEHAIR`, из-за которой сервер падал при попытке покрасить волосы некорректным цветом.
  • ���� English:
    • Fixed the `DYEHAIR` command crashing the server when attempting to dye hair with an invalid color value.


�� 07.10.2025 — Client key loading message
  • ���� Русский:
    • Синхронизирован вывод загрузки клиентских ключей с обработкой `sphere.ini`, чтобы сообщение гарантированно появлялось только после баннера с версией сервера, даже при повторном чтении конфигурации.
    • Обновлена и расширена документация по `KEYSENABLE` и `keys.ini`.
    • *TODO:* Автоматизировать обновление списка ключей при смене версии клиента через консольную команду.
  • ���� English:
    • Aligned the client key loading message with `sphere.ini` processing so it appears only after the server version banner, even when the configuration is re-read.
    • Updated and expanded the documentation for `KEYSENABLE` and `keys.ini`.
    • *TODO:* Automate refreshing the key list when the client version changes via a console command.


�� 03.10.2025 — MySQL configuration documentation
  • ���� Русский:
    • Документированы новые параметры конфигурации MySQL (`MYSQL`, `MYSQLHOST`, `MYSQLPORT`, `MYSQLUSER`, `MYSQLPASS`, `MYSQLDB`, `MYSQLPREFIX`) из `spheredef.ini`.
    • Описана расширенная схема базы данных (аккаунты, объекты мира, страницы GM, таймеры, таблицы метаданных) и опубликован пример дампа в `docs/mysql-schema.sql`.
    • Шаги обновления для администраторов шарда:
    1. Установить MySQL Server 5.7+ (или MariaDB 10.3+) и соответствующие клиентские библиотеки.
    2. Обновить `spheredef.ini`, указав новые ключи, и один раз запустить сервер для выполнения миграций.
    3. Выполнить `SAVE 0`, чтобы заполнить таблицы мира, затем убедиться, что запрос ``SELECT id, version FROM `<prefix>schema_version`;`` возвращает версию 3 и флаг импорта 1.
  • ���� English:
    • Documented the new MySQL configuration parameters (`MYSQL`, `MYSQLHOST`, `MYSQLPORT`, `MYSQLUSER`, `MYSQLPASS`, `MYSQLDB`, `MYSQLPREFIX`) exposed via `spheredef.ini`.
    • Described the expanded database schema (accounts, world objects, GM pages, timers, metadata tables) and published an example dump at `docs/mysql-schema.sql`.
    • Upgrade steps for shard administrators:
    1. Install MySQL Server 5.7+ (or MariaDB 10.3+) along with the matching client libraries.
    2. Update `spheredef.ini` with the new keys and run the server once to execute the migrations.
    3. Execute `SAVE 0` to populate the world tables, then verify ``SELECT id, version FROM `<prefix>schema_version`;`` returns version 3 and import flag 1.


�� 04.11.2024 — Necromancy spellbook setup
  • ���� Русский:
    • Подготовка некро-книги.
    • *TODO:* Оформить полноценную книгу с виспом и другими элементами.
  • ���� English:
    • Prepared the groundwork for the necromancy spellbook.
    • *TODO:* Build out the complete book with the wisp and related elements.


�� 25.10.2024 — Duplicate name checks
  • ���� Русский:
    • Выпущена функция проверки дублирующихся имён.
    • *TODO:* Настроить единый путь поиска `sphereworld.scp`, добавить сообщение клиенту при попытке создать дубликат имени.
  • ���� English:
    • Released the duplicate name checking feature.
    • *TODO:* Configure a consistent lookup path for `sphereworld.scp` and display a client message when a duplicate name is attempted.


�� 24.10.2024 — Initial duplicate name guard
  • ���� Русский:
    • Добавлена проверка на дублирование имён.
    • *TODO:* Реализовать стандартную проверку через метод `IsNameTaken`.
  • ���� English:
    • Added a duplicate name verification.
    • *TODO:* Implement the standard check via the `IsNameTaken` method.


�� 23.10.2024 — Memory fixes and localization
  • ���� Русский:
    • Исправлены утечки памяти, вызванные скриптами.
    • Очистка мусора.
    • Добавлена поддержка нескольких языков.
    • *TODO:* Настроить клиентскую команду `lang` (HELP GUMP).
  • ���� English:
    • Fixed memory leaks caused by scripts.
    • Performed garbage collection.
    • Added multi-language support.
    • *TODO:* Configure the client `lang` command (HELP GUMP).


�� 21.10.2024 — PvP persistence and console colors
  • ���� Русский:
    • PvP-очки теперь корректно сохраняются в `sphereworld`.
    • Добавлена цветовая подсветка в консоли.
  • ���� English:
    • PvP points now save correctly in `sphereworld`.
    • Added colorized console output.


�� 18.10.2024 — PvP points saving
  • ���� Русский:
    • Функционал требует тестирования, в текущей версии работает некорректно.
    • *TODO:* Сохранять значения `PVPPOINTS` в `sphereworld` как `PVPPOINTS=VALUE`.
  • ���� English:
    • Feature requires testing; the current implementation behaves incorrectly.
    • *TODO:* Persist `PVPPOINTS` values in `sphereworld` as `PVPPOINTS=VALUE`.


--------------------
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Wap
сообщение 15.11.2025, 20:11
Сообщение #2


**********

Администратор Форума
Сообщений: 3.019
Регистрация: 22.12.2006
Группа: Администраторы
Наличность: 32161
Пользователь №: 9.227



Привет! Закрепил.


--------------------
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения

Ответить в эту темуОткрыть новую тему
5 чел. читают эту тему (гостей: 4, скрытых пользователей: 0)
Пользователей: 1 Old-safa

 

- Текстовая версия | Версия для КПК Сейчас: 16.12.2025, 15:59
Designed by Nickostyle