Cargar carros
#1

Buenas,

Aun sigo trabajando en el sistema de vehiculos mysql, logre arreglar el guardado. Pero ahora les vengo a pedir ideas sobre como podria cargar los vehiculos de la Base de datos. Me vino a la mente Crear un stock y llamarlo cuando el player se conecte. Lo tengo asi

pawn Код:
stock LoadPlayerCars(playerid)
{
    new query[120];
    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,sizeof(name));
    mysql_format(mysql,query,sizeof(query),"SELECT * FROM `cars` WHERE `Owner` = '%s'",name);
    printf("%s",query);
    mysql_tquery(mysql,query);
    CarInfo[carid][cID] = cache_get_field_content_int(0, "ID");
    CarInfo[carid][cOwner] = cache_get_field_content(0, "Owner", CarInfo[carid][cOwner]);
    CarInfo[carid][cModel] = cache_get_field_content_int(0, "Model");
    CarInfo[carid][cColor1] = cache_get_field_content_int(0, "VehicleColor1");
    CarInfo[carid][cColor2] = cache_get_field_content_int(0, "VehicleColor2");
    CarInfo[carid][cXPos] = cache_get_field_content_float(0, "XCoord");
    CarInfo[carid][cYPos] = cache_get_field_content_float(0, "YCoord");
    CarInfo[carid][cZPos] = cache_get_field_content_float(0, "ZCoord");
    CarInfo[carid][cPlate] = cache_get_field_content(0, "VehiclePlate", CarInfo[carid][cPlate]);
}
Pero como veran la stock solo tiene el parametro Playerid, entonces obviamente me da errores con el carid.
Pense en hacer un loop sobre los carros del playerid, y poner el valor del loop en donde esta carid. Pero no se si el loop lo haria en la stock o en la CallBack OnPlayerConnect.

Saludos!
Reply
#2

pawn Код:
LoadPlayerCars(playerid)
{
    new query[120],
        name[MAX_PLAYER_NAME];

    GetPlayerName(playerid,name,sizeof(name));
    mysql_format(mysql,query,sizeof(query),"SELECT * FROM `cars` WHERE `Owner` = '%s'",name);
    mysql_tquery(mysql,query);
    printf("%s",query);

    for (new i = 0; i < rows; i ++)  // Ejemplo
    {
        CarInfo[i][cID] = cache_get_field_content_int(0, "ID");
        CarInfo[i][cOwner] = cache_get_field_content(0, "Owner", CarInfo[i][cOwner]);
        CarInfo[i][cModel] = cache_get_field_content_int(0, "Model");
        CarInfo[i][cColor1] = cache_get_field_content_int(0, "VehicleColor1");
        CarInfo[i][cColor2] = cache_get_field_content_int(0, "VehicleColor2");
        CarInfo[i][cXPos] = cache_get_field_content_float(0, "XCoord");
        CarInfo[i][cYPos] = cache_get_field_content_float(0, "YCoord");
        CarInfo[i][cZPos] = cache_get_field_content_float(0, "ZCoord");
        CarInfo[i][cPlate] = cache_get_field_content(0, "VehiclePlate", CarInfo[i][cPlate]);
    }
}
Dentro.
Reply
#3

Quote:
Originally Posted by Zume-Zero
Посмотреть сообщение
pawn Код:
LoadPlayerCars(playerid)
{
    new query[120],
        name[MAX_PLAYER_NAME];

    GetPlayerName(playerid,name,sizeof(name));
    mysql_format(mysql,query,sizeof(query),"SELECT * FROM `cars` WHERE `Owner` = '%s'",name);
    mysql_tquery(mysql,query);
    printf("%s",query);

    for (new i = 0; i < rows; i ++)  // Ejemplo
    {
        CarInfo[i][cID] = cache_get_field_content_int(0, "ID");
        CarInfo[i][cOwner] = cache_get_field_content(0, "Owner", CarInfo[i][cOwner]);
        CarInfo[i][cModel] = cache_get_field_content_int(0, "Model");
        CarInfo[i][cColor1] = cache_get_field_content_int(0, "VehicleColor1");
        CarInfo[i][cColor2] = cache_get_field_content_int(0, "VehicleColor2");
        CarInfo[i][cXPos] = cache_get_field_content_float(0, "XCoord");
        CarInfo[i][cYPos] = cache_get_field_content_float(0, "YCoord");
        CarInfo[i][cZPos] = cache_get_field_content_float(0, "ZCoord");
        CarInfo[i][cPlate] = cache_get_field_content(0, "VehiclePlate", CarInfo[i][cPlate]);
    }
}
Dentro.
Zume una pregunta, al hacer la consulta con SELECT * їque estбn seleccionando de la tabla cars? їTodo?o que
Reply
#4

El SELECT busca entre todas las columnas las que cumplan la condiciуn WHERE (en caso de que tengan) en este caso que tengan de "Owner" el nombre del jugador, aъn asн serнa mejor que fuese por ID.
Reply
#5

Quote:
Originally Posted by Zume-Zero
Посмотреть сообщение
El SELECT busca entre todas las columnas las que cumplan la condiciуn WHERE (en caso de que tengan) en este caso que tengan de "Owner" el nombre del jugador, aъn asн serнa mejor que fuese por ID.
No eso si sй jkejej, me refiero a que estбn seleccionando en la consulta al asterisco * , porque?
Reply
#6

Entiendo que la funcion del asterisco en la query es que seleccione todo lo que cumpla con la clausula WHERE
Reply
#7

Quote:
Originally Posted by Zume-Zero
Посмотреть сообщение
pawn Код:
LoadPlayerCars(playerid)
{
    new query[120],
        name[MAX_PLAYER_NAME];

    GetPlayerName(playerid,name,sizeof(name));
    mysql_format(mysql,query,sizeof(query),"SELECT * FROM `cars` WHERE `Owner` = '%s'",name);
    mysql_tquery(mysql,query);
    printf("%s",query);

    for (new i = 0; i < rows; i ++)  // Ejemplo
    {
        CarInfo[i][cID] = cache_get_field_content_int(0, "ID");
        CarInfo[i][cOwner] = cache_get_field_content(0, "Owner", CarInfo[i][cOwner]);
        CarInfo[i][cModel] = cache_get_field_content_int(0, "Model");
        CarInfo[i][cColor1] = cache_get_field_content_int(0, "VehicleColor1");
        CarInfo[i][cColor2] = cache_get_field_content_int(0, "VehicleColor2");
        CarInfo[i][cXPos] = cache_get_field_content_float(0, "XCoord");
        CarInfo[i][cYPos] = cache_get_field_content_float(0, "YCoord");
        CarInfo[i][cZPos] = cache_get_field_content_float(0, "ZCoord");
        CarInfo[i][cPlate] = cache_get_field_content(0, "VehiclePlate", CarInfo[i][cPlate]);
    }
}
Dentro.
No me tira errores pero no me carga los carros.
Solo unos warnings de tag mismatch en estas lineas
pawn Код:
CarInfo[i][cXPos] = cache_get_field_content_float(0, "XCoord");
        CarInfo[i][cYPos] = cache_get_field_content_float(0, "YCoord");
        CarInfo[i][cZPos] = cache_get_field_content_float(0, "ZCoord");
Reply
#8

Quote:
Originally Posted by [CG]Milito
Посмотреть сообщение
No me tira errores pero no me carga los carros.
Solo unos warnings de tag mismatch en estas lineas
pawn Код:
CarInfo[i][cXPos] = cache_get_field_content_float(0, "XCoord");
        CarInfo[i][cYPos] = cache_get_field_content_float(0, "YCoord");
        CarInfo[i][cZPos] = cache_get_field_content_float(0, "ZCoord");
Que versiуn de plugin e include usas?
Reply
#9

Quote:
Originally Posted by jotajeda
Посмотреть сообщение
Que versiуn de plugin e include usas?
Si te refieres a la mysql, r39-2.
Pero esas warning no tiene que ver con mysql porque tambien me tira esas mismas warnings en estas lineas
pawn Код:
CarInfo[carid][cXPos] = x;
    CarInfo[carid][cYPos] = y;
    CarInfo[carid][cZPos] = z;
Y ademas ya eh usado esa funcion de cache_get_field_content en otras partes de mi Gm y no me tira warnings. Me imagino que las warnings son con el enum.

pawn Код:
enum cInfo
{
    cID,
    cOwner[MAX_PLAYER_NAME],
    cModel,
    cColor1,
    cColor2,
    float:cXPos,
    float:cYPos,
    float:cZPos,
    float:cAngle,
    cPlate
}
new CarInfo[MAX_VEHICLES][cInfo];
Reply
#10

Quote:
Originally Posted by [CG]Milito
Посмотреть сообщение
Si te refieres a la mysql, r39-2.
Pero esas warning no tiene que ver con mysql porque tambien me tira esas mismas warnings en estas lineas
pawn Код:
CarInfo[carid][cXPos] = x;
    CarInfo[carid][cYPos] = y;
    CarInfo[carid][cZPos] = z;
Y ademas ya eh usado esa funcion de cache_get_field_content en otras partes de mi Gm y no me tira warnings. Me imagino que las warnings son con el enum.

pawn Код:
enum cInfo
{
    cID,
    cOwner[MAX_PLAYER_NAME],
    cModel,
    cColor1,
    cColor2,
    float:cXPos,
    float:cYPos,
    float:cZPos,
    float:cAngle,
    cPlate
}
new CarInfo[MAX_VEHICLES][cInfo];

es Float no float
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)