[Pasek] Zdalna konfiguracja

Deleted User - 8020378

Guest
Hej, może ktoś podać przykład jak ten skrypt dokładnie działa?
 

grabie2

Chłop
Wynik reakcji
7
Ten skrypt pozwala umieścić konfigurację skryptu (np. HermitowskichFejków - czyli lista wiosek, szablony wysyłki, etc.) na forum plemiennym. Dzięki temu każdy współplemieniec ma zawsze aktualny fejkomat.

Niestety w obecnej wersji skrypt bardzo spowalnia wykonywanie skryptów, gdyż za każdym razem pobiera stronę z forum (co jest wolne). Od kilku miesięcy czekam aż support opublikuje aktualizację.

Odnośnie przykładu, hmm, to mocno zależy od zastosowania. Dokładna konfiguracja jest opisana w komentarzu na początku skryptu https://media.innogamescdn.com/com_DS_PL/skrypty/Zdalna_konfiguracja.js
 
Wynik reakcji
72
TwawyaC.png

Hej,
część konfiguracji udało mi się wykonać, jednak odpadam przy treści spoilera jaki ma być na forum.
Tu przykład kodu wew. spoilera dostaję powiadomienie "ERROR: Nieprawidłowa konfiguracja na forum"

1. Co powinienem poprawić(pulę wiosek okroiłem ze względu na czytelność)?
2. Czy jest w jakiś online converter, który niezawodnie zmieni mi skrypt na jsona?
 

grabie2

Chłop
Wynik reakcji
7
Ciężko mi wskazać konktreną przyczynę ze screena, kilka wskazówek:
- upewnij się, że nazwa spojlera się zgadza (w sensie spoiler=XXX w BB-code i nazwa_spoliler: 'XXX' w konfiguracji, gdzie XXX to ten sam tekst, wliczając spacje),
- Przepuść to co masz w tagach [ code ] przez jakiś formater JSON, żeby upewnić się, że nie ma błędów składni, np. https://www.freeformatter.com/json-formatter.html
- w spoilerze lepiej nie mieć niepotrzebnych treści (javascript: var ...), one nie powinny przeszkadzać, ale kto wie, nie testowałem tego w ten sposób,
- możesz ustawić debug: true w konfiguracji skryptu - to spowoduje, że skrypt będzie pisał co robi na konsoli w przeglądarce (F12), może to pomożę Ci rozgryźć problem.

Jak to nie pomoże to podaj proszę:
- całą treść posta na forum plemiennym (najlepiej wrzuć na jakiś pastebin albo coś)
- link do tematu na forum plemiennym
- cały kod, który wstawiasz na pasek (może być w [ code ] na forum, albo pastebin)
 

grabie2

Chłop
Wynik reakcji
7
Przeklejam z treści skryptu :)

Kod:
 *  Zdalna konfiguracja by grabie2 v1.2
 *  
 *  Skrypt wczytuje wątek na forum, znajduje spoiler o wskazanej
 *  nazwie i wyszukuje w nim wszystkie tagi:
 *   - [b][/b] - zostanie wyświetlony czerwony komunikat o wskazanej treści,
 *   - [i][/i] - zostanie wyświetlony zielony komunikat o wskazanej treści,
 *   - [code][/ code] - zostanie wczytany jako JSON i ustawiony we wskazanej
 *                     zmiennej globalnej.
 *  Wewnętrznie tagi są posortowane w skrypcie według rodzaju: B, I, CODE
 *
 *  Następnie skrypt zależnie od trybu pracy (zmienna `tryb`):
 *    'random'   - losuje jeden ze znalezionych tagów (domyślny tryb)
 *    'first'    - wykonuje pierwszy tag na liście
 *    'sequence' - po każdej zmianie konfiguracji wybiera pierwszy tag z listy
 *                 następnie po każdym wywołaniu wykonuje kolejny tag, wracając
 *                 do początku po wykonaniu wszystkich
 *    'all-seq'  - tak jak 'sequence', ale po dojściu do ostatniego elementu
 *                 nie wraca do początku (ciągle wykonuje ostatni element, aż do
 *                 zmiany konfiguracji na forum)
 *
 *  Konfiguracja odbywa się przez obiekt globalny 'gbZdalnaKonfiguracja'
 *   - debug - bool, włącza dodatkowe drukowanie na konsoli
 *   - adres_skryptu - string, pełen URL skryptu do wczytania
 *   - nazwa_zmiennej - string, nazwa zmiennej globalnej do której zostanie
 *                      zapisana wczytana konfiguracja
 *   - skrypt - funkcja o sygnaturze `async(konfiguracja) => {...}`,
 *              zamiast adres_skryptu i nazwa_zmiennej można podać funkcję
 *              do wykonania - przydatne jeżeli trzeba zintegrować bardziej
 *              złożony skrypt. Każdy wyjątek rzucony przez tą funkcję zostanie
 *              wyświetlony na czerwono przez `String(<wyjątek>)`
 *   - forum_id - number, wartość z linku do forum
 *   - thread_id - number, wartość z linku do forum
 *   - tryb - string, tryb pracy, wyjaśnione powyżej (domyślnie 'random')
 *   - klucz - string, klucz używany przy zapisie stanu trybów 'sequence'
 *                     i 'all-seq' oraz do zapisu pamieci podręcznej. (domyślnie '')
 *   - czas_pamieci - number, czas w sekundach przez jaki będzie pamiętana ostatnia
 *                    pobrana zawartość forum. (domyślnie 300)
 *   - tryb_pamieci - sposób działania pamięci podręcznej, dozwolone wartości:
 *     'off' - pamięć podręczna nie jest używana
 *     'standard' - pamięć podręczna jest ważna przez określony czas od ostatniego
 *                  pobrania danych z formu
 *     'keepalive' - pamięć podręczna jest ważna przez określony czas od ostatniego
 *                   uruchomienia skryptu (domyślnie)
 *
 *  Link do forum (zaraz po otwarciu wątku) wygląda np. tak:
 *    https://pl156.plemiona.pl/game.php?village=23061&screen=forum&screenmode=view_thread&forum_id=3367&thread_id=16171
 *  na końcu są dwa parametry - forum_id=<xxx>&thread_id=<yyy> - to są wartości
 *  które należy podać w konfiguracji. Moje testy pokazują, że forum_id tak
 *  naprawdę nie jest potrzebne, mimo wszystko zalecam podanie tego parametru.

Przykładowa konfiguracja:
Kod:
javascript:var gbZdalnaKonfiguracja = {
/* Jaki skrypt wczytać? */
adres_skryptu: 'https://media.innogamescdn.com/com_DS_PL/skrypty/HermitowskieFejki.js',
/* Jak nazywa się zmienna konfiguracyjna? */
nazwa_zmiennej: 'HermitowskieFejki',
/* Dane z linku do forum */
forum_id: 2968,
thread_id: 128684,
/* Nazwa spoilera */
nazwa_spoilera: 'CFG(SKRYPT4)',
/* Inne parametry - zobacz skrypt */
};
$.getScript('https://media.innogamescdn.com/com_DS_PL/skrypty/Zdalna_konfiguracja.js');
void(0);
 

Zendos

Topornik
Wynik reakcji
923
Mam problem i nie wiem jak go naprawic.

Dodałem na forum w odpowiednim temacie i spoilerze kod skryptu hermitowskich fejków przepuszczony przez JSON. Zaczytał mi go i zadziałało.
Ale pozniej zmieniłem ustawienia tego skryptu (pierwotnie miały byc w szablonie wojsk 1 taran i 50 zwiadu), zmieniłem to w skrypcie na 1 taran, 10 zwiadu i 5 lk. Mimo to nadal wysyłał po 50 zwiadu (tak jakby wczytywał stary skrypt), który juz tak na prawdę nie istnieje.
Nie pomogło zrobienie nowego tematu i ustawienia w nowym spoilerze skryptu. Nadal wysyła 1 taran i 50 zwiadu (mimo ze w ustawieniach jest inaczej).
 

grabie2

Chłop
Wynik reakcji
7
Prawdopodobnie kwestia cache. Ustawienia "czas_pamieci" i "tryb_pamieci".

Wczytywanie danych z forum przy każdym kliknięciu byłoby bardzo wolne (i plemiona tego nie lubią). Domyślnie skrypt wczytuje nową konfigurację jeśli minęło minimum 15 minut od poprzedniego uruchomienia.
 

CXCV TRILL

Chłop
Wynik reakcji
24
Error: brak danych w spoilerze. Co może być przyczyną?

Tu wycinek URL do postu na forum

village=1165&screen=forum&screenmode=view_thread&forum_id=2134&thread_id=10697

Tu skrypt

javascript: var gbZdalnaKonfiguracja = {
skrypt: async(cfg) => {
window.HermitowskieFejki = { ...cfg
};
await $.getScript('https://media.innogamescdn.com/com_DS_PL/skrypty/HermitowskieFejki.js');
},
forum_id: 2134,
thread_id: 10697,
nazwa_spoilera: 'TUWPISUJENAZWESPOJLERA',
tryb: 'random',
klucz: 'FEJKI',
};
$.getScript('https://media.innogamescdn.com/com_DS_PL/skrypty/Zdalna_konfiguracja.js');void(0);

Tu konfiguracja

{
"skip_night_bonus": true,
"allies": "TUWPISUJENAZWEPLEMION",
"date_ranges": [
"30.11.2024 08:00 - 31.12.2024 23:59" ],
"boundaries": [ { r: 15, x: TUWPISUJEX, y: TUWPISUJEY } ],
"templates": [ { "spy": 1, "ram": 1 }, { "spy": 1, "catapult": 1 }, { "ram": 1 }, { "catapult": 1 } ],
"fill_troops": "axe:28,spy:7,light:12,light,axe,spy,ram,catapult",
"fill_exact": false,
"blocking_enabled": true,
"include_barbarians": false,
"blocking_local": { "time_s": 30, "count": 1, "block_players": true, "scope": "village" },
"changing_village_enabled": true
}
 

grabie2

Chłop
Wynik reakcji
7
Konfiguracja musi być w tagach [ code ] [/ code ] (bez spacji oczywiście. Prawdopodobnie tego zabrakło.
Tak samo możesz dodać tagi B lub I żeby zamiast skryptu pokazać komunikat ze wskazanym tekstem.
 

CXCV TRILL

Chłop
Wynik reakcji
24
Konfiguracja musi być w tagach [ code ] [/ code ] (bez spacji oczywiście. Prawdopodobnie tego zabrakło.
Tak samo możesz dodać tagi B lub I żeby zamiast skryptu pokazać komunikat ze wskazanym tekstem.
Dzięki, to teraz mam takie coś: Expected property name or '}' in JSON at position 155 (line 8 column 3)
Doradzisz też proszę gdzie dodaje się tag B lub I?
 

CXCV TRILL

Chłop
Wynik reakcji
24
Dzięki, to teraz mam takie coś: Expected property name or '}' in JSON at position 155 (line 8 column 3)
Doradzisz też proszę gdzie dodaje się tag B lub I?
Przepuściłem to przez formater JSON i działa. To tylko pozostaje jeszcze pytanie z tagiem B lub I :D a z ciekawości, za co odpowiada linijka 155? czego zabrakło?
 

grabie2

Chłop
Wynik reakcji
7
B i/lub I dajesz prosto w spojlerze. Przeważnie zamiast tagu code.
Jak masz kilka tagów w spojlerze sposób wybierania, który jest brany pod uwagę w danym momencie zależy od parametry 'tryb' (odsyłam do dokumentacji).

Co do json JSON, możesz użyć np, https://jsonlint.com/ żeby dostać lepsze informacje o błędach. W tym wypadku w "boudaries" nie miasz cudysłowów wokół r, x i y.
 
Do góry