cache_get_field_content_int problem
#1

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
Reply
#2

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_ARG16);
            
cache_get_field_content(i"L-IP"PlayerInfo[playerid][pLIP], MYSQL_ARG16);
               
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_ARG16);
            
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;

Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)