没有项目描述
stardust-rpg的Python项目详细描述
星尘rpg
星尘RPG是一款战术D20角色扮演游戏,旨在提供多种进展 为球员提供选择,鼓励团队合作。基线内容基于星尘书 约翰黑根的系列,但适应各种幻想设置。
功能
- 跨平台。在任何支持Python的平台上运行服务器客户可以 使用不需要安装的标准Web浏览器连接和管理其角色。
- Roll20集成。玩家可以自动同步他们的角色数据和 自动生成的武器和能力宏进入一个掷20。特别感谢 为了@theandrewdavis他对roll20.net api的分析。
- 可扩展轻松添加新内容,如类、武器或能力。
- 坚持不懈。将字符存储在持久数据库中,以便于重用。
用法
安装
您可以使用以下命令安装、升级和卸载stardust-rpg:
$ pip3 install stardust-rpg $ pip3 install --upgrade stardust-rpg $ pip3 uninstall stardust-rpg
服务器设置
创建名为SECRET_KEY的环境变量,并用 large random value。
配置
初始化数据库:
$ stardust-rpg makemigrations $ stardust-rpg migrate
创建管理帐户:
$ stardust-rpg createsuperuser
生产执行
警告
--insecure用于在没有
在django前面运行的web服务器(例如nginx)。
$ stardust-rpg runserver 0.0.0.0:80 --insecure
警告
--insecure用于在没有 在django前面运行的web服务器(例如nginx)。
调试执行
$ stardust-rpg runserver 0.0.0.0:80 --settings=app.debug_settings
游戏设置
通过浏览http://localhost/admin登录到管理界面
为每个玩家添加Users。配置以下字段:
Field | Value |
---|---|
^{tt5}$ | Stardust RPG server username. |
^{tt6}$ | Initial user password |
^{tt7}$ | Player’s Roll20 email address. |
为组添加Party。配置以下字段:
Field | Value |
---|---|
^{tt9}$ | Name of the character. Must match name of character in Roll20. |
^{tt10}$ | The 6 digit ID (e.g. https://app.roll20.net/campaigns/details/CAMPAIGN_ID/CAMPAIGN_NAME) assigned to the campaign found at https://app.roll20.net/campaigns/search |
为游戏中的每个角色添加Characters。配置以下字段:
Field | Value |
---|---|
^{tt12}$ | Player who has modification rights to the character. |
^{tt9}$ | Name of the character. Must match name of character in Roll20. |
^{tt8}$ | The ^{tt8}$ this character is a part of. |
^{tt16}$ | The class assigned to this ^{tt17}$. |
规则
战斗
战斗回合(RND)
- If your character is surprised, take no actions during the first ^{tt18}$.
按任意顺序执行以下操作。一个完整的操作(FullA)需要消耗所有这些 行动。自由操作(FreeA)不使用任何这些操作。
Move Action (^{tt23}$)
Move your character up to Maximum Speed (^{tt19}$).
- You may move through squares occupied by allies, but may not move through grid squares occupied by enemies.
在执行StdA或AbA之后,您可以使用剩下的SPEED,它 在此期间不使用RND。
标准操作(StdA)
Perform a single melee or ranged weapon attack
Roll a d20 and ^{tt30}$ dice. If d20 + ^{tt31}$ ≥ target ^{tt32}$, apply ^{tt30}$.
- If d20 ≥ Critical Range (^{tt34}$), automatic hit, apply CDAM.
- if d20 = 1, automatic miss.
能力动作(AbA)
Cast a single ability that requires ^{tt26}$
Subtract the MP Cost from your Current ^{tt37}$. Current ^{tt37}$ cannot drop below 0.
Roll a d20 and ^{tt39}$ dice. If d20 + ^{tt40}$ ≥ target ^{tt41}$, apply ^{tt39}$ and Effect.
- If d20 = 20, automatic hit, choose one of the following: 2x [^{tt39}$, Effect, Area, OR Duration].
- If d20 = 1, automatic miss.
如果使用连击,使用连击的盟友也必须减去 MP的成本和花费的任何时间是需要的演员。这次是从 他们的下一个回合。
在回合结束时,掷一个d20和再生骰子(RD)
If d20 + Magic Regeneration (^{tt45}$) ≥ 18, restore ^{tt44}$ MP.
- If d20 = 20, restore 2x ^{tt44}$ MP.
- If d20 = 1, automatic failure.
丧失工作能力(KO)
- 如果HP0,无意识状态
- 如果{TT49 } $Audio- -(50%最大^ {TT49 } $),死亡状态。
状态影响
Status | Effect |
---|---|
Immobilize | Cannot take ^{tt23}$. |
Silence | Cannot take ^{tt26}$ (i.e. any action that targets with ^{tt40}$ or consumes ^{tt37}$). |
Stagger | Cannot take ^{tt25}$. |
Disable | Cannot take ^{tt25}$ or ^{tt26}$. |
Stun | Cannot take ^{tt25}$, ^{tt26}$, or ^{tt23}$. |
Sleep | Cannot take ^{tt25}$, ^{tt26}$, or ^{tt23}$. Woken by physical or magical attack. |
Fear | Must expend ^{tt23}$ to move in opposite direction of the source of fear. |
Allure | Must expend ^{tt23}$ to move towards the source of the allure. |
Blind | Maximum range of physical and magic attacks reduced to 1. ^{tt67}$ reduced to 1. |
Inhibit | Max ^{tt37}$ reduced to 0. ^{tt69}$ reduced to 0. |
Condition | Effect |
---|---|
Unconscious | Cannot take anymore actions until revived. |
Death | Creature is dead. |
优点/缺点
State | Effect |
---|---|
Advantage (^{tt70}$) | Roll twice and use the higher of the two rolls. |
Disadvantage (^{tt71}$) | Roll twice and use the lower of the two rolls. |
漏洞和阻力
Property | Effect |
---|---|
Vulnerability (^{tt72}$) | Take 2x from a particular damage type. |
Resistance (^{tt73}$) | Take ½ from a particular damage type. |
Immunity (^{tt74}$) | Take no damage from a particular damage type. |
技能
Skill | Example Actions |
---|---|
Athletics (^{tt75}$) | Climb, Jump, Swim, Grapple, Reflex, Balance, Fall |
Stealth (^{tt76}$) | Sneak, Hide, Sleight of Hand, Disguise, Escape, Detect Trap |
Fortitude (^{tt77}$) | Endurance, Resist Status Effect, Death Save, Survival |
Aptitude (^{tt78}$) | Knowledge, Heal, Operate Device, Pick Lock, Forgery, Scan, Utility |
Perception (^{tt79}$) | Spot, Listen, Search, Touch, Smell, Taste |
Speech (^{tt80}$) | Diplomacy, Intimidate, Bluff, Persuasion |
属性效果
Attribute | General | Offensive | Defensive |
---|---|---|---|
^{tt81}$ | Feet Unlock | ^{tt82}$ Weapon Damage (^{tt83}$) | Chest Unlock Shield Unlock |
^{tt84}$ | ^{tt85}$ | Weapon Unlock | ^{tt86}$ |
^{tt87}$ | ^{tt88}$ | ^{tt89}$ per ^{tt90}$ ^{tt91}$ | |
^{tt92}$ | ^{tt93}$ per ^{tt90}$ ^{tt95}$ Utility Unlock | ^{tt96}$ per ^{tt90}$ Head Unlock | ^{tt98}$ |
^{tt99}$ | ^{tt100}$ Magic Power Neck Unlock | ^{tt101}$ | |
^{tt102}$ | ^{tt103}$ | ^{tt100}$ ^{tt105}$ ^{tt106}$ ^{tt107}$ Hand Unlock |
释放量
2.0.0
- 大量更新和新功能。
- 支持Python3.6
1.0.0
- 初次发行