[Duda]їPorque sale esto?
#1

Hola, estoy tratando de hacer mi include, todo bien, pero cuando voy al gamemode y pongo la funcion que yo necesito me sale
Код:
Funciones.inc(93) : error 021: symbol already defined: "i"
Funciones.inc(93) : warning 203: symbol is never used: "i"
Cosa que no entiendo, debido a que ya revise esa linea y sale esto:
pawn Код:
for(new i=0, i < MAX_PLAYERS, i++)
Codigo completo:
pawn Код:
stock DarArmaATodos(weaponid)
{
    new Jugador[MAX_PLAYER_NAME], Mensaje[500];
    for(new i=0, i < MAX_PLAYERS, i++)
    {
        if(!IsPlayerConnected(i)) continue;
        else
        {
            GetPlayerName(i, Jugador, 35);
            format(Mensaje, sizeof(Mensaje), "[-]El administrador %s ha dado un arma a todos", Jugador);
            PlayerPlaySound(i, 1139, 0, 0, 0);
            GivePlayerWeapon(i, weaponid, 9999);
            SendClientMessage(i, Verde, Mensaje);
        }
    }
}
Ayuda, soy nuevo en Pawno.

Gracias de Antemano
Reply
#2

Proba el bucle asн:

pawn Код:
for(new i=0; i < MAX_PLAYERS; i++)
EDITO: Se me ha olvidado cambiar la "," de MAX_PLAYERS jajaja, soy un cabeza dura
Reply
#3

Es pawn.

El error es porque definiste "i" globalmente...

Y el bucle esta mal:


pawn Код:
for(new i = 0; i < MAX_PLAYERS; i++)
Reply
#4

Pusiste una coma en la ultima parte de cada etapa del bucle en ves de un punto y coma.
pawn Код:
stock DarArmaATodos(weaponid)
{
    new Jugador[MAX_PLAYER_NAME], Mensaje[500];
    for(new i=0; i < MAX_PLAYERS; i++)
    {
        if(!IsPlayerConnected(i)) continue;
        else
        {
            GetPlayerName(i, Jugador, 35);
            format(Mensaje, sizeof(Mensaje), "[-]El administrador %s ha dado un arma a todos", Jugador);
            PlayerPlaySound(i, 1139, 0, 0, 0);
            GivePlayerWeapon(i, weaponid, 9999);
            SendClientMessage(i, Verde, Mensaje);
        }
    }
}
Reply
#5

Quote:
Originally Posted by DesingMyCry
Посмотреть сообщение
Es pawn.

El error es porque definiste "i" globalmente...

Y el bucle esta mal:


pawn Код:
for(new i = 0; i < MAX_PLAYERS; i++)
"i" no esta definida globalmente.. y el bucle ya aprendн que esta mal hecho el bucle.

Quote:
Originally Posted by Juance
Посмотреть сообщение
Proba el bucle asн:

pawn Код:
for(new i=0; i < MAX_PLAYERS; i++)
EDITO: Se me ha olvidado cambiar la "," de MAX_PLAYERS jajaja, soy un cabeza dura
Quote:
Originally Posted by JustBored
Посмотреть сообщение
Pusiste una coma en la ultima parte de cada etapa del bucle en ves de un punto y coma.
pawn Код:
stock DarArmaATodos(weaponid)
{
    new Jugador[MAX_PLAYER_NAME], Mensaje[500];
    for(new i=0; i < MAX_PLAYERS; i++)
    {
        if(!IsPlayerConnected(i)) continue;
        else
        {
            GetPlayerName(i, Jugador, 35);
            format(Mensaje, sizeof(Mensaje), "[-]El administrador %s ha dado un arma a todos", Jugador);
            PlayerPlaySound(i, 1139, 0, 0, 0);
            GivePlayerWeapon(i, weaponid, 9999);
            SendClientMessage(i, Verde, Mensaje);
        }
    }
}
Gracias a todos , una ultima pregunta antes de cerrar el tema, en el bucle For, їsiempre va con ; o cuando se debe utilizar esta?
Reply
#6

Si, el bucle va tal cual te lo han dejado. Pero antes del bucle yo te recomiendo que uses foreach que hace lo mismo, pero optimiza mбs.

pawn Код:
foreach(new i : Player)
{
if(!IsPlayerConnected(i)) continue;
Con el include puesto en el gm y en la carpeta pawno/includes obviamente.
Reply
#7

Quote:
Originally Posted by Juance
Посмотреть сообщение
Si, el bucle va tal cual te lo han dejado. Pero antes del bucle yo te recomiendo que uses foreach que hace lo mismo, pero optimiza mбs.

pawn Код:
foreach(new i : Player)
{
if(!IsPlayerConnected(i)) continue;
Con el include puesto en el gm y en la carpeta pawno/includes obviamente.
Tu condiciуn estб al pedo ahн, ya que foreach solo recorre las ID's conectadas. Ademбs, y_iterate es una nueva versiуn de foreach, claro, mucho mejor y mбs rбpido.
Reply
#8

Solo le di un ejemplo cabezуn. El bucle hace lo mismo que el foreach.
Reply
#9

Quote:
Originally Posted by Juance
Посмотреть сообщение
Solo le di un ejemplo cabezуn. El bucle hace lo mismo que el foreach.
Oh enserio? Pensй que foreach servнa para enviar un mensaje a un jugador, gracias genio de la vida.

Tu cуdigo es estъpido y no tiene lуgica. Es lo mismo que hacer:

pawn Код:
if(!IsPlayerConnected(playerid)) return SendClientMessage(playerid, -1, "* No estбs conectado!");
O sea, no tiene sentido hacer eso.

Solo te mencionй que no es necesario verificar si una ID estб conectada o no dentro de un bucle realizado por foreach.
Reply
#10

Quote:
Originally Posted by xXmAn40100Xx
Посмотреть сообщение
"i" no esta definida globalmente.. y el bucle ya aprendн que esta mal hecho el bucle.





Gracias a todos , una ultima pregunta antes de cerrar el tema, en el bucle For, їsiempre va con ; o cuando se debe utilizar esta?
Siempre va con ; Segun TheChaoz, Dice que son 3 etapas , pero a mi un amigo me dijo que era Inicializacion, Condicion, y Finalizacion algo a si, y que cada parte se separa por ; osea algo como:
pawn Код:
for(new que= 0; que < 139; que++)
{
Funciones
}
se iniciara en 0 y terminara en 138 , Puedes comprobar eso haciendo un test en la consola..
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)