Peršokti į turinį
  • ŽAIDIMAI
  • , ŽAIDIMAI
  • ŽAIDIMAI

[Klausimas] MySQL, ar įmanoma?


Ši tema yra neaktyvi. Paskutinis pranešimas šioje temoje buvo prieš 3039 dienas (-ų). Patariame sukurti naują temą, o ne rašyti naują pranešimą.

Už neaktyvių temų prikėlimą galite sulaukti įspėjimo ir pranešimo pašalinimo!

Recommended Posts

Sure, why not.

 

Tarkime kad noriu išsaugoti žaidėjo ginklus. Tarkim turiu tokią struktūrą: 

CREATE TABLE IF NOT EXISTS users (
   uid INT AUTO_INCREMENT NOT NULL,
   name VARCHAR NOT NULL,
   password VARCHAR NOT NULL,
   PRIMARY KEY(uid);
) ENGINE=INNODB DEFAULT CHARSET=cp1257 COLATE=cp1257_bin;


CREATE TABLE IF NOT EXISTS user_weapons (
   user_id INT NOT NULL,
   weapon_id TINYINT UNSIGNED NOT NULL,
   ammo SMALLINT UNSIGNED NOT NULL,
   PRIMARY KEY(user_id, weapon_id)
) ENGINE=INNODB DEFAULT CHARSET=cp1257 COLATE=cp1257_bin;

Sakykime kad ginklai bus laikomi tokiam masyve:

enum e_PLAYER_WEAPON_DATA 
{
    WeaponId, 
    Ammo,
};
new PlayerWeapons[ MAX_PLAYERS ][ 5 ][ e_PLAYER_WEAPON_DATA ];

Tai saugojimas atrodytų taip: 

public OnPlayerDisconnect(playerid, reason)
{
    for(new i = 0; i < sizeof(PlayerWeapons[]); i++)
    {
        if(PlayerWeapons[ playerid ][ i ][ WeaponId ])
        {
             format(query, sizeof(query), "INSERT INTO player_weapons (user_id, weapon_id, ammo) VALUES(%d, %d, %d) ON DUPLICATE KEY UPDATE ammo = VALUES(ammo)", GetPlayerSqlId(playerid), PlayerWeapons[ playerid ][ i ][ WeaponId ], PlayerWeapons[ playerid ][ i ][ Ammo ]);
             mysql_query(query);
        }
    }
}
Nuoroda į komentarą
Dalintis per kitą puslapį

Yra dar nuomonių?

Abejoju ar bus kas, šiaip Bebro visai geras saugojimas yra

 

 

Sure, why not.

 

Tarkime kad noriu išsaugoti žaidėjo ginklus. Tarkim turiu tokią struktūrą: 

CREATE TABLE IF NOT EXISTS users (
   uid INT AUTO_INCREMENT NOT NULL,
   name VARCHAR NOT NULL,
   password VARCHAR NOT NULL,
   PRIMARY KEY(uid);
) ENGINE=INNODB DEFAULT CHARSET=cp1257 COLATE=cp1257_bin;


CREATE TABLE IF NOT EXISTS user_weapons (
   user_id INT NOT NULL,
   weapon_id TINYINT UNSIGNED NOT NULL,
   ammo SMALLINT UNSIGNED NOT NULL,
   PRIMARY KEY(user_id, weapon_id)
) ENGINE=INNODB DEFAULT CHARSET=cp1257 COLATE=cp1257_bin;

Sakykime kad ginklai bus laikomi tokiam masyve:

enum e_PLAYER_WEAPON_DATA 
{
    WeaponId, 
    Ammo,
};
new PlayerWeapons[ MAX_PLAYERS ][ 5 ][ e_PLAYER_WEAPON_DATA ];

Tai saugojimas atrodytų taip: 

public OnPlayerDisconnect(playerid, reason)
{
    for(new i = 0; i < sizeof(PlayerWeapons[]); i++)
    {
        if(PlayerWeapons[ playerid ][ i ][ WeaponId ])
        {
             format(query, sizeof(query), "INSERT INTO player_weapons (user_id, weapon_id, ammo) VALUES(%d, %d, %d) ON DUPLICATE KEY UPDATE ammo = VALUES(ammo)", GetPlayerSqlId(playerid), PlayerWeapons[ playerid ][ i ][ WeaponId ], PlayerWeapons[ playerid ][ i ][ Ammo ]);
             mysql_query(query);
        }
    }
}
Nuoroda į komentarą
Dalintis per kitą puslapį

Ši tema yra neaktyvi. Paskutinis pranešimas šioje temoje buvo prieš 3039 dienas (-ų). Patariame sukurti naują temą, o ne rašyti naują pranešimą.

Už neaktyvių temų prikėlimą galite sulaukti įspėjimo ir pranešimo pašalinimo!

Prisijungti prie diskusijos

Palikti atsakymą galite iš karto, o užsiregistruoti vėliau. Jeigu jau turite paskyrą mūsų forume, Prisijunkite.

Svečias
Atsakyti šioje temoje...

×   Įklijuotas tekstas turi teksto formatavimą.   Pašalinti teksto formatavimą

  Galimi tik 75 veidukai.

×   Nuoroda buvo automatiškai įterpta.   Įterpti nuorodą paprastai

×   Jūsų ankstesnis pranešimas buvo atkurtas.   Išvalyti redaktorių

×   Jūs negalite įkelti nuotraukas tiesiogiai.Įkelkite arba įdėkite nuotraukas iš URL.

  • Šiame puslapyje naršo:   0 nariai

    • Nėra registruotų narių peržiūrinčių šį forumą.

×
×
  • Sukurti naują...