mirror of
https://github.com/Mezeporta/Erupe.git
synced 2025-12-12 15:04:38 +01:00
1568 lines
42 KiB
Go
1568 lines
42 KiB
Go
package channelserver
|
|
|
|
import (
|
|
"erupe-ce/common/mhfmon"
|
|
"erupe-ce/common/stringsupport"
|
|
_config "erupe-ce/config"
|
|
"fmt"
|
|
"io"
|
|
"os"
|
|
"path/filepath"
|
|
"time"
|
|
|
|
"erupe-ce/common/byteframe"
|
|
"erupe-ce/network/mhfpacket"
|
|
"erupe-ce/server/channelserver/compression/deltacomp"
|
|
"erupe-ce/server/channelserver/compression/nullcomp"
|
|
"go.uber.org/zap"
|
|
)
|
|
|
|
func handleMsgMhfSavedata(s *Session, p mhfpacket.MHFPacket) {
|
|
pkt := p.(*mhfpacket.MsgMhfSavedata)
|
|
characterSaveData, err := GetCharacterSaveData(s, s.charID)
|
|
if err != nil {
|
|
s.logger.Error("failed to retrieve character save data from db", zap.Error(err), zap.Uint32("charID", s.charID))
|
|
return
|
|
}
|
|
// Var to hold the decompressed savedata for updating the launcher response fields.
|
|
if pkt.SaveType == 1 {
|
|
// Diff-based update.
|
|
// diffs themselves are also potentially compressed
|
|
diff, err := nullcomp.Decompress(pkt.RawDataPayload)
|
|
if err != nil {
|
|
s.logger.Error("Failed to decompress diff", zap.Error(err))
|
|
doAckSimpleSucceed(s, pkt.AckHandle, make([]byte, 4))
|
|
return
|
|
}
|
|
// Perform diff.
|
|
s.logger.Info("Diffing...")
|
|
characterSaveData.decompSave = deltacomp.ApplyDataDiff(diff, characterSaveData.decompSave)
|
|
} else {
|
|
dumpSaveData(s, pkt.RawDataPayload, "savedata")
|
|
// Regular blob update.
|
|
saveData, err := nullcomp.Decompress(pkt.RawDataPayload)
|
|
if err != nil {
|
|
s.logger.Error("Failed to decompress savedata from packet", zap.Error(err))
|
|
doAckSimpleSucceed(s, pkt.AckHandle, make([]byte, 4))
|
|
return
|
|
}
|
|
if s.server.erupeConfig.SaveDumps.RawEnabled {
|
|
dumpSaveData(s, saveData, "raw-savedata")
|
|
}
|
|
s.logger.Info("Updating save with blob")
|
|
characterSaveData.decompSave = saveData
|
|
}
|
|
characterSaveData.updateStructWithSaveData()
|
|
|
|
s.playtime = characterSaveData.Playtime
|
|
s.playtimeTime = time.Now()
|
|
|
|
// Bypass name-checker if new
|
|
if characterSaveData.IsNewCharacter == true {
|
|
s.Name = characterSaveData.Name
|
|
}
|
|
|
|
if characterSaveData.Name == s.Name || _config.ErupeConfig.RealClientMode <= _config.S10 {
|
|
characterSaveData.Save(s)
|
|
s.logger.Info("Wrote recompressed savedata back to DB.")
|
|
} else {
|
|
s.rawConn.Close()
|
|
s.logger.Warn("Save cancelled due to corruption.")
|
|
if s.server.erupeConfig.DeleteOnSaveCorruption {
|
|
s.server.db.Exec("UPDATE characters SET deleted=true WHERE id=$1", s.charID)
|
|
}
|
|
return
|
|
}
|
|
_, err = s.server.db.Exec("UPDATE characters SET name=$1 WHERE id=$2", characterSaveData.Name, s.charID)
|
|
if err != nil {
|
|
s.logger.Error("Failed to update character name in db", zap.Error(err))
|
|
}
|
|
doAckSimpleSucceed(s, pkt.AckHandle, make([]byte, 4))
|
|
}
|
|
|
|
func grpToGR(n int) uint16 {
|
|
var gr int
|
|
a := []int{208750, 593400, 993400, 1400900, 2315900, 3340900, 4505900, 5850900, 7415900, 9230900, 11345900, 100000000}
|
|
b := []int{7850, 8000, 8150, 9150, 10250, 11650, 13450, 15650, 18150, 21150, 23950}
|
|
c := []int{51, 100, 150, 200, 300, 400, 500, 600, 700, 800, 900}
|
|
|
|
for i := 0; i < len(a); i++ {
|
|
if n < a[i] {
|
|
if i == 0 {
|
|
for {
|
|
n -= 500
|
|
if n <= 500 {
|
|
if n < 0 {
|
|
i--
|
|
}
|
|
break
|
|
} else {
|
|
i++
|
|
for j := 0; j < i; j++ {
|
|
n -= 150
|
|
}
|
|
}
|
|
}
|
|
gr = i + 2
|
|
} else {
|
|
n -= a[i-1]
|
|
gr = c[i-1]
|
|
gr += n / b[i-1]
|
|
}
|
|
break
|
|
}
|
|
}
|
|
return uint16(gr)
|
|
}
|
|
|
|
func dumpSaveData(s *Session, data []byte, suffix string) {
|
|
if !s.server.erupeConfig.SaveDumps.Enabled {
|
|
return
|
|
} else {
|
|
dir := filepath.Join(s.server.erupeConfig.SaveDumps.OutputDir, fmt.Sprintf("%d", s.charID))
|
|
path := filepath.Join(s.server.erupeConfig.SaveDumps.OutputDir, fmt.Sprintf("%d", s.charID), fmt.Sprintf("%d_%s.bin", s.charID, suffix))
|
|
_, err := os.Stat(dir)
|
|
if err != nil {
|
|
if os.IsNotExist(err) {
|
|
err = os.MkdirAll(dir, os.ModePerm)
|
|
if err != nil {
|
|
s.logger.Error("Error dumping savedata, could not create folder")
|
|
return
|
|
}
|
|
} else {
|
|
s.logger.Error("Error dumping savedata")
|
|
return
|
|
}
|
|
}
|
|
err = os.WriteFile(path, data, 0644)
|
|
if err != nil {
|
|
s.logger.Error("Error dumping savedata, could not write file", zap.Error(err))
|
|
}
|
|
}
|
|
}
|
|
|
|
func handleMsgMhfLoaddata(s *Session, p mhfpacket.MHFPacket) {
|
|
pkt := p.(*mhfpacket.MsgMhfLoaddata)
|
|
if _, err := os.Stat(filepath.Join(s.server.erupeConfig.BinPath, "save_override.bin")); err == nil {
|
|
data, _ := os.ReadFile(filepath.Join(s.server.erupeConfig.BinPath, "save_override.bin"))
|
|
doAckBufSucceed(s, pkt.AckHandle, data)
|
|
return
|
|
}
|
|
|
|
var data []byte
|
|
err := s.server.db.QueryRow("SELECT savedata FROM characters WHERE id = $1", s.charID).Scan(&data)
|
|
if err != nil || len(data) == 0 {
|
|
s.logger.Warn(fmt.Sprintf("Failed to load savedata (CID: %d)", s.charID), zap.Error(err))
|
|
s.rawConn.Close() // Terminate the connection
|
|
return
|
|
}
|
|
doAckBufSucceed(s, pkt.AckHandle, data)
|
|
|
|
decompSaveData, err := nullcomp.Decompress(data)
|
|
if err != nil {
|
|
s.logger.Error("Failed to decompress savedata", zap.Error(err))
|
|
}
|
|
bf := byteframe.NewByteFrameFromBytes(decompSaveData)
|
|
bf.Seek(88, io.SeekStart)
|
|
name := bf.ReadNullTerminatedBytes()
|
|
s.server.userBinaryPartsLock.Lock()
|
|
s.server.userBinaryParts[userBinaryPartID{charID: s.charID, index: 1}] = append(name, []byte{0x00}...)
|
|
s.server.userBinaryPartsLock.Unlock()
|
|
s.Name = stringsupport.SJISToUTF8(name)
|
|
}
|
|
|
|
func handleMsgMhfSaveScenarioData(s *Session, p mhfpacket.MHFPacket) {
|
|
pkt := p.(*mhfpacket.MsgMhfSaveScenarioData)
|
|
dumpSaveData(s, pkt.RawDataPayload, "scenario")
|
|
_, err := s.server.db.Exec("UPDATE characters SET scenariodata = $1 WHERE id = $2", pkt.RawDataPayload, s.charID)
|
|
if err != nil {
|
|
s.logger.Error("Failed to update scenario data in db", zap.Error(err))
|
|
}
|
|
doAckSimpleSucceed(s, pkt.AckHandle, make([]byte, 4))
|
|
}
|
|
|
|
func handleMsgMhfLoadScenarioData(s *Session, p mhfpacket.MHFPacket) {
|
|
pkt := p.(*mhfpacket.MsgMhfLoadScenarioData)
|
|
var scenarioData []byte
|
|
bf := byteframe.NewByteFrame()
|
|
err := s.server.db.QueryRow("SELECT scenariodata FROM characters WHERE id = $1", s.charID).Scan(&scenarioData)
|
|
if err != nil || len(scenarioData) < 10 {
|
|
s.logger.Error("Failed to load scenariodata", zap.Error(err))
|
|
bf.WriteBytes(make([]byte, 10))
|
|
} else {
|
|
bf.WriteBytes(scenarioData)
|
|
}
|
|
doAckBufSucceed(s, pkt.AckHandle, bf.Data())
|
|
}
|
|
|
|
var paperGiftData = map[uint32][]PaperGift{
|
|
6001: {
|
|
{11159, 1, 1, 5000},
|
|
{11160, 1, 1, 3350},
|
|
{11161, 1, 1, 1500},
|
|
{11162, 1, 1, 100},
|
|
{11163, 1, 1, 50},
|
|
},
|
|
6002: {
|
|
{11159, 2, 1, 1800},
|
|
{11160, 2, 1, 1200},
|
|
{11161, 2, 1, 500},
|
|
{11162, 1, 1, 50},
|
|
{11037, 1, 1, 150},
|
|
{11038, 1, 1, 150},
|
|
{11044, 1, 1, 150},
|
|
{11057, 1, 1, 150},
|
|
{11059, 1, 1, 150},
|
|
{11079, 1, 1, 150},
|
|
{11098, 1, 1, 150},
|
|
{11104, 1, 1, 150},
|
|
{11117, 1, 1, 150},
|
|
{11128, 1, 1, 150},
|
|
{11133, 1, 1, 150},
|
|
{11137, 1, 1, 150},
|
|
{11143, 1, 1, 150},
|
|
{11132, 1, 1, 150},
|
|
{11039, 1, 1, 150},
|
|
{11040, 1, 1, 150},
|
|
{11049, 1, 1, 150},
|
|
{11061, 1, 1, 150},
|
|
{11063, 1, 1, 150},
|
|
{11077, 1, 1, 150},
|
|
{11099, 1, 1, 150},
|
|
{11105, 1, 1, 150},
|
|
{11129, 1, 1, 150},
|
|
{11130, 1, 1, 150},
|
|
{11131, 1, 1, 150},
|
|
{11139, 1, 1, 150},
|
|
{11145, 1, 1, 150},
|
|
{11096, 1, 1, 150},
|
|
{11041, 1, 1, 150},
|
|
{11047, 1, 1, 150},
|
|
{11054, 1, 1, 150},
|
|
{11065, 1, 1, 150},
|
|
{11068, 1, 1, 150},
|
|
{11075, 1, 1, 150},
|
|
{11100, 1, 1, 150},
|
|
{11106, 1, 1, 150},
|
|
{11119, 1, 1, 150},
|
|
{11135, 1, 1, 150},
|
|
{11136, 1, 1, 150},
|
|
{11138, 1, 1, 150},
|
|
{11088, 1, 1, 150},
|
|
{10370, 1, 1, 150},
|
|
{10368, 1, 1, 150},
|
|
},
|
|
6010: {
|
|
{11159, 1, 1, 3700},
|
|
{11160, 1, 1, 2900},
|
|
{11161, 1, 1, 1300},
|
|
{11453, 1, 1, 250},
|
|
{11454, 1, 1, 250},
|
|
{12055, 1, 1, 250},
|
|
{12065, 1, 1, 250},
|
|
{12058, 1, 1, 250},
|
|
{12068, 1, 1, 250},
|
|
{11774, 1, 1, 200},
|
|
{11773, 1, 1, 400},
|
|
},
|
|
6011: {
|
|
{11159, 1, 1, 3700},
|
|
{11160, 1, 1, 2900},
|
|
{11161, 1, 1, 1300},
|
|
{11453, 1, 1, 250},
|
|
{11454, 1, 1, 250},
|
|
{12055, 1, 1, 250},
|
|
{12065, 1, 1, 250},
|
|
{12058, 1, 1, 250},
|
|
{12068, 1, 1, 250},
|
|
{11774, 1, 1, 200},
|
|
{11773, 1, 1, 400},
|
|
},
|
|
6012: {
|
|
{11159, 2, 1, 3500},
|
|
{11160, 2, 1, 2900},
|
|
{11161, 2, 1, 1300},
|
|
{12508, 1, 1, 400},
|
|
{11453, 1, 1, 200},
|
|
{11454, 1, 1, 200},
|
|
{12055, 1, 1, 200},
|
|
{12065, 1, 1, 200},
|
|
{12058, 1, 1, 200},
|
|
{12068, 1, 1, 200},
|
|
{11775, 1, 1, 400},
|
|
{11776, 1, 1, 200},
|
|
{11777, 1, 1, 100},
|
|
},
|
|
7001: {
|
|
{11037, 1, 1, 290},
|
|
{11038, 1, 1, 270},
|
|
{11044, 1, 1, 270},
|
|
{11057, 1, 1, 290},
|
|
{11059, 1, 1, 290},
|
|
{11079, 1, 1, 290},
|
|
{11098, 1, 1, 280},
|
|
{11104, 1, 1, 300},
|
|
{11117, 1, 1, 280},
|
|
{11128, 1, 1, 290},
|
|
{11133, 1, 1, 290},
|
|
{11137, 1, 1, 300},
|
|
{11143, 1, 1, 290},
|
|
{11132, 1, 1, 270},
|
|
{11042, 1, 1, 47},
|
|
{11045, 1, 1, 47},
|
|
{11064, 1, 1, 47},
|
|
{11062, 1, 1, 47},
|
|
{11070, 1, 1, 48},
|
|
{11101, 1, 1, 47},
|
|
{11108, 1, 1, 47},
|
|
{11109, 1, 1, 47},
|
|
{11120, 1, 1, 47},
|
|
{11122, 1, 1, 47},
|
|
{11134, 1, 1, 47},
|
|
{11141, 1, 1, 47},
|
|
{11084, 1, 1, 47},
|
|
{11087, 1, 1, 47},
|
|
{11094, 1, 1, 47},
|
|
{10374, 1, 1, 47},
|
|
{10375, 1, 1, 47},
|
|
{11051, 1, 1, 17},
|
|
{11071, 1, 1, 16},
|
|
{11076, 1, 1, 16},
|
|
{11102, 1, 1, 17},
|
|
{11124, 1, 1, 17},
|
|
{11090, 1, 1, 17},
|
|
{11159, 1, 1, 1200},
|
|
{11159, 2, 1, 650},
|
|
{11160, 1, 1, 800},
|
|
{11160, 2, 1, 300},
|
|
{11161, 1, 1, 100},
|
|
{11161, 2, 1, 50},
|
|
{11164, 1, 1, 100},
|
|
{11162, 1, 1, 100},
|
|
{11163, 1, 1, 100},
|
|
{11158, 1, 1, 300},
|
|
{11463, 1, 1, 300},
|
|
{11356, 1, 1, 300},
|
|
{11464, 1, 1, 300},
|
|
{11357, 1, 1, 500},
|
|
{11039, 1, 2, 300},
|
|
{11040, 1, 2, 270},
|
|
{11049, 1, 2, 300},
|
|
{11061, 1, 2, 290},
|
|
{11063, 1, 2, 290},
|
|
{11077, 1, 2, 290},
|
|
{11099, 1, 2, 280},
|
|
{11105, 1, 2, 300},
|
|
{11129, 1, 2, 250},
|
|
{11130, 1, 2, 300},
|
|
{11131, 1, 2, 280},
|
|
{11139, 1, 2, 290},
|
|
{11145, 1, 2, 260},
|
|
{11096, 1, 2, 300},
|
|
{11046, 1, 2, 47},
|
|
{11066, 1, 2, 47},
|
|
{11067, 1, 2, 47},
|
|
{11072, 1, 2, 47},
|
|
{11082, 1, 2, 47},
|
|
{11103, 1, 2, 47},
|
|
{11110, 1, 2, 47},
|
|
{11112, 1, 2, 47},
|
|
{11114, 1, 2, 47},
|
|
{11115, 1, 2, 47},
|
|
{11121, 1, 2, 47},
|
|
{11144, 1, 2, 48},
|
|
{11085, 1, 2, 47},
|
|
{11089, 1, 2, 47},
|
|
{11091, 1, 2, 47},
|
|
{10376, 1, 2, 47},
|
|
{10377, 1, 2, 47},
|
|
{11127, 1, 2, 17},
|
|
{11069, 1, 2, 17},
|
|
{11142, 1, 2, 17},
|
|
{11078, 1, 2, 17},
|
|
{11056, 1, 2, 16},
|
|
{11092, 1, 2, 16},
|
|
{11159, 1, 2, 1200},
|
|
{11159, 2, 2, 650},
|
|
{11160, 1, 2, 800},
|
|
{11160, 2, 2, 300},
|
|
{11161, 1, 2, 100},
|
|
{11161, 2, 2, 50},
|
|
{11164, 1, 2, 100},
|
|
{11162, 1, 2, 100},
|
|
{11163, 1, 2, 100},
|
|
{11158, 1, 2, 300},
|
|
{11463, 1, 2, 300},
|
|
{11356, 1, 2, 300},
|
|
{11464, 1, 2, 300},
|
|
{11357, 1, 2, 500},
|
|
{11041, 1, 3, 266},
|
|
{11047, 1, 3, 266},
|
|
{11054, 1, 3, 266},
|
|
{11065, 1, 3, 266},
|
|
{11068, 1, 3, 266},
|
|
{11075, 1, 3, 266},
|
|
{11100, 1, 3, 266},
|
|
{11106, 1, 3, 266},
|
|
{11119, 1, 3, 266},
|
|
{11135, 1, 3, 268},
|
|
{11136, 1, 3, 268},
|
|
{11138, 1, 3, 268},
|
|
{11088, 1, 3, 268},
|
|
{10370, 1, 3, 266},
|
|
{10368, 1, 3, 268},
|
|
{11043, 1, 3, 50},
|
|
{11048, 1, 3, 50},
|
|
{11050, 1, 3, 50},
|
|
{11058, 1, 3, 50},
|
|
{11060, 1, 3, 50},
|
|
{11074, 1, 3, 50},
|
|
{11107, 1, 3, 50},
|
|
{11111, 1, 3, 50},
|
|
{11113, 1, 3, 50},
|
|
{11118, 1, 3, 50},
|
|
{11126, 1, 3, 50},
|
|
{11140, 1, 3, 50},
|
|
{11086, 1, 3, 50},
|
|
{11095, 1, 3, 50},
|
|
{11055, 1, 3, 50},
|
|
{10378, 1, 3, 50},
|
|
{11052, 1, 3, 15},
|
|
{11073, 1, 3, 15},
|
|
{11146, 1, 3, 15},
|
|
{11116, 1, 3, 15},
|
|
{11123, 1, 3, 15},
|
|
{11097, 1, 3, 15},
|
|
{10367, 1, 3, 15},
|
|
{10371, 1, 3, 15},
|
|
{10373, 1, 3, 15},
|
|
{10778, 1, 3, 375},
|
|
{11209, 1, 3, 375},
|
|
{10813, 1, 3, 375},
|
|
{11389, 1, 3, 375},
|
|
{11159, 1, 3, 1000},
|
|
{11159, 2, 3, 250},
|
|
{11160, 1, 3, 700},
|
|
{11160, 2, 3, 175},
|
|
{11161, 1, 3, 300},
|
|
{11161, 2, 3, 75},
|
|
{11465, 1, 3, 53},
|
|
{11466, 1, 3, 27},
|
|
{11467, 1, 3, 266},
|
|
{11468, 1, 3, 533},
|
|
{11469, 1, 3, 186},
|
|
},
|
|
7002: {
|
|
{11037, 1, 1, 100},
|
|
{11038, 1, 1, 100},
|
|
{11044, 1, 1, 100},
|
|
{11057, 1, 1, 100},
|
|
{11059, 1, 1, 100},
|
|
{11079, 1, 1, 100},
|
|
{11098, 1, 1, 100},
|
|
{11104, 1, 1, 100},
|
|
{11117, 1, 1, 100},
|
|
{11128, 1, 1, 100},
|
|
{11133, 1, 1, 100},
|
|
{11137, 1, 1, 100},
|
|
{11143, 1, 1, 100},
|
|
{11132, 1, 1, 100},
|
|
{11042, 1, 1, 60},
|
|
{11045, 1, 1, 60},
|
|
{11064, 1, 1, 60},
|
|
{11062, 1, 1, 60},
|
|
{11070, 1, 1, 60},
|
|
{11101, 1, 1, 60},
|
|
{11108, 1, 1, 60},
|
|
{11109, 1, 1, 60},
|
|
{11120, 1, 1, 60},
|
|
{11122, 1, 1, 60},
|
|
{11134, 1, 1, 60},
|
|
{11141, 1, 1, 60},
|
|
{11084, 1, 1, 60},
|
|
{11087, 1, 1, 60},
|
|
{11094, 1, 1, 60},
|
|
{10374, 1, 1, 60},
|
|
{10375, 1, 1, 60},
|
|
{11051, 1, 1, 20},
|
|
{11071, 1, 1, 20},
|
|
{11076, 1, 1, 20},
|
|
{11102, 1, 1, 20},
|
|
{11124, 1, 1, 20},
|
|
{11090, 1, 1, 20},
|
|
{11164, 1, 1, 400},
|
|
{11162, 1, 1, 200},
|
|
{11163, 1, 1, 200},
|
|
{11463, 1, 1, 100},
|
|
{11464, 1, 1, 150},
|
|
{10355, 1, 1, 150},
|
|
{12506, 1, 1, 200},
|
|
{12507, 1, 1, 300},
|
|
{12508, 1, 1, 900},
|
|
{13629, 1, 1, 350},
|
|
{13628, 1, 1, 200},
|
|
{11356, 1, 1, 100},
|
|
{11357, 1, 1, 150},
|
|
{12014, 1, 1, 250},
|
|
{12016, 1, 1, 400},
|
|
{12015, 1, 1, 410},
|
|
{11159, 2, 1, 500},
|
|
{11159, 4, 1, 500},
|
|
{11159, 6, 1, 500},
|
|
{11160, 2, 1, 400},
|
|
{11160, 4, 1, 400},
|
|
{11160, 6, 1, 400},
|
|
{11161, 2, 1, 100},
|
|
{11161, 4, 1, 100},
|
|
{11161, 6, 1, 100},
|
|
{11039, 1, 2, 100},
|
|
{11040, 1, 2, 100},
|
|
{11049, 1, 2, 100},
|
|
{11061, 1, 2, 100},
|
|
{11063, 1, 2, 100},
|
|
{11077, 1, 2, 100},
|
|
{11099, 1, 2, 100},
|
|
{11105, 1, 2, 100},
|
|
{11129, 1, 2, 100},
|
|
{11130, 1, 2, 100},
|
|
{11131, 1, 2, 100},
|
|
{11139, 1, 2, 100},
|
|
{11145, 1, 2, 100},
|
|
{11096, 1, 2, 100},
|
|
{11046, 1, 2, 60},
|
|
{11066, 1, 2, 60},
|
|
{11067, 1, 2, 60},
|
|
{11072, 1, 2, 60},
|
|
{11082, 1, 2, 60},
|
|
{11103, 1, 2, 60},
|
|
{11110, 1, 2, 60},
|
|
{11112, 1, 2, 60},
|
|
{11114, 1, 2, 60},
|
|
{11115, 1, 2, 60},
|
|
{11121, 1, 2, 60},
|
|
{11144, 1, 2, 60},
|
|
{11085, 1, 2, 60},
|
|
{11089, 1, 2, 60},
|
|
{11091, 1, 2, 60},
|
|
{10376, 1, 2, 60},
|
|
{10377, 1, 2, 60},
|
|
{11127, 1, 2, 20},
|
|
{11069, 1, 2, 20},
|
|
{11142, 1, 2, 20},
|
|
{11078, 1, 2, 20},
|
|
{11056, 1, 2, 20},
|
|
{11092, 1, 2, 20},
|
|
{11164, 1, 2, 400},
|
|
{11162, 1, 2, 200},
|
|
{11163, 1, 2, 200},
|
|
{11463, 1, 2, 250},
|
|
{11464, 1, 2, 350},
|
|
{12506, 1, 2, 150},
|
|
{12507, 1, 2, 200},
|
|
{12508, 1, 2, 350},
|
|
{13629, 1, 2, 250},
|
|
{13628, 1, 2, 200},
|
|
{10355, 1, 2, 400},
|
|
{11158, 1, 2, 100},
|
|
{11356, 1, 2, 100},
|
|
{11357, 1, 2, 100},
|
|
{12014, 1, 2, 300},
|
|
{12016, 1, 2, 450},
|
|
{12015, 1, 2, 460},
|
|
{11159, 2, 2, 500},
|
|
{11159, 4, 2, 500},
|
|
{11159, 6, 2, 500},
|
|
{11160, 2, 2, 400},
|
|
{11160, 4, 2, 400},
|
|
{11160, 6, 2, 400},
|
|
{11161, 2, 2, 100},
|
|
{11161, 4, 2, 100},
|
|
{11161, 6, 2, 100},
|
|
{11041, 1, 3, 120},
|
|
{11047, 1, 3, 120},
|
|
{11054, 1, 3, 120},
|
|
{11065, 1, 3, 120},
|
|
{11068, 1, 3, 120},
|
|
{11075, 1, 3, 120},
|
|
{11100, 1, 3, 120},
|
|
{11106, 1, 3, 120},
|
|
{11119, 1, 3, 120},
|
|
{11135, 1, 3, 120},
|
|
{11136, 1, 3, 120},
|
|
{11138, 1, 3, 120},
|
|
{11088, 1, 3, 120},
|
|
{10370, 1, 3, 120},
|
|
{10368, 1, 3, 120},
|
|
{11043, 1, 3, 65},
|
|
{11048, 1, 3, 65},
|
|
{11050, 1, 3, 65},
|
|
{11058, 1, 3, 65},
|
|
{11060, 1, 3, 65},
|
|
{11074, 1, 3, 65},
|
|
{11107, 1, 3, 65},
|
|
{11111, 1, 3, 65},
|
|
{11113, 1, 3, 65},
|
|
{11118, 1, 3, 65},
|
|
{11126, 1, 3, 65},
|
|
{11140, 1, 3, 65},
|
|
{11086, 1, 3, 65},
|
|
{11095, 1, 3, 65},
|
|
{11055, 1, 3, 65},
|
|
{10378, 1, 3, 65},
|
|
{11052, 1, 3, 15},
|
|
{11073, 1, 3, 15},
|
|
{11146, 1, 3, 15},
|
|
{11116, 1, 3, 15},
|
|
{11123, 1, 3, 15},
|
|
{11097, 1, 3, 15},
|
|
{10367, 1, 3, 15},
|
|
{10371, 1, 3, 15},
|
|
{10373, 1, 3, 15},
|
|
{10778, 3, 3, 490},
|
|
{11209, 3, 3, 490},
|
|
{10813, 3, 3, 490},
|
|
{11389, 3, 3, 490},
|
|
{12046, 3, 3, 500},
|
|
{12503, 3, 3, 500},
|
|
{11159, 2, 3, 500},
|
|
{11159, 4, 3, 500},
|
|
{11159, 6, 3, 500},
|
|
{11160, 2, 3, 400},
|
|
{11160, 4, 3, 400},
|
|
{11160, 6, 3, 400},
|
|
{11161, 2, 3, 100},
|
|
{11161, 4, 3, 100},
|
|
{11161, 6, 3, 100},
|
|
{11465, 1, 3, 53},
|
|
{11466, 1, 3, 27},
|
|
{11467, 1, 3, 266},
|
|
{11468, 1, 3, 533},
|
|
{11469, 1, 3, 186},
|
|
},
|
|
7011: {
|
|
{11037, 1, 1, 290},
|
|
{11038, 1, 1, 270},
|
|
{11044, 1, 1, 270},
|
|
{11057, 1, 1, 290},
|
|
{11059, 1, 1, 290},
|
|
{11079, 1, 1, 290},
|
|
{11098, 1, 1, 280},
|
|
{11104, 1, 1, 300},
|
|
{11117, 1, 1, 280},
|
|
{11128, 1, 1, 290},
|
|
{11133, 1, 1, 290},
|
|
{11137, 1, 1, 300},
|
|
{11143, 1, 1, 290},
|
|
{11132, 1, 1, 270},
|
|
{11042, 1, 1, 47},
|
|
{11045, 1, 1, 47},
|
|
{11064, 1, 1, 47},
|
|
{11062, 1, 1, 47},
|
|
{11070, 1, 1, 48},
|
|
{11101, 1, 1, 47},
|
|
{11108, 1, 1, 47},
|
|
{11109, 1, 1, 47},
|
|
{11120, 1, 1, 47},
|
|
{11122, 1, 1, 47},
|
|
{11134, 1, 1, 47},
|
|
{11141, 1, 1, 47},
|
|
{11084, 1, 1, 47},
|
|
{11087, 1, 1, 47},
|
|
{11094, 1, 1, 47},
|
|
{10374, 1, 1, 47},
|
|
{10375, 1, 1, 47},
|
|
{11051, 1, 1, 17},
|
|
{11071, 1, 1, 16},
|
|
{11076, 1, 1, 16},
|
|
{11102, 1, 1, 17},
|
|
{11124, 1, 1, 17},
|
|
{11090, 1, 1, 17},
|
|
{11159, 1, 1, 1200},
|
|
{11159, 2, 1, 650},
|
|
{11160, 1, 1, 800},
|
|
{11160, 2, 1, 300},
|
|
{11161, 1, 1, 100},
|
|
{11161, 2, 1, 50},
|
|
{11164, 1, 1, 100},
|
|
{11162, 1, 1, 100},
|
|
{11163, 1, 1, 100},
|
|
{11158, 1, 1, 300},
|
|
{11463, 1, 1, 300},
|
|
{11356, 1, 1, 300},
|
|
{11464, 1, 1, 300},
|
|
{11357, 1, 1, 500},
|
|
{11039, 1, 2, 300},
|
|
{11040, 1, 2, 270},
|
|
{11049, 1, 2, 300},
|
|
{11061, 1, 2, 290},
|
|
{11063, 1, 2, 290},
|
|
{11077, 1, 2, 290},
|
|
{11099, 1, 2, 280},
|
|
{11105, 1, 2, 300},
|
|
{11129, 1, 2, 250},
|
|
{11130, 1, 2, 300},
|
|
{11131, 1, 2, 280},
|
|
{11139, 1, 2, 290},
|
|
{11145, 1, 2, 260},
|
|
{11096, 1, 2, 300},
|
|
{11046, 1, 2, 47},
|
|
{11066, 1, 2, 47},
|
|
{11067, 1, 2, 47},
|
|
{11072, 1, 2, 47},
|
|
{11082, 1, 2, 47},
|
|
{11103, 1, 2, 47},
|
|
{11110, 1, 2, 47},
|
|
{11112, 1, 2, 47},
|
|
{11114, 1, 2, 47},
|
|
{11115, 1, 2, 47},
|
|
{11121, 1, 2, 47},
|
|
{11144, 1, 2, 48},
|
|
{11085, 1, 2, 47},
|
|
{11089, 1, 2, 47},
|
|
{11091, 1, 2, 47},
|
|
{10376, 1, 2, 47},
|
|
{10377, 1, 2, 47},
|
|
{11127, 1, 2, 17},
|
|
{11069, 1, 2, 17},
|
|
{11142, 1, 2, 17},
|
|
{11078, 1, 2, 17},
|
|
{11056, 1, 2, 16},
|
|
{11092, 1, 2, 16},
|
|
{11159, 1, 2, 1200},
|
|
{11159, 2, 2, 650},
|
|
{11160, 1, 2, 800},
|
|
{11160, 2, 2, 300},
|
|
{11161, 1, 2, 100},
|
|
{11161, 2, 2, 50},
|
|
{11164, 1, 2, 100},
|
|
{11162, 1, 2, 100},
|
|
{11163, 1, 2, 100},
|
|
{11158, 1, 2, 300},
|
|
{11463, 1, 2, 300},
|
|
{11356, 1, 2, 300},
|
|
{11464, 1, 2, 300},
|
|
{11357, 1, 2, 500},
|
|
{11041, 1, 3, 266},
|
|
{11047, 1, 3, 266},
|
|
{11054, 1, 3, 266},
|
|
{11065, 1, 3, 266},
|
|
{11068, 1, 3, 266},
|
|
{11075, 1, 3, 266},
|
|
{11100, 1, 3, 266},
|
|
{11106, 1, 3, 266},
|
|
{11119, 1, 3, 266},
|
|
{11135, 1, 3, 268},
|
|
{11136, 1, 3, 268},
|
|
{11138, 1, 3, 268},
|
|
{11088, 1, 3, 268},
|
|
{10370, 1, 3, 266},
|
|
{10368, 1, 3, 268},
|
|
{11043, 1, 3, 50},
|
|
{11048, 1, 3, 50},
|
|
{11050, 1, 3, 50},
|
|
{11058, 1, 3, 50},
|
|
{11060, 1, 3, 50},
|
|
{11074, 1, 3, 50},
|
|
{11107, 1, 3, 50},
|
|
{11111, 1, 3, 50},
|
|
{11113, 1, 3, 50},
|
|
{11118, 1, 3, 50},
|
|
{11126, 1, 3, 50},
|
|
{11140, 1, 3, 50},
|
|
{11086, 1, 3, 50},
|
|
{11095, 1, 3, 50},
|
|
{11055, 1, 3, 50},
|
|
{10378, 1, 3, 50},
|
|
{11052, 1, 3, 15},
|
|
{11073, 1, 3, 15},
|
|
{11146, 1, 3, 15},
|
|
{11116, 1, 3, 15},
|
|
{11123, 1, 3, 15},
|
|
{11097, 1, 3, 15},
|
|
{10367, 1, 3, 15},
|
|
{10371, 1, 3, 15},
|
|
{10373, 1, 3, 15},
|
|
{10778, 1, 3, 375},
|
|
{11209, 1, 3, 375},
|
|
{10813, 1, 3, 375},
|
|
{11389, 1, 3, 375},
|
|
{11159, 1, 3, 1000},
|
|
{11159, 2, 3, 250},
|
|
{11160, 1, 3, 700},
|
|
{11160, 2, 3, 175},
|
|
{11161, 1, 3, 300},
|
|
{11161, 2, 3, 75},
|
|
{11465, 1, 3, 53},
|
|
{11466, 1, 3, 27},
|
|
{11467, 1, 3, 266},
|
|
{11468, 1, 3, 533},
|
|
{11469, 1, 3, 186},
|
|
},
|
|
7012: {
|
|
{11037, 1, 1, 290},
|
|
{11038, 1, 1, 270},
|
|
{11044, 1, 1, 270},
|
|
{11057, 1, 1, 290},
|
|
{11059, 1, 1, 290},
|
|
{11079, 1, 1, 290},
|
|
{11098, 1, 1, 280},
|
|
{11104, 1, 1, 300},
|
|
{11117, 1, 1, 280},
|
|
{11128, 1, 1, 290},
|
|
{11133, 1, 1, 290},
|
|
{11137, 1, 1, 300},
|
|
{11143, 1, 1, 290},
|
|
{11132, 1, 1, 270},
|
|
{11042, 1, 1, 47},
|
|
{11045, 1, 1, 47},
|
|
{11064, 1, 1, 47},
|
|
{11062, 1, 1, 47},
|
|
{11070, 1, 1, 48},
|
|
{11101, 1, 1, 47},
|
|
{11108, 1, 1, 47},
|
|
{11109, 1, 1, 47},
|
|
{11120, 1, 1, 47},
|
|
{11122, 1, 1, 47},
|
|
{11134, 1, 1, 47},
|
|
{11141, 1, 1, 47},
|
|
{11084, 1, 1, 47},
|
|
{11087, 1, 1, 47},
|
|
{11094, 1, 1, 47},
|
|
{10374, 1, 1, 47},
|
|
{10375, 1, 1, 47},
|
|
{11051, 1, 1, 17},
|
|
{11071, 1, 1, 16},
|
|
{11076, 1, 1, 16},
|
|
{11102, 1, 1, 17},
|
|
{11124, 1, 1, 17},
|
|
{11090, 1, 1, 17},
|
|
{11159, 1, 1, 1200},
|
|
{11159, 2, 1, 650},
|
|
{11160, 1, 1, 800},
|
|
{11160, 2, 1, 300},
|
|
{11161, 1, 1, 100},
|
|
{11161, 2, 1, 50},
|
|
{11164, 1, 1, 100},
|
|
{11162, 1, 1, 100},
|
|
{11163, 1, 1, 100},
|
|
{11158, 1, 1, 300},
|
|
{11463, 1, 1, 300},
|
|
{11356, 1, 1, 300},
|
|
{11464, 1, 1, 300},
|
|
{11357, 1, 1, 500},
|
|
{11039, 1, 2, 300},
|
|
{11040, 1, 2, 270},
|
|
{11049, 1, 2, 300},
|
|
{11061, 1, 2, 290},
|
|
{11063, 1, 2, 290},
|
|
{11077, 1, 2, 290},
|
|
{11099, 1, 2, 280},
|
|
{11105, 1, 2, 300},
|
|
{11129, 1, 2, 250},
|
|
{11130, 1, 2, 300},
|
|
{11131, 1, 2, 280},
|
|
{11139, 1, 2, 290},
|
|
{11145, 1, 2, 260},
|
|
{11096, 1, 2, 300},
|
|
{11046, 1, 2, 47},
|
|
{11066, 1, 2, 47},
|
|
{11067, 1, 2, 47},
|
|
{11072, 1, 2, 47},
|
|
{11082, 1, 2, 47},
|
|
{11103, 1, 2, 47},
|
|
{11110, 1, 2, 47},
|
|
{11112, 1, 2, 47},
|
|
{11114, 1, 2, 47},
|
|
{11115, 1, 2, 47},
|
|
{11121, 1, 2, 47},
|
|
{11144, 1, 2, 48},
|
|
{11085, 1, 2, 47},
|
|
{11089, 1, 2, 47},
|
|
{11091, 1, 2, 47},
|
|
{10376, 1, 2, 47},
|
|
{10377, 1, 2, 47},
|
|
{11127, 1, 2, 17},
|
|
{11069, 1, 2, 17},
|
|
{11142, 1, 2, 17},
|
|
{11078, 1, 2, 17},
|
|
{11056, 1, 2, 16},
|
|
{11092, 1, 2, 16},
|
|
{11159, 1, 2, 1200},
|
|
{11159, 2, 2, 650},
|
|
{11160, 1, 2, 800},
|
|
{11160, 2, 2, 300},
|
|
{11161, 1, 2, 100},
|
|
{11161, 2, 2, 50},
|
|
{11164, 1, 2, 100},
|
|
{11162, 1, 2, 100},
|
|
{11163, 1, 2, 100},
|
|
{11158, 1, 2, 300},
|
|
{11463, 1, 2, 300},
|
|
{11356, 1, 2, 300},
|
|
{11464, 1, 2, 300},
|
|
{11357, 1, 2, 500},
|
|
{11041, 1, 3, 266},
|
|
{11047, 1, 3, 266},
|
|
{11054, 1, 3, 266},
|
|
{11065, 1, 3, 266},
|
|
{11068, 1, 3, 266},
|
|
{11075, 1, 3, 266},
|
|
{11100, 1, 3, 266},
|
|
{11106, 1, 3, 266},
|
|
{11119, 1, 3, 266},
|
|
{11135, 1, 3, 268},
|
|
{11136, 1, 3, 268},
|
|
{11138, 1, 3, 268},
|
|
{11088, 1, 3, 268},
|
|
{10370, 1, 3, 266},
|
|
{10368, 1, 3, 268},
|
|
{11043, 1, 3, 50},
|
|
{11048, 1, 3, 50},
|
|
{11050, 1, 3, 50},
|
|
{11058, 1, 3, 50},
|
|
{11060, 1, 3, 50},
|
|
{11074, 1, 3, 50},
|
|
{11107, 1, 3, 50},
|
|
{11111, 1, 3, 50},
|
|
{11113, 1, 3, 50},
|
|
{11118, 1, 3, 50},
|
|
{11126, 1, 3, 50},
|
|
{11140, 1, 3, 50},
|
|
{11086, 1, 3, 50},
|
|
{11095, 1, 3, 50},
|
|
{11055, 1, 3, 50},
|
|
{10378, 1, 3, 50},
|
|
{11052, 1, 3, 15},
|
|
{11073, 1, 3, 15},
|
|
{11146, 1, 3, 15},
|
|
{11116, 1, 3, 15},
|
|
{11123, 1, 3, 15},
|
|
{11097, 1, 3, 15},
|
|
{10367, 1, 3, 15},
|
|
{10371, 1, 3, 15},
|
|
{10373, 1, 3, 15},
|
|
{10778, 1, 3, 375},
|
|
{11209, 1, 3, 375},
|
|
{10813, 1, 3, 375},
|
|
{11389, 1, 3, 375},
|
|
{11159, 1, 3, 1000},
|
|
{11159, 2, 3, 250},
|
|
{11160, 1, 3, 700},
|
|
{11160, 2, 3, 175},
|
|
{11161, 1, 3, 300},
|
|
{11161, 2, 3, 75},
|
|
{11465, 1, 3, 53},
|
|
{11466, 1, 3, 27},
|
|
{11467, 1, 3, 266},
|
|
{11468, 1, 3, 533},
|
|
{11469, 1, 3, 186},
|
|
},
|
|
}
|
|
|
|
type PaperMissionTimetable struct {
|
|
Start time.Time
|
|
End time.Time
|
|
}
|
|
|
|
type PaperMissionData struct {
|
|
Unk0 uint8
|
|
Unk1 uint8
|
|
Unk2 int16
|
|
Reward1ID uint16
|
|
Reward1Quantity uint8
|
|
Reward2ID uint16
|
|
Reward2Quantity uint8
|
|
}
|
|
|
|
type PaperMission struct {
|
|
Timetables []PaperMissionTimetable
|
|
Data []PaperMissionData
|
|
}
|
|
|
|
type PaperData struct {
|
|
Unk0 uint16
|
|
Unk1 int16
|
|
Unk2 int16
|
|
Unk3 int16
|
|
Unk4 int16
|
|
Unk5 int16
|
|
Unk6 int16
|
|
}
|
|
|
|
type PaperGift struct {
|
|
Unk0 uint16
|
|
Unk1 uint8
|
|
Unk2 uint8
|
|
Unk3 uint16
|
|
}
|
|
|
|
func handleMsgMhfGetPaperData(s *Session, p mhfpacket.MHFPacket) {
|
|
pkt := p.(*mhfpacket.MsgMhfGetPaperData)
|
|
var data []*byteframe.ByteFrame
|
|
|
|
var paperData []PaperData
|
|
var paperMissions PaperMission
|
|
var paperGift []PaperGift
|
|
|
|
switch pkt.Unk2 {
|
|
case 0:
|
|
paperMissions = PaperMission{
|
|
[]PaperMissionTimetable{{TimeMidnight(), TimeMidnight().Add(24 * time.Hour)}},
|
|
[]PaperMissionData{},
|
|
}
|
|
case 5:
|
|
paperData = []PaperData{
|
|
// getTowerQuestTowerLevel
|
|
{1001, 1, 0, 0, 0, 0, 0},
|
|
{1001, 2, 0, 0, 0, 0, 0},
|
|
// iniTQT
|
|
{1003, 1, 100, 100, 200, 100, 0},
|
|
{1003, 2, 150, 100, 240, 100, 0},
|
|
{1004, 10, 9999, 40, 0, 0, 0},
|
|
{1005, 10, 500, 0, 0, 0, 0},
|
|
// getPaperDataSetFromProp
|
|
{1007, 1, 0, 0, 0, 0, 0},
|
|
{1008, 200, 400, 3000, 400, 3000, 0},
|
|
// getPaperDataSetParam1 / Dure Goal
|
|
{1010, 1, 4000, 0, 0, 0, 0},
|
|
{1010, 2, 4000, 0, 0, 0, 0},
|
|
// update_disp_flag / getPaperDataSetParam1
|
|
{1011, 1, 6000, 15000, 20000, 25000, 30000},
|
|
{1011, 2, 6000, 15000, 20000, 25000, 30000},
|
|
{1012, 1, 8000, 17500, 22500, 27500, 31000},
|
|
{1012, 2, 8000, 17500, 22500, 27500, 31000},
|
|
// setServerZako
|
|
{1015, 1, 16, 16, 16, 0, 0},
|
|
{1015, 2, 16, 16, 16, 0, 0},
|
|
// createTowerFloorRandomNumberArray
|
|
{1101, 1, 2016, 500, 0, 0, 0},
|
|
{1101, 2, 2016, 500, 0, 0, 0},
|
|
// HRP/SRP/GRP/GSRP/TRP reward
|
|
{1103, 1, 0, 0, 3000, 0, 3000},
|
|
{1103, 2, 0, 0, 3000, 0, 3000},
|
|
// getTowerNextVenomLevel
|
|
{1104, 1, 10, 9999, 40, 0, 0},
|
|
{1104, 2, 10, 9999, 40, 0, 0},
|
|
{1105, 1, 10, 500, 0, 0, 0},
|
|
{1105, 2, 10, 500, 0, 0, 0},
|
|
// setServerBoss
|
|
{2001, 1, mhfmon.Gravios, 58, 0, 6, 700},
|
|
{2001, 1, mhfmon.Gypceros, 58, 0, 3, 200},
|
|
{2001, 1, mhfmon.Basarios, 58, 0, 7, 250},
|
|
{2001, 1, mhfmon.Velocidrome, 58, 0, 1, 100},
|
|
{2001, 1, mhfmon.Rajang, 58, 0, 8, 1000},
|
|
{2001, 1, mhfmon.ShogunCeanataur, 58, 0, 9, 500},
|
|
{2001, 1, mhfmon.Bulldrome, 58, 0, 2, 150},
|
|
{2001, 1, mhfmon.Hypnocatrice, 58, 0, 4, 200},
|
|
{2001, 1, mhfmon.Lavasioth, 58, 0, 5, 500},
|
|
{2001, 1, mhfmon.Tigrex, 58, 0, 10, 800},
|
|
{2001, 1, mhfmon.Espinas, 58, 0, 11, 900},
|
|
{2001, 1, mhfmon.Pariapuria, 58, 0, 12, 600},
|
|
{2001, 2, mhfmon.Gravios, 60, 0, 6, 700},
|
|
{2001, 2, mhfmon.Gypceros, 60, 0, 3, 200},
|
|
{2001, 2, mhfmon.Basarios, 60, 0, 7, 350},
|
|
{2001, 2, mhfmon.Velocidrome, 60, 0, 1, 100},
|
|
{2001, 2, mhfmon.PurpleGypceros, 60, 0, 13, 200},
|
|
{2001, 2, mhfmon.YianGaruga, 60, 0, 15, 600},
|
|
{2001, 2, mhfmon.Rajang, 60, 0, 8, 1000},
|
|
{2001, 2, mhfmon.ShogunCeanataur, 60, 0, 2, 500},
|
|
{2001, 2, mhfmon.Bulldrome, 60, 0, 9, 150},
|
|
{2001, 2, mhfmon.Hypnocatrice, 60, 0, 4, 200},
|
|
{2001, 2, mhfmon.Lavasioth, 60, 0, 5, 500},
|
|
{2001, 2, mhfmon.Tigrex, 60, 0, 10, 800},
|
|
{2001, 2, mhfmon.Espinas, 60, 0, 11, 900},
|
|
{2001, 2, mhfmon.BurningEspinas, 60, 0, 14, 900},
|
|
{2001, 2, mhfmon.Pariapuria, 60, 0, 12, 600},
|
|
{2001, 2, mhfmon.Dyuragaua, 60, 0, 16, 1000},
|
|
}
|
|
case 6:
|
|
paperData = []PaperData{
|
|
// updateClearTowerFloor
|
|
{1002, 100, 0, 0, 0, 0, 0},
|
|
// give_gem_func
|
|
{1006, 1, 10000, 10000, 0, 0, 0},
|
|
{1006, 2, 10000, 20000, 0, 0, 0},
|
|
{1009, 20, 0, 0, 0, 0, 0},
|
|
// ttcStageInitDRP
|
|
{1013, 1, 1, 1, 100, 200, 300},
|
|
{1013, 1, 1, 2, 100, 200, 300},
|
|
{1013, 1, 2, 1, 300, 100, 200},
|
|
{1013, 1, 2, 2, 300, 100, 200},
|
|
{1013, 1, 3, 1, 200, 300, 100},
|
|
{1013, 1, 3, 2, 200, 300, 100},
|
|
{1013, 2, 1, 1, 300, 100, 200},
|
|
{1013, 2, 1, 2, 300, 100, 200},
|
|
{1013, 2, 2, 1, 200, 300, 100},
|
|
{1013, 2, 2, 2, 200, 300, 100},
|
|
{1013, 2, 3, 1, 100, 200, 300},
|
|
{1013, 2, 3, 2, 100, 200, 300},
|
|
{1013, 3, 1, 1, 200, 300, 100},
|
|
{1013, 3, 1, 2, 200, 300, 100},
|
|
{1013, 3, 2, 1, 100, 200, 300},
|
|
{1013, 3, 2, 2, 100, 200, 300},
|
|
{1013, 3, 3, 1, 300, 100, 200},
|
|
{1013, 3, 3, 2, 300, 100, 200},
|
|
{1016, 1, 1, 80, 0, 0, 0},
|
|
{1016, 1, 2, 80, 0, 0, 0},
|
|
{1016, 1, 3, 80, 0, 0, 0},
|
|
{1016, 2, 1, 80, 0, 0, 0},
|
|
{1016, 2, 2, 80, 0, 0, 0},
|
|
{1016, 2, 3, 80, 0, 0, 0},
|
|
{1201, 1, 60, 50, 0, 0, 0},
|
|
{1201, 2, 60, 50, 0, 0, 0},
|
|
// Gimmick Damage {ID, Block, StartFloor, EndFloor, Multiplier*100, Unk, Unk}
|
|
{1202, 1, 0, 5, 50, 0, 0},
|
|
{1202, 1, 6, 20, 60, 0, 0},
|
|
{1202, 1, 21, 40, 70, 0, 0},
|
|
{1202, 1, 41, 120, 80, 0, 0},
|
|
{1202, 1, 121, 160, 90, 0, 0},
|
|
{1202, 1, 161, 250, 100, 0, 0},
|
|
{1202, 1, 251, 500, 100, 0, 0},
|
|
{1202, 1, 501, 9999, 100, 0, 0},
|
|
{1202, 2, 0, 100, 100, 0, 0},
|
|
{1202, 2, 101, 200, 100, 0, 0},
|
|
{1202, 2, 201, 500, 150, 0, 0},
|
|
{1202, 2, 501, 9999, 150, 0, 0},
|
|
// Mon Damage {ID, Block, StartFloor, EndFloor, Multiplier*100, Unk, Unk}
|
|
{1203, 1, 0, 5, 10, 0, 0},
|
|
{1203, 1, 6, 10, 20, 0, 0},
|
|
{1203, 1, 11, 30, 30, 0, 0},
|
|
{1203, 1, 31, 60, 40, 0, 0},
|
|
{1203, 1, 61, 120, 50, 0, 0},
|
|
{1203, 1, 121, 130, 60, 0, 0},
|
|
{1203, 1, 131, 140, 70, 0, 0},
|
|
{1203, 1, 141, 150, 80, 0, 0},
|
|
{1203, 1, 151, 160, 85, 0, 0},
|
|
{1203, 1, 161, 200, 100, 0, 0},
|
|
{1203, 1, 201, 500, 100, 0, 0},
|
|
{1203, 1, 501, 9999, 100, 0, 0},
|
|
{1203, 2, 0, 120, 70, 0, 0},
|
|
{1203, 2, 121, 500, 120, 0, 0},
|
|
{1203, 2, 501, 9999, 120, 0, 0},
|
|
// Mon HP {ID, Block, StartFloor, EndFloor, Multiplier*100, Unk, Unk}
|
|
{1204, 1, 0, 5, 15, 0, 0},
|
|
{1204, 1, 6, 10, 20, 0, 0},
|
|
{1204, 1, 11, 15, 25, 0, 0},
|
|
{1204, 1, 16, 20, 27, 0, 0},
|
|
{1204, 1, 21, 25, 30, 0, 0},
|
|
{1204, 1, 26, 30, 32, 0, 0},
|
|
{1204, 1, 31, 40, 35, 0, 0},
|
|
{1204, 1, 41, 50, 37, 0, 0},
|
|
{1204, 1, 51, 60, 40, 0, 0},
|
|
{1204, 1, 61, 70, 43, 0, 0},
|
|
{1204, 1, 71, 80, 45, 0, 0},
|
|
{1204, 1, 81, 90, 47, 0, 0},
|
|
{1204, 1, 91, 100, 50, 0, 0},
|
|
{1204, 1, 101, 110, 60, 0, 0},
|
|
{1204, 1, 111, 120, 70, 0, 0},
|
|
{1204, 1, 121, 130, 75, 0, 0},
|
|
{1204, 1, 131, 140, 82, 0, 0},
|
|
{1204, 1, 141, 160, 85, 0, 0},
|
|
{1204, 1, 161, 200, 100, 0, 0},
|
|
{1204, 1, 201, 500, 100, 0, 0},
|
|
{1204, 1, 501, 9999, 100, 0, 0},
|
|
{1204, 2, 0, 120, 70, 0, 0},
|
|
{1204, 2, 121, 500, 120, 0, 0},
|
|
{1204, 2, 501, 9999, 120, 0, 0},
|
|
// Supply Items {ID, Block, Unk, ItemID, Quantity, Unk, Unk}
|
|
{4001, 1, 0, 0, 0, 0, 0},
|
|
{4001, 2, 0, 10667, 5, 0, 1},
|
|
{4001, 2, 0, 10667, 5, 0, 1},
|
|
{4001, 2, 0, 10667, 5, 0, 1},
|
|
{4001, 2, 0, 10667, 5, 0, 1},
|
|
{4001, 2, 0, 10668, 2, 0, 1},
|
|
{4001, 2, 0, 10668, 2, 0, 1},
|
|
{4001, 2, 0, 10668, 2, 0, 1},
|
|
{4001, 2, 0, 10668, 2, 0, 1},
|
|
{4001, 2, 0, 10669, 1, 0, 1},
|
|
{4001, 2, 0, 10669, 1, 0, 1},
|
|
{4001, 2, 0, 10669, 1, 0, 1},
|
|
{4001, 2, 0, 10669, 1, 0, 1},
|
|
{4001, 2, 0, 10671, 3, 0, 1},
|
|
{4001, 2, 0, 10671, 3, 0, 1},
|
|
{4001, 2, 0, 10671, 3, 0, 1},
|
|
{4001, 2, 0, 10671, 3, 0, 1},
|
|
{4001, 2, 0, 10384, 1, 0, 1},
|
|
{4001, 2, 0, 10384, 1, 0, 1},
|
|
{4001, 2, 0, 10670, 2, 0, 1},
|
|
{4001, 2, 0, 10670, 2, 0, 1},
|
|
{4001, 2, 0, 10682, 2, 0, 1},
|
|
{4001, 2, 0, 10683, 2, 0, 1},
|
|
{4001, 2, 0, 10678, 1, 0, 1},
|
|
{4001, 2, 0, 10678, 1, 0, 1},
|
|
// Item Rewards {ID, Block, Unk, ItemID, Quantity?, Chance*100, Unk}
|
|
{4005, 1, 0, 11159, 1, 5000, 1},
|
|
{4005, 1, 0, 11160, 1, 3350, 1},
|
|
{4005, 1, 0, 11161, 1, 1500, 1},
|
|
{4005, 1, 0, 11162, 1, 100, 1},
|
|
{4005, 1, 0, 11163, 1, 50, 1},
|
|
{4005, 2, 0, 11159, 2, 1800, 1},
|
|
{4005, 2, 0, 11160, 2, 1200, 1},
|
|
{4005, 2, 0, 11161, 2, 500, 1},
|
|
{4005, 2, 0, 11162, 1, 50, 1},
|
|
{4005, 2, 0, 11037, 1, 150, 1},
|
|
{4005, 2, 0, 11038, 1, 150, 1},
|
|
{4005, 2, 0, 11044, 1, 150, 1},
|
|
{4005, 2, 0, 11057, 1, 150, 1},
|
|
{4005, 2, 0, 11059, 1, 150, 1},
|
|
{4005, 2, 0, 11079, 1, 150, 1},
|
|
{4005, 2, 0, 11098, 1, 150, 1},
|
|
{4005, 2, 0, 11104, 1, 150, 1},
|
|
{4005, 2, 0, 11117, 1, 150, 1},
|
|
{4005, 2, 0, 11128, 1, 150, 1},
|
|
{4005, 2, 0, 11133, 1, 150, 1},
|
|
{4005, 2, 0, 11137, 1, 150, 1},
|
|
{4005, 2, 0, 11143, 1, 150, 1},
|
|
{4005, 2, 0, 11132, 1, 150, 1},
|
|
{4005, 2, 0, 11039, 1, 150, 1},
|
|
{4005, 2, 0, 11040, 1, 150, 1},
|
|
{4005, 2, 0, 11049, 1, 150, 1},
|
|
{4005, 2, 0, 11061, 1, 150, 1},
|
|
{4005, 2, 0, 11063, 1, 150, 1},
|
|
{4005, 2, 0, 11077, 1, 150, 1},
|
|
{4005, 2, 0, 11099, 1, 150, 1},
|
|
{4005, 2, 0, 11105, 1, 150, 1},
|
|
{4005, 2, 0, 11129, 1, 150, 1},
|
|
{4005, 2, 0, 11130, 1, 150, 1},
|
|
{4005, 2, 0, 11131, 1, 150, 1},
|
|
{4005, 2, 0, 11139, 1, 150, 1},
|
|
{4005, 2, 0, 11145, 1, 150, 1},
|
|
{4005, 2, 0, 11096, 1, 150, 1},
|
|
{4005, 2, 0, 11041, 1, 150, 1},
|
|
{4005, 2, 0, 11047, 1, 150, 1},
|
|
{4005, 2, 0, 11054, 1, 150, 1},
|
|
{4005, 2, 0, 11065, 1, 150, 1},
|
|
{4005, 2, 0, 11068, 1, 150, 1},
|
|
{4005, 2, 0, 11075, 1, 150, 1},
|
|
{4005, 2, 0, 11100, 1, 150, 1},
|
|
{4005, 2, 0, 11106, 1, 150, 1},
|
|
{4005, 2, 0, 11119, 1, 150, 1},
|
|
{4005, 2, 0, 11135, 1, 150, 1},
|
|
{4005, 2, 0, 11136, 1, 150, 1},
|
|
{4005, 2, 0, 11138, 1, 150, 1},
|
|
{4005, 2, 0, 11088, 1, 150, 1},
|
|
{4005, 2, 0, 10370, 1, 150, 1},
|
|
{4005, 2, 0, 10368, 1, 150, 1},
|
|
{4006, 1, 0, 11159, 1, 5000, 1},
|
|
{4006, 1, 0, 11160, 1, 3350, 1},
|
|
{4006, 1, 0, 11161, 1, 1500, 1},
|
|
{4006, 1, 0, 11162, 1, 100, 1},
|
|
{4006, 1, 0, 11163, 1, 50, 1},
|
|
{4006, 2, 0, 11159, 2, 1800, 1},
|
|
{4006, 2, 0, 11160, 2, 1200, 1},
|
|
{4006, 2, 0, 11161, 2, 500, 1},
|
|
{4006, 2, 0, 11162, 1, 50, 1},
|
|
{4006, 2, 0, 11037, 1, 150, 1},
|
|
{4006, 2, 0, 11038, 1, 150, 1},
|
|
{4006, 2, 0, 11044, 1, 150, 1},
|
|
{4006, 2, 0, 11057, 1, 150, 1},
|
|
{4006, 2, 0, 11059, 1, 150, 1},
|
|
{4006, 2, 0, 11079, 1, 150, 1},
|
|
{4006, 2, 0, 11098, 1, 150, 1},
|
|
{4006, 2, 0, 11104, 1, 150, 1},
|
|
{4006, 2, 0, 11117, 1, 150, 1},
|
|
{4006, 2, 0, 11128, 1, 150, 1},
|
|
{4006, 2, 0, 11133, 1, 150, 1},
|
|
{4006, 2, 0, 11137, 1, 150, 1},
|
|
{4006, 2, 0, 11143, 1, 150, 1},
|
|
{4006, 2, 0, 11132, 1, 150, 1},
|
|
{4006, 2, 0, 11039, 1, 150, 1},
|
|
{4006, 2, 0, 11040, 1, 150, 1},
|
|
{4006, 2, 0, 11049, 1, 150, 1},
|
|
{4006, 2, 0, 11061, 1, 150, 1},
|
|
{4006, 2, 0, 11063, 1, 150, 1},
|
|
{4006, 2, 0, 11077, 1, 150, 1},
|
|
{4006, 2, 0, 11099, 1, 150, 1},
|
|
{4006, 2, 0, 11105, 1, 150, 1},
|
|
{4006, 2, 0, 11129, 1, 150, 1},
|
|
{4006, 2, 0, 11130, 1, 150, 1},
|
|
{4006, 2, 0, 11131, 1, 150, 1},
|
|
{4006, 2, 0, 11139, 1, 150, 1},
|
|
{4006, 2, 0, 11145, 1, 150, 1},
|
|
{4006, 2, 0, 11096, 1, 150, 1},
|
|
{4006, 2, 0, 11041, 1, 150, 1},
|
|
{4006, 2, 0, 11047, 1, 150, 1},
|
|
{4006, 2, 0, 11054, 1, 150, 1},
|
|
{4006, 2, 0, 11065, 1, 150, 1},
|
|
{4006, 2, 0, 11068, 1, 150, 1},
|
|
{4006, 2, 0, 11075, 1, 150, 1},
|
|
{4006, 2, 0, 11100, 1, 150, 1},
|
|
{4006, 2, 0, 11106, 1, 150, 1},
|
|
{4006, 2, 0, 11119, 1, 150, 1},
|
|
{4006, 2, 0, 11135, 1, 150, 1},
|
|
{4006, 2, 0, 11136, 1, 150, 1},
|
|
{4006, 2, 0, 11138, 1, 150, 1},
|
|
{4006, 2, 0, 11088, 1, 150, 1},
|
|
{4006, 2, 0, 10370, 1, 150, 1},
|
|
{4006, 2, 0, 10368, 1, 150, 1},
|
|
{4007, 1, 0, 11058, 1, 70, 1},
|
|
{4007, 1, 0, 11060, 1, 70, 1},
|
|
{4007, 1, 0, 11062, 1, 70, 1},
|
|
{4007, 1, 0, 11064, 1, 70, 1},
|
|
{4007, 1, 0, 11066, 1, 70, 1},
|
|
{4007, 1, 0, 11118, 1, 70, 1},
|
|
{4007, 1, 0, 11120, 1, 70, 1},
|
|
{4007, 1, 0, 11110, 1, 70, 1},
|
|
{4007, 1, 0, 11112, 1, 70, 1},
|
|
{4007, 1, 0, 11114, 1, 70, 1},
|
|
{4007, 1, 0, 11042, 1, 70, 1},
|
|
{4007, 1, 0, 11043, 1, 70, 1},
|
|
{4007, 1, 0, 11074, 1, 70, 1},
|
|
{4007, 1, 0, 11140, 1, 70, 1},
|
|
{4007, 1, 0, 11067, 1, 70, 1},
|
|
{4007, 1, 0, 11048, 1, 70, 1},
|
|
{4007, 1, 0, 11046, 1, 70, 1},
|
|
{4007, 1, 0, 11103, 1, 70, 1},
|
|
{4007, 1, 0, 11107, 1, 70, 1},
|
|
{4007, 1, 0, 11108, 1, 70, 1},
|
|
{4007, 1, 0, 11121, 1, 70, 1},
|
|
{4007, 1, 0, 11134, 1, 70, 1},
|
|
{4007, 1, 0, 11084, 1, 70, 1},
|
|
{4007, 1, 0, 11085, 1, 70, 1},
|
|
{4007, 1, 0, 11086, 1, 70, 1},
|
|
{4007, 1, 0, 11087, 1, 70, 1},
|
|
{4007, 1, 0, 11094, 1, 70, 1},
|
|
{4007, 1, 0, 11095, 1, 70, 1},
|
|
{4007, 1, 0, 10374, 1, 70, 1},
|
|
{4007, 1, 0, 10375, 1, 70, 1},
|
|
{4007, 1, 0, 10376, 1, 70, 1},
|
|
{4007, 1, 0, 10377, 1, 70, 1},
|
|
{4007, 1, 0, 10378, 1, 70, 1},
|
|
{4007, 1, 0, 11069, 1, 45, 1},
|
|
{4007, 1, 0, 11071, 1, 45, 1},
|
|
{4007, 1, 0, 11073, 1, 45, 1},
|
|
{4007, 1, 0, 11076, 1, 45, 1},
|
|
{4007, 1, 0, 11078, 1, 45, 1},
|
|
{4007, 1, 0, 11116, 1, 45, 1},
|
|
{4007, 1, 0, 11123, 1, 45, 1},
|
|
{4007, 1, 0, 11127, 1, 45, 1},
|
|
{4007, 1, 0, 11142, 1, 45, 1},
|
|
{4007, 1, 0, 11056, 1, 45, 1},
|
|
{4007, 1, 0, 11090, 1, 45, 1},
|
|
{4007, 1, 0, 11097, 1, 45, 1},
|
|
{4007, 1, 0, 10367, 1, 45, 1},
|
|
{4007, 1, 0, 10371, 1, 45, 1},
|
|
{4007, 1, 0, 10373, 1, 45, 1},
|
|
{4007, 1, 0, 11080, 1, 15, 1},
|
|
{4007, 1, 0, 11081, 1, 15, 1},
|
|
{4007, 1, 0, 11083, 1, 15, 1},
|
|
{4007, 1, 0, 11125, 1, 15, 1},
|
|
{4007, 1, 0, 11093, 1, 14, 1},
|
|
{4007, 1, 0, 11053, 1, 10, 1},
|
|
{4007, 1, 0, 11147, 1, 10, 1},
|
|
{4007, 1, 0, 10372, 1, 5, 1},
|
|
{4007, 1, 0, 10369, 1, 1, 1},
|
|
{4007, 1, 0, 11163, 1, 150, 1},
|
|
{4007, 1, 0, 11465, 1, 50, 1},
|
|
{4007, 1, 0, 11466, 1, 25, 1},
|
|
{4007, 1, 0, 11467, 1, 200, 1},
|
|
{4007, 1, 0, 11468, 1, 400, 1},
|
|
{4007, 1, 0, 11469, 1, 150, 1},
|
|
{4007, 1, 0, 11037, 1, 92, 1},
|
|
{4007, 1, 0, 11038, 1, 92, 1},
|
|
{4007, 1, 0, 11044, 1, 92, 1},
|
|
{4007, 1, 0, 11057, 1, 92, 1},
|
|
{4007, 1, 0, 11059, 1, 92, 1},
|
|
{4007, 1, 0, 11079, 1, 92, 1},
|
|
{4007, 1, 0, 11098, 1, 92, 1},
|
|
{4007, 1, 0, 11104, 1, 92, 1},
|
|
{4007, 1, 0, 11117, 1, 92, 1},
|
|
{4007, 1, 0, 11133, 1, 92, 1},
|
|
{4007, 1, 0, 11137, 1, 92, 1},
|
|
{4007, 1, 0, 11143, 1, 92, 1},
|
|
{4007, 1, 0, 11132, 1, 92, 1},
|
|
{4007, 1, 0, 11039, 1, 92, 1},
|
|
{4007, 1, 0, 11040, 1, 92, 1},
|
|
{4007, 1, 0, 11049, 1, 92, 1},
|
|
{4007, 1, 0, 11061, 1, 92, 1},
|
|
{4007, 1, 0, 11063, 1, 92, 1},
|
|
{4007, 1, 0, 11077, 1, 92, 1},
|
|
{4007, 1, 0, 11099, 1, 92, 1},
|
|
{4007, 1, 0, 11105, 1, 92, 1},
|
|
{4007, 1, 0, 11129, 1, 92, 1},
|
|
{4007, 1, 0, 11130, 1, 92, 1},
|
|
{4007, 1, 0, 11131, 1, 92, 1},
|
|
{4007, 1, 0, 11139, 1, 92, 1},
|
|
{4007, 1, 0, 11145, 1, 91, 1},
|
|
{4007, 1, 0, 11096, 1, 91, 1},
|
|
{4007, 1, 0, 11041, 1, 91, 1},
|
|
{4007, 1, 0, 11047, 1, 91, 1},
|
|
{4007, 1, 0, 11054, 1, 91, 1},
|
|
{4007, 1, 0, 11065, 1, 91, 1},
|
|
{4007, 1, 0, 11068, 1, 91, 1},
|
|
{4007, 1, 0, 11075, 1, 91, 1},
|
|
{4007, 1, 0, 11100, 1, 91, 1},
|
|
{4007, 1, 0, 11106, 1, 91, 1},
|
|
{4007, 1, 0, 11119, 1, 91, 1},
|
|
{4007, 1, 0, 11135, 1, 91, 1},
|
|
{4007, 1, 0, 11136, 1, 91, 1},
|
|
{4007, 1, 0, 11138, 1, 91, 1},
|
|
{4007, 1, 0, 11088, 1, 91, 1},
|
|
{4007, 1, 0, 10370, 1, 91, 1},
|
|
{4007, 1, 0, 10368, 1, 91, 1},
|
|
{4007, 1, 0, 11045, 1, 91, 1},
|
|
{4007, 1, 0, 11070, 1, 91, 1},
|
|
{4007, 1, 0, 11101, 1, 91, 1},
|
|
{4007, 1, 0, 11109, 1, 91, 1},
|
|
{4007, 1, 0, 11122, 1, 91, 1},
|
|
{4007, 1, 0, 11141, 1, 91, 1},
|
|
{4007, 1, 0, 11051, 1, 91, 1},
|
|
{4007, 1, 0, 11102, 1, 91, 1},
|
|
{4007, 1, 0, 11124, 1, 91, 1},
|
|
{4007, 1, 0, 11072, 1, 91, 1},
|
|
{4007, 1, 0, 11082, 1, 91, 1},
|
|
{4007, 1, 0, 11115, 1, 91, 1},
|
|
{4007, 1, 0, 11144, 1, 91, 1},
|
|
{4007, 1, 0, 11089, 1, 91, 1},
|
|
{4007, 1, 0, 11091, 1, 91, 1},
|
|
{4007, 1, 0, 11092, 1, 91, 1},
|
|
{4007, 1, 0, 11050, 1, 91, 1},
|
|
{4007, 1, 0, 11111, 1, 91, 1},
|
|
{4007, 1, 0, 11113, 1, 91, 1},
|
|
{4007, 1, 0, 11126, 1, 91, 1},
|
|
{4007, 1, 0, 11055, 1, 91, 1},
|
|
{4007, 1, 0, 11052, 1, 91, 1},
|
|
{4007, 1, 0, 11146, 1, 91, 1},
|
|
{4007, 2, 0, 11058, 1, 90, 1},
|
|
{4007, 2, 0, 11060, 1, 90, 1},
|
|
{4007, 2, 0, 11062, 1, 90, 1},
|
|
{4007, 2, 0, 11064, 1, 90, 1},
|
|
{4007, 2, 0, 11066, 1, 90, 1},
|
|
{4007, 2, 0, 11118, 1, 90, 1},
|
|
{4007, 2, 0, 11120, 1, 90, 1},
|
|
{4007, 2, 0, 11110, 1, 90, 1},
|
|
{4007, 2, 0, 11112, 1, 90, 1},
|
|
{4007, 2, 0, 11114, 1, 90, 1},
|
|
{4007, 2, 0, 11042, 1, 90, 1},
|
|
{4007, 2, 0, 11043, 1, 90, 1},
|
|
{4007, 2, 0, 11074, 1, 90, 1},
|
|
{4007, 2, 0, 11140, 1, 90, 1},
|
|
{4007, 2, 0, 11067, 1, 90, 1},
|
|
{4007, 2, 0, 11048, 1, 90, 1},
|
|
{4007, 2, 0, 11046, 1, 90, 1},
|
|
{4007, 2, 0, 11103, 1, 90, 1},
|
|
{4007, 2, 0, 11107, 1, 90, 1},
|
|
{4007, 2, 0, 11108, 1, 90, 1},
|
|
{4007, 2, 0, 11121, 1, 90, 1},
|
|
{4007, 2, 0, 11134, 1, 90, 1},
|
|
{4007, 2, 0, 11084, 1, 90, 1},
|
|
{4007, 2, 0, 11085, 1, 90, 1},
|
|
{4007, 2, 0, 11086, 1, 90, 1},
|
|
{4007, 2, 0, 11087, 1, 90, 1},
|
|
{4007, 2, 0, 11094, 1, 90, 1},
|
|
{4007, 2, 0, 11095, 1, 90, 1},
|
|
{4007, 2, 0, 10374, 1, 90, 1},
|
|
{4007, 2, 0, 10375, 1, 90, 1},
|
|
{4007, 2, 0, 10376, 1, 90, 1},
|
|
{4007, 2, 0, 10377, 1, 90, 1},
|
|
{4007, 2, 0, 10378, 1, 90, 1},
|
|
{4007, 2, 0, 11069, 1, 80, 1},
|
|
{4007, 2, 0, 11071, 1, 80, 1},
|
|
{4007, 2, 0, 11073, 1, 80, 1},
|
|
{4007, 2, 0, 11076, 1, 80, 1},
|
|
{4007, 2, 0, 11078, 1, 80, 1},
|
|
{4007, 2, 0, 11116, 1, 80, 1},
|
|
{4007, 2, 0, 11123, 1, 80, 1},
|
|
{4007, 2, 0, 11127, 1, 80, 1},
|
|
{4007, 2, 0, 11142, 1, 80, 1},
|
|
{4007, 2, 0, 11056, 1, 80, 1},
|
|
{4007, 2, 0, 11090, 1, 80, 1},
|
|
{4007, 2, 0, 11097, 1, 80, 1},
|
|
{4007, 2, 0, 10367, 1, 80, 1},
|
|
{4007, 2, 0, 10371, 1, 80, 1},
|
|
{4007, 2, 0, 10373, 1, 80, 1},
|
|
{4007, 2, 0, 11080, 1, 22, 1},
|
|
{4007, 2, 0, 11081, 1, 22, 1},
|
|
{4007, 2, 0, 11083, 1, 22, 1},
|
|
{4007, 2, 0, 11125, 1, 22, 1},
|
|
{4007, 2, 0, 11093, 1, 22, 1},
|
|
{4007, 2, 0, 11053, 1, 15, 1},
|
|
{4007, 2, 0, 11147, 1, 15, 1},
|
|
{4007, 2, 0, 10372, 1, 8, 1},
|
|
{4007, 2, 0, 10369, 1, 2, 1},
|
|
{4007, 2, 0, 11159, 3, 1220, 1},
|
|
{4007, 2, 0, 11160, 3, 650, 1},
|
|
{4007, 2, 0, 11161, 3, 160, 1},
|
|
{4007, 2, 0, 11661, 1, 800, 1},
|
|
{4007, 2, 0, 11662, 1, 800, 1},
|
|
{4007, 2, 0, 11163, 1, 500, 1},
|
|
{4007, 2, 0, 11162, 1, 550, 1},
|
|
{4007, 2, 0, 11465, 1, 50, 1},
|
|
{4007, 2, 0, 11466, 1, 25, 1},
|
|
{4007, 2, 0, 11467, 1, 250, 1},
|
|
{4007, 2, 0, 11468, 1, 500, 1},
|
|
{4007, 2, 0, 11469, 1, 175, 1},
|
|
// Probably treasure chest rewards
|
|
{4202, 1, 0, 11163, 1, 6000, 1},
|
|
{4202, 1, 0, 11465, 1, 200, 1},
|
|
{4202, 1, 0, 11466, 1, 100, 1},
|
|
{4202, 1, 0, 11467, 1, 1000, 1},
|
|
{4202, 1, 0, 11468, 1, 2000, 1},
|
|
{4202, 1, 0, 11469, 1, 700, 1},
|
|
{4202, 2, 0, 11661, 1, 800, 1},
|
|
{4202, 2, 0, 11662, 1, 800, 1},
|
|
{4202, 2, 0, 11163, 1, 400, 1},
|
|
{4202, 2, 0, 11465, 1, 400, 1},
|
|
{4202, 2, 0, 11466, 1, 200, 1},
|
|
{4202, 2, 0, 11467, 1, 2000, 1},
|
|
{4202, 2, 0, 11468, 1, 4000, 1},
|
|
{4202, 2, 0, 11469, 1, 1400, 1},
|
|
}
|
|
default:
|
|
if pkt.Unk2 < 1000 {
|
|
s.logger.Info("PaperData request for unknown type", zap.Uint32("Unk2", pkt.Unk2))
|
|
}
|
|
}
|
|
|
|
if pkt.Unk2 > 1000 {
|
|
_, ok := paperGiftData[pkt.Unk2]
|
|
if ok {
|
|
paperGift = paperGiftData[pkt.Unk2]
|
|
} else {
|
|
s.logger.Info("PaperGift request for unknown type", zap.Uint32("Unk2", pkt.Unk2))
|
|
}
|
|
for _, gift := range paperGift {
|
|
bf := byteframe.NewByteFrame()
|
|
bf.WriteUint16(gift.Unk0)
|
|
bf.WriteUint8(gift.Unk1)
|
|
bf.WriteUint8(gift.Unk2)
|
|
bf.WriteUint16(gift.Unk3)
|
|
data = append(data, bf)
|
|
}
|
|
doAckEarthSucceed(s, pkt.AckHandle, data)
|
|
} else if pkt.Unk2 == 0 {
|
|
bf := byteframe.NewByteFrame()
|
|
bf.WriteUint16(uint16(len(paperMissions.Timetables)))
|
|
bf.WriteUint16(uint16(len(paperMissions.Data)))
|
|
for _, timetable := range paperMissions.Timetables {
|
|
bf.WriteUint32(uint32(timetable.Start.Unix()))
|
|
bf.WriteUint32(uint32(timetable.End.Unix()))
|
|
}
|
|
for _, mdata := range paperMissions.Data {
|
|
bf.WriteUint8(mdata.Unk0)
|
|
bf.WriteUint8(mdata.Unk1)
|
|
bf.WriteInt16(mdata.Unk2)
|
|
bf.WriteUint16(mdata.Reward1ID)
|
|
bf.WriteUint8(mdata.Reward1Quantity)
|
|
bf.WriteUint16(mdata.Reward2ID)
|
|
bf.WriteUint8(mdata.Reward2Quantity)
|
|
}
|
|
doAckBufSucceed(s, pkt.AckHandle, bf.Data())
|
|
} else {
|
|
for _, pdata := range paperData {
|
|
bf := byteframe.NewByteFrame()
|
|
bf.WriteUint16(pdata.Unk0)
|
|
bf.WriteInt16(pdata.Unk1)
|
|
bf.WriteInt16(pdata.Unk2)
|
|
bf.WriteInt16(pdata.Unk3)
|
|
bf.WriteInt16(pdata.Unk4)
|
|
bf.WriteInt16(pdata.Unk5)
|
|
bf.WriteInt16(pdata.Unk6)
|
|
data = append(data, bf)
|
|
}
|
|
doAckEarthSucceed(s, pkt.AckHandle, data)
|
|
}
|
|
}
|
|
|
|
func handleMsgSysAuthData(s *Session, p mhfpacket.MHFPacket) {}
|