ground2.c
来自「C实现的MUD,对大家基本入门网络游戏很有帮助!」· C语言 代码 · 共 1,229 行 · 第 1/3 页
C
1,229 行
msg += show_teams(teams); if (brief) return msg; msg += "\n各队将依按输赢结果依次上场打擂。\n"; break; } case MODE_TEAM_DZ: { msg += modes[mode]+",共有"+chinese_number(teams["number"])+"组参赛队伍:\n"; msg += (show_teams(teams)); if (brief) return msg; msg += "\n每队选手依次与别队同级选手较量。\n"; break; } case MODE_TEAM_XH: { msg += modes[mode]+",共有"+chinese_number(teams["number"])+"组参赛队伍:\n"; msg += (show_teams(teams)); if (brief) return msg; msg += "\n每队选手依次与别队所有的选手较量。\n"; break; } } return msg;}string report_contest (int brief){ int mode = this_room()->query("match/mode"); mapping teams = this_room()->query("match/teams"); mapping team0; mapping team1; string name0; string name1; string msg = ""; if (teams && ! teams["start"]) return "比赛还没有开始。\n"; if (! teams["current_player0_id"] && (mode != MODE_SINGLE_SD)) return "赛场尚未准备就绪,请稍候几秒。\n"; switch (mode) { case MODE_SINGLE_SD: { msg += modes[mode]+",任意两名玩家均可参加比赛。\n"; break; } case MODE_SINGLE_LT: { if (! teams["current_player1_id"]) msg += "玩家"+teams["current_player0_name"]+ "("+teams["current_player0_id"]+")"+ "上场打擂。\n"; else if (! teams["current_winner_id"]) msg += "玩家"+teams["current_player1_name"]+ "("+teams["current_player1_id"]+")"+ "与玩家"+teams["current_player0_name"]+ "("+teams["current_player0_id"]+")"+ "摆阵打擂。\n"; else msg += "玩家"+teams["current_player1_name"]+ "("+teams["current_player1_id"]+")"+ "前来挑战擂主"+teams["current_player0_name"]+ "("+teams["current_player0_id"]+")"+ "。\n"; break; } case MODE_TEAM_LT: { team0 = find_teams_team(teams,teams["current_player0_id"]); team1 = find_teams_team(teams,teams["current_player1_id"]); name0 = "“"+team0["info"]["team_name"]+"”队"; if (team1) name1 = "“"+team1["info"]["team_name"]+"”队"; if (! teams["current_player1_id"]) msg += name0+"选手"+teams["current_player0_name"]+ "("+teams["current_player0_id"]+")"+ "上场打擂。\n"; else if (! teams["current_winner_id"]) msg += name1+"选手"+teams["current_player1_name"]+ "("+teams["current_player1_id"]+")"+ "与"+name0+"选手"+teams["current_player0_name"]+ "("+teams["current_player0_id"]+")"+ "摆阵打擂。\n"; else msg += name1+"选手"+teams["current_player1_name"]+ "("+teams["current_player1_id"]+")"+ "前来挑战"+name0+"擂主"+teams["current_player0_name"]+ "("+teams["current_player0_id"]+")"+ "。\n"; break; } case MODE_TEAM_DZ: case MODE_TEAM_XH: { team0 = find_teams_team(teams,teams["current_player0_id"]); team1 = find_teams_team(teams,teams["current_player1_id"]); name0 = "“"+team0["info"]["team_name"]+"”队"; if (team1) name1 = "“"+team1["info"]["team_name"]+"”队"; if (! teams["current_player1_id"]) msg += name0+"选手"+teams["current_player0_name"]+ "("+teams["current_player0_id"]+")"+ "上场。\n"; else msg += name1+"选手"+teams["current_player1_name"]+ "("+teams["current_player1_id"]+")"+ "与"+name0+"选手"+teams["current_player0_name"]+ "("+teams["current_player0_id"]+")"+ "比赛。\n"; break; } } if (brief) return msg; if (! teams["done"]) msg += "\n请巫师将他们邀入(summon)场内比赛。\n"; return msg;}string report_events (mapping teams){ int mode = this_room()->query("match/mode"); int cycles = teams["cycles"]; int sessions = teams["sessions"]; int total = teams["total"]; int index = teams["index"]; mapping events = teams["events"]; mapping team0; mapping team1; mapping member0; mapping member1; string name0; string name1; string msg = ""; int *item; int win; int i, j; if (! events) return ""; if (teams["done"]) j = total; // done, index is not incremented else j = index - 1; msg += "比赛结果:\n"; for (i = 0; i < j; i++) { item = events[i]; team0 = teams[item[0]]; team1 = teams[item[2]]; member0 = team0[item[1]]; member1 = team1[item[3]]; win = item[4]; if (mode == MODE_SINGLE_SD || mode == MODE_SINGLE_LT) { name0 = ""; name1 = ""; } else { //name0 = "“"+team0["info"]["team_name"]+"”队选手"; //name1 = "“"+team1["info"]["team_name"]+"”队选手"; name0 = "“"+team0["info"]["team_name"]+"”队"; name1 = "“"+team1["info"]["team_name"]+"”队"; } msg += " "+to_chinese(i+1)+". "; msg += name0+member0["name"]+"("+member0["id"]+")"; if (win) msg += "战胜"; else msg += "输给"; msg += name1+member1["name"]+"("+member1["id"]+")\n"; } if (index >= total) return msg; msg += "即将开始的比赛:\n"; for (i = index; i < total; i++) { item = events[i]; team0 = teams[item[0]]; team1 = teams[item[2]]; member0 = team0[item[1]]; member1 = team1[item[3]]; win = item[4]; name0 = "“"+team0["info"]["team_name"]+"”队"; name1 = "“"+team1["info"]["team_name"]+"”队"; msg += " "+to_chinese(i-index+1)+". "; msg += name0+"选手"+member0["name"]+"("+member0["id"]+")"; msg += "迎战"; msg += name1+"选手"+member1["name"]+"("+member1["id"]+")\n"; } return msg;}string report_result (){ int mode = this_room()->query("match/mode"); mapping teams = this_room()->query("match/teams"); mapping team0; mapping team1; mapping member0; mapping member1; int *item; int win; string name0; string name1; string msg = ""; int i, j, k; if (teams && ! teams["start"]) return "请稍候几秒,比赛马上就开始。\n"; if (! teams["current_player0_id"] && (mode != MODE_SINGLE_SD)) return "请稍候几秒,赛场立刻就准备就绪。\n"; switch (mode) { case MODE_SINGLE_SD: { msg = report_events (teams); if (msg == "") msg = "请稍候几秒,比赛立刻就开始。\n"; return msg; break; } case MODE_SINGLE_LT: { int current_index; team0 = teams[0]; current_index = team0["current_index"]; msg += modes[mode]+":"; if (! teams["current_winner_id"]) return msg+"还没有赛出擂主。\n"; msg += "擂主是"+teams["current_winner_name"]+ "("+teams["current_winner_id"]+")"; if (teams["current_player1_id"]) { msg += ",接受"+teams["current_player1_name"]+ "("+teams["current_player1_id"]+")"+"的挑战。\n"; } else { msg += "。\n"; } msg += report_events (teams);/* msg += "被击败的玩家是:"; for (i = 0; i < current_index; i++) { mapping member = team0[i]; if (member["id"] != teams["current_winner_id"]) msg += member["name"]+"("+member["id"]+") "; } msg += "\n";*/ if (current_index < team0["number"]) msg += "尚未上场的玩家是:"; for (i = current_index; i < team0["number"]; i++) { mapping member = team0[i]; msg += member["name"]+"("+member["id"]+") "; } msg += "\n"; break; } case MODE_TEAM_LT: { msg += modes[mode]+":"; if (! teams["current_winner_id"]) return msg+"还没有赛出擂主。\n"; team0 = find_teams_team(teams,teams["current_winner_id"]); name0 = "“"+team0["info"]["team_name"]+"”队"; msg += "擂主是"+name0+"的"+teams["current_winner_name"]+ "("+teams["current_winner_id"]+")"; if (teams["current_player1_id"]) { team1 = find_teams_team(teams,teams["current_player1_id"]); name1 = "“"+team1["info"]["team_name"]+"”队"; msg += ",接受"+name1+"的"+teams["current_player1_name"]+ "("+teams["current_player1_id"]+")"+"的挑战。\n"; } else { msg += "。\n"; } msg += report_events (teams); msg += "各队战况:\n"; for (i = 0; i < teams["number"]; i++) { int current_index; team0 = teams[i]; current_index = team0["current_index"]; name0 = "“"+team0["info"]["team_name"]+"”队"; msg += " "+name0+":"; msg += "赢了"+chinese_number(team0["info"]["wins"])+"场,"; msg += "输了"+chinese_number(team0["info"]["loses"])+"场。\n";/* msg += " 被击败的选手是:"; for (j = 0; j < current_index; j++) { mapping member = team0[j]; if (member["id"] != teams["current_winner_id"]) msg += member["name"]+"("+member["id"]+") "; } msg += "\n";*/ msg += " 尚未上场的选手是:"; for (j = current_index; j < team0["number"]; j++) { mapping member = team0[j]; msg += member["name"]+"("+member["id"]+") "; } msg += "\n"; } break; } case MODE_TEAM_DZ: case MODE_TEAM_XH: { int cycles = teams["cycles"]; int sessions = teams["sessions"]; int total = teams["total"]; int index = teams["index"]; mapping events = teams["events"]; msg += "总共有"+chinese_number(cycles)+"轮,每轮有"+ chinese_number(sessions)+"场比赛。\n"; if (teams["done"]) { msg += "现在赛事已完。\n"; } else if (index/sessions+1 <= cycles) { msg += "现在是第"+chinese_number((index-1)/sessions+1)+"轮第"+ chinese_number((index-1)%sessions+1)+"场,"; msg += "合计第"+chinese_number(index)+"场。\n"; } msg += "现在上场的是"; team0 = find_teams_team(teams,teams["current_player0_id"]); name0 = "“"+team0["info"]["team_name"]+"”队"; if (teams["current_player1_id"]) { team1 = find_teams_team(teams,teams["current_player1_id"]); name1 = "“"+team1["info"]["team_name"]+"”队"; msg += name1+"选手"+teams["current_player1_name"]+ "("+teams["current_player1_id"]+")"+ "与"+name0+"选手"+teams["current_player0_name"]+ "("+teams["current_player0_id"]+")"+ "比赛。\n"; } else msg += name0+"选手"+teams["current_player0_name"]+ "("+teams["current_player0_id"]+")"+"。\n"; msg += "\n各队战况:\n"; for (i = 0; i < teams["number"]; i++) { team0 = teams[i]; name0 = "“"+team0["info"]["team_name"]+"”队"; msg += " "+name0+":"; msg += "赢了"+chinese_number(team0["info"]["wins"])+"场,"; msg += "输了"+chinese_number(team0["info"]["loses"])+"场。\n"; } msg += report_events (teams); break; } } return msg;}int do_report2(){ string line = "\n-------------------------------------------------------------------\n"; string msg = line; msg += "\n"; msg += "大会比赛阶段:\n"; msg += "\n"; msg += report_check(1); msg += "[检查正在进行的比赛:check]\n"; msg += "\n"; msg += report_contest(1); msg += "[察看上场选手:contest]\n"; msg += "\n";
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?