09.07.2016, 17:32
La estructura para hacer eso no es la adecuada, hay un mal diseсo en tu base de datos, preferiblemente yo lo harнa de esta manera.
Es solamente un cуdigo ejemplo, no compilarб si hace un copiar y pegar debe adaptarse a tu cуdigo.
PHP код:
DescargarInfo()
{
new conteo_datos = 0;
mysql_query(MySQL,"SELECT `idio_nombre`,`idio_key`,`idio_contenido` FROM "TABLA_IDIOMA"");
for(new i;i<cache_num_rows();i++)
{
//Te faltaria tener un campo auto increment como id del idioma (un integer)
//Supongamos que se almacenara en la variable infIdioma[i][IdiomaID]
cache_save_string(i,"idio_key",infIdioma[i][Key]);
cache_save_string(i,"idio_contenido",infIdioma[i][Cadena]);
cache_save_int(i,"idio_nombre",infIdioma[i][Lenguage]);
conteo_datos++;
}
TOT_CADS = conteo_datos;
printf("Informaciуn de idiomas descargada y almacenada.");
printf("R: %d Cadenas de Idioma.",conteo_datos);
printf("Se descargo la informacion desde la base de datos en %d ms.",GetTickCount()-debug_time);
return 1;
}
PHP код:
//Al jugador deberia guardarse en su cuenta el ID del idioma
//(no el nombre) y almacenarlo en infJugador[playerid][IdiomaDB_ID]
GetPlayerLangID(playerid) {
for(new i;i<TOT_CADS;i++) {
if(infIdioma[i][IdiomaID] == infJugador[playerid][IdiomaDB_ID]) {
return i;
}
}
return 0; //Cambiar el 0 por el ID de un idioma por default
}
PHP код:
//En el login (necesaria la variable pIdiomaID para el jugador)
infJugador[playerid][pIdiomaID] = GetPlayerLangID(playerid);
//Luego donde se quiera utilizar el idioma
printf("JUGADOR: %d | IDIOMA: %s",playerid,infIdioma[[infJugador[playerid][pIdiomaID]][Ideoma]);
PHP код:
//Para que sea mas entendible
#define GetPlayerLang(%1) infIdioma[[infJugador[%1][pIdiomaID]][Ideoma]
printf("JUGADOR: %d | IDIOMA: %s",playerid,GetPlayerLang(playerid));