diff --git a/config.json b/config.json index 6e69bb0a8..e752a93f1 100644 --- a/config.json +++ b/config.json @@ -39,6 +39,7 @@ "FeaturedWeapons": 1, "MaximumNP": 100000, "MaximumRP": 50000, + "MaximumFP": 120000, "DisableLoginBoost": false, "DisableBoostTime": false, "BoostTimeDuration": 120, diff --git a/config/config.go b/config/config.go index c02296b26..78ddd9e8a 100644 --- a/config/config.go +++ b/config/config.go @@ -124,6 +124,7 @@ type GameplayOptions struct { FeaturedWeapons int // Number of Active Feature weapons to generate daily MaximumNP int // Maximum number of NP held by a player MaximumRP uint16 // Maximum number of RP held by a player + MaximumFP uint32 // Maximum number of FP held by a player 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 diff --git a/server/channelserver/handlers_festa.go b/server/channelserver/handlers_festa.go index df972c0a9..0f590b5d9 100644 --- a/server/channelserver/handlers_festa.go +++ b/server/channelserver/handlers_festa.go @@ -151,14 +151,14 @@ type FestaTrial struct { } type FestaReward struct { - Unk0 uint8 - Unk1 uint8 - Unk2 uint16 - Unk3 uint16 - Unk4 uint16 - Unk5 uint16 - Unk6 uint16 - Unk7 uint8 + Unk0 uint8 + Unk1 uint8 + ItemType uint16 + Quantity uint16 + ItemID uint16 + Unk5 uint16 + Unk6 uint16 + Unk7 uint8 } func handleMsgMhfInfoFesta(s *Session, p mhfpacket.MHFPacket) { @@ -225,46 +225,47 @@ func handleMsgMhfInfoFesta(s *Session, p mhfpacket.MHFPacket) { bf.WriteUint16(trial.Unk) } + // The Winner and Loser Armor IDs are missing rewards := []FestaReward{ {1, 0, 7, 350, 1520, 0, 0, 0}, {1, 0, 7, 1000, 7011, 0, 0, 1}, {1, 0, 12, 1000, 0, 0, 0, 0}, {1, 0, 13, 0, 0, 0, 0, 0}, - {1, 0, 1, 0, 0, 0, 0, 0}, + //{1, 0, 1, 0, 0, 0, 0, 0}, {2, 0, 7, 350, 1520, 0, 0, 0}, {2, 0, 7, 1000, 7011, 0, 0, 1}, {2, 0, 12, 1000, 0, 0, 0, 0}, {2, 0, 13, 0, 0, 0, 0, 0}, - {2, 0, 4, 0, 0, 0, 0, 0}, + //{2, 0, 4, 0, 0, 0, 0, 0}, {3, 0, 7, 350, 1520, 0, 0, 0}, {3, 0, 7, 1000, 7011, 0, 0, 1}, {3, 0, 12, 1000, 0, 0, 0, 0}, {3, 0, 13, 0, 0, 0, 0, 0}, - {3, 0, 1, 0, 0, 0, 0, 0}, + //{3, 0, 1, 0, 0, 0, 0, 0}, {4, 0, 7, 350, 1520, 0, 0, 0}, {4, 0, 7, 1000, 7011, 0, 0, 1}, {4, 0, 12, 1000, 0, 0, 0, 0}, {4, 0, 13, 0, 0, 0, 0, 0}, - {4, 0, 4, 0, 0, 0, 0, 0}, + //{4, 0, 4, 0, 0, 0, 0, 0}, {5, 0, 7, 350, 1520, 0, 0, 0}, {5, 0, 7, 1000, 7011, 0, 0, 1}, {5, 0, 12, 1000, 0, 0, 0, 0}, {5, 0, 13, 0, 0, 0, 0, 0}, - {5, 0, 1, 0, 0, 0, 0, 0}, + //{5, 0, 1, 0, 0, 0, 0, 0}, } bf.WriteUint16(uint16(len(rewards))) for _, reward := range rewards { bf.WriteUint8(reward.Unk0) bf.WriteUint8(reward.Unk1) - bf.WriteUint16(reward.Unk2) - bf.WriteUint16(reward.Unk3) - bf.WriteUint16(reward.Unk4) + bf.WriteUint16(reward.ItemType) + bf.WriteUint16(reward.Quantity) + bf.WriteUint16(reward.ItemID) bf.WriteUint16(reward.Unk5) bf.WriteUint16(reward.Unk6) bf.WriteUint8(reward.Unk7) } - bf.WriteUint32(120000) + bf.WriteUint32(s.server.erupeConfig.GameplayOptions.MaximumFP) bf.WriteUint16(500) categoryWinners := uint16(0) // NYI