亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? g_cmds.c

?? 著名游戲quake2原代碼最新版本(vc6.0可以編譯的)
?? C
?? 第 1 頁 / 共 2 頁
字號:
		PMenu_Select(ent);
		return;
	}
//ZOID

	ValidateSelectedItem (ent);

	if (ent->client->pers.selected_item == -1)
	{
		gi.cprintf (ent, PRINT_HIGH, "No item to use.\n");
		return;
	}

	it = &itemlist[ent->client->pers.selected_item];
	if (!it->use)
	{
		gi.cprintf (ent, PRINT_HIGH, "Item is not usable.\n");
		return;
	}
	it->use (ent, it);
}

//ZOID
/*
=================
Cmd_LastWeap_f
=================
*/
void Cmd_LastWeap_f (edict_t *ent)
{
	gclient_t	*cl;

	cl = ent->client;

	if (!cl->pers.weapon || !cl->pers.lastweapon)
		return;

	cl->pers.lastweapon->use (ent, cl->pers.lastweapon);
}
//ZOID

/*
=================
Cmd_WeapPrev_f
=================
*/
void Cmd_WeapPrev_f (edict_t *ent)
{
	gclient_t	*cl;
	int			i, index;
	gitem_t		*it;
	int			selected_weapon;

	cl = ent->client;

	if (!cl->pers.weapon)
		return;

	selected_weapon = ITEM_INDEX(cl->pers.weapon);

	// scan  for the next valid one
	for (i=1 ; i<=MAX_ITEMS ; i++)
	{
		index = (selected_weapon + i)%MAX_ITEMS;
		if (!cl->pers.inventory[index])
			continue;
		it = &itemlist[index];
		if (!it->use)
			continue;
		if (! (it->flags & IT_WEAPON) )
			continue;
		it->use (ent, it);
		if (cl->pers.weapon == it)
			return;	// successful
	}
}

/*
=================
Cmd_WeapNext_f
=================
*/
void Cmd_WeapNext_f (edict_t *ent)
{
	gclient_t	*cl;
	int			i, index;
	gitem_t		*it;
	int			selected_weapon;

	cl = ent->client;

	if (!cl->pers.weapon)
		return;

	selected_weapon = ITEM_INDEX(cl->pers.weapon);

	// scan  for the next valid one
	for (i=1 ; i<=MAX_ITEMS ; i++)
	{
		index = (selected_weapon + MAX_ITEMS - i)%MAX_ITEMS;
		if (!cl->pers.inventory[index])
			continue;
		it = &itemlist[index];
		if (!it->use)
			continue;
		if (! (it->flags & IT_WEAPON) )
			continue;
		it->use (ent, it);
		if (cl->pers.weapon == it)
			return;	// successful
	}
}

/*
=================
Cmd_WeapLast_f
=================
*/
void Cmd_WeapLast_f (edict_t *ent)
{
	gclient_t	*cl;
	int			index;
	gitem_t		*it;

	cl = ent->client;

	if (!cl->pers.weapon || !cl->pers.lastweapon)
		return;

	index = ITEM_INDEX(cl->pers.lastweapon);
	if (!cl->pers.inventory[index])
		return;
	it = &itemlist[index];
	if (!it->use)
		return;
	if (! (it->flags & IT_WEAPON) )
		return;
	it->use (ent, it);
}

/*
=================
Cmd_InvDrop_f
=================
*/
void Cmd_InvDrop_f (edict_t *ent)
{
	gitem_t		*it;

	ValidateSelectedItem (ent);

	if (ent->client->pers.selected_item == -1)
	{
		gi.cprintf (ent, PRINT_HIGH, "No item to drop.\n");
		return;
	}

	it = &itemlist[ent->client->pers.selected_item];
	if (!it->drop)
	{
		gi.cprintf (ent, PRINT_HIGH, "Item is not dropable.\n");
		return;
	}
	it->drop (ent, it);
}

/*
=================
Cmd_Kill_f
=================
*/
void Cmd_Kill_f (edict_t *ent)
{
//ZOID
	if (ent->solid == SOLID_NOT)
		return;
//ZOID

	if((level.time - ent->client->respawn_time) < 5)
		return;
	ent->flags &= ~FL_GODMODE;
	ent->health = 0;
	meansOfDeath = MOD_SUICIDE;
	player_die (ent, ent, ent, 100000, vec3_origin);
}

/*
=================
Cmd_PutAway_f
=================
*/
void Cmd_PutAway_f (edict_t *ent)
{
	ent->client->showscores = false;
	ent->client->showhelp = false;
	ent->client->showinventory = false;
//ZOID
	if (ent->client->menu)
		PMenu_Close(ent);
	ent->client->update_chase = true;
//ZOID
}


int PlayerSort (void const *a, void const *b)
{
	int		anum, bnum;

	anum = *(int *)a;
	bnum = *(int *)b;

	anum = game.clients[anum].ps.stats[STAT_FRAGS];
	bnum = game.clients[bnum].ps.stats[STAT_FRAGS];

	if (anum < bnum)
		return -1;
	if (anum > bnum)
		return 1;
	return 0;
}

/*
=================
Cmd_Players_f
=================
*/
void Cmd_Players_f (edict_t *ent)
{
	int		i;
	int		count;
	char	small[64];
	char	large[1280];
	int		index[256];

	count = 0;
	for (i = 0 ; i < maxclients->value ; i++)
		if (game.clients[i].pers.connected)
		{
			index[count] = i;
			count++;
		}

	// sort by frags
	qsort (index, count, sizeof(index[0]), PlayerSort);

	// print information
	large[0] = 0;

	for (i = 0 ; i < count ; i++)
	{
		Com_sprintf (small, sizeof(small), "%3i %s\n",
			game.clients[index[i]].ps.stats[STAT_FRAGS],
			game.clients[index[i]].pers.netname);
		if (strlen (small) + strlen(large) > sizeof(large) - 100 )
		{	// can't print all of them in one packet
			strcat (large, "...\n");
			break;
		}
		strcat (large, small);
	}

	gi.cprintf (ent, PRINT_HIGH, "%s\n%i players\n", large, count);
}

/*
=================
Cmd_Wave_f
=================
*/
void Cmd_Wave_f (edict_t *ent)
{
	int		i;

	i = atoi (gi.argv(1));

	// can't wave when ducked
	if (ent->client->ps.pmove.pm_flags & PMF_DUCKED)
		return;

	if (ent->client->anim_priority > ANIM_WAVE)
		return;

	ent->client->anim_priority = ANIM_WAVE;

	switch (i)
	{
	case 0:
		gi.cprintf (ent, PRINT_HIGH, "flipoff\n");
		ent->s.frame = FRAME_flip01-1;
		ent->client->anim_end = FRAME_flip12;
		break;
	case 1:
		gi.cprintf (ent, PRINT_HIGH, "salute\n");
		ent->s.frame = FRAME_salute01-1;
		ent->client->anim_end = FRAME_salute11;
		break;
	case 2:
		gi.cprintf (ent, PRINT_HIGH, "taunt\n");
		ent->s.frame = FRAME_taunt01-1;
		ent->client->anim_end = FRAME_taunt17;
		break;
	case 3:
		gi.cprintf (ent, PRINT_HIGH, "wave\n");
		ent->s.frame = FRAME_wave01-1;
		ent->client->anim_end = FRAME_wave11;
		break;
	case 4:
	default:
		gi.cprintf (ent, PRINT_HIGH, "point\n");
		ent->s.frame = FRAME_point01-1;
		ent->client->anim_end = FRAME_point12;
		break;
	}
}

qboolean CheckFlood(edict_t *ent)
{
	int		i;
	gclient_t *cl;

	if (flood_msgs->value) {
		cl = ent->client;

        if (level.time < cl->flood_locktill) {
			gi.cprintf(ent, PRINT_HIGH, "You can't talk for %d more seconds\n",
				(int)(cl->flood_locktill - level.time));
            return true;
        }
        i = cl->flood_whenhead - flood_msgs->value + 1;
        if (i < 0)
            i = (sizeof(cl->flood_when)/sizeof(cl->flood_when[0])) + i;
		if (cl->flood_when[i] && 
			level.time - cl->flood_when[i] < flood_persecond->value) {
			cl->flood_locktill = level.time + flood_waitdelay->value;
			gi.cprintf(ent, PRINT_CHAT, "Flood protection:  You can't talk for %d seconds.\n",
				(int)flood_waitdelay->value);
            return true;
        }
		cl->flood_whenhead = (cl->flood_whenhead + 1) %
			(sizeof(cl->flood_when)/sizeof(cl->flood_when[0]));
		cl->flood_when[cl->flood_whenhead] = level.time;
	}
	return false;
}

/*
==================
Cmd_Say_f
==================
*/
void Cmd_Say_f (edict_t *ent, qboolean team, qboolean arg0)
{
	int		j;
	edict_t	*other;
	char	*p;
	char	text[2048];

	if (gi.argc () < 2 && !arg0)
		return;

	if (!((int)(dmflags->value) & (DF_MODELTEAMS | DF_SKINTEAMS)))
		team = false;

	if (team)
		Com_sprintf (text, sizeof(text), "(%s): ", ent->client->pers.netname);
	else
		Com_sprintf (text, sizeof(text), "%s: ", ent->client->pers.netname);

	if (arg0)
	{
		strcat (text, gi.argv(0));
		strcat (text, " ");
		strcat (text, gi.args());
	}
	else
	{
		p = gi.args();

		if (*p == '"')
		{
			p++;
			p[strlen(p)-1] = 0;
		}
		strcat(text, p);
	}

	// don't let text be too long for malicious reasons
	if (strlen(text) > 150)
		text[150] = 0;

	strcat(text, "\n");

	if (CheckFlood(ent))
		return;

	if (dedicated->value)
		gi.cprintf(NULL, PRINT_CHAT, "%s", text);

	for (j = 1; j <= game.maxclients; j++)
	{
		other = &g_edicts[j];
		if (!other->inuse)
			continue;
		if (!other->client)
			continue;
		if (team)
		{
			if (!OnSameTeam(ent, other))
				continue;
		}
		gi.cprintf(other, PRINT_CHAT, "%s", text);
	}
}

/*
=================
ClientCommand
=================
*/
void ClientCommand (edict_t *ent)
{
	char	*cmd;

	if (!ent->client)
		return;		// not fully in game yet

	cmd = gi.argv(0);

	if (Q_stricmp (cmd, "players") == 0)
	{
		Cmd_Players_f (ent);
		return;
	}
	if (Q_stricmp (cmd, "say") == 0)
	{
		Cmd_Say_f (ent, false, false);
		return;
	}
	if (Q_stricmp (cmd, "say_team") == 0 || Q_stricmp (cmd, "steam") == 0)
	{
		CTFSay_Team(ent, gi.args());
		return;
	}
	if (Q_stricmp (cmd, "score") == 0)
	{
		Cmd_Score_f (ent);
		return;
	}
	if (Q_stricmp (cmd, "help") == 0)
	{
		Cmd_Help_f (ent);
		return;
	}

	if (level.intermissiontime)
		return;

	if (Q_stricmp (cmd, "use") == 0)
		Cmd_Use_f (ent);
	else if (Q_stricmp (cmd, "drop") == 0)
		Cmd_Drop_f (ent);
	else if (Q_stricmp (cmd, "give") == 0)
		Cmd_Give_f (ent);
	else if (Q_stricmp (cmd, "god") == 0)
		Cmd_God_f (ent);
	else if (Q_stricmp (cmd, "notarget") == 0)
		Cmd_Notarget_f (ent);
	else if (Q_stricmp (cmd, "noclip") == 0)
		Cmd_Noclip_f (ent);
	else if (Q_stricmp (cmd, "inven") == 0)
		Cmd_Inven_f (ent);
	else if (Q_stricmp (cmd, "invnext") == 0)
		SelectNextItem (ent, -1);
	else if (Q_stricmp (cmd, "invprev") == 0)
		SelectPrevItem (ent, -1);
	else if (Q_stricmp (cmd, "invnextw") == 0)
		SelectNextItem (ent, IT_WEAPON);
	else if (Q_stricmp (cmd, "invprevw") == 0)
		SelectPrevItem (ent, IT_WEAPON);
	else if (Q_stricmp (cmd, "invnextp") == 0)
		SelectNextItem (ent, IT_POWERUP);
	else if (Q_stricmp (cmd, "invprevp") == 0)
		SelectPrevItem (ent, IT_POWERUP);
	else if (Q_stricmp (cmd, "invuse") == 0)
		Cmd_InvUse_f (ent);
	else if (Q_stricmp (cmd, "invdrop") == 0)
		Cmd_InvDrop_f (ent);
	else if (Q_stricmp (cmd, "weapprev") == 0)
		Cmd_WeapPrev_f (ent);
	else if (Q_stricmp (cmd, "weapnext") == 0)
		Cmd_WeapNext_f (ent);
	else if (Q_stricmp (cmd, "weaplast") == 0)
		Cmd_WeapLast_f (ent);
	else if (Q_stricmp (cmd, "kill") == 0)
		Cmd_Kill_f (ent);
	else if (Q_stricmp (cmd, "putaway") == 0)
		Cmd_PutAway_f (ent);
	else if (Q_stricmp (cmd, "wave") == 0)
		Cmd_Wave_f (ent);
//ZOID
	else if (Q_stricmp (cmd, "team") == 0)
	{
		CTFTeam_f (ent);
	} else if (Q_stricmp(cmd, "id") == 0) {
		CTFID_f (ent);
	} else if (Q_stricmp(cmd, "yes") == 0) {
		CTFVoteYes(ent);
	} else if (Q_stricmp(cmd, "no") == 0) {
		CTFVoteNo(ent);
	} else if (Q_stricmp(cmd, "ready") == 0) {
		CTFReady(ent);
	} else if (Q_stricmp(cmd, "notready") == 0) {
		CTFNotReady(ent);
	} else if (Q_stricmp(cmd, "ghost") == 0) {
		CTFGhost(ent);
	} else if (Q_stricmp(cmd, "admin") == 0) {
		CTFAdmin(ent);
	} else if (Q_stricmp(cmd, "stats") == 0) {
		CTFStats(ent);
	} else if (Q_stricmp(cmd, "warp") == 0) {
		CTFWarp(ent);
	} else if (Q_stricmp(cmd, "boot") == 0) {
		CTFBoot(ent);
	} else if (Q_stricmp(cmd, "playerlist") == 0) {
		CTFPlayerList(ent);
	} else if (Q_stricmp(cmd, "observer") == 0) {
		CTFObserver(ent);
	}
//ZOID
	else	// anything that doesn't match a command will be a chat
		Cmd_Say_f (ent, false, true);
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美精品视频www在线观看| 成人欧美一区二区三区白人| 精品国产伦一区二区三区观看体验 | 91精品国产综合久久精品麻豆| 久久精品一区蜜桃臀影院| 一卡二卡三卡日韩欧美| 国产成人丝袜美腿| 欧美一区二区三区思思人| 亚洲欧美另类综合偷拍| 国产成人综合网| 日韩精品一区二区三区在线播放| 一区二区在线免费观看| 国产+成+人+亚洲欧洲自线| 日韩欧美国产成人一区二区| 亚洲国产欧美日韩另类综合| 99久久精品情趣| 中文字幕av一区二区三区高 | 国产mv日韩mv欧美| 欧美一区永久视频免费观看| 一区二区三区精品| 成人久久18免费网站麻豆| 91精品国产一区二区| 天天影视网天天综合色在线播放| www.欧美.com| 中文字幕精品一区| 国产成人午夜99999| 久久久噜噜噜久久人人看| 蜜臀av国产精品久久久久| 91精品国产色综合久久ai换脸| 一区二区三区小说| 色狠狠色噜噜噜综合网| 亚洲欧美一区二区三区极速播放 | 国产一区二区福利| 欧美一区二区三区精品| 日韩国产精品91| 欧美老肥妇做.爰bbww| 午夜激情综合网| 欧美日韩高清在线| 午夜精品久久久久久久蜜桃app| 色av综合在线| 亚洲电影一级黄| 欧美一二三区在线| 久久99精品久久久久婷婷| 日韩精品一区二区三区老鸭窝| 久久99九九99精品| wwwwww.欧美系列| 成人免费黄色大片| 中文字幕一区日韩精品欧美| 91亚洲精品乱码久久久久久蜜桃| 亚洲精品国产无天堂网2021 | 亚洲日穴在线视频| 色婷婷综合久色| 丝袜美腿亚洲一区二区图片| 日韩一区二区不卡| 风间由美性色一区二区三区| 亚洲私人黄色宅男| 欧美精品丝袜中出| 国产九色精品成人porny | 国产亚洲欧美日韩俺去了| 成人性生交大片| 7777精品伊人久久久大香线蕉的 | 精品欧美一区二区三区精品久久| 黑人巨大精品欧美黑白配亚洲| 日本一区二区三区四区| 色欧美日韩亚洲| 美日韩一级片在线观看| 国产精品黄色在线观看| 欧美高清一级片在线| 国产成人久久精品77777最新版本| 中文字幕亚洲在| 欧美一区永久视频免费观看| 懂色av一区二区三区免费观看 | 欧美日韩综合色| 久久www免费人成看片高清| 亚洲欧洲一区二区三区| 欧美一级视频精品观看| 91色porny蝌蚪| 国产乱子伦一区二区三区国色天香| 亚洲天天做日日做天天谢日日欢 | 国内外成人在线视频| 亚洲免费在线视频一区 二区| 欧美一区二区三区免费大片 | 精品欧美久久久| 91美女福利视频| 国产福利一区二区三区| 日韩1区2区日韩1区2区| 亚洲色图欧洲色图婷婷| 日韩免费观看2025年上映的电影| 91色porny在线视频| 国产激情精品久久久第一区二区| 亚洲成人一区二区在线观看| 国产精品色呦呦| 精品国产乱码久久久久久久久 | 日韩黄色免费网站| 亚洲欧美激情在线| 亚洲国产精品成人综合色在线婷婷 | 欧美成va人片在线观看| 欧美亚洲国产bt| caoporn国产精品| 国产91清纯白嫩初高中在线观看| 亚洲女人小视频在线观看| 国产欧美视频在线观看| 欧美电影免费提供在线观看| 欧美吻胸吃奶大尺度电影| 91丨porny丨在线| 成人av网站免费观看| 国产白丝网站精品污在线入口| 久久疯狂做爰流白浆xx| 开心九九激情九九欧美日韩精美视频电影 | 亚洲一区二区黄色| 夜夜嗨av一区二区三区网页| 国产精品天干天干在线综合| 国产亚洲综合色| 国产午夜精品久久久久久免费视 | 久久综合久久综合久久综合| 666欧美在线视频| 欧美二区三区的天堂| 欧美肥胖老妇做爰| 欧美精品v国产精品v日韩精品| 欧美人妇做爰xxxⅹ性高电影| 欧美性猛交xxxxxxxx| 欧美自拍丝袜亚洲| 欧美三级电影一区| 日韩三级免费观看| 欧美变态tickling挠脚心| 日韩美女视频一区二区在线观看| 日韩一级片在线观看| 日韩精品专区在线| 2021久久国产精品不只是精品| 精品盗摄一区二区三区| 久久久久成人黄色影片| 中文字幕不卡在线观看| 亚洲日本在线观看| 亚洲一区二区三区中文字幕| 亚洲18女电影在线观看| 裸体歌舞表演一区二区| 成人三级在线视频| 日本精品一级二级| 91精品国产综合久久久久久漫画 | 国产精品家庭影院| 亚洲一区二区三区国产| 日本不卡1234视频| 国产精品亚洲а∨天堂免在线| av在线不卡电影| 欧美日韩在线直播| xnxx国产精品| 中文字幕人成不卡一区| 日韩在线卡一卡二| 成人三级伦理片| 欧美剧情电影在线观看完整版免费励志电影 | 欧美少妇bbb| 欧美刺激午夜性久久久久久久| 久久久青草青青国产亚洲免观| 亚洲欧美日韩国产一区二区三区 | 99久久久国产精品免费蜜臀| 欧美日韩电影在线播放| 精品蜜桃在线看| 亚洲精品高清视频在线观看| 蜜桃精品在线观看| 一本一本大道香蕉久在线精品| 欧美另类高清zo欧美| 国产精品免费久久| 全部av―极品视觉盛宴亚洲| 国产成人在线影院| 日韩一级成人av| 一区二区三区欧美日韩| 国产乱子伦一区二区三区国色天香 | 日韩午夜激情视频| 亚洲精品免费在线| 国产一区二区不卡老阿姨| 欧美色图在线观看| 亚洲天堂av老司机| 国产精品一区二区久久不卡| 91精品免费观看| 一级日本不卡的影视| 成人短视频下载| 国产欧美日韩在线观看| 免费在线成人网| 欧美日韩色综合| 亚洲精品成a人| 成人av资源网站| 26uuu另类欧美亚洲曰本| 日韩国产精品大片| 欧美性淫爽ww久久久久无| 亚洲美女偷拍久久| 99久久久国产精品| 国产精品久久精品日日| 国产精品一区二区久久不卡 | 色美美综合视频| 中文字幕一区三区| 高清国产午夜精品久久久久久| 久久久久9999亚洲精品| 国产裸体歌舞团一区二区| 欧美va亚洲va国产综合| 日本aⅴ精品一区二区三区| 欧美一区二区三区视频在线 | 欧美va亚洲va| 国产综合色在线视频区| 久久综合九色综合欧美亚洲| 久久电影网站中文字幕 |