nonebot-plugin-dnddicer 0.4.2__tar.gz → 0.4.4__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {nonebot_plugin_dnddicer-0.4.2 → nonebot_plugin_dnddicer-0.4.4}/CHANGELOG.md +41 -0
- {nonebot_plugin_dnddicer-0.4.2 → nonebot_plugin_dnddicer-0.4.4}/PKG-INFO +23 -10
- {nonebot_plugin_dnddicer-0.4.2 → nonebot_plugin_dnddicer-0.4.4}/README.md +22 -9
- {nonebot_plugin_dnddicer-0.4.2 → nonebot_plugin_dnddicer-0.4.4}/docs/guide/best-practices.md +1 -1
- {nonebot_plugin_dnddicer-0.4.2 → nonebot_plugin_dnddicer-0.4.4}/docs/guide/changelog.md +41 -0
- {nonebot_plugin_dnddicer-0.4.2 → nonebot_plugin_dnddicer-0.4.4}/docs/guide/character-card.md +14 -5
- {nonebot_plugin_dnddicer-0.4.2 → nonebot_plugin_dnddicer-0.4.4}/docs/guide/dm-settlement.md +17 -1
- {nonebot_plugin_dnddicer-0.4.2 → nonebot_plugin_dnddicer-0.4.4}/docs/guide/faq.md +35 -1
- {nonebot_plugin_dnddicer-0.4.2 → nonebot_plugin_dnddicer-0.4.4}/docs/guide/hp-advanced.md +18 -1
- {nonebot_plugin_dnddicer-0.4.2 → nonebot_plugin_dnddicer-0.4.4}/docs/guide/overview.md +18 -8
- {nonebot_plugin_dnddicer-0.4.2 → nonebot_plugin_dnddicer-0.4.4}/docs/guide/query.md +11 -5
- {nonebot_plugin_dnddicer-0.4.2 → nonebot_plugin_dnddicer-0.4.4}/docs/guide/quickstart.md +48 -2
- {nonebot_plugin_dnddicer-0.4.2 → nonebot_plugin_dnddicer-0.4.4}/docs/guide/weapons.md +91 -2
- {nonebot_plugin_dnddicer-0.4.2 → nonebot_plugin_dnddicer-0.4.4}/docs/index.md +1 -1
- nonebot_plugin_dnddicer-0.4.4/logo/dnddicer-logo-1536.png +0 -0
- nonebot_plugin_dnddicer-0.4.4/logo/dnddicer-logo-white-1536.png +0 -0
- nonebot_plugin_dnddicer-0.4.4/logo/dnddicer-logo.svg +177 -0
- nonebot_plugin_dnddicer-0.4.4/nonebot_plugin_dnddicer/card_geometry.py +81 -0
- {nonebot_plugin_dnddicer-0.4.2 → nonebot_plugin_dnddicer-0.4.4}/nonebot_plugin_dnddicer/commands/__init__.py +2 -0
- {nonebot_plugin_dnddicer-0.4.2 → nonebot_plugin_dnddicer-0.4.4}/nonebot_plugin_dnddicer/commands/atlas.py +1 -0
- {nonebot_plugin_dnddicer-0.4.2 → nonebot_plugin_dnddicer-0.4.4}/nonebot_plugin_dnddicer/commands/base.py +38 -5
- {nonebot_plugin_dnddicer-0.4.2 → nonebot_plugin_dnddicer-0.4.4}/nonebot_plugin_dnddicer/commands/battle.py +21 -18
- {nonebot_plugin_dnddicer-0.4.2 → nonebot_plugin_dnddicer-0.4.4}/nonebot_plugin_dnddicer/commands/bot.py +5 -8
- {nonebot_plugin_dnddicer-0.4.2 → nonebot_plugin_dnddicer-0.4.4}/nonebot_plugin_dnddicer/commands/character.py +13 -13
- {nonebot_plugin_dnddicer-0.4.2 → nonebot_plugin_dnddicer-0.4.4}/nonebot_plugin_dnddicer/commands/dnd.py +59 -25
- {nonebot_plugin_dnddicer-0.4.2 → nonebot_plugin_dnddicer-0.4.4}/nonebot_plugin_dnddicer/commands/group_config.py +5 -4
- nonebot_plugin_dnddicer-0.4.4/nonebot_plugin_dnddicer/commands/help.py +203 -0
- nonebot_plugin_dnddicer-0.4.4/nonebot_plugin_dnddicer/commands/help_layout.py +259 -0
- {nonebot_plugin_dnddicer-0.4.2 → nonebot_plugin_dnddicer-0.4.4}/nonebot_plugin_dnddicer/commands/hp.py +252 -89
- {nonebot_plugin_dnddicer-0.4.2 → nonebot_plugin_dnddicer-0.4.4}/nonebot_plugin_dnddicer/commands/initiative.py +14 -31
- nonebot_plugin_dnddicer-0.4.4/nonebot_plugin_dnddicer/commands/master.py +143 -0
- {nonebot_plugin_dnddicer-0.4.2 → nonebot_plugin_dnddicer-0.4.4}/nonebot_plugin_dnddicer/commands/npc.py +5 -7
- {nonebot_plugin_dnddicer-0.4.2 → nonebot_plugin_dnddicer-0.4.4}/nonebot_plugin_dnddicer/commands/query.py +44 -35
- {nonebot_plugin_dnddicer-0.4.2 → nonebot_plugin_dnddicer-0.4.4}/nonebot_plugin_dnddicer/commands/query_atlas.py +2 -2
- {nonebot_plugin_dnddicer-0.4.2 → nonebot_plugin_dnddicer-0.4.4}/nonebot_plugin_dnddicer/commands/query_common.py +19 -0
- {nonebot_plugin_dnddicer-0.4.2 → nonebot_plugin_dnddicer-0.4.4}/nonebot_plugin_dnddicer/commands/roll.py +7 -12
- {nonebot_plugin_dnddicer-0.4.2 → nonebot_plugin_dnddicer-0.4.4}/nonebot_plugin_dnddicer/commands/text.py +168 -11
- nonebot_plugin_dnddicer-0.4.4/nonebot_plugin_dnddicer/commands/weapon.py +1080 -0
- {nonebot_plugin_dnddicer-0.4.2 → nonebot_plugin_dnddicer-0.4.4}/nonebot_plugin_dnddicer/config.py +34 -1
- nonebot_plugin_dnddicer-0.4.4/nonebot_plugin_dnddicer/data/help_settings.py +100 -0
- {nonebot_plugin_dnddicer-0.4.2 → nonebot_plugin_dnddicer-0.4.4}/nonebot_plugin_dnddicer/data/query_settings.py +44 -25
- {nonebot_plugin_dnddicer-0.4.2 → nonebot_plugin_dnddicer-0.4.4}/nonebot_plugin_dnddicer/query/decode.py +234 -57
- {nonebot_plugin_dnddicer-0.4.2 → nonebot_plugin_dnddicer-0.4.4}/nonebot_plugin_dnddicer/query/locating.py +79 -1
- {nonebot_plugin_dnddicer-0.4.2 → nonebot_plugin_dnddicer-0.4.4}/nonebot_plugin_dnddicer/render/engine.py +28 -1
- {nonebot_plugin_dnddicer-0.4.2 → nonebot_plugin_dnddicer-0.4.4}/nonebot_plugin_dnddicer/render/layout.py +18 -9
- {nonebot_plugin_dnddicer-0.4.2 → nonebot_plugin_dnddicer-0.4.4}/nonebot_plugin_dnddicer/render/templates/books_card.css +3 -1
- nonebot_plugin_dnddicer-0.4.4/nonebot_plugin_dnddicer/render/templates/books_card.html +20 -0
- {nonebot_plugin_dnddicer-0.4.2 → nonebot_plugin_dnddicer-0.4.4}/nonebot_plugin_dnddicer/render/templates/rich_card.css +5 -1
- nonebot_plugin_dnddicer-0.4.4/nonebot_plugin_dnddicer/render/templates/rich_card.html +21 -0
- {nonebot_plugin_dnddicer-0.4.2 → nonebot_plugin_dnddicer-0.4.4}/nonebot_plugin_dnddicer/render/templates/rule_card.css +3 -1
- nonebot_plugin_dnddicer-0.4.4/nonebot_plugin_dnddicer/render/templates/rule_card.html +21 -0
- {nonebot_plugin_dnddicer-0.4.2 → nonebot_plugin_dnddicer-0.4.4}/nonebot_plugin_dnddicer/version.py +1 -1
- {nonebot_plugin_dnddicer-0.4.2 → nonebot_plugin_dnddicer-0.4.4}/tests/docs_examples/baseline/char_template.txt +3 -3
- {nonebot_plugin_dnddicer-0.4.2 → nonebot_plugin_dnddicer-0.4.4}/tests/docs_examples/baseline/dm_aoe.txt +1 -1
- nonebot_plugin_dnddicer-0.4.4/tests/docs_examples/baseline/dnd_times_over_limit.txt +6 -0
- nonebot_plugin_dnddicer-0.4.4/tests/docs_examples/baseline/hp_weapon_multi.txt +15 -0
- nonebot_plugin_dnddicer-0.4.4/tests/docs_examples/baseline/master_forward.txt +10 -0
- {nonebot_plugin_dnddicer-0.4.2 → nonebot_plugin_dnddicer-0.4.4}/tests/docs_examples/baseline/quickstart_bot_info.txt +1 -1
- nonebot_plugin_dnddicer-0.4.4/tests/docs_examples/baseline/weapon_fuzzy_match.txt +26 -0
- nonebot_plugin_dnddicer-0.4.4/tests/docs_examples/baseline/weapon_multi_attack.txt +9 -0
- nonebot_plugin_dnddicer-0.4.4/tests/docs_examples/baseline/weapon_multi_damage.txt +10 -0
- nonebot_plugin_dnddicer-0.4.4/tests/docs_examples/baseline/weapon_multi_mixed.txt +10 -0
- {nonebot_plugin_dnddicer-0.4.2 → nonebot_plugin_dnddicer-0.4.4}/tests/docs_examples/harness.py +26 -3
- {nonebot_plugin_dnddicer-0.4.2 → nonebot_plugin_dnddicer-0.4.4}/tests/docs_examples/scenarios.py +83 -0
- {nonebot_plugin_dnddicer-0.4.2 → nonebot_plugin_dnddicer-0.4.4}/tests/test_character_command.py +4 -4
- {nonebot_plugin_dnddicer-0.4.2 → nonebot_plugin_dnddicer-0.4.4}/tests/test_command_starts.py +8 -3
- nonebot_plugin_dnddicer-0.4.4/tests/test_config.py +64 -0
- {nonebot_plugin_dnddicer-0.4.2 → nonebot_plugin_dnddicer-0.4.4}/tests/test_dnd_command.py +97 -12
- nonebot_plugin_dnddicer-0.4.4/tests/test_help_command.py +456 -0
- nonebot_plugin_dnddicer-0.4.4/tests/test_help_layout.py +212 -0
- {nonebot_plugin_dnddicer-0.4.2 → nonebot_plugin_dnddicer-0.4.4}/tests/test_hp_command.py +219 -0
- nonebot_plugin_dnddicer-0.4.4/tests/test_master_command.py +386 -0
- {nonebot_plugin_dnddicer-0.4.2 → nonebot_plugin_dnddicer-0.4.4}/tests/test_query_atlas_command.py +57 -0
- {nonebot_plugin_dnddicer-0.4.2 → nonebot_plugin_dnddicer-0.4.4}/tests/test_query_command.py +145 -0
- {nonebot_plugin_dnddicer-0.4.2 → nonebot_plugin_dnddicer-0.4.4}/tests/test_query_decode.py +154 -0
- {nonebot_plugin_dnddicer-0.4.2 → nonebot_plugin_dnddicer-0.4.4}/tests/test_query_index_command.py +13 -11
- nonebot_plugin_dnddicer-0.4.4/tests/test_query_locating.py +50 -0
- {nonebot_plugin_dnddicer-0.4.2 → nonebot_plugin_dnddicer-0.4.4}/tests/test_query_source.py +60 -22
- nonebot_plugin_dnddicer-0.4.4/tests/test_render_font.py +46 -0
- nonebot_plugin_dnddicer-0.4.4/tests/test_render_templates.py +145 -0
- {nonebot_plugin_dnddicer-0.4.2 → nonebot_plugin_dnddicer-0.4.4}/tests/test_weapon_command.py +394 -0
- nonebot_plugin_dnddicer-0.4.2/nonebot_plugin_dnddicer/commands/help.py +0 -63
- nonebot_plugin_dnddicer-0.4.2/nonebot_plugin_dnddicer/commands/weapon.py +0 -514
- nonebot_plugin_dnddicer-0.4.2/nonebot_plugin_dnddicer/render/templates/books_card.html +0 -26
- nonebot_plugin_dnddicer-0.4.2/nonebot_plugin_dnddicer/render/templates/rich_card.html +0 -26
- nonebot_plugin_dnddicer-0.4.2/nonebot_plugin_dnddicer/render/templates/rule_card.html +0 -36
- nonebot_plugin_dnddicer-0.4.2/tests/test_help_command.py +0 -106
- {nonebot_plugin_dnddicer-0.4.2 → nonebot_plugin_dnddicer-0.4.4}/.gitattributes +0 -0
- {nonebot_plugin_dnddicer-0.4.2 → nonebot_plugin_dnddicer-0.4.4}/.github/workflows/docs.yml +0 -0
- {nonebot_plugin_dnddicer-0.4.2 → nonebot_plugin_dnddicer-0.4.4}/.github/workflows/release.yml +0 -0
- {nonebot_plugin_dnddicer-0.4.2 → nonebot_plugin_dnddicer-0.4.4}/.github/workflows/test.yml +0 -0
- {nonebot_plugin_dnddicer-0.4.2 → nonebot_plugin_dnddicer-0.4.4}/.gitignore +0 -0
- {nonebot_plugin_dnddicer-0.4.2 → nonebot_plugin_dnddicer-0.4.4}/.python-version +0 -0
- {nonebot_plugin_dnddicer-0.4.2 → nonebot_plugin_dnddicer-0.4.4}/LICENSE +0 -0
- {nonebot_plugin_dnddicer-0.4.2 → nonebot_plugin_dnddicer-0.4.4}/docs/.vitepress/config.mts +0 -0
- {nonebot_plugin_dnddicer-0.4.2 → nonebot_plugin_dnddicer-0.4.4}/docs/.vitepress/plugins/chat-container.mts +0 -0
- {nonebot_plugin_dnddicer-0.4.2 → nonebot_plugin_dnddicer-0.4.4}/docs/.vitepress/scripts/sync-changelog.mjs +0 -0
- {nonebot_plugin_dnddicer-0.4.2 → nonebot_plugin_dnddicer-0.4.4}/docs/.vitepress/theme/index.ts +0 -0
- {nonebot_plugin_dnddicer-0.4.2 → nonebot_plugin_dnddicer-0.4.4}/docs/.vitepress/theme/style.css +0 -0
- {nonebot_plugin_dnddicer-0.4.2 → nonebot_plugin_dnddicer-0.4.4}/docs/guide/battle.md +0 -0
- {nonebot_plugin_dnddicer-0.4.2 → nonebot_plugin_dnddicer-0.4.4}/docs/guide/cast.md +0 -0
- {nonebot_plugin_dnddicer-0.4.2 → nonebot_plugin_dnddicer-0.4.4}/docs/guide/checks.md +0 -0
- {nonebot_plugin_dnddicer-0.4.2 → nonebot_plugin_dnddicer-0.4.4}/docs/guide/dm-proxy.md +0 -0
- {nonebot_plugin_dnddicer-0.4.2 → nonebot_plugin_dnddicer-0.4.4}/docs/guide/hp.md +0 -0
- {nonebot_plugin_dnddicer-0.4.2 → nonebot_plugin_dnddicer-0.4.4}/docs/guide/initiative.md +0 -0
- {nonebot_plugin_dnddicer-0.4.2 → nonebot_plugin_dnddicer-0.4.4}/docs/guide/query-scope.md +0 -0
- {nonebot_plugin_dnddicer-0.4.2 → nonebot_plugin_dnddicer-0.4.4}/docs/guide/roll-advanced.md +0 -0
- {nonebot_plugin_dnddicer-0.4.2 → nonebot_plugin_dnddicer-0.4.4}/docs/guide/roll-basics.md +0 -0
- {nonebot_plugin_dnddicer-0.4.2 → nonebot_plugin_dnddicer-0.4.4}/docs/guide/self-host.md +0 -0
- {nonebot_plugin_dnddicer-0.4.2 → nonebot_plugin_dnddicer-0.4.4}/nonebot_plugin_dnddicer/__init__.py +0 -0
- {nonebot_plugin_dnddicer-0.4.2 → nonebot_plugin_dnddicer-0.4.4}/nonebot_plugin_dnddicer/character/__init__.py +0 -0
- {nonebot_plugin_dnddicer-0.4.2 → nonebot_plugin_dnddicer-0.4.4}/nonebot_plugin_dnddicer/character/constants.py +0 -0
- {nonebot_plugin_dnddicer-0.4.2 → nonebot_plugin_dnddicer-0.4.4}/nonebot_plugin_dnddicer/character/models.py +0 -0
- {nonebot_plugin_dnddicer-0.4.2 → nonebot_plugin_dnddicer-0.4.4}/nonebot_plugin_dnddicer/character/services.py +0 -0
- {nonebot_plugin_dnddicer-0.4.2 → nonebot_plugin_dnddicer-0.4.4}/nonebot_plugin_dnddicer/commands/roll_parse_args.py +0 -0
- {nonebot_plugin_dnddicer-0.4.2 → nonebot_plugin_dnddicer-0.4.4}/nonebot_plugin_dnddicer/data/__init__.py +0 -0
- {nonebot_plugin_dnddicer-0.4.2 → nonebot_plugin_dnddicer-0.4.4}/nonebot_plugin_dnddicer/data/characters.py +0 -0
- {nonebot_plugin_dnddicer-0.4.2 → nonebot_plugin_dnddicer-0.4.4}/nonebot_plugin_dnddicer/data/group_config.py +0 -0
- {nonebot_plugin_dnddicer-0.4.2 → nonebot_plugin_dnddicer-0.4.4}/nonebot_plugin_dnddicer/data/initiative.py +0 -0
- {nonebot_plugin_dnddicer-0.4.2 → nonebot_plugin_dnddicer-0.4.4}/nonebot_plugin_dnddicer/data/npc_health.py +0 -0
- {nonebot_plugin_dnddicer-0.4.2 → nonebot_plugin_dnddicer-0.4.4}/nonebot_plugin_dnddicer/data/schema.py +0 -0
- {nonebot_plugin_dnddicer-0.4.2 → nonebot_plugin_dnddicer-0.4.4}/nonebot_plugin_dnddicer/data/service_state.py +0 -0
- {nonebot_plugin_dnddicer-0.4.2 → nonebot_plugin_dnddicer-0.4.4}/nonebot_plugin_dnddicer/engine/__init__.py +0 -0
- {nonebot_plugin_dnddicer-0.4.2 → nonebot_plugin_dnddicer-0.4.4}/nonebot_plugin_dnddicer/engine/roll/__init__.py +0 -0
- {nonebot_plugin_dnddicer-0.4.2 → nonebot_plugin_dnddicer-0.4.4}/nonebot_plugin_dnddicer/engine/roll/_string_utils.py +0 -0
- {nonebot_plugin_dnddicer-0.4.2 → nonebot_plugin_dnddicer-0.4.4}/nonebot_plugin_dnddicer/engine/roll/ast_engine/__init__.py +0 -0
- {nonebot_plugin_dnddicer-0.4.2 → nonebot_plugin_dnddicer-0.4.4}/nonebot_plugin_dnddicer/engine/roll/ast_engine/adapter.py +0 -0
- {nonebot_plugin_dnddicer-0.4.2 → nonebot_plugin_dnddicer-0.4.4}/nonebot_plugin_dnddicer/engine/roll/ast_engine/ast_nodes.py +0 -0
- {nonebot_plugin_dnddicer-0.4.2 → nonebot_plugin_dnddicer-0.4.4}/nonebot_plugin_dnddicer/engine/roll/ast_engine/errors.py +0 -0
- {nonebot_plugin_dnddicer-0.4.2 → nonebot_plugin_dnddicer-0.4.4}/nonebot_plugin_dnddicer/engine/roll/ast_engine/evaluator.py +0 -0
- {nonebot_plugin_dnddicer-0.4.2 → nonebot_plugin_dnddicer-0.4.4}/nonebot_plugin_dnddicer/engine/roll/ast_engine/limits.py +0 -0
- {nonebot_plugin_dnddicer-0.4.2 → nonebot_plugin_dnddicer-0.4.4}/nonebot_plugin_dnddicer/engine/roll/ast_engine/parser.py +0 -0
- {nonebot_plugin_dnddicer-0.4.2 → nonebot_plugin_dnddicer-0.4.4}/nonebot_plugin_dnddicer/engine/roll/ast_engine/preprocessor.py +0 -0
- {nonebot_plugin_dnddicer-0.4.2 → nonebot_plugin_dnddicer-0.4.4}/nonebot_plugin_dnddicer/engine/roll/ast_engine/trace.py +0 -0
- {nonebot_plugin_dnddicer-0.4.2 → nonebot_plugin_dnddicer-0.4.4}/nonebot_plugin_dnddicer/engine/roll/default_dice.py +0 -0
- {nonebot_plugin_dnddicer-0.4.2 → nonebot_plugin_dnddicer-0.4.4}/nonebot_plugin_dnddicer/engine/roll/karma_runtime.py +0 -0
- {nonebot_plugin_dnddicer-0.4.2 → nonebot_plugin_dnddicer-0.4.4}/nonebot_plugin_dnddicer/engine/roll/result.py +0 -0
- {nonebot_plugin_dnddicer-0.4.2 → nonebot_plugin_dnddicer-0.4.4}/nonebot_plugin_dnddicer/engine/roll/roll_config.py +0 -0
- {nonebot_plugin_dnddicer-0.4.2 → nonebot_plugin_dnddicer-0.4.4}/nonebot_plugin_dnddicer/engine/roll/roll_const.py +0 -0
- {nonebot_plugin_dnddicer-0.4.2 → nonebot_plugin_dnddicer-0.4.4}/nonebot_plugin_dnddicer/engine/roll/roll_utils.py +0 -0
- {nonebot_plugin_dnddicer-0.4.2 → nonebot_plugin_dnddicer-0.4.4}/nonebot_plugin_dnddicer/engine/roll/sequence_runtime.py +0 -0
- {nonebot_plugin_dnddicer-0.4.2 → nonebot_plugin_dnddicer-0.4.4}/nonebot_plugin_dnddicer/initiative/__init__.py +0 -0
- {nonebot_plugin_dnddicer-0.4.2 → nonebot_plugin_dnddicer-0.4.4}/nonebot_plugin_dnddicer/initiative/models.py +0 -0
- {nonebot_plugin_dnddicer-0.4.2 → nonebot_plugin_dnddicer-0.4.4}/nonebot_plugin_dnddicer/platform/__init__.py +0 -0
- {nonebot_plugin_dnddicer-0.4.2 → nonebot_plugin_dnddicer-0.4.4}/nonebot_plugin_dnddicer/platform/onebot_v11.py +0 -0
- {nonebot_plugin_dnddicer-0.4.2 → nonebot_plugin_dnddicer-0.4.4}/nonebot_plugin_dnddicer/query/__init__.py +0 -0
- {nonebot_plugin_dnddicer-0.4.2 → nonebot_plugin_dnddicer-0.4.4}/nonebot_plugin_dnddicer/query/atlas.py +0 -0
- {nonebot_plugin_dnddicer-0.4.2 → nonebot_plugin_dnddicer-0.4.4}/nonebot_plugin_dnddicer/query/books.py +0 -0
- {nonebot_plugin_dnddicer-0.4.2 → nonebot_plugin_dnddicer-0.4.4}/nonebot_plugin_dnddicer/query/fetch.py +0 -0
- {nonebot_plugin_dnddicer-0.4.2 → nonebot_plugin_dnddicer-0.4.4}/nonebot_plugin_dnddicer/query/interaction.py +0 -0
- {nonebot_plugin_dnddicer-0.4.2 → nonebot_plugin_dnddicer-0.4.4}/nonebot_plugin_dnddicer/query/models.py +0 -0
- {nonebot_plugin_dnddicer-0.4.2 → nonebot_plugin_dnddicer-0.4.4}/nonebot_plugin_dnddicer/query/source.py +0 -0
- {nonebot_plugin_dnddicer-0.4.2 → nonebot_plugin_dnddicer-0.4.4}/nonebot_plugin_dnddicer/render/__init__.py +0 -0
- {nonebot_plugin_dnddicer-0.4.2 → nonebot_plugin_dnddicer-0.4.4}/package-lock.json +0 -0
- {nonebot_plugin_dnddicer-0.4.2 → nonebot_plugin_dnddicer-0.4.4}/package.json +0 -0
- {nonebot_plugin_dnddicer-0.4.2 → nonebot_plugin_dnddicer-0.4.4}/pyproject.toml +0 -0
- {nonebot_plugin_dnddicer-0.4.2 → nonebot_plugin_dnddicer-0.4.4}/tests/conftest.py +0 -0
- {nonebot_plugin_dnddicer-0.4.2 → nonebot_plugin_dnddicer-0.4.4}/tests/docs_examples/baseline/battle_adjust.txt +0 -0
- {nonebot_plugin_dnddicer-0.4.2 → nonebot_plugin_dnddicer-0.4.4}/tests/docs_examples/baseline/battle_aoe.txt +0 -0
- {nonebot_plugin_dnddicer-0.4.2 → nonebot_plugin_dnddicer-0.4.4}/tests/docs_examples/baseline/battle_cleanup.txt +0 -0
- {nonebot_plugin_dnddicer-0.4.2 → nonebot_plugin_dnddicer-0.4.4}/tests/docs_examples/baseline/battle_errors.txt +0 -0
- {nonebot_plugin_dnddicer-0.4.2 → nonebot_plugin_dnddicer-0.4.4}/tests/docs_examples/baseline/battle_guide_hit.txt +0 -0
- {nonebot_plugin_dnddicer-0.4.2 → nonebot_plugin_dnddicer-0.4.4}/tests/docs_examples/baseline/battle_open.txt +0 -0
- {nonebot_plugin_dnddicer-0.4.2 → nonebot_plugin_dnddicer-0.4.4}/tests/docs_examples/baseline/battle_reinforce.txt +0 -0
- {nonebot_plugin_dnddicer-0.4.2 → nonebot_plugin_dnddicer-0.4.4}/tests/docs_examples/baseline/battle_round1.txt +0 -0
- {nonebot_plugin_dnddicer-0.4.2 → nonebot_plugin_dnddicer-0.4.4}/tests/docs_examples/baseline/battle_shield.txt +0 -0
- {nonebot_plugin_dnddicer-0.4.2 → nonebot_plugin_dnddicer-0.4.4}/tests/docs_examples/baseline/battle_tower.txt +0 -0
- {nonebot_plugin_dnddicer-0.4.2 → nonebot_plugin_dnddicer-0.4.4}/tests/docs_examples/baseline/battle_zero_down.txt +0 -0
- {nonebot_plugin_dnddicer-0.4.2 → nonebot_plugin_dnddicer-0.4.4}/tests/docs_examples/baseline/cast_setup.txt +0 -0
- {nonebot_plugin_dnddicer-0.4.2 → nonebot_plugin_dnddicer-0.4.4}/tests/docs_examples/baseline/char_record_error.txt +0 -0
- {nonebot_plugin_dnddicer-0.4.2 → nonebot_plugin_dnddicer-0.4.4}/tests/docs_examples/baseline/char_view_other.txt +0 -0
- {nonebot_plugin_dnddicer-0.4.2 → nonebot_plugin_dnddicer-0.4.4}/tests/docs_examples/baseline/char_view_self.txt +0 -0
- {nonebot_plugin_dnddicer-0.4.2 → nonebot_plugin_dnddicer-0.4.4}/tests/docs_examples/baseline/check_attr.txt +0 -0
- {nonebot_plugin_dnddicer-0.4.2 → nonebot_plugin_dnddicer-0.4.4}/tests/docs_examples/baseline/check_cancel.txt +0 -0
- {nonebot_plugin_dnddicer-0.4.2 → nonebot_plugin_dnddicer-0.4.4}/tests/docs_examples/baseline/check_crit_fail.txt +0 -0
- {nonebot_plugin_dnddicer-0.4.2 → nonebot_plugin_dnddicer-0.4.4}/tests/docs_examples/baseline/check_halfling_luck.txt +0 -0
- {nonebot_plugin_dnddicer-0.4.2 → nonebot_plugin_dnddicer-0.4.4}/tests/docs_examples/baseline/check_mention.txt +0 -0
- {nonebot_plugin_dnddicer-0.4.2 → nonebot_plugin_dnddicer-0.4.4}/tests/docs_examples/baseline/check_multi.txt +0 -0
- {nonebot_plugin_dnddicer-0.4.2 → nonebot_plugin_dnddicer-0.4.4}/tests/docs_examples/baseline/check_no_card.txt +0 -0
- {nonebot_plugin_dnddicer-0.4.2 → nonebot_plugin_dnddicer-0.4.4}/tests/docs_examples/baseline/check_save_bonus.txt +0 -0
- {nonebot_plugin_dnddicer-0.4.2 → nonebot_plugin_dnddicer-0.4.4}/tests/docs_examples/baseline/check_skill_expertise.txt +0 -0
- {nonebot_plugin_dnddicer-0.4.2 → nonebot_plugin_dnddicer-0.4.4}/tests/docs_examples/baseline/check_temp_bonus.txt +0 -0
- {nonebot_plugin_dnddicer-0.4.2 → nonebot_plugin_dnddicer-0.4.4}/tests/docs_examples/baseline/dm_dark_roll.txt +0 -0
- {nonebot_plugin_dnddicer-0.4.2 → nonebot_plugin_dnddicer-0.4.4}/tests/docs_examples/baseline/dm_dm_turn.txt +0 -0
- {nonebot_plugin_dnddicer-0.4.2 → nonebot_plugin_dnddicer-0.4.4}/tests/docs_examples/baseline/dm_group_save.txt +0 -0
- {nonebot_plugin_dnddicer-0.4.2 → nonebot_plugin_dnddicer-0.4.4}/tests/docs_examples/baseline/dm_init_first.txt +0 -0
- {nonebot_plugin_dnddicer-0.4.2 → nonebot_plugin_dnddicer-0.4.4}/tests/docs_examples/baseline/dm_next_battle.txt +0 -0
- {nonebot_plugin_dnddicer-0.4.2 → nonebot_plugin_dnddicer-0.4.4}/tests/docs_examples/baseline/dm_player_hp.txt +0 -0
- {nonebot_plugin_dnddicer-0.4.2 → nonebot_plugin_dnddicer-0.4.4}/tests/docs_examples/baseline/dm_player_r.txt +0 -0
- {nonebot_plugin_dnddicer-0.4.2 → nonebot_plugin_dnddicer-0.4.4}/tests/docs_examples/baseline/dm_prep.txt +0 -0
- {nonebot_plugin_dnddicer-0.4.2 → nonebot_plugin_dnddicer-0.4.4}/tests/docs_examples/baseline/dm_prep_miss.txt +0 -0
- {nonebot_plugin_dnddicer-0.4.2 → nonebot_plugin_dnddicer-0.4.4}/tests/docs_examples/baseline/dm_records.txt +0 -0
- {nonebot_plugin_dnddicer-0.4.2 → nonebot_plugin_dnddicer-0.4.4}/tests/docs_examples/baseline/dm_scope_setup.txt +0 -0
- {nonebot_plugin_dnddicer-0.4.2 → nonebot_plugin_dnddicer-0.4.4}/tests/docs_examples/baseline/dm_turn_push.txt +0 -0
- {nonebot_plugin_dnddicer-0.4.2 → nonebot_plugin_dnddicer-0.4.4}/tests/docs_examples/baseline/dnd_roll.txt +0 -0
- {nonebot_plugin_dnddicer-0.4.2 → nonebot_plugin_dnddicer-0.4.4}/tests/docs_examples/baseline/dndx_record.txt +0 -0
- {nonebot_plugin_dnddicer-0.4.2 → nonebot_plugin_dnddicer-0.4.4}/tests/docs_examples/baseline/faq_default_face.txt +0 -0
- {nonebot_plugin_dnddicer-0.4.2 → nonebot_plugin_dnddicer-0.4.4}/tests/docs_examples/baseline/faq_dset.txt +0 -0
- {nonebot_plugin_dnddicer-0.4.2 → nonebot_plugin_dnddicer-0.4.4}/tests/docs_examples/baseline/faq_dset_denied.txt +0 -0
- {nonebot_plugin_dnddicer-0.4.2 → nonebot_plugin_dnddicer-0.4.4}/tests/docs_examples/baseline/hp_cleanup.txt +0 -0
- {nonebot_plugin_dnddicer-0.4.2 → nonebot_plugin_dnddicer-0.4.4}/tests/docs_examples/baseline/hp_expr_paren.txt +0 -0
- {nonebot_plugin_dnddicer-0.4.2 → nonebot_plugin_dnddicer-0.4.4}/tests/docs_examples/baseline/hp_resist_forms.txt +0 -0
- {nonebot_plugin_dnddicer-0.4.2 → nonebot_plugin_dnddicer-0.4.4}/tests/docs_examples/baseline/hp_set.txt +0 -0
- {nonebot_plugin_dnddicer-0.4.2 → nonebot_plugin_dnddicer-0.4.4}/tests/docs_examples/baseline/hp_target_search.txt +0 -0
- {nonebot_plugin_dnddicer-0.4.2 → nonebot_plugin_dnddicer-0.4.4}/tests/docs_examples/baseline/hp_weapon_redirect.txt +0 -0
- {nonebot_plugin_dnddicer-0.4.2 → nonebot_plugin_dnddicer-0.4.4}/tests/docs_examples/baseline/hp_weapon_source.txt +0 -0
- {nonebot_plugin_dnddicer-0.4.2 → nonebot_plugin_dnddicer-0.4.4}/tests/docs_examples/baseline/init_batch_shared.txt +0 -0
- {nonebot_plugin_dnddicer-0.4.2 → nonebot_plugin_dnddicer-0.4.4}/tests/docs_examples/baseline/init_batch_split.txt +0 -0
- {nonebot_plugin_dnddicer-0.4.2 → nonebot_plugin_dnddicer-0.4.4}/tests/docs_examples/baseline/init_check_link.txt +0 -0
- {nonebot_plugin_dnddicer-0.4.2 → nonebot_plugin_dnddicer-0.4.4}/tests/docs_examples/baseline/init_del_ambiguous.txt +0 -0
- {nonebot_plugin_dnddicer-0.4.2 → nonebot_plugin_dnddicer-0.4.4}/tests/docs_examples/baseline/init_dup_roll.txt +0 -0
- {nonebot_plugin_dnddicer-0.4.2 → nonebot_plugin_dnddicer-0.4.4}/tests/docs_examples/baseline/init_first.txt +0 -0
- {nonebot_plugin_dnddicer-0.4.2 → nonebot_plugin_dnddicer-0.4.4}/tests/docs_examples/baseline/init_mention_roll.txt +0 -0
- {nonebot_plugin_dnddicer-0.4.2 → nonebot_plugin_dnddicer-0.4.4}/tests/docs_examples/baseline/init_name_roll.txt +0 -0
- {nonebot_plugin_dnddicer-0.4.2 → nonebot_plugin_dnddicer-0.4.4}/tests/docs_examples/baseline/init_npc_fixed.txt +0 -0
- {nonebot_plugin_dnddicer-0.4.2 → nonebot_plugin_dnddicer-0.4.4}/tests/docs_examples/baseline/init_player_roll.txt +0 -0
- {nonebot_plugin_dnddicer-0.4.2 → nonebot_plugin_dnddicer-0.4.4}/tests/docs_examples/baseline/init_swap.txt +0 -0
- {nonebot_plugin_dnddicer-0.4.2 → nonebot_plugin_dnddicer-0.4.4}/tests/docs_examples/baseline/init_view.txt +0 -0
- {nonebot_plugin_dnddicer-0.4.2 → nonebot_plugin_dnddicer-0.4.4}/tests/docs_examples/baseline/init_view_final.txt +0 -0
- {nonebot_plugin_dnddicer-0.4.2 → nonebot_plugin_dnddicer-0.4.4}/tests/docs_examples/baseline/npc_persist.txt +0 -0
- {nonebot_plugin_dnddicer-0.4.2 → nonebot_plugin_dnddicer-0.4.4}/tests/docs_examples/baseline/npc_refill_next.txt +0 -0
- {nonebot_plugin_dnddicer-0.4.2 → nonebot_plugin_dnddicer-0.4.4}/tests/docs_examples/baseline/overview_name_chain.txt +0 -0
- {nonebot_plugin_dnddicer-0.4.2 → nonebot_plugin_dnddicer-0.4.4}/tests/docs_examples/baseline/query_atlas_feat_unit.txt +0 -0
- {nonebot_plugin_dnddicer-0.4.2 → nonebot_plugin_dnddicer-0.4.4}/tests/docs_examples/baseline/query_atlas_unique.txt +0 -0
- {nonebot_plugin_dnddicer-0.4.2 → nonebot_plugin_dnddicer-0.4.4}/tests/docs_examples/baseline/query_atlas_versions.txt +0 -0
- {nonebot_plugin_dnddicer-0.4.2 → nonebot_plugin_dnddicer-0.4.4}/tests/docs_examples/baseline/query_books_text.txt +0 -0
- {nonebot_plugin_dnddicer-0.4.2 → nonebot_plugin_dnddicer-0.4.4}/tests/docs_examples/baseline/query_full_paging.txt +0 -0
- {nonebot_plugin_dnddicer-0.4.2 → nonebot_plugin_dnddicer-0.4.4}/tests/docs_examples/baseline/query_image_switch.txt +0 -0
- {nonebot_plugin_dnddicer-0.4.2 → nonebot_plugin_dnddicer-0.4.4}/tests/docs_examples/baseline/query_index_master.txt +0 -0
- {nonebot_plugin_dnddicer-0.4.2 → nonebot_plugin_dnddicer-0.4.4}/tests/docs_examples/baseline/query_multi_keyword.txt +0 -0
- {nonebot_plugin_dnddicer-0.4.2 → nonebot_plugin_dnddicer-0.4.4}/tests/docs_examples/baseline/query_pick_entry.txt +0 -0
- {nonebot_plugin_dnddicer-0.4.2 → nonebot_plugin_dnddicer-0.4.4}/tests/docs_examples/baseline/query_scope_set.txt +0 -0
- {nonebot_plugin_dnddicer-0.4.2 → nonebot_plugin_dnddicer-0.4.4}/tests/docs_examples/baseline/query_search_select.txt +0 -0
- {nonebot_plugin_dnddicer-0.4.2 → nonebot_plugin_dnddicer-0.4.4}/tests/docs_examples/baseline/quickstart_bot_off.txt +0 -0
- {nonebot_plugin_dnddicer-0.4.2 → nonebot_plugin_dnddicer-0.4.4}/tests/docs_examples/baseline/quickstart_bot_on.txt +0 -0
- {nonebot_plugin_dnddicer-0.4.2 → nonebot_plugin_dnddicer-0.4.4}/tests/docs_examples/baseline/quickstart_first_roll.txt +0 -0
- {nonebot_plugin_dnddicer-0.4.2 → nonebot_plugin_dnddicer-0.4.4}/tests/docs_examples/baseline/quickstart_private_limits.txt +0 -0
- {nonebot_plugin_dnddicer-0.4.2 → nonebot_plugin_dnddicer-0.4.4}/tests/docs_examples/baseline/rest_after.txt +0 -0
- {nonebot_plugin_dnddicer-0.4.2 → nonebot_plugin_dnddicer-0.4.4}/tests/docs_examples/baseline/roll_adv_adv.txt +0 -0
- {nonebot_plugin_dnddicer-0.4.2 → nonebot_plugin_dnddicer-0.4.4}/tests/docs_examples/baseline/roll_adv_dark.txt +0 -0
- {nonebot_plugin_dnddicer-0.4.2 → nonebot_plugin_dnddicer-0.4.4}/tests/docs_examples/baseline/roll_adv_dis.txt +0 -0
- {nonebot_plugin_dnddicer-0.4.2 → nonebot_plugin_dnddicer-0.4.4}/tests/docs_examples/baseline/roll_adv_keep.txt +0 -0
- {nonebot_plugin_dnddicer-0.4.2 → nonebot_plugin_dnddicer-0.4.4}/tests/docs_examples/baseline/roll_adv_modifiers.txt +0 -0
- {nonebot_plugin_dnddicer-0.4.2 → nonebot_plugin_dnddicer-0.4.4}/tests/docs_examples/baseline/roll_adv_multi.txt +0 -0
- {nonebot_plugin_dnddicer-0.4.2 → nonebot_plugin_dnddicer-0.4.4}/tests/docs_examples/baseline/roll_adv_order_error.txt +0 -0
- {nonebot_plugin_dnddicer-0.4.2 → nonebot_plugin_dnddicer-0.4.4}/tests/docs_examples/baseline/roll_adv_reason.txt +0 -0
- {nonebot_plugin_dnddicer-0.4.2 → nonebot_plugin_dnddicer-0.4.4}/tests/docs_examples/baseline/roll_adv_resist.txt +0 -0
- {nonebot_plugin_dnddicer-0.4.2 → nonebot_plugin_dnddicer-0.4.4}/tests/docs_examples/baseline/roll_adv_short.txt +0 -0
- {nonebot_plugin_dnddicer-0.4.2 → nonebot_plugin_dnddicer-0.4.4}/tests/docs_examples/baseline/roll_adv_summary.txt +0 -0
- {nonebot_plugin_dnddicer-0.4.2 → nonebot_plugin_dnddicer-0.4.4}/tests/docs_examples/baseline/roll_adv_unimpl.txt +0 -0
- {nonebot_plugin_dnddicer-0.4.2 → nonebot_plugin_dnddicer-0.4.4}/tests/docs_examples/baseline/roll_basics_basic.txt +0 -0
- {nonebot_plugin_dnddicer-0.4.2 → nonebot_plugin_dnddicer-0.4.4}/tests/docs_examples/baseline/roll_basics_crit_1.txt +0 -0
- {nonebot_plugin_dnddicer-0.4.2 → nonebot_plugin_dnddicer-0.4.4}/tests/docs_examples/baseline/roll_basics_crit_20.txt +0 -0
- {nonebot_plugin_dnddicer-0.4.2 → nonebot_plugin_dnddicer-0.4.4}/tests/docs_examples/baseline/roll_basics_math.txt +0 -0
- {nonebot_plugin_dnddicer-0.4.2 → nonebot_plugin_dnddicer-0.4.4}/tests/docs_examples/baseline/roll_basics_plain_d.txt +0 -0
- {nonebot_plugin_dnddicer-0.4.2 → nonebot_plugin_dnddicer-0.4.4}/tests/docs_examples/baseline/roll_basics_space_error.txt +0 -0
- {nonebot_plugin_dnddicer-0.4.2 → nonebot_plugin_dnddicer-0.4.4}/tests/docs_examples/baseline/weapon_attack_adv.txt +0 -0
- {nonebot_plugin_dnddicer-0.4.2 → nonebot_plugin_dnddicer-0.4.4}/tests/docs_examples/baseline/weapon_attack_basics.txt +0 -0
- {nonebot_plugin_dnddicer-0.4.2 → nonebot_plugin_dnddicer-0.4.4}/tests/docs_examples/baseline/weapon_attack_nat20.txt +0 -0
- {nonebot_plugin_dnddicer-0.4.2 → nonebot_plugin_dnddicer-0.4.4}/tests/docs_examples/baseline/weapon_damage_basic.txt +0 -0
- {nonebot_plugin_dnddicer-0.4.2 → nonebot_plugin_dnddicer-0.4.4}/tests/docs_examples/baseline/weapon_damage_suffix.txt +0 -0
- {nonebot_plugin_dnddicer-0.4.2 → nonebot_plugin_dnddicer-0.4.4}/tests/docs_examples/baseline/weapon_manage.txt +0 -0
- {nonebot_plugin_dnddicer-0.4.2 → nonebot_plugin_dnddicer-0.4.4}/tests/docs_examples/baseline/weapon_sneak_reject.txt +0 -0
- {nonebot_plugin_dnddicer-0.4.2 → nonebot_plugin_dnddicer-0.4.4}/tests/docs_examples/baseline/weapon_spell_variants.txt +0 -0
- {nonebot_plugin_dnddicer-0.4.2 → nonebot_plugin_dnddicer-0.4.4}/tests/docs_examples/cast.py +0 -0
- {nonebot_plugin_dnddicer-0.4.2 → nonebot_plugin_dnddicer-0.4.4}/tests/docs_examples/query_atlas_demo.py +0 -0
- {nonebot_plugin_dnddicer-0.4.2 → nonebot_plugin_dnddicer-0.4.4}/tests/docs_examples/query_demo.py +0 -0
- {nonebot_plugin_dnddicer-0.4.2 → nonebot_plugin_dnddicer-0.4.4}/tests/docs_examples/test_docs_sync.py +0 -0
- {nonebot_plugin_dnddicer-0.4.2 → nonebot_plugin_dnddicer-0.4.4}/tests/docs_examples/test_examples_run.py +0 -0
- {nonebot_plugin_dnddicer-0.4.2 → nonebot_plugin_dnddicer-0.4.4}/tests/docs_examples/transcript.py +0 -0
- {nonebot_plugin_dnddicer-0.4.2 → nonebot_plugin_dnddicer-0.4.4}/tests/engine/test_ast_error_semantics.py +0 -0
- {nonebot_plugin_dnddicer-0.4.2 → nonebot_plugin_dnddicer-0.4.4}/tests/engine/test_ast_evaluator.py +0 -0
- {nonebot_plugin_dnddicer-0.4.2 → nonebot_plugin_dnddicer-0.4.4}/tests/engine/test_ast_integration.py +0 -0
- {nonebot_plugin_dnddicer-0.4.2 → nonebot_plugin_dnddicer-0.4.4}/tests/engine/test_ast_parser.py +0 -0
- {nonebot_plugin_dnddicer-0.4.2 → nonebot_plugin_dnddicer-0.4.4}/tests/engine/test_ast_trace_errors_limits.py +0 -0
- {nonebot_plugin_dnddicer-0.4.2 → nonebot_plugin_dnddicer-0.4.4}/tests/engine/test_default_ast_path.py +0 -0
- {nonebot_plugin_dnddicer-0.4.2 → nonebot_plugin_dnddicer-0.4.4}/tests/fake_event.py +0 -0
- {nonebot_plugin_dnddicer-0.4.2 → nonebot_plugin_dnddicer-0.4.4}/tests/query_fakes.py +0 -0
- {nonebot_plugin_dnddicer-0.4.2 → nonebot_plugin_dnddicer-0.4.4}/tests/test_battle_command.py +0 -0
- {nonebot_plugin_dnddicer-0.4.2 → nonebot_plugin_dnddicer-0.4.4}/tests/test_bot_command.py +0 -0
- {nonebot_plugin_dnddicer-0.4.2 → nonebot_plugin_dnddicer-0.4.4}/tests/test_character_services.py +0 -0
- {nonebot_plugin_dnddicer-0.4.2 → nonebot_plugin_dnddicer-0.4.4}/tests/test_command_mentions.py +0 -0
- {nonebot_plugin_dnddicer-0.4.2 → nonebot_plugin_dnddicer-0.4.4}/tests/test_data_schema.py +0 -0
- {nonebot_plugin_dnddicer-0.4.2 → nonebot_plugin_dnddicer-0.4.4}/tests/test_dset_command.py +0 -0
- {nonebot_plugin_dnddicer-0.4.2 → nonebot_plugin_dnddicer-0.4.4}/tests/test_error_fallback.py +0 -0
- {nonebot_plugin_dnddicer-0.4.2 → nonebot_plugin_dnddicer-0.4.4}/tests/test_initiative_command.py +0 -0
- {nonebot_plugin_dnddicer-0.4.2 → nonebot_plugin_dnddicer-0.4.4}/tests/test_npc_health.py +0 -0
- {nonebot_plugin_dnddicer-0.4.2 → nonebot_plugin_dnddicer-0.4.4}/tests/test_plugin.py +0 -0
- {nonebot_plugin_dnddicer-0.4.2 → nonebot_plugin_dnddicer-0.4.4}/tests/test_query_atlas.py +0 -0
- {nonebot_plugin_dnddicer-0.4.2 → nonebot_plugin_dnddicer-0.4.4}/tests/test_query_books.py +0 -0
- {nonebot_plugin_dnddicer-0.4.2 → nonebot_plugin_dnddicer-0.4.4}/tests/test_query_fetch.py +0 -0
- {nonebot_plugin_dnddicer-0.4.2 → nonebot_plugin_dnddicer-0.4.4}/tests/test_render_layout.py +0 -0
- {nonebot_plugin_dnddicer-0.4.2 → nonebot_plugin_dnddicer-0.4.4}/tests/test_roll_command.py +0 -0
- {nonebot_plugin_dnddicer-0.4.2 → nonebot_plugin_dnddicer-0.4.4}/uv.lock +0 -0
|
@@ -8,6 +8,47 @@
|
|
|
8
8
|
- 打 `v*` 标签前,请先在下方补好该版本的小节(标题格式 `## [x.y.z] - 日期`):发布时 `.github/workflows/release.yml` 会提取与所推标签同名的小节作为 GitHub Release 的说明正文,缺小节即会在构建前直接失败。
|
|
9
9
|
-->
|
|
10
10
|
|
|
11
|
+
## [0.4.4] - 2026-09-30
|
|
12
|
+
|
|
13
|
+
### 修复
|
|
14
|
+
|
|
15
|
+
- **配置项写数字不再导致插件加载失败**:`.env` 里把骰主 QQ(`dnddicer_master_qq`)、骰主交流群(`dnddicer_master_group`)、联系方式等直接写成数字时,此前会因类型校验不通过让整个插件不加载(骰娘不响应任何命令),加引号也无效;现在数字写法与字符串写法都能正常读取。
|
|
16
|
+
|
|
17
|
+
### 文档
|
|
18
|
+
|
|
19
|
+
- 《快速开始》补充字体家族(`dnddicer_query_image_font_family`)在 `.env` 里的写法说明:家族名不要带半角双引号,否则该行会被配置加载器丢弃、字体回落内置字体栈。
|
|
20
|
+
|
|
21
|
+
## [0.4.3] - 2026-09-30
|
|
22
|
+
|
|
23
|
+
### 新增
|
|
24
|
+
|
|
25
|
+
- **武器名模糊匹配**:除 `设置武器` 之外,`.X攻击` / `.X命中` / `.X伤害`、`.hp` 等命令的武器均支持模糊匹配,即精确优先、子串匹配。
|
|
26
|
+
- **一条命令结算多件武器**:`.刺剑伤害、匕首副手伤害`(分隔符 `、` / `,` / `/` 均可),逐件掷伤后给出一行合计;伤害类型不同时按类型分组报出,后缀与临时加值各项独立。多武器攻击同样支持(`.刺剑攻击优势、匕首攻击+2`),`.hp` 的伤害位置也已接入。
|
|
27
|
+
- **`.master <消息>` 反馈骰主**:群聊与私聊均支持,由骰娘私聊转达给骰主;单条限 200 字、同一人 60 秒限一条。
|
|
28
|
+
- **新增四个配置项**:
|
|
29
|
+
- `dnddicer_master_qq`:骰主 QQ 号,`.master` 的收件人
|
|
30
|
+
- `dnddicer_master_contact`:只在 `.help 联系` 展示
|
|
31
|
+
- `dnddicer_master_group`:只在 `.help 联系` 展示
|
|
32
|
+
- `dnddicer_query_image_default`:查询默认展示形态
|
|
33
|
+
|
|
34
|
+
### 变更
|
|
35
|
+
|
|
36
|
+
- **`.help` 帮助体系重构**:无参数看总览,`.help 命令` 给七组目录,`.help <组名>` 给组清单,`.help <命令>` 给「用法 + 缩进说明」的简版详情;另有 `.help 链接` / `.help 关于` / `.help 骰主` / `.help 联系` 四个入口。长帮助不再刷屏。
|
|
37
|
+
- **帮助详情给文档深链**:详情末尾的链接行指向该命令对应的文档页(不再一律指向站点首页);`.help 链接 on/off` 按处开关,群聊默认关、私聊默认开。
|
|
38
|
+
- **`.dnd` / `.dndx` 次数上限由 10 提到 20**:次数越界(含 0 与负数)不再静默按 1 次掷点,改为提示并拒绝执行。
|
|
39
|
+
- **`.角色卡模板` 提示更新**:熟练段补充「六属性 / 技能 / 豁免条目 / 先攻」,并精简额外加值两行。
|
|
40
|
+
|
|
41
|
+
### 修复
|
|
42
|
+
|
|
43
|
+
- **速查条目拿错卡、丢正文**:修 `.查询法术 火墙术` 返回排在它前面的生物卡、召唤类法术丢失法术正文等问题(改为判断标题是否落在数据卡内)。
|
|
44
|
+
- **图片卡片排版**:修正文上下大片空白、句中折行与孤字行,以及文字模式跟着图片一起折行(消息里多出换行)三个问题。
|
|
45
|
+
- **图片中英文错位**:卡片字体栈改为中文优先且中西文同源,服务器上不再中英各用一套字体、中文也不再回退成日文字形;可用新增配置项 `dnddicer_query_image_font_family` 指定字体。
|
|
46
|
+
|
|
47
|
+
### 文档
|
|
48
|
+
|
|
49
|
+
- README 顶部新增 logo 头图,简介区新增交流反馈 QQ 群入口。
|
|
50
|
+
- 《武器与攻击》新增「两把武器一起结算(多武器写法)」与「武器名支持模糊匹配」两节;《群管理与 FAQ》新增「联系骰主」小节;《快速开始》《命令总览》与 README 同步新帮助入口、`.master` 与配置项。
|
|
51
|
+
|
|
11
52
|
## [0.4.2] - 2026-09-26
|
|
12
53
|
|
|
13
54
|
### 变更
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.5
|
|
2
2
|
Name: nonebot-plugin-dnddicer
|
|
3
|
-
Version: 0.4.
|
|
3
|
+
Version: 0.4.4
|
|
4
4
|
Summary: 专精 DND5e/5r 跑团的 NoneBot2 骰娘插件(屠龙骰):掷骰表达式、角色卡与检定、自定义武器与攻击、属性生成、HP 管理、先攻列表、战斗轮、规则查询等
|
|
5
5
|
Project-URL: Homepage, https://github.com/H-Elden/nonebot-plugin-dnddicer
|
|
6
6
|
Project-URL: Issues, https://github.com/H-Elden/nonebot-plugin-dnddicer/issues
|
|
@@ -30,18 +30,24 @@ Provides-Extra: render
|
|
|
30
30
|
Requires-Dist: nonebot-plugin-htmlkit>=0.1.0rc5; extra == 'render'
|
|
31
31
|
Description-Content-Type: text/markdown
|
|
32
32
|
|
|
33
|
+
<p align="center">
|
|
34
|
+
<img src="https://raw.githubusercontent.com/H-Elden/nonebot-plugin-dnddicer/main/logo/dnddicer-logo.svg" alt="屠龙骰 DNDDicer" width="140">
|
|
35
|
+
</p>
|
|
36
|
+
|
|
33
37
|
# 屠龙骰(DNDDicer / nonebot-plugin-dnddicer)
|
|
34
38
|
|
|
35
39
|
> 专精 **DND5e / DND5r** 跑团的 [NoneBot2](https://nonebot.dev/) 骰娘插件(OneBot V11 适配器),致力于做功能最全面、体验最好的 DND 骰娘。
|
|
36
40
|
>
|
|
37
|
-
> 当前版本:**v0.4.
|
|
41
|
+
> 当前版本:**v0.4.4** · 完整使用手册见 **📖 [使用文档](https://h-elden.github.io/nonebot-plugin-dnddicer/)**([国内镜像](https://dnddicer.netlify.app/))
|
|
42
|
+
>
|
|
43
|
+
> 交流反馈 QQ 群:[](https://qun.qq.com/universal-share/share?ac=1&authKey=eUFiLk5ktomkYgDWCMnJnLNQW%2FJwmfR7wXKRrYyQeJy5uaYtwDsm4ABDiofKx6%2BN&busi_data=eyJncm91cENvZGUiOiIxMTA3ODc5NDQxIiwidG9rZW4iOiIvWHlQbDlNeUdBOVpQSnB1WU1RNUFmRCtBNlgwTXpnN2VOSlh6UkJ1YTFUdmREdEExYmEwSXo4SXFiR21zb0tsIiwidWluIjoiMjk4NDQ5NTc3NCJ9&data=JWJQw7qsywgzyHnQ-HJ_PzqF_Y1otBjTRkehoSmk6faB87xzjGf4PA_p1KNPhLvkkOwlLEuNH9jTN8XxNbxRPQ&svctype=4&tempid=h5_group_info)
|
|
38
44
|
|
|
39
45
|
## ✨ 简介
|
|
40
46
|
|
|
41
47
|
DNDDicer 的目标是填补「NoneBot 商店中缺少 **DND5e/5r 专业 + 现代维护 + 插件形态** 骰娘」的空位:围绕 DND 跑团全流程持续做深做全,致力于提供功能最全面、体验最好的 DND 骰娘,零配置可加载,供任何已有机器人从商店安装即用。
|
|
42
48
|
|
|
43
49
|
- **掷骰引擎**:内置 AST 表达式引擎(Lark 文法),支持 `2d20kh1`、优势/劣势、爆炸骰、连掷、暗骰等完整掷骰语法;
|
|
44
|
-
- **跑团全流程**:掷骰 → `.dnd` 属性生成 → 角色卡与检定/豁免点命令 → 自定义武器与攻击(`.X攻击`/`.X
|
|
50
|
+
- **跑团全流程**:掷骰 → `.dnd` 属性生成 → 角色卡与检定/豁免点命令 → 自定义武器与攻击(`.X攻击`/`.X伤害`,支持两把武器一条命令结算)/ HP 管理(伤害掷骰、抗性/易伤、AOE 多目标结算、长休)→ 先攻列表与战斗轮 → 规则查询(`.查询`/`.搜索`,可限定书目、可出图);
|
|
45
51
|
- **规则范围**:仅 DND5e/5r:专精 DND 定位,不做 COC/D100 体系与 `.mode` 模式切换;
|
|
46
52
|
- **商店合规**:零配置可加载、本地存储走 `nonebot-plugin-localstore`、元数据完整、全程异步。
|
|
47
53
|
|
|
@@ -87,6 +93,9 @@ plugins = ["nonebot_plugin_dnddicer"]
|
|
|
87
93
|
| `dnddicer_default_face` | `int` | `20` | 全局默认骰面(DND 惯例 D20;已配置 `.dset` 的群以群配置为准,此项作兜底) |
|
|
88
94
|
| `dnddicer_enabled` | `bool` | `true` | 功能总开关,`false` 时只加载骨架、不注册命令 |
|
|
89
95
|
| `dnddicer_use_host_command_starts` | `bool` | `false` | 是否兼容宿主 `COMMAND_START` 起始符(NoneBot 默认 `/`,开启后 `/.help` 等亦可触发)。默认只匹配 `.` / `。`,避免 `/help`、`/bot` 等常见单词命令与其他插件同时命中(冲突) |
|
|
96
|
+
| `dnddicer_master_qq` | `str` | 空 | 骰主 QQ 号(**单个**):`.master` 反馈的收件人,留空则 `.master` 回「骰主未配置」 |
|
|
97
|
+
| `dnddicer_master_contact` | `str` | 空 | 骰主联系方式(自由文本),仅用于 `.help 联系` 展示,留空不显示该行 |
|
|
98
|
+
| `dnddicer_master_group` | `str` | 空 | 骰主交流群群号,仅用于 `.help 联系` 展示,留空不显示该行 |
|
|
90
99
|
|
|
91
100
|
## 🎲 用法
|
|
92
101
|
|
|
@@ -121,9 +130,10 @@ plugins = ["nonebot_plugin_dnddicer"]
|
|
|
121
130
|
|
|
122
131
|
| 命令 | 说明 |
|
|
123
132
|
| --- | --- |
|
|
124
|
-
| `.刺剑攻击` / `.刺剑命中` | 用卡上该武器的命中加值掷攻击检定(`优势`/`劣势`、`N#` 连掷、`±` 临时加值、`@玩家` 代掷;天然 20
|
|
125
|
-
| `.刺剑伤害` | 掷该武器伤害并报出类型;后缀 `副手`(不加任何加值)/ `重击`(骰数翻倍)/ `偷袭`(游荡者按等级自动附加偷袭骰)可组合,尾部可加 `±` 临时加值(如升环 `.火球术伤害+1d6
|
|
126
|
-
|
|
|
133
|
+
| `.刺剑攻击` / `.刺剑命中` | 用卡上该武器的命中加值掷攻击检定(`优势`/`劣势`、`N#` 连掷、`±` 临时加值、`@玩家` 代掷;天然 20 提示重击;武器名支持模糊匹配) |
|
|
134
|
+
| `.刺剑伤害` | 掷该武器伤害并报出类型;后缀 `副手`(不加任何加值)/ `重击`(骰数翻倍)/ `偷袭`(游荡者按等级自动附加偷袭骰)可组合,尾部可加 `±` 临时加值(如升环 `.火球术伤害+1d6`);武器名支持模糊匹配 |
|
|
135
|
+
| `.刺剑伤害、匕首副手伤害` | 一条命令结算多件武器(`、`/`,`/`/` 分隔,各件的后缀与加值各写各的):逐件掷伤 + 一行合计;攻击同理(`.刺剑攻击、匕首攻击`) |
|
|
136
|
+
| `.设置武器` / `.删除武器` | 维护卡上武器(同名覆盖 / 按名称删除,名称支持模糊匹配,多个用 `/` 分隔;`.设置武器` 无参数列出当前武器) |
|
|
127
137
|
|
|
128
138
|
详见 [武器与攻击](./docs/guide/weapons.md)。
|
|
129
139
|
|
|
@@ -139,7 +149,7 @@ plugins = ["nonebot_plugin_dnddicer"]
|
|
|
139
149
|
| 命令 | 说明 |
|
|
140
150
|
| --- | --- |
|
|
141
151
|
| `.hp [对象] 20/30 (5)` | 设置自己/队友/NPC HP(含临时 HP;先 `.ri 名称` 入先攻表后即可记录 NPC 血量) |
|
|
142
|
-
| `.hp [对象] -2d6+3` 等 | 伤害/治疗(支持掷骰表达式;伤害位置可直接写 `-武器名伤害`,如 `-战锤重击伤害+1d4
|
|
152
|
+
| `.hp [对象] -2d6+3` 等 | 伤害/治疗(支持掷骰表达式;伤害位置可直接写 `-武器名伤害`,如 `-战锤重击伤害+1d4`、多武器 `-刺剑伤害、匕首副手伤害`,对应发送者卡上武器项、尾部括号可指定来源代发;目标后加 `抗性`/`易伤` 后缀可减半/加倍,分号分隔多目标同发结算) |
|
|
143
153
|
| `.hp @玩家 …` / `.hp @玩家` | 对 @ 的玩家角色卡结算 / 查看(`.hp @玩家 -4d6`、`.hp @玩家;地精 -d4` 与名称混写;需该玩家已建卡) |
|
|
144
154
|
| `.hp` / `.hp list` | 查看自己 / 本群列表(PC + NPC) |
|
|
145
155
|
| `.hp del 名称` / `.hp clr` | 删除单个 / 清空全部 NPC 血量记录(玩家角色卡请用 `.角色卡清除`,玩家先攻条目用 `.init del`) |
|
|
@@ -181,7 +191,8 @@ plugins = ["nonebot_plugin_dnddicer"]
|
|
|
181
191
|
| --- | --- |
|
|
182
192
|
| `.dset [表达式]` | 设置/查看群默认骰面(群主/管理员) |
|
|
183
193
|
| `.bot [on/off]` | 插件信息查询 / 本群服务开关(群主/管理员,需 @) |
|
|
184
|
-
| `.帮助` / `.help [命令]` |
|
|
194
|
+
| `.帮助` / `.help [命令 \| 分组 \| 链接 \| 关于 \| 骰主 \| 联系]` | 帮助入口:总览 / 命令目录 / 分组清单 / 命令详情 / 相关链接 / 插件信息 / 骰主指令 / 联系方式 |
|
|
195
|
+
| `.master <消息>` | 把问题或建议发给骰主:骰娘私聊转达(附群号与 QQ 号;单条 200 字、同一人 60 秒一条;骰主 QQ 号由 `dnddicer_master_qq` 配置) |
|
|
185
196
|
|
|
186
197
|
> 一期范围外功能会**显式提示而非静默**:`.r exp` 期望值采样、`.r a/n` 特殊判定;牌堆/随机表(T2)与法术位/死亡豁免/BUFF 表(T3 候选)见下方路线。
|
|
187
198
|
|
|
@@ -195,8 +206,10 @@ plugins = ["nonebot_plugin_dnddicer"]
|
|
|
195
206
|
6. ✅ **v0.4.0**:**规则查询**(`.查询` / `.搜索` 两种检索、候选选择与翻页、`.查询图片` 图片模式、`.查询范围` 书目限定与 `.规则书`);**文档站按前置条件重排为四章**(基础操作 / 玩家进阶 / DM 进阶 / 最佳实践);大成功/大失败播报另起一行、修饰符回显加括号;
|
|
196
207
|
7. ✅ **v0.4.1**:**规则查询速查子命令**(8 条 `.查询法术` 等,推荐优先使用)与**骰主命令 `.查询索引`**(状态 / 按类刷新);词条正文升级为站点样式渲染(卡片 / 数据卡 / 关键词高亮);**文档站新增国内镜像**(GitHub Pages 访问不畅时用);
|
|
197
208
|
8. ✅ **v0.4.2**:`.bot` 插件信息与 `.help` 命令总览的回复末尾新增「详细帮助文档」链接(指向文档站国内镜像),群内可直达使用手册;
|
|
198
|
-
9.
|
|
199
|
-
10.
|
|
209
|
+
9. ✅ **v0.4.3**:**`.help` 帮助体系重做**(总览 / 七组目录 / 组清单 / 简版详情,另设链接、关于、骰主、联系四入口);**武器名模糊匹配**与**一条命令结算多件武器**;**`.master` 反馈骰主**与三个骰主配置项;`.dnd` / `.dndx` 次数上限提到 20;规则查询速查切片、图片卡片排版与字体三项修复;
|
|
210
|
+
10. ✅ **v0.4.4**:修复配置项写数字(如骰主 QQ、交流群)导致插件不加载的问题;《快速开始》补充字体家族在 `.env` 里的写法说明;
|
|
211
|
+
11. ⏳ **第二期余下**:牌堆/随机表;
|
|
212
|
+
12. ⏳(可选)**T3 增强期**:法术位管理(`.ss/.cast`)、死亡豁免闭环(`.ds`)、BUFF/临时加值表(`.buff`)等。
|
|
200
213
|
|
|
201
214
|
每版完整变更(新增 / 变更 / 修复 / 文档)见 [CHANGELOG.md](./CHANGELOG.md)。
|
|
202
215
|
|
|
@@ -1,15 +1,21 @@
|
|
|
1
|
+
<p align="center">
|
|
2
|
+
<img src="https://raw.githubusercontent.com/H-Elden/nonebot-plugin-dnddicer/main/logo/dnddicer-logo.svg" alt="屠龙骰 DNDDicer" width="140">
|
|
3
|
+
</p>
|
|
4
|
+
|
|
1
5
|
# 屠龙骰(DNDDicer / nonebot-plugin-dnddicer)
|
|
2
6
|
|
|
3
7
|
> 专精 **DND5e / DND5r** 跑团的 [NoneBot2](https://nonebot.dev/) 骰娘插件(OneBot V11 适配器),致力于做功能最全面、体验最好的 DND 骰娘。
|
|
4
8
|
>
|
|
5
|
-
> 当前版本:**v0.4.
|
|
9
|
+
> 当前版本:**v0.4.4** · 完整使用手册见 **📖 [使用文档](https://h-elden.github.io/nonebot-plugin-dnddicer/)**([国内镜像](https://dnddicer.netlify.app/))
|
|
10
|
+
>
|
|
11
|
+
> 交流反馈 QQ 群:[](https://qun.qq.com/universal-share/share?ac=1&authKey=eUFiLk5ktomkYgDWCMnJnLNQW%2FJwmfR7wXKRrYyQeJy5uaYtwDsm4ABDiofKx6%2BN&busi_data=eyJncm91cENvZGUiOiIxMTA3ODc5NDQxIiwidG9rZW4iOiIvWHlQbDlNeUdBOVpQSnB1WU1RNUFmRCtBNlgwTXpnN2VOSlh6UkJ1YTFUdmREdEExYmEwSXo4SXFiR21zb0tsIiwidWluIjoiMjk4NDQ5NTc3NCJ9&data=JWJQw7qsywgzyHnQ-HJ_PzqF_Y1otBjTRkehoSmk6faB87xzjGf4PA_p1KNPhLvkkOwlLEuNH9jTN8XxNbxRPQ&svctype=4&tempid=h5_group_info)
|
|
6
12
|
|
|
7
13
|
## ✨ 简介
|
|
8
14
|
|
|
9
15
|
DNDDicer 的目标是填补「NoneBot 商店中缺少 **DND5e/5r 专业 + 现代维护 + 插件形态** 骰娘」的空位:围绕 DND 跑团全流程持续做深做全,致力于提供功能最全面、体验最好的 DND 骰娘,零配置可加载,供任何已有机器人从商店安装即用。
|
|
10
16
|
|
|
11
17
|
- **掷骰引擎**:内置 AST 表达式引擎(Lark 文法),支持 `2d20kh1`、优势/劣势、爆炸骰、连掷、暗骰等完整掷骰语法;
|
|
12
|
-
- **跑团全流程**:掷骰 → `.dnd` 属性生成 → 角色卡与检定/豁免点命令 → 自定义武器与攻击(`.X攻击`/`.X
|
|
18
|
+
- **跑团全流程**:掷骰 → `.dnd` 属性生成 → 角色卡与检定/豁免点命令 → 自定义武器与攻击(`.X攻击`/`.X伤害`,支持两把武器一条命令结算)/ HP 管理(伤害掷骰、抗性/易伤、AOE 多目标结算、长休)→ 先攻列表与战斗轮 → 规则查询(`.查询`/`.搜索`,可限定书目、可出图);
|
|
13
19
|
- **规则范围**:仅 DND5e/5r:专精 DND 定位,不做 COC/D100 体系与 `.mode` 模式切换;
|
|
14
20
|
- **商店合规**:零配置可加载、本地存储走 `nonebot-plugin-localstore`、元数据完整、全程异步。
|
|
15
21
|
|
|
@@ -55,6 +61,9 @@ plugins = ["nonebot_plugin_dnddicer"]
|
|
|
55
61
|
| `dnddicer_default_face` | `int` | `20` | 全局默认骰面(DND 惯例 D20;已配置 `.dset` 的群以群配置为准,此项作兜底) |
|
|
56
62
|
| `dnddicer_enabled` | `bool` | `true` | 功能总开关,`false` 时只加载骨架、不注册命令 |
|
|
57
63
|
| `dnddicer_use_host_command_starts` | `bool` | `false` | 是否兼容宿主 `COMMAND_START` 起始符(NoneBot 默认 `/`,开启后 `/.help` 等亦可触发)。默认只匹配 `.` / `。`,避免 `/help`、`/bot` 等常见单词命令与其他插件同时命中(冲突) |
|
|
64
|
+
| `dnddicer_master_qq` | `str` | 空 | 骰主 QQ 号(**单个**):`.master` 反馈的收件人,留空则 `.master` 回「骰主未配置」 |
|
|
65
|
+
| `dnddicer_master_contact` | `str` | 空 | 骰主联系方式(自由文本),仅用于 `.help 联系` 展示,留空不显示该行 |
|
|
66
|
+
| `dnddicer_master_group` | `str` | 空 | 骰主交流群群号,仅用于 `.help 联系` 展示,留空不显示该行 |
|
|
58
67
|
|
|
59
68
|
## 🎲 用法
|
|
60
69
|
|
|
@@ -89,9 +98,10 @@ plugins = ["nonebot_plugin_dnddicer"]
|
|
|
89
98
|
|
|
90
99
|
| 命令 | 说明 |
|
|
91
100
|
| --- | --- |
|
|
92
|
-
| `.刺剑攻击` / `.刺剑命中` | 用卡上该武器的命中加值掷攻击检定(`优势`/`劣势`、`N#` 连掷、`±` 临时加值、`@玩家` 代掷;天然 20
|
|
93
|
-
| `.刺剑伤害` | 掷该武器伤害并报出类型;后缀 `副手`(不加任何加值)/ `重击`(骰数翻倍)/ `偷袭`(游荡者按等级自动附加偷袭骰)可组合,尾部可加 `±` 临时加值(如升环 `.火球术伤害+1d6
|
|
94
|
-
|
|
|
101
|
+
| `.刺剑攻击` / `.刺剑命中` | 用卡上该武器的命中加值掷攻击检定(`优势`/`劣势`、`N#` 连掷、`±` 临时加值、`@玩家` 代掷;天然 20 提示重击;武器名支持模糊匹配) |
|
|
102
|
+
| `.刺剑伤害` | 掷该武器伤害并报出类型;后缀 `副手`(不加任何加值)/ `重击`(骰数翻倍)/ `偷袭`(游荡者按等级自动附加偷袭骰)可组合,尾部可加 `±` 临时加值(如升环 `.火球术伤害+1d6`);武器名支持模糊匹配 |
|
|
103
|
+
| `.刺剑伤害、匕首副手伤害` | 一条命令结算多件武器(`、`/`,`/`/` 分隔,各件的后缀与加值各写各的):逐件掷伤 + 一行合计;攻击同理(`.刺剑攻击、匕首攻击`) |
|
|
104
|
+
| `.设置武器` / `.删除武器` | 维护卡上武器(同名覆盖 / 按名称删除,名称支持模糊匹配,多个用 `/` 分隔;`.设置武器` 无参数列出当前武器) |
|
|
95
105
|
|
|
96
106
|
详见 [武器与攻击](./docs/guide/weapons.md)。
|
|
97
107
|
|
|
@@ -107,7 +117,7 @@ plugins = ["nonebot_plugin_dnddicer"]
|
|
|
107
117
|
| 命令 | 说明 |
|
|
108
118
|
| --- | --- |
|
|
109
119
|
| `.hp [对象] 20/30 (5)` | 设置自己/队友/NPC HP(含临时 HP;先 `.ri 名称` 入先攻表后即可记录 NPC 血量) |
|
|
110
|
-
| `.hp [对象] -2d6+3` 等 | 伤害/治疗(支持掷骰表达式;伤害位置可直接写 `-武器名伤害`,如 `-战锤重击伤害+1d4
|
|
120
|
+
| `.hp [对象] -2d6+3` 等 | 伤害/治疗(支持掷骰表达式;伤害位置可直接写 `-武器名伤害`,如 `-战锤重击伤害+1d4`、多武器 `-刺剑伤害、匕首副手伤害`,对应发送者卡上武器项、尾部括号可指定来源代发;目标后加 `抗性`/`易伤` 后缀可减半/加倍,分号分隔多目标同发结算) |
|
|
111
121
|
| `.hp @玩家 …` / `.hp @玩家` | 对 @ 的玩家角色卡结算 / 查看(`.hp @玩家 -4d6`、`.hp @玩家;地精 -d4` 与名称混写;需该玩家已建卡) |
|
|
112
122
|
| `.hp` / `.hp list` | 查看自己 / 本群列表(PC + NPC) |
|
|
113
123
|
| `.hp del 名称` / `.hp clr` | 删除单个 / 清空全部 NPC 血量记录(玩家角色卡请用 `.角色卡清除`,玩家先攻条目用 `.init del`) |
|
|
@@ -149,7 +159,8 @@ plugins = ["nonebot_plugin_dnddicer"]
|
|
|
149
159
|
| --- | --- |
|
|
150
160
|
| `.dset [表达式]` | 设置/查看群默认骰面(群主/管理员) |
|
|
151
161
|
| `.bot [on/off]` | 插件信息查询 / 本群服务开关(群主/管理员,需 @) |
|
|
152
|
-
| `.帮助` / `.help [命令]` |
|
|
162
|
+
| `.帮助` / `.help [命令 \| 分组 \| 链接 \| 关于 \| 骰主 \| 联系]` | 帮助入口:总览 / 命令目录 / 分组清单 / 命令详情 / 相关链接 / 插件信息 / 骰主指令 / 联系方式 |
|
|
163
|
+
| `.master <消息>` | 把问题或建议发给骰主:骰娘私聊转达(附群号与 QQ 号;单条 200 字、同一人 60 秒一条;骰主 QQ 号由 `dnddicer_master_qq` 配置) |
|
|
153
164
|
|
|
154
165
|
> 一期范围外功能会**显式提示而非静默**:`.r exp` 期望值采样、`.r a/n` 特殊判定;牌堆/随机表(T2)与法术位/死亡豁免/BUFF 表(T3 候选)见下方路线。
|
|
155
166
|
|
|
@@ -163,8 +174,10 @@ plugins = ["nonebot_plugin_dnddicer"]
|
|
|
163
174
|
6. ✅ **v0.4.0**:**规则查询**(`.查询` / `.搜索` 两种检索、候选选择与翻页、`.查询图片` 图片模式、`.查询范围` 书目限定与 `.规则书`);**文档站按前置条件重排为四章**(基础操作 / 玩家进阶 / DM 进阶 / 最佳实践);大成功/大失败播报另起一行、修饰符回显加括号;
|
|
164
175
|
7. ✅ **v0.4.1**:**规则查询速查子命令**(8 条 `.查询法术` 等,推荐优先使用)与**骰主命令 `.查询索引`**(状态 / 按类刷新);词条正文升级为站点样式渲染(卡片 / 数据卡 / 关键词高亮);**文档站新增国内镜像**(GitHub Pages 访问不畅时用);
|
|
165
176
|
8. ✅ **v0.4.2**:`.bot` 插件信息与 `.help` 命令总览的回复末尾新增「详细帮助文档」链接(指向文档站国内镜像),群内可直达使用手册;
|
|
166
|
-
9.
|
|
167
|
-
10.
|
|
177
|
+
9. ✅ **v0.4.3**:**`.help` 帮助体系重做**(总览 / 七组目录 / 组清单 / 简版详情,另设链接、关于、骰主、联系四入口);**武器名模糊匹配**与**一条命令结算多件武器**;**`.master` 反馈骰主**与三个骰主配置项;`.dnd` / `.dndx` 次数上限提到 20;规则查询速查切片、图片卡片排版与字体三项修复;
|
|
178
|
+
10. ✅ **v0.4.4**:修复配置项写数字(如骰主 QQ、交流群)导致插件不加载的问题;《快速开始》补充字体家族在 `.env` 里的写法说明;
|
|
179
|
+
11. ⏳ **第二期余下**:牌堆/随机表;
|
|
180
|
+
12. ⏳(可选)**T3 增强期**:法术位管理(`.ss/.cast`)、死亡豁免闭环(`.ds`)、BUFF/临时加值表(`.buff`)等。
|
|
168
181
|
|
|
169
182
|
每版完整变更(新增 / 变更 / 修复 / 文档)见 [CHANGELOG.md](./CHANGELOG.md)。
|
|
170
183
|
|
{nonebot_plugin_dnddicer-0.4.2 → nonebot_plugin_dnddicer-0.4.4}/docs/guide/best-practices.md
RENAMED
|
@@ -21,7 +21,7 @@
|
|
|
21
21
|
|
|
22
22
|
### 开卡:让骰娘替玩家掷点(.dnd / .dndx)
|
|
23
23
|
|
|
24
|
-
希望玩家用掷点确定属性值时,骰娘提供了两种方式:`.dndx` 按固定顺序**直接绑定属性名**(掷出即定,抄进角色卡即可);`.dnd` 只出一组降序数值(玩家自行分配)。两个命令后均可跟数字多掷几组(如 `.dnd5`,上限
|
|
24
|
+
希望玩家用掷点确定属性值时,骰娘提供了两种方式:`.dndx` 按固定顺序**直接绑定属性名**(掷出即定,抄进角色卡即可);`.dnd` 只出一组降序数值(玩家自行分配)。两个命令后均可跟数字多掷几组(如 `.dnd5`,上限 20)。小鹿试掷了一组:
|
|
25
25
|
|
|
26
26
|
::: chat
|
|
27
27
|
小鹿 | .dndx
|
|
@@ -14,6 +14,47 @@ editLink: false
|
|
|
14
14
|
- 打 `v*` 标签前,请先在下方补好该版本的小节(标题格式 `## [x.y.z] - 日期`):发布时 `.github/workflows/release.yml` 会提取与所推标签同名的小节作为 GitHub Release 的说明正文,缺小节即会在构建前直接失败。
|
|
15
15
|
-->
|
|
16
16
|
|
|
17
|
+
## [0.4.4] - 2026-09-30
|
|
18
|
+
|
|
19
|
+
### 修复
|
|
20
|
+
|
|
21
|
+
- **配置项写数字不再导致插件加载失败**:`.env` 里把骰主 QQ(`dnddicer_master_qq`)、骰主交流群(`dnddicer_master_group`)、联系方式等直接写成数字时,此前会因类型校验不通过让整个插件不加载(骰娘不响应任何命令),加引号也无效;现在数字写法与字符串写法都能正常读取。
|
|
22
|
+
|
|
23
|
+
### 文档
|
|
24
|
+
|
|
25
|
+
- 《快速开始》补充字体家族(`dnddicer_query_image_font_family`)在 `.env` 里的写法说明:家族名不要带半角双引号,否则该行会被配置加载器丢弃、字体回落内置字体栈。
|
|
26
|
+
|
|
27
|
+
## [0.4.3] - 2026-09-30
|
|
28
|
+
|
|
29
|
+
### 新增
|
|
30
|
+
|
|
31
|
+
- **武器名模糊匹配**:除 `设置武器` 之外,`.X攻击` / `.X命中` / `.X伤害`、`.hp` 等命令的武器均支持模糊匹配,即精确优先、子串匹配。
|
|
32
|
+
- **一条命令结算多件武器**:`.刺剑伤害、匕首副手伤害`(分隔符 `、` / `,` / `/` 均可),逐件掷伤后给出一行合计;伤害类型不同时按类型分组报出,后缀与临时加值各项独立。多武器攻击同样支持(`.刺剑攻击优势、匕首攻击+2`),`.hp` 的伤害位置也已接入。
|
|
33
|
+
- **`.master <消息>` 反馈骰主**:群聊与私聊均支持,由骰娘私聊转达给骰主;单条限 200 字、同一人 60 秒限一条。
|
|
34
|
+
- **新增四个配置项**:
|
|
35
|
+
- `dnddicer_master_qq`:骰主 QQ 号,`.master` 的收件人
|
|
36
|
+
- `dnddicer_master_contact`:只在 `.help 联系` 展示
|
|
37
|
+
- `dnddicer_master_group`:只在 `.help 联系` 展示
|
|
38
|
+
- `dnddicer_query_image_default`:查询默认展示形态
|
|
39
|
+
|
|
40
|
+
### 变更
|
|
41
|
+
|
|
42
|
+
- **`.help` 帮助体系重构**:无参数看总览,`.help 命令` 给七组目录,`.help <组名>` 给组清单,`.help <命令>` 给「用法 + 缩进说明」的简版详情;另有 `.help 链接` / `.help 关于` / `.help 骰主` / `.help 联系` 四个入口。长帮助不再刷屏。
|
|
43
|
+
- **帮助详情给文档深链**:详情末尾的链接行指向该命令对应的文档页(不再一律指向站点首页);`.help 链接 on/off` 按处开关,群聊默认关、私聊默认开。
|
|
44
|
+
- **`.dnd` / `.dndx` 次数上限由 10 提到 20**:次数越界(含 0 与负数)不再静默按 1 次掷点,改为提示并拒绝执行。
|
|
45
|
+
- **`.角色卡模板` 提示更新**:熟练段补充「六属性 / 技能 / 豁免条目 / 先攻」,并精简额外加值两行。
|
|
46
|
+
|
|
47
|
+
### 修复
|
|
48
|
+
|
|
49
|
+
- **速查条目拿错卡、丢正文**:修 `.查询法术 火墙术` 返回排在它前面的生物卡、召唤类法术丢失法术正文等问题(改为判断标题是否落在数据卡内)。
|
|
50
|
+
- **图片卡片排版**:修正文上下大片空白、句中折行与孤字行,以及文字模式跟着图片一起折行(消息里多出换行)三个问题。
|
|
51
|
+
- **图片中英文错位**:卡片字体栈改为中文优先且中西文同源,服务器上不再中英各用一套字体、中文也不再回退成日文字形;可用新增配置项 `dnddicer_query_image_font_family` 指定字体。
|
|
52
|
+
|
|
53
|
+
### 文档
|
|
54
|
+
|
|
55
|
+
- README 顶部新增 logo 头图,简介区新增交流反馈 QQ 群入口。
|
|
56
|
+
- 《武器与攻击》新增「两把武器一起结算(多武器写法)」与「武器名支持模糊匹配」两节;《群管理与 FAQ》新增「联系骰主」小节;《快速开始》《命令总览》与 README 同步新帮助入口、`.master` 与配置项。
|
|
57
|
+
|
|
17
58
|
## [0.4.2] - 2026-09-26
|
|
18
59
|
|
|
19
60
|
### 变更
|
{nonebot_plugin_dnddicer-0.4.2 → nonebot_plugin_dnddicer-0.4.4}/docs/guide/character-card.md
RENAMED
|
@@ -25,7 +25,7 @@ DND 建卡的六属性有两条路:**购点**是纸面计算,**掷点**交
|
|
|
25
25
|
| `.dnd` | 六项数值的**降序**列表(只出数值,不绑定) | 想自行把数值分配给六属性 |
|
|
26
26
|
| `.dndx` | 数值按固定顺序**直接绑定属性名**(不排序) | 掷出即定,直接抄进角色卡 |
|
|
27
27
|
|
|
28
|
-
命令后可跟**次数**与**原因**:`.dnd2` 一次掷两组(上限
|
|
28
|
+
命令后可跟**次数**与**原因**:`.dnd2` 一次掷两组(上限 20),原因会写进标题。DM 给客串 NPC 掷点:
|
|
29
29
|
|
|
30
30
|
::: chat
|
|
31
31
|
白鸦 | .dnd
|
|
@@ -39,6 +39,15 @@ DND 建卡的六属性有两条路:**购点**是纸面计算,**掷点**交
|
|
|
39
39
|
|
|
40
40
|
读法:`74` 是六项合计,`[18, 14, …]` 是六项数值的降序列表(第一项 18 出自 `6,6,6,1`,去掉 1 后 6+6+6),自行挑六个数字分配给属性即可。
|
|
41
41
|
|
|
42
|
+
次数写错时骰娘会直接说明,既不掷点、也不悄悄改次数:
|
|
43
|
+
|
|
44
|
+
::: chat
|
|
45
|
+
白鸦 | .dnd30
|
|
46
|
+
屠龙骰 | 次数超出上限:最多 20 次
|
|
47
|
+
白鸦 | .dndx 0
|
|
48
|
+
屠龙骰 | 次数至少为 1
|
|
49
|
+
:::
|
|
50
|
+
|
|
42
51
|
`.dndx` 的顺序与 `$属性$` 行完全一致(力量/敏捷/体质/智力/感知/魅力),掷出即定、按序抄写;小鹿试掷并登记:
|
|
43
52
|
|
|
44
53
|
::: chat
|
|
@@ -73,9 +82,9 @@ $武器$ 短剑+4,1d4+2穿刺
|
|
|
73
82
|
|
|
74
83
|
——提示(记录时请仅复制上方模板段并修改)——
|
|
75
84
|
属性段六个数值依次对应: 力量/敏捷/体质/智力/感知/魅力
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
85
|
+
熟练段 = 六属性/技能/豁免条目/先攻
|
|
86
|
+
额外加值段键 = 六属性/技能/豁免条目/豁免(作用于全部豁免)
|
|
87
|
+
额外加值取值 = 可选 优势/劣势 ±掷骰表达式, 如: 隐匿:优势+2
|
|
79
88
|
武器段格式 = 名称+命中加值,伤害表达式+类型(多项用 / 分隔),如 短剑+4,1d4+2穿刺
|
|
80
89
|
:::
|
|
81
90
|
|
|
@@ -93,7 +102,7 @@ $武器$ 短剑+4,1d4+2穿刺
|
|
|
93
102
|
| **`$属性$`** | 六个数值,用 `/` 分隔,依次对应 **力量 / 敏捷 / 体质 / 智力 / 感知 / 魅力**;<br>骰娘自动计算:调整值 = (数值 − 10) ÷ 2 向下取整 | **必填** |
|
|
94
103
|
| `$生命值$` | `当前/最大(临时)`,如 `54/54`、`20/30 (5)`;<br>HP 结算改的是这里,见[生命值管理](./hp.md) | 可选 |
|
|
95
104
|
| `$生命骰$` | `当前/总数 D骰面`,如 `5/5 D8`;长休按此回复生命骰 | 可选 |
|
|
96
|
-
| `$熟练$` | 熟练条目,用 `/` 分隔;`2*隐匿`
|
|
105
|
+
| `$熟练$` | 熟练条目,用 `/` 分隔;`2*隐匿` 为**专精**(双倍熟练);**先攻**也支持 | 可选 |
|
|
97
106
|
| `$额外加值$` | 见[下节](#额外加值) | 可选 |
|
|
98
107
|
| `$武器$` | 自定义武器/法术项:`名称+命中加值,伤害表达式+类型`(如 `短剑+4,1d4+2穿刺`),多项用 `/` 分隔;<br>名称尾加 `x` 表示不可攻击检定(如 `火球术x,8d6火焰`);见[武器与攻击](./weapons.md) | 可选 |
|
|
99
108
|
|
|
@@ -17,7 +17,7 @@
|
|
|
17
17
|
::: chat
|
|
18
18
|
白鸦 | .hp 骷髅a;骷髅b;木乃伊易伤 -8d6
|
|
19
19
|
屠龙骰 | 骷髅a: 当前HP减少[2+3+1+4+2+5+1+3]=21; HP:3/13 -> HP:0/13 昏迷
|
|
20
|
-
骷髅b: 当前HP减少[2+3+1+4+2+5+1+3]=21; HP:
|
|
20
|
+
骷髅b: 当前HP减少[2+3+1+4+2+5+1+3]=21; HP:4/13 -> HP:0/13 昏迷
|
|
21
21
|
木乃伊: 当前HP减少[2+3+1+4+2+5+1+3]=21(易伤加倍→42); 损失HP:3 -> 损失HP:45
|
|
22
22
|
|
|
23
23
|
注:小满去接水了,洛恩的火球术由 DM 代发;三大目标里只有木乃伊对火焰易伤。
|
|
@@ -93,6 +93,21 @@ HP:13/13 -> HP:9/13
|
|
|
93
93
|
HP:9/13 -> HP:6/13
|
|
94
94
|
:::
|
|
95
95
|
|
|
96
|
+
一轮里打了两种伤害(两武器、法术 + 武器)时,把两件写进同一条命令即可:逐件掷伤 + 一行合计,扣血按合计值一次结算:
|
|
97
|
+
|
|
98
|
+
::: chat
|
|
99
|
+
白鸦 | .hp 骷髅b -刺剑伤害、匕首副手伤害(塔莉)
|
|
100
|
+
屠龙骰 | 塔莉用【刺剑、匕首】造成了 9 点穿刺伤害:
|
|
101
|
+
1. 塔莉用【刺剑】造成了 8 点穿刺伤害:
|
|
102
|
+
1D8+4=[4]+4=8
|
|
103
|
+
2. 塔莉用【匕首】造成了 1 点穿刺伤害(副手:不加任何加值):
|
|
104
|
+
1D4=[1]=1
|
|
105
|
+
|
|
106
|
+
共计造成了 9 点穿刺伤害
|
|
107
|
+
骷髅b: 当前HP减少[4]+4+[1]=9
|
|
108
|
+
HP:13/13 -> HP:4/13
|
|
109
|
+
:::
|
|
110
|
+
|
|
96
111
|
## 结算速记
|
|
97
112
|
|
|
98
113
|
| 场景 | 写法 |
|
|
@@ -102,6 +117,7 @@ HP:9/13 -> HP:6/13
|
|
|
102
117
|
| 玩家受伤(代结算) | `.hp @玩家 -4d6`(或名称写法 `.hp 角色名 -8`) |
|
|
103
118
|
| 玩家治疗 | `.hp @玩家 +2d8+4` |
|
|
104
119
|
| 代发武器伤害 | `.hp 骷髅b易伤 -火焰箭伤害(洛恩)` |
|
|
120
|
+
| 代发两武器伤害 | `.hp 骷髅b -刺剑伤害、匕首副手伤害(塔莉)`(逐件掷伤 + 合计,扣血一次结算) |
|
|
105
121
|
| 代玩家收尾 | `.长休 @玩家` |
|
|
106
122
|
|
|
107
123
|
上一站:[代掷与代操作](./dm-proxy.md);接下来:[查询范围](./query-scope.md):开团前收窄本团可查的规则。
|
|
@@ -72,11 +72,45 @@
|
|
|
72
72
|
|
|
73
73
|
**两个按处设置**(群聊对该群全员生效、私聊仅影响本人;无需管理权限、设置持久保存):
|
|
74
74
|
|
|
75
|
-
- `.查询图片 on` / `off
|
|
75
|
+
- `.查询图片 on` / `off`:本处的词条正文用图片还是文字(需骰主先开启图片模式,未开启时开启会被拒绝并继续用文字);骰主可用 `dnddicer_query_image_default` 让**未显式设置过的**私聊或群聊默认出图,用户仍可自己 `off` 改回文字;
|
|
76
76
|
- `.查询范围 <缩写>`:把本处可查的书目收窄到指定几本(中文名与缩写对照见 `.规则书`,完整说明见[查询范围](./query-scope.md)),默认全部开放、`.查询范围 全部` 恢复。
|
|
77
77
|
|
|
78
78
|
**收不到结果时分两种**:提示里带「查询范围为 …」= 被范围挡住,用 `.查询范围 全部` 放开;否则换个关键词、或改用 `.搜索` 全文检索。发送 `.查询` 收到「规则查询功能未开启,请联系骰主解决」= 骰主尚未开启该功能(群聊里即使已开启查询,也仍受本群服务开关管辖)。
|
|
79
79
|
|
|
80
|
+
## 联系骰主
|
|
81
|
+
|
|
82
|
+
遇到问题、想提建议,用 `.master <消息>` 发给骰主:**群聊与私聊都可以用**,骰娘收到后私聊转达给骰主,转发内容带上你的群号与 QQ 号(群名片优先),方便骰主定位。发送者看到的回执:
|
|
83
|
+
|
|
84
|
+
::: chat
|
|
85
|
+
小鹿 | .master 先攻列表的顺序好像不对,能看看吗
|
|
86
|
+
屠龙骰 | 已发送给骰主,感谢反馈。
|
|
87
|
+
|
|
88
|
+
注:以下内容发生在私聊对话框
|
|
89
|
+
|
|
90
|
+
小满 | .master 火球术的伤害好像少算了一次
|
|
91
|
+
屠龙骰(私聊) | 已发送给骰主,感谢反馈。
|
|
92
|
+
:::
|
|
93
|
+
|
|
94
|
+
骰主在私聊里收到的就是上面两条反馈(转发先行,回执随后):
|
|
95
|
+
|
|
96
|
+
::: chat
|
|
97
|
+
注:以下是骰主与骰娘的私聊对话框
|
|
98
|
+
|
|
99
|
+
屠龙骰(私聊) | 【骰娘反馈】来自群 76000001(小鹿 / QQ 76010006)
|
|
100
|
+
先攻列表的顺序好像不对,能看看吗
|
|
101
|
+
屠龙骰(私聊) | 【骰娘反馈】来自私聊(QQ 76010003)
|
|
102
|
+
火球术的伤害好像少算了一次
|
|
103
|
+
:::
|
|
104
|
+
|
|
105
|
+
几条约定:
|
|
106
|
+
|
|
107
|
+
- 消息上限 **200 字**,超出截断并在转发末尾标注「(已截断)」;
|
|
108
|
+
- 同一人 **60 秒最多一条**,发太快会提示还需等待多少秒;
|
|
109
|
+
- 骰主可在 `.help 联系` 里留下联系方式与交流群(两项都由骰主配置,没配就不显示);
|
|
110
|
+
- 骰主没配 QQ 号时回「骰主未配置,暂时发不出去。」;骰娘不在骰主好友列表时回「消息没能发出去,骰主可能还没加骰娘好友。」。
|
|
111
|
+
|
|
112
|
+
骰主侧的配置方法见[快速开始 - 联系骰主](./quickstart.md#联系骰主)。
|
|
113
|
+
|
|
80
114
|
## 与宿主机器人协同
|
|
81
115
|
|
|
82
116
|
### 命令起始符(骰主可改)
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
|
|
7
7
|
## 用卡上的武器掷伤害(.hp -X伤害)
|
|
8
8
|
|
|
9
|
-
伤害位置直接写角色卡 `$武器$` 段里的武器名,骰娘用**发送者本人**的角色卡取出该武器,掷出伤害并同时扣血;`副手` / `重击` / `偷袭` 后缀与 `±` 临时加值都支持(如 `-战锤重击伤害+1d4
|
|
9
|
+
伤害位置直接写角色卡 `$武器$` 段里的武器名,骰娘用**发送者本人**的角色卡取出该武器,掷出伤害并同时扣血;`副手` / `重击` / `偷袭` 后缀与 `±` 临时加值都支持(如 `-战锤重击伤害+1d4`),不必每次手写算式(武器名支持模糊匹配,见[武器与攻击](./weapons.md)):
|
|
10
10
|
|
|
11
11
|
::: chat
|
|
12
12
|
阿岩 | .hp 骷髅a易伤 -战锤伤害
|
|
@@ -28,6 +28,23 @@ HP:13/13 -> HP:3/13
|
|
|
28
28
|
|
|
29
29
|
DM 代不在场的玩家结算时,把**武器来源**写在尾部括号里(角色名支持模糊匹配、中英文括号皆可,也可以直接 @玩家);完整代发说明见[血量与伤害结算](./dm-settlement.md)。
|
|
30
30
|
|
|
31
|
+
两把武器也能一条命令打完:伤害位置与 `.X伤害` 同款支持多项写法(用 `、`/`,`/`/` 分隔,各件的后缀与加值各写各的),逐件掷伤后接一行合计,再扣血:
|
|
32
|
+
|
|
33
|
+
::: chat
|
|
34
|
+
白鸦 | .hp 骷髅b -刺剑伤害、匕首副手伤害(塔莉)
|
|
35
|
+
屠龙骰 | 塔莉用【刺剑、匕首】造成了 9 点穿刺伤害:
|
|
36
|
+
1. 塔莉用【刺剑】造成了 8 点穿刺伤害:
|
|
37
|
+
1D8+4=[4]+4=8
|
|
38
|
+
2. 塔莉用【匕首】造成了 1 点穿刺伤害(副手:不加任何加值):
|
|
39
|
+
1D4=[1]=1
|
|
40
|
+
|
|
41
|
+
共计造成了 9 点穿刺伤害
|
|
42
|
+
骷髅b: 当前HP减少[4]+4+[1]=9
|
|
43
|
+
HP:13/13 -> HP:4/13
|
|
44
|
+
|
|
45
|
+
注:伤害位置写多项时,`/` 仍按「多武器」解析(末项没写「伤害」会提示写法,不会当成「当前/最大」去改血)。
|
|
46
|
+
:::
|
|
47
|
+
|
|
31
48
|
## 长休(.长休)
|
|
32
49
|
|
|
33
50
|
一次长休结算三件事:**HP 回复至上限**、**临时 HP 清零**(有剩余时会提示失效)、**回复一半生命骰**(回复量为总数的一半向下取整、至少 1,且不超过总数):
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
|
|
5
5
|
本页是全量速查:先在[功能一览](#功能一览)挑功能、读[名称显示规则](#名称显示规则)与 [@ 提及目标](#提及目标-dm-代操作)了解通用约定,再到[命令总表](#命令总表)查写法;不知从哪下手就按[开始使用](#开始使用)的三步走。
|
|
6
6
|
|
|
7
|
-
> **版本**:v0.4.
|
|
7
|
+
> **版本**:v0.4.4。规则范围:**仅支持 DND5e/5r**。安装与配置见 [快速开始](./quickstart.md)。
|
|
8
8
|
|
|
9
9
|
## 功能一览
|
|
10
10
|
|
|
@@ -100,12 +100,13 @@ HP:12/12 -> HP:5/12
|
|
|
100
100
|
| `.xx检定`(属性/技能/先攻) | 如 `.力量检定`、`.2#察觉检定+1` | 仅群聊 |
|
|
101
101
|
| `.xx豁免` | 属性豁免检定点命令,如 `.体质豁免+d4`、`.感知豁免优势` | 仅群聊 |
|
|
102
102
|
| `.xx检定/豁免 … @玩家` | 表达式右侧加 @ 代掷(用目标角色的属性/熟练/加值) | 仅群聊 |
|
|
103
|
-
| `.武器名攻击` / `.武器名命中` | 用卡上该武器的命中加值掷攻击检定(如 `.刺剑攻击优势`、`.2#刺剑攻击+2`、`.刺剑攻击
|
|
104
|
-
| `.武器名伤害` | 掷该武器伤害并报出类型;后缀 `副手`/`重击`/`偷袭` 可组合(如 `.刺剑重击偷袭伤害`),尾部可加 `±` 临时加值(如 `.火球术伤害+1d6
|
|
105
|
-
|
|
|
103
|
+
| `.武器名攻击` / `.武器名命中` | 用卡上该武器的命中加值掷攻击检定(如 `.刺剑攻击优势`、`.2#刺剑攻击+2`、`.刺剑攻击 @玩家`;武器名支持模糊匹配) | 仅群聊 |
|
|
104
|
+
| `.武器名伤害` | 掷该武器伤害并报出类型;后缀 `副手`/`重击`/`偷袭` 可组合(如 `.刺剑重击偷袭伤害`),尾部可加 `±` 临时加值(如 `.火球术伤害+1d6`);武器名支持模糊匹配 | 仅群聊 |
|
|
105
|
+
| `.武器名伤害、武器名伤害` | 一次结算多件武器(`、` / `,` / `/` 分隔,各件的后缀与加值各写各的),逐件掷伤 + 合计;攻击同理(`.刺剑攻击、匕首攻击`) | 仅群聊 |
|
|
106
|
+
| `.设置武器` / `.删除武器` | 维护卡上武器(同名覆盖 / 按名称删除,名称支持模糊匹配,多个用 `/` 分隔;`.设置武器` 无参数列出) | 仅群聊 |
|
|
106
107
|
| `.先攻检定` / `.先攻检定 @玩家` | 掷先攻并自动写入本群先攻列表(@ 形式以该玩家为归属入表) | 仅群聊 |
|
|
107
108
|
| `.hp [对象] 20/30 (5)` | 设置自己 / 队友 / NPC 的 HP(含临时 HP) | 仅群聊 |
|
|
108
|
-
| `.hp [对象] -10` / `+2d6` | 伤害 / 治疗(支持掷骰表达式与临时 HP;伤害位置可直接写 `-X伤害`
|
|
109
|
+
| `.hp [对象] -10` / `+2d6` | 伤害 / 治疗(支持掷骰表达式与临时 HP;伤害位置可直接写 `-X伤害` 用卡上武器项,支持多武器写法,括号可指定来源代发) | 仅群聊 |
|
|
109
110
|
| `.hp @玩家 …` / `.hp @玩家` | 对 @ 的玩家角色卡结算 / 查看(@ 与名称可混写) | 仅群聊 |
|
|
110
111
|
| `.hp` / `.hp list` | 查看自己 / 本群列表(PC 在前、NPC 在后) | 仅群聊 |
|
|
111
112
|
| `.hp del 名称` / `.hp clr` | 删除单个 / 清空全部 NPC 血量记录(玩家角色卡请用 `.角色卡清除`) | 仅群聊 |
|
|
@@ -139,7 +140,7 @@ HP:12/12 -> HP:5/12
|
|
|
139
140
|
| `.查询单位 <名称>` | 查单位换算小节(长度 / 重量 / 温度 / 体积 / 货币) | 群聊 / 私聊 |
|
|
140
141
|
| `.查询 <关键词>` | 按名称检索《5e不全书》(`.q`);**多关键词**:空格=同时满足、`\|`=或;唯一命中**直接出词条**、多个候选**回数字看词条**(多于一页时 `+` / `-` 翻页;60 秒内有效、只认发起者本人) | 群聊 / 私聊 |
|
|
141
142
|
| `.搜索 <关键词>` | 全文检索(`.s` / `.检索`),适合记不清名称时;关键词写法与 `.查询` 相同 | 群聊 / 私聊 |
|
|
142
|
-
| `.查询图片 [on/off]` | 查看 /
|
|
143
|
+
| `.查询图片 [on/off]` | 查看 / 切换**本处**的词条图片显示(群聊按群、私聊按本人);需骰主先开启图片模式,否则报错并仍以文字显示;没设置过的地方按骰主配置的默认形态 | 群聊 / 私聊 |
|
|
143
144
|
| `.查询范围 [缩写…]` | 查看 / 收窄**本处**可查询的书目范围(如 `.查询范围 PHB24,MM25`;`.查询范围 全部` 恢复);不设置即全部开放 | 群聊 / 私聊 |
|
|
144
145
|
| `.规则书` | 列出可设置的书目缩写与中文名对照(`.qbooks`;骰主开启图片模式时默认出图) | 群聊 / 私聊 |
|
|
145
146
|
|
|
@@ -159,8 +160,17 @@ HP:12/12 -> HP:5/12
|
|
|
159
160
|
|
|
160
161
|
| 命令 | 说明 | 场景 |
|
|
161
162
|
| --- | --- | --- |
|
|
162
|
-
| `.帮助` / `.help` |
|
|
163
|
-
| `.help
|
|
163
|
+
| `.帮助` / `.help` | 帮助总览:版本、开关骰娘与各入口指引 | 群聊 / 私聊 |
|
|
164
|
+
| `.help 命令` | 命令目录:7 组各一行(掷骰 / 角色 / 武器 / 生命 / 先攻 / 查询 / 管理) | 群聊 / 私聊 |
|
|
165
|
+
| `.help <组名>` | 该组命令清单(如 `.help 生命`、`.help 先攻`) | 群聊 / 私聊 |
|
|
166
|
+
| `.help <命令>` | 命令详情(如 `.help r`、`.help hp`;检定点与武器命令写 `.help 力量检定`、`.help 刺剑伤害`) | 群聊 / 私聊 |
|
|
167
|
+
| `.help 链接 [on/off]` | 相关链接;并切换本处帮助回复是否附带文档站链接行(群聊默认关、私聊默认开) | 群聊 / 私聊 |
|
|
168
|
+
| `.help 关于` | 插件版本、项目地址与交流群 | 群聊 / 私聊 |
|
|
169
|
+
| `.help 骰主` | 骰主专用指令清单 | 群聊 / 私聊 |
|
|
170
|
+
| `.help 联系` | 联系骰主的方式(骰主可留联系方式与交流群,未配置则不显示) | 群聊 / 私聊 |
|
|
171
|
+
| `.master <消息>` | 把问题或建议发给骰主:骰娘私聊转达(附群号与 QQ 号;单条 200 字、同一人 60 秒一条) | 群聊 / 私聊 |
|
|
172
|
+
|
|
173
|
+
帮助回复末尾会附一行「帮助文档:<地址>」,地址指向该命令或该组**对应的文档页**(没有对应页时给站点首页),从聊天里一步跳到相关章节;这行由 `.help 链接 on/off` 按群 / 私聊分别控制,**群聊默认关闭、私聊默认开启**。
|
|
164
174
|
|
|
165
175
|
## 开始使用
|
|
166
176
|
|
|
@@ -198,7 +198,7 @@ DM 还可以给每个群限定**可查的书目**,只开放本团允许的那
|
|
|
198
198
|
|
|
199
199
|
## 图片显示:`.查询图片`
|
|
200
200
|
|
|
201
|
-
|
|
201
|
+
词条正文默认以文字发送;骰主开启图片模式(并装好可选渲染依赖)后,用户可以自己决定本群或本私聊要不要图片:
|
|
202
202
|
|
|
203
203
|
| 命令 | 作用 |
|
|
204
204
|
| --- | --- |
|
|
@@ -206,9 +206,13 @@ DM 还可以给每个群限定**可查的书目**,只开放本团允许的那
|
|
|
206
206
|
| `.查询图片 on` | 本处的词条正文改为卡片图 |
|
|
207
207
|
| `.查询图片 off` | 本处改回文字 |
|
|
208
208
|
|
|
209
|
-
|
|
209
|
+
图片的「能不能用」与「没设置过的地方默认用不用」由骰主配置,「本处用不用」由用户自己决定:
|
|
210
210
|
|
|
211
|
-
|
|
211
|
+
- **总开关**(`dnddicer_query_image_enabled`)决定**能不能用**图片:没开时用户自己开也开不起来,会明确报错并继续以文字显示;
|
|
212
|
+
- **默认形态**(`dnddicer_query_image_default`,默认 `false`)决定**未显式设置过的**私聊或群聊初始用不用图片:设为 `true` 后群聊与私聊都默认出图,骰主可以用它把图片设为常态;
|
|
213
|
+
- **本处设置**(`.查询图片 on` / `off`)决定**本处用不用**:一经写下就固定下来、不再随默认形态变化,群成员随时可以自己改回文字或改回图片。
|
|
214
|
+
|
|
215
|
+
骰主没配置时(总开关未开或渲染依赖未装),用户自己开是开不起来的,会明确报错并继续以文字显示:
|
|
212
216
|
|
|
213
217
|
::: chat
|
|
214
218
|
阿茶 | .查询图片
|
|
@@ -219,10 +223,12 @@ DM 还可以给每个群限定**可查的书目**,只开放本团允许的那
|
|
|
219
223
|
注:报错说明骰主尚未开启图片模式(或未安装渲染依赖);此时无论怎么设置都会以文字显示。
|
|
220
224
|
:::
|
|
221
225
|
|
|
222
|
-
|
|
226
|
+
设置无需管理权限、持久保存;候选列表与各类提示始终是文字,**只有词条正文出图**。骰主把默认形态设为图片后,没设置过的地方直接出图,用户用 `.查询图片 off` 就能单独改回文字,不必打扰骰主。
|
|
223
227
|
|
|
224
228
|
开启图片模式的方法(渲染依赖与平台要求)见[快速开始 - 可选依赖项](./quickstart.md#可选依赖项),骰主开关见[快速开始 - 规则查询](./quickstart.md#规则查询)。
|
|
225
229
|
|
|
230
|
+
卡片里的中文字体由系统提供(fontconfig),插件的字体栈中文优先、中西文同源,这样同一行里的中英文才会字重与基线一致。若卡片里的中英文看着不齐、或者中文显示为方框,多半是服务器字体不全:用 `fc-list :lang=zh family` 看有哪些中文字体,`fc-match ':charset=0041'`(拉丁)与 `fc-match ':charset=56fd'`(汉字)看两者是否落在同一字体文件;装 `fonts-noto-cjk` 后重启骰娘即可,也可以用配置项 `dnddicer_query_image_font_family` 指定服务器上实际存在的家族。
|
|
231
|
+
|
|
226
232
|
## 查询范围:由 DM 收窄书目
|
|
227
233
|
|
|
228
234
|
一个跑团群通常只开放核心书与几本扩展。`.查询范围` 可按处收窄本处可查的书目(群聊对该群全员生效、私聊按本人),**不设置就是全部开放**;设置命令、书目缩写对照表(`.规则书`)与整目录键(`3PP` / `FR` / `ADV` / `MISC`)见[查询范围](./query-scope.md)。
|
|
@@ -243,7 +249,7 @@ DM 还可以给每个群限定**可查的书目**,只开放本团允许的那
|
|
|
243
249
|
|
|
244
250
|
两条纪律:
|
|
245
251
|
|
|
246
|
-
-
|
|
252
|
+
- **仅骰主私聊可用**:群聊里发送不会有任何回应(也不向群成员暴露这条命令的存在),私聊里非骰主会收到一句提示;它不进任何命令清单(`.help 骰主` 会列出它,`.help 查询索引` 可查看它的详情);
|
|
247
253
|
- **重建在后台执行**:发完命令先收到「正在重建…」,完成后回报各类的条目数;站点不可达或解析异常时回报失败并**保留原索引**;若新构建的条目数明显偏少(不足旧值一半,疑似站点异常或改版),同样保留旧数据、不覆盖。
|
|
248
254
|
|
|
249
255
|
::: chat
|