Jump to content

Search the Community

Showing results for tags 'inne' in content posted in C++ / Python / Server.



More search options

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type


Forums

  • Forum board
    • M2Zone.tech
  • Strefa gracza
    • Server presentations
    • Discussions, Questions and Problems
  • Create private server
    • Pytania i Problemy - bez logowania
    • Problems and Questions
    • Cooperation
    • Tutorials / Video
    • C++ / Python / Server
    • Sources / Serverfiles / Clients
    • Homepage / Board
    • Quests
    • 2D Graphics
    • 3D Graphics
    • Recycling
  • Marketplace
    • Rynek - (Kupię, Sprzedam, Zamienię i Zlecę)
    • Archiwum
  • Hydepark
    • About all
    • Introduce yourself
    • My Creativity / Media
  • Others
    • Blokady i Ostrzeżenia
    • Trash

Categories

  • Programs
  • Plechito.com
    • Events
    • Maps
    • Mounts
    • Equipments
    • Monsters
    • NPC

Find results in...

Find results that contain...


Date Created

  • Start

    End


Last Updated

  • Start

    End


Filter by number of...

Joined

  • Start

    End


Group


Sex


Country


Facebook


Discord


Telegram


Gadu-Gadu

Found 29 results

  1. Cześć, właśnie mam kilka błędów w syserr typu: SYSERR: Aug 13 15:22:43 :: LoadMotion: cannot find accumulation data in file 'data/monster/spider_spawn/wait.msa' Mob niestety nie ma ruchu ponieważ jest "metinem", nawet gdy damy accumulation 0 0 0 to nie zadziała. Sprawdziłem kod gry: static void LoadMotion(CMotionSet *pMotionSet, TMobTable *mob_table, EPublicMotion motion) { const char *cpFileName = GetMotionFileName(mob_table, motion); if (cpFileName == NULL) { return; } CMotion *pMotion = M2_NEW CMotion; if (pMotion->LoadFromFile(cpFileName) == true) { if (motion == MOTION_RUN) if (0.0f == pMotion->GetAccumVector().y) sys_err("cannot find accumulation data in file '%s'", cpFileName); pMotionSet->Insert(MAKE_MOTION_KEY(MOTION_MODE_GENERAL, motion), pMotion); } else { M2_DELETE(pMotion); sys_err("Motion: Load failed vnum(%d) motion(%d) file(%s)", mob_table->dwVnum, motion, cpFileName); } } (Jeżeli ktoś ma inny to może sobie skopiować) Jeżeli w motion.txt jest "GENERAL RUN" to używa accumulation GENERAL SPAWN wait.msa 100 GENERAL WAIT wait.msa 100 GENERAL RUN wait.msa 100 GENERAL NORMAL_ATTACK wait.msa 100 GENERAL FRONT_DAMAGE wait.msa 100 GENERAL FRONT_DEAD dead.msa 100 GENERAL FRONT_KNOCKDOWN wait.msa 100 GENERAL FRONT_STANDUP wait.msa 100 GENERAL BACK_DAMAGE wait.msa 100 GENERAL BACK_KNOCKDOWN wait.msa 100 GENERAL BACK_STANDUP wait.msa 100 GENERAL BACK_DEAD dead.msa 100 Należy skasować z niego "GENERAL RUN wait.msa 100" i pozbyliśmy się błędu. Jeżeli mob nie jest metinem to wystarczy załadować pliki w Granny Viewer i wygenerować accumulation i zapisać go do pliku który wywalił nam błąd (W przypadku wyżej jest to wait.msa) Zwykle jest to run.sma a przykład poprawnego pliku to: ScriptType MotionData MotionFileName "D:\ymir work\monster\plechi_demon_wretch\run.GR2" MotionDuration 0.900000 Accumulation 0 -521.478210 0 [Hidden Content] [Hidden Content] 41829-grannyviewer.zip gr2v_2.11.rar
  2. Witam, kiedyś napisałem ten system na zlecenie, nie używam, ponieważ nie interesują mnie serwery easy. Może komuś się przyda. Na czym to polega? Za bryłki/yang aktywujesz dany bonus na 24h. BonusyCzasowe.rar
  3. Poprawki: 1. Nazwa przedmiotu przy sprzedaży 2. Flood Gildia 3. Blokada wyrzucania Yang 4. Wyłączenie Yang Bomby 5. Różne poprawki do Source 6. Blokada masowego wyrzucania przedmiotów 7. Naprawa komendy (/shutdown) 8. Naprawa Zwoja Boga Smoków 9. Zakładanie kostiumu na przedmiot ślubny 10. Naprawa QuestFlag 11. Poprawne podświetlanie atrybutów 12. Blokada KD/Bonus/Strzały/6i7 13. Aktualizacja levela przy nicku 14. Błędy z HP 15. Dwie poprawki Shop Deco 16. Naprawa wybierania postaci 17. Naprawa bonusow w Petach 18. Zabezpieczenie przeszukiwania shopów m2bob 19. Naprawa funkcji "When Kill" 20. Naprawa NNO / Naprawa NNO2 21. Naprawa CUBE (Bonusy) 22. Blokada wkładania Kamienia Duchowego 23. MessegerAuth 24. Blokada wykrywania GM i wizualnych itemów 25. Poprawne dodawanie affectu Atak Boga Smoków 26. Atak SQLi 27. Naprawa Bicia z Wierzchowców 28. Naprawa type 33 (ITEM_RING) 29. Naprawa Efektu Flary Obiektywu 30. Zmiana czytania item i mob proto z TXT -> Navi (starsze kompilatory) 31. Powrót do odczytywania item/mob_proto z bazy danych (DB NOTXT!) (nowsze kompilatory) 32. Naprawa błędu z obserwatorem na wojnie 33. Naprawa Czarowanego Ostrza 34. Naprawa Mikstur Szybkości 35. Usunięcie blokady ulepszania kamieni dusz 36. Naprawa odświeżania statystyk postaci i ekwipunku 37. Naprawa mysql_query error column name in field list is ambiguous 38. Naprawa ikony wyświetlanej w Quest 39. Naprawa błędu z pieczęcią i pełnym ekwipunkiem ( System Wierzchowców ) 40. Blokada przedmiotów na danej mapie 41. Naprawa czccionki GM w (Szept) 42. Naprawa Affectów 43. Naprawa Systemu Cube 44. Naprawa błędu z odświeżaniem dźwięku 45. Naprawa limitu nazewnictwa postaci 46. Naprawa Indexu Map 47. Naprawa błędu z kupnem w Tobole 48. Naprawa Textury 49. Naprawa odejmowania punktów rangi w party 50. Aura Miecza i Czarowane Ostrze nie znika po teleporcie 51. Wylogowanie po zmianie królestwa 52. Blokada szybkiego używania przedmiotów 53. Naprawa komunikatu z listy przyjaciół oraz realny czas 54. ghost hack pickup fix 55. Poprawka usuwania gildii podczas trwania wojny 56. Wykorzystywanie gildii na mobach/npc (coredowner) 57. Poprawka AutoGiveItem 58. Poprawa funkcji npc_get_leader_vid (coredowner) 59. Poprawka umiejętności Strzelający Smok 60. Fix invizibilitate & AFFECT_EUNHYEONG (Krycie Się) 61. d.count_monster - Mała poprawka 62. Safebox Memory Leak Fix 63. Zmiana dla ataków zasięgowych 64. Proto Converter Error "TypeError: cannot concatenate 'str' and 'NoneType' objects"a 65. Sklepy Ken wizualny błąd 66. Naprawa punktów konnych 67. Fix - first argument is bigger than second argument 68. Poprawa okna Cube 69. Wyłączenie "Musisz odczekać 1 dzień zanim założysz/dołączysz do gildii" 70. Kick członków gildii podczas trwania wojny - fix Systemy: 1. System Target HP 2. Zniesienie Limitu Yang 3. Event Rybacki 4. Swap System 5. System Aura 6. System Petów 7. System Likan 9. System Alchemii i Energi 10. System PO + SKLEP 11. System Sklepów Offline 12. System Wierzchowców 13. System Mailbox 14. ItemShop w grze 15. Runy z LoLa 16. System Kołczanów 17. ShingSystem (Świecenie) 18. Mainstance System (Przerwa Techniczna) 19. Won System 20. Team System 21. Manager Ticket System 22. System ogłoszeń ulepszeń 23. Sklep Polimorfia 24. System Kostiumów Broni 25. System Dekoracji Sklepów / System Dekoracji Sklepów2 26. System TOP Damage 27. System OX Manager 28. System HighLight 29. System Tytułów 30. Podświetlanie Itemów Niezdatnych do Handlu 31. Zaawansowany system pojedynków 32. System zapisywania lokalizacji 33. Pet Slot system 34. Gaya System 35. StatTrack do broni Kostiumowej 36. Admin Tool Ban 37. Event Rybacki - Puzzle 38. RenderTarget 39. Nowe zwoje teleportacji 40. Nowy wykrywacz metinów i bossów 41. Nowe dopalacze 42. Achievementsystem v1.1 ~ Shang 43. ItemShop v1.2 ~ Shang 44. Ticketsystem v1.2  - Shang 45. Dungeon Info system 46. Emotikony na czacie 47. Keyboard Settings (Official Webzen 16.0) 48. Wymiana KU 49. Blokada Ekwipunku 50. Turniej PVP 51. System Teleportacji 52. Emotikony w prywatnych wiadomościach i na czacie 53. Opcja powrotu na dungeon 54. Kowalstwo 55. Dekoracje/Wyszukiwarka/Sklepy Offline 56. Otwieranie skrzyń (cracking) 57. Nowa postać - ELF 58. System Petów 59. Szarfy by LennT 60. System Petów jak z PL'a! 61. System transmutacji 62. Ingame VIP Boxes 63. System strefy walki (oficjalny Webzen 16.4) 64. System Biologa 65. System Efektów 66. Professional Biolog System 67. System Kolorowania Skilli + BattlePass 68. Specjalne zapasy magazynowe 69. Dom aukcyjny 70. Ulepszony AntyExp bez wykorzystania questa 71. Extra Refine System 82. Mob_scale - Zmień rozmiar swojego MOBA Dodatki: 1. Ulepszony Sysser 2. Nowe funkcję Questowe + Tutorial 3. Biolog GUI 4. Blokada czatu OX 5. Usunięcie podatku 3% w sklepie 6. Wyłączenie Paska Belt 7. Animowany Pasek HP 8. Intrologo na początku gry 9. Nowe funkcje w config (SF) 10. Rozszerzony config 11. Nowe opcje grafiki (Klient) 12. Zmiana ładowania gry 13. Efekt użycia peleryny męstwa 14. Zmiana wymaganej ilości KU do G1 15. Dodatek do systemu WON = Wymiana Yang/Won - Won/Yang 16. Zapisywanie Danych do Konta 17. Animownie logo i tło logowania 18. Ustawienie kamery 19. Czytanie tabeli EXP z bazy danych 20. Przedłużenie czasu kostiumów 21. IS+DEPO w jednym miejscu 22. Funkcja od świecenia kostiumów 23. Wybór fryzury podczas tworzenia postaci 24. Bryłka Yang 25. Zegarek pod minimapą 26. Oznaczenie dropu 27. Jednokrotne wpisanie hasła do magazynu 28. Startowa Szybkość Ruchu i Ataku 29. Itemy Buffujące 30. Zwiększanie statusów na serwerze 31. GUI Misji 32. Zwiekszenie limitu nazwy przedmiotów 33. Cooldown otwieranie skrzyń 34. SwitchBot 35. Przyśpieszenie wyświetlania tekstu 36. Admin Prefix 37. Aktualizacja Python i Granny 38. Kolor Yang w zależności od ich ilości 39. Zwiększenie MAX Levela 40. Nieskończone Przedmioty 41. Podświetlanie MAX Bonusów 42. Różne dodatki ( Szansa KD itp.) 43. Dodawanie dowolnej ilości statystyk 44. Ukrywanie Mountów, Petów itp. 45. Kolorowy opis przedmiotu 46. Aktywacja sprawdzania wersji klienta 47. Zamiana potworów w dzikie psy 48. Wyrzucenie nie potrzebnych tabeli expa 49. Sprawdzanie wersji klienta przy logowaniu 50. Profesjonalny QUEST na DROP 51. Kolorowe nazwy mobów w zależności od poziomu 52. Przeładowanie mob_drop_item komendą 53. Blokada wyrzucania przedmiotów na OX 54. Przycisk pokazujący FPS 55. Nowy Notice bar (Zodiak) 56. Efekt aktywnego peta 57. Nowy wygląd okna yang 58. Odświeżanie yangów 59. Tab Targeting 60. Bonusy za punkty rangi 61. Bonusy ryb 62. CCACHE 63. Przenikanie przez Potwory/NPC 64. Zmiana limitu punktów rangi 65. Poprawa jakości screenshotów z gry 66. Informacje o możliwościach przedmiotu 67. Rosy wyświetlane przy Affectach 68. Zmodyfikowane okno ulepszania (Ilość posiadanych przedmiotów, szansa na pomyślne ulepszenie i opis przedmiotu) 79. Aktywacja 6/7 bon 70. System wiadomości offline 71. Panel Boczny + Funkcje 72. Teleportacja do znajomych 73. Ukrywanie garderoby 74. Sortowanie ekwipunku 75. Tworzenie grup (PW) w grze 76. Nowe locale_string.txt 77. Ulepszona Bryła Złota 78. K na zamiast 000 79. Dodatkowe informacje przy ulepszaniu 80. Zapisywanie cen w shopie 81. Brak spalonego slotu podczas dodawania KD 82. Dodatkowy opis przedmiotu 83. Integracja własnego serwera Metin2 z statusem Discorda! 84. introLogo (Video) 85. Poprawka komendy /ip 86. ServerInfo w Bince 87. Automatyczne łączenie przedmiotów przy otwieraniu szkat 88. Rozdzielanie wszystkich przedmiotów 89. Kolorowanie Text 90. Stałe Affecty w quescie 91. Multi TextLine - Python 92. Wyświetlanie nazwy absorbowanego przedmiotu w szarfach 93. Cache wiadomości chatu 94. Cache prywatnych wiadomości 95. Informacja o zalogowanym przyjacielu 96. Własny zestaw bonusów, dodanie i zmianka do nowego przedmiotu 97. Dodanie twarzy do kradzionych rzeczy z Pangeya 98. Wybór skilli w gui 99. System Target HP+Poison effect 100. Atakujące Pety 101. Level mob 102. Instant Pickup 103. Kissing player with same sex! 104. Auto Event 105. Instant Pickup 106. Czasowe zmianki 107. Podgląd bonusów w Wierzchowcach, PPK i innych przedmiotach 108. Ręczny BonusSwitcher 109. Obsługa formatu PNG w cliencie 110. Zmiana kluczy (lzo) + xtea keys generator 111. Funkcja usuwająca tylko jeden przedmiot w queście 112. Szybkie otwieranie skrzyń 113. Ukrywanie kluczy (lzo) + xtea keys 114. Ukrywanie kluczy xtea 115. Porady podczas ładowania 116. Kolor ulepszaczy cube 117. Nowy format yang w ekwipunku 118. Okno statystyk/osiągnięć postaci 119. New Switchbot by Sanii 120. Szkolenie kamienie duchowe 121. Przerobiona komenda /item 122. Wikipedia Dropu 123. Grafika w przedmiocie 124. Usunięcie miniatur fryzurek 125. Widoczność GM'a przy inv 126. Zmiana limitu punktów i dodawanie kolejnych poziomów rangi 127. Nowe emocje - Selfie, Pompki itp. 128. Funkcja mob_drop_item uwzględniająca index mapy Antycheaty: 1. Blokada KickHack 2. Ulepszona komenda /dc (sposób na autologiny) 3. Blokada teleportacji za pomocą moda 4. Limiter 5. Fix DMG Hack by SVSIDE 6. Anty M2BOB 7. DazyShield (Antycheat) with Source 8. Antycheat 9. Dynamic python module names 10. Blokowanie generowanej nazwy procesu & AntyDebugger - Antycheat 11. HWID Ban Source: 1. FoxFS/CCC Archiver v2.5 Source 2. Source EterManager
  4. Cześć, Zachciało mi się do tego usiąść i przekonwertowałem wam najnowsze globalne item_proto i mob_proto na wersję txt i sql. Proto zawierają każdy globalny item/moba wraz z ich parametrami. Postanowiłem usunąć nowe kolumny (masktype etc.), ponieważ wy w swoich proto i tak ich nie macie. Wyzerowałem również każdy nowy flag, type i stype żebyście mogli przepuścić te proto przez wasze dumproto. Wersja TXT & SQL Proto_Metin2Zone.pl.zip Dodatkowo przekonwertowałem wam najświeższe locale_string.txt i tłumaczenie questów locale_string.txt translate.lua Na koniec łapcie jeszcze najświeższe tłumaczenie z locale_pl locale.zip
  5. Witam, wrzucę wam moje bazgroły, ich cel w systemie linuxowym to: Po pierwsze podstawowy general hardening w wersji soft. Po drugie optymalizacja jądra systemu, żeby nie panikowało i nie dawało jednocześnie dupy w momencie ataku. Po trzecie polityki dla iptables i nftables ograniczające mocno im pakt ataków. Jak jest tu jakiś BSD master, to wyciągnie z tego wnioski i przerobi pod system BSD. Jeśli nie jesteś BSD masta, to możesz poczytać trochę o routingu i postawić sobie linuxowy serwer reverse proxy, który będzie pośredniczył pomiędzy klientem, a Twoim BSD'kiem, pełniąc funkcje jako takiego "firewall'a". Jak zrobi się na prawdę gorąco, to zmieniasz sobie porty i resetujesz serwer, gracze się aktualizują patcherem, a na starych portach stawiasz pułapkę - wycinasz cały ruch który na nie pójdzie (proste, logiczne i skuteczne) - większość tych Alojzów DDoS Masta nie robi rechecka portów, bo im poziom IQ na to nie pozwala, więc ładują się prosto z blackhole wszystkimi swoimi maszynkami z botnetu, czy tam jakiegoś stressera dla totalnych ameb umysłowych. Jakiego linuxa pod to polecam? Light Debian wystarczy. Zagadka: Co się stanie z switch'em działającym w L3, obsługującym routing w momencie jak zapcha się jego tablice ARP? 1. Soft Hardening: 1.1 Zaktualizuj sobie Debiana pod kątem zabezpieczeń (najlepiej rób to co parę dni, w czasie kiedy twój główny BSD jest offline, po prostu przy okazji, automatyzować nie polecam, to ma być rutyna). grep security /etc/apt/sources.list | tee /etc/apt/security.sources.list apt-get update apt-get upgrade -o Dir::Etc::SourceList=/etc/apt/security.sources.list reboot 1.2 Stwórz sobie konto z niskimi uprawnieniami i zablokuj konto ROOT. sudo adduser NAZWAUŻYTKOWNIKA sudo usermod -aG sudo NAZWAUŻYTKOWNIKA su NAZWAUŻYTKOWNIKA Otwórz [/etc/passwd] Zmień -> root:x:0:0:root:/root:/bin/bash Na -> root:x:0:0:root:/root:/sbin/nologin 1.3 Ustaw ogranicznik logowania na konto (po 5 failach blokada na 1 godzinę). Otwórz [/etc/pam.d/system-auth] Edytuj Sekcje Auth auth required pam_env.so auth required pam_faillock.so preauth silent audit deny=5 unlock_time=3600 auth sufficient pam_fprintd.so auth sufficient pam_unix.so nullok try_first_pass auth [default=die] pam_faillock.so authfail audit deny=5 unlock_time=3600 auth requisite pam_succeed_if.so uid >= 1000 quiet auth required pam_deny.so Edytuj Sekcje Account account required pam_unix.so account sufficient pam_localuser.so account sufficient pam_succeed_if.so uid < 500 quiet account required pam_permit.so account required pam_faillock.so Otwórz [/etc/pam.d/password-auth] Powtórz edycje sekcji tak jak w poprzednim pliku 1.4 Wyłącz trwale wszystkie usługi, które uznasz za zbędne (wujek google Ci powie jak, ja polecam na 100% wyłączyć: Telnet, RSH, NIS, TFTP and TALK). service --status-all 1.5 Zablokuj wszystkie nieużywane porty przy pomocy UFW (najpierw ogarnij obsługę net tools). sudo apt-get install net-tools Instrukcja - [Hidden Content] sudo apt-get install ufw Instrukcja - [Hidden Content] 2. To co kotki lubią najbardziej, a raczej się tego obawiają, czyli prewencja (+90% odporności na Alojzów): 2.1 Ślepy nic nie zdziałasz (musisz ogarniać ile pakietów Ci wpada i gdzie, więc instaluj bez żadnego ziewania network monitor). sudo apt-get install iptraf -y iptraf Instrukcja - [Hidden Content] 2.2 Modyfikacja i optymalizacja jądra systemu (kernel). Otwórz [/etc/sysctl.conf] Wklej -> kernel.printk = 4 4 1 7 kernel.panic = 10 kernel.randomize_va_space=2 kernel.core_uses_pid = 1 kernel.sysrq = 0 kernel.shmmax = 4294967296 kernel.shmall = 4194304 kernel.core_uses_pid = 1 kernel.msgmnb = 65536 kernel.msgmax = 65536 vm.swappiness = 20 fs.protected_hardlinks=1 fs.protected_symlinks=1 vm.dirty_ratio = 80 vm.dirty_background_ratio = 5 fs.file-max = 2097152 net.core.netdev_max_backlog = 262144 net.core.rmem_default = 31457280 net.core.wmem_max = 67108864 net.core.somaxconn = 65535 net.core.rmem_max = 67108864 net.core.wmem_default = 31457280 net.core.optmem_max = 25165824 net.ipv4.neigh.default.gc_thresh1 = 4096 net.ipv4.neigh.default.gc_thresh2 = 8192 net.ipv4.neigh.default.gc_thresh3 = 16384 net.ipv4.neigh.default.gc_interval = 5 net.ipv4.neigh.default.gc_stale_time = 120 net.netfilter.nf_conntrack_max = 10000000 net.netfilter.nf_conntrack_tcp_loose = 0 net.netfilter.nf_conntrack_tcp_timeout_close_wait = 10 net.netfilter.nf_conntrack_tcp_timeout_fin_wait = 20 net.netfilter.nf_conntrack_tcp_timeout_established = 1800 net.netfilter.nf_conntrack_tcp_timeout_close = 10 net.netfilter.nf_conntrack_tcp_timeout_last_ack = 20 net.netfilter.nf_conntrack_tcp_timeout_syn_recv = 20 net.netfilter.nf_conntrack_tcp_timeout_syn_sent = 20 net.netfilter.nf_conntrack_tcp_timeout_time_wait = 10 net.ipv4.tcp_slow_start_after_idle = 0 net.ipv4.ip_local_port_range = 1024 65000 net.ipv4.ip_no_pmtu_disc = 1 net.ipv4.route.flush = 1 net.ipv4.route.max_size = 8048576 net.ipv4.icmp_echo_ignore_broadcasts = 1 net.ipv4.icmp_ignore_bogus_error_responses = 1 net.ipv4.tcp_congestion_control = htcp net.ipv4.tcp_mem = 65536 131072 262144 net.ipv4.udp_mem = 65536 131072 262144 net.ipv4.tcp_rmem = 4096 87380 33554432 net.ipv4.udp_rmem_min = 16384 net.ipv4.tcp_wmem = 4096 87380 33554432 net.ipv4.udp_wmem_min = 16384 net.ipv4.tcp_max_tw_buckets = 1440000 net.ipv4.tcp_tw_recycle = 0 net.ipv4.tcp_tw_reuse = 1 net.ipv4.tcp_max_orphans = 400000 net.ipv4.tcp_window_scaling = 1 net.ipv4.tcp_rfc1337 = 1 net.ipv4.tcp_syncookies = 1 net.ipv4.tcp_synack_retries = 1 net.ipv4.tcp_syn_retries = 2 net.ipv4.tcp_max_syn_backlog = 16384 net.ipv4.tcp_timestamps = 1 net.ipv4.tcp_sack = 1 net.ipv4.tcp_ecn = 2net.ipv4.tcp_fack = 1 net.ipv4.tcp_fin_timeout = 10 net.ipv4.tcp_keepalive_time = 600 net.ipv4.tcp_keepalive_intvl = 60 net.ipv4.tcp_keepalive_probes = 10 net.ipv4.tcp_no_metrics_save = 1 net.ipv4.ip_forward = 0 net.ipv4.conf.all.accept_redirects = 0 net.ipv4.conf.all.send_redirects = 0 net.ipv4.conf.all.accept_source_route = 0 net.ipv4.conf.all.rp_filter = 1 2.3 Konfiguracja iptables (persistent, żebyś nie musiał za każdym razem uzupełniać po restarcie jak jakiś ziemniak). sudo apt-get install iptables-persistent Otwórz [/etc/iptables/rules.v6] Wklej -> *filter :INPUT DROP [0:0] :FORWARD DROP [0:0] :OUTPUT DROP [0:0] COMMIT *raw :PREROUTING DROP [0:0] :OUTPUT DROP [0:0] COMMIT *nat :PREROUTING DROP [0:0] :INPUT DROP [0:0] :OUTPUT DROP [0:0] :POSTROUTING DROP [0:0] COMMIT *security :INPUT DROP [0:0] :FORWARD DROP [0:0] :OUTPUT DROP [0:0] COMMIT *mangle :PREROUTING DROP [0:0] :INPUT DROP [0:0] :FORWARD DROP [0:0] :OUTPUT DROP [0:0] :POSTROUTING DROP [0:0] COMMIT sudo service iptables-persistent reload Klep bezpośrednio w terminal -> iptables-persistent -t mangle -A PREROUTING -m conntrack --ctstate INVALID -j DROP iptables-persistent -t mangle -A PREROUTING -p tcp ! --syn -m conntrack --ctstate NEW -j DROP iptables-persistent -t mangle -A PREROUTING -p tcp -m conntrack --ctstate NEW -m tcpmss ! --mss 536:65535 -j DROP iptables-persistent -t mangle -A PREROUTING -p tcp --tcp-flags FIN,SYN,RST,PSH,ACK,URG NONE -j DROP iptables-persistent -t mangle -A PREROUTING -p tcp --tcp-flags FIN,SYN FIN,SYN -j DROP iptables-persistent -t mangle -A PREROUTING -p tcp --tcp-flags SYN,RST SYN,RST -j DROP iptables-persistent -t mangle -A PREROUTING -p tcp --tcp-flags FIN,RST FIN,RST -j DROP iptables-persistent -t mangle -A PREROUTING -p tcp --tcp-flags FIN,ACK FIN -j DROP iptables-persistent -t mangle -A PREROUTING -p tcp --tcp-flags ACK,URG URG -j DROP iptables-persistent -t mangle -A PREROUTING -p tcp --tcp-flags ACK,FIN FIN -j DROP iptables-persistent -t mangle -A PREROUTING -p tcp --tcp-flags ACK,PSH PSH -j DROP iptables-persistent -t mangle -A PREROUTING -p tcp --tcp-flags ALL ALL -j DROP iptables-persistent -t mangle -A PREROUTING -p tcp --tcp-flags ALL NONE -j DROP iptables-persistent -t mangle -A PREROUTING -p tcp --tcp-flags ALL FIN,PSH,URG -j DROP iptables-persistent -t mangle -A PREROUTING -p tcp --tcp-flags ALL SYN,FIN,PSH,URG -j DROP iptables-persistent -t mangle -A PREROUTING -p tcp --tcp-flags ALL SYN,RST,ACK,FIN,URG -j DROP iptables-persistent -t mangle -A PREROUTING -s 224.0.0.0/3 -j DROP iptables-persistent -t mangle -A PREROUTING -s 169.254.0.0/16 -j DROP iptables-persistent -t mangle -A PREROUTING -s 172.16.0.0/12 -j DROP iptables-persistent -t mangle -A PREROUTING -s 192.0.2.0/24 -j DROP iptables-persistent -t mangle -A PREROUTING -s 192.168.0.0/16 -j DROP iptables-persistent -t mangle -A PREROUTING -s 10.0.0.0/8 -j DROP iptables-persistent -t mangle -A PREROUTING -s 0.0.0.0/8 -j DROP iptables-persistent -t mangle -A PREROUTING -s 240.0.0.0/5 -j DROP iptables-persistent -t mangle -A PREROUTING -s 127.0.0.0/8 ! -i lo -j DROP iptables-persistent -t mangle -A PREROUTING -f -j DROP iptables-persistent -A INPUT -p tcp -m connlimit --connlimit-above 111 -j REJECT --reject-with tcp-reset iptables-persistent -A INPUT -p tcp --tcp-flags RST RST -m limit --limit 2/s --limit-burst 2 -j ACCEPT iptables-persistent -A INPUT -p tcp --tcp-flags RST RST -j DROP iptables-persistent -A INPUT -p tcp -m conntrack --ctstate NEW -m limit --limit 60/s --limit-burst 20 -j ACCEPT iptables-persistent -A INPUT -p tcp -m conntrack --ctstate NEW -j DROP iptables-persistent -A INPUT -p tcp --dport ssh -m conntrack --ctstate NEW -m recent --set iptables-persistent -A INPUT -p tcp --dport ssh -m conntrack --ctstate NEW -m recent --update --seconds 60 --hitcount 10 -j DROP iptables-persistent -N port-scanning iptables-persistent -A port-scanning -p tcp --tcp-flags SYN,ACK,FIN,RST RST -m limit --limit 1/s --limit-burst 2 -j RETURN iptables-persistent -A port-scanning -j DROP sudo service iptables-persistent reload sudo /etc/init.d/iptables-persistent save sudo /etc/init.d/iptables-persistent reload sudo netfilter-persistent save sudo netfilter-persistent reload sudo invoke-rc.d iptables-persistent save 2.4 Konfiguracja nftables (pomyślisz, "co to za pierdolec, przecież nf to następca" - a ja Ci powiem, że trzeba działać hybrydowo, bo w jednym brakuje czegoś co jest w drugim i tak vice versa). Klep bezpośrednio w terminal, ale się skup, bo tam trzeba uzupełnić interfejs -> sudo apt-get install nftables sudo apt-get install iptables-nftables-compat systemctl enable nftables create table netdev traffic-control create chain netdev traffic-control INGRESS { type filter hook ingress device NAZWATWOJEGOINTERFEJSASIECIOWEGO priority 0; policy accept; } create chain netdev traffic-control chain-tcp create chain netdev traffic-control chain-icmp add rule netdev traffic-control INGRESS iif !="lo" ip protocol vmap { tcp:jump chain-tcp, icmp:jump chain-icmp } add set netdev traffic-control meter-tcp { type ipv4_addr; flags dynamic; timeout 60s; size 192000; } add rule netdev traffic-control chain-tcp meta l4proto tcp tcp flags & (fin|syn|rst|ack) == syn add @meter-tcp { ip saddr timeout 60s limit rate over 10/second } counter drop add rule netdev traffic-control chain-tcp meta l4proto tcp tcp flags & (fin|syn|rst|ack) == syn counter accept add set netdev traffic-control meter-icmp { type ipv4_addr; flags dynamic; timeout 60s; size 192000; } add rule netdev traffic-control chain-icmp add @meter-icmp { ip saddr limit rate over 10/second } counter drop add rule netdev traffic-control chain-icmp limit rate over 1 mbytes/second counter drop add rule netdev traffic-control chain-icmp counter accept Dodatkowo AUTOBAN, size sobie dostosuj do pakietów metka + Pułapka na Alojza, zmień niespodziewanie porty przy restarcie i Alojz wpadnie -> add set netdev traffic-control autoban { type ipv4_addr; timeout 1h; size 192000; } add rule netdev traffic-control INGRESS meta iif !="lo" ip saddr @autoban update @autoban { ip saddr timeout 30d } counter drop add rule netdev traffic-control INGRESS meta iif !="lo" udp dport { PODAJPORTUDP } add @autoban { ip saddr } counter drop add rule netdev traffic-control INGRESS meta iif !="lo" udp dport { PODAJPORTUDP } add @autoban { ip saddr } counter drop add rule netdev traffic-control INGRESS meta iif !="lo" tcp dport { PODAJPORTTCP } add @autoban { ip saddr } counter drop add rule netdev traffic-control INGRESS meta iif !="lo" tcp dport { PODAJPORTTCP } add @autoban { ip saddr } counter drop Instrukcja zapisu i ładowania reguł nftables - [Hidden Content] Jak jesteś leniwy, to zrób sobie skrypt, który automatycznie wklepie Ci reguły w terminal po restarcie Debiana, bo można. Walnij reboot'a i sprawdź czy wszystko śmiga. Wiadomo, że Next-Gen UTM będzie lepszy, ale kogo tutaj na to stać? Czasami jeden serwerowy "Firewall" to może być za mało, jak będziecie feedback to pokaże wam jak spiąć dwa takie (w zasadzie można tak bez limitu, jedyny limit to $$$) w tzw. loadbalancer. Ps. nie będę tłumaczył polityk i konfiguracji - macie wujka google to współpracujcie sobie z nim.
  6. Otwieramy plik game/Dungeon.cpp i szukamy w nim: deadEvent = event_create (dungeon_dead_event, info, PASSES_PER_SEC (10)); Zamieniamy na: deadEvent = event_create (dungeon_dead_event, info, PASSES_PER_SEC (300)); Sesja dungeonu zakończy się nie po 10 sekundach, a po 5 minutach. Teraz możemy napisać sobie coś na wzór tego questa: function GetPartyMapIndex() return party.getf("dungeon_index"); end -- function function HasDungeon() return d.find(quest.GetPartyMapIndex()); end -- function function GetPartyFloor() return d.getf_from_map_index("floor", quest.GetPartyMapIndex()); end -- function function IsSameLeaderDungeon() return d.getf_from_map_index("party_leader_pid", quest.GetPartyMapIndex()) == party.get_leader_pid(); end -- function when NPC.chat."I want to go back into the dungeon" with party.is_party() and quest.HasDungeon() and quest.IsSameLeaderDungeon() begin local floor = quest.GetPartyFloor(); local spawn_coordinates = Dungeon.GetData()[floor]; pc.warp(spawn_coordinates["x"] * 100, spawn_coordinates["y"] * 100, quest.GetPartyMapIndex()); --[[ my settings use coordinates based on floors and keys. Like this function GetData() local array = { [1] = {["x"] = 19850, ["y"] = 98254}, -- Floor 1 spawn coordinates. [2] = {["x"] = 19850, ["y"] = 98254}, -- Floor 2 spawn coordinates. ..etc. }; return array; end -- function ]] end -- when W którym zapiszemy sobie w questflagu podstawowe informacje dotyczące dungeonu potrzebne aby na niego wrócić. Dzięki tej opcji będziemy mogli wrócić na dungeon przez 5 minut, kiedy z jakiegoś powodu zostaniemy z niego wylogowani.
  7. Cześć, prawie każdy serwer ma problem z atlasinfo, mapy nachodzą same na siebie itp. Stworzyłem proste narzędzie do automatycznego generowania atlas info. [Hidden Content] Ustawienia: $maps = [ 'metin2_map_m1' => [6,6], 'metin2_map_m2' => [5,5], 'metin2_map_orcs' => [6,6], 'metin2_map_hwang' => [4,4], 'metin2_map_spider1' => [3,3], 'metin2_map_spider2' => [4,4], 'metin2_map_trent' => [2,2], 'metin2_map_trent2' => [4,4], 'metin2_map_skipia1' => [6,6], 'metin2_map_skipia2' => [6,6], 'metin2_map_desert' => [6,6], 'metin2_map_snow' => [6,6], 'metin2_map_flame' => [6,6], 'metin2_map_snake' => [4,4], 'metin2_map_fishing' => [4,4], 'metin2_map_admin' => [3,3], 'metin2_map_ox' => [2,2], 'metin2_map_guildwar' => [2,2], 'metin2_map_wedding' => [1,1], 'metin2_map_kingdonwar' => [2,2], 'metin2_map_monkey' => [3,3], 'metin2_map_giant' => [2,2], ]; Ważne by nie mieszać kolejności map, nowe mapy dodajemy na samym dole. (Inaczej będziemy musieli wszędzie zmieniać pozycje) Podgląd interfejsu: Podgląd graficzny:
  8. Jak wiecie twórcy lubią się obrażać i usuwać swoje repozytoria. Myślę, że to dobre miejsce na ich backup. W komentarzach podsyłajcie gity warte backupa. Rakancito 14.10.2020 - Rakancito.7z Vegas007 14.10.2020 - Vegas007.7z martysama0134 14.10.2020 - martysama0134.7z blackdragonx61 14.10.2020 - blackdragonx61.7z ZeNu-Elijah 14.10.2020 - ZeNu-Elijah.7z Owsap 14.10.2020 - Owsap.7z devTakuma 14.10.2020 - devTakuma.7z
  9. System petów oparty głównie o questa z elementami c++ Generalnie to expi sie peta, po kliknieciu na niego otwiera sie menu z bonusami, można je rozdawać itd ss nie mam bo mam lenia i nie chce mi sie dodawać? Pochodzenie? Kupione rok temu za 100ziko Jak ktoś doda niech ss wstawi dzieki. pet system.7z SKAN Już pobrałeś? To dej yangi XD
  10. Cześć, Zrobiłem bardzo prosty system tłumaczeń questów, publikuje go ponieważ wszystkie questy jakie opublikowałem/opublikuje będą go zawierały. Zalety: Funkcja która jest używana wszędzie, w każdej chwili możemy nią manipulować bez edycji kodu w questach Brak wielu tekstów które się dubulją Zamiast jakiś zmiennych typu gf.translate.cos jest zwykły tekst w języku jaki chcemy (zalecam język angielski) Możliwość podstawiania zmiennych do tekstu tłumaczenia bez używania string.format (%s - string, %d - decimal) W momencie jak zapomnimy o tłumaczeniu w jakimś języku automatycznie wyświetli się język angielski (w innym przypadku gdybyśmy użyli zmiennej gf wywali nam błąd) TODO: Przeniesienie translate.lua na MySQL Przerobienie notice_all itp tak by u każdego tekst wyświetlił się w jego języku Dzięki użyciu funkcji można zrobić możliwość automatycznego dodania tłumaczenia do MySQL jeżeli go nie wykryje w bazie a jest w zadaniu locale.lua function translation(text, ...) if translate[text] then text = translate[text] else sys_err("No translation: "..text) end if unpack(arg) then return string.format(text, unpack(arg)) else return text end end Każdy ma różny system tłumaczeń, w funkcji translation możecie podstawić sobie if, wykryć język użytkownika (np zrobić pc.get_lang()) i ładować różne pliki z tłumaczeniem (np. translate_pl.lua) translate.lua (Pamiętajcie o kodowaniu UTF-8 Bez BOOM) prefix = {} prefix.info = '|cFF00ff33[Informacja]|h|cFFFFFFFF|h' -- Info prefix.error = '|cFFff0000[Błąd]|h|cFFFFFFFF|h' -- Error _G.translate = { ["Warrior"] = "Wojownik", ["Ninja"] = "Ninja", ["Sura"] = "Sura", ["Shaman"] = "Szaman", ["Yes"] = "Tak", ["No"] = "Nie", ["Exit"] = "Wyjdź ", ["Activate"]= "Aktywuj", ["Cancel"] = "Anuluj", ["Other"] = "Inne", ["Left"] = "Pozostało", -- NPC click ["information"] = "Informacje", ["shop"] = "Shop", } Przykład użycia: when 20089.chat.translate.information with pc.get_map_index() == 6 begin say_title(mob_name(20089)) say(translation("Do you want to go to the first level of the Spider Dungeon?")) if select(translation("Yes"), translation("No")) == 1 then pc.warp(414,387,5) end end Przykład nr. 2 say(translation("%s Hello %s", prefix.info, pc.get_name())) Może komuś się przyda, osobiście właśnie tego używam do tłumaczenia wszystkich misji na serwerze
  11. Siemanko. Wrzucam wam pliczki do aktualizacji Granny na wersję 2.11.8. [Hidden Content] Różnice (przed na 1 obrazku, po na 2):
  12. Zasada działania jest bardzo prosta: 1. Wrzucamy plik Packet.h z UserInterface do folderu Client, 2. Wrzucam plik packet.h z game/src do folderu Server, 3. W pliku settings wypisujemy aktualne i nowe nazwy pakietów np.: packet_update_char=packet_update_charXYZ packet_chat=packet_chatting 4. Uruchamiamy rps.exe, wpisujemy % szans na dodanie losowych zmiennych do pakietu (0 - nie doda się nic, 100 - dodadzą się wszędzie). 5. Gotowe, nowe pliki pojawią się w folderze out. Większość botów korzysta z naszych pakietów, także ich regularna zmiana będzie dobrym sposobem na zablokowanie części z nich. rps.zip
  13. pojedynek.rar [Hidden Content]
  14. Karuzela (losowanie przedmiotów) za punkty/sm. [Hidden Content] Jest to przykładowa strona, jeżeli chcesz lepszy wygląd i bardziej funkcjonalne to napisz do mnie. Potrzebujesz questów, www lub innej usługi? Napisz do mnie Discord Alerin#5559
  15. [Hidden Content] System do zarządzania statusem serwera. Posiadam również wersję premium z możliwością restartowania pojedyńczego kanału i kolorami oraz możliwość przeglądania syserr i syslog. Potrzebujesz questów, www lub innej usługi? Napisz do mnie Discord Alerin#5559
  16. Kiedyś stworzyłem sobie paczkę, żeby móc szybko i bezboleśnie instalować sobie ccache na maszynce od terenzo i w sumie działa ona bezproblemowo, może teraz komuś się przyda. @Kreton to dla ciebie ch*ju XD Download w załączniku a skanu nie daje bo wszystko jest dostępne po wywołaniu komendy 'portsnap fetch extract' jc. instalacja -> cd /usr/ports/devel/ccache/ && make install clean pkg.txz
  17. Hi, here is good TuT when Proto converter has Error. Is not mine, but im think is very helpful. how to fix the error TypeError: cannot concatenate 'str' and 'NoneType' objects that you get while trying to use the python script to convert your database item_proto.sql into item_proto.txt and item_names.txt The error will look like this to you: item_proto_line = "%st%st%st%st%st%st%st%st%st%st%st%st%st%st%st%st%st%st%st%st%st%st%st%st%st%st%st%st%st%st%st%st%s" % (row[0], """ + row[1] + """, """ + get_item_type(row[3], row[0]) + """ , """ + get_item_subtype(row[3], row[4], row[0]) + """, row[6] , get_antiflag(row[7], row[0]), get_flag(row[8], row[0]), get_wearflag(row[9], row[0]), get_immuneflag(row[10]), row[11], row[12], row[13], row[14], row[16], get_limittype(row[17]), row[18], get_limittype(row[19]), row[20], get_apply(row[21]), row[22], get_apply(row[23]), row[24], get_apply(row[25]), row[26], row[27], row[28], row[29], row[30], row[31], row[32], row[39], row[40], row[41]) TypeError: cannot concatenate 'str' and 'NoneType' objects The tutorial will cover everything step by step with an explanation, and does not require any advanced python knowledge... just some common sense. So just follow and hopefully at the end you'll have the problem solved. Ok so lets do it. Open Navicat and go to Item_proto table then go to Filter and add these filters : Then press Ctrl+R to apply them. The result you get is what's causing the problem. I'll explain why at the end of the post Simply change the type and subtype to 0 if you don't need it, or change it to a value of the following. Here's a list of what each value is about (I copied it right out of the script itself) 0: "ITEM_NONE", 1: "ITEM_WEAPON", 2: "ITEM_ARMOR", 3: "ITEM_USE", 4: "ITEM_AUTOUSE", 5: "ITEM_MATERIAL", 6: "ITEM_SPECIAL", 7: "ITEM_TOOL", 8: "ITEM_LOTTERY", 9: "ITEM_ELK", 10: "ITEM_METIN", 11: "ITEM_CONTAINER", 12: "ITEM_FISH", 13: "ITEM_ROD", 14: "ITEM_RESOURCE", 15: "ITEM_CAMPFIRE", 16: "ITEM_UNIQUE", 17: "ITEM_SKILLBOOK", 18: "ITEM_QUEST", 19: "ITEM_POLYMORPH", 20: "ITEM_TREASURE_BOX", 21: "ITEM_TREASURE_KEY", 22: "ITEM_SKILLFORGET", 23: "ITEM_GIFTBOX", 24: "ITEM_PICK", 25: "ITEM_HAIR", 26: "ITEM_TOTEM", 27: "ITEM_BLEND", 28: "ITEM_COSTUME", 29: "ITEM_DS", 30: "ITEM_SPECIAL_DS", 31: "ITEM_EXTRACT", 32: "ITEM_SECONDARY_COIN", 33: "ITEM_RING", 34: "ITEM_BELT" Type should have a value between 0-34 0: "WEAPON_SWORD", 1: "WEAPON_DAGGER", 2: "WEAPON_BOW", 3: "WEAPON_TWO_HANDED", 4: "WEAPON_BELL", 5: "WEAPON_FAN", 6: "WEAPON_ARROW", 7: "WEAPON_MOUNT_SPEAR", 8: "WEAPON_NUM_TYPES", For type = 2 ; subtype should be between 0-7 : 0: "ARMOR_BODY", 1: "ARMOR_HEAD", 2: "ARMOR_SHIELD", 3: "ARMOR_WRIST", 4: "ARMOR_FOOTS", 5: "ARMOR_NECK", 6: "ARMOR_EAR", 7: "ARMOR_NUM_TYPES", For type = 3 subtype should be between 0-30 : 0: "USE_POTION", 1: "USE_TALISMAN", 2: "USE_TUNING", 3: "USE_MOVE", 4: "USE_TREASURE_BOX", 5: "USE_MONEYBAG", 6: "USE_BAIT", 7: "USE_ABILITY_UP", 8: "USE_AFFECT", 9: "USE_CREATE_STONE", 10: "USE_SPECIAL", 11: "USE_POTION_NODELAY", 12: "USE_CLEAR", 13: "USE_INVISIBILITY", 14: "USE_DETACHMENT", 15: "USE_BUCKET", 16: "USE_POTION_CONTINUE", 17: "USE_CLEAN_SOCKET", 18: "USE_CHANGE_ATTRIBUTE", 19: "USE_ADD_ATTRIBUTE", 20: "USE_ADD_ACCESSORY_SOCKET", 21: "USE_PUT_INTO_ACCESSORY_SOCKET", 22: "USE_ADD_ATTRIBUTE2", 23: "USE_RECIPE", 24: "USE_CHANGE_ATTRIBUTE2", 25: "USE_BIND", 26: "USE_UNBIND", 27: "USE_TIME_CHARGE_PER", 28: "USE_TIME_CHARGE_FIX", 29: "USE_PUT_INTO_BELT_SOCKET", 30: "USE_PUT_INTO_RING_SOCKET", For type = 4 subtype should be between 0-5 : 0: "AUTOUSE_POTION", 1: "AUTOUSE_ABILITY_UP", 2: "AUTOUSE_BOMB", 3: "AUTOUSE_GOLD", 4: "AUTOUSE_MONEYBAG", 5: "AUTOUSE_TREASURE_BOX", For type = 5 subtype should be between 0-7 : 0: "MATERIAL_LEATHER", 1: "MATERIAL_BLOOD", 2: "MATERIAL_ROOT", 3: "MATERIAL_NEEDLE", 4: "MATERIAL_JEWEL", 5: "MATERIAL_DS_REFINE_NORMAL", 6: "MATERIAL_DS_REFINE_BLESSED", 7: "MATERIAL_DS_REFINE_HOLLY", For type = 6 subtype should be between 0-3 : 0: "SPECIAL_MAP", 1: "SPECIAL_KEY", 2: "SPECIAL_DOC", 3: "SPECIAL_SPIRIT", For type = 7 subtype should be 0 : 0 : "TOOL_FISHING_ROD", For type = 8 subtype should be either 0 or 1 : 0: "LOTTERY_TICKET", 1: "LOTTERY_INSTANT", For type = 9 subtype can be anything For type = 10 subtype should be either 0 or 1 : 0: "METIN_NORMAL", 1: "METIN_GOLD", For type = 11 subtype can be anything For type = 12 subtype should be either 0 or 1 : 0: "FISH_ALIVE", 1: "FISH_DEAD", For type = 13 subtype can be anything For type = 14 subtype should be between 0-11 : 0: "RESOURCE_FISHBONE", 1: "RESOURCE_WATERSTONEPIECE", 2: "RESOURCE_WATERSTONE", 3: "RESOURCE_BLOOD_PEARL", 4: "RESOURCE_BLUE_PEARL", 5: "RESOURCE_WHITE_PEARL", 6: "RESOURCE_BUCKET", 7: "RESOURCE_CRYSTAL", 8: "RESOURCE_GEM", 9: "RESOURCE_STONE", 10: "RESOURCE_METIN", 11: "RESOURCE_ORE", For type = 15 subtype can be anything For type = 16 subtype should be between 0-10 : 0: "UNIQUE_NONE", 1: "UNIQUE_BOOK", 2: "UNIQUE_SPECIAL_RIDE", 3: "UNIQUE_3", 4: "UNIQUE_4", 5: "UNIQUE_5", 6: "UNIQUE_6", 7: "UNIQUE_7", 8: "UNIQUE_8", 9: "UNIQUE_9", 10: "USE_SPECIAL", For type = 17 to 27 subtype can be anything For type = 28 subtype should be either 0 or 1 0: "COSTUME_BODY", 1: "COSTUME_HAIR", For type = 29 subtype should be between 0-5 : 0: "DS_SLOT1", 1: "DS_SLOT2", 2: "DS_SLOT3", 3: "DS_SLOT4", 4: "DS_SLOT5", 5: "DS_SLOT6", For type = 30 subtype can be anything For type = 31 subtype should be either 0 or 1 : 0: "EXTRACT_DRAGON_SOUL", 1: "EXTRACT_DRAGON_HEART", After adjusting the values as they should be, try converting the proto again. If you still get the error don't panic, there's probably something wrong with the wearflag. We'll fix it right away. Apply these filters to check the wearflag values : Press Ctrl+R to apply them. The result you get is what's causing the problem. Simply change the wearflag to 0 if you don't need it, or change it to one of the values below : 1: "WEAR_BODY", 2: "WEAR_HEAD", 4: "WEAR_FOOTS", 8: "WEAR_WRIST", 16: "WEAR_WEAPON", 32: "WEAR_NECK", 64: "WEAR_EAR", 128: "WEAR_SHIELD", 256: "WEAR_UNIQUE", 512: "WEAR_ARROW", 1024: "WEAR_HAIR", 2048: "WEAR_ABILITY", Explanation: The script is written to cover the items with a TYPE value between 0 and 34, and for each TYPE, there's a specific max value of SUBTYPES as you can see above. So if you have any item with a TYPE value bigger than 34 or negative value, or the SUBTYPE value for the specified TYPE is not listed in the script, does not exist at all, or is a negative value, you'll probably get the error. Same applies to the WEARFLAG value. If you have an item with a WEARFLAG value which is not listed in the script, you'll get the error. What we did is: We filtered out the records with the values causing the error. (because if we don't filter them out it's impossible to get it done) Then we adjusted the wrong values to correct ones. I hope it helped. Created by: HellRoad (Thank you)
  18. Regulamin Lokalny działu C++/ Python / Serwer 1. Należy stosować się do Regulaminu forum M2Zone.tech. 2. Administrator zastrzega sobie prawo do wprowadzenia zmian w regulaminie w dowolnym momencie. 3. W dziale obowiązuje bezwzględny zakaz umieszczania reflinków. 4. Każdy załączony plik wykonywalny lub archiwum musi zostać przeskanowany stroną VirusTotal lub własnym programem antywirusowym. 5. Zalecanym miejscem wstawiania załączników/grafik jest opcja "Załącz plik" w edytorze podczas tworzenia tematu/posta (takie linki nigdy nie wygasną). 6. Jeśli tworzysz poradnik, wstawiasz link lub istotną dla wypowiedzi treść wstaw ją w code. 7. Tytuł tematu musi jasno określać jego zawartość (to czego on dotyczy, nie może wprowadzać w błąd). 8. Postaraj się zamieszczać tylko jakościowe i uargumentowane wypowiedzi (nawet te złe). 9. W dziale obowiązują określone tagi, do wyboru z listy podczas tworzenia tematu. 10. W dziale obowiązuje zakaz odświeżania tematów. 11. Udostępniony system/poprawkę należy opisać w 2 - 3 zdaniach, do czego służy oraz czy zasób był przez nas dodawany/testowany.
  19. Zmodyfikowana funkcja mob ReadMonsterDropItem uwzględniająca index mapy w mob_drop_item.txt - przykład: Group Jotun { Type index mob 6192 map_index 41 1 50266 1 0.05 2 72726 1 25 } mob_drop_item.zip
  20. Mały dodatek do CUBE. Jak ktoś ogarniał z poradnika Paszki (Naprawę Cube) to niech sobie doda jeszcze 2 rzeczy jak by ktoś nie ogarniał. (Wiem to mała rzecz, ale pewnie nie każdy to zrobi) Wyjaśnię o co chodzi . 1. Po nieudanym wytworzeniu przedmiotu, pojawia nam się na czacie taki komunikat : "Á¦Á¶żˇ ˝ÇĆĐÇĎż´˝Ŕ´Ď´Ů."; A w syserr kanału coś takiego : locale_find: LOCALE_ERROR: "Á¦Á¶żˇ ˝ÇĆĐÇĎż´˝Ŕ´Ď´Ů."; No to jedyne co trzeba zrobić to dopisać do locale_String coś takiego : "Á¦Á¶żˇ ˝ÇĆĐÇĎż´˝Ŕ´Ď´Ů."; "Nie udało się wytworzyć przedmiotu."; 2. W Navi w zakładce Log brakuje tabelki cube. No to trzeba ją dodać, bo jak jej nie będziemy mieli to syserr kanału będzie sypał tym błędem. ChildLoop: AsyncSQL: query failed: Table 'log.cube' doesn't exist (query: INSERT DELAYED INTO cube (pid, time, x, y, item_vnum, item_uid, item_count, success) VALUES(1, NOW(), No to przechodzimy do navi, klikamy prawym przyciskiem myszy na tabelke log i wybieramy "Console", a w niej wpisujemy sobie te polecenie : DROP TABLE IF EXISTS `cube`; CREATE TABLE `cube` ( `pid` int(50) DEFAULT NULL, `time` varchar(50) COLLATE big5_bin NOT NULL DEFAULT 'SEMTEMPO', `x` varchar(50) COLLATE big5_bin NOT NULL, `y` varchar(50) COLLATE big5_bin NOT NULL, `item_vnum` varchar(50) COLLATE big5_bin NOT NULL, `item_uid` varchar(50) COLLATE big5_bin NOT NULL, `item_count` varchar(50) COLLATE big5_bin NOT NULL, `success` varchar(50) COLLATE big5_bin NOT NULL ) ENGINE=MyISAM DEFAULT CHARSET=big5 COLLATE=big5_bin; Gotowe i po kłopocie.
  21. Jeżeli chcecie dodać systemy fixy z FreeBsd 9.2 na FreeBsd 12 gdzie używa się połączenia mysql zmieniamy std::auto_ptr<SQLMsg> Na: std::unique_ptr<SQLMsg> DBManager::instance().FuncQuery(std::bind1st(std::mem_fun Na: DBManager::instance().FuncAfterQuery(std::bind a jeżeli dodajemy z FreeBsd12 na FreeBsd 9.2 robimy to na odwrót std::unique_ptr<SQLMsg> Na: std::auto_ptr<SQLMsg> DBManager::instance().FuncAfterQuery(std::bind Na: DBManager::instance().FuncQuery(std::bind1st(std::mem_fun OPIS: unique_ptr unique_ptr posiada wskazywany obiekt na własność. Oznacza to, że zarządza on czasem życia wskazywanego obiektu. Jest jego władcą i to on decyduje, kiedy wskazywany obiekt ma przestać istnieć. Co za tym idzie, otrzymując ten typ wskaźnika, z definicji wiemy, że od tej pory to my kontrolujemy czas życia wskazywanego obiektu. Nikt inny nie ma prawa tego robić. Konsekwencją tego założenia jest kontrola, aby wskazywany obiekt nigdy nie pozotał bez właściciela. Mówi o tym punkt drugi. Jeżeli unique_ptr ulegnie zniszczeniu, automatycznie zniszczy on także obiekt, na który wskazuje. To dość wygodne podejście. Od tej pory nie spotka nas już sytuacja, w której nasz wskaźnik został zniszczony a my zapomnieliśmy zwolnić obiekt, na który on wskazywał. Nasz unique_ptr zadba o to by zrobić to za nas, w momencie gdy sam będzie niszczony. Takie podejście nazywamy RAII (ang. Resource Acquisition Is Initialization)- czyli obiekt podczas konstrukcji bierze na właność dane zasoby, a podczas destrukcji je zwalnia. To bardzo dobra praktyka, jeżeli spotykasz się z nią pierwszy raz, polecam wygooglować na ten temat nieco więcej. auto_ptr auto_ptr – szablon klasy sprytnego wskaźnika dostępny w bibliotece standardowej C++ (zadeklarowany w nagłówku <memory>) udostępniający podstawową funkcjonalność RAII dla zwykłych surowych wskaźników. Wzorzec klasy auto_ptr opisuje obiekt przechowujący wskaźnik do zaalokowanego obiektu typu Typ*, dbając o to żeby obiekt na który ten wskaźnik wskazuje został automatycznie zniszczony wraz ze zniszczeniem wskaźnika − czyli zazwyczaj po opuszczeniu zasięgu. W większości sytuacji preferowany zamiast auto_ptr jest wzorzec shared ptr proponowany w Technical Report 1 i dostępny w bibliotece Boost, a także zgodnie ze standardem C++0x - w bibliotece standardowej C++ . Wersja robocza standardu C++0x, z sierpnia 2010, odradza korzystanie z auto_ptr, zalecając zastępowanie go nowym w bibliotece standardowej szablonem unique ptr. auto ptr został usunięty w standardzie C++17. Bind Funkcja boost::bind jest generalizacją funkcji std::bind1st i std::bind2nd dostępnych w bibliotece standardowej. Funkcja ta wspiera funktory, funkcje, wskaźniki do funkcji oraz wskaźniki do funkcji składowych. Jest w stanie związać dowolny argument ze specyficzną wartością albo przekierować argumenty wejściowe we wskazane pozycje. boost::bind nie nakłada żadnych wymagań obiektom funkcyjnym, w ogólności nie wymaga standardowych definicji typów takich jak: result_type, first_argument_type, second_argument_type. Do korzystania z funcji boost::bind konieczne jest dołączenie nagłówka boost/bind.hpp.
  22. Paczka (v0.1): [Hidden Content] Znane błędy: Aktualnie brak Aktualizacje: Pierwsze Wydanie - v0.1
  23. [Hidden Content] Są tutaj jakieś 2 stare moje questy, jakieś bronie, zbroje, moby, mapy.
×
×
  • Create New...