[Pasek] Hermitowskie Fejki

hermitowski

Miecznik
Wynik reakcji
65
> 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

Lekki Kawalerzysta
Wynik reakcji
331
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
65
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
65
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
65
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
65
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
65
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” ? :)
 

slowik

Operator Gry
Plemiona Team
Operator Gry
Wynik reakcji
62
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
Plemiona Team
Operator Gry
Wynik reakcji
62
@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
65
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