[Pasek] Zbiórka Wojska i Obrony

Rafsaf

Łucznik
Wynik reakcji
946
Można ją znaleźć tutaj:

Zostawiam poniższe wytłumaczenia, nigdy nie wiadomo:
###############################################################

Przepisany skrypt bazujący na Zbiórka Obrona i Zbiórka Wojska do zbierania danych z plemienia z Wojska i Obrony na użytek Planera (choć dałem trochę opcji by dało się to wykorzystać do arkuszy Excela itp.).

Po kliknięciu na środku ekranu pojawia się "licznik" z postępem, potem wynik w okienku. Działa w obu zakładkach Wojska i Obrony. Domyślne ustawienia do skopiowania mają ustawione cache na true a cacheTime na 5 min, przez ten czas skrypt wypluwa wynik zapisany w przeglądarce zamiast od nowa latać po wszystkich członkach i zbierać dane. W razie wątpliwości czy mamy do czynienia z nowym czy starym wynikiem na dole pojawia się data zebrania. Poniżej kilka uwag co do opcji:

Kod:
javascript: var Data = {
    cache: true,
    cacheTime: 5,
    removedPlayers: "",
    firstLineTroops: "Wioska,pik,miecz,topór,itp...,",
    showFirstLineTroops: false,
    showNicknamesTroops: false,
    firstLineDeff: "Wioska,miejsce,pik,miecz,topór,itp...,",
    showFirstLineDeff: false,
    showNicknamesDeff: false,
};
$.getScript("https://media.innogamescdn.com/com_DS_PL/skrypty/Zbiorka_wojska_i_obrony.js");
void 0;

- cache odpowiada za przechowywanie wyniku w przeglądarce by nie klikać przypadkowo parę razy pod rząd i obciążać serwerów gry, ustawienie cache: false powoduje nie przechowywanie wyniku (np. gdy zamierzamy zebrać dane z dwóch członów skacząc od razu do drugiego)

- cacheTime to czas przechowywania wyniku w przeglądarce, w minutach

- removedPlayers: "" tutaj wpisujemy nicki graczy od których nie chcemy zbierać przeglądów, oddzielając średnikiem jak przy wiadomościach np. "Rafsaf;kmic"

- showFirstLineDeff
i showFirstLineTroops opcjonalnie doklejają nagłówek (pierwszą linijkę) do wyników odpowiednio w zbiórce Obrony i Wojska, nie chciałem decydować o konwencji więc można samemu ustalić co ma być w linijce, żeby się pokazywało ustawiamy na true a treść linijek odpowiednio w firstLineDeff i firstLineTroops wedle gustu.

- showNicknamesDeff i showNicknamesTroops przy ustawieniu na true powodują że przy każdej linijce pojawia się na jej początku dodatkowo nick gracza (właściciela danej wioski)

AKTUALIZACJA SKRYPTU 2022-10-18

Przepisany skrypt bazujący na Zbiórka Obrona i Zbiórka Wojska do zbierania danych z plemienia z Wojska i Obrony na użytek Planera (choć dałem trochę opcji by dało się to wykorzystać do arkuszy Excela itp.).

Po kliknięciu na środku ekranu pojawia się "licznik" z postępem, potem wynik w okienku. Działa w obu zakładkach Wojska i Obrony. Domyślne ustawienia do skopiowania mają ustawione cache na true a cacheTime na 5 min, przez ten czas skrypt wypluwa wynik zapisany w przeglądarce zamiast od nowa latać po wszystkich członkach i zbierać dane. W razie wątpliwości czy mamy do czynienia z nowym czy starym wynikiem na dole pojawia się data zebrania. Poniżej kilka uwag co do opcji:

Kod:
javascript: var COLLECT_TROOPS_DATA_V2 = {
    cache: true,
    cacheTime: 5,
    removedPlayers: "",
    allowedPlayers: "",
    firstLineTroops: "",
    showFirstLineTroops: false,
    showNicknamesTroops: false,
    firstLineDeff: "",
    showFirstLineDeff: false,
    showNicknamesDeff: false,
};
$.getScript("https://media.innogamescdn.com/com_DS_PL/skrypty/Zbiorka_wojska_i_obrony.js");
void 0;

Konfiguracja odbywa się za pomocą obiektu "COLLECT_TROOPS_DATA_V2" lub gdy ktoś nie zaktualizował się z pierwszej wersji skryptu, jeśli "COLLECT_TROOPS_DATA_V2" jest niezdefiniowany, "Data" obiekt będzie użyty. Uwaga każdy parametr JEST OPCJONALNY, jeśli obie zmienne są niezdefiniowane lub zdefiniowane, ale nie ma tam kluczy, sensowne wartości domyślne zostaną użyte.

Opcje:

- cache: <boolean> (domyślnie: true) odpowiada za przechowywanie wyniku w przeglądarce, aby przypadkowo nie kliknąć kilka razy z rzędu i niepotrzebnie obciążać serwery gry, gdy damy na false, skrypt nie będzie zapisywać wyniku w przeglądarce (użyteczne np. gdy zamierzamy zebrać dane od dwóch plemion skaczących od razu do drugiego). Uwaga: jeśli plemię ma ogromną liczbę wiosek, może to zająć miejsce zbyt dużo miejsca w localStorage (~max 5MB), z tego powodu limit wynosi 1MB, jeśli dane wyjściowe są > 1 MB, zapis do localStorage zostanie pominięty.

- cacheTime: <number> (domyślnie: 5) to czas przechowywania wygenerowanego wyniku w przeglądarce, w minutach.

- removedPlayers: <string> (domyślnie: "") tutaj wpisujemy nicki graczy od których nie chcemy zbierać przeglądów, oddzielając średnikiem jak przy wiadomościach np. "Rafsaf;kmic;ktoś jeszcze".

- allowedPlayers: <string> (domyślnie: "") tutaj wpisujemy nicki graczy od których JEDYNIE chcemy zbierać przegląd, pozostali zostaną pominięci, oddzielając nicki średnikiem jak przy wiadomościach np. "Rafsaf;kmic;ktoś jeszcze". Uwaga, wartość domyslna "" ma specjalne znaczenie i oznacza że chcemy zbierać przegląd od wszystkich graczy.

- language: <string> (domyślnie: "pl") język skryptu, wsparcie dla "pl" i "en", jeśli damy coś innego, skrypt użyje angielskiego, choć domyślna wartość to "pl" by zachować kompatybilność z pierwszą wersją skryptu.

- showNicknamesTroops: <boolean> (domyślnie: false) gdy wartość to true, do wyniku zbiórki Wojska w każdej linijce zostanie dodany nick gracza, parametr podobny do showNicknamesDeff, który działa dla zakładki Obrony

- showFirstLineTroops: <boolean> (domyślnie: false) gdy wartość to true, do wyniku zbiórki Wojska zostanie dodany nagłówek (pierwsza linijka u góry wyniku) której wartość ustalamy w kolejnym parametrze firstLineTroops.

- firstLineTroops: <string> (domyślnie: "") wartość jaka zostanie dodana w nagłówku w wyniku zbiórki Wojska jeśli showFirstLineTroops jest na true.

- showNicknamesDeff: <boolean> (domyślnie: false) gdy wartość to true, do wyniku zbiórki Obrony w każdej linijce zostanie dodany nick gracza, parametr podobny do showNicknamesTroops, który działa dla zakładki Wojska

- showFirstLineDeff: <boolean> (domyślnie: false) gdy wartość to true, do wyniku zbiórki Obrony zostanie dodany nagłówek (pierwsza linijka u góry wyniku) której wartość ustalamy w kolejnym parametrze firstLineTroops.

- firstLineDeff: <string> (domyślnie: "") wartość jaka zostanie dodana w nagłówku w wyniku zbiórki Wojska jeśli showFirstLineDeff jest na true.
 
Ostatnia edycja:

Rafsaf

Łucznik
Wynik reakcji
946
Disclaimer:
Jeśli gracz ma powyżej 1000 wiosek (~10mln pkt, czyli dość dużo) to skrypt, ten i jemu podobne, pobierają tylko pierwsze 1000 wiosek, ponieważ generalnie mają ustawione page=1 (domyślnie) natomiast powyżej 1k to już 2 strona.

Dałoby się to ogarnąć chyba z jednym dodatkowym zapytaniem na samym początku do zakładki członków, wrzucę tu pseudokod jakby kogoś to interesowało (może nawet mnie samego z przyszłości), bo nie zamierzam tego łatać z racji tego, że kolejne światy są często i w miarę tego samego rozmiaru cały czas (niezbyt dużego), a nawet przy tych największych i najstarszych światach jak 150, 151, 152 jest kolejno 3, 24, 4 graczy powyżej 1k punktów, stąd problem raczej jest marginalny i interesować się nim mogą plemiona w bardzo późnym late gamie.

- przerobić tabelę z rankingu "członków" plemienia, jeśli nikt nie ma powyżej 1k wiosek, nie robić nic, jeśli ktoś ma to nicki/id graczy trafiają do czegokolwiek wraz z numerami stron do pobrania (raczej 1 i 2 ale może powyżej 2k+ być 1,2,3)
- dodatkowe zapytania dla tych wybrańców z zapisanymi wcześniej wartościami page w ramach istniejących funkcji (dla pozostałych graczy nie zmieniać nic)
 

SweetKimo

Miecznik
Wynik reakcji
126
Czy jest możliwość, aby skrypt zbierał informacje tylko wybranych jednostkek?
Próbowałem modyfikować linijkę firstLineTroops oraz firstLineDeff, ale po wpisaniu nazw jednostek żadnej różnicy nie ma xD
 

Rafsaf

Łucznik
Wynik reakcji
946
firstLineTroops i firstLineDeff dotyczą tylko pierwszej linijki (nagłówka) w wynikach skryptu dla kolejno wojska i obrony :p I to taki ukłon jak ktoś wkleja wynik w arkusz excela a czasem to ludzie robią (czy korzystają z tego firstLineTroops i firstLineDeff to już nie wiem) żeby mieć ładne nagłówki w 1 wierszu.

A odpowiadając na pytanie to nie, nie ma takiej opcji w tym skrypcie, hmm nie wydaje mi się też ona mieć jakichś użytecznych zastosowań, zawsze dużo łatwiej jest przefiltrować wynik jak ma się za dużo niż gdy za mało :) Ale to nigdy nie da się przewidzieć wszystkiego :D
 

Rafsaf

Łucznik
Wynik reakcji
946
Aktualizacja skryptu 2022-10-18, skrypt został podmieniony a nowa wersja jest w pełni kompatybilna wstecznie.

Główna zmiana:
- wsparcie dla pobierania zbiórek dla graczy powyżej 1000 wiosek, w poprzedniej wersji jeśli ktoś miał np. 1410 wiosek to w wyniku było tylko 1000 pierwszych, obecnie działa to poprawnie.

Inne:
- dodałem nową zmienną "allowedPlayers" o którą ktoś kiedyś prosił, tak by dało się łatwo zebrać dane tylko od kilku osób (dało się to zrobić i wcześniej, ale trzeba było wpisać całe plemię minus te parę osób w "removedPlayers"
- naprawiłem trochę zapis do localStorage, okazuje się że dla wielkich plemion skrypt mógł nawet nie działać bo jest tam limit ~5MB w popularnych przeglądarkach na stronę a wyniki są mega długie i potrafią wyjść poza to. Sztywny limit to 1MB
- podrasowałem lekko wynik w okienku wizualnie, dodany link do tego tematu
- nowa zmienna "language", wsparcie dla j.angielskiego

Kod źródłowy
 

uHate2SeeMe

Lekki Kawalerzysta
Wynik reakcji
438
Cześć,
ciągle jak wrzucam skrypt to mam dodane jednostki deff.

Co robię źle?

javascript: var Data = {
cache: true,
cacheTime: 5,
removedPlayers: "",
firstLineTroops: "Wioska,pik,miecz,topór,itp...,",
showFirstLineTroops: false,
showNicknamesTroops: false,
firstLineDeff: "Wioska,miejsce,pik,miecz,topór,itp...,",
showFirstLineDeff: false,
showNicknamesDeff: false,
};
$.getScript("https://media.innogamescdn.com/com_DS_PL/skrypty/Zbiorka_wojska_i_obrony.js");
void 0;

Oglądałem poradniki i dalej nie ogarniam, może przez kaca, jak zrobić żeby wyłączyć jednostki z DEFF do obliczania jako OFF
 
Ostatnia edycja:

Lybciu

Chłop
Wynik reakcji
1
Mam pytanie czy jest jakaś możliwość żeby pokazało w przeglądzie wojsk czy te wojska są na obstawach czy np na farmie bądź zbieractwie żeby było wiadomo czy dany Gracz te wojska nie kisi we wioskach?
 
Do góry