Como la mayorнa de los operadores, el operador ternario devuelve un valor y no estбs haciendo nada con йl.
Es el equivalente a hacer lo siguiente:
pawn Код:
// Instrucciones...
x + y;
// Mбs instrucciones...
Como ves, he sumado x + y pero no he almacenado el resultado de la operaciуn en ninguna parte. їcuбl es el punto de sumar si no me importa el resultado? Lo mismo pasa con tu operaciуn, no estбs haciendo nada con los posibles resultados (lo que devuelven SetPlayerRandomEx y SetPlayerInActivity, incluso si no devuelven nada).
Tienes dos opciones. La primera, que no recomiendo, es almacenar el valor de la operaciуn:
pawn Код:
public OnPlayerSpawn(playerid)
{
// Se almacena lo que devuelva el operador en la variable resultado.
new resultado = infJugador[playerid][Actividad] == 0 ? (SetPlayerRandomEx(playerid, infJugador[playerid][Spawn])) : (SetPlayerInActivity(playerid, infJugador[playerid][Actividad]));
return true;
}
La pregunta serнa, їquй vas a hacer con ese resultado? Obviamente nada, lo que generarнa una advertencia indicбndote que no estбs usando la variable "resultado".
La alternativa mбs sensata es que uses el operador ternario cuando te interese el resultado de la operaciуn mбs no cuando quieras ejecutar comandos dada una condiciуn, para eso ъltimo estб la sentencia if.