Burgershot
[Ayuda] error 022: must be lvalue (non-constant) - Printable Version

+- Burgershot (https://www.burgershot.gg)
+-- Forum: Other languages (https://www.burgershot.gg/forumdisplay.php?fid=23)
+--- Forum: Spanish/Español (https://www.burgershot.gg/forumdisplay.php?fid=24)
+---- Forum: Programación (https://www.burgershot.gg/forumdisplay.php?fid=51)
+---- Thread: [Ayuda] error 022: must be lvalue (non-constant) (/showthread.php?tid=1608)



[Ayuda] error 022: must be lvalue (non-constant) - Kaiser - 2021-01-28

Buenas madrugadas jaja, bueno, acá tengo un error que no he podido solucionar, alguien podría decirme que podría ser y cómo lo soluciono.

Code:
(54132) : error 022: must be lvalue (non-constant)

Este es el código completo.

Code:
//**************************************************************************
CMD:regaloatodos(playerid)
{
if(Staff(playerid,Director)) return 1;
{
if (Regalo)
{
new string[128];
format(string, sizeof(string), "{474747}[ADMINISTRACIÓN]{FFFFFF} %s envió regalos a todo el servidor.", NombreJugador(playerid));
MensajeAll(CxVERDE, string);
Regalo = 0; // Linea del error
foreach(Player, i) { RegaloTodos(i); }
} else return Mensaje(playerid, 0, "212", "Este comando ya fue usado, puedes usarlo en el próximo pago diario.");
}
return 1;
}
/// Sistema de regalos actualizado
stock RegaloTodos(playerid) {
    new gift = Random(1, 3);
    switch(gift) {
        case 1: {
                DarDinero(playerid, 2500);
                Mensaje(playerid, 2, "0", "Felicidades - recibiste $250 del regalo!");
            }
        case 2: {
                InfoUsuario[playerid][uExperiencia] += 2;
                Mensaje(playerid, 2, "0", "Felicidades - recibiste dos puntos de experiencia del regalo!");
            }
        case 3: {
                InfoUsuario[playerid][uExperiencia] += 1;
                Mensaje(playerid, 2, "0", "Felicidades - recibiste un punto de experiencia del regalo!");
            }
        default: return RegaloTodos(playerid);
    }
    return 1;
}



RE: [Ayuda] error 022: must be lvalue (non-constant) - Leonardo - 2021-01-28

Eso será porque la variable "Regalo" estará definida como constante, es decir:

Code:
const Regalo = 0;

en lugar de:

Code:
new Regalo = 0;

por lo que no vas a poder sobre-escribir el valor de esa variable.

De pasada vi otro error, que no te va a tirar ningun error al compilar, y seguramente te puedas tirar horas buscando porque no funciona (a mi nunca me paso, le paso a un amigo de un amigo, jeje).

Mira

Code:
if(Staff(playerid,Director)) return 1;
{

Si lo que quieres es comprobar si el jugador es staff, quita ese "return 1;", de lo contrario, todo jugador que no sea staff va poder usar ese comando.


RE: [Ayuda] error 022: must be lvalue (non-constant) - Kaiser - 2021-01-29

Gracias hermano, jaja vale ya lo cambiare.