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

[ROZWIĄZANE] Pytanie odnoścnie SQL Vault


Najlepsza odpowiedź GT Team , 17.04.2013 13:42

Trudno. Temat zamykam i uwazam za rozwiązany. Odp na temat: Lepiej używać SQL ( MySQL ) mając pod kontrolą wszystko niż "gotowe" SQLVault Przejdź do postu


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

#1 GT Team

    Ten lepszy xD

  • Zbanowany

Reputacja: 321
Wszechpomocny

  • Postów:1 435
  • GG:
  • Imię:Tomasz i Grzegorz
  • Lokalizacja:Wojkowice
Offline

Napisano 14.04.2013 18:51

Mam pytanie, czy jednocześnie do jednej bazy mogą być połączone 3 pluginy ? Czy te 3 pluginy mogą być połączone tylko z innymi tabelami ? Chodzi o to, że expmod.amxx laczy sie pierwszy i to pomyslnie natomiast expmod_mission i expmod_achievements nie mogą się połączyć choć są takie same dane oprócz tabeli

Nowa wersja Tower Defense 0.2 Alpha | Inne Mody -> Nowości

 


#2 GwynBleidD

    Godlike

  • Przyjaciel

Reputacja: 1 869
Godlike

  • Postów:3 066
  • Steam:steam
  • Lokalizacja:Przemyśl
Offline

Napisano 15.04.2013 03:57

Jeśli to jest baza MySQL, to może się do niej podłączyć na raz nawet i 200 pluginów * 200 serwerów, byleby serwer na którym ta baza stoi to wytrzymał :) Jakby MySQL nie miał takiej funkcjonalności to nie byłoby sensu tworzyć go jako serwera.

 

Jednak co możesz popełniać źle: otóż AMX może limitować ilość maksymalnych połączeń na raz, ale przecież nie potrzebujesz w pluginie non stop połączenia mieć otwartego. Nie potrzebujesz nawet go otwierać, gdy używasz ThreadQuery (sam sobie otworzy i zamknie, gdy potrzebuje). I proszę, nie myl tu "Tuple" z połączeniem. Tuple to tylko kontener przechowujący dane do połączenia!

 

Pokaż najlepiej kod, którym łączysz się z bazą.

 

Co do Twoich pluginów: jeśli korzystasz w nich z tej samej bazy, może rozważ przekazywanie tegoż tuple poprzez natyw lub forward z jednego pluginu do reszty. Wtedy zmiana danych będzie następowała tylko w jednym miejscu (lub ich odczyt, jeśli odczytujesz je z pliku konfiguracyjnego czy coś...).


  • +
  • -
  • 1

NIE pomagam na PW. Nie trudź się, na zlecenia nie odpiszę... Od pomagania jest forum.
NIE zaglądam w tematy wysłane na PW. Jeśli są na forum to prędzej czy później je przeczytam. Jeśli mam co w nich odpisać, to odpiszę.
 
1988650.png?theme=dark


#3 GT Team

    Ten lepszy xD

  • Autor tematu
  • Zbanowany

Reputacja: 321
Wszechpomocny

  • Postów:1 435
  • GG:
  • Imię:Tomasz i Grzegorz
  • Lokalizacja:Wojkowice
Offline

Napisano 15.04.2013 15:15

Po kolei:

Pierw odczytuje expmod.amxx : http://wklej.to/iYtKT

I Tutaj nie ma żadnych problemów...

Potem expmod_achievements.amxx : http://wklej.to/gNNxb

Tutaj wywala błąd, że nie można się połączyć.. ( to set_fail_state w plugin_init )

Następnie expmod_mission.amxx : http://wklej.to/ebqI6

Tutaj to samo, set_fail_state.

expmod.cfg
;Żeby komentować, wystarczy dać na POCZĄTKU LINII  ';' albo "//"
;===============================================;
			 DANE MYSQL
;===============================================
;ogólne
;Nazwa Hosta (np. db4free.net)
exp_sql_host "db4free.net"

;Nazwa uzytkownika (np. striker)
exp_sql_user "striker"

;Haslo (np. haslo123#$)
exp_sql_pass "Bla Blaadada"
;===============================================
; do silnika moda
;Baza Danych (np. expmodbystriker)
exp_sql_db "expmodbystriker"

;Tabela (np. expmod)
exp_sql_tabel "expmod"

;===============================================
; do misji
;Baza Danych (np. expmodbystriker)
exp_mission_sql_db "expmodbystriker"

;Tabela (np. expmod_mission)
exp_mission_sql_tabel "expmod_mission"

;===============================================
; do osiągnięć

;Baza Danych (np. expmodbystriker)
exp_ach_sql_db "expmodbystriker"

;Tabela (np. expmod_achievements)
exp_ach_sql_tabel "expmod_achievements"

Używam SQLVault

Użytkownik PaTrIcKx edytował ten post 15.04.2013 15:21

Nowa wersja Tower Defense 0.2 Alpha | Inne Mody -> Nowości

 


#4 GwynBleidD

    Godlike

  • Przyjaciel

Reputacja: 1 869
Godlike

  • Postów:3 066
  • Steam:steam
  • Lokalizacja:Przemyśl
Offline

Napisano 16.04.2013 14:57

Aaaa widzisz, sqlvault... to wiele wyjaśnia. Widać sama biblioteka sqlvaulta ma jakieś limity w tej kwestii. Zrób tak: w 1 pluginie utwórz sqlfile, a w następnych zamiast tworzenia i łączenia się, przekazuj poprzez natyw bądź forward ten sqlfile. W ten sposób będziesz mógł użyć go w kilku pluginach :) Najprościej będzie to zrobić przez forward (wywoływany zaraz po połączeniu).


  • +
  • -
  • 1

NIE pomagam na PW. Nie trudź się, na zlecenia nie odpiszę... Od pomagania jest forum.
NIE zaglądam w tematy wysłane na PW. Jeśli są na forum to prędzej czy później je przeczytam. Jeśli mam co w nich odpisać, to odpiszę.
 
1988650.png?theme=dark


#5 GT Team

    Ten lepszy xD

  • Autor tematu
  • Zbanowany

Reputacja: 321
Wszechpomocny

  • Postów:1 435
  • GG:
  • Imię:Tomasz i Grzegorz
  • Lokalizacja:Wojkowice
Offline

Napisano 16.04.2013 16:24

A jeszcze jedno pytanie. Bo do każdego plugina expmod misje i osiagniecia potrzebna jest inna tabela. Jak to zrobić ?

Edit:

Mogę też w kluczu w misji dać -mission po nicku ( klucz to nick gracza )
Lecz wolałbym tego uniknąć

Nowa wersja Tower Defense 0.2 Alpha | Inne Mody -> Nowości

 


#6 GwynBleidD

    Godlike

  • Przyjaciel

Reputacja: 1 869
Godlike

  • Postów:3 066
  • Steam:steam
  • Lokalizacja:Przemyśl
Offline

Napisano 17.04.2013 01:53

Problem chyba nawet nie leży w samym SQLVaulcie, ale w Twoim kodzie :) W 1szym pluginie wykonujesz load_sql_data, w 2 i 3cim już brakuje wykonania tej funkcji przed otwarciem SQLVaulta.

 

Nie myślałeś nad zastosowaniem zwykłego SQLa? SQLVault jest owszem przydatny, ale jeśli się zna podstawy SQL, można to lepiej dużo zrobić na SQLu.


  • +
  • -
  • 1

NIE pomagam na PW. Nie trudź się, na zlecenia nie odpiszę... Od pomagania jest forum.
NIE zaglądam w tematy wysłane na PW. Jeśli są na forum to prędzej czy później je przeczytam. Jeśli mam co w nich odpisać, to odpiszę.
 
1988650.png?theme=dark


#7 GT Team

    Ten lepszy xD

  • Autor tematu
  • Zbanowany

Reputacja: 321
Wszechpomocny

  • Postów:1 435
  • GG:
  • Imię:Tomasz i Grzegorz
  • Lokalizacja:Wojkowice
Offline

Napisano 17.04.2013 08:12

Właśnie w tym problem, że nie znam. Dla mnie to czarna magiaa ;P achievementy
public load_sql_data()
{
	new data[128], a[33], b[33], len
	for(new i; i < read_file(SCIEZKA_PLIKU, i, data, 127, len); i++)
	{
		parse(data, a, 32, b,32)
		if(equali(a, "exp_sql_host"))
		{
			remove_quotes(b)
			copy(szHost, 32, b)
		}
		if(equali(a, "exp_sql_user"))
		{
			remove_quotes(b)
			copy(szUser, 32, b)
		}
		if(equali(a, "exp_sql_pass"))
		{
			remove_quotes(b)
			copy(szPass, 32, b)
		}
		if(equali(a, "exp_ach_sql_db"))
		{
			remove_quotes(b)
			copy(szDb, 32, b)
		}
		if(equali(a, "exp_ach_ach_sql_tabel"))
		{
			remove_quotes(b)
			copy(szVaultName, 32, b)
		}
	}
}
misje
public load_sql_data()
{
	new data[128], a[33], b[33], len
	for(new i; i < read_file(SCIEZKA_PLIKU, i, data, 127, len); i++)
	{
		parse(data, a, 32, b,32)
		if(equali(a, "exp_sql_host"))
		{
			remove_quotes(b)
			copy(szHost, 32, b)
		}
		if(equali(a, "exp_sql_user"))
		{
			remove_quotes(b)
			copy(szUser, 32, b)
		}
		if(equali(a, "exp_sql_pass"))
		{
			remove_quotes(b)
			copy(szPass, 32, b)
		}
		if(equali(a, "exp_missions_sql_db"))
		{
			remove_quotes(b)
			copy(szDb, 32, b)
		}
		if(equali(a, "exp_missions_sql_tabel"))
		{
			remove_quotes(b)
			copy(szVaultName, 32, b)
		}
	}
}

Nowa wersja Tower Defense 0.2 Alpha | Inne Mody -> Nowości

 


#8 Misiaczek ;c

    /dev/null

  • Moderator

Reputacja: 1 678
Godlike

  • Postów:2 496
  • GG:
  • Steam:steam
  • Imię:Michał
  • Lokalizacja:Halemba
Offline

Napisano 17.04.2013 13:03

;===============================================
; do silnika moda
;Baza Danych (np. expmodbystriker)
exp_sql_db "expmodbystriker"

Mamy to więc po co nam to:
 

;===============================================
; do misji
;Baza Danych (np. expmodbystriker)
exp_mission_sql_db "expmodbystriker"


;===============================================
; do osiągnięć

;Baza Danych (np. expmodbystriker)
exp_ach_sql_db "expmodbystriker"


skoro uzywasz tej samej tabeli w wszystkich plikach

 

dodatkowo polecam ci zamiast używać SQLVault przejśc na zwykły sql, jest o wiele prostrszy ;] dodatkowo zrób sobie w głownym silniku uchwyt do sql,  i potem uchwytu uzywaj, zobacz sobie jak to w amxbansie jest zrobione :)


  • +
  • -
  • 1

#9 GT Team

    Ten lepszy xD

  • Autor tematu
  • Zbanowany

Reputacja: 321
Wszechpomocny

  • Postów:1 435
  • GG:
  • Imię:Tomasz i Grzegorz
  • Lokalizacja:Wojkowice
Offline

Napisano 17.04.2013 13:19

Eh.. Dla mnie sql jest trudny. Nie ma ani żadnego tutka ( jest tylko mysql, to chyba nie to ? ) więc nie mam jak go ogarnąć. patrzałem amxbans lecz wszystko jest w plikach .inl porozrzucane i pożal się Boże. Idzie się pogubić. Jednak po przejrzeniu tego i tak nic nie zrozumiałem.

Nowa wersja Tower Defense 0.2 Alpha | Inne Mody -> Nowości

 


#10 sebul

    Godlike

  • Przyjaciel

Reputacja: 2 035
Godlike

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

Napisano 17.04.2013 13:26

Eh.. Dla mnie sql jest trudny. Nie ma ani żadnego tutka ( jest tylko mysql, to chyba nie to ? ) więc nie mam jak go ogarnąć. patrzałem amxbans lecz wszystko jest w plikach .inl porozrzucane i pożal się Boże. Idzie się pogubić. Jednak po przejrzeniu tego i tak nic nie zrozumiałem.

Akurat tutaj nie ma różnicy czy to mysql, czy sql, czyli możesz już czytać ten tutek o mysql i wykorzystać to do swoich pluginów.

  • +
  • -
  • 2

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


#11 GT Team

    Ten lepszy xD

  • Autor tematu
  • Zbanowany

Reputacja: 321
Wszechpomocny

  • Postów:1 435
  • GG:
  • Imię:Tomasz i Grzegorz
  • Lokalizacja:Wojkowice
Offline

Napisano 17.04.2013 13:42   Najlepsza odpowiedź

Trudno. Temat zamykam i uwazam za rozwiązany. Odp na temat: Lepiej używać SQL ( MySQL ) mając pod kontrolą wszystko niż "gotowe" SQLVault

Nowa wersja Tower Defense 0.2 Alpha | Inne Mody -> Nowości

 





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

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