Mysql problem
#1

Show NULL instead of text.
http://imageshack.us/photo/my-images/13/3stz.png/ The problem
PHP код:
public OnPlayerText(playeridtext[])
{
if(
IsPlayerAdmin(playerid))
{
new 
pName[MAX_PLAYER_NAME], string[128],prefix[128];
GetPlayerName(playeridpName24);
cache_get_field_content(0"Prefix",prefixg_Handle);g_PlayerInfo[playerid][pPrefix]  = strval(prefix);
format(stringsizeof(string), "{00B900} %s %s: %s",prefixpNametext);
SendClientMessageToAll(-1,string);
return 
0;
}
return 
1;

PHP код:
/*    
    MySQL R8 - Example Account Script
    
    by: VincentDunn
    
*/
#include <a_samp>
#include <a_mysql>
#include <easydialog>
//-----------------------------------------------------
#define        MAX_LOG_TRIES        (4)
#define        MAX_PASS_LENGTH        (40)
#define        SALT_LENGTH            (30)
#define     NEWB_SKIN            (299)
/* MySQL Credentials */
#define     SQL_HOST             "localhost"
#define     SQL_USER             "root"
#define     SQL_PASS             ""
#define     SQL_DB                  "test"
/* Used for position arrays */
#define        posArr{%0}        %0[0], %0[1], %0[2]   
#define        posArrEx{%0}    %0[0], %0[1], %0[2], %0[3]
//-----------------------------------------------------
native WP_Hash(buffer[], len, const str[]);
//-----------------------------------------------------
/* Credits to RyDeR` */
stock randomString(strDest[], strLen 30)
{
    while(
strLen--)
        
strDest[strLen] = random(2) ? (random(26) + (random(2) ? 'a' 'A')) : (random(10) + '0');
}
//-----------------------------------------------------
static Float:g_newbSpawn[4] = {1815.2614,-1369.6233,15.0781,270.4365};
enum e_pInfo
{
    
pSQLid,
    
pPass[129],
    
pSalt[30],
    
Float:pHealth,
    
Float:pPos[4],
    
pInterior,
    
pVirtualWorld,
    
pSkin,
    
pPrefix
}
new 
    
g_PlayerInfo[MAX_PLAYERS][e_pInfo],
    
g_Logged[MAX_PLAYERS],
    
g_LogTries[MAX_PLAYERS],
    
g_Died[MAX_PLAYERS],
    
g_Handle;
//-----------------------------------------------------
main(){
}
//-----------------------------------------------------
public OnGameModeInit()
{    
    
SetGameModeText("MySQL R-7 Gamemode");
    
UsePlayerPedAnims();
    
DisableInteriorEnterExits();
    
    
mySQL_init();
    
TextDraws_Init();
    return 
1;
}
public 
OnGameModeExit()
{
    
mysql_close(g_Handle); 
    return 
1;
}
//-----------------------------------------------------
stock mySQL_init()
{
    
mysql_debug(1); 
    
g_Handle mysql_connect(SQL_HOSTSQL_USERSQL_DBSQL_PASS);
    
    return 
1;
}
forward SendQuery();
public 
SendQuery()
{
    
// callback for queries that don't fetch data
    
return 1;
}
//-----------------------------------------------------
public OnPlayerConnect(playerid)
{
    
ToggleMainMenu(playerid1);
    
SetTimerEx("SafeOnPlayerConnect"2500"d"playerid);
    return 
1;
}
forward SafeOnPlayerConnect(playerid);
public 
SafeOnPlayerConnect(playerid)
{
    
g_Logged[playerid] = 255;
    
g_LogTries[playerid] = 0;
    
g_Died[playerid] = 0;
    
    
SetSpawnInfo(playerid0251posArr{g_newbSpawn}-4.00.0000000);
    
SpawnPlayer(playerid);
    
    
ToggleMainMenu(playerid1);
    
CheckAccount(playerid);
    return 
1;
}
public 
OnPlayerDisconnect(playeridreason)
{
    
SaveAccount(playerid);
    return 
1;
}
public 
OnPlayerSpawn(playerid)
{    
    if(
g_Logged[playerid] == 255) {
        
g_Logged[playerid] = 0;
        
clearScreen(playerid);
        
        
SetPlayerCameraPos(playeridposArr{g_newbSpawn});
        
SetPlayerCameraLookAt(playeridposArr{g_newbSpawn});
    }
    
    if(
g_Died[playerid]) {
        
SetCameraBehindPlayer(playerid);
        
SetPlayerPos(playeridposArr{g_newbSpawn});
        
SetPlayerFacingAngle(playeridg_newbSpawn[3]);
    }
    return 
1;
}
public 
OnPlayerDeath(playeridkilleridreason)
{
    
g_Died[playerid] = 1;
    return 
1;
}
//-----------------------------------------------------
stock CheckAccount(playerid)
{
    new 
query[82];
    
    
format(querysizeof(query), "SELECT id, pass, salt FROM `users` WHERE `name` = '%s' LIMIT 1"returnName(playerid));
    
mysql_function_query(g_Handlequerytrue"OnAccountCheck""d"playerid);
    return 
1;
}
forward OnAccountCheck(playerid);
public 
OnAccountCheck(playerid)
{
    if(
playerid != INVALID_PLAYER_ID) { // if the player is still connected
    
        
new rowsfields;
        
cache_get_data(rowsfieldsg_Handle); 
        
        if(
rows) {
            
g_PlayerInfo[playerid][pSQLid] = cache_get_row_int(00g_Handle);
            
cache_get_row(01g_PlayerInfo[playerid][pPass], g_Handle130); // whirlpool length + 1
            
cache_get_row(02g_PlayerInfo[playerid][pSalt], g_HandleSALT_LENGTH+1);
            
            
ShowDialog(playeridShow:<Login>, DIALOG_STYLE_PASSWORD"{1564F5}Login""Type in your password below to log in.""Okay""Cancel");
        }
        
        else {
            
ShowDialog(playeridShow:<Register>, DIALOG_STYLE_PASSWORD"{1564F5}Register""Type in a password below to register an account.""Okay""Cancel");
        }
    }
    return 
1;
}
//-----------------------------------------------------
Dialog:Login(playeridresponselistiteminputtext[])
{
    if(!
response || !strlen(inputtext)) {
        return 
ShowDialog(playeridShow:<Login>, DIALOG_STYLE_PASSWORD"{1564F5}Login""Type in your password below to log in.""Okay""Cancel");
    }
    
    new 
        
hashedinput[129];
    
    
format(hashedinputsizeof(hashedinput), "%s%s"g_PlayerInfo[playerid][pSalt], escape(inputtext));
    
WP_Hash(hashedinput129hashedinput);
    
    if(
strcmp(hashedinputg_PlayerInfo[playerid][pPass])) {
        
g_LogTries[playerid]++;
        
        if(
g_LogTries[playerid] == MAX_LOG_TRIES) {
            return 
SendClientMessage(playerid, -1"SERVER: Too many login attempts."), Kick(playerid);
        }
        
        
SendClientMessage(playerid, -1"SERVER: Invalid password!"),
        
ShowDialog(playeridShow:<Login>, DIALOG_STYLE_PASSWORD"{1564F5}Login""Type in your password below to log in.""Okay""Cancel");
    }
    else {
        
LoadAccount(playerid);
    }
    return 
1;
}
stock LoadAccount(playerid)
{
    new 
query[128];
    
    
format(querysizeof(query), "SELECT * FROM `users` WHERE `id` = %d"g_PlayerInfo[playerid][pSQLid]);
    
mysql_function_query(g_Handlequerytrue"OnAccountLoad""d"playerid);
}
forward OnAccountLoad(playerid);
public 
OnAccountLoad(playerid)
{
    
ToggleMainMenu(playerid0);
    
SetCameraBehindPlayer(playerid);
    
    new 
temp[40];
    
format(tempsizeof(temp), "SERVER: Welcome %s"returnNameEx(playerid));
    
SendClientMessage(playerid, -1temp);
    
    
g_PlayerInfo[playerid][pHealth]         = cache_get_row_float(04g_Handle),
    
g_PlayerInfo[playerid][pPos][0]         = cache_get_row_float(05g_Handle),
    
g_PlayerInfo[playerid][pPos][1]         = cache_get_row_float(06g_Handle),
    
g_PlayerInfo[playerid][pPos][2]         = cache_get_row_float(07g_Handle),
    
g_PlayerInfo[playerid][pPos][3]         = cache_get_row_float(08g_Handle),
    
g_PlayerInfo[playerid][pInterior]       = cache_get_row_int(09g_Handle),
    
g_PlayerInfo[playerid][pVirtualWorld]   = cache_get_row_int(010g_Handle),
    
g_PlayerInfo[playerid][pSkin]           = cache_get_row_int(011g_Handle),
        
g_PlayerInfo[playerid][pPrefix]           = cache_get_row_int(012g_Handle);
    
    
SetPlayerHealth(playeridg_PlayerInfo[playerid][pHealth]);    
    
SetPlayerPos(playeridposArr{g_PlayerInfo[playerid][pPos]});
    
SetPlayerFacingAngle(playeridg_PlayerInfo[playerid][pPos][3]);
    
SetPlayerInterior(playeridg_PlayerInfo[playerid][pInterior]);
    
SetPlayerSkin(playeridg_PlayerInfo[playerid][pSkin]);
    return 
1;
}
//-----------------------------------------------------
Dialog:Register(playeridresponselistiteminputtext[]) 
{
    if(!
response) {
        return 
SendClientMessage(playerid, -1"SERVER: You have left the server."), Kick(playerid);
    }
    
    if(
isnull(inputtext)) {
        return 
ShowDialog(playeridShow:<Register>, DIALOG_STYLE_PASSWORD"{1564F5}Register""Type in a password below to register an account.""Okay""Cancel");
    }
    
    if(
strlen(inputtext) >= MAX_PASS_LENGTH) {
        return 
SendClientMessage(playerid, -1"SERVER: Password must not be more than 40 characters"), ShowDialog(playeridShow:<Register>, DIALOG_STYLE_PASSWORD"{1564F5}Register""Type in a password below to register an account.""Okay""Cancel");
    }
    
    new 
        
Salt[30],
        
hash[129];
    
    
randomString(SaltSALT_LENGTH);
    
format(hashsizeof(hash), "%s%s"Saltescape(inputtext));
    
    
WP_Hash(hashsizeof(hash), hash);
    
CreateAccount(playeridSalthash);
    
    
format(hashsizeof(hash), "SERVER: Welcome %s"returnNameEx(playerid));
    
SendClientMessage(playerid, -1hash);
    
    
g_PlayerInfo[playerid][pPrefix] = NEWB_SKIN;
    
    
ToggleMainMenu(playerid0);
    
SetCameraBehindPlayer(playerid);
    
SetPlayerPos(playeridposArr{g_newbSpawn});
    
SetPlayerFacingAngle(playeridg_newbSpawn[3]);
    
SetPlayerSkin(playerid251);
    return 
1;
}
//-----------------------------------------------------
stock CreateAccount(playeridsalt[], pass[129])
{
    new 
query[240];
    
format(querysizeof(query), "INSERT INTO `users` (name, salt, pass) VALUES (\'%s\', \'%s\', \'%s\')",
        
returnName(playerid),
        
salt,
        
pass
    
);
    
    
mysql_function_query(g_Handlequeryfalse"OnAccountCreate""d"playerid);
}
forward OnAccountCreate(playerid);
public 
OnAccountCreate(playerid)
{
    
g_PlayerInfo[playerid][pSQLid] = mysql_insert_id();
    return 
1;
}
stock SaveAccount(playerid)
{
    new 
        
query[300],
        
Float:pos[4],
        
Float:health;
    
    
GetPlayerPos(playeridposArr{pos});
    
GetPlayerFacingAngle(playeridpos[3]);
    
GetPlayerHealth(playeridhealth);
    
    
format(querysizeof(query), "UPDATE `users` SET health = %.1f, X = %.2f, Y = %.2f, Z = %.2f, A = %.2f, interior = %d, vw = %d, skin = %d WHERE `id` = %d",
        
health,
        
posArrEx{pos},
        
GetPlayerInterior(playerid),
        
GetPlayerVirtualWorld(playerid),
        
GetPlayerSkin(playerid),
        
g_PlayerInfo[playerid][pSQLid]
    );
    
    
mysql_function_query(g_Handlequeryfalse"SendQuery""");
    return 
1;
}
public 
OnPlayerText(playeridtext[])
{
if(
IsPlayerAdmin(playerid))
{
new 
pName[MAX_PLAYER_NAME], string[128],prefix[128];
GetPlayerName(playeridpName24);
cache_get_field_content(0"Prefix",prefixg_Handle);g_PlayerInfo[playerid][pPrefix]  = strval(prefix);
format(stringsizeof(string), "{00B900} %s %s: %s",prefixpNametext);
SendClientMessageToAll(-1,string);
return 
0;
}
return 
1;
}
//-----------------------------------------------------
stock returnName(playerid)
{
    new 
name[24];
    
GetPlayerName(playeridname24);
    return 
name;
}
stock returnNameEx(playerid)
{
    new 
name[24];
    
GetPlayerName(playeridname24);
    
    for(new 
x=0x<24x++) {
        if(
name[x] == '_') {
            
name[x] = ' ';
        }
    }
    return 
name;
}
stock clearScreen(playerid)
{
    for(new 
ii<50i++) {
        
SendClientMessage(playerid, -1"");
    }
    return 
1;
}
stock escape(string[])
{
    new 
esc_string[512];
    
mysql_real_escape_string(stringesc_stringg_Handlesizeof(esc_string));
    return 
esc_string;
}
//-----------------------------------------------------
new
    
Text:MainMenu[4];
stock TextDraws_Init()
{    
    
/* Bottom Bar */
    
MainMenu[0] = TextDrawCreate(250.000000343.000000"~n~~n~~n~~n~~n~~n~");
    
TextDrawAlignment(MainMenu[0], 2);
    
TextDrawBackgroundColor(MainMenu[0], 255);
    
TextDrawFont(MainMenu[0], 1);
    
TextDrawLetterSize(MainMenu[0], 1.0000002.000000);
    
TextDrawColor(MainMenu[0], -16776961);
    
TextDrawSetOutline(MainMenu[0], 1);
    
TextDrawSetProportional(MainMenu[0], 1);
    
TextDrawUseBox(MainMenu[0], 1);
    
TextDrawBoxColor(MainMenu[0], 255);
    
TextDrawTextSize(MainMenu[0], 90.000000803.000000);
    
/* Top Bar */
    
MainMenu[1] = TextDrawCreate(250.000000, -12.000000"~n~~n~~n~~n~~n~~n~");
    
TextDrawAlignment(MainMenu[1], 2);
    
TextDrawBackgroundColor(MainMenu[1], 255);
    
TextDrawFont(MainMenu[1], 1);
    
TextDrawLetterSize(MainMenu[1], 1.0000002.000000);
    
TextDrawColor(MainMenu[1], -16776961);
    
TextDrawSetOutline(MainMenu[1], 1);
    
TextDrawSetProportional(MainMenu[1], 1);
    
TextDrawUseBox(MainMenu[1], 1);
    
TextDrawBoxColor(MainMenu[1], 255);
    
TextDrawTextSize(MainMenu[1], 90.000000918.000000);
    
/* Top Colored Bar */
    
MainMenu[2] = TextDrawCreate(729.00000099.000000"_");
    
TextDrawBackgroundColor(MainMenu[2], 255);
    
TextDrawFont(MainMenu[2], 1);
    
TextDrawLetterSize(MainMenu[2], 50.0000000.099999);
    
TextDrawColor(MainMenu[2], -16776961);
    
TextDrawSetOutline(MainMenu[2], 0);
    
TextDrawSetProportional(MainMenu[2], 1);
    
TextDrawSetShadow(MainMenu[2], 1);
    
TextDrawUseBox(MainMenu[2], 1);
    
TextDrawBoxColor(MainMenu[2], 0x1564F5FF);
    
TextDrawTextSize(MainMenu[2], -5.0000001031.000000);
    
/* Bottom Colored Bar */
    
MainMenu[3] = TextDrawCreate(729.000000340.000000"_");
    
TextDrawBackgroundColor(MainMenu[3], 255);
    
TextDrawFont(MainMenu[3], 1);
    
TextDrawLetterSize(MainMenu[3], 50.0000000.099999);
    
TextDrawColor(MainMenu[3], -16776961);
    
TextDrawSetOutline(MainMenu[3], 0);
    
TextDrawSetProportional(MainMenu[3], 1);
    
TextDrawSetShadow(MainMenu[3], 1);
    
TextDrawUseBox(MainMenu[3], 1);
    
TextDrawBoxColor(MainMenu[3], 0x1564F5FF);
    
TextDrawTextSize(MainMenu[3], -5.0000001031.000000);
    return 
1;
}
stock ToggleMainMenu(playeridtoggle)
{
    for(new 
i=0i<sizeof(MainMenu); i++) {
        if(
toggle) {
            
TextDrawShowForPlayer(playeridMainMenu[i]);
            
TogglePlayerControllable(playerid0);
        }
        
        else {
            
TextDrawHideForPlayer(playeridMainMenu[i]);
            
TogglePlayerControllable(playerid1);
        }
    }
    return 
1;

Reply
#2

No1 can help ?
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)