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; }
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; }