Skip to content

Norrden/OTC

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

logo OTClient - Redemption

Discord Shield Build - Ubuntu Build - Windows License: MIT

📋 Spis treści

  1. Logo Czym jest OTClient - Redemption?
  2. 🚀 Funkcje
  3. Android Projekt mobilny
  4. 🔨 Kompilowanie
  5. 🐳 Docker
  6. 🩺 Potrzebujesz pomocy?
  7. 📑 Błędy?
  8. ❤️ Dalszy rozwój
  9. 💯 Wspierane protokoły
  10. ©️ Licencja
  11. ❤️ Współtwórcy

OTClient - Redemption to alternatywny klient gry Tibia, przeznaczony do użytku z serwerami OT. Jego celem jest zapewnienie pełnej funkcjonalności i elastyczności, dlatego wykorzystuje skrypty .lua do obsługi wszystkich funkcji interfejsu gry oraz pliki konfiguracyjne .otui - podobne do .css celem projektowania interfejsu klienta. OTClient - Redemption działa w oparciu o system modułowy, co oznacza, że każda funkcjonalność jest oddzielnym modułem, co daje użytkownikom możliwość łatwej modyfikacji i dostosowywania wszystkich jego elementów. Użytkownicy mogą również tworzyć nowe mody oraz moduły i rozszerzać interfejs gry według własnych potrzeb. OTClient jest napisany w C++20 i intensywnie skryptowany w LUA.

Możesz stworzyć własnego klienta aby połączyć się z Forgottenserver lub Canary.

Note

OTClient - Redemption bazuje na edubart/otclient Rev: 2.760

Oprócz elastyczności w zakresie skryptów, OTClient - Redemption oferuje wiele innych funkcji, które umożliwiają tworzenie nowych elementów po stronie klienta, które wcześniej były niemożliwe. Należą do nich: system dźwiękowy, efekty graficzne z użyciem shaderów, system modułów/dodatków, animowane tekstury, personalizowany interfejs użytkownika, przezroczystość, obsługa wielu języków, terminal .lua w grze oraz silnik OpenGL 2.0 ES, który umożliwia portowanie na platformy mobilne. OTClient - Redemption jest również na tyle elastyczny, że pozwala na tworzenie narzędzi do Tibii, takich jak edytory map, wyłącznie przy użyciu skryptów, ponieważ nie został zaprojektowany tylko jako klient, lecz jako połączenie Frameworka i API Tibii.

  • Szczegóły optymalizacji w odniesieniu do OTClient autorstwa edubart:
    • C++20 (v17, budowa Unity i tryb manifestu (vcpkg.json)) w wersji x32 i x64

    • Asynchroniczne ładowanie tekstur
      • i ) Opis: Dzięki temu plik .spr nie jest buforowany, a w konsekwencji zużycie pamięci RAM jest mniejsze.

      • ii ) Przykład:

      Asynchronous.texture.loading.mp4
    • Wielowątkowość

      -i ) Opis:

      [Główny Wątek]

      • Dźwięk
      • Cząsteczki
      • Ładowanie tekstur (plików)
      • Obsługa okien (klawiatura, mysz, ...)
      • Generowanie tekstur

      [Drugi Wątek]

      • Połączenie
      • Wydarzenia (g_dispatcher)
      • Zbieranie informacji o tym co ma być wygenerowane na mapie

      [Trzeci Wątek]

      • Zbieranie informacji o tym co ma być wygenerowane w interfejsie.

        • ii ) Schemat: multinucleo
    • Mniejsze zużycie pamięci
      • i ) Opis:
        highlightingPtr to stackPos
        new async dispatcher (using bs thread_pool)
        optimized updateChildrenIndexStates & updateLayout
        removed ThingTypePtr
        scoped object to raw pointer
        shaderPtr to shaderId
        oraz inne optymalizacje
        
    • - Nowy system oświetlenia z przyciemnianiem
      • i ) Przykład:
      Lighting.Fading.mp4
    • Ulepszenie systemu chodzenia

    • Obsługuje sekwencyjne pakiety i kompresję

    • Wsparcie (Tibia 13)

    • Ulepszenie UIWidgets
      • i ) Opis:

        [UIWidget] Ulepszony algorytm interfejsu użytkownika przyniósł lepszą wydajność w dodawaniu, usuwaniu i przestawianiu widgetów. Można zauważyć te poprawki w module walki.

      • ii ) Przykład:

      UIWidget.Control.Optimized.mp4
    • Wymuszona optymalizacja efektów
      • i ) Opis: Unika generowania efektów w określonych sytuacjach.
    • Zaktualizowane biblioteki

  • Automatyczne przeładowanie modułów

    Activate g_modules.enableAutoReload() (init.lua)

    2022-11-17_17-45-35-1.1.mp4
  • System dodatkowych efektów do tworzenia aur, skrzydeł itp.
    • Kompatybilny z .Apng

      • ThingCategoryEffect
      • ThingCategoryCreature
      • ThingExternalTexture: to grafiki w Png lub Apng
    • Wiki

    • Przykład kodu: (code sample: effects.lua, code test)

    • Przykładowe ustawienia specyficzne dla lookType X outfit_618.lua

      • Masz AttachdEffect X, który ma standardowy offset, lecz w daemonie wszystko jest zniekształcone, więc używasz ThingConfig, aby dostosować efekt specjalnie do pożądanego typu wyglądu.
Haskanoid Video Peoplemon by Alex Stuart Space Invaders
Osadzony efekt ThingCategory Osadzony efekt Texture(Png) Cząsteczki
  • Cieniowanie gruntu

  • Podświetlenie celu kursora (naciśnij Shift, aby wybrać dowolny obiekt)

  • Tryb widoku gruntu (Normalny, Zanikający, Zablokowany, Zawsze widoczny, Zawsze widoczny z przezroczystością)

  • Opcja efektów unoszących się

  • Przebudowany system chodzenia

  • Wsparcie dla większej liczby przycisków myszy, na przykład 4 i 5

  • System kontrolera modułów

    bezpieczniejszy sposób na tworzenie modułów, bez potrzeby usuwania powiązania klawiszy, rozłączania zdarzeń czy niszczenia widżetów.

    (Code example)

  • Wsparcie klientów 12.85 ~ 12.92, 13.00 ~ 13.40 (protobuf)

  • Market został przepisany i jest kompatybilny z TFS oraz Canary

  • Asynchroniczne ładowanie tekstur

  • Opcje trybu wygładzania krawędzi - note : (Note: Styl Smooth Retro zużywa więcej zasobów GPU)
    • i ) Przykład vvff
  • Wsparcie Negative Offset (.dat)
    • Kompatybilny z ObjectBuilderV0.5.5

    • Należy aktywować funkcję:

      g_game.enableFeature(GameNegativeOffset)

    • Przykład

    offsets.mp4
  • Informacje o stworzeniach w UIWidget
    • By aktywować: setup.otml
    • Styl: modules/game_creatureinformation
    • Uwaga: W porównaniu do bezpośredniego programowania z użyciem Draw Pool występuje spadek wydajności o około ~20%. Testy przeprowadzono z 60 potworami atakującymi się nawzajem.
    Video_Sem_Titulo_Feito_Com_O_Clipchamp1.mp4
  • Drawpool 3
  • Widżet kratki Wiki
Haskanoid Video Peoplemon by Alex Stuart Space Invaders
Osadzony efekt na kratce Widżet kratki Cząsteczki na kratce
  • Wsparcie dla składni HTML/CSS
    Video_Sem_Titulo_Feito_Com_O_Clipchamp1.mp4
    349623570-3fa1803a-2759-4b2f-890e-05f987f43260.mp4

    Przykład modułu:

  • Wsparcie DirectX

  • Garbage Collection
    Garbage collection jest mechanizmem używanym w wielu miejscach (lua, texture, drawpool, thingtype). Służy zarządzaniu pamięcią. Jego zadaniem jest identyfikowanie obiektów, które nie są już używane i usuwanie ich z pamięci aby zwolnić zasoby.
🙋 Społeczność (Funkcje)
Haskanoid Video Peoplemon by Alex Stuart Space Invaders
Interfejs Zagęszczenie Pikseli Joystick (patrykq)
  • Wsparcie Tibia 12.85/protobuf by @Nekiro

  • Wsparcie Discord RPC by @SkullzOTS (Nie współpracuje z CMAKE).
    • autorstwa @SkullzOTS

    • By aktywować przejdź do config.h, ustaw 1 w ENABLE_DISCORD_RPC i skonfiguruj pozostałe definicje.

    • Do obejrzenia krok po kroku na YouTube

Haskanoid Video Peoplemon by Alex Stuart Space Invaders
Przykładowy Interfejs Przykład w grze W przyszłości discord-game-sdk
  • Action Bar autorstwa @DipSet
  • Dostęp do elementów podrzędnych widgetu przy pomocy widget.childId autorstwa @Hugo0x1337
  • Poprawka systemu cieniowania (CTRL + Y) autorstwa @FreshyPeshy
Haskanoid Video Peoplemon by Alex Stuart Space Invaders
Stworzenia Mapy Wierzchowca
  • Przebudowany moduł walki autorstwa @andersonfaaria

  • Health&Mana Circle autorstwa @EgzoT, @GustavoBlaze, @Tekadon58 (GITHUB Project)

  • Motyw Tibia 1.2 autorstwa Zews (Forum Thread)

  • Dodana opcja ADJUST_CREATURE_INFORMATION_BASED_ON_CROP_SIZE w config.h autorstwa @SkullzOTS

  • System szyfrowania autorstwa @Mrpox (Uwaga: Ta implementacja jest niebezpieczna.)

    autorstwa @Mrpox

    • By aktywować przejdź do config.h, ustaw 1 w ENABLE_ENCRYPTION i zmień hasło w ENCRYPTION_PASSWORD
    • Aby aktywować szyfrowanie flagą "--encrypt" zmień ENABLE_ENCRYPTION_BUILDER na 1 (autorstwa @TheMaoci). Umożliwia usunięcie kodu tworzącego zaszyfrowane pliki z wersji produkcyjnej.
    • Aby wymusić szyfrowanie użyj flagi "--encrypt SET_YOUR_PASSWORD_HERE" i nie zapomnij zmienić hasła!
    • Możesz również pominąć dodawanie hasła do polecenia --encrypt, zostanie ono automatycznie pobrane z pliku config.h (autorstwa @TheMaoci)
  • Kolorowy tekst
    • autorstwa @conde2
    • widget:setColoredText("{Colored text, #ff00ff} normal text")
  • Wsparcie dla kodów QR, z automatycznym generowaniem z ciągu znaków.
    UIQrCode: 
    code-border: 2
    code: Hail OTClient Redemption - Conde2 Dev
    

Haskanoid Video

Haskanoid Video

Przykład 1 Przykład 2 Przykład 3
001_example.mp4
002_example.mp4
003_example.mp4
Haskanoid Video Peoplemon by Alex Stuart
Interface In-game
💸 Wsparcie (Funkcje)
Haskanoid Video Peoplemon by Alex Stuart Space Invaders
Creature. Items UICreature
OTClient V8 (Funkcje)
  • System oświetlenia
  • Cieniowanie gruntu
  • Wyszukiwanie drogi
  • Moduł sklepu
  • Moduł wyglądu
  • Placeholder
  • UIGraph
  • Przypisywanie klawiszy

Projekt klienta mobilnego To jest fork OTClienta edubarta. Celem tego forka jest opracowanie działającego otclienta na urządzenia mobilne.

Cele do wykonania:

  • Kompilacja pod Android
  • Kompilacja pod Apple
  • Adaptacja interfejsu używając istniejącego kodu

Aktualne poradniki kompilacji:

Jeśli jesteś zainteresowany kompilacją własnego OTC - Redemption, przejdź do wiki.

Aby zbudować aplikację do produkcji, uruchom następujące polecenie:

  1. Aby zbudować obraz:
docker build -t mehah/otclient .
  1. Aby uruchomić zbudowany obraz:
# Wylacz kontrole dostepu dla serwera X.
xhost +

# Uruchom obraz z wymaganymi powiazaniami do urzadzen hosta i woluminow.
docker run -it --rm \
  --env DISPLAY \
  --volume /tmp/.X11-unix:/tmp/.X11-unix \
  --device /dev/dri \
  --device /dev/snd mehah/otclient /bin/bash

# Włacz kontrole dostepu dla serwera X.
xhost -

Spróbuj zapytać na discord

Znalazłeś błąd? Proszę utwórz zgłoszenie w naszym dziale błędów

Tip

jeśli używasz Nostalrius 7.2, Nekiro TFS-1.5-Downgrades-7.72 lub jakiegokolwiek protokołu poniżej 8.60, a podczas chodzenia szarpie, ustaw: force-new-walking-formula: true w setup.otml

W starszych protokołach animacja elementów może być za szybka, zmień wartość parametru [item-ticks-per-frame] z 75 na 500 (https://github.com/mehah/otclient/blob/cf7badda978de88cb3724615688e3d9da2ff4207/data/setup.otml#L32) w setup.otml

Do wykonania Status PR
Kompatybilność z Androidem Branch
Wygląd chowańców #39
Koło Przeznaczenia None
Forge None
Analizer #802
Rozszerzony nowy motyw None
Dźwięki Tibia 13 None
Protokół/Wersja Opis Wymagana Funkcja Kompatybilność
TFS
(7.72)
Downgrade nekiro /
Nostalrius
force-new-walking-formula: true
item-ticks-per-frame: 75
TFS 0.4
(8.6)
Fir3element item-ticks-per-frame: 75
TFS 1.5
(8.0 / 8.60)
Downgrade nekiro /
MillhioreBT
force-new-walking-formula: true
item-ticks-per-frame: 75
TFS 1.4.2
(10.98)
Release Otland
TFS 1.6
(13.10)
Main repo
otland (2024)
Zobacz wiki
Canary 13.21 OpenTibiaBr Assets , Enable HTTP login and port 80
Canary 13.32 OpenTibiaBr Assets , Enable HTTP login and port 80
Canary 13.40 OpenTibiaBr Assets , Enable HTTP login and port 80

OTClient jest udostępniany na licencji MIT. MIT License. Oznacza to, że masz prawo do robienia, co chcesz, zarówno w kontekście komercyjnym, jak i niekomercyjnym, oraz możesz tworzyć wersje zamknięte lub otwarte.

Jeśli jesteś zainteresowany wspieraniem projektu, kliknij w link, każda kwota to wielka pomoc, dziękuję.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Lua 49.9%
  • C++ 47.8%
  • CMake 1.1%
  • C 0.4%
  • GLSL 0.2%
  • HTML 0.2%
  • Other 0.4%