[Pasek] Hermitowskie Fejki

hermitowski

Miecznik
Wynik reakcji
63
> Oczywiście jest to pierdoła z którą sobie rodzimy, po prostu wpisując więcej tekstu w zakres data_range
Może więcej tekstu, ale za to przejrzyście :) i ja też nie muszę po stronie kodu zgadywać co autor miał na myśli produkując swój własny formatu daty.

> Dobra nie było tematu wystarczyło ustawić. i działa tak jak chciałem.
Akurat tak się stało przypadkiem. Pierwszy wpis jest w niewspieranym formacie i zupełnie ignorowany.

Przypomnę, że zakresy dat są priorytezowane. Zostanie wybrana pierwszy zakres dla którego pula wiosek po przefiltrowaniu jest nie pusta. Jako, że czas przejścia per pole jest już znany (wojska są już wybrane) i w podanym przez ciebie przykładzie zakresy czasowe są rozłączne (potencjalna wioska należy tylko do jednego zakresu czasowego).
Przykładowo:
"08:00 - 09:00" - X, Y, Z
"09:01 - 11:30" - A, B, C

To wioska zostanie wylosowana z puli X, Y, Z. Wioski A, B, C nie są brane pod uwagę w losowaniu.

> itd. przy bardziej skomplikowanych ustawieniach (co do pory) jak i wydłużenia dni robi się sporo pisania samych dat z godzinami,
Można trochę sobie ułatwić życie poprzez zautomatyzowanie generowanie tych przedziałów czasowych, np.
JavaScript:
javascript:
var HermitowskieFejki = {
    date_ranges: (function () {
        const date_ranges = [];

        for (let i = 0; i <= 2; i++) {
            var date = new Date();
            date.setDate(date.getDate() + i);
            const date_format = `${date.getDate()}.${date.getMonth() + 1}.${date.getFullYear()}`;
            date_ranges.push(`${date_format} 08:00 - ${date_format} 09:00`);
            date_ranges.push(`${date_format} 09:00 - ${date_format} 11:30`);
        }

        return date_ranges;
    })(),
};
taki mały generator zakresów na 3 dni - obecny (i = 0) + 2 dni do przodu włącznie (i<=2)
dodatkowo taki sposób zadziała tylko we własnym pasku, tutaj mam na myśli, że taka postać konfiguracji nie zadziała jako konfiguracja zaciągana z forum
 

Susdam

Pikinier
Wynik reakcji
38
Dobra nie było tematu wystarczyło ustawić:

Kod:
"date_ranges": [
               "28.06.2023 - 30.06.2023",
               "08:00 - 09:00",
               "09:01 - 11:30"
],
i działa tak jak chciałem.
dzięki hermitowski, jesteś wielki z tymi swoimi skryptami :p
Tak wygląda że tutaj się wygłupiłem, po prostu miałem za mało wiosek aktualnie do testowania, dlatego u mnie wychodziło, a kolega z większa liczbą już mi wskazał, że jednak był problem.
Oczywiście wiem że zakresy dat są że zakresy dat są priorytezowane (te tutaj to było przykłady).
no to chyba zostanie mi wpisywanie wszystkich dat, jak dotychczas, bo raz że rozwiązanie, które podałeś nie nadaje się do konfiguracji z forum, dwa znowu będę musiał robić wszystko sam, bo mi kumple w plemieniu nie ogarnąć o co chodzi z tą funkcją ;p

dzięki za szybką odpowiedź.
 

Jarl Pękniny

Zwiadowca
Wynik reakcji
173
Czy jest dostępna aktualna wersja fejkomatu z działającą opcją "boundaries"? Jak próbuję opcji która tu jest, wyskakują błędy składniowe, jak je poprawiam to po prostu nie działa, fejki latają na całe plemię a nie dany okrąg. Plus nawet tutaj w ostatnim poście z fejkomatem z listopada 2021 są 2 opcje podawania kordów - "500|500" i [500, 500]
 
Ostatnia edycja:

hermitowski

Miecznik
Wynik reakcji
63
Czy jest dostępna aktualna wersja fejkomatu z działającą opcją "boundaries"? Jak próbuję opcji która tu jest, wyskakują błędy składniowe, jak je poprawiam to po prostu nie działa, fejki latają na całe plemię a nie dany okrąg. Plus nawet tutaj w ostatnim poście z fejkomatem z listopada 2021 są 2 opcje podawania kordów - "500|500" i [500, 500]
Faktycznie dokumentacja ma błąd. Dla okręgu spróbuj z opcjami x,y,r; np.

JavaScript:
"boundaries": [
    { r: 30, x: 500, y: 500 }
],
 

hermitowski

Miecznik
Wynik reakcji
63
Ostatnio wyszła wersja 4.2.4, a w niej:
- skrypt nie usuwa już duplikatów wiosek -> podanie wielokrotnie wioski podnosi szansę na jej wybór - opcja coords; duplikaty można zdefiniować na dwa sposoby - po prostu wpisać wioskę wielokrotnie lub dodać dwukropek, a po niej liczbę wystąpień wioski w puli. np.
- - coords: "500|500 500|500 500|500 501|501"
- - coords: "500|500:3 501|501"
- jest opcja zdefiniowania plemion, graczy do pomijania - zmiana ma na celu pomóc w pomijaniu wyboru wiosek współplemieńców / sojuszników przy niedawnej zmianie właściciela wioski - opcje exclude_players, exclude_player_ids, exclude_allies, exclude_ally_tags, exclude_ally_ids - składnia ta sama co przy opcjach bez prefixa
 

hermitowski

Miecznik
Wynik reakcji
63
Cały czas pojawia mi się bład


TypeError: Cannot read properties of undefined (reading 'fake_limit')

TypeError: Cannot read properties of undefined (reading 'fake_limit')
at CreateFaker (https://media.innogamescdn.com/com_DS_PL/skrypty/HermitowskieFejki.v3.js?_=1702649774256:86:47)
at https://media.innogamescdn.com/com_DS_PL/skrypty/HermitowskieFejki.v3.js?_=1702649774256:68:13
Wersja v3 przestała być rozwijana. została pozostawiona, aby ułatwić proces migracji poprzez brak jego wymuszania. V3 teoretycznie powinna wciąż działać, ale bym zalecał przejście na najnowsza wersję, która jest ciut bogatsza i powinna sobie lepiej radzić z większymi światami.
 

hermitowski

Miecznik
Wynik reakcji
63
To co wklejasz w pasek to tak naprawdę konfiguracja i namiary na kod skryptu.

Namiary to ten adres "https://media.innogamescdn.com/com_DS_PL/skrypty/HermitowskieFejki.v3.js" z którego wystarczy, że usuniesz .v3 , i zostaniesz z następującym
https://media.innogamescdn.com/com_DS_PL/skrypty/HermitowskieFejki.js

Druga rzecz, która będziesz zmuszony zrobić to dostosować konfigurację, która mogła lekko się zmienić pod względem nazewnictwa.

Szczegóły tutaj i doprecyzowania na kolejnych kartkach

 

hermitowski

Miecznik
Wynik reakcji
63
Wrzuciłem aktualizację do akceptacji, spodziewana lista zmian to:

4.2.5 - możliwość wyboru samego wojska
Jeżeli użytkownik nie zdefiniował opcji do wyboru celu (lub podał 'puste' wartości) to skrypt wybierze tylko wojsko. Opcje do wyboru celu to:
coords, allies, ally_tags, ally_ids, players, player_ids, exclude_allies, exclude_ally_tags, exclude_ally_ids, exclude_players, exclude_player_ids, include_barbarians, boundaries_box, boundaries_circle
Inspiracja niedawno wrzuconym skryptem - https://forum.plemiona.pl/index.php?threads/uzupelnianie-wojska-na-fejki.130406/

4.2.6 - zdefiniowano domyślną wartość dla troops_templates
Jeżeli użytkownik nie zdefiniował troops_templates to teraz skrypt sam dostarczy domyślną wartość [1]. Powinno pozwolić to na uproszczenie konfiguracji skryptu dla standardowych scenariuszu oraz unikać frustracji z komunikatem "Nie wybrano szablonów z wyborem jednostek".
Dodatkowo w połączeniu ze zmianą wprowadzoną w 4.2.5 można teraz używać skryptu bez konfiguracji [2], która po prostu wybierze standardowe wojsko na fejka.
[1] Domyślna wartość to 4 szablony odpowiednio: 1 zwiadowca + 1 taran; 1 zwiadowca + 1 katapulta; 1 taran; 1 katapulta
[2] Czyli w pasku mieć
Kod:
javascript: $.ajax('https://media.innogamescdn.com/com_DS_PL/skrypty/HermitowskieFejki.js?_='+~~(Date.now()/9e6),{cache:1,dataType:'script'}); void (0);

Mam problem wklejam coordy i wyskakuje komunikat ,,nie wybrano szablonu wojsk'' pomoże ktoś?
Wyskakuje mi błąd: nie wybrano szablonu z wyborem jednostek. Ktoś może mi pomóc :D

4.2.7 - zaciąganie konfiguracji z forum w przypadku korzystania z mobilnego layoutu strony
Jest problem z forum_config przy mobilnej wersji(na pewno w chrome), klikanie skryptu daje komunikat "wątek nie istnieje".
Ale o dziwo wystarczy kliknąć ustawienie w chrome i załadować "wersję na komputer" raz użyć skryptu i potem już działa normalnie na wersji mobilnej.
@hermitowski
@hermitowski kiedy zostanie naprawiony błąd na wersji mobilnej „wątek nie istnieje” ? :)
 

Stuknięty

Zwiadowca
Wynik reakcji
12.228
Hejka mam pytanie o modernizację skryptu o informacje ile czasu pozostało do wysłania fejku.
Chodzi o to że jest ktoś "nowy”.
Nagle się budzi ze nie wysłał fejków i próbuje to robić z fejkomatu, ale cały czas przeskakuje mu do następnej wioski, bo ramy czasowe się już/jeszcze nie zgadzają, bo zaspał i skrypt próbuje mu coś znaleźć, ale nie znajdzie.

Komunikat szybko znika (bo przeskakuje do następnej wioski), więc nie jest w stanie go przeczytać i nagle pisze do rady, że mu skrypt nie działa...

Dlatego dobre byłoby gdyby ten komunikat oprócz pokazywania info o tym "że nie ma ram czasowych" fajnie by było, jakby informował o tym ile ktoś już się spóźnił z wysyłką fejków do "Najdalszej wsi" z fejkomatu gdy jest za daleko lub ile czasu potrzebuje do "najbliższej wsi" z fejkomatu gdy jest za blisko, bo po prostu jest za blisko względem czasu wprowadzonym w fejkomacie.

i żeby taki komunikat nie znikał po 2 sek, tylko np. żeby był z 10 sek aby "najwolniejsi" gracze zdołali to przeczytać i nie pytać i pisać milion PW, dlaczego to mu fejkomat nie działa ;)
tylko problem pojawia się gdy przeskakuje do następnej wsi, bo wtedy tym bardziej nie da się przeczytać, można to opóźnić o te 10 sek i wtedy pokazać ten komunikat?

1711918699982.png
 

slowik

Operator Gry
Operator Gry
Wynik reakcji
61
Nowy generator fejkomatu dostępny na https://plemiona.app

image.png
 
Ostatnia edycja:

Space Monkey

Chłop
Wynik reakcji
3
@slovik-- Czy jest opcja w tym generatorze skryptu, aby automatycznie dobierał on ilość wojsk do limitów w grze, czy trzeba mimo wszystko template ustawiać ręcznie??
 

slowik

Operator Gry
Operator Gry
Wynik reakcji
61
@slovik-- Czy jest opcja w tym generatorze skryptu, aby automatycznie dobierał on ilość wojsk do limitów w grze, czy trzeba mimo wszystko template ustawiać ręcznie??

jeśli chodzi o fake limit to tym zajmuje się fejkomat w swojej własnej postaci.
Ten generator ułatwia tylko jego ustawienie. Szablony wojsk można wykorzystać np. do burzaków
 

lorddaniel123

Chłop
Wynik reakcji
28
Próbuje zrobić aby ten skrypt odpalał się z forum i wykorzystywał funkcję "boundaries". O ile w przypadku prostokątnych obszarów udało mi się odpalić tak kołowe sprawiają, że otrzymuję błąd "Obecne ustawienia nie definiują żadnych celów". Gdy wyrzucę fragment odpowiadający za definiowanie koła tj { "x": 642, "y": 458, "r": 30} skrypt zaczyna działać. Wie ktoś w czym rzecz? Strasznie mnie to nurtuje bo ten sam fragment wklejony do paska działa jak marzenie.

Kod:
{
  "troops_templates": [
    { "spy": 1,"ram": 1},
    { "spy": 1, "catapult": 1},
    { "ram": 1},
    {"catapult": 1} 
],
  "fill_exact": false,
  "fill_troops": "spy,spear,sword,axe,archer,light,marcher,heavy,ram,catapult",
  "include_barbarians": false,
  "boundaries": [
    { "min_x": 566, "max_x": 568, "min_y": 420, "max_y": 423},
    { "min_x": 460, "max_x": 464, "min_y": 370, "max_y": 374},
    { "x": 642, "y": 458, "r": 30}],
  "ally_ids": "243, 402, 87, 133",
  "blocking_enabled": true,
  "blocking_local": {  
    "time_s": 3600,    
    "count": 1,        
    "block_players": true  
  },
  "skip_night_bonus": false,
  "changing_village_enabled": false,
  "date_ranges": [
               "15.09.2024 08:00 - 30.09.2024 23:50"
]

};
 

hermitowski

Miecznik
Wynik reakcji
63
Wie ktoś w czym rzecz? Strasznie mnie to nurtuje bo ten sam fragment wklejony do paska działa jak marzenie.
Obecna logika w przypadku podania obu typów obszarów działa jako przecięcie okręgów z prostokątami. Zgłosiłem poprawkę, aby skrypt wybierał wioski do puli, jeżeli leży w przynajmniej jednym obszarze.
 
Do góry