mirror of
https://github.com/Mezeporta/Erupe.git
synced 2026-03-22 07:32:32 +01:00
docs: adds documentation files for the major configurable options.
This commit is contained in:
219
docs/courses.md
Normal file
219
docs/courses.md
Normal file
@@ -0,0 +1,219 @@
|
||||
# Courses
|
||||
|
||||
Subscription course configuration for Monster Hunter Frontier.
|
||||
|
||||
## Configuration
|
||||
|
||||
```json
|
||||
{
|
||||
"Courses": [
|
||||
{"Name": "HunterLife", "Enabled": true},
|
||||
{"Name": "Extra", "Enabled": true},
|
||||
{"Name": "Premium", "Enabled": true},
|
||||
{"Name": "Assist", "Enabled": false},
|
||||
{"Name": "N", "Enabled": false},
|
||||
{"Name": "Hiden", "Enabled": false},
|
||||
{"Name": "HunterSupport", "Enabled": false},
|
||||
{"Name": "NBoost", "Enabled": false},
|
||||
{"Name": "NetCafe", "Enabled": true},
|
||||
{"Name": "HLRenewing", "Enabled": true},
|
||||
{"Name": "EXRenewing", "Enabled": true}
|
||||
]
|
||||
}
|
||||
```
|
||||
|
||||
## What Are Courses?
|
||||
|
||||
Courses are subscription-based premium features in Monster Hunter Frontier, similar to premium subscriptions or season passes. Each course grants different benefits, bonuses, and access to content.
|
||||
|
||||
## Course List
|
||||
|
||||
| Course | Name | Description |
|
||||
|--------|------|-------------|
|
||||
| `HunterLife` | Hunter Life Course | Basic subscription with fundamental benefits |
|
||||
| `Extra` | Extra Course | Additional premium features and bonuses |
|
||||
| `Premium` | Premium Course | Premium-tier benefits and exclusive content |
|
||||
| `Assist` | Assist Course | Helper features for newer players |
|
||||
| `N` | N Course | Special N-series benefits |
|
||||
| `Hiden` | Hiden Course | Secret/hidden features and content |
|
||||
| `HunterSupport` | Hunter Support Course | Support features for hunters |
|
||||
| `NBoost` | N Boost Course | N-series boost benefits |
|
||||
| `NetCafe` | NetCafe Course | Internet cafe benefits (bonus rewards, boost time) |
|
||||
| `HLRenewing` | Hunter Life Renewing | Renewed Hunter Life benefits |
|
||||
| `EXRenewing` | Extra Renewing | Renewed Extra Course benefits |
|
||||
|
||||
## How Courses Work
|
||||
|
||||
### Enabled vs Disabled
|
||||
|
||||
- **`Enabled: true`**: Players can toggle the course on/off using the `!course` command
|
||||
- **`Enabled: false`**: Course is locked and cannot be activated by players
|
||||
|
||||
### Account Rights
|
||||
|
||||
Courses are stored as a bitfield in the database (`users.rights` column). Each course has a unique bit position:
|
||||
|
||||
```text
|
||||
Rights Bitfield:
|
||||
Bit 0: HunterLife
|
||||
Bit 1: Extra
|
||||
Bit 2: Premium
|
||||
... (and so on)
|
||||
```
|
||||
|
||||
### Using the !course Command
|
||||
|
||||
When the [!course command](commands.md#course) is enabled, players can toggle courses:
|
||||
|
||||
```text
|
||||
Player types: !course premium
|
||||
Server: "Premium Course enabled!"
|
||||
|
||||
Player types: !course premium
|
||||
Server: "Premium Course disabled!"
|
||||
```
|
||||
|
||||
**Important:** Players can only toggle courses that are `Enabled: true` in the configuration.
|
||||
|
||||
## Configuration Examples
|
||||
|
||||
### Open Server (All Courses Available)
|
||||
|
||||
```json
|
||||
{
|
||||
"Courses": [
|
||||
{"Name": "HunterLife", "Enabled": true},
|
||||
{"Name": "Extra", "Enabled": true},
|
||||
{"Name": "Premium", "Enabled": true},
|
||||
{"Name": "Assist", "Enabled": true},
|
||||
{"Name": "N", "Enabled": true},
|
||||
{"Name": "Hiden", "Enabled": true},
|
||||
{"Name": "HunterSupport", "Enabled": true},
|
||||
{"Name": "NBoost", "Enabled": true},
|
||||
{"Name": "NetCafe", "Enabled": true},
|
||||
{"Name": "HLRenewing", "Enabled": true},
|
||||
{"Name": "EXRenewing", "Enabled": true}
|
||||
]
|
||||
}
|
||||
```
|
||||
|
||||
### Restricted Server (Core Courses Only)
|
||||
|
||||
```json
|
||||
{
|
||||
"Courses": [
|
||||
{"Name": "HunterLife", "Enabled": true},
|
||||
{"Name": "Extra", "Enabled": true},
|
||||
{"Name": "Premium", "Enabled": false},
|
||||
{"Name": "Assist", "Enabled": false},
|
||||
{"Name": "N", "Enabled": false},
|
||||
{"Name": "Hiden", "Enabled": false},
|
||||
{"Name": "HunterSupport", "Enabled": false},
|
||||
{"Name": "NBoost", "Enabled": false},
|
||||
{"Name": "NetCafe", "Enabled": true},
|
||||
{"Name": "HLRenewing", "Enabled": false},
|
||||
{"Name": "EXRenewing", "Enabled": false}
|
||||
]
|
||||
}
|
||||
```
|
||||
|
||||
### Free-to-Play Server (NetCafe Only)
|
||||
|
||||
```json
|
||||
{
|
||||
"Courses": [
|
||||
{"Name": "HunterLife", "Enabled": false},
|
||||
{"Name": "Extra", "Enabled": false},
|
||||
{"Name": "Premium", "Enabled": false},
|
||||
{"Name": "Assist", "Enabled": false},
|
||||
{"Name": "N", "Enabled": false},
|
||||
{"Name": "Hiden", "Enabled": false},
|
||||
{"Name": "HunterSupport", "Enabled": false},
|
||||
{"Name": "NBoost", "Enabled": false},
|
||||
{"Name": "NetCafe", "Enabled": true},
|
||||
{"Name": "HLRenewing", "Enabled": false},
|
||||
{"Name": "EXRenewing", "Enabled": false}
|
||||
]
|
||||
}
|
||||
```
|
||||
|
||||
## Course Benefits
|
||||
|
||||
While Erupe emulates the course system, the exact benefits depend on game client implementation. Common benefits include:
|
||||
|
||||
### HunterLife
|
||||
|
||||
- Increased reward multipliers
|
||||
- Extra item box space
|
||||
- Access to HunterLife-exclusive quests
|
||||
|
||||
### Extra
|
||||
|
||||
- Additional bonus rewards
|
||||
- Extra carve/gather attempts
|
||||
- Special decorations and items
|
||||
|
||||
### Premium
|
||||
|
||||
- All HunterLife + Extra benefits
|
||||
- Premium-exclusive content
|
||||
- Enhanced reward rates
|
||||
|
||||
### NetCafe
|
||||
|
||||
- Boost time periods (see [Gameplay Options](gameplay-options.md))
|
||||
- Increased reward rates
|
||||
- NetCafe-exclusive bonuses
|
||||
|
||||
## Setting Courses Manually
|
||||
|
||||
### Via Database
|
||||
|
||||
Directly modify the `users.rights` column:
|
||||
|
||||
```sql
|
||||
-- Enable all courses for a user
|
||||
UPDATE users SET rights = 2047 WHERE username = 'player';
|
||||
|
||||
-- Enable only HunterLife (bit 0 = 2^0 = 1)
|
||||
UPDATE users SET rights = 1 WHERE username = 'player';
|
||||
|
||||
-- Enable HunterLife + Extra + NetCafe (bits 0, 1, 8 = 1 + 2 + 256 = 259)
|
||||
UPDATE users SET rights = 259 WHERE username = 'player';
|
||||
```
|
||||
|
||||
### Via !rights Command
|
||||
|
||||
If the [!rights command](commands.md#rights) is enabled:
|
||||
|
||||
```text
|
||||
!rights 2047
|
||||
```
|
||||
|
||||
Enables all courses (2047 = all 11 bits set).
|
||||
|
||||
**Bitfield Calculator:**
|
||||
|
||||
- HunterLife: 2^0 = 1
|
||||
- Extra: 2^1 = 2
|
||||
- Premium: 2^2 = 4
|
||||
- NetCafe: 2^8 = 256
|
||||
- Total: Add the values together
|
||||
|
||||
## Implementation Details
|
||||
|
||||
Course checking is implemented throughout the codebase:
|
||||
|
||||
```go
|
||||
// Check if player has a specific course
|
||||
if mhfcourse.CourseExists(courseID, session.courses) {
|
||||
// Grant course benefits
|
||||
}
|
||||
```
|
||||
|
||||
Course data is loaded from the database on character login and cached in the session.
|
||||
|
||||
## Related Documentation
|
||||
|
||||
- [In-Game Commands](commands.md) - Using `!course` command
|
||||
- [Gameplay Options](gameplay-options.md) - NetCafe boost time configuration
|
||||
Reference in New Issue
Block a user