Witam,
pytanie takie z ciekawości. Patrzę sobie w kod źródłowy AMXX'a i znalazłem:
static cell AMX_NATIVE_CALL is_user_connected(AMX *amx, cell *params) /* 1 param */
{
int index = params[1];
if (index < 1 || index > gpGlobals->maxClients)
return 0;
CPlayer* pPlayer = GET_PLAYER_POINTER_I(index);
return (pPlayer->ingame ? 1 : 0);
}
static cell AMX_NATIVE_CALL get_user_team(AMX *amx, cell *params) /* 3 param */
{
int index = params[1];
if (index < 1 || index > gpGlobals->maxClients)
return -1;
CPlayer* pPlayer = GET_PLAYER_POINTER_I(index);
if (pPlayer->ingame)
{
// SidLuke, DoD fix
if (g_bmod_dod)
{
int iTeam = pPlayer->pEdict->v.team;
if (params[3])
{
const char *szTeam = "";
switch (iTeam)
{
case 1:
szTeam = "Allies";
break;
case 2:
szTeam = "Axis";
break;
}
set_amxstring(amx, params[2], szTeam, params[3]);
}
return iTeam;
}
//
if (params[3])
{
set_amxstring(amx, params[2], pPlayer->team.c_str(), params[3]);
}
return pPlayer->teamId;
}
return -1;
}
Wnioskuje, że gdy mam taki kod:
if(is_user_connected(id) && get_user_team(id) == 2)
To mogę użyć:
if(get_user_team(id) == 2)
bez obawy, że wywali błąd o graczu invalidzie? Z tego co widzę to kod się powtarza tam...


Dodatki SourceMod



Temat jest zamknięty











