Beispiel #1
0
static cell_t GetWeaponName(IPluginContext *pContext, const cell_t *params)
{
	int client = params[1];

	CPlayer *pPlayer = g_Players.GetPlayerByIndex(client);
	if (!pPlayer)
	{
		return pContext->ThrowNativeError("Client index %d is invalid", client);
	} else if (!pPlayer->IsInGame()) {
		return pContext->ThrowNativeError("Client %d is not in game", client);
	}

	IPlayerInfo *pInfo = pPlayer->GetPlayerInfo();
	if (!pInfo)
	{
		return pContext->ThrowNativeError("IPlayerInfo not supported by game");
	}

	const char *weapon = pInfo->GetWeaponName();
	pContext->StringToLocalUTF8(params[2], static_cast<size_t>(params[3]), weapon ? weapon : "", NULL);

	return 1;
}
Beispiel #2
0
WpnShotType NczPlayer::GetWpnShotType()
{
	IPlayerInfo* playerinfo = GetPlayerInfo();

	if(playerinfo)
	{
		const char * const wpn_name = playerinfo->GetWeaponName();

		switch(wpn_name[7])
		{
		case 's': //scout & sg550 & smokegrenade
			switch(wpn_name[8])
			{
			case 'c':
				return PISTOL;
			case 'g':
				return AUTO;
			
			default: //m
				return HAND;
			};

		case 'a': //awp & ak47
			switch(wpn_name[8])
			{
			case 'w':
				return PISTOL;
			case 'k':
				return AUTO;
			};
		case 'f': //fiveseven & flashbang
			switch(wpn_name[8])
			{
			case 'i':
				return PISTOL;
			default: //l
				return HAND;
			};
		case 'g': //glock & g3sg1
			switch(wpn_name[8])
			{
			case 'l':
				return PISTOL;
			case '3':
				return AUTO;
			};
		case 'p': //p228
		case 'e': //elite
		case 'u': //usp
		case 'd': //deagle
		case 'x': //xm1014
			return PISTOL;
		case 'm': //m3 & m4a1
			switch(wpn_name[8])
			{
			case '3':
				return PISTOL;
			case '4':
				return AUTO;
			};

		default:
			return HAND;
		};
	}
	return HAND;
}