[Pasek] Hermitowskie Surki

DeletedUser

Guest
Opis parametrów:
Kod:
var HermitowskieSurki = {
nearTimeThreshold: 30,
resourceThreshold: [100000, 100000, 100000],
populationAvailableThreshold: 200,
tradersSafeguard: 10,
};

* resourceThreshold - kolejne drewno, glina, żelazo, liczba, która mówi od jakiego progu wioska jest uznawana za dawcę lub biorcę. Jeżeli wioska ma więcej surowców niż podany próg, to jest dawcą (będzie z niej można wysłać konkretny typ surowca), w przeciwnym wypadku jest biorcą (potrzebuje ona tego typu surowców). 'Aktualna' wartość surowców w wiosce jest liczona za pomocą: aktualna wartość w spichlerze dodać przychodzące transporty, które dojdą za mniej niż *nearTimeThreshold* minut. Pozwoli to uniknąć sytuacji, że wioska dostaje nadmiar surowców. Przykładowo, jeżeli próg jest ustawiony na 100k, w wiosce jest 40k, do wioski przychodzą dwa transporty: 15k za 15 minut oraz 85k za 5h, do wioski zostanie wezwane 100k - 40k - 15k (45k) surowców. Biorca/dawca jest oddzielnie dla każdego typu surowców, czyli wioska może być biorcą drewna, dawcą gliny, dawcą żelaza.
* nearTimeThreshold - czas w minutach, który pomaga przy liczeniu faktycznych surowców w wiosce
* populationAvailableThreshold - jeżeli wioska ma mniej dostępnej ludności niż podana wartość to jest pomijana przy rozważaniu czy dla danego typu surowców wioska jest biorcą. Jeżeli przy progu 100k, wioska ma 85k drewna oraz dostępna ludność < populationAvailableThreshold to wioska nie będzie biorcą drewna. W zamyśle skrypt miał balansować surowce do rekrutacji, a wioski z brakiem ludności nie wymagają surowców do rekrutacji.
* tradersSafeguard - ilość pozostawianych kupców w wiosce, powoduje to, że królestwo nie zostanie bez kupców. Jeżeli balansujecie na noc, to można do 0 ustawić. W dzień polecam zostawić po 10 kupców na wioskę, aby można było czasem wezwać surowce na monety/grube.

Skrypt generalnie generuje listę transportów. Transporty są w miarę zoptymalizowane pod moje widzi misie. To jest: najpierw surowce są wysyłane do wiosek z mniejszą liczbą ogólnej populacji. Dodatkowo transporty są wykonywane w miarę lokalnie. Średni czas dostawy to zazwyczaj 30 minut, aczkolwiek dużo zależy od sytuacji gospodarczej. Jeżeli masz ogólnie braki, to skrypt nie wyczaruje ci surowców. Jeżeli jest średnio to transporty mogą iść długo (np z zaplecza większość, jeżeli na froncie masz biedę po klikaniu grubasów). Całkiem fajnie jak prawie wszędzie masz surowce (czyli przykładowo nie wybijasz monet do zera, nie rekrutujesz ciągle deffa).
Tl;dr masz pomysł co by zrobić lepiej albo co według ciebie źle działa to napisz. Chętnie usłyszę twoją opinię.
 

arctic-warrior

Topornik
Wynik reakcji
14
Fajny skrypt, ostatnio często z niego korzystam, ale zaczyna mnie męczyć z powodu wyskakujących błędów.
Wciskam Skrypt. Wyskakuje okno z listą wiosek i wartościami surki do przesyłu. Wciskam wykonaj, potwierdź i pojawia się komunikat niewystarczająco surowców.
Wchodzę w wioskę z której miał iść transport, robię wszystko od początku i surowce się wysyłają. Podobnie wygląda sprawa z ilością dostępnych kupców.
Wygląda mi na to, że skrypt bierze pod uwagę ilości dostępne w danej wiosce, której obecnie jesteśmy, pomimo tego że chcemy przesłać z innej wioski.
Nie wiem czy mnie rozumiesz? Może wrzucić jakieś screeny ?
 

DeletedUser

Guest
Problem znany mi jest od kilku miesięcy (kilku innych graczy też go zauważyło). Przyczyna w miarę skomplikowana do wytłumaczenia. Skrypt ten zgłosiłem do usunięcia jakieś dobre półtora miesiąca temu, ale Support ma ważniejsze sprawy na głowie, więc jest jak jest. Na miejsce tego skryptu planuję przywrócić zapełnianie spichlerza, które kiedyś usunąłem (własną implementację skryptu stivensa), ale kiedy wejdzie to nie mam pojęcia.

Z uwagi na błędy w skrypcie i 'losowe' wysyłanie surowców, proszę o zaprzestanie korzystania z tego skryptu, gdyż surowce wysyła z innej wioski niż pokazuje, co może prowadzić do strat surowców.
 

arctic-warrior

Topornik
Wynik reakcji
14
To nie do końca tak jest że wysyła 'losowo'
Wszystko działa, dopóki w wiosce w której aktualnie jesteśmy jest na tyle surowców by zaakceptować transporty.
Więc taK: mam 3 wioski A,B,C. Aktualnie przegląd z wioski A, odpalamy skrypt. Pokazuje nam transport z wioski B do C w ilości 10k drewna. I teraz, jeśli w wiosce A jest 10k drewna transport zostaje zaakceptowany, ale nie pobiera transportu z wioski A, tylko jak pokazał skrypt z wioski B. Jeśli natomiast w wiosce A nie ma 10k drewna to wtedy wyskakuje informacja o braku surowców (mimo tego że chcemy wysłać z wioski B, gdzie te surowce są )
 

DeletedUser

Guest
Komunikaty te są generowane przez serwer nie przez skrypt.
 

arctic-warrior

Topornik
Wynik reakcji
14
Tak czy inaczej nie do końca działa jak powinno i czasem faktycznie wysyła z innej wioski. Szkoda, bo przydało by się coś takiego.
 

DeletedUser

Guest
Skrypt został zaktualizowany. Zostało przywrócenie działanie skryptu takie jak było opisane tutaj. Czyli po wejściu w rynek -> wezwij, skrypt uzupełni formularz dotyczący wzywani

needs - Ile surowców ma być docelowo w wiosce
clipToMaxStorage - Czy przyciąć liczbę surowców do pojemności spichlerza
storagePercentageLimit - Zapotrzebowanie nie przekroczy podanych procentowych wartości pojemności spichlerza
storageLimit - Zapotrzebowanie nie przekroczy podanych wartości
idleTime - Od zapotrzebowania zostanie odjęta podana minutowa produkcja wioski docelowej
resourcesSafeguard - Wioskom z których są brane surowce zostanie zostawione co najmniej tyle surowców
tradersSafeguard - Wioskom z których są brane surowce zostanie zostawione co najmniej tyle kupców
perfectTiming - Czy wziąć pod uwagę czas podróży. Jeżeli potrzeba przesłać jest 1000 surowców, a wioska sama produkuje 3k surowców na godzinę, a transport trwa więcej niż 20 minut (w tym czasie wioska sama wyprodukuje ten brak) to transport nie jest podejmowany.
clipToTraderCapacity - Nie wysyłaj kupca, jeżeli w transporcie ma mniej niż traderCapacityClippingValue surowców
delta - Dodatkowa liczba surowców, która ma zostać wezwana. Czyli zapotrzebowanie będzie wynosić koszty budowy + delta
Kod:
javascript:var HermitowskieSurki = {
  // needs
  needs: [50, 50, 50].map(x => x * 1000),
  delta: [0, 0, 0],
  clipToMaxStorage: true,
  storagePercentageLimit: [100,100,100],
  storageLimit: [50, 50, 50].map(x => x * 1000),
  idleTime: 15,
  // summoning
  resourcesSafeguard: [28, 30, 25].map(x => x * 1000),
  tradersSafeguard: 0,
  perfectTiming: false,
  clipToTraderCapacity: true,
  traderCapacityClippingValue: 500,
  // misc
  enableAllByDefault: true
};
$.getScript('https://media.innogamescdn.com/com_DS_PL/skrypty/HermitowskieSurki.js'); void(0);
 
Ostatnio edytowane przez moderatora:

DeletedUser

Guest
TypeError: checkbox is null

misc@https://media.innogamescdn.com/com_DS_PL/skrypty/HermitowskieSurki.js?_=1568043372034:107:21
init@https://media.innogamescdn.com/com_DS_PL/skrypty/HermitowskieSurki.js?_=1568043372034:24:18
@https://media.innogamescdn.com/com_DS_PL/skrypty/HermitowskieSurki.js?_=1568043372034:238:35
@https://media.innogamescdn.com/com_DS_PL/skrypty/HermitowskieSurki.js?_=1568043372034:244:3

Someone?
 

Lord Miksa

Szlachcic
Wynik reakcji
3.595
Myśle ze za dużo tutaj kombinowania w tym skrypcie, lepsze byłoby coś prostszego.

Żeby brało tylko surki w jakiś bardziej mądrzejszy sposób i tyle, bo kombinowanie teraz z parametrami dla głupich surowców to mało komu sie chce. wolą recznie kliknąć wezwij
 

hermitowski

Miecznik
Wynik reakcji
57
JavaScript:
javascript:
var HermitowskieSurki = {
    target_resources: {
        'wood': 28000,
        'stone': 30000,
        'iron': 25000
    },
    storage_percentage_limit: {
        'wood': 95,
        'stone': 95,
        'iron': 95
    },
    resources_safeguard: {
        'wood': 28000,
        'stone': 30000,
        'iron': 25000
    },
    trim_to_storage_capacity: true,
    traders_safeguard: 0,
    idle_time: 5, /* minutes */
    trader_capacity_threshold: 0
};
$.ajax('https://media.innogamescdn.com/com_DS_PL/skrypty/HermitowskieSurki.js?_=' + ~~(Date.now() / 9e6), { cache: 1, dataType: 'script' }); void (0);

target_resources - docelowe zapotrzebowanie na surowce
trim_to_storage_capacity - czy brać pod uwagę pojemność spichlerza, aby nie przelać wezwanych surowców, brane jest minimum z storage_percentage_limit i idle_time
storage_percentage_limit
- jeżeli trim_to_storage_capacity jest aktywne, to ustwienie oznacza limit w postaci procentowej pojemności spichlerza (na obecnym poziomie - skrypt nie uwzględnia zmian pojemności spichlerza, które mogą się zmienić w czasie transportu)
resources_safeguard - ilość surowców, która musi zostać w wioskach, z których wzywane są surowce, stosowane, aby uniknąć zabierania surowców do zera, co może stopować MK
traders_safeguard - ile kupców zostawić w wiosce, czyli określa ile kupców użyć do przeniesienia surowców, domyślna wartość - 0 - użyje wszystkich
idle_time - jeżeli trim_to_storage_capacity jest aktywne, to ustawienia oznacza czas w minutach, po których produkcja sama zapełni spichlerz w momencie dostarczenia ostatniego transportu przez skrypt
trader_capacity_threshold - minimalna ilość surowców jakie kupiec może przenieść, ustawienie na wartość 100 zapobiegnie przenoszenie przez kupca mniej niż 100 jednostek surowców, może być przydatne, jeżeli mamy więcej niż jedną wioskę (wiele razy uruchomimy skrypt) i musimy przenieść więcej surowców niż mamy pojemności w kupcach, wówczas czas pokazany przez skrypt jest przybliżonym czasem

Ogólnie skrypt minimalizuje czas potrzebny na zebranie się w wiosce określonej liczby surowców.
Jeżeli przykładowo w wiosce brakuje 40 minutowej produkcji drewna, a sam transport idzie 30 minut, to zostanie wezwana 10 minutowa produkcja drewna i tym samym czas po którym osiągniemy docelową ilość surowców wyniesie 30 minut (mniej się nie da).
Skrypt uwzględnia zmiany produkcji (kolejka budowy) i przychodzące surowce, np. grabieże, łupy, zbieractwo, transporty.
 
Ostatnia edycja:

Kiecio

Chłop
Wynik reakcji
2
JavaScript:
javascript:
var HermitowskieSurki = {
    target_resources: {
        'wood': 28000,
        'stone': 30000,
        'iron': 25000
    },
    storage_percentage_limit: {
        'wood': 95,
        'stone': 95,
        'iron': 95
    },
    resources_safeguard: {
        'wood': 28000,
        'stone': 30000,
        'iron': 25000
    },
    trim_to_storage_capacity: true,
    traders_safeguard: 0,
    idle_time: 5, /* minutes */
    trader_capacity_threshold: 0
};
$.ajax('https://media.innogamescdn.com/com_DS_PL/skrypty/HermitowskieSurki.js?_=' + ~~(Date.now() / 9e6), { cache: 1 }); void (0);

target_resources - docelowe zapotrzebowanie na surowce
trim_to_storage_capacity - czy brać pod uwagę pojemność spichlerza, aby nie przelać wezwanych surowców, brane jest minimum z storage_percentage_limit i idle_time
storage_percentage_limit
- jeżeli trim_to_storage_capacity jest aktywne, to ustwienie oznacza limit w postaci procentowej pojemności spichlerza (na obecnym poziomie - skrypt nie uwzględnia zmian pojemności spichlerza, które mogą się zmienić w czasie transportu)
resources_safeguard - ilość surowców, która musi zostać w wioskach, z których wzywane są surowce, stosowane, aby uniknąć zabierania surowców do zera, co może stopować MK
traders_safeguard - ile kupców zostawić w wiosce, czyli określa ile kupców użyć do przeniesienia surowców, domyślna wartość - 0 - użyje wszystkich
idle_time - jeżeli trim_to_storage_capacity jest aktywne, to ustawienia oznacza czas w minutach, po których produkcja sama zapełni spichlerz w momencie dostarczenia ostatniego transportu przez skrypt
trader_capacity_threshold - minimalna ilość surowców jakie kupiec może przenieść, ustawienie na wartość 100 zapobiegnie przenoszenie przez kupca mniej niż 100 jednostek surowców, może być przydatne, jeżeli mamy więcej niż jedną wioskę (wiele razy uruchomimy skrypt) i musimy przenieść więcej surowców niż mamy pojemności w kupcach, wówczas czas pokazany przez skrypt jest przybliżonym czasem

Ogólnie skrypt minimalizuje czas potrzebny na zebranie się w wiosce określonej liczby surowców.
Jeżeli przykładowo w wiosce brakuje 40 minutowej produkcji drewna, a sam transport idzie 30 minut, to zostanie wezwana 10 minutowa produkcja drewna i tym samym czas po którym osiągniemy docelową ilość surowców wyniesie 30 minut (mniej się nie da).
Skrypt uwzględnia zmiany produkcji (kolejka budowy) i przychodzące surowce, np. grabieże, łupy, zbieractwo, transporty.
nie działa:(
 

Malcu

Chłop
Wynik reakcji
0
Tutaj już dawno poprawiony skrypt,w liście natomiast dalej stary, ten support to cyrk.
 
Do góry