Skip to content

zedit: задокументировать поле "G) Оптимальное число игроков" (zone.group) #3527

Description

@bylins

Поле

В zedit пункт G) Оптимальное число игроков правит zone.group (src/engine/olc/zedit.cpp:946). Смысл нигде в редакторе/хелпах не пояснён, поэтому фиксирую, на что оно реально влияет.

1 = соло-зона, >1 = групповая/рейдовая на указанное число игроков. При загрузке 0 нормализуется в 1 («группы в 0 рыл не бывает»): boot_data_files.cpp:1605, yaml_world_data_source.cpp:578, sqlite_world_data_source.cpp:686.

На что влияет

  1. Опыт за мобов зоны (главное). src/gameplay/core/experience.cpp:583-585:
    обычно опыт = exp_моба / число_участников, но если zone.group > 1 и участников меньше, чем zone.group, то делитель = zone.group:

    if (GetZoneGroup(victim) > 1 && members < GetZoneGroup(victim))
        exp = victim->get_exp() / GetZoneGroup(victim);
    

    То есть планка: полный опыт с групп-зоны идёт только при наборе «оптимального» числа людей; в недоборе/соло опыт = exp_моба / group. Для зоны с G=16 соло-килл даёт 1/16 опыта.
    GetZoneGroup() берёт group из зоны моба: experience.cpp:47-57.

  2. Логика «напарника» / анти-абьюз саммонами. Для соло-зон (group < 2): experience.cpp:747 и :762 (раздача partner-exp, чтобы не абьюзили реколом лишних мемберов).

  3. Осмотр зоны. При group > 1 показывается «групповая на N человек»: src/gameplay/mechanics/sight.cpp:1398-1401.

  4. Информационный вывод богам/билдерам: do_stat.cpp:257, do_show.cpp:544, do_liblist.cpp:146, help.cpp:556,1301.

Предложение

Добавить короткую подсказку в zedit рядом с пунктом G (например: «1 = соло; >1 = групп/рейд на N, опыт в недоборе делится на N») и/или строку в хелп билдера по zedit.


Найдено при вопросе билдера «на что влияет это поле».

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions