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
CoD Stary

Pytanie Vault na SQL

cod stary

  • Nie możesz napisać tematu
  • Zaloguj się, aby dodać odpowiedź
Brak odpowiedzi do tego tematu

#1 Andrzejek

    Ucze się :]

  • Power User

Reputacja: 136
Zaawansowany

  • Postów:1 300
  • Imię:Andrzej
Offline

Napisano 01.08.2012 17:05

Witam, ostatnio pracowałem nad Unikatowym Cod Modzie, i jestem dumny z tego co zrobiłem. Ale zrobiłem to na zapis Vault, i tu właśnie do was pytanie czy wystarczy dodać do silnika:

#include <sqlx>


new lvl_klasy_gracza[33][sizeof nazwy_klas];
new xp_klasy_gracza[33][sizeof nazwy_klas];
new int_klasy_gracza[33][sizeof nazwy_klas];
new zdr_klasy_gracza[33][sizeof nazwy_klas];
new wyt_klasy_gracza[33][sizeof nazwy_klas];
new kon_klasy_gracza[33][sizeof nazwy_klas];

new polaczony_raz[33], wczytane_dane[33];
new Handle:info;


W public plugin_init()
register_cvar("cod_host", "");
register_cvar("cod_user", "");
register_cvar("cod_pass", "");
register_cvar("cod_db", "");
register_cvar("cod_table", "codmod_table");


public plugin_cfg()
public plugin_cfg()
{
new Host[64], User[64], Pass[64], DB[64], Table[32];

get_cvar_string("cod_host", Host, 63);
get_cvar_string("cod_user", User, 63);
get_cvar_string("cod_pass", Pass, 63);
get_cvar_string("cod_db", DB, 63);
get_cvar_string("cod_table", Table, 31);

info = SQL_MakeDbTuple(Host, User, Pass, DB);
if(info == Empty_Handle){
set_fail_state("Brak polaczenia z baza danych!");
return;
}

new szTemp[1028], iLen = 0
iLen += formatex(szTemp[iLen], charsmax(szTemp)-iLen, "CREATE TABLE IF NOT EXISTS `%s` (`nick` VARCHAR(64)", Table);

for(new i=1; i<sizeof nazwy_klas; i++)
iLen += formatex(szTemp[iLen], charsmax(szTemp)-iLen, ", `%i` VARCHAR(32)", i);

iLen += copy(szTemp[iLen], charsmax(szTemp)-iLen, ")");

SQL_ThreadQuery(info, "IgnoreHandle", szTemp);
}


W public WybierzKlase(id)
public WybierzKlase(id)
{
if(polaczony_raz[id])
{
client_print(id, print_center, "Poczekaj na klase, a nie spamujesz!");
return PLUGIN_CONTINUE;
}
if(!wczytane_dane[id])
{
new szTemp[1024], data[1], Table[32];
get_cvar_string("cod_table", Table, 31);

data[0] = id;

formatex(szTemp, charsmax(szTemp), "SELECT * FROM `%s` WHERE `nick` = '%s'", Table, nazwa_gracza[id])
SQL_ThreadQuery(info, "KlasaHandle", szTemp, data, sizeof data)
polaczony_raz[id] = 1;
}
else
{
lvl_klasy_gracza[id][klasa_gracza[id]] = poziom_gracza[id];
xp_klasy_gracza[id][klasa_gracza[id]] = doswiadczenie_gracza[id];
int_klasy_gracza[id][klasa_gracza[id]] = inteligencja_gracza[id];
zdr_klasy_gracza[id][klasa_gracza[id]] = zdrowie_gracza[id];
wyt_klasy_gracza[id][klasa_gracza[id]] = wytrzymalosc_gracza[id];
kon_klasy_gracza[id][klasa_gracza[id]] = kondycja_gracza[id];

new klasa[50], menu = menu_create("Wybierz klase:", "WybierzKlase_Handle");
for(new i=1 ;i<sizeof nazwy_klas; i++)
{
format(klasa, 49, "%s \yPoziom: %i", nazwy_klas[i], lvl_klasy_gracza[id][i]);
menu_additem(menu, klasa);
}
menu_setprop(menu, MPROP_EXITNAME, "Wyjdz");
menu_setprop(menu, MPROP_BACKNAME, "Poprzednia strona");
menu_setprop(menu, MPROP_NEXTNAME, "Nastepna strona");
menu_display(id, menu);

client_cmd(id, "spk QTM_CodMod/select");
}
return PLUGIN_CONTINUE;
}

public KlasaHandle(failstate, Handle:query, error[], errnum, Data[], size){
if(failstate != TQUERY_SUCCESS){
log_amx("MySQL Select error: %s",error);
return;
}
new id = Data[0]
new szTemp[2028], klasa[50], menu = menu_create("Wybierz klase:", "WybierzKlase_Handle");

if(SQL_NumRows(query))
{
new daneklasy[6][32];
for(new i=1 ;i<sizeof nazwy_klas; i++)
{
formatex(szTemp, charsmax(szTemp), "%i", i);
SQL_ReadResult(query, SQL_FieldNameToNum(query, szTemp), szTemp, charsmax(szTemp))

replace_all(szTemp, charsmax(szTemp), "#", " ");

parse(szTemp, daneklasy[0], 31, daneklasy[1], 31, daneklasy[2], 31, daneklasy[3], 31, daneklasy[4], 31, daneklasy[5], 31);
lvl_klasy_gracza[id][i] = str_to_num(daneklasy[0])
xp_klasy_gracza[id][i] = str_to_num(daneklasy[1])
int_klasy_gracza[id][i] = str_to_num(daneklasy[2])
zdr_klasy_gracza[id][i] = str_to_num(daneklasy[3])
wyt_klasy_gracza[id][i] = str_to_num(daneklasy[4])
kon_klasy_gracza[id][i] = str_to_num(daneklasy[5])

formatex(klasa, 49, "%s \yPoziom: %i", nazwy_klas[i], lvl_klasy_gracza[id][i]);
menu_additem(menu, klasa);
}
menu_setprop(menu, MPROP_EXITNAME, "Wyjdz");
menu_setprop(menu, MPROP_BACKNAME, "Poprzednia strona");
menu_setprop(menu, MPROP_NEXTNAME, "Nastepna strona");
menu_display(id, menu);

client_cmd(id, "spk QTM_CodMod/select");
wczytane_dane[id] = 1;
}
else
{
new iLen = 0, Table[32];
get_cvar_string("cod_table", Table, 31);

iLen += formatex(szTemp[iLen], charsmax(szTemp)-iLen, "INSERT INTO `%s` (`nick`", Table);

for(new i=1; i<sizeof nazwy_klas; i++)
iLen += formatex(szTemp[iLen], charsmax(szTemp)-iLen, ", `%i`", i);

iLen += copy(szTemp[iLen], charsmax(szTemp)-iLen, ") VALUES (");
iLen += formatex(szTemp[iLen], charsmax(szTemp)-iLen, "'%s'", nazwa_gracza[id]);

for(new i=1; i<sizeof nazwy_klas; i++)
iLen += copy(szTemp[iLen], charsmax(szTemp)-iLen, ", '1#0#0#0#0#0'");

iLen += copy(szTemp[iLen], charsmax(szTemp)-iLen, ")");
SQL_ThreadQuery(info, "IgnoreHandle", szTemp)

for(new i=1 ;i<sizeof nazwy_klas; i++)
{
formatex(klasa, 49, "%s \yPoziom: 1", nazwy_klas[i]);
menu_additem(menu, klasa);
}
menu_setprop(menu, MPROP_EXITNAME, "Wyjdz");
menu_setprop(menu, MPROP_BACKNAME, "Poprzednia strona");
menu_setprop(menu, MPROP_NEXTNAME, "Nastepna strona");
menu_display(id, menu);

client_cmd(id, "spk QTM_CodMod/select");
}
polaczony_raz[id] = 0;
}


public ZapiszDane(id)
{
if(!klasa_gracza[id])
return PLUGIN_CONTINUE;

new szTemp[512], szTemp2[512], Table[32];
get_cvar_string("cod_table", Table, 31);

formatex(szTemp2, charsmax(szTemp2),"%i#%i#%i#%i#%i#%i", poziom_gracza[id], doswiadczenie_gracza[id], inteligencja_gracza[id], zdrowie_gracza[id], wytrzymalosc_gracza[id], kondycja_gracza[id]);
formatex(szTemp, charsmax(szTemp), "UPDATE `%s` SET `%i` = '%s' WHERE `nick` = '%s'", Table, klasa_gracza[id], szTemp2, nazwa_gracza[id]);
SQL_ThreadQuery(info, "IgnoreHandle",szTemp)
return PLUGIN_CONTINUE;
}

public IgnoreHandle(FailState,Handle:query,Error[],Errcode,Data[],DataSize)
{
if(FailState != TQUERY_SUCCESS){
log_amx("MySQL save error: %s", Error);
return;
}
}

public plugin_end()
SQL_FreeHandle(info)


i czy to wystarczy? Żeby byl zapis SQL
I co jest do usunięcia z silnika?

Z tego tematu sprawdzelem: http://amxx.pl/topic...zapisem-na-sql/

Użytkownik Andrzejek edytował ten post 01.08.2012 17:06

  • +
  • -
  • 0

Mam do sprzedania pluginy AMXX pod serwery typu, JB, ONLY DD2, ZOMBIE, COD MOD, DR i inne...

 

Jeżeli jesteś zainteresowany(a), napisz na PW lub GG 42384104






Również z jednym lub większą ilością słów kluczowych: cod stary

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

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