fix(guild): rename GuildMealDuration to ClanMealDuration to match upstream 9.3

- Renamed config key from GuildMealDuration to ClanMealDuration
- Changed unit from minutes to seconds (matching upstream convention)
- Updated handler to use seconds-based calculation
- Updated documentation and examples

This fixes the bug where clan meals were not being shared between
guild members when using a config.json with the upstream naming.
This commit is contained in:
Houmgaor
2026-01-30 00:32:00 +01:00
parent 6b8e468073
commit 3a1b410ee3
6 changed files with 17 additions and 17 deletions

View File

@@ -38,7 +38,7 @@
"DisableLoginBoost": false,
"DisableBoostTime": false,
"BoostTimeDuration": 120,
"GuildMealDuration": 60,
"ClanMealDuration": 3600,
"BonusQuestAllowance": 3,
"DailyQuestAllowance": 1
},

View File

@@ -69,7 +69,7 @@ type GameplayOptions struct {
DisableLoginBoost bool // Disables the Login Boost system
DisableBoostTime bool // Disables the daily NetCafe Boost Time
BoostTimeDuration int // The number of minutes NetCafe Boost Time lasts for
GuildMealDuration int // The number of minutes a Guild Meal can be activated for after cooking
ClanMealDuration int // Seconds that a Clan Meal can be activated for after cooking
BonusQuestAllowance uint32 // Number of Bonus Point Quests to allow daily
DailyQuestAllowance uint32 // Number of Daily Quests to allow daily
}

View File

@@ -501,7 +501,7 @@ func TestConfigCompleteStructure(t *testing.T) {
MaximumRP: 65535,
DisableLoginBoost: false,
BoostTimeDuration: 60,
GuildMealDuration: 30,
ClanMealDuration: 1800,
BonusQuestAllowance: 10,
DailyQuestAllowance: 5,
},

View File

@@ -105,7 +105,7 @@ This guide explains the important configuration sections in `config.json`. Use [
"DisableLoginBoost": false,
"DisableBoostTime": false,
"BoostTimeDuration": 120,
"GuildMealDuration": 60,
"ClanMealDuration": 3600,
"BonusQuestAllowance": 3,
"DailyQuestAllowance": 1
}
@@ -120,7 +120,7 @@ This guide explains the important configuration sections in `config.json`. Use [
| `DisableLoginBoost` | boolean | Disable login boost system |
| `DisableBoostTime` | boolean | Disable daily NetCafe boost time |
| `BoostTimeDuration` | number | NetCafe boost time duration in minutes (default: 120) |
| `GuildMealDuration` | number | Guild meal activation duration in minutes (default: 60) |
| `ClanMealDuration` | number | Clan meal activation duration in seconds (default: 3600) |
| `BonusQuestAllowance` | number | Daily Bonus Point Quest allowance |
| `DailyQuestAllowance` | number | Daily Quest allowance |

View File

@@ -13,7 +13,7 @@ Gameplay modifiers and balance settings for Erupe.
"DisableLoginBoost": false,
"DisableBoostTime": false,
"BoostTimeDuration": 120,
"GuildMealDuration": 60,
"ClanMealDuration": 3600,
"BonusQuestAllowance": 3,
"DailyQuestAllowance": 1
}
@@ -30,7 +30,7 @@ Gameplay modifiers and balance settings for Erupe.
| `DisableLoginBoost` | boolean | `false` | Disable login boost system entirely |
| `DisableBoostTime` | boolean | `false` | Disable daily NetCafe boost time |
| `BoostTimeDuration` | number | `120` | NetCafe boost time duration in minutes |
| `GuildMealDuration` | number | `60` | Guild meal activation duration in minutes |
| `ClanMealDuration` | number | `3600` | Clan meal activation duration in seconds |
| `BonusQuestAllowance` | number | `3` | Daily Bonus Point Quest allowance |
| `DailyQuestAllowance` | number | `1` | Daily Quest allowance |
@@ -80,17 +80,17 @@ Daily time-limited boost that simulates NetCafe benefits:
- `DisableBoostTime: false` - Boost time is active
- `BoostTimeDuration: 120` - Lasts 120 minutes (2 hours)
### Guild Meals
### Clan Meals
Guild meals are buffs that guild members can activate:
Clan meals are buffs that clan members can activate and share:
```json
{
"GuildMealDuration": 60
"ClanMealDuration": 3600
}
```
Duration in minutes after cooking before the meal expires.
Duration in seconds after cooking before the meal expires (3600 = 1 hour).
### Quest Allowances
@@ -114,7 +114,7 @@ Set to `0` to disable limits entirely.
"DisableLoginBoost": false,
"DisableBoostTime": false,
"BoostTimeDuration": 240,
"GuildMealDuration": 120,
"ClanMealDuration": 7200,
"BonusQuestAllowance": 10,
"DailyQuestAllowance": 5
}
@@ -132,7 +132,7 @@ Set to `0` to disable limits entirely.
"DisableLoginBoost": false,
"DisableBoostTime": false,
"BoostTimeDuration": 120,
"GuildMealDuration": 60,
"ClanMealDuration": 3600,
"BonusQuestAllowance": 3,
"DailyQuestAllowance": 1
}

View File

@@ -1769,18 +1769,18 @@ func handleMsgMhfLoadGuildCooking(s *Session, p mhfpacket.MHFPacket) {
func handleMsgMhfRegistGuildCooking(s *Session, p mhfpacket.MHFPacket) {
pkt := p.(*mhfpacket.MsgMhfRegistGuildCooking)
guild, _ := GetGuildInfoByCharacterId(s, s.charID)
currentTime := TimeAdjusted().Add(time.Duration(s.server.erupeConfig.GameplayOptions.GuildMealDuration-60) * time.Minute)
startTime := TimeAdjusted().Add(time.Duration(s.server.erupeConfig.GameplayOptions.ClanMealDuration-3600) * time.Second)
if pkt.OverwriteID != 0 {
s.server.db.Exec("UPDATE guild_meals SET meal_id = $1, level = $2, created_at = $3 WHERE id = $4", pkt.MealID, pkt.Success, currentTime, pkt.OverwriteID)
s.server.db.Exec("UPDATE guild_meals SET meal_id = $1, level = $2, created_at = $3 WHERE id = $4", pkt.MealID, pkt.Success, startTime, pkt.OverwriteID)
} else {
s.server.db.QueryRow("INSERT INTO guild_meals (guild_id, meal_id, level, created_at) VALUES ($1, $2, $3, $4) RETURNING id", guild.ID, pkt.MealID, pkt.Success, currentTime).Scan(&pkt.OverwriteID)
s.server.db.QueryRow("INSERT INTO guild_meals (guild_id, meal_id, level, created_at) VALUES ($1, $2, $3, $4) RETURNING id", guild.ID, pkt.MealID, pkt.Success, startTime).Scan(&pkt.OverwriteID)
}
bf := byteframe.NewByteFrame()
bf.WriteUint16(1)
bf.WriteUint32(pkt.OverwriteID)
bf.WriteUint32(uint32(pkt.MealID))
bf.WriteUint32(uint32(pkt.Success))
bf.WriteUint32(uint32(currentTime.Unix()))
bf.WriteUint32(uint32(startTime.Unix()))
doAckBufSucceed(s, pkt.AckHandle, bf.Data())
}