koishi-plugin-ggcevo-game 1.6.82 → 2.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/lib/utils.d.ts CHANGED
@@ -2,7 +2,6 @@ import { Context } from 'koishi';
2
2
  import { Config } from './index';
3
3
  import { PKProtection } from './database';
4
4
  export declare function gachaWithPity(ctx: Context, handle: string): Promise<boolean>;
5
- export declare function gachaWithHiddenAward(ctx: Context, handle: string): Promise<boolean>;
6
5
  export declare function checkSensitiveWord(ctx: Context, content: string): Promise<boolean>;
7
6
  export declare function getRandomInt(min: number, max: number): number;
8
7
  export declare function PetCapsuleToy(): "t3级宠物扭蛋" | "t2级宠物扭蛋" | "t1级宠物扭蛋" | "t0级宠物扭蛋";
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "koishi-plugin-ggcevo-game",
3
- "description": "《星际争霸2》咕咕虫-evolved地图的专属游戏助手插件,集成天梯排行、抽奖系统、签到福利、兑换商城等丰富功能。",
4
- "version": "1.6.82",
3
+ "description": "星际争霸2咕咕虫-evolved地图的专属游戏助手插件,集成天梯排行、抽奖系统、签到福利、兑换商城等丰富功能。",
4
+ "version": "2.0.2",
5
5
  "main": "lib/index.js",
6
6
  "typings": "lib/index.d.ts",
7
7
  "files": [
@@ -19,7 +19,7 @@
19
19
  "peerDependencies": {
20
20
  "@koishijs/plugin-proxy-agent": "^0.3.3",
21
21
  "koishi": "^4.18.7",
22
- "koishi-plugin-sc2arcade-search": "^1.1.20"
22
+ "koishi-plugin-sc2arcade-search": "^1.2.2"
23
23
  },
24
24
  "koishi": {
25
25
  "service": {
package/readme.md CHANGED
@@ -2,96 +2,4 @@
2
2
 
3
3
  [![npm](https://img.shields.io/npm/v/koishi-plugin-ggcevo-game?style=flat-square)](https://www.npmjs.com/package/koishi-plugin-ggcevo-game)
4
4
 
5
- 《星际争霸2》咕咕虫-evolved地图的专属游戏助手插件,集成天梯排行、抽奖系统、签到福利、兑换商城等丰富功能。
6
5
 
7
- ## 功能清单
8
-
9
- ### 核心系统
10
- - 🎰 **保底抽奖系统**:支持单抽/十连抽,隐藏奖励机制
11
- - 📅 **智能签到系统**:结合游戏对局验证的签到机制
12
- - 🏆 **天梯排名系统**:自动同步胜点数据,动态排行榜
13
- - 🛍️ **兑换商城系统**:多层级奖品池,赛季限定物品
14
-
15
- ### 特色功能
16
- - ⚔️ **玩家对战系统**:金币PK玩法,动态胜率计算
17
- - 🚨 **违规监控系统**:大厅玩家行为监控,黑名单管理
18
- - 🎁 **活动管理系统**:福利活动创建与发放
19
- - 📊 **数据统计系统**:玩家成就、背包、抽奖记录等全维度统计
20
-
21
- ## 安装配置
22
-
23
- 1. 安装插件
24
- ```bash
25
- npm install koishi-plugin-ggcevo-game
26
- ```
27
-
28
- 2. 基础配置
29
- ```yaml
30
- plugins:
31
- ggcevo-game:
32
- proxyAgent: '' # 代理地址(如需)
33
- ggcqun: '你的群号' # 绑定游戏群组
34
- rankseason: 'S1' # 当前赛季名称
35
- signrequire: true # 对局签到要求
36
- autorank: true # 自动同步天梯数据
37
- dailyPKLimit: 3 # 每日最大PK次数
38
- admins: [管理员QQ列表] # 管理员权限
39
- ```
40
-
41
- ## 使用说明
42
-
43
- ### 玩家命令
44
- ```bash
45
- 每日签到
46
- /签到
47
-
48
- 抽奖系统
49
- /单抽
50
- /十连抽
51
- /抽奖记录
52
-
53
- 天梯系统
54
- /胜点榜
55
- /排名 @玩家
56
-
57
- 对战系统
58
- /pk @玩家
59
- /切换pk状态
60
-
61
- 兑换系统
62
- /兑换
63
- /兑换扭蛋币
64
- ```
65
-
66
- ### 管理命令
67
- ```bash
68
- 活动管理
69
- /创建活动 <名称> <描述> <奖励数量>
70
-
71
- 玩家管理
72
- /活动拉黑
73
- /胜点榜拉黑
74
-
75
- 数据维护
76
- /胜点榜数据同步
77
- ```
78
-
79
- ## 数据模型
80
- ```
81
- 📦 数据库结构
82
- ├── 用户背包 (ggcevo_backpack)
83
- ├── 签到记录 (ggcevo_sign)
84
- ├── 天梯数据 (ggcevo_rank)
85
- ├── 对战记录 (ggcevo_pk_logs)
86
- ├── 兑换记录 (ggcevo_exchange)
87
- └── 活动管理 (ggcevo_activity)
88
- ```
89
-
90
- ## 注意事项
91
-
92
- 1. **敏感词检测**:需要配置第三方API(示例使用 api.iminbk.com)
93
- 2. **定时任务**:自动天梯同步默认每小时执行,请根据需求调整频率
94
- 3. **赛季设置**:兑换系统依赖 `rankseason` 配置项,赛季变更时需更新
95
- 4. **代理配置**:国内服务器建议配置代理访问SC2Arcade API
96
-
97
- > 提示:使用前请确保已安装 [koishi-plugin-sc2arcade-search](https://www.npmjs.com/package/koishi-plugin-sc2arcade-search) 作为前置插件
@@ -1,298 +0,0 @@
1
- import { Context } from 'koishi';
2
- interface BattleStatistics {
3
- name: string;
4
- hpChange: number;
5
- energyChange: number;
6
- tagsAdded: string[];
7
- tagsRemoved: string[];
8
- skillsAdded: string[];
9
- skillsRemoved: string[];
10
- skillStacksChanged: number;
11
- radiationLayersChange: number;
12
- coldLayersChange: number;
13
- lastWeaponName: string;
14
- }
15
- export declare const PassiveHandler: {
16
- handleWeakForm: (targetBoss: any, buffMultiplier: number) => {
17
- buffMultiplier: number;
18
- messages: string[];
19
- };
20
- handleAlienShell: (targetBoss: any, nerfMultiplier: number) => {
21
- nerfMultiplier: number;
22
- messages: string[];
23
- };
24
- handleIsolated: (targetBoss: any, activeBosses: any[], buffMultiplier: number) => {
25
- buffMultiplier: number;
26
- messages: string[];
27
- };
28
- handleFrostRegeneration: (targetBoss: any, activeBosses: any[]) => {
29
- updatedTargetStats?: BattleStatistics;
30
- updatedOtherStats: BattleStatistics[];
31
- messages: string[];
32
- };
33
- handleFrostAura: (targetBoss: any, activeBosses: any[]) => {
34
- updatedTargetStats?: BattleStatistics;
35
- messages: string[];
36
- };
37
- handleFrostEvolution: (targetBoss: any, weaponName: string, activeBosses: any[]) => {
38
- isImmune: boolean;
39
- messages: string[];
40
- updatedStats?: BattleStatistics;
41
- };
42
- handleFrostSurround: (ctx: Context, targetBoss: any, currentHP: number, maxHP: number) => Promise<{
43
- updatedHP: number;
44
- skillUpdates: ({
45
- name: any;
46
- add: string[];
47
- } | {
48
- name: any;
49
- remove: string[];
50
- add: string[];
51
- })[];
52
- messages: string[];
53
- }>;
54
- handleFrostRecovery: (ctx: Context, targetBoss: any, currentHP: number, maxHP: number, activeBosses: any[], bossGroup: any) => Promise<{
55
- updatedHP: number;
56
- skillUpdates: {
57
- name: any;
58
- remove: string[];
59
- }[];
60
- messages: string[];
61
- }>;
62
- handleColdAdaptation: (ctx: Context, targetBoss: any, weaponName: string) => Promise<{
63
- messages: string[];
64
- }>;
65
- handleColdAdaptationImmunity: (targetBoss: any, weaponName: string) => {
66
- initialDamage: number;
67
- messages: string[];
68
- };
69
- handleSurvivalInstinct: (targetBoss: any, currentHP: number, maxHP: number) => {
70
- updatedHP: number;
71
- messages: string[];
72
- skillUpdates: {
73
- name: any;
74
- remove: string[];
75
- }[];
76
- };
77
- handleInfectedStation: (ctx: Context, targetBoss: any) => Promise<{
78
- damageMultiplier: number;
79
- messages: string[];
80
- }>;
81
- handleMoldGrowth: (ctx: Context, targetBoss: any, bossGroup: any) => Promise<{
82
- messages: string[];
83
- }>;
84
- handleSentryGun: (ctx: Context, targetBoss: any, bossGroup: any) => Promise<{
85
- messages: string[];
86
- }>;
87
- handleStructuralArmor: (targetBoss: any, weaponData: any) => {
88
- damageMultiplier: number;
89
- messages: string[];
90
- };
91
- handleBloodEffects: (targetBoss: any, currentHP: number, maxHP: number) => {
92
- buffAmount: number;
93
- nerfAmount: number;
94
- messages: string[];
95
- };
96
- handleBloodCount: (ctx: Context, targetBoss: any, currentHP: number, maxHP: number) => Promise<{
97
- updatedHP: number;
98
- messages: string[];
99
- }>;
100
- handleGammaRadiation: (ctx: Context, targetBoss: any, weaponName: any) => Promise<{
101
- messages: string[];
102
- radiationApplied: boolean;
103
- }>;
104
- calculateRadiationDamage: (targetBoss: any) => {
105
- damageMultiplier: number;
106
- messages: any[];
107
- };
108
- handleColdEffect: (ctx: Context, targetBoss: any, weaponName: string) => Promise<{
109
- messages: string[];
110
- coldLayers: boolean;
111
- }>;
112
- calculateColdDamage: (targetBoss: any) => {
113
- damageMultiplier: number;
114
- messages: any[];
115
- };
116
- handleConductorTagChange: (ctx: Context, targetBoss: any, currentHP: number, maxHP: number) => Promise<{
117
- messages: string[];
118
- }>;
119
- handleEnergySiphon: (targetBoss: any, currentHP: number, maxHP: number) => {
120
- damageMultiplier: number;
121
- messages: string[];
122
- };
123
- handleEnergyShockwave: (ctx: Context, targetBoss: any) => Promise<{
124
- messages: string[];
125
- }>;
126
- handlePowerSiphon: (targetBoss: any) => {
127
- damageMultiplier: number;
128
- messages: string[];
129
- };
130
- handleEnergyField: (ctx: Context, targetBoss: any, weaponName: string, initialDamage: number) => Promise<{
131
- immune: boolean;
132
- messages: string[];
133
- }>;
134
- getMemberConfig: (name: string, bossGroup: any) => any;
135
- handlePulse: (ctx: Context, targetBoss: any, activeBosses: any[], bossGroup: any, currentHP: number) => Promise<{
136
- newHP: number;
137
- messages: string[];
138
- }>;
139
- handleArcWelderEffect: (ctx: Context, targetBoss: any, weaponName: string) => Promise<{
140
- messages: string[];
141
- arcApplied: boolean;
142
- }>;
143
- handleArcRifleEffect: (ctx: Context, targetBoss: any, weaponName: string, messages: string[]) => Promise<{
144
- drainAmount: number;
145
- }>;
146
- handleGiantRage: (targetBoss: any, currentHP: number, maxHP: number) => {
147
- damageMultiplier: number;
148
- messages: string[];
149
- };
150
- handleBileStacking: (ctx: Context, targetBoss: any, skipStack: boolean) => Promise<{
151
- messages: string[];
152
- }>;
153
- handleSolarFlare: (ctx: Context, targetBoss: any, weaponName: string) => Promise<{
154
- immune: boolean;
155
- messages: string[];
156
- }>;
157
- getMemberMaxHP: (name: string, bossGroup: any) => any;
158
- handleCorrosiveBile: (ctx: Context, targetBoss: any, bossGroup: any, currentHP: number) => Promise<{
159
- messages: string[];
160
- currentHP: number;
161
- }>;
162
- handleFireBreath: (ctx: Context, targetBoss: any, bossGroup: any, currentHP: number) => Promise<{
163
- messages: string[];
164
- currentHP: number;
165
- }>;
166
- handleFireEvolution: (ctx: Context, targetBoss: any, weaponName: string, initialDamage: number, bossGroup: any) => Promise<{
167
- updatedHP: number;
168
- initialDamage: number;
169
- messages: string[];
170
- bileStacks: any;
171
- }>;
172
- handleBileIgnition: (ctx: Context, targetBoss: any, bossGroup: any, updatedHP: number) => Promise<{
173
- messages: string[];
174
- newHP: number;
175
- bileStacks: any;
176
- }>;
177
- handleBurningBurrow: (ctx: Context, targetBoss: any, currentHP: number, maxHP: number) => Promise<{
178
- updatedHP: number;
179
- messages: string[];
180
- skillUpdates: {
181
- name: any;
182
- remove: string[];
183
- }[];
184
- }>;
185
- handleHellfireBomb: (targetBoss: any, activeBosses: any[]) => {
186
- damageMultiplier: number;
187
- messages: string[];
188
- };
189
- handleHunterAlien: (targetBoss: any, weaponName: string, activeBosses: any[]) => Promise<{
190
- immune: boolean;
191
- messages: string[];
192
- damageMultiplier?: undefined;
193
- } | {
194
- damageMultiplier: number;
195
- messages: string[];
196
- immune?: undefined;
197
- }>;
198
- handleRage: (targetBoss: any, currentHP: number, maxHP: number) => {
199
- damageMultiplier: number;
200
- messages: string[];
201
- };
202
- handleDisguise: (ctx: Context, targetBoss: any, weaponName: string, initialDamage: number) => Promise<{
203
- damageMultiplier: number;
204
- messages: string[];
205
- }>;
206
- handleCriticalHit: (targetBoss: any, initialDamage: number) => {
207
- immune: boolean;
208
- messages: string[];
209
- };
210
- handleCorrosionModule: (installedMods: string[]) => number;
211
- handleParticlePhaseEffect: (targetBoss: any, weaponName: string) => number;
212
- handleIgnoreReductionEffects: (ctx: Context, handle: string, weaponName: string, targetBoss: any, nerfMultiplier: number) => Promise<{
213
- ignoreRate: number;
214
- messages: any[];
215
- }>;
216
- handlePulseDisruptor: (ctx: Context, targetBoss: any, weaponName: string) => Promise<{
217
- messages: string[];
218
- pulseApplied: boolean;
219
- }>;
220
- handleStellarWind: (ctx: Context, targetBoss: any, initialDamage: number, currentHP: number, maxHP: number, activeBosses: any[], bossGroup: any) => Promise<{
221
- messages: string[];
222
- updatedHP: number;
223
- }>;
224
- handlePsychicFrenzy: (targetBoss: any, currentHP: number, maxHP: number) => {
225
- damageMultiplier: number;
226
- messages: string[];
227
- };
228
- handleCosmicEnergy: (ctx: Context, targetBoss: any, initialDamage: number, bossGroup: any) => Promise<{
229
- messages: string[];
230
- healAmount: number;
231
- }>;
232
- handleLightblade: (ctx: Context, targetBoss: any) => Promise<{
233
- messages: string[];
234
- }>;
235
- handleAncientOmen: (ctx: Context, targetBoss: any) => Promise<{
236
- immune: boolean;
237
- messages: string[];
238
- }>;
239
- handleHyperspaceSkip: (targetBoss: any) => {
240
- reduction: number;
241
- increase: number;
242
- messages: string[];
243
- };
244
- handleRevival: (ctx: Context, targetBoss: any, currentHP: number, maxHP: number) => Promise<{
245
- updatedHP: number;
246
- messages: string[];
247
- }>;
248
- handleConstructor: (ctx: Context, targetBoss: any) => Promise<{
249
- messages: string[];
250
- }>;
251
- handleTyrsShield: (ctx: Context, targetBoss: any, currentHP: number, activeBosses: any[], bossGroup: any) => Promise<{
252
- messages: string[];
253
- updatedHP: number;
254
- }>;
255
- handleCollapsePulse: (ctx: Context, targetBoss: any) => Promise<{
256
- messages: string[];
257
- }>;
258
- handleCarpetBombing: (ctx: Context, targetBoss: any) => Promise<{
259
- messages: string[];
260
- damageMultiplier: number;
261
- }>;
262
- handleBombardmentGuidance: (ctx: Context, targetBoss: any) => Promise<{
263
- messages: string[];
264
- }>;
265
- handlePassives: (ctx: Context, handle: string, targetBoss: any, initialDamage: number, currentHP: number, maxHP: number, weaponName: string, weaponData: any, bossGroup: any) => Promise<{
266
- currentHP: any;
267
- messages: any;
268
- skillUpdates: any[];
269
- initialDamage: number;
270
- bileStacks?: undefined;
271
- radiationApplied?: undefined;
272
- coldLayers?: undefined;
273
- pulseApplied?: undefined;
274
- arcApplied?: undefined;
275
- } | {
276
- currentHP: any;
277
- messages: any;
278
- skillUpdates: any[];
279
- initialDamage: any;
280
- bileStacks: any;
281
- radiationApplied?: undefined;
282
- coldLayers?: undefined;
283
- pulseApplied?: undefined;
284
- arcApplied?: undefined;
285
- } | {
286
- currentHP: number;
287
- messages: string[];
288
- skillUpdates: any[];
289
- initialDamage: number;
290
- radiationApplied: boolean;
291
- coldLayers: boolean;
292
- pulseApplied: boolean;
293
- arcApplied: boolean;
294
- bileStacks?: undefined;
295
- }>;
296
- applySkillUpdates: (ctx: Context, skillUpdates: any[]) => Promise<void>;
297
- };
298
- export {};