Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

修复niuniu的已知问题,添加新玩法牛牛商店 #974

Merged
merged 32 commits into from
Sep 26, 2024
Merged
Changes from 1 commit
Commits
Show all changes
32 commits
Select commit Hold shift + click to select a range
a29bbec
Update main.go
xyy0411 Aug 31, 2024
c22079e
Update model.go
xyy0411 Aug 31, 2024
78e9d1a
Update utils.go
xyy0411 Aug 31, 2024
4f9c58f
Update README.md
xyy0411 Aug 31, 2024
66afee9
Update main.go
xyy0411 Aug 31, 2024
be5ec00
Update main.go
xyy0411 Sep 1, 2024
22e2447
Update model.go
xyy0411 Sep 1, 2024
05a28c9
Update main.go
xyy0411 Sep 2, 2024
fa0c9d8
Update main.go
xyy0411 Sep 2, 2024
83ee8b6
Update main.go
xyy0411 Sep 2, 2024
dd676ad
Update main.go
xyy0411 Sep 3, 2024
85ca08a
Update main.go
xyy0411 Sep 3, 2024
52d5e87
Merge branch 'FloatTech:master' into master
xyy0411 Sep 8, 2024
2cde59d
Update main.go
xyy0411 Sep 8, 2024
e06ece6
Update utils.go
xyy0411 Sep 8, 2024
8b862fa
Update model.go
xyy0411 Sep 8, 2024
d2f4a29
Update README.md
xyy0411 Sep 8, 2024
4e222f4
Update main.go
xyy0411 Sep 10, 2024
acc2fc4
修改了一些问题
xyy0411 Sep 13, 2024
a74efd7
修改了一些问题
xyy0411 Sep 13, 2024
75c77f1
修改了一些问题
xyy0411 Sep 13, 2024
09a24f7
修改了一些问题
xyy0411 Sep 14, 2024
9bac2a7
Merge remote-tracking branch 'origin/master'
xyy0411 Sep 14, 2024
da37ca6
修改了一些问题
xyy0411 Sep 14, 2024
40e77d8
牛牛商店改面向对象形式,加入NiuNiuPlugin接口
xyy0411 Sep 15, 2024
704f2e8
修改了一些问题
xyy0411 Sep 15, 2024
ffcede5
修改了一些问题
xyy0411 Sep 17, 2024
0c817c9
修改了一些问题
xyy0411 Sep 21, 2024
2b4d380
修复lint
xyy0411 Sep 21, 2024
531da5a
修复一些逻辑问题
xyy0411 Sep 25, 2024
7f4adce
修lint
xyy0411 Sep 25, 2024
6ab034d
Merge branch 'master' into master
fumiama Sep 26, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
修改了一些问题
  • Loading branch information
xyy0411 committed Sep 13, 2024
commit a74efd727d085f544d90b68a96a8f97541f01d52
104 changes: 5 additions & 99 deletions plugin/niuniu/main.go
Original file line number Diff line number Diff line change
@@ -93,28 +93,11 @@ func init() {
ctx.SendChain(message.Text("ERROR:", err))
return
}
var (
money int
u *userInfo
)
switch n {
case 1:
money = 300
u = &userInfo{UID: uid, WeiGe: info.WeiGe + 5}
case 2:
money = 300
u = &userInfo{UID: uid, Philter: info.Philter + 5}
case 3:
money = 500
u = &userInfo{UID: uid, Artifact: info.Artifact + 2}
case 4:
money = 500
u = &userInfo{UID: uid, ShenJi: info.ShenJi + 2}
default:
ctx.SendChain(message.Text("无效的选项"))
u, money, err := purchaseItem(n, info, uid)
if err != nil {
ctx.SendChain(message.Text("ERROR:", err))
return
}

if wallet.GetWalletOf(uid) < money {
ctx.SendChain(message.Text("你还没有足够的ATRI币呢,不能购买"))
return
@@ -124,7 +107,6 @@ func init() {
ctx.SendChain(message.Text("ERROR:", err))
return
}

err = db.insertniuniu(u, gid)
if err != nil {
ctx.SendChain(message.Text("ERROR:", err))
@@ -272,44 +254,7 @@ func init() {
dajiaoLimiter.Delete(fmt.Sprintf("%d_%d", gid, uid))
return
}
var (
messages string
f float64
u userInfo
)
load, ok := prop.Load(t)
switch {
case ok && load.Count > 1 && time.Since(load.TimeLimit) < time.Minute*8:
ctx.SendChain(message.Text("你使用道具次数太快了,此次道具不会生效,等待", time.Minute*8-time.Since(load.TimeLimit), "再来吧"))
messages, f = generateRandomStingTwo(niuniu.Length)
u = userInfo{
UID: uid,
Length: f,
}
case niuniu.WeiGe > 0:
messages, f = useWeiGe(niuniu.Length)
u = userInfo{
UID: uid,
Length: f,
WeiGe: niuniu.WeiGe - 1,
}
updateMap(t, true)
case niuniu.Philter > 0:
messages, f = usePhilter(niuniu.Length)
u = userInfo{
UID: uid,
Length: f,
Philter: niuniu.Philter - 1,
}
updateMap(t, true)
default:
messages, f = generateRandomStingTwo(niuniu.Length)
u = userInfo{
UID: uid,
Length: f,
}
}

messages, u := processNiuniuAction(t, &niuniu, ctx, uid)
ctx.SendChain(message.Text(messages))
if err = db.insertniuniu(&u, gid); err != nil {
ctx.SendChain(message.Text("ERROR:", err))
@@ -389,45 +334,7 @@ func init() {
jjLimiter.Delete(t)
return
}
var (
fencingResult string
f float64
f1 float64
u userInfo
)
v, ok := prop.Load(t)
switch {
case ok && v.Count > 1 && time.Since(v.TimeLimit) < time.Minute*8:
ctx.SendChain(message.Text("你使用道具次数太快了,此次道具不会生效,等待", time.Minute*8-time.Since(v.TimeLimit), "再来吧"))
fencingResult, f, f1 = fencing(myniuniu.Length, adduserniuniu.Length)
u = userInfo{
UID: uid,
Length: f,
}
case myniuniu.Artifact > 0:
fencingResult, f, f1 = useArtifact(myniuniu.Length, adduserniuniu.Length)
u = userInfo{
UID: uid,
Length: f,
Artifact: myniuniu.Artifact - 1,
}
updateMap(t, true)
case myniuniu.ShenJi > 0:
fencingResult, f, f1 = useShenJi(myniuniu.Length, adduserniuniu.Length)
u = userInfo{
UID: uid,
Length: f,
Artifact: myniuniu.ShenJi - 1,
}
updateMap(t, true)
default:
fencingResult, f, f1 = fencing(myniuniu.Length, adduserniuniu.Length)
u = userInfo{
UID: uid,
Length: f,
}

}
fencingResult, f1, u := processJJuAction(&myniuniu, &adduserniuniu, t, ctx)
err = db.insertniuniu(&u, gid)
if err != nil {
ctx.SendChain(message.Text("ERROR:", err))
@@ -499,7 +406,6 @@ func randomChoice(options []string) string {
}

func updateMap(t string, d bool) {

value, ok := prop.Load(t)
if !d {
if time.Since(value.TimeLimit) > time.Minute*8 {
111 changes: 111 additions & 0 deletions plugin/niuniu/utils.go
Original file line number Diff line number Diff line change
@@ -2,11 +2,122 @@
package niuniu

import (
"errors"
"fmt"
zero "github.com/wdvxdr1123/ZeroBot"
"github.com/wdvxdr1123/ZeroBot/message"
"math"
"math/rand"
"time"
)

func processJJuAction(myniuniu, adduserniuniu *userInfo, t string, ctx *zero.Ctx) (string, float64, userInfo) {
var (
fencingResult string
f float64
f1 float64
u userInfo
)
v, ok := prop.Load(t)
switch {
case ok && v.Count > 1 && time.Since(v.TimeLimit) < time.Minute*8:
ctx.SendChain(message.Text("你使用道具次数太快了,此次道具不会生效,等待", time.Minute*8-time.Since(v.TimeLimit), "再来吧"))
fencingResult, f, f1 = fencing(myniuniu.Length, adduserniuniu.Length)
u = userInfo{
UID: myniuniu.UID,
Length: f,
}
case myniuniu.Artifact > 0:
fencingResult, f, f1 = useArtifact(myniuniu.Length, adduserniuniu.Length)
u = userInfo{
UID: myniuniu.UID,
Length: f,
Artifact: myniuniu.Artifact - 1,
}
updateMap(t, true)
case myniuniu.ShenJi > 0:
fencingResult, f, f1 = useShenJi(myniuniu.Length, adduserniuniu.Length)
u = userInfo{
UID: myniuniu.UID,
Length: f,
Artifact: myniuniu.ShenJi - 1,
}
updateMap(t, true)
default:
fencingResult, f, f1 = fencing(myniuniu.Length, adduserniuniu.Length)
u = userInfo{
UID: myniuniu.UID,
Length: f,
}
}
return fencingResult, f1, u
}

func processNiuniuAction(t string, niuniu *userInfo, ctx *zero.Ctx, uid int64) (string, userInfo) {
var (
messages string
f float64
u userInfo
)
load, ok := prop.Load(t)
switch {
case ok && load.Count > 1 && time.Since(load.TimeLimit) < time.Minute*8:
ctx.SendChain(message.Text("你使用道具次数太快了,此次道具不会生效,等待", time.Minute*8-time.Since(load.TimeLimit), "再来吧"))
messages, f = generateRandomStingTwo(niuniu.Length)
u = userInfo{
UID: uid,
Length: f,
}
case niuniu.WeiGe > 0:
messages, f = useWeiGe(niuniu.Length)
u = userInfo{
UID: uid,
Length: f,
WeiGe: niuniu.WeiGe - 1,
}
updateMap(t, true)
case niuniu.Philter > 0:
messages, f = usePhilter(niuniu.Length)
u = userInfo{
UID: uid,
Length: f,
Philter: niuniu.Philter - 1,
}
updateMap(t, true)
default:
messages, f = generateRandomStingTwo(niuniu.Length)
u = userInfo{
UID: uid,
Length: f,
}
}
return messages, u
}

func purchaseItem(n int, info userInfo, uid int64) (*userInfo, int, error) {
var (
money int
u *userInfo
)
switch n {
case 1:
money = 300
u = &userInfo{UID: uid, WeiGe: info.WeiGe + 5}
case 2:
money = 300
u = &userInfo{UID: uid, Philter: info.Philter + 5}
case 3:
money = 500
u = &userInfo{UID: uid, Artifact: info.Artifact + 2}
case 4:
money = 500
u = &userInfo{UID: uid, ShenJi: info.ShenJi + 2}
default:
return nil, 0, errors.New("无效的选项")
}
return u, money, nil
}

func useWeiGe(niuniu float64) (string, float64) {
reduce := math.Abs(hitGlue(niuniu))
niuniu += reduce
Loading