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

Łączenie z baza danych.


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

#1 MenTo(S)

    Profesjonalista

  • Użytkownik

Reputacja: 1
Nowy

  • Postów:171
  • GG:
  • Steam:steam
  • Imię:Sebastian
  • Lokalizacja:Kielce
Offline

Napisano 18.06.2012 21:28

Cześć wam, mam do was pytanie a za razem problem.
Posiadam w pliku źródłowym to co poniżej i nie wiem gdzie wpisać dane czy poniżej czy gdzieś w plik :)
new Host[] = ""
new
User[] = ""
new Pass[] = ""
new Db[] = ""
  • +
  • -
  • 0

#2 speedkill

    Godlike

  • Przyjaciel

Reputacja: 1 592
Godlike

  • Postów:2 733
  • GG:
  • Steam:steam
  • Imię:Michał
  • Lokalizacja:Prudnik
Offline

Napisano 18.06.2012 21:31

Dane wpisujesz w uszach "" czyli np. :
new Host[]       = "Host"

  • +
  • -
  • 1

If you can dream it, you can do it.


#3 MenTo(S)

    Profesjonalista

  • Autor tematu
  • Użytkownik

Reputacja: 1
Nowy

  • Postów:171
  • GG:
  • Steam:steam
  • Imię:Sebastian
  • Lokalizacja:Kielce
Offline

Napisano 18.06.2012 21:33

Oki nie bylem pewny ponieważ wcześniej wpisując tam dane po prostu mi nie łączyło z baza danych :)
  • +
  • -
  • 0

#4 MenTo(S)

    Profesjonalista

  • Autor tematu
  • Użytkownik

Reputacja: 1
Nowy

  • Postów:171
  • GG:
  • Steam:steam
  • Imię:Sebastian
  • Lokalizacja:Kielce
Offline

Napisano 18.06.2012 21:45

Pośpieszyłeś się zbytnio z zamknięciem :))
Wywala w konsoli błąd:

L 06/27/2011 - 11:40:15: [AMXX] Plugin says: Can't connect to MySQL server on '192.168.101.53' (110)

L 06/27/2011 - 11:40:15: [AMXX] Displaying debug trace (plugin "plugin.amxx")

L 06/27/2011 - 11:40:15: [AMXX] Run time error 1: forced exit

L 06/27/2011 - 11:40:15: [AMXX] [0] plugin.sma::MySql_Init (line 1848)


Linijka w sma:
set_fail_state(g_Error)
public MySql_Init()
{
	// we tell the API that this is the information we want to connect to,
	// just not yet. basically it's like storing it in global variables
	g_SqlTuple = SQL_MakeDbTuple(Host,User,Pass,Db)

	// ok, we're ready to connect
	new ErrorCode,Handle:SqlConnection = SQL_Connect(g_SqlTuple,ErrorCode,g_Error,charsmax(g_Error))
	if(SqlConnection == Empty_Handle)
		// stop the plugin with an error message
	set_fail_state(g_Error)

	new Handle:Queries
	// we must now prepare some random queries
	Queries = SQL_PrepareQuery(SqlConnection,"CREATE TABLE IF NOT EXISTS cod (nick varchar(32),klasa varchar(32), doswiadczenie INT(11), poziom INT(5), inteligencja INT(5), zdrowie INT(5), wytrzymalosc INT(5), kondycja INT(5))")

	if(!SQL_Execute(Queries))
	{
		// if there were any problems
		SQL_QueryError(Queries,g_Error,charsmax(g_Error))
		set_fail_state(g_Error)

	}

	// close the handle
	SQL_FreeHandle(Queries)

	// you free everything with SQL_FreeHandle
	SQL_FreeHandle(SqlConnection)  
}

Użytkownik MenTo(S) edytował ten post 18.06.2012 21:46

  • +
  • -
  • 0

#5 fejk

    Wszechpomocny

  • Zbanowany

Reputacja: 53
Pomocny

  • Postów:336
  • GG:
  • Lokalizacja:users.ini
Offline

Napisano 18.06.2012 21:57

[color=#FFFFFF][font=monospace][size=3][background=rgb(0, 0, 0)]L 06/27/2011 - 11:40:15: [AMXX] Plugin says: Can't connect to MySQL server on '192.168.101.53' (110)
[/background][/size][/font][/color]

Nie można połączyć się z bazą danych.

#6 MenTo(S)

    Profesjonalista

  • Autor tematu
  • Użytkownik

Reputacja: 1
Nowy

  • Postów:171
  • GG:
  • Steam:steam
  • Imię:Sebastian
  • Lokalizacja:Kielce
Offline

Napisano 18.06.2012 22:10

Wydupcyło trochę errorlogow.
L 06/27/2011 - 12:03:22: [MySQL] Invalid database handle: 0
L 06/27/2011 - 12:03:22: [AMXX] Displaying debug trace (plugin "plugin.amxx")
L 06/27/2011 - 12:03:22: [AMXX] Run time error 10: native error (native "SQL_PrepareQuery")
L 06/27/2011 - 12:03:22: [AMXX]	[0] plugin.sma::MySql_Init (line 1848)
L 06/27/2011 - 12:04:12: [MySQL] Invalid info tuple handle: 1
L 06/27/2011 - 12:04:12: [AMXX] Displaying debug trace (plugin "plugin.amxx")
L 06/27/2011 - 12:04:12: [AMXX] Run time error 10: native error (native "SQL_ThreadQuery")
L 06/27/2011 - 12:04:12: [AMXX]	[0] plugin.sma::WczytajDane (line 1872)
L 06/27/2011 - 12:04:12: [AMXX]	[1] plugin.sma::Wybierzfrakcje_Handle (line 1251)
L 06/27/2011 - 12:04:13: [MySQL] Invalid info tuple handle: 1
L 06/27/2011 - 12:04:13: [AMXX] Displaying debug trace (plugin "plugin.amxx")
L 06/27/2011 - 12:04:13: [AMXX] Run time error 10: native error (native "SQL_ThreadQuery")
L 06/27/2011 - 12:04:13: [AMXX]	[0] plugin.sma::register_client (line 1896)
L 06/27/2011 - 12:04:20: [MySQL] Invalid info tuple handle: 1
L 06/27/2011 - 12:04:20: [AMXX] Displaying debug trace (plugin "plugin.amxx")
L 06/27/2011 - 12:04:20: [AMXX] Run time error 10: native error (native "SQL_ThreadQuery")
L 06/27/2011 - 12:04:20: [AMXX]	[0] plugin.sma::ZapiszDane (line 1862)
L 06/27/2011 - 12:04:20: [AMXX]	[1] plugin.sma::client_disconnect (line 1075)
L 06/27/2011 - 12:04:34: [MySQL] Invalid info tuple handle: 1
L 06/27/2011 - 12:04:34: [AMXX] Displaying debug trace (plugin "plugin.amxx")
L 06/27/2011 - 12:04:34: [AMXX] Run time error 10: native error (native "SQL_ThreadQuery")
L 06/27/2011 - 12:04:34: [AMXX]	[0] plugin.sma::register_client (line 1896)

Zaraz podam kod do nich:

public MySql_Init()
{
// we tell the API that this is the information we want to connect to,
// just not yet. basically it's like storing it in global variables
g_SqlTuple = SQL_MakeDbTuple(Host,User,Pass,Db)

// ok, we're ready to connect
new ErrorCode,Handle:SqlConnection = SQL_Connect(g_SqlTuple,ErrorCode,g_Error,charsmax(g_Error))

new Handle:Queries
Queries = SQL_PrepareQuery(SqlConnection,"CREATE TABLE IF NOT EXISTS cod (nick varchar(32),klasa varchar(32), doswiadczenie INT(11), poziom INT(5), inteligencja INT(5), zdrowie INT(5), wytrzymalosc INT(5), kondycja INT(5))")


// close the handle
SQL_FreeHandle(Queries)

// you free everything with SQL_FreeHandle
SQL_FreeHandle(SqlConnection)  
}


Queries = SQL_PrepareQuery(SqlConnection,"CREATE TABLE IF NOT EXISTS cod (nick varchar(32),klasa varchar(32), doswiadczenie INT(11), poziom INT(5), inteligencja INT(5), zdrowie INT(5), wytrzymalosc INT(5), kondycja INT(5))")

public WczytajDane(id, klasa)
{
new szTemp[512];
new Data[1];

format(szTemp,charsmax(szTemp),"SELECT * FROM `cod` WHERE (`nick` = '%s' AND `klasa` = '%s')", nazwa_gracza[id], klasa_gracza[id]);
SQL_ThreadQuery(g_SqlTuple,"register_client",szTemp, Data, 1);
}

SQL_ThreadQuery(g_SqlTuple,"register_client",szTemp, Data, 1);

public Wybierzfrakcje_Handle(id, menu2, item)
{		  
if(item == MENU_EXIT)
{
menu_destroy(menu2);
return PLUGIN_CONTINUE;
}		  

item++;
frakcja_gracza[id] = item;
new menu = menu_create("Wybierz klase:", "WybierzKlase_Handle");
new klasa[50];
for(new i=1; i<sizeof nazwy_klas; i++)
{
if(nalezy_do[i] == item)
{
WczytajDane(id, i);
format(klasa, 49, "%s \yPoziom: %i", nazwy_klas[i], poziom_gracza[id]);
menu_additem(menu, klasa);
}
}

WczytajDane(id, klasa_gracza[id]);

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");
#if defined BOTY
if(is_user_bot(id))
WybierzKlase_Handle(id, menu, random(sizeof nazwy_klas-1));
#endif

return PLUGIN_CONTINUE;
}

WczytajDane(id, i);

public register_client(FailState,Handle:Query,Error[],Errcode,Data[],DataSize)
{
if(FailState == TQUERY_CONNECT_FAILED)
{
log_amx("Load - Could not connect to SQL database.  [%d] %s", Errcode, Error);
}
else if(FailState == TQUERY_QUERY_FAILED)
{
log_amx("Load Query failed. [%d] %s", Errcode, Error);
}

new id;
id = Data[0];
if(SQL_NumResults(Query) < 1)
{

new szTemp[512];

// now we will insturt the values into our table.
format(szTemp,charsmax(szTemp),"INSERT INTO `cod` ( `nick` , `klasa`, `doswiadczenie`, `poziom`, `inteligencja`, `wytrzymalosc`, `kondycja`, `zdrowie`)VALUES ('%s','%s', '0', '0', '0', '0', '0', '0');", nazwa_gracza[id], klasa_gracza[id]);
SQL_ThreadQuery(g_SqlTuple,"IgnoreHandle",szTemp);
}
else
{
// if there are results found
doswiadczenie_gracza[id] = SQL_ReadResult(Query,SQL_FieldNameToNum(Query,"doswiadczenie"))
poziom_gracza[id] = SQL_ReadResult(Query,SQL_FieldNameToNum(Query,"poziom"))
if(poziom_gracza[id]==0) poziom_gracza[id]=1
inteligencja_gracza[id] = SQL_ReadResult(Query,SQL_FieldNameToNum(Query,"inteligencja"))
zdrowie_gracza[id] = SQL_ReadResult(Query,SQL_FieldNameToNum(Query,"zdrowie"))
wytrzymalosc_gracza[id] = SQL_ReadResult(Query,SQL_FieldNameToNum(Query,"wytrzymalosc"))
kondycja_gracza[id] = SQL_ReadResult(Query,SQL_FieldNameToNum(Query,"kondycja"))
punkty_gracza[id] = (poziom_gracza[id]-1)*2-inteligencja_gracza[id]-zdrowie_gracza[id]-wytrzymalosc_gracza[id]-kondycja_gracza[id];
SQL_ReadResult(Query,SQL_FieldNameToNum(Query,"nick"), klasa_gracza[id], 31)
}

return PLUGIN_HANDLED;
}

SQL_ThreadQuery(g_SqlTuple,"IgnoreHandle",szTemp);

public ZapiszDane(id)
{
new szTemp[512];
format(szTemp,charsmax(szTemp),"UPDATE `cod` SET `klasa` = '%d', `nick` = '%s', `doswiadczenie` = '%i', `poziom` = '%i', `inteligencja` = '%i', `zdrowie` = '%i', `wytrzymalosc` = '%i', `kondycja` = '%i';",klasa_gracza[id], nazwa_gracza[id], doswiadczenie_gracza[id], poziom_gracza[id], inteligencja_gracza[id], zdrowie_gracza[id], wytrzymalosc_gracza[id], kondycja_gracza[id]);
SQL_ThreadQuery(g_SqlTuple,"IgnoreHandle",szTemp);
SQL_FreeHandle(g_SqlTuple);
}

SQL_ThreadQuery(g_SqlTuple,"IgnoreHandle",szTemp);

public client_disconnect(id)
{
UsunTask(id);
ZapiszDane(id);
UsunPrzedmiot(id);
SaveAktQuest(id, ePlayerQuestType[id]);
ResetQuest(id);
}

ZapiszDane(id);

Użytkownik MenTo(S) edytował ten post 18.06.2012 22:11

  • +
  • -
  • 0

#7 Gość_21977_*

  • Gość

Reputacja: 0

Offline

Napisano 18.06.2012 22:34

Wiadomość wygenerowana automatycznie


Ten temat został zamknięty przez moderatora.

Powód: Temat zamknięty na prośbę użytkownika.


Z pozdrowieniami,
Zespół AMXX.PL




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

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