koishi-plugin-card-21-game
Version:
Koishi 的 21 点(黑杰克)纸牌游戏插件。完整赌场规则。
105 lines (104 loc) • 4.87 kB
TypeScript
import { Context, Schema } from "koishi";
export declare const inject: {
required: string[];
optional: string[];
};
export declare const name = "card-21-game";
export declare const usage = "## \u4F7F\u7528\n\n1. \u542F\u52A8 `monetary` \u548C `database` \u670D\u52A1\u3002\n2. \u8BBE\u7F6E\u6307\u4EE4\u522B\u540D\u3002\n3. \u6295\u6CE8\uFF1A`blackjack.\u52A0\u5165\u6E38\u620F [\u6295\u6CE8]`\u3002\n4. \u5F00\u59CB\uFF1A\n - \u6709\u5E84\u5BB6\u6A21\u5F0F\uFF1A`blackjack.\u5F00\u59CB\u6E38\u620F`\u3002\n - \u65E0\u5E84\u5BB6\u6A21\u5F0F\uFF1A`blackjack.\u5F00\u59CB\u6E38\u620F -n`\u3002\n\n- \u7B79\u7801\u4E3A\u901A\u7528\u8D27\u5E01\uFF0C\u901A\u8FC7\u5176\u4ED6\u63D2\u4EF6\uFF08\u7B7E\u5230\u3001\u9493\u9C7C\u3001\u8D5B\u9A6C\u7B49\uFF09\u83B7\u5F97\u3002\n- \u6587\u672C\u8F6C\u56FE\u7247\uFF1A\u63A8\u8350 `imagify` \u63D2\u4EF6\uFF0C\u89C6\u89C9\u6548\u679C\u66F4\u4F73\u3002\n\n## \u89C4\u5219\n\n- \u65E0\u5E84\u5BB6\u6A21\u5F0F\uFF1A\u73A9\u5BB6\u4E4B\u95F4\u8FDB\u884C\u6E38\u620F\u3002\n- \u6709\u5E84\u5BB6\u6A21\u5F0F\uFF1A\u5E84\u5BB6\u4E0E\u73A9\u5BB6\u5BF9\u6218\uFF0C\u5E84\u5BB6\u4E3A\u673A\u5668\u4EBA\u3002\n- \u6E38\u620F\u76EE\u6807\uFF1A\u4F7F\u624B\u724C\u70B9\u6570\u5C3D\u91CF\u63A5\u8FD1 21 \u70B9\uFF0C\u4F46\u4E0D\u8D85\u8FC7 21 \u70B9\u3002\n\n## \u672F\u8BED\n\n- \u6295\u964D\uFF1A\u73A9\u5BB6\u672A\u8981\u724C\u524D\u53EF\u6295\u964D\uFF0C\u8FD4\u8FD8\u534A\u6CE8\u3002\n- \u9ED1\u6770\u514B\uFF1A\u624B\u724C\u70B9\u6570 21 \u70B9\uFF0C\u4E14\u53EA\u6709\u4E24\u5F20\u624B\u724C\u3002\u8D54\u7387\u4E3A 1.5\u3002\n- \u52A0\u500D\uFF1A\u73A9\u5BB6\u6301\u4E24\u5F20\u624B\u724C\u4E14\u70B9\u6570\u4E3A 11 \u65F6\uFF0C\u53EF\u52A0\u500D\u6295\u6CE8\uFF0C\u53EA\u80FD\u518D\u8981\u4E00\u5F20\u724C\u3002\n- \u4FDD\u9669\uFF1A\u5E84\u5BB6\u7684\u7B2C\u4E00\u5F20\u724C\u662F A \u65F6\uFF0C\u73A9\u5BB6\u53EF\u5C06\u7B79\u7801\u5206\u534A\uFF0C\u8D2D\u4E70\u4FDD\u9669\u3002\u5E84\u5BB6\u624B\u724C 21 \u70B9\u65F6\uFF0C\u83B7\u53CC\u500D\u4FDD\u9669\u91D1\u3002\n- \u5206\u724C\uFF1A\u73A9\u5BB6\u624B\u724C\u4E3A\u5BF9\u5B50\u65F6\uFF0C\u53EF\u5206\u4E24\u526F\u624B\u724C\uFF0C\u5206\u522B\u8FDB\u884C\u64CD\u4F5C\uFF0C\u82E5\u5206\u51FA\u7684\u662F A\uFF0C\u53EA\u80FD\u518D\u8981\u4E00\u5F20\u724C\u3002\n\n## QQ \u7FA4\n\n- 956758505";
export interface Config {
allowZeroBetJoin: boolean;
retractDelay: number;
imageType: "png" | "jpeg" | "webp";
isTextToImageConversionEnabled: boolean;
enableCardBetting: boolean;
enableSurrender: boolean;
defaultMaxLeaderboardEntries: number;
dealerSpeed: number;
betMaxDuration: number;
buyInsuranceMaxDuration: number;
surrenderMaxDuration: number;
joinGameProcedureWaitTimeInSeconds: number;
numberOfDecks: number;
transferFeeRate: number;
isEnableQQOfficialRobotMarkdownTemplate: boolean;
customTemplateId: string;
key: string;
numberOfMessageButtonsPerRow: number;
isBellaPluginPointsEnabledForCurrency: boolean;
minimumRequiredCurrencyForGameEntry: number;
}
export declare const Config: Schema<Config>;
declare module "koishi" {
interface Tables {
blackjack_game_record: BlackJackGameRecord;
blackjack_playing_record: BlackJackPlayingRecord;
blackjack_player_record: BlackJackPlayerRecord;
monetary: Monetary;
bella_sign_in: BellaSignIn;
}
}
interface Monetary {
uid: number;
currency: string;
value: number;
}
export interface BellaSignIn {
id: string;
time: string;
point: number;
count: number;
current_point: number;
working: boolean;
stime: number;
wpoint: number;
wktimecard: number;
wktimespeed: boolean;
}
export interface BlackJackGameRecord {
id: number;
channelId: string;
deck: string[];
bankerHand: string[];
currentPlayerIndex: number;
currentPlayerUserId: string;
currentPlayerUserName: string;
currentPlayerHandIndex: number;
gameStatus: string;
canSurrender: boolean;
canBuyInsurance: boolean;
isNoDealerMode: boolean;
}
export interface BlackJackPlayingRecord {
id: number;
channelId: string;
userId: string;
username: string;
bet: number;
playerHand: string[];
playerHandIndex: number;
playerIndex: number;
betPlayerUserId: string;
betPlayerUserName: string;
betType: string;
betAmount: number;
isBuyInsurance: boolean;
insurance: number;
isSurrender: boolean;
isOver: boolean;
win: number;
betWin: number;
afterDoublingTheBet: string;
}
export interface BlackJackPlayerRecord {
id: number;
userId: string;
username: string;
win: number;
lose: number;
moneyChange: number;
numberOf21: number;
numberOfBlackJack: number;
draw: number;
}
export declare function apply(ctx: Context, config: Config): void;
export {};