Y++ 社区

示例

Y++与Python实现真人联机斗地主对战

示例 浏览 7 管理员

Y++py斗地主中文编程

Y++与Python实现真人联机斗地主对战

函数 抽出语音包到 (文本 文件名, 文本 local) 逻辑 { // 写出文件 仅字面量 ":/…" 可走嵌入资源 如果 (文件名 == "叫地主.wav") { 返回 (写出文件(local, ":/voice/叫地主.wav")) } 如果 (文件名 == "不叫.wav") { 返回 (写出文件(local, ":/voice/不叫.wav")) } 如果 (文件名 == "抢地主.wav") { 返回 (写出文件(local, ":/voice/抢地主.wav")) } 如果 (文件名 == "不抢.wav") { 返回 (写出文件(local, ":/voice/不抢.wav")) } 如果 (文件名 == "加倍.wav") { 返回 (写出文件(local, ":/voice/加倍.wav")) } 如果 (文件名 == "不加倍.wav") { 返回 (写出文件(local, ":/voice/不加倍.wav")) } 如果 (文件名 == "超级加倍.wav") { 返回 (写出文件(local, ":/voice/超级加倍.wav")) } 如果 (文件名 == "明牌.wav") { 返回 (写出文件(local, ":/voice/明牌.wav")) } 如果 (文件名 == "要不起.wav") { 返回 (写出文件(local, ":/voice/要不起.wav")) } 如果 (文件名 == "出牌.wav") { 返回 (写出文件(local, ":/voice/出牌.wav")) } 如果 (文件名 == "单张.wav") { 返回 (写出文件(local, ":/voice/单张.wav")) } 如果 (文件名 == "对子.wav") { 返回 (写出文件(local, ":/voice/对子.wav")) } 如果 (文件名 == "对三.wav") { 返回 (写出文件(local, ":/voice/对三.wav")) } 如果 (文件名 == "对四.wav") { 返回 (写出文件(local, ":/voice/对四.wav")) } 如果 (文件名 == "对五.wav") { 返回 (写出文件(local, ":/voice/对五.wav")) } 如果 (文件名 == "对六.wav") { 返回 (写出文件(local, ":/voice/对六.wav")) } 如果 (文件名 == "对七.wav") { 返回 (写出文件(local, ":/voice/对七.wav")) } 如果 (文件名 == "对八.wav") { 返回 (写出文件(local, ":/voice/对八.wav")) } 如果 (文件名 == "对九.wav") { 返回 (写出文件(local, ":/voice/对九.wav")) } 如果 (文件名 == "对十.wav") { 返回 (写出文件(local, ":/voice/对十.wav")) } 如果 (文件名 == "对勾.wav") { 返回 (写出文件(local, ":/voice/对勾.wav")) } 如果 (文件名 == "对圈.wav") { 返回 (写出文件(local, ":/voice/对圈.wav")) } 如果 (文件名 == "对K.wav") { 返回 (写出文件(local, ":/voice/对K.wav")) } 如果 (文件名 == "对尖.wav") { 返回 (写出文件(local, ":/voice/对尖.wav")) } 如果 (文件名 == "对二.wav") { 返回 (写出文件(local, ":/voice/对二.wav")) } 如果 (文件名 == "鸭子.wav") { 返回 (写出文件(local, ":/voice/鸭子.wav")) } 如果 (文件名 == "大你.wav") { 返回 (写出文件(local, ":/voice/大你.wav")) } 如果 (文件名 == "三张.wav") { 返回 (写出文件(local, ":/voice/三张.wav")) } 如果 (文件名 == "三带一.wav") { 返回 (写出文件(local, ":/voice/三带一.wav")) } 如果 (文件名 == "三带二.wav") { 返回 (写出文件(local, ":/voice/三带二.wav")) } 如果 (文件名 == "顺子.wav") { 返回 (写出文件(local, ":/voice/顺子.wav")) } 如果 (文件名 == "连对.wav") { 返回 (写出文件(local, ":/voice/连对.wav")) } 如果 (文件名 == "飞机.wav") { 返回 (写出文件(local, ":/voice/飞机.wav")) } 如果 (文件名 == "飞机带翅.wav") { 返回 (写出文件(local, ":/voice/飞机带翅.wav")) } 如果 (文件名 == "四带二.wav") { 返回 (写出文件(local, ":/voice/四带二.wav")) } 如果 (文件名 == "炸弹.wav") { 返回 (写出文件(local, ":/voice/炸弹.wav")) } 如果 (文件名 == "王炸.wav") { 返回 (写出文件(local, ":/voice/王炸.wav")) } 如果 (文件名 == "二连炸.wav") { 返回 (写出文件(local, ":/voice/二连炸.wav")) } 如果 (文件名 == "三连炸.wav") { 返回 (写出文件(local, ":/voice/三连炸.wav")) } 如果 (文件名 == "四连炸.wav") { 返回 (写出文件(local, ":/voice/四连炸.wav")) } 如果 (文件名 == "五连炸.wav") { 返回 (写出文件(local, ":/voice/五连炸.wav")) } 如果 (文件名 == "六连炸.wav") { 返回 (写出文件(local, ":/voice/六连炸.wav")) } 如果 (文件名 == "连炸.wav") { 返回 (写出文件(local, ":/voice/连炸.wav")) } 如果 (文件名 == "春天.wav") { 返回 (写出文件(local, ":/voice/春天.wav")) } 如果 (文件名 == "胜利.wav") { 返回 (写出文件(local, ":/voice/胜利.wav")) } 如果 (文件名 == "失败.wav") { 返回 (写出文件(local, ":/voice/失败.wav")) } 如果 (文件名 == "sfx_call.wav") { 返回 (写出文件(local, ":/voice/sfx_call.wav")) } 如果 (文件名 == "sfx_nocall.wav") { 返回 (写出文件(local, ":/voice/sfx_nocall.wav")) } 如果 (文件名 == "sfx_rob.wav") { 返回 (写出文件(local, ":/voice/sfx_rob.wav")) } 如果 (文件名 == "sfx_norob.wav") { 返回 (写出文件(local, ":/voice/sfx_norob.wav")) } 如果 (文件名 == "sfx_nodouble.wav") { 返回 (写出文件(local, ":/voice/sfx_nodouble.wav")) } 如果 (文件名 == "sfx_superdouble.wav") { 返回 (写出文件(local, ":/voice/sfx_superdouble.wav")) } 如果 (文件名 == "sfx_ming.wav") { 返回 (写出文件(local, ":/voice/sfx_ming.wav")) } 如果 (文件名 == "sfx_chain.wav") { 返回 (写出文件(local, ":/voice/sfx_chain.wav")) } 返回 (假) } 函数 取语音包文件 (文本 文件名) 文本 { 如果 (文件名 == "") { 返回 ("") } 文本 dir = 取程序目录() 文本 vdir = 合并路径(dir, "voice") 文本 pVoice = 合并路径(vdir, 文件名) 如果 (文件存在(pVoice)) { 返回 (pVoice) } 文本 pTemp = 合并路径(取临时目录(), "ddz_voice_" + 文件名) 如果 (文件存在(pTemp) == 假) { 抽出语音包到(文件名, pTemp) } 如果 (文件存在(pTemp)) { 返回 (pTemp) } 返回 ("") } 函数 场景内置回退音效 (文本 场景) 文本 { // 无定制 wav 时回退到已嵌入的合成音 如果 (场景 == "叫地主" 或 场景 == "抢地主" 或 场景 == "叫") { 返回 ("sfx_bid.wav") } 如果 (场景 == "不叫" 或 场景 == "不抢" 或 场景 == "不加倍" 或 场景 == "过") { 返回 ("sfx_pass.wav") } 如果 (场景 == "加倍" 或 场景 == "超级加倍" 或 场景 == "明牌") { 返回 ("sfx_double.wav") } 如果 (场景 == "单" 或 场景 == "大你") { 返回 ("sfx_single.wav") } 如果 (场景 == "对" 或 场景 == "对三" 或 场景 == "对四" 或 场景 == "对五" 或 场景 == "对六" 或 场景 == "对七" 或 场景 == "对八" 或 场景 == "对九" 或 场景 == "对十" 或 场景 == "对勾" 或 场景 == "对圈" 或 场景 == "对K" 或 场景 == "对尖" 或 场景 == "对二") { 返回 ("sfx_pair.wav") } 如果 (场景 == "鸭子" 或 场景 == "三" 或 场景 == "三带一" 或 场景 == "三带二" 或 场景 == "三带对") { 返回 ("sfx_triple.wav") } 如果 (场景 == "顺" 或 场景 == "连对") { 返回 ("sfx_straight.wav") } 如果 (场景 == "飞机" 或 场景 == "飞机带单" 或 场景 == "飞机带对" 或 场景 == "飞机带翅") { 返回 ("sfx_plane.wav") } 如果 (场景 == "炸" 或 场景 == "炸弹" 或 场景 == "四带二" 或 场景 == "四带两单" 或 场景 == "四带两对") { 返回 ("bomb.wav") } 如果 (场景 == "王炸") { 返回 ("sfx_rocket.wav") } 如果 (场景 == "连炸" 或 场景 == "二连炸" 或 场景 == "三连炸" 或 场景 == "四连炸" 或 场景 == "五连炸" 或 场景 == "六连炸") { 返回 ("sfx_chain.wav") } 如果 (场景 == "出") { 返回 ("sfx_play.wav") } 如果 (场景 == "春" 或 场景 == "胜") { 返回 ("sfx_win.wav") } 如果 (场景 == "错") { 返回 ("sfx_fail.wav") } 如果 (场景 == "报") { 返回 ("sfx_alert.wav") } 返回 ("sfx_bid.wav") } 函数 对子点喊 (整数 权) 文本 { // 对三~对二;J/Q/A 用勾/圈/尖 如果 (权 == 3) { 返回 ("对三") } 如果 (权 == 4) { 返回 ("对四") } 如果 (权 == 5) { 返回 ("对五") } 如果 (权 == 6) { 返回 ("对六") } 如果 (权 == 7) { 返回 ("对七") } 如果 (权 == 8) { 返回 ("对八") } 如果 (权 == 9) { 返回 ("对九") } 如果 (权 == 10) { 返回 ("对十") } 如果 (权 == 11) { 返回 ("对勾") } 如果 (权 == 12) { 返回 ("对圈") } 如果 (权 == 13) { 返回 ("对K") } 如果 (权 == 14) { 返回 ("对尖") } 如果 (权 == 15) { 返回 ("对二") } 返回 ("对") } 函数 播出牌型音 (整数 型, 整数 权, 整数 座) { 如果 (音效开 == 假) { 返回 () } 如果 (型 == 型_单) { 播场景音座("单", 78, 座) 返回 () } 如果 (型 == 型_对) { 播场景音座(对子点喊(权), 82, 座) 返回 () } 如果 (型 == 型_三) { 播场景音座("三", 82, 座) 返回 () } 如果 (型 == 型_三带一) { 播场景音座("三带一", 84, 座) 返回 () } 如果 (型 == 型_三带对) { 播场景音座("三带二", 84, 座) 返回 () } 如果 (型 == 型_顺子) { 播场景音座("顺", 82, 座) 返回 () } 如果 (型 == 型_连对) { 播场景音座("连对", 84, 座) 返回 () } 如果 (型 == 型_飞机) { 播场景音座("飞机", 84, 座) 返回 () } 如果 (型 == 型_飞机带单 或 型 == 型_飞机带对) { 播场景音座("飞机带翅", 86, 座) 返回 () } 如果 (型 == 型_四带两单 或 型 == 型_四带两对) { 播场景音座("四带二", 86, 座) 返回 () } 播场景音座("出", 80, 座) } 函数 语队清空 () { 数组清空(语队路径) 数组清空(语队音量) 如果 (语队播中ID > 0) { 关闭音频(语队播中ID) 语队播中ID = 0 } }