fix(mcfish): 合成的鱼竿可能多给 (#949)

* fix(mcfish): 合成的鱼竿可能多给

- 不使用梭哈功能合成鱼竿时,生成鱼竿仍然按梭哈合成计算,导致鱼竿可能多给
- 完善提示文本

* fix(mcfish): 出售所有垃圾功能不给钱

出售所有垃圾没有对钱包金额进行更新

* fix(mcfish): 使用美西螈钓鱼,吞鱼异常的问题

fishInfo.Number = 0 位置不对,导致海豚和鳕鱼都吃了100条。会一直吃到某种鱼数量够为止,并且前面数量不够的鱼都白吃了
This commit is contained in:
CUU_rooooo! 2024-08-08 13:11:54 +08:00 committed by GitHub
parent 9119ded754
commit 26fcb5aad5
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
4 changed files with 16 additions and 11 deletions

View File

@ -59,7 +59,7 @@ func init() {
for {
select {
case <-time.After(time.Second * 120):
ctx.Send(message.ReplyWithMessage(ctx.Event.MessageID, message.Text("等待超时,取消钓鱼")))
ctx.Send(message.ReplyWithMessage(ctx.Event.MessageID, message.Text("等待超时,取消购买")))
return
case e := <-recv:
nextcmd := e.Event.Message.String()
@ -147,7 +147,7 @@ func init() {
fishNumber = 0
for name, number := range fishNmaes {
fishNumber += number
msg += strconv.Itoa(number) + name + ""
msg += strconv.Itoa(number) + name + " "
}
msg += ")"
fishNumber /= 2

View File

@ -413,9 +413,9 @@ func (sql *fishdb) pickFishFor(uid int64, number int) (fishNames map[string]int,
}
if fishInfo.Number < i {
k++
fishInfo.Number = 0
i -= fishInfo.Number
fishNames[fishInfo.Name] += fishInfo.Number
fishInfo.Number = 0
} else {
fishNames[fishInfo.Name] += i
fishInfo.Number -= i

View File

@ -383,8 +383,6 @@ func init() {
})
}
list := []int{0, 1, 2}
// 可以用于合成的鱼竿数量(取3的倍数)note此处未对article.Number>1的情况做处理
upgradeNum := (len(articles) / 3) * 3
check := false
if len(articles) > 3 {
msg := make(message.Message, 0, 3+len(articles))
@ -421,7 +419,8 @@ func init() {
return
}
if nextcmd == "梭哈" {
for i := 3; i < upgradeNum; i++ {
// len(list)取3的倍数表示能够用于合成鱼竿的最大数量note此处未对article.Number>1的情况做处理
for i := 3; i < (len(articles)/3)*3; i++ {
list = append(list, i)
}
check = true
@ -459,6 +458,7 @@ func init() {
}
}
}
upgradeNum := len(list)
favorLevel := 0
induceLevel := 0
for _, index := range list {

View File

@ -107,7 +107,7 @@ func init() {
"[", i, "]", info.Name, " 数量: ", info.Number, "\n"))
}
}
msg = append(msg, message.Text("————————\n输入对应序号进行装备,或回复“取消”取消"))
msg = append(msg, message.Text("————————\n输入对应序号进行出售,或回复“取消”取消"))
ctx.Send(msg)
// 等待用户下一步选择
sell := false
@ -169,7 +169,7 @@ func init() {
for {
select {
case <-time.After(time.Second * 60):
ctx.Send(message.ReplyWithMessage(ctx.Event.MessageID, message.Text("等待超时,取消钓鱼")))
ctx.Send(message.ReplyWithMessage(ctx.Event.MessageID, message.Text("等待超时,取消出售")))
return
case e := <-recv:
nextcmd := e.Event.Message.String()
@ -333,7 +333,7 @@ func init() {
pice += (priceList[info.Name] * discountList[info.Name] / 100) * info.Number * 8 / 10
}
ctx.Send(message.ReplyWithMessage(ctx.Event.MessageID, message.Text("是否接受商店将以", pice, "收购全部垃圾", "?\n回答\"是\"或\"否\"")))
ctx.Send(message.ReplyWithMessage(ctx.Event.MessageID, message.Text("是否接受回收站将以", pice, "收购全部垃圾", "?\n回答\"是\"或\"否\"")))
// 等待用户下一步选择
recv, cancel1 := zero.NewFutureEvent("message", 999, false, zero.RegexRule(`^(是|否)$`), zero.CheckUser(ctx.Event.UserID)).Repeat()
defer cancel1()
@ -341,7 +341,7 @@ func init() {
for {
select {
case <-time.After(time.Second * 60):
ctx.Send(message.ReplyWithMessage(ctx.Event.MessageID, message.Text("等待超时,取消钓鱼")))
ctx.Send(message.ReplyWithMessage(ctx.Event.MessageID, message.Text("等待超时,取消出售垃圾")))
return
case e := <-recv:
nextcmd := e.Event.Message.String()
@ -375,6 +375,11 @@ func init() {
return
}
}
err = wallet.InsertWalletOf(uid, pice)
if err != nil {
ctx.SendChain(message.Text("[ERROR出售垃圾失败回收站卷款跑路了]:", err))
return
}
ctx.Send(message.ReplyWithMessage(ctx.Event.MessageID, message.Text("出售成功,你赚到了", pice, msg)))
})
engine.OnRegex(`^购买(`+strings.Join(thingList, "|")+`)\s*(\d*)$`, getdb, refreshFish).SetBlock(true).Limit(limitSet).Handle(func(ctx *zero.Ctx) {
@ -462,7 +467,7 @@ func init() {
"[", i, "]", info.Name, " 数量:", info.Number, " 价格:", pice[i], "\n"))
}
}
msg = append(msg, message.Text("————————\n输入对应序号进行装备,或回复“取消”取消"))
msg = append(msg, message.Text("————————\n输入对应序号进行购买,或回复“取消”取消"))
ctx.Send(message.ReplyWithMessage(ctx.Event.MessageID, msg...))
// 等待用户下一步选择
sell := false