Exemplo n.º 1
0
int
money_cop()
{
    int ch, quit = 0;
    char uident[IDLEN + 1], buf[256];

    if (!(myInfo->GetLetter == 1)) {
        clear();
        showAt(5, 4, "你已经关闭了金融中心游戏功能,请开启后再来。",
               YEA);
        return 0;
    }

    while (!quit) {
        sprintf(buf, "%s警署", CENTER_NAME);
        nomoney_show_stat(buf);
        move(8, 16);
        prints("打击犯罪,维持治安!");
        move(10, 4);
        prints("近期犯罪活动大大增加,刑警们也开始日以继夜的加班。");
        move(t_lines - 1, 0);
        prints("\033[1;44m 选单 \033[1;46m [1]报案 [2]通缉榜"
               " [3]刑警队 [4]署长办公室 [Q]离开\033[m");
        ch = igetkey();
        switch (ch) {
        case '1':
            nomoney_show_stat("警署接待厅");
            cop_accuse();
            break;
        case '2':
            clear();
            move(1, 0);
            prints("%s警署当前通缉的犯罪嫌疑人:", CENTER_NAME);
            listfilecontent(DIR_MC "criminals_list");
            FreeNameList();
            pressanykey();
            break;
        case '3':
            cop_police();
            break;
        case '4':
            nomoney_show_stat("署长办公室");
            whoTakeCharge(8, uident);
            if (strcmp(currentuser->userid, uident))
                break;
            showAt(6, 0, "    请选择操作代号:\n"
                   "        1. 任命警员         2. 解职警员\n"
                   "        3. 警员名单         4. 保释罪犯\n"
                   "        5. 查询             Q. 退出", NA);
            ch = igetkey();
            switch (ch) {
            case '1':
            case '2':
                cop_arrange(ch - '0');
                break;
            case '3':
                clear();
                move(1, 0);
                prints("目前%s警署警员名单:", CENTER_NAME);
                listfilecontent(DIR_MC "policemen");
                FreeNameList();
                pressanykey();
                break;
            case '4':
                break;
            case '5':
                SearchCrime();
            }
            break;
        case 'q':
        case 'Q':
            quit = 1;
            break;
        }
        limit_cpu();
    }
    return 0;
}
Exemplo n.º 2
0
int
walk_map(McMap * mcMap)
{
	int i, j, ch, r, walk;
	unsigned short exits;

	i = mcMap->prev_x;
	j = mcMap->prev_y;

	for (walk = 0; map_valid(mcMap);) {
		r = 4;
		myInfo->pos_x = i;
		myInfo->pos_y = j;
		money_show_stat("邪恶荒原");
		move(r++, 0);
		prints
		    ("这里是大富翁城外不远的邪恶荒原, 周围荒草凄凄, 静寂得令人毛骨悚然.");
		if (myInfo->health < 1) {
			showAt(++r, 0, "你没有足够的体力行走了...", YEA);
			continue;
		}
		move(t_lines - 2, 0);
		prints("[h 帮助]这里明显的出口是:");
		exits = mcMap->map[i][j].exit;
		if (exits & NODE_LEFT)
			prints("%s、", "←");
		if (exits & NODE_RIGHT)
			prints("%s、", "→");
		if (exits & NODE_UP)
			prints("%s、", "↑");
		if (exits & NODE_DOWN)
			prints("%s。", "↓");

		print_item(&mcMap->map[i][j], &r);

		ch = igetkey();
		if (ch == KEY_LEFT && (exits & NODE_LEFT)) {
			walk++;
			j--;
		} else if (ch == KEY_RIGHT && (exits & NODE_RIGHT)) {
			walk++;
			j++;
		} else if (ch == KEY_UP && (exits & NODE_UP)) {
			walk++;
			i--;
		} else if (ch == KEY_DOWN && (exits & NODE_DOWN)) {
			walk++;
			i++;
		} else if (ch == 'q' || ch == 'Q') {
			return 0;
		} else if (ch == 'h' || ch == 'H') {
			print_map_help();
		} else if (ch == KEY_TAB) {
			nomoney_show_stat("邪恶荒原");
			move(4, 0);
			print_map(mcMap, 1);
			pressanykey();
		} else if (ch == 'k' || ch == 'K') {
			kill_npc();
		} else if (ch == 'o') {
			open_box();
		} else {
			showAt(t_lines - 1, 0, ">你要做什么?", YEA);
		}
		//更新身体状态
		update_health();
		if (walk % 4 == 1) {
			walk++;
			myInfo->health--;
			limit_cpu();
		}
	}
	return 0;
}