[Duda]їPorque sale esto? -
xXmAn40100Xx - 27.06.2014
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
Respuesta: [Duda]їPorque sale esto? -
Juance - 27.06.2014
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
Respuesta: [Duda]їPorque sale esto? -
DesingMyCry - 27.06.2014
Es pawn.
El error es porque definiste "i" globalmente...
Y el bucle esta mal:
pawn Код:
for(new i = 0; i < MAX_PLAYERS; i++)
Respuesta: [Duda]їPorque sale esto? -
JustBored - 27.06.2014
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);
}
}
}
Respuesta: [Duda]їPorque sale esto? -
xXmAn40100Xx - 30.06.2014
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?
Respuesta: [Duda]їPorque sale esto? -
Juance - 30.06.2014
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.
Respuesta: [Duda]їPorque sale esto? -
Swedky - 30.06.2014
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.
Respuesta: [Duda]їPorque sale esto? -
Juance - 30.06.2014
Solo le di un ejemplo cabezуn. El bucle hace lo mismo que el foreach.
Respuesta: [Duda]їPorque sale esto? -
Swedky - 30.06.2014
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.
Respuesta: [Duda]їPorque sale esto? -
juandiegox - 30.06.2014
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..