cache_get_field_content_int problem -
valerastar - 06.10.2016
Hi everyone! So, that's my script for loading account data from DB (mysql plugin version R34).
Код:
forward Avt(playerid);
public Avt(playerid)
{
new rows,fields;
cache_get_data(rows, fields);
printf("[DEBUG] Start Loading Rows %i Fields %i",rows,fields);
for(new i = 0; i < rows;i++){
print("Started.");
cache_get_field_content(i, "R-IP", PlayerInfo[playerid][pRIP], MYSQL_ARG, 16);
cache_get_field_content(i, "L-IP", PlayerInfo[playerid][pLIP], MYSQL_ARG, 16);
PlayerInfo[playerid][pRDate] = cache_get_field_content_int(i, "R-Date", MYSQL_ARG);
PlayerInfo[playerid][pLDate] = cache_get_field_content_int(i, "L-Date", MYSQL_ARG);
cache_get_field_content(i, "Email", PlayerInfo[playerid][pEmail], MYSQL_ARG, 16);
PlayerInfo[playerid][pSex] = cache_get_field_content_int(i, "Sex", MYSQL_ARG);
PlayerInfo[playerid][pSkin] = cache_get_field_content_int(i, "Skin", MYSQL_ARG);
PlayerInfo[playerid][pMoney] = cache_get_field_content_int(i, "Money", MYSQL_ARG);
printf("Loaded[ROW %i]: R-IP %s, L-IP %s, R-Date %i, L-Date %i, Email %s, Sex %i, Skin %i, Money %i",i,
PlayerInfo[playerid][pRIP],
PlayerInfo[playerid][pLIP],
PlayerInfo[playerid][pRDate],
PlayerInfo[playerid][pLDate],
PlayerInfo[playerid][pEmail],
PlayerInfo[playerid][pSex],
PlayerInfo[playerid][pSkin],
PlayerInfo[playerid][pMoney]);
}
SendClientMessage(playerid,-1,PlayerInfo[playerid][pRIP]);
SendClientMessage(playerid,-1,PlayerInfo[playerid][pLIP]);
SendClientMessage(playerid,-1,PlayerInfo[playerid][pRDate]);
SendClientMessage(playerid,-1,PlayerInfo[playerid][pLDate]);
SendClientMessage(playerid,-1,PlayerInfo[playerid][pEmail]);
SendClientMessage(playerid,-1,PlayerInfo[playerid][pSex]);
SendClientMessage(playerid,-1,PlayerInfo[playerid][pSkin]);
SendClientMessage(playerid,-1,PlayerInfo[playerid][pMoney]);
return 1;
}
And, when it loads account data, it shows it correctly in the console:

BUT, in game it looks like that:
Heelp pls
Re: cache_get_field_content_int problem -
Mencent - 06.10.2016
Hello!
It's normal because SendClientMessage want in the third Parameter a string and you put in an integer.
Write it like this:
PHP код:
forward Avt(playerid);
public Avt(playerid)
{
if(cache_num_rows())
{
for(new i,j=cache_num_rows();i<j;i++)
{
print("Started.");
cache_get_field_content(i, "R-IP", PlayerInfo[playerid][pRIP], MYSQL_ARG, 16);
cache_get_field_content(i, "L-IP", PlayerInfo[playerid][pLIP], MYSQL_ARG, 16);
PlayerInfo[playerid][pRDate] = cache_get_field_content_int(i, "R-Date", MYSQL_ARG);
PlayerInfo[playerid][pLDate] = cache_get_field_content_int(i, "L-Date", MYSQL_ARG);
cache_get_field_content(i, "Email", PlayerInfo[playerid][pEmail], MYSQL_ARG, 16);
PlayerInfo[playerid][pSex] = cache_get_field_content_int(i, "Sex", MYSQL_ARG);
PlayerInfo[playerid][pSkin] = cache_get_field_content_int(i, "Skin", MYSQL_ARG);
PlayerInfo[playerid][pMoney] = cache_get_field_content_int(i, "Money", MYSQL_ARG);
printf("Loaded[ROW %i]: R-IP %s, L-IP %s, R-Date %i, L-Date %i, Email %s, Sex %i, Skin %i, Money %i",i,
PlayerInfo[playerid][pRIP],
PlayerInfo[playerid][pLIP],
PlayerInfo[playerid][pRDate],
PlayerInfo[playerid][pLDate],
PlayerInfo[playerid][pEmail],
PlayerInfo[playerid][pSex],
PlayerInfo[playerid][pSkin],
PlayerInfo[playerid][pMoney]);
}
new string[145];
format(string,sizeof string,"pRIP: %s - pLIP: %s - pRDate: %d - pLDate: %d - E-Mail: %s - pSex: %d - pSkin: %d - pMoney: %d",
PlayerInfo[playerid][pRIP],PlayerInfo[playerid][pLIP],PlayerInfo[playerid][pRDate],PlayerInfo[playerid][pLDate],PlayerInfo[playerid][pEmail],PlayerInfo[playerid][pSex],
PlayerInfo[playerid][pSkin],PlayerInfo[playerid][pMoney]);
SendClientMessage(playerid,-1,string);
}
return 1;
}