Runes of Magic – d303Fix
Patch 3.0.3 do Runes of Magic przyniósł wiele dobrego, ale także wiele złego. Mianowicie przycięto nieco implementacje Lua. Brak w nowej wersji obiektu os, odpowiadającego między innymi za pobieranie i formatowanie daty i czasu, przez co duża część dodatków przestała poprawnie działać.
Postanowiłem działać i naprawić problem, zarówno z dodatkiem dAFK jak i pozostałymi. Od wczoraj (2010-08-11) siedzę i pocę się nad tym ale są już rezultaty. Prezentowany tu dodatek jest re-implementacją tego obiektu z pewnymi ograniczeniami (patrz Known Issues). jeżeli ktoś posiada wiedzę na ten temat proszę o komentarz.
Zmiany
v1.0 – (Planowana)
- Pozbycie się pliku XML i ograniczenie biblioteki do jednego pliku.
- Dodatkowe sugestie dodajcie w komentarzach.
v0.9
- Sugestie z komentarzy na Curse i tutaj.
- Elementy tablicy z datą i czasem nie są obowiązkowe.
- Automatyczne wykonanie screen’a po logowaniu (domyślnie wyłączone).
- Automatyczny screenshot, gdy nie powiedzie się próbkowanie Item Shop’a.
- Drugi parametr w funkcji date pozwala na przekazanie czasu do formatowania.
- Dwa nowe parametry do polecenia /dtss.
- Kilka innych drobnych sugestii.
- Poprawki pozwalające niekiedy znacznie skrócić kod.
- Poszerzone o nowe opcje okno konfiguracji.
- Rosyjskie tłumaczenie, bez konfiguracji. (Dzięki tasquer)
v0.8
- Naprawiono problem nie zapisywania się ustawień.
- Kilka innych drobnych poprawek.
- Nowe polecenie otwierające i chowające okno konfiguracji.
- Integracja z AddonManager.
v0.7
- Poprawiona kompatybilność z innymi dodatkami.
- Poprawione czytanie ujemnego czasu z promocji.
v0.6
- Poprawki związane z pobieraniem przesuniętego czasu z Item Shop’a
- Dodano polecenia pozwalające zmienić zachowanie dodatku
- Informacja na chacie jeżeli jest już zdefiniowany obiekt os. Obiekt jest deklarowany ponownie
- Nowe przydatne funkcje
- Wyciągnięte do tabeli stringi, aby ułatwić tłumaczenie.
v0.5
W tej wersji sporo zmian. Najpierw chciałbym podziękować nieznajomemu, który podzielił się swoją wiedzą w komentarzu pod tym tekstem oraz jednej z osób na anglojęzycznym forum, która powiedziała mi o pewnej bardzo ciekawej funkcji w API, dzięki której pozbyłem się permanentnie mam nadzieje pliku wykonywalnego. Nie może też zabraknąć podziękowań dla twórców dodatków: FunctionWatch i InGameScripts, dzięki którym zgłębiłem tajniki Item Shop’a z którego data jest pobierana.
- Prawidłowa data i czas wyciągana z gry bez ingerencji użytkownika.
- Nie potrzebny jest już plik wykonywalny.
- Obiekt os jako nakładka na obiekt d303Fix, a nie kompletna implementacja.
- Nowa implementacja wyliczania czasu, dokładniejsza niż wyliczanie na podstawie wartości uśrednionych.
- Nowy dział dla programistów dodatków.
v0.4
- Prawidłowa data i czas wyciągana z gry podczas robienia screen’a.
- Posprzątany kod.
- Wersja Lite specjalnie na potrzeby serwisu Curse. Nie zawiera ona pliku wykonywalnego.
v0.3
- Prawidłowa data i czas. (Patrz instalacja)
- Wersje językowe (PL/EN).
- Poprawny dzień tygodnia.
- Skrócona i normalna nazwa dni tygodnia i miesięcy
- Znaki %% są zastępowane przez %
- Znak ! w os.date() poprawnie formatuje czas z gry.
- Wywołanie os.date(„!*t”) zwraca tabele z czasem gry.
- Nieco rozszerzone testy.
- Pierwsza wersja całkowicie pozbywająca się błędów w dodatkach.
- Kompletna lista funkcji z obiektu os.
- Podstawowe testy.
- Dostępny również na Curse.
- /dt (/os) – Polecenie związane z oknem konfiguracji
- /dt – Pokazuje okno konfiguracji.
- /dt hide – Chowa okno konfiguracji.
- /dtis (/osis) – Polecenie związane z interakcją z Item Shop’em.
- /dtis help – Wyświetla krótką pomoc.
- /dtis off – Wyłącza pobieranie daty z Item Shop’a.
- /dtis on – Włącza pobieranie daty z Item Shop’a.
- /dtis [godziny] – Ustawia wartość przesunięcie zegara i resetuje wszystkie zmienne potrzebne do ponownego pobrania informacji z Item Shop’a.
- /dtis – Resetuje wszystkie zmienne potrzebne do ponownego pobrania informacji z Item Shop’a.
- /dtss (/osss) – Polecenie związane wyciąganiem daty i czasu z nazwy screenshot’a
- /dtss help – Wyświetla krótką pomoc.
- /dtss off – Wyłącza pobieranie daty z nazwy screenshot’a.
- /dtss on – Włącza pobieranie daty z nazwy screenshot’a.
- /dtss auto – Włącza/Wyłącza tworzenie screen’a podczas logowania..
- /dtss fail – Włącza/Wyłącza tworzenie screen’a, gdy próbkowanie Item Shop’a zawiedzie.
- /dtss – Wykonuje zrzut ekranu niezależnie od ustawień.
- Niedogodności związane z dodatkową aplikacją. (Patrz instalacja)
- Brak poprawnej flagi z czasem zimowym.
v0.2
v0.1
Instalacja
Najpierw należy odinstalować wersje starsze od v0.7, następnie przeprowadzamy instalacje jak każdego innego dodatku, poprzez rozpakowanie go do katalogu %ROM%\Interface\AddOns\ pamiętając o tym aby nie zmieniać nazwy katalogu samego dodatku.
Korzystanie
Dodatek posiada dwa polecenia pozwalające na manipulowanie jego zachowaniem (zmienione wartości są zapamiętywane):
Znane problemy
Development
Uwaga
Proszę wszystkich twórców dodatków o uprzednie sprawdzenie czy aby na pewno nie ma obiektu os i jego funkcji przed ich nadpisaniem.
Sprawdzanie
Chciałbyś skorzystać z dodatku d303Fix w swoim dodatku, możesz go dodać jako część swojego dodatku lub skorzystać z istniejącej już instalacji? Aby sprawdzić czy obiekt os jest już zadeklarowany w systemie wystarczy sprawdzić czy nie jest null’em:
if os then
-- Obiekt os istnieje
end
Aby natomiast sprawdzić czy jest to konkretnie implementacja d303Fix należy sprawdzić to poniższym kodem:
if os and d303Fix then
-- To d303Fix
end
Funkcjonalność
Dodatek udostępnia kilka przydatnych funkcji. Jest oczywiście implementacja wszystkich funkcji z obiektu os związanych z czasem do których można się odwoływać zarówno przez obiekt os jak i obiekt d303Fix. Poniżej funkcje i pola dostępne tylko przez obiekt d303Fix
- IsAnyNil(param) – Sprawdza czy parametr lub jakikolwiek element tablicy jest nil’em, jeżeli tak to zwraca true i nazwę klucza w tabeli (lub nil jeżeli nie ma nazwy albo nie jest to tabela), w przeciwnym razie zwraca false i nil
- IsLeapYear(year) – Sprawdza czy rok jest przestępny. Jeżeli tak zwraca true, jeżeli nie false.
- print(string) – Wyświetla przekazany string w oknie czatu. Jest to wyjątek i jest zdefiniowany w obiekcie os.
- SafeLoadFile(filename) – Bezpiecznie ładuje plik lua. Gdy wystąpi błąd wyświetla komunikat w oknie chat’u oraz zwraca false, gdy ładowanie powiedzie się zwraca true.
- SetTime(param) – Funkcja jako parametr przyjmuje trzy typy wartości:
- number – Czas w sekundach liczonych od 1970-01-01.
- string – Czas w formacie yyyy-MM-dd HH:mm:ss
- table – Standardowa struktura daty i czasu.
- Reset() – Resetuje zegar do daty 1970-01-01 oraz wymusza ponowne ustawienie czasu za pomocą Item Shop’a
- Version – Numer wersji d303Fix
- Dodatkowo tabela czasu zwracana przez funkcje date(„*t”) zwraca dodatkowo pole isLeap typu bool, zawierające informacje o tym czy rok jest przestępny.
Galeria
v0.8
v0.6
Pobieranie
- Public Domain
- d303Fix v0.9 (.zip) (SVN tag)
- d303Fix v0.8 (.zip)
- d303Fix v0.7 (.zip)
- d303Fix v0.6 (.zip)
- d303Fix v0.5 (.zip)
- d303Fix v0.4 (.zip)
- d303Fix v0.4 Lite (.zip)
- d303Fix v0.3 (.zip)
- d303Fix v0.2 (.zip)
- d303Fix v0.1 (.zip)




Działa fajnie, chociaż ten czas z gry by się przydał.
Kiedy można się spodziewać nowej wersji?