Skocz do zawartości

Witamy w Nieoficjalnym polskim support'cie AMX Mod X

Witamy w Nieoficjalnym polskim support'cie AMX Mod X, jak w większości społeczności internetowych musisz się zarejestrować aby móc odpowiadać lub zakładać nowe tematy, ale nie bój się to jest prosty proces w którym wymagamy minimalnych informacji.
  • Rozpoczynaj nowe tematy i odpowiedaj na inne
  • Zapisz się do tematów i for, aby otrzymywać automatyczne uaktualnienia
  • Dodawaj wydarzenia do kalendarza społecznościowego
  • Stwórz swój własny profil i zdobywaj nowych znajomych
  • Zdobywaj nowe doświadczenia

Dołączona grafika Dołączona grafika

Guest Message by DevFuse
 

Zdjęcie

Zapis MySQL


  • Zamknięty Temat jest zamknięty
4 odpowiedzi w tym temacie

#1 stepdub

    Profesjonalista

  • Użytkownik

Reputacja: 43
Pomocny

  • Postów:207
  • Lokalizacja:Kobyłka
Offline

Napisano 21.08.2011 11:14

public MySQLx_Init()
{
if ( !get_pcvar_num(p_Enabled) )
return;

new szHost[64], szUser[32], szPass[32], szDB[128];

get_pcvar_string( mysqlx_host, szHost, charsmax( szHost ) );
get_pcvar_string( mysqlx_user, szUser, charsmax( szUser ) );
get_pcvar_string( mysqlx_pass, szPass, charsmax( szPass ) );
get_pcvar_string( mysqlx_db, szDB, charsmax( szDB ) );

g_hTuple = SQL_MakeDbTuple( szHost, szUser, szPass, szDB );

for ( new i = 0; i < sizeof szTables; i++ )
{
SQL_ThreadQuery( g_hTuple, "QueryCreateTable", szTables[i])
}
}
public QueryCreateTable( iFailState, Handle:hQuery, szError[ ], iError, iData[ ], iDataSize, Float:fQueueTime )
{
if( iFailState == TQUERY_CONNECT_FAILED
|| iFailState == TQUERY_QUERY_FAILED )
{
log_amx( "%s", szError );

return;
}
}

SaveLevel(id)
{
if(is_user_steam(id))
{
static szQuery[ 128 ];
formatex( szQuery, 127, "REPLACE INTO `tabelka` (`player_id`, `player_level`, `player_xp`) VALUES ('%s', '%d', '%d');", g_szAuthID[id] , PlayerLevel[id], PlayerXp[id] );

SQL_ThreadQuery( g_hTuple, "QuerySetData", szQuery);
}
else
{
static szQuery[ 128 ];

formatex( szQuery, 127, "REPLACE INTO `tabelka` (`player_id`, `player_level`, `player_xp`) VALUES ('%s', '%d', '%d');", g_szAuthNM[id] , PlayerLevel[id], PlayerXp[id] );

SQL_ThreadQuery( g_hTuple, "QuerySetData", szQuery);
}
}

LoadLevel(id)
{
if(is_user_steam(id)) {
static szQuery[ 128 ], iData[ 1 ];
formatex( szQuery, 127, "SELECT `player_level`, `player_xp` FROM `gxm1` WHERE ( `player_id` = '%s' );", g_szAuthID[id] );

iData[ 0 ] = id;
SQL_ThreadQuery( g_hTuple, "QuerySelectData", szQuery, iData, 1 );
}
else
{
static szQuery[ 128 ], iData[ 1 ];
formatex( szQuery, 127, "SELECT `player_level`, `player_xp` FROM `gxm1` WHERE ( `player_id` = '%s' );", g_szAuthNM[id] );

iData[ 0 ] = id;
SQL_ThreadQuery( g_hTuple, "QuerySelectData", szQuery, iData, 1 );
}
}

public QuerySelectData( iFailState, Handle:hQuery, szError[ ], iError, iData[ ], iDataSize, Float:fQueueTime ) 
{
if( iFailState == TQUERY_CONNECT_FAILED
|| iFailState == TQUERY_QUERY_FAILED )
{
log_amx( "%s", szError );

return;
}
else
{
new id = iData[ 0 ];

new ColLevel = SQL_FieldNameToNum(hQuery, "player_level")
new ColXp = SQL_FieldNameToNum(hQuery, "player_xp")

while (SQL_MoreResults(hQuery))
{
PlayerLevel[id] = SQL_ReadResult(hQuery, ColLevel);
PlayerXp[id] = SQL_ReadResult(hQuery, ColXp);

SQL_NextRow(hQuery)
}
}
}
public QuerySetData( iFailState, Handle:hQuery, szError[ ], iError, iData[ ], iDataSize, Float:fQueueTime )
{
if( iFailState == TQUERY_CONNECT_FAILED
|| iFailState == TQUERY_QUERY_FAILED )
{
log_amx( "%s", szError );

return;
}
}

coś takiego zadziała? próbuję zrobić zapis - na steam lub nick w zależności kto co ma, nie mam jak przetestować :/

Użytkownik stepdub edytował ten post 21.08.2011 11:23

  • +
  • -
  • 0

#2 sebul

    Godlike

  • Przyjaciel

Reputacja: 2 035
Godlike

  • Postów:5 411
  • Steam:steam
  • Imię:Sebastian
  • Lokalizacja:Ostrołęka
Offline

Napisano 21.08.2011 11:18

A jak zrobiłeś funkcję, która sprawdza czy gracz ma steama? Bo tutaj tego nie podałeś. Do tego musisz jeszcze dodać w paru miejscach ")", tak jak chociażby tutaj
if(is_user_steam(id) { // przed { trzeba dodać )

  • +
  • -
  • 0

Posiadam TBM (inaczej PTB), które działa dużo lepiej niż zwykłe PTB, nawet na modach z lvlami. Zainteresowany? Proszę bardzo


#3 stepdub

    Profesjonalista

  • Autor tematu
  • Użytkownik

Reputacja: 43
Pomocny

  • Postów:207
  • Lokalizacja:Kobyłka
Offline

Napisano 21.08.2011 11:26

sebul, wiem, edytowałem, zanim jeszcze napisałeś post
stock - zadziała u mnie, dproto ustawiłem dobrze
stock bool:is_user_steam(id)
{
new authid[32];
get_user_authid(id, authid, 31);
return containi(authid , ":") != -1 ? true : false;
}

generalnie się skompilowało, tylko czy nic nie wadzi, mało raczej miałem do czynienia z mysql
  • +
  • -
  • 0

#4 sebul

    Godlike

  • Przyjaciel

Reputacja: 2 035
Godlike

  • Postów:5 411
  • Steam:steam
  • Imię:Sebastian
  • Lokalizacja:Ostrołęka
Offline

Napisano 21.08.2011 13:21

Mogłeś napisać, że wzorowałeś się na gun xp modzie ^ ^
Zapis/odczyt powinien działać, skoro działa on normalnie w gun xp modzie, bo przed chwilą spojrzałem w jego kod i chyba dobrze to zrobiłeś. Sam na mysql bardzo dobrze się nie znam, ale do przerabiania zapisu/odczytu z bazy z innego moda, nie jest potrzebna jakaś duża wiedza na ten temat.
  • +
  • -
  • 0

Posiadam TBM (inaczej PTB), które działa dużo lepiej niż zwykłe PTB, nawet na modach z lvlami. Zainteresowany? Proszę bardzo


#5 stepdub

    Profesjonalista

  • Autor tematu
  • Użytkownik

Reputacja: 43
Pomocny

  • Postów:207
  • Lokalizacja:Kobyłka
Offline

Napisano 21.08.2011 13:26

^^ bo to generalnie było i zostanie w nim :D
teoretycznie na steam działało :] sprawdzę jeszcze na ns
  • +
  • -
  • 0




Użytkownicy przeglądający ten temat: 0

0 użytkowników, 0 gości, 0 anonimowych