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
Fix

[5.9l] Optymalizacja połączeń z bazą

Fix diablo optymalizacja wczytywanie klas baza

  • Nie możesz napisać tematu
  • Zaloguj się, aby dodać odpowiedź
43 odpowiedzi w tym temacie

#1 sebul

    Godlike

  • Przyjaciel

Reputacja: 2 035
Godlike

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

Napisano 29.10.2011 12:19

*
Popularny

Po dodaniu tego fixa do swojego moda, plugin będzie wysyłał o 1 zapytanie do bazy od gracza mniej, czyli przy 32 slotach, będzie to aż o 32 zapytań mniej, do tego nowym graczom nie będą się tworzyć od razu wszystkie klasy, no i ogólnie nowy kod jest czytelniejszy :D

FIX NIE WYMAGA RESETU LVLI I EXPA!

INSTRUKCJA
Spoiler


Polecam także wgranie tego fixa (już po wykonaniu fixa z tego tematu):
- http://amxx.pl/topic...wanie-sie-klas/
czyli szukamy
formatex(q_command, 511, "CREATE TABLE IF NOT EXISTS `%s` (`nick` VARCHAR(48), `ip` VARCHAR(32), `sid` VARCHAR(32), `klasa` INT(2), `lvl` INT(3) DEFAULT 1, `exp` INT(9) DEFAULT 0, `str` INT(3) DEFAULT 0, `int` INT(3) DEFAULT 0, `dex` INT(3) DEFAULT 0, `agi` INT(3) DEFAULT 0) DEFAULT CHARSET `utf8` COLLATE `utf8_general_ci`", g_sqlTable);

i zamieniamy na
new typ_primary[5];
switch(get_cvar_num("diablo_sql_save")) {
case 0: typ_primary = "nick";
case 1: typ_primary = "ip";
case 2: typ_primary = "sid";
default: typ_primary = "nick";
}
formatex(q_command, 511, "CREATE TABLE IF NOT EXISTS `%s` (`nick` VARCHAR(48), `ip` VARCHAR(32), `sid` VARCHAR(32), `klasa` INT(2), `lvl` INT(3) DEFAULT 1, `exp` INT(9) DEFAULT 0, `str` INT(3) DEFAULT 0, `int` INT(3) DEFAULT 0, `dex` INT(3) DEFAULT 0, `agi` INT(3) DEFAULT 0, PRIMARY KEY (`%s`, `klasa`)) DEFAULT CHARSET `utf8` COLLATE `utf8_general_ci`", g_sqlTable, typ_primary);


Jeśli chcesz pozbyć się niepotrzebnych wpisów z bazy, to wykonaj takie zapytanie (np. w phpMyAdmin)
DELETE FROM `nazwa_tabeli` WHERE `exp`='0'
Oczywiście zamiast nazwa_tabeli, wpisz swoją nazwę tabeli jaką masz w bazie.


Po dodaniu fixa nie dodawać:
- http://amxx.pl/topic...zie-nowy-gracz/
- http://amxx.pl/topic...resetu-exp-sql/ (także już nie potrzebne, po tym fixie wystarczy kolejno dodawać nowe klasy)
Jeśli ktoś się nie zna, nie powinien także dodawać:
- http://amxx.pl/topic...klas-nowe-menu/
- http://amxx.pl/topic...do-diablo-moda/

Proszę na razie nie wgrywać, kodu jest dużo, więc ciężko to tak za jednym razem ogarnąć, możliwe, że jeszcze o czymś zapomniałem, więc muszę to przetestować na czystym modzie. Oczywiście jeśli ktoś chce, może mi w tym pomóc ;]

Plik z instrukcją:
Załączony plik  instrukcja.txt   24,3 KB  326 Ilość pobrań

Użytkownik sebul edytował ten post 12.11.2011 11:02

  • +
  • -
  • 17

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


#2 Gh0st

    :)

  • Power User

Reputacja: 852
Czempion

  • Postów:920
  • GG:
  • Imię:Tomek
  • Lokalizacja:Rabka-Zdrój
Offline

Napisano 29.10.2011 12:20

32 zapytania to bardzo sporo :)
Jeżeli IP.B na tak zawansowany skrypt wykonuje ~8 zapytań na stronie głównej
  • +
  • -
  • 1

#3 sebul

    Godlike

  • Autor tematu
  • Przyjaciel

Reputacja: 2 035
Godlike

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

Napisano 29.10.2011 13:59

Instrukcja poprawiona i przetestowana na czystym modzie, więc powinno być już wszystko ok ;]
  • +
  • -
  • 0

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


#4 M@nkovsky

    Zaawansowany

  • Zbanowany

Reputacja: 57
Pomocny

  • Postów:110
  • GG:
  • Steam:steam
  • Imię:Mariusz
  • Lokalizacja:Poland
Offline

Napisano 29.10.2011 16:35

Czegoś takiego właśnie nam brakowało. Powiedz aby czy wymagany jest reset bazy do tego czy sie jakso pokryja

#5 sebul

    Godlike

  • Autor tematu
  • Przyjaciel

Reputacja: 2 035
Godlike

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

Napisano 29.10.2011 16:37

U siebie mam co prawda jeszcze trochę inną wersję, ale jest to praktycznie to samo i jakoś wszystko normalnie śmiga bez errorów, itp. Tylko jak ktoś ma jeszcze staty www do moda, to wtedy trzeba w paru miejscach trochę pliki edytować.

Użytkownik sebul edytował ten post 29.10.2011 16:38

  • +
  • -
  • 0

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


#6 M@nkovsky

    Zaawansowany

  • Zbanowany

Reputacja: 57
Pomocny

  • Postów:110
  • GG:
  • Steam:steam
  • Imię:Mariusz
  • Lokalizacja:Poland
Offline

Napisano 29.10.2011 16:40

ale jest to praktycznie to samo i

Rozumiem ,że resetu nie trzeba tak?

#7 sebul

    Godlike

  • Autor tematu
  • Przyjaciel

Reputacja: 2 035
Godlike

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

Napisano 29.10.2011 16:49

Tak, nie trzeba robić resetu, żeby móc dodać tego fixa do swojego moda.
  • +
  • -
  • 0

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


#8 KariiO

    Super Hero

  • Power User

Reputacja: 396
Wszechpomocny

  • Postów:1 133
  • GG:
  • Imię:Korneliusz
  • Lokalizacja:Cieszyn
Offline

Napisano 29.10.2011 17:53

Po wgraniu tego potrzeba przy dodaniu nowych klas robić reset sql ?
  • +
  • -
  • 0

#9 sebul

    Godlike

  • Autor tematu
  • Przyjaciel

Reputacja: 2 035
Godlike

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

Napisano 29.10.2011 18:15

Po dodaniu fixa nie dodawać:
- [Tutorial] Klasa gdy wejdzie nowy gracz - AMXX.pl: Support AMX Mod X
- [5.9l] Nowa klasa bez resetu exp (SQL) - AMXX.pl: Support AMX Mod X (także już nie potrzebne, po tym fixie wystarczy kolejno dodawać nowe klasy)

Czyli jak widać nie trzeba resetu, powinno wszystko normalnie działać.
  • +
  • -
  • 1

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


#10 DarkGL

    Nie oddam ciasteczka !

  • Administrator

Reputacja: 6 553
Godlike

  • Postów:11 976
  • GG:
  • Steam:steam
  • Imię:Rafał
  • Lokalizacja:Warszawa
Offline

Napisano 29.10.2011 18:27

za poradnik + ale da się to zrobić jeszcze lepiej wymaga to jednak dużo głębszej edycji moda
  • +
  • -
  • 0

#11 sebul

    Godlike

  • Autor tematu
  • Przyjaciel

Reputacja: 2 035
Godlike

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

Napisano 29.10.2011 19:37

No wiem, że na pewno się da to zrobić lepiej, ale akurat ja już tak dobrze tego nie ogarniam. U siebie wykorzystałem jeszcze w wczytywaniu get_gametime() i warunek, żeby sprawdzał aby nie było zbyt wiele zapytań w tym samym czasie, może niezbyt odpowiedni sposób do tego, ale tylko to mi przyszło do głowy ^ ^
  • +
  • -
  • 1

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


#12 Stachuu :D ??

    Wszechobecny

  • Użytkownik

Reputacja: 237
Wszechwidzący

  • Postów:476
  • GG:
  • Steam:steam
  • Imię:Dawid
  • Lokalizacja:Karsznice
Offline

Napisano 29.10.2011 19:50

a jak to zwiększa szybkość wczytywania sie klasy

np na xaa.pl

porównywalne choć po części z unixtrom ?
  • +
  • -
  • 0

#13 sebul

    Godlike

  • Autor tematu
  • Przyjaciel

Reputacja: 2 035
Godlike

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

Napisano 29.10.2011 19:53

Różnicę pewnie będzie widać gołym okiem, ale gwarancji nie daję.
  • +
  • -
  • 1

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


#14 ::Gogiel::

    Zaawansowany

  • Użytkownik

Reputacja: 18
Początkujący

  • Postów:77
  • GG:
  • Imię:Hm... xD Patryk xD
  • Lokalizacja:Bydgoszcz
Offline

Napisano 31.10.2011 17:07

WoW Sebul jak by to ując znacznie to przyspieszyło działanie ;)

Wielkie dzięki LECI +

A mimo, ze mam frakcje dałem radę :P

A i odpowiedź co do bazy na xaa.pl Fakt test odbył się tylko przy 3 graczach ale śmiga po 4 sekundach i ładuje poziomy bez probemów.
  • +
  • -
  • 0
Dołączona grafika
Dołączona grafika
Dołączona grafika
SERWER SA:MP 194.28.50.14:25064
Zapraszamy Do Gry http://cs-pobojowisko.eu

#15 M@nkovsky

    Zaawansowany

  • Zbanowany

Reputacja: 57
Pomocny

  • Postów:110
  • GG:
  • Steam:steam
  • Imię:Mariusz
  • Lokalizacja:Poland
Offline

Napisano 31.10.2011 18:19

Jak tu frakcje dodać?
tym sposobem co podałeś w temacie?

#16 sebul

    Godlike

  • Autor tematu
  • Przyjaciel

Reputacja: 2 035
Godlike

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

Napisano 02.11.2011 13:10

Do pierwszego postu dodałem zapytanie do bazy, które usunie nie potrzebne wpisy z bazy.
  • +
  • -
  • 1

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


#17 ::Gogiel::

    Zaawansowany

  • Użytkownik

Reputacja: 18
Początkujący

  • Postów:77
  • GG:
  • Imię:Hm... xD Patryk xD
  • Lokalizacja:Bydgoszcz
Offline

Napisano 02.11.2011 18:28

Sebul, jesteś wielki :)

Użytkownik ::Gogiel:: edytował ten post 02.11.2011 18:30

  • +
  • -
  • 0
Dołączona grafika
Dołączona grafika
Dołączona grafika
SERWER SA:MP 194.28.50.14:25064
Zapraszamy Do Gry http://cs-pobojowisko.eu

#18 Gh0st

    :)

  • Power User

Reputacja: 852
Czempion

  • Postów:920
  • GG:
  • Imię:Tomek
  • Lokalizacja:Rabka-Zdrój
Offline

Napisano 02.11.2011 18:44

Jeśli chcesz pozbyć się niepotrzebnych wpisów z bazy, to wykonaj takie zapytanie (np. w phpMyAdmin)


Jeżeli np gram na klasie mag , a na klasie palladyn mam 0 expa to jeżeli wykonam to zapytanie to usunie mi rekord związany z klasą palladyn. Ale po jakimś czasie chce znów grać na klasie palladyn. i nie będzie tej klasy w bazie a co za tym idzie klasa na serwerze nie będzie działać, czy dobrze mówie.
Czy raczej po wybraniu klasy ta klasa utworzy się sama
sebul (02.11.2011 23:19):
Tak na przyszłość używaj znaku zapytania do zadawania pytań ^^

  • +
  • -
  • 1

#19 sebul

    Godlike

  • Autor tematu
  • Przyjaciel

Reputacja: 2 035
Godlike

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

Napisano 02.11.2011 20:29

Przy wyborze klasy jest sprawdzane czy dana klasa jest w bazie, jeśli jej nie będzie, to ją utworzy.
  • +
  • -
  • 1

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


#20 Gh0st

    :)

  • Power User

Reputacja: 852
Czempion

  • Postów:920
  • GG:
  • Imię:Tomek
  • Lokalizacja:Rabka-Zdrój
Offline

Napisano 02.11.2011 20:38

Aha, czyli wszystko ok :)
  • +
  • -
  • 1





Również z jednym lub większą ilością słów kluczowych: Fix, diablo, optymalizacja, wczytywanie, klas, baza

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

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