This commit is contained in:
70
modules/player/controller/robot/egg.go
Normal file
70
modules/player/controller/robot/egg.go
Normal file
@@ -0,0 +1,70 @@
|
||||
package robot
|
||||
|
||||
import (
|
||||
"blazing/common/data/xmlres"
|
||||
"blazing/cool"
|
||||
base "blazing/modules/base/service"
|
||||
config "blazing/modules/config/service"
|
||||
"blazing/modules/player/model"
|
||||
"blazing/modules/player/service"
|
||||
"strings"
|
||||
"time"
|
||||
|
||||
"github.com/gogf/gf/v2/util/gconv"
|
||||
"github.com/gogf/gf/v2/util/grand"
|
||||
zero "github.com/wdvxdr1123/ZeroBot"
|
||||
"github.com/wdvxdr1123/ZeroBot/message"
|
||||
)
|
||||
|
||||
func init() {
|
||||
zero.OnCommand("扭蛋").
|
||||
Handle(func(ctx *zero.Ctx) {
|
||||
|
||||
msgs := strings.Fields(ctx.Event.Message.String())
|
||||
count := 1
|
||||
if len(msgs) > 1 {
|
||||
count = gconv.Int(msgs[1])
|
||||
|
||||
}
|
||||
if count > 10 {
|
||||
count = 10
|
||||
}
|
||||
user := base.NewBaseSysUserService().GetQQ(ctx.Event.Sender.ID)
|
||||
if user == nil {
|
||||
ctx.Send("未绑定")
|
||||
return
|
||||
}
|
||||
itemservice := service.NewItemService(uint32(user.ID))
|
||||
if itemservice.CheakItem(400501) < int64(count) {
|
||||
ctx.Send("扭蛋币不足")
|
||||
return
|
||||
}
|
||||
var buf strings.Builder
|
||||
if grand.Meet(int(count), 100) {
|
||||
r := config.NewPetRewardService().GetEgg()
|
||||
newPet := model.GenPetInfo(int(r.MonID), int(r.DV), int(r.Nature), int(r.Effect), int(r.Lv), nil, 0)
|
||||
if grand.Meet(1, 500) {
|
||||
newPet.RandomByWeightShiny()
|
||||
}
|
||||
service.NewPetService(uint32(user.ID)).PetAdd(newPet, 0)
|
||||
buf.WriteString("恭喜你获得" + xmlres.PetMAP[int(newPet.ID)].DefName + "\n")
|
||||
|
||||
}
|
||||
|
||||
items := config.NewItemService().GetEgg(int(count))
|
||||
|
||||
for _, item := range items {
|
||||
|
||||
itemservice.UPDATE(uint32(item.ItemId), int(item.ItemCnt))
|
||||
buf.WriteString("恭喜你获得" + xmlres.ItemsMAP[int(item.ItemId)].Name + ":" + gconv.String(item.ItemCnt) + "\n")
|
||||
}
|
||||
|
||||
itemservice.UPDATE(400501, int(-count))
|
||||
|
||||
msg := ctx.SendChain(message.At(ctx.Event.Sender.ID), message.Reply(ctx.Event.MessageID), message.Text(buf.String()))
|
||||
cool.Cron.AfterFunc(10*time.Second, func() {
|
||||
ctx.DeleteMessage(msg)
|
||||
})
|
||||
|
||||
})
|
||||
}
|
||||
@@ -1,9 +1,11 @@
|
||||
package robot
|
||||
|
||||
import (
|
||||
"blazing/cool"
|
||||
"blazing/modules/player/service"
|
||||
"bytes"
|
||||
"fmt"
|
||||
"time"
|
||||
|
||||
"github.com/fogleman/gg"
|
||||
zero "github.com/wdvxdr1123/ZeroBot"
|
||||
@@ -56,6 +58,9 @@ func init() {
|
||||
// ======================
|
||||
// 发送图片(zeroBot 标准方式)
|
||||
// ======================
|
||||
ctx.Send(message.ImageBytes(buf.Bytes()))
|
||||
msg := ctx.Send(message.ImageBytes(buf.Bytes()))
|
||||
cool.Cron.AfterFunc(10*time.Second, func() {
|
||||
ctx.DeleteMessage(msg)
|
||||
})
|
||||
})
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user