warning 213: tag mismatch -
unuky - 28.06.2014
pawn Код:
public GetPlayerScoreEx(playerid)
{
new Float:score;
score = PlayersData[playerid][Puntos] / 10;
floatround(score, floatround_round);
return score; // Lнnea del error
}
Error: warning 213: tag mismatch
Lo que quiero hacer es redondear el Float:score y retornarlo en la funciуn como un integer ya redondeado.
Gracias.
Respuesta: warning 213: tag mismatch -
Zume - 28.06.2014
No veo nada mal. їhas definido "Puntos" como entero?.
Hice una prueba & no me mostrу ningъn problema.
pawn Код:
enum Info
{
Puntos,
};
new PlayersData[MAX_PLAYERS][Info];
stock GetPlayerScoreEx(playerid)
{
new Float:score;
score = PlayersData[playerid][Puntos] / 10;
floatround(score, floatround_round);
return score;
}
Respuesta: warning 213: tag mismatch -
unuky - 28.06.2014
Si, lo tengo asн:
pawn Код:
enum DataUsers
{
Dinero,
Admin,
Puntos,
Score
}
new PlayersData[MAX_PLAYERS][DataUsers];
Respuesta: warning 213: tag mismatch -
deryan - 28.06.2014
pawn Код:
enum DataUsers
{
Dinero,
Admin,
Puntos,
Score
}
new PlayersData[MAX_PLAYERS][DataUsers];
forward Float:GetPlayerScoreEx(playerid);
public Float:GetPlayerScoreEx(playerid)
{
new Float:score;
score = PlayersData[playerid][Puntos] / 10;
floatround(score, floatround_round);
return score; // Lнnea del error
}
Probй y compilo, tambiйn me dн cuenta que si en lugar del forward lo haces stock compila sin necesidad de agregarle Float al inicio de la funciуn
Respuesta: warning 213: tag mismatch -
Zume - 28.06.2014
cambia "public" por "stock".
EDIT: lol enviй el mensaje al mismo tiempo, disculpa

creo que el problema estб en eso, lo de cambiar Float: quizб sea depende de la funcionalidad que le vaya a tomar.
Respuesta: warning 213: tag mismatch -
unuky - 28.06.2014
Pero tengo entendido que se aсadirнa el tag Float a la funciуn si esta retorna un valor del tipo Float, y floatround se supone que retorna un valor tipo Integer. їAlguien me explica esto por favor?
EDIT: He probado aсadiendo el tag Float a la funciуn y al forward y me sale ahora el mismo error en los lugares donde hago uso de la funciуn. Tambiйn he probado a poner la funciуn como stock y me sale el mismo error.
Respuesta: warning 213: tag mismatch -
Zume - 28.06.2014
Quote:
Originally Posted by unuky
Pero tengo entendido que se aсadirнa el tag Float a la funciуn si esta retorna un valor del tipo Float, y floatround se supone que retorna un valor tipo Integer. їAlguien me explica esto por favor?
|
Mira esto que hice:
pawn Код:
stock Vida0(playerid)
{
new Float:HP;
GetPlayerHealth(playerid, HP);
return _:HP;
}
stock Float:Vida1(playerid)
{
new Float:HP;
GetPlayerHealth(playerid, HP);
return HP;
}
public OnPlayerCommandText(playerid, cmdtext[])
{
new string[128];
if (strcmp("/mivida", cmdtext, true, 10) == 0)
{
format(string, sizeof(string), "Float: Vida0 > %f, Vida1 > %f - Entero: Vida0 > %d, Vida1 > %d", Vida0(playerid), Vida1(playerid), Vida0(playerid), Vida1(playerid));
SendClientMessage(playerid, -1, string);
return 1;
}
return 0;
}
Respecto a tu ediciуn, ponlo asн como te lo puse mбs arriba y como ves aquн, segъn tu preferencia

. siempre retornarб un flotante aunque no le pongas tag al stock creo yo.
Respuesta: warning 213: tag mismatch -
unuky - 28.06.2014
Me funcionу al aсadirle _: a lo que retorno, muchas gracias.
Respuesta: warning 213: tag mismatch -
Swedky - 28.06.2014
Mencionarй tu error:
pawn Код:
public GetPlayerScoreEx(playerid)
{
new Float:score; // Declararemos que 'score' serб flotante.
score = PlayersData[playerid][Puntos] / 10;
floatround(score, floatround_round); // Aquн haremos que 'score' sea un entero.
return score; // Retornamos 'score', peeeero, como la funciуn no tiene el tag 'Float', pero la variable sн, darб errores.
}
Al usar '
floatround' no declararбs que el compilador tomarб esa variable como flotante, por lo que darб error.
Soluciуn:
pawn Код:
stock GetPlayerScoreEx(playerid) // Ya sea 'public' o 'stock', siempre serб el mismo cуdigo. No cambia errores.
{
return floatround(PlayersData[playerid][Puntos]/10);
}
O mбs simple:
pawn Код:
#define GetPlayerScoreEx(%1) floatround(PlayersData[%1][Puntos]/10)
Es solo simple lуgica.
Respuesta: warning 213: tag mismatch -
OTACON - 28.06.2014
Quote:
Originally Posted by EnzoMetlc
Mencionarй tu error:
pawn Код:
public GetPlayerScoreEx(playerid) { new Float:score; // Declararemos que 'score' serб flotante. score = PlayersData[playerid][Puntos] / 10; floatround(score, floatround_round); // Aquн haremos que 'score' sea un entero. return score; // Retornamos 'score', peeeero, como la funciуn no tiene el tag 'Float', pero la variable sн, darб errores. }
Al usar ' floatround' no declararбs que el compilador tomarб esa variable como flotante, por lo que darб error.
Soluciуn:
pawn Код:
stock GetPlayerScoreEx(playerid) // Ya sea 'public' o 'stock', siempre serб el mismo cуdigo. No cambia errores. { return floatround(PlayersData[playerid][Puntos]/10); }
O mбs simple:
pawn Код:
#define GetPlayerScoreEx(%1) floatround(PlayersData[playerid][Puntos]/10)
Es solo simple lуgica.
|
Код:
#define GetPlayerScoreEx(%1) floatround(PlayersData[playerid][Puntos]/10)
Код:
#define GetPlayerScoreEx(%0) floatround(PlayersData[%0][Puntos]/10)