diff --git a/network/mhfpacket/msg_mhf_get_weekly_seibatu_ranking_reward.go b/network/mhfpacket/msg_mhf_get_weekly_seibatu_ranking_reward.go index 2823ff525..42718803b 100644 --- a/network/mhfpacket/msg_mhf_get_weekly_seibatu_ranking_reward.go +++ b/network/mhfpacket/msg_mhf_get_weekly_seibatu_ranking_reward.go @@ -2,6 +2,7 @@ package mhfpacket import ( "errors" + "fmt" "erupe-ce/common/byteframe" "erupe-ce/network" @@ -10,11 +11,11 @@ import ( // MsgMhfGetWeeklySeibatuRankingReward represents the MSG_MHF_GET_WEEKLY_SEIBATU_RANKING_REWARD type MsgMhfGetWeeklySeibatuRankingReward struct { - AckHandle uint32 - Unk0 uint32 - Unk1 uint32 - Unk2 uint32 - Unk3 uint32 + AckHandle uint32 + Unk0 uint32 + Operation uint32 + ID uint32 + EarthMonster uint32 } // Opcode returns the ID associated with this packet type. @@ -26,9 +27,10 @@ func (m *MsgMhfGetWeeklySeibatuRankingReward) Opcode() network.PacketID { func (m *MsgMhfGetWeeklySeibatuRankingReward) Parse(bf *byteframe.ByteFrame, ctx *clientctx.ClientContext) error { m.AckHandle = bf.ReadUint32() m.Unk0 = bf.ReadUint32() - m.Unk1 = bf.ReadUint32() - m.Unk2 = bf.ReadUint32() - m.Unk3 = bf.ReadUint32() + m.Operation = bf.ReadUint32() + m.ID = bf.ReadUint32() + m.EarthMonster = bf.ReadUint32() + fmt.Printf("MsgMhfGetWeeklySeibatuRankingReward: Unk0:[%d] Operation:[%d] ID:[%d] EarthMonster:[%d]\n\n", m.Unk0, m.Operation, m.ID, m.EarthMonster) return nil } diff --git a/server/channelserver/handlers_seibattle.go b/server/channelserver/handlers_seibattle.go index caf5c19c9..30a93870a 100644 --- a/server/channelserver/handlers_seibattle.go +++ b/server/channelserver/handlers_seibattle.go @@ -15,31 +15,546 @@ func handleMsgMhfGetBreakSeibatuLevelReward(s *Session, p mhfpacket.MHFPacket) { doAckBufSucceed(s, pkt.AckHandle, bf.Data()) } -type WeeklySeibatuRankingReward struct { - Unk0 int32 - Unk1 int32 - Unk2 uint32 - Unk3 int32 - Unk4 int32 - Unk5 int32 +type WeeklySeibatuRankingRewardData struct { + Index0 int32 //Place Start + Index1 int32 //Place Finish + Index2 uint32 // UNK + DistributionType int32 //Type 7201:Item 7202:N Points 7203:Guild Contribution Points + ItemID int32 + Amount int32 +} +type WeeklySeibatuRankingRewards struct { + Unk0 int32 + ItemID int32 + Amount uint32 + PlaceFrom int32 + PlaceTo int32 } func handleMsgMhfGetWeeklySeibatuRankingReward(s *Session, p mhfpacket.MHFPacket) { pkt := p.(*mhfpacket.MsgMhfGetWeeklySeibatuRankingReward) var data []*byteframe.ByteFrame - weeklySeibatuRankingRewards := []WeeklySeibatuRankingReward{ - {0, 0, 0, 0, 0, 0}, + var weeklySeibatuRankingRewards []WeeklySeibatuRankingRewards + var weeklySeibatuRankingRewardsData []WeeklySeibatuRankingRewardData + + switch pkt.Operation { + case 1: + //Conquest Data + switch pkt.ID { // Seems to align with EarthStatus 1 and 2 for Conquest + case 1: + switch pkt.EarthMonster { + case 116: + weeklySeibatuRankingRewards = []WeeklySeibatuRankingRewards{ + {0, 2, 3, 1, 100}, + {0, 2, 6, 1, 100}, + {0, 2, 6, 1, 100}, + {0, 2, 6, 1, 100}, + {0, 2, 15, 1, 100}, + {0, 2, 15, 1, 100}, + {0, 2, 25, 1, 100}, + + {0, 2, 2, 101, 1000}, + {0, 2, 4, 101, 1000}, + {0, 2, 4, 101, 1000}, + {0, 2, 4, 101, 1000}, + {0, 2, 9, 101, 1000}, + {0, 2, 9, 101, 1000}, + {0, 2, 30, 101, 1000}, + + {0, 2, 2, 1000, 1001}, + {0, 2, 4, 1000, 1001}, + {0, 2, 4, 1000, 1001}, + {0, 2, 4, 1000, 1001}, + {0, 2, 6, 1000, 1001}, + {0, 2, 6, 1000, 1001}, + } + case 107: + weeklySeibatuRankingRewards = []WeeklySeibatuRankingRewards{ + {0, 2, 3, 1, 100}, + {0, 2, 6, 1, 100}, + {0, 2, 6, 1, 100}, + {0, 2, 6, 1, 100}, + {0, 2, 15, 1, 100}, + {0, 2, 15, 1, 100}, + {0, 2, 25, 1, 100}, + + {0, 2, 2, 101, 1000}, + {0, 2, 4, 101, 1000}, + {0, 2, 4, 101, 1000}, + {0, 2, 4, 101, 1000}, + {0, 2, 9, 101, 1000}, + {0, 2, 9, 101, 1000}, + {0, 2, 30, 101, 1000}, + + {0, 2, 2, 1000, 1001}, + {0, 2, 4, 1000, 1001}, + {0, 2, 4, 1000, 1001}, + {0, 2, 4, 1000, 1001}, + {0, 2, 6, 1000, 1001}, + {0, 2, 6, 1000, 1001}, + } + case 2: + weeklySeibatuRankingRewards = []WeeklySeibatuRankingRewards{ + {0, 2, 3, 1, 100}, + {0, 2, 6, 1, 100}, + {0, 2, 6, 1, 100}, + {0, 2, 6, 1, 100}, + {0, 2, 15, 1, 100}, + {0, 2, 15, 1, 100}, + {0, 2, 25, 1, 100}, + + {0, 2, 2, 101, 1000}, + {0, 2, 4, 101, 1000}, + {0, 2, 4, 101, 1000}, + {0, 2, 4, 101, 1000}, + {0, 2, 9, 101, 1000}, + {0, 2, 9, 101, 1000}, + {0, 2, 30, 101, 1000}, + + {0, 2, 2, 1000, 1001}, + {0, 2, 4, 1000, 1001}, + {0, 2, 4, 1000, 1001}, + {0, 2, 4, 1000, 1001}, + {0, 2, 6, 1000, 1001}, + {0, 2, 6, 1000, 1001}, + } + case 36: + weeklySeibatuRankingRewards = []WeeklySeibatuRankingRewards{ + {0, 2, 3, 1, 100}, + {0, 2, 6, 1, 100}, + {0, 2, 6, 1, 100}, + {0, 2, 6, 1, 100}, + {0, 2, 15, 1, 100}, + {0, 2, 15, 1, 100}, + {0, 2, 25, 1, 100}, + + {0, 2, 2, 101, 1000}, + {0, 2, 4, 101, 1000}, + {0, 2, 4, 101, 1000}, + {0, 2, 4, 101, 1000}, + {0, 2, 9, 101, 1000}, + {0, 2, 9, 101, 1000}, + {0, 2, 30, 101, 1000}, + + {0, 2, 2, 1000, 1001}, + {0, 2, 4, 1000, 1001}, + {0, 2, 4, 1000, 1001}, + {0, 2, 4, 1000, 1001}, + {0, 2, 6, 1000, 1001}, + {0, 2, 6, 1000, 1001}, + } + } + + case 2: + switch pkt.EarthMonster { + case 116: + weeklySeibatuRankingRewards = []WeeklySeibatuRankingRewards{ + {0, 2, 3, 1, 100}, + {0, 2, 6, 1, 100}, + {0, 2, 6, 1, 100}, + {0, 2, 6, 1, 100}, + {0, 2, 15, 1, 100}, + {0, 2, 15, 1, 100}, + {0, 2, 25, 1, 100}, + + {0, 2, 2, 101, 1000}, + {0, 2, 4, 101, 1000}, + {0, 2, 4, 101, 1000}, + {0, 2, 4, 101, 1000}, + {0, 2, 9, 101, 1000}, + {0, 2, 9, 101, 1000}, + {0, 2, 30, 101, 1000}, + + {0, 2, 2, 1000, 1001}, + {0, 2, 4, 1000, 1001}, + {0, 2, 4, 1000, 1001}, + {0, 2, 4, 1000, 1001}, + {0, 2, 6, 1000, 1001}, + {0, 2, 6, 1000, 1001}, + } + case 107: + weeklySeibatuRankingRewards = []WeeklySeibatuRankingRewards{ + {0, 2, 3, 1, 100}, + {0, 2, 6, 1, 100}, + {0, 2, 6, 1, 100}, + {0, 2, 6, 1, 100}, + {0, 2, 15, 1, 100}, + {0, 2, 15, 1, 100}, + {0, 2, 25, 1, 100}, + + {0, 2, 2, 101, 1000}, + {0, 2, 4, 101, 1000}, + {0, 2, 4, 101, 1000}, + {0, 2, 4, 101, 1000}, + {0, 2, 9, 101, 1000}, + {0, 2, 9, 101, 1000}, + {0, 2, 30, 101, 1000}, + + {0, 2, 2, 1000, 1001}, + {0, 2, 4, 1000, 1001}, + {0, 2, 4, 1000, 1001}, + {0, 2, 4, 1000, 1001}, + {0, 2, 6, 1000, 1001}, + {0, 2, 6, 1000, 1001}, + } + case 2: + weeklySeibatuRankingRewards = []WeeklySeibatuRankingRewards{ + {0, 2, 3, 1, 100}, + {0, 2, 6, 1, 100}, + {0, 2, 6, 1, 100}, + {0, 2, 6, 1, 100}, + {0, 2, 15, 1, 100}, + {0, 2, 15, 1, 100}, + {0, 2, 25, 1, 100}, + + {0, 2, 2, 101, 1000}, + {0, 2, 4, 101, 1000}, + {0, 2, 4, 101, 1000}, + {0, 2, 4, 101, 1000}, + {0, 2, 9, 101, 1000}, + {0, 2, 9, 101, 1000}, + {0, 2, 30, 101, 1000}, + + {0, 2, 2, 1000, 1001}, + {0, 2, 4, 1000, 1001}, + {0, 2, 4, 1000, 1001}, + {0, 2, 4, 1000, 1001}, + {0, 2, 6, 1000, 1001}, + {0, 2, 6, 1000, 1001}, + } + case 36: + weeklySeibatuRankingRewards = []WeeklySeibatuRankingRewards{ + {0, 2, 3, 1, 100}, + {0, 2, 6, 1, 100}, + {0, 2, 6, 1, 100}, + {0, 2, 6, 1, 100}, + {0, 2, 15, 1, 100}, + {0, 2, 15, 1, 100}, + {0, 2, 25, 1, 100}, + + {0, 2, 2, 101, 1000}, + {0, 2, 4, 101, 1000}, + {0, 2, 4, 101, 1000}, + {0, 2, 4, 101, 1000}, + {0, 2, 9, 101, 1000}, + {0, 2, 9, 101, 1000}, + {0, 2, 30, 101, 1000}, + + {0, 2, 2, 1000, 1001}, + {0, 2, 4, 1000, 1001}, + {0, 2, 4, 1000, 1001}, + {0, 2, 4, 1000, 1001}, + {0, 2, 6, 1000, 1001}, + {0, 2, 6, 1000, 1001}, + } + } + + } + case 3: + //Pallone Festival Data + weeklySeibatuRankingRewardsData = []WeeklySeibatuRankingRewardData{ + + //Unk0 + //Unk1 + //Unk2 + //Unk3, + //ROUTE, (Crashes if it doesnt exist be careful with values ) + //Status 1 = Only Now ! 2= Unk 3= Disabled} + + //Route 0 + {0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0}, + //Route 1 + {0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0}, + //Route 2 + {0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0}, + //Route 3 + {0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0}, + //Route 4 + {0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0}, + //Route 5 + {0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0}, + //Route 6 + {0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0}, + //Route 7 + {0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0}, + //Route 8 + {0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0}, + //Route 9 + {0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0}, + //Route 10 + {0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0}, + } + + // 0 = Max 7 Routes so value 6 + //ZZ looks like it only works up to Route 2 + + case 5: + //Event Reward Data + switch pkt.ID { + //243400 = Route 0 + //243401 = Route 1 + //I have a sneaky suspicion that the above massive array is feeding into this somehow.... + case 240031: + weeklySeibatuRankingRewardsData = []WeeklySeibatuRankingRewardData{ + {1, 1, 1, 7201, 12068, 1}} + case 240041: + weeklySeibatuRankingRewardsData = []WeeklySeibatuRankingRewardData{ + {0, 0, 1, 7201, 12068, 1}} + case 240042: + weeklySeibatuRankingRewardsData = []WeeklySeibatuRankingRewardData{ + {0, 0, 2, 7201, 12068, 1}} + case 240051: + weeklySeibatuRankingRewardsData = []WeeklySeibatuRankingRewardData{ + {0, 0, 1, 7201, 12068, 1}} + case 240052: + weeklySeibatuRankingRewardsData = []WeeklySeibatuRankingRewardData{ + {1, 1, 1, 7201, 12068, 1}, + } + case 260001: + //Tower Dure Kill Reward + weeklySeibatuRankingRewardsData = []WeeklySeibatuRankingRewardData{ + + //Can only have 10 in each dist (It disapears otherwise) Looks like up to dist 4 is implemented + //This is claimable for every Dure Kill, Make cliamable in bulk or mandatory claim per kill + //{unk,unk,dist,seiabtuType,ItemID,Value} + {0, 0, 1, 7201, 11463, 1}, + {0, 0, 1, 7201, 11464, 1}, + {0, 0, 1, 7201, 11163, 1}, + {0, 0, 1, 7201, 11159, 5}, + {0, 0, 1, 7201, 11160, 5}, + {0, 0, 1, 7201, 11161, 5}, + + {0, 0, 2, 7201, 12506, 1}, + {0, 0, 2, 7201, 10355, 1}, + {0, 0, 2, 7201, 11163, 1}, + {0, 0, 2, 7201, 11159, 5}, + {0, 0, 2, 7201, 11160, 5}, + {0, 0, 2, 7201, 11161, 5}, + } + case 260003: + //Tower Floor Reward + weeklySeibatuRankingRewardsData = []WeeklySeibatuRankingRewardData{ + //Adjust Floors done in database to make blue + //This is claimable for every Floor Climbed across dist 1 and 2 + //{Floor,unk,unk,seiabtuType,ItemID,Value} + + {1, 0, 0, 7201, 11158, 1}, + {2, 0, 0, 7201, 11173, 1}, + {3, 0, 0, 7201, 10813, 3}, + {4, 0, 0, 7201, 11163, 1}, + {5, 0, 0, 7201, 11164, 1}, + {6, 0, 0, 7201, 11389, 3}, + {6, 0, 0, 7201, 11381, 1}, + {7, 0, 0, 7201, 11384, 1}, + {8, 0, 0, 7201, 11159, 10}, + {9, 0, 0, 7201, 11160, 10}, + {10, 0, 0, 7201, 11161, 10}, + {11, 0, 0, 7201, 11265, 2}, + {11, 0, 0, 7201, 7279, 2}, + {12, 0, 0, 7201, 11381, 1}, + {13, 0, 0, 7201, 11384, 1}, + {14, 0, 0, 7201, 11381, 1}, + {15, 0, 0, 7201, 11384, 1}, + {15, 0, 0, 7201, 11464, 1}, + {16, 0, 0, 7201, 11381, 1}, + {17, 0, 0, 7201, 11384, 1}, + {18, 0, 0, 7201, 11381, 1}, + {19, 0, 0, 7201, 11384, 1}, + {20, 0, 0, 7201, 10778, 3}, + {21, 0, 0, 7201, 11265, 2}, + {21, 0, 0, 7201, 7279, 2}, + {22, 0, 0, 7201, 11381, 1}, + {23, 0, 0, 7201, 11384, 1}, + {24, 0, 0, 7201, 11381, 1}, + {25, 0, 0, 7201, 11389, 3}, + {25, 0, 0, 7201, 11286, 4}, + {26, 0, 0, 7201, 11384, 1}, + {27, 0, 0, 7201, 11381, 1}, + {28, 0, 0, 7201, 11384, 1}, + {29, 0, 0, 7201, 11381, 1}, + {30, 0, 0, 7201, 11209, 3}, + {31, 0, 0, 7201, 11265, 2}, + {31, 0, 0, 7201, 7279, 2}, + {32, 0, 0, 7201, 11159, 10}, + {33, 0, 0, 7201, 11463, 1}, + {34, 0, 0, 7201, 11160, 10}, + {35, 0, 0, 7201, 11286, 4}, + {36, 0, 0, 7201, 11161, 10}, + {38, 0, 0, 7201, 11384, 1}, + {39, 0, 0, 7201, 11164, 1}, + {40, 0, 0, 7201, 10813, 3}, + {41, 0, 0, 7201, 11265, 2}, + {41, 0, 0, 7201, 7280, 2}, + {43, 0, 0, 7201, 11381, 1}, + {45, 0, 0, 7201, 11286, 4}, + {47, 0, 0, 7201, 11384, 1}, + {48, 0, 0, 7201, 11358, 1}, + {50, 0, 0, 7201, 11356, 1}, + {51, 0, 0, 7201, 11265, 2}, + {51, 0, 0, 7201, 7280, 2}, + {53, 0, 0, 7201, 11381, 2}, + {55, 0, 0, 7201, 11357, 1}, + {57, 0, 0, 7201, 11384, 1}, + {60, 0, 0, 7201, 11286, 4}, + {61, 0, 0, 7201, 11265, 2}, + {61, 0, 0, 7201, 7280, 2}, + {63, 0, 0, 7201, 11381, 2}, + {66, 0, 0, 7201, 11463, 1}, + {67, 0, 0, 7201, 11384, 1}, + {70, 0, 0, 7201, 11286, 4}, + {71, 0, 0, 7201, 11265, 2}, + {71, 0, 0, 7201, 7280, 2}, + {73, 0, 0, 7201, 11381, 2}, + {77, 0, 0, 7201, 11384, 1}, + {79, 0, 0, 7201, 11164, 1}, + {80, 0, 0, 7201, 11286, 6}, + {81, 0, 0, 7201, 11265, 2}, + {81, 0, 0, 7201, 7281, 1}, + {83, 0, 0, 7201, 11381, 2}, + {85, 0, 0, 7201, 11464, 1}, + {87, 0, 0, 7201, 11384, 1}, + {90, 0, 0, 7201, 11286, 6}, + {91, 0, 0, 7201, 11265, 2}, + {91, 0, 0, 7201, 7281, 1}, + {93, 0, 0, 7201, 11381, 2}, + {95, 0, 0, 7201, 10778, 3}, + {97, 0, 0, 7201, 11384, 1}, + {99, 0, 0, 7201, 11463, 1}, + {100, 0, 0, 7201, 11286, 6}, + {101, 0, 0, 7201, 11265, 2}, + {101, 0, 0, 7201, 7281, 1}, + {103, 0, 0, 7201, 11381, 2}, + {107, 0, 0, 7201, 11384, 1}, + {110, 0, 0, 7201, 11286, 6}, + {113, 0, 0, 7201, 11381, 2}, + {115, 0, 0, 7201, 11164, 1}, + {117, 0, 0, 7201, 11384, 1}, + {120, 0, 0, 7201, 11286, 12}, + {123, 0, 0, 7201, 11381, 2}, + {127, 0, 0, 7201, 11384, 1}, + {130, 0, 0, 7201, 11286, 12}, + {132, 0, 0, 7201, 11381, 2}, + {134, 0, 0, 7201, 11384, 1}, + {136, 0, 0, 7201, 11381, 2}, + {138, 0, 0, 7201, 11384, 1}, + {140, 0, 0, 7201, 11286, 12}, + {142, 0, 0, 7201, 11382, 1}, + {144, 0, 0, 7201, 11385, 1}, + {145, 0, 0, 7201, 11464, 1}, + {146, 0, 0, 7201, 11382, 1}, + {148, 0, 0, 7201, 11385, 1}, + {150, 0, 0, 7201, 11164, 1}, + {155, 0, 0, 7201, 11382, 1}, + {160, 0, 0, 7201, 11209, 3}, + {165, 0, 0, 7201, 11385, 1}, + {170, 0, 0, 7201, 11159, 10}, + {175, 0, 0, 7201, 11382, 1}, + {180, 0, 0, 7201, 11160, 10}, + {185, 0, 0, 7201, 11385, 1}, + {190, 0, 0, 7201, 11161, 10}, + {195, 0, 0, 7201, 11382, 1}, + {200, 0, 0, 7201, 11159, 15}, + {210, 0, 0, 7201, 11160, 15}, + {220, 0, 0, 7201, 11385, 1}, + {235, 0, 0, 7201, 11382, 2}, + {250, 0, 0, 7201, 11161, 15}, + {265, 0, 0, 7201, 11159, 20}, + {280, 0, 0, 7201, 11385, 1}, + {300, 0, 0, 7201, 11160, 20}, + {315, 0, 0, 7201, 11382, 2}, + {330, 0, 0, 7201, 11385, 1}, + {350, 0, 0, 7201, 11161, 20}, + {365, 0, 0, 7201, 11382, 2}, + {380, 0, 0, 7201, 11385, 1}, + {400, 0, 0, 7201, 11159, 25}, + {415, 0, 0, 7201, 11382, 2}, + {430, 0, 0, 7201, 11385, 1}, + {450, 0, 0, 7201, 11160, 25}, + {465, 0, 0, 7201, 11382, 2}, + {480, 0, 0, 7201, 11385, 1}, + {500, 0, 0, 7201, 11161, 25}, + {525, 0, 0, 7201, 11382, 2}, + {550, 0, 0, 7201, 11385, 1}, + {575, 0, 0, 7201, 11159, 25}, + {600, 0, 0, 7201, 11382, 2}, + {625, 0, 0, 7201, 11385, 1}, + {650, 0, 0, 7201, 11160, 25}, + {675, 0, 0, 7201, 11382, 2}, + {700, 0, 0, 7201, 11385, 1}, + {725, 0, 0, 7201, 11161, 25}, + {750, 0, 0, 7201, 11382, 2}, + {775, 0, 0, 7201, 11385, 1}, + {800, 0, 0, 7201, 11159, 25}, + {825, 0, 0, 7201, 11382, 2}, + {850, 0, 0, 7201, 11385, 1}, + {875, 0, 0, 7201, 11160, 25}, + {900, 0, 0, 7201, 11382, 2}, + {925, 0, 0, 7201, 11385, 1}, + {950, 0, 0, 7201, 11161, 25}, + {975, 0, 0, 7201, 11382, 2}, + {1000, 0, 0, 7201, 11385, 1}, + {1025, 0, 0, 7201, 11159, 25}, + {1050, 0, 0, 7201, 11382, 2}, + {1075, 0, 0, 7201, 11385, 1}, + {1100, 0, 0, 7201, 11160, 25}, + {1125, 0, 0, 7201, 11382, 2}, + {1150, 0, 0, 7201, 11385, 1}, + {1200, 0, 0, 7201, 11161, 25}, + {1235, 0, 0, 7201, 11382, 2}, + {1270, 0, 0, 7201, 11385, 1}, + {1305, 0, 0, 7201, 11159, 25}, + {1340, 0, 0, 7201, 11382, 2}, + {1375, 0, 0, 7201, 11385, 1}, + {1410, 0, 0, 7201, 11160, 25}, + {1445, 0, 0, 7201, 11382, 2}, + {1480, 0, 0, 7201, 11385, 1}, + {1500, 0, 0, 7201, 11161, 25}, + } + default: + //Covers all Pallone Requests... for now + weeklySeibatuRankingRewardsData = []WeeklySeibatuRankingRewardData{ + //1st + {1, 0, 0, 7202, 10, 10000}, + {1, 1, 0, 7201, 10, 30}, + {1, 1, 0, 7201, 10, 18}, + {1, 1, 0, 7201, 10, 18}, + //2nd - 3rd + {2, 3, 0, 7202, 10, 6000}, + {2, 3, 0, 7201, 10, 15}, + {2, 3, 0, 7201, 10, 9}, + {2, 3, 0, 7201, 10, 9}, + //4th -10th + {4, 10, 0, 7202, 10, 5500}, + {4, 10, 0, 7201, 10, 12}, + {4, 10, 0, 7201, 10, 9}, + } + + } + } - for _, reward := range weeklySeibatuRankingRewards { - bf := byteframe.NewByteFrame() - bf.WriteInt32(reward.Unk0) - bf.WriteInt32(reward.Unk1) - bf.WriteUint32(reward.Unk2) - bf.WriteInt32(reward.Unk3) - bf.WriteInt32(reward.Unk4) - bf.WriteInt32(reward.Unk5) - data = append(data, bf) + if pkt.Operation == 1 { + for _, seibatuData := range weeklySeibatuRankingRewards { + bf := byteframe.NewByteFrame() + bf.WriteInt32(seibatuData.Unk0) + bf.WriteInt32(seibatuData.ItemID) + bf.WriteUint32(seibatuData.Amount) + bf.WriteInt32(seibatuData.PlaceFrom) + bf.WriteInt32(seibatuData.PlaceTo) + data = append(data, bf) + } + } else { + for _, seibatuData := range weeklySeibatuRankingRewardsData { + bf := byteframe.NewByteFrame() + bf.WriteInt32(seibatuData.Index0) + bf.WriteInt32(seibatuData.Index1) + bf.WriteUint32(seibatuData.Index2) + bf.WriteInt32(seibatuData.DistributionType) + bf.WriteInt32(seibatuData.ItemID) + bf.WriteInt32(seibatuData.Amount) + data = append(data, bf) + } } + doAckEarthSucceed(s, pkt.AckHandle, data) }