Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // Stałe
- const Version = "v1.0.0";
- // Player vs Player
- const Main = 1;
- const Healer = 2;
- const Attacker = 3;
- const Blocker = 4;
- /* --- Akcje --- */
- const IloscAkcji = 9;
- const NudyNaPudy = 0;
- const Working = 0;
- const Wyprawa = 1;
- const Lochy = 2;
- const Arena = 3;
- const CT = 4;
- const DodanieHP = 5;
- const Roztapiarka = 6;
- const Trening = 7;
- const Misja = 8;
- const Pakowanie = 9;
- const SessionWorking = 10;
- const AutoLogin = 11;
- const AutoRefresh = 12;
- /* --- Bindy itp --- */
- const Bindy = ["#cooldown_bar_text_expedition", "#cooldown_bar_text_dungeon", "#cooldown_bar_text_arena", "#cooldown_bar_text_ct" ];
- const Links = ["#cooldown_bar_expedition", "#cooldown_bar_dungeon", "#cooldown_bar_arena", "#cooldown_bar_ct" ];
- const KoniecCzekania = [ "Na wyprawę", "Do lochów", "Do areny", "Do Circus Turma"];
- const Akcje = [ "Opierdalam się", "Na wyprawę", "Do lochów", "Do areny", "Do Circus Turma", "Wpierdzielam jedzenie", "Bawie sie w topienie", "Idę trenować", "Biorę misję", "Pakuję golda", "", "Próbuję się zalogować", "Odświeżam co 30 sec"];
- /* --- Nic ciekawego --- */
- const IsCreatorMod = 0;
- const Debug = 1;
- /* Linki: mod submod aType */
- const link_trening = ["training", "", "", ""];
- const link_podglad = ["overview", "", "", "1"];
- const link_wyprawa = ["location", "", "", ""];
- const link_lochy = ["dungeon", "", "", ""];
- const link_roztapiarka = ["forge", "smeltery", "", ""];
- const link_arena = ["arena", "", "", ""];
- const link_arenaProvincum = ["arena", "serverArena", "2", ""];
- const link_ct = ["arena", "grouparena", "", ""];
- const link_ctProvincum = ["arena", "serverArena", "3", ""];
- const link_raportyArena = ["reports", "showArena", "", ""];
- const link_raportyCT = ["reports", "showCircusTurma", "", ""];
- const link_ranking = ["highscore", "", "", ""];
- const link_listaCzlonkowGildii = ["guild", "memberList", "", ""];
- const link_misja = ["quests", "", "", ""];
- const link_aukcja = ["auction", "", "", ""];
- const link_paczki = ["packages", "", "", ""];
- const link_rynekGildii = ["guildMarket", "", "", ""];
- const link_handlarze = ["inventory", "", "", ""];
- const link_action = [ [link_arena, link_ct], [link_arenaProvincum, link_ctProvincum]];
- /* --- Typy przedmiotów --- */
- const Helm = 1;
- const Bron = 2;
- const Tarcza = 4;
- const Napiersnik = 8;
- const Pierscien = 48;
- const Jedzenie = 64;
- const Rekawice = 256;
- const Buty = 512;
- const Amulet = 1024;
- const Eq = [Rekawice, Buty, Helm, Tarcza, Napiersnik, Bron, Pierscien, Amulet];
- const BoxEq = 1855;
- /* --- Położenia --- */
- const Inventarz = "#inv";
- const Paczki = "#packages_wrapper";
- const Sklep = "#shop";
- const guildAuction = "#market_item_table";
- /* --- Stałe exponenty statystyk --- */
- const StatsExp = [2.6, 2.5, 2.3, 2.3, 2.5, 2.4];
- /* --- Dane misji --- */
- const MissionID_end = ["#qcategory_finished", "#qcategory_restart"];
- const MissionID_start = ["#qcategory_arena", "#qcategory_grouparena", "#qcategory_combat", "#qcategory_expedition", "#qcategory_dungeon", "#qcategory_items"];
- /* --- Przyciski --- */
- const PaczkiButton = `<div style="text-align: center;"><button type="button" class="awesome-button" onclick="PutAllItemsToBox('`+Paczki+`', '`+Inventarz+`')">Przenieś przedmioty: Paczki → Inwentarz</button></div>`;
- const HandlarzeButton = `<div style="text-align: center;"><button type="button" class="awesome-button" onclick="PutAllItemsToBox('`+Inventarz+`', '`+Sklep+`')">Przenieś przedmioty: Inwentarz → Sklep</button></div>`;
- const AukcjaButton = `<td style="text-align:left"><div class="tooltip"><button type=button class="awesome-button" onclick="KupJedzenie()">Kup widoczne jedzenie</button><span id="B_tooltiptext" class="tooltiptext">bosze</span></div></td>`;
- const ClickAllArena = `<button style="float: left;padding: 2% 3% 2% 3%;margin: 10px 0 10px 0;" onclick="jQ('button[data-type=3]').click()">Click all Arena</button>`;
- const ClickAllCT = `<button style="float: right;padding: 2% 3% 2% 3%;margin: 10px 0 10px 0;" onclick="jQ('button[data-type=4]').click()">Click all CT</button>`;
- /* --- Paczki --- */
- const SoulBoudData = { '100000': 30781,'200000': 30782,'300000': 30783,'400000': 30784,'500000': 30785,'600000': 30786,'700000': 30965,'800000': 30787,'900000': 30966,'1000000': 30788,'2000000': 30789,'3000000': 30790,'5000000': 30791};
- const sniezki =
- {
- name: 'Śnieżka',
- class: 'item-i-21-5',
- prize: [100000, 200000, 300000, 1000000]
- }
- const dynie =
- {
- name: 'Dynia',
- class: 'item-i-21-7',
- prize: [100000, 200000, 300000, 400000, 500000, 600000, 700000, 800000, 900000, 1000000, 2000000, 3000000, 5000000]
- }
- const dataPacks = [sniezki, dynie];
- /* --- Menu --- */
- const Menu =
- [
- `<table width="100%">
- <tr><td>Wybierz moba</td><td><select id="B_MobZWyprawy"><option value="1">Pierwszy</option><option value="2">Drugi</option><option value="3">Trzeci</option><option value="4">Czwarty</option></select></td></tr>
- </table>`,
- `<b>Ilość mobów: <span id="B_MZLView"></span></b><input class="xSlider" type="range" id="B_MobZLochow" min="1" max="15" step="1">
- Wybierz ilość potówrów, które ma bić przed wyjściem z lochów - np. jeśli nie dajesz rady ubić bossa to zmniejszasz, by przed nim wychodził z lochów.
- <hr>
- Wybierz typ lochów <select style="width: 60%;" id="B_TypLochow"><option value="1">Normalne</option><option value="2">Zaawansowane</option></select>`,
- `<table width="100%">
- <tr><td>Typ areny</td><td><select id="B_TypArena"><option value="1">Zwykła</option><option value="2">Provincum</option></select></td></tr>
- <tr><td>Kogo ma bić</td><td><select id="B_KogoBicArena"><option value="1">Pierwszego</option><option value="2">Losowego</option><option value="3">Ostatniego</option></select></td></tr>
- <tr><td>Automatyczny symulator</td><td><label class="switch"><input id="B_SymulatorArena" type="checkbox"><span class="sliderFromSwitch round"></span></label></td></tr>
- </table>`,
- `<table width="100%">
- <tr><td>Typ CT</td><td><select id="B_TypCT"><option value="1">Zwykła</option><option value="2">Provincum</option></select></td></tr>
- <tr><td>Kogo ma bić</td><td><select id="B_KogoBicCT"><option value="1">Pierwszego</option><option value="2">Losowego</option><option value="3">Ostatniego</option></select></td></tr>
- <tr><td>Automatyczny symulator</td><td><label class="switch"><input id="B_SymulatorCT" type="checkbox"><span class="sliderFromSwitch round"></span></label></td></tr>
- </table>`,
- `<b>Próg HP: <span id="B_PHPView"></span></b>
- <input class="xSlider" type="range" id="B_ProcentHP" min="10" max="90" step="10">
- Wybierz od jakiego procentu HP ma zacząć jeść<hr>
- Strony z jedzeniem
- <table width="100%">
- <tr><td>1</td><td>2</td><td>3</td><td>4</td><td>5</td></tr>
- <tr>
- <td><input id="B_SZJ-1" type="checkbox"></td>
- <td><input id="B_SZJ-2" type="checkbox"></td>
- <td><input id="B_SZJ-3" type="checkbox"></td>
- <td><input id="B_SZJ-4" type="checkbox"></td>
- <td><input id="B_SZJ-5" type="checkbox"></td>
- </tr>
- </table>
- <hr>
- Wyciągać z paczek (do zrobienia)<label class="switch"><input id="B_JWZP" type="checkbox"><span class="sliderFromSwitch round"></span></label>
- `,
- `Strony z itemkami do roztopu
- <table width="100%">
- <tr><td>1</td><td>2</td><td>3</td><td>4</td><td>5</td></tr>
- <tr>
- <td><input id="B_SZI-1" type="checkbox"></td>
- <td><input id="B_SZI-2" type="checkbox"></td>
- <td><input id="B_SZI-3" type="checkbox"></td>
- <td><input id="B_SZI-4" type="checkbox"></td>
- <td><input id="B_SZI-5" type="checkbox"></td>
- </tr>
- </table>
- <br>Wymagany gold do topienia: <input class="BINum" id="B_TPG" type="number">`,
- `Co trenować
- <table width="100%">
- <th style="width: 50%"></th><th style="width: 50%"></th>
- <tr><td>Siła</td><td><input id="B_SDT-1" type="checkbox"></td></td></tr>
- <tr><td>Władanie</td><td><input id="B_SDT-2" type="checkbox"></td></td></tr>
- <tr><td>Zręczność</td><td><input id="B_SDT-3" type="checkbox"></td></td></tr>
- <tr><td>Budowa</td><td><input id="B_SDT-4" type="checkbox"></td></td></tr>
- <tr><td>Charyzma</td><td><input id="B_SDT-5" type="checkbox"></td></td></tr>
- <tr><td>Inteligencja</td><td><input id="B_SDT-6" type="checkbox"></td></td></tr>
- </table>
- <hr>
- Sposób wybierania statystyki <select style="display: inline-block;width: auto;" id="B_TRS"><option value="1">Najtańsza</option><option value="2">Losowa</option></select></span>
- <hr>
- <b>Pole treningowe: <span id="B_PPTView"></span></b><input class="xSlider" type="range" id="B_PPT" min="0" max="20" step="1">`,
- `Które misje wybierać (to są zakładki)
- <table width="100%">
- <th style="width: 50%"></th><th style="width: 50%"></th>
- <tr><td>Arena</td><td><input id="B_MDW-1" type="checkbox"></td></td></tr>
- <tr><td>CT</td><td><input id="B_MDW-2" type="checkbox"></td></td></tr>
- <tr><td>Walka</td><td><input id="B_MDW-3" type="checkbox"></td></td></tr>
- <tr><td>Wyprawa</td><td><input id="B_MDW-4" type="checkbox"></td></td></tr>
- <tr><td>Lochy</td><td><input id="B_MDW-5" type="checkbox"></td></td></tr>
- <tr><td>Przedmioty</td><td><input id="B_MDW-6" type="checkbox"></td></td></tr>
- </table>`,
- `<table width="100%">
- <tr><td>Na osobnej karcie</td><td><label class="switch"><input id="B_POK" type="checkbox"><span class="sliderFromSwitch round"></span></label></td></tr>
- <tr><td>Strona z eq na paczki</td><td><select id="B_SZEQNP"><option value="1">1</option><option value="2">2</option><option value="3">3</option><option value="4">4</option><option value="5">5</option></select></td></tr>
- </table>`,
- `<table width="100%">
- <caption>Do symulatora</caption>
- <tr><td>Podaj swoje id</td><td><input class="BINum" id="B_IndexGracza" type="number"></td></tr>
- <tr><td>Numer prowincji</td><td><input class="BINum" id="B_IndexSerwera" type="number"></td></tr>
- </table>
- <hr>
- <table width="100%">
- <caption>Inne</caption>
- <tr><td>Automatyczne logowanie - musisz mieć zapisane hasło</td><td><label class="switch"><input id="B_AutoLogowanie" type="checkbox"><span class="sliderFromSwitch round"></span></label></td></tr>
- <tr><td>Odświeżanie co 30 sec podczas konserwacji</td><td><label class="switch"><input id="B_AutoRefresh" type="checkbox"><span class="sliderFromSwitch round"></span></label></td></tr>
- </table>`
- ];
- const UstawieniaID =
- [
- "#B_MobZWyprawy",
- "#B_MobZLochow",
- "#B_TypLochow",
- "#B_TypArena",
- "#B_KogoBicArena",
- "#B_SymulatorArena",
- "#B_TypCT",
- "#B_KogoBicCT",
- "#B_SymulatorCT",
- "#B_ProcentHP",
- "#B_SZJ-1",
- "#B_SZJ-2",
- "#B_SZJ-3",
- "#B_SZJ-4",
- "#B_SZJ-5",
- "#B_SZJ-6",
- "#B_JWZP",
- "#B_SZI-1",
- "#B_SZI-2",
- "#B_SZI-3",
- "#B_SZI-4",
- "#B_SZI-5",
- "#B_SZI-6",
- "#B_TPG",
- "#B_SDT-1",
- "#B_SDT-2",
- "#B_SDT-3",
- "#B_SDT-4",
- "#B_SDT-5",
- "#B_SDT-6",
- "#B_TRS",
- "#B_PPT",
- "#B_MDW-1",
- "#B_MDW-2",
- "#B_MDW-3",
- "#B_MDW-4",
- "#B_MDW-5",
- "#B_MDW-6",
- "#B_POK",
- "#B_SZEQNP",
- "#B_IndexGracza",
- "#B_IndexSerwera",
- "#B_AutoLogowanie",
- "#B_AutoRefresh"
- ];
- const UstawieniaName =
- [
- "MobZWyprawy",
- "MobZLochow",
- "TypLochow",
- "TypArena",
- "KogoBicArena",
- "SymulatorArena",
- "TypCT",
- "KogoBicCT",
- "SymulatorCT",
- "ProcentHP",
- "SZJ-1",
- "SZJ-2",
- "SZJ-3",
- "SZJ-4",
- "SZJ-5",
- "SZJ-6",
- "JWZP",
- "SZI-1",
- "SZI-2",
- "SZI-3",
- "SZI-4",
- "SZI-5",
- "SZI-6",
- "TPG",
- "SDT-1",
- "SDT-2",
- "SDT-3",
- "SDT-4",
- "SDT-5",
- "SDT-6",
- "TRS",
- "PPT",
- "MDW-1",
- "MDW-2",
- "MDW-3",
- "MDW-4",
- "MDW-5",
- "MDW-6",
- "POK",
- "SZEQNP",
- "IndexGracza",
- "IndexSerwera",
- "AutoLogowanie",
- "AutoRefresh",
- "Paki-Status",
- "Paki-Cena",
- "Paki-ItemId"
- ];
- /* --- Zmienne --- */
- var Akcja = NudyNaPudy;
- var CzasDoAkcji = ["", "", "", ""];
- var CzasDoTopienia = [0, 0, 0, 0, 0, 0];
- var Funkcja = [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1];
- var AllowActions = false;
- /* --- Menu --- */
- var ustawienia = [];
- // Player vs Player
- var Symulator = {
- Ja:0,
- EnemyID: [],
- EnemyCount: 0,
- EnemyLoaded: 0,
- WeakestEnemy: {WinRatio: 0, Position: 0},
- Przyciski: []
- };
- /* --- jQuery --- */
- var jQ;
- /* --- Menu --- */
- var MenuUstawien = NudyNaPudy;
- var MainMenu = [];
- /* --- Paczkowanie --- */
- var PakiStatus = 0;
- var PakiItemID = 0;
- var PakiCena = 0;
- /* --- Moje staty --- */
- var staty = [];
- /* --- Deklaracja klas --- */
- /* --- Player --- */
- class Player {
- constructor(playerID, serverID, TypeOfCalculate)
- {
- this.character = [];
- this.playerID = playerID;
- this.serverID = serverID;
- this.type = TypeOfCalculate;
- this.zagrozenie = 0;
- }
- GetLink(character)
- {
- var Url = `https://s`+this.serverID+`-pl.gladiatus.gameforge.com/game/index.php?`;
- Url += `mod=player&doll=`+character+`&p=`+this.playerID;
- return Url;
- }
- CalculateStats()
- {
- if(!this.zagrozenie)
- {
- for(var i = 0; i < this.character.length; i++)
- {
- this.zagrozenie += this.character[i].zagrozenie;
- if(this.character[i].type == Blocker) this.zagrozenie += 500;
- }
- }
- }
- };
- /* --- Character --- */
- class Char
- {
- constructor()
- {
- this.isMain = false;
- this.ZadawaneObrazenia = [0, 0];
- this.BlokowaneObrazenia = [0, 0];
- }
- CalculateStats(Enemy)
- {
- this.Trafienie = this.wladanie / ( this.wladanie + Enemy.zrecznosc );
- this.PodwojneTrafienie = this.wladanie * this.charyzma / ( Enemy.inteligencja * Enemy.zrecznosc * 10);
- this.ZadawaneObrazenia = [this.obrazeniaMin, this.obrazeniaMax];
- this.BlokowaneObrazenia[0] = Math.ceil( (this.pancerz / 74) - ( ( this.pancerz / 74)/660 ) + 1 );
- this.BlokowaneObrazenia[1] = Math.floor( (this.pancerz/66) + (this.pancerz/660) );
- }
- DmgDone(Enemy, charHitChance, rounds)
- {
- var Trafienia = charHitChance*(this.Trafienie*rounds*(1 - Enemy.ZablokowanieTrafienia)*(1+this.PodwojneTrafienie));
- var TrafieniaKrytyczne = Trafienia*this.KrytyczneTrafienie*(1 - Enemy.UnikniecieKrytyczne);
- var PMinMax = this.ZadawaneObrazenia[0] - Enemy.BlokowaneObrazenia[1];
- var PMaxMin = this.ZadawaneObrazenia[1] - Enemy.BlokowaneObrazenia[0];
- var avgNormalDmg = Math.max((PMinMax+PMaxMin)/2, 0);
- var avgPureDmg = (this.ZadawaneObrazenia[0] + this.ZadawaneObrazenia[1])/2;
- var Dmg = Trafienia*avgNormalDmg + TrafieniaKrytyczne*avgPureDmg;
- return Dmg;
- }
- GetThreat()
- {
- return (this.type == Blocker ? this.zagrozenie+500 : this.zagrozenie)
- }
- };
- DebugLog("Start");
- // True page
- if(typeof jQuery != "undefined")
- {
- jQ = jQuery.noConflict();
- LoadData();
- ShowBot();
- AddButtons();
- GetPlayerData();
- if(!IsCreatorMod) jQ(document).ready(OnReady);
- }
- function Login()
- {
- if ($("login_server").value) $("loginform").action = "//"+$("login_server").value;
- $("loginform").submit();
- }
- function isOn()
- {
- return Funkcja[Working] && Funkcja[Working];
- }
- // Taki tam typowy Main
- function OnReady()
- {
- setInterval(GuiUpdate, 1000);
- GuiUpdate();
- if(!isLogged())
- {
- if(isOn())
- {
- if(isLogouted())
- {
- if(ustawienia['AutoLogowanie'])
- {
- setAction(AutoLogin);
- setTimeout(Login, 5000);
- }
- }
- else if(ustawienia['AutoRefresh'])
- {
- setAction(AutoRefresh);
- setTimeout(ReloadPage, 30000);
- }
- }
- AllowSetActions();
- return;
- }
- if(ustawienia['TylkoPakowanie']) setTimeout(ReloadPage, 30000);
- setInterval(CheckStatus, 1000);
- setTimeout(AllowSetActions, 1500);
- DoActions();
- }
- function ShowBot()
- {
- var GuiStyle = GetCss();
- var Gui = `<div class="B_Gui" style="top: 50px;" >
- <table class="B_table" style="width: 100%;">
- <caption>Menu bocika</caption>
- <tr><th>Akcja</th><th>Ustawienia</th><th>Stan</th></tr>`;
- var wyprawa = { name: "Wyprawa", haveSlider: true, haveSettings: true, stateNum: 1, index: Wyprawa, settings: Menu[0] };
- var lochy = { name: "Lochy", haveSlider: true, haveSettings: true, stateNum: 1, index: Lochy, settings: Menu[1] };
- var arena = { name: "Arena", haveSlider: true, haveSettings: true, stateNum: 1, index: Arena, settings: Menu[2] };
- var circus = { name: "CT", haveSlider: true, haveSettings: true, stateNum: 1, index: CT, settings: Menu[3] };
- var jedzenie = { name: "Jedzenie", haveSlider: true, haveSettings: true, stateNum: 0, index: DodanieHP, settings: Menu[4] };
- var topienie = { name: "Topienie", haveSlider: true, haveSettings: true, stateNum: 2, index: Roztapiarka, settings: Menu[5] };
- var trening = { name: "Trening", haveSlider: true, haveSettings: true, stateNum: 0, index: Trening, settings: Menu[6] };
- var misje = { name: "Misje", haveSlider: true, haveSettings: true, stateNum: 1, index: Misja, settings: Menu[7] };
- var pakowanie = {name: "Pakowanie", haveSlider: true, haveSettings: true, stateNum: 0, index: Pakowanie, settings: Menu[8] };
- var stanSesji = {name: "Stan sesji", haveSlider: true, haveSettings: true, stateNum: 0, index: SessionWorking, settings: Menu[9] };
- var stanOgolny ={name: "Stan ogólny",haveSlider: true, haveSettings: false, stateNum: 0, index: Working };
- if(ustawienia['TylkoPakowanie']) MainMenu = [pakowanie, stanSesji, stanOgolny];
- else MainMenu = [wyprawa, lochy, arena, circus, jedzenie, topienie, trening, misje, pakowanie, stanSesji, stanOgolny];
- var state = 0;
- for(var i=0; i < MainMenu.length; i++)
- {
- Gui += `<tr>`;
- `<td></td><td></span></td></tr>`;
- Gui += `<td>`+MainMenu[i].name+`</td>`;
- Gui += `<td>`
- if(MainMenu[i].haveSlider)
- {
- var checked = (Funkcja[MainMenu[i].index] == 1 ? `checked`: ``);
- Gui += `<label class="switch">
- <input id="B_F`+MainMenu[i].index+`" type="checkbox" `+checked+`>
- <span class="sliderFromSwitch round"></span>
- </label>`;
- }
- if(MainMenu[i].haveSettings)
- {
- Gui += `<div class="SettingsMenu">
- <input type="image" class="settings" onclick="OpenSettings(`+(i+1)+`)" src="https://image.freepik.com/free-icon/settings-gear-for-interface-button_318-32785.jpg">
- <div id="B_SMT`+(i+1)+`" class="SettingsMenuText"></div>
- </div>`;
- }
- Gui += `</td>`;
- Gui += `<td>`;
- for(var j=0; j < MainMenu[i].stateNum; j++)
- {
- Gui += `<span id="B_State-`+state+`"></span>`;
- if(MainMenu[i].stateNum != (j+1)) Gui += "<br>";
- state++;
- }
- Gui += `</td></tr>`;
- }
- Gui += `</table><h2>Akcja: <span id="B_Action"></span></h4>`;
- Gui += `<span class="BVersion">`+Version+`</span>`
- Gui += `</div>`;
- jQ("head").append(GuiStyle);
- jQ("body").prepend(Gui);
- for(var i=0; i<MainMenu.length; i++)
- {
- if(!MainMenu[i].haveSlider) continue;
- jQ("#B_F"+MainMenu[i].index).change(FunctionChange);
- }
- }
- function FunctionChange()
- {
- var index = jQ(this).attr('id').substring(3, 5);
- var val = Number(jQ(this).is(":checked"));
- console.log("Akcja: "+index+"\nWartość: "+val);
- Funkcja[index] = val;
- if(index == SessionWorking) sessionStorage.setItem("B_Func"+index, Funkcja[index]);
- else if(index == Pakowanie && ustawienia['POK'])
- {
- if(ustawienia['TylkoPakowanie']) sessionStorage.setItem("B_Func"+index, Funkcja[index]);
- if(val == 1 && !ustawienia['TylkoPakowanie'])
- {
- var url = new URL(window.location.href);
- var sh = url.searchParams.get("sh");
- //var newUri = "index.php?mod=" + link_rynekGildii[0] + "&s=p" + "&sh="+sh + "&pakuj=1";
- var newUri = "index.php?mod=" + link_podglad[0] + "&sh="+sh + "&pakuj=1";
- Funkcja[index] = 0;
- window.open(newUri);
- jQ('#B_F'+Pakowanie).prop('checked', false);
- }
- }
- else
- {
- if(ustawienia['TylkoPakowanie'])
- {
- if(index != Pakowanie) localStorage.setItem("B_Func"+index, Funkcja[index]);
- }
- else localStorage.setItem("B_Func"+index, Funkcja[index]);
- }
- if(index > Working && index < SessionWorking && Akcja == index && !Funkcja[index]) setAction(NudyNaPudy);
- if(index == Working && !Funkcja[Working]) setAction(NudyNaPudy);
- else if(index == SessionWorking && !Funkcja[SessionWorking]) Akcja = NudyNaPudy;
- }
- function OpenSettings(which)
- {
- if(MenuUstawien != NudyNaPudy)
- {
- jQ("#B_SMT"+MenuUstawien).css("opacity", "0");
- jQ("#B_SMT"+MenuUstawien).css("display", "none");
- }
- if(MenuUstawien == which)
- {
- MenuUstawien = NudyNaPudy;
- return;
- }
- jQ("#B_SMT"+which).css("display", "inline-block");
- jQ("#B_SMT"+which).html(MainMenu[which-1].settings);
- jQ("#B_SMT"+which).css("opacity", "1");
- MenuUstawien = which;
- for(var i=0; i < UstawieniaID.length; i++)
- {
- var ele = jQ(UstawieniaID[i]);
- if(ele.length != 1) continue;
- ele.change(SettingsChange);
- if(ele.attr( "type") == "checkbox")
- {
- ele.prop("checked", ustawienia[UstawieniaID[i].substring(3, UstawieniaID[i].length)]);
- }
- else ele.val(ustawienia[UstawieniaID[i].substring(3, UstawieniaID[i].length)]);
- }
- var input = jQ("#B_MobZLochow");
- if(input.length == 1)
- {
- var output = jQ("#B_MZLView");
- output.text(input.val() == 15 ? "Wszystkie" : input.val());
- input.change( function(){var input = jQ("#B_MobZLochow"); var str = input.val() == 15 ? "Wszystkie" : input.val(); output.text(str);} );
- }
- input = jQ("#B_ProcentHP");
- if(input.length == 1)
- {
- var output = jQ("#B_PHPView");
- output.text(input.val()+"%");
- input.change( function(){ output.text(jQ("#B_ProcentHP").val()+"%");} );
- }
- input = jQ("#B_PPT");
- if(input.length == 1)
- {
- var output = jQ("#B_PPTView");
- output.text(input.val()+" lvl");
- input.change( function(){ output.text(jQ("#B_PPT").val()+" lvl");} );
- }
- }
- function SettingsChange()
- {
- var ele = jQ(this);
- var name = ele.attr("id");
- var wartosc = Number(ele.attr( "type") == "checkbox" ? ele.is(":checked"): ele.val());
- ustawienia[name.substring(2, name.length)] = wartosc;
- localStorage.setItem(name, wartosc);
- if(name == "B_POK" && wartosc == 1 && Funkcja[Pakowanie] == 1)
- {
- Funkcja[Pakowanie] == 0;
- localStorage.setItem("B_Func"+Pakowanie, 0);
- jQ('#B_F'+Pakowanie).prop('checked', false);
- }
- }
- function CheckStatus()
- {
- for(var i=0; i < 4; i++) CzasDoAkcji[i] = jQ(Bindy[i]).text();
- if(!AllowActions || !Funkcja[Working] || !Funkcja[SessionWorking]) return;
- if(Funkcja[Pakowanie])
- {
- if(PakiStatus == 0 && GetGold() > 100000)
- {
- setAction(Pakowanie);
- if(!ImThere(link_rynekGildii)) GoTo(link_rynekGildii);
- return;
- }
- else if(PakiStatus == 1)
- {
- setAction(Pakowanie);
- if(!ImThere(link_paczki)) GoTo(link_paczki);
- return;
- }
- else if(PakiStatus == 2)
- {
- setAction(Pakowanie);
- if(!ImThere(link_rynekGildii)) GoTo(link_rynekGildii);
- return;
- }
- }
- if(!ustawienia['TylkoPakowanie'])
- {
- if((GetGold() >= MinKosztStatow() || staty.length == 0) && Funkcja[Trening])
- {
- setAction(Trening);
- if(!ImThere(link_trening)) GoTo(link_trening);
- }
- else if(GetHP() <= ustawienia['ProcentHP'] && Funkcja[DodanieHP])
- {
- setAction(DodanieHP);
- if(!ImThere(link_podglad)) GoTo(link_podglad);
- }
- else if(CheckForgeTime() && Funkcja[Roztapiarka] && GetGold() > ustawienia['TPG'])
- {
- setAction(Roztapiarka);
- if(!ImThere(link_roztapiarka)) GoTo(link_roztapiarka);
- }
- else
- {
- for(var i=0; i < 4; i++)
- {
- if(CzasDoAkcji[i] == KoniecCzekania[i] && Funkcja[i+1])
- {
- setAction(i+1);
- if(i+1 == Arena)
- {
- if(!ImThere(link_action[ustawienia['TypArena']-1][0])) GoTo(link_action[ustawienia['TypArena']-1][0]);
- }
- else if(i+1 == CT)
- {
- if(!ImThere(link_action[ustawienia['TypCT']-1][1])) GoTo(link_action[ustawienia['TypArena']-1][1]);
- }
- else
- {
- if(WhereAmI() != (i+1)) Location(jQ( Links[i] ).children("a").attr("href"));
- }
- return;
- }
- }
- if( (jQ("#QuestTime").text() == "(Nowe)" || jQ(`font[color="green"]`).length > 0) && Funkcja[Misja])
- {
- setAction(Misja);
- if(!ImThere(link_misja)) GoTo(link_misja);
- else TryMisja();
- }
- }
- }
- }
- function LoadData()
- {
- /* --- Link Data --- */
- var url = new URL(window.location.href);
- var pakuj = Number(url.searchParams.get("pakuj"));
- if(pakuj == 1)
- {
- sessionStorage.setItem("B_Func"+Pakowanie, "1");
- sessionStorage.setItem("B_TylkoPakowanie", "1");
- }
- /* --- Ładuj staty --- */
- LookForStats();
- if(localStorage.hasOwnProperty("B_Ustawienia"))
- {
- /* --- Locale data --- */
- Akcja = toInt(localStorage.getItem("B_Action"));
- for(var i=0; i < Funkcja.length; i++) Funkcja[i] = toInt(localStorage.getItem("B_Func"+i));
- for(var i=0; i < CzasDoTopienia.length; i++) CzasDoTopienia[i] = toInt(localStorage.getItem("B_Roztapiarka"+i));
- for(var i=0; i < UstawieniaName.length; i++) ustawienia[UstawieniaName[i]] = toInt(localStorage.getItem("B_"+UstawieniaName[i]));
- // Paczki
- PakiStatus = toInt(localStorage.getItem("B_Paczka_Akcja"));
- PakiItemID = toInt(localStorage.getItem("B_Paczka_ID"));
- PakiCena = toInt(localStorage.getItem("B_Paczka_Cena"));
- // Staty
- for(var i=0; i < 6; i++)
- {
- if(localStorage.hasOwnProperty("B_Staty-"+i)) staty[i] = localStorage.getItem("B_Staty-"+i)
- }
- /* --- Session data --- */
- if(sessionStorage.hasOwnProperty("B_Func"+SessionWorking))
- {
- Funkcja[SessionWorking] = toInt(sessionStorage.getItem("B_Func"+SessionWorking));
- }
- else Funkcja[SessionWorking] = 1;
- if(sessionStorage.hasOwnProperty("B_Func"+Pakowanie))
- {
- Funkcja[Pakowanie] = toInt(sessionStorage.getItem("B_Func"+Pakowanie));
- }
- ustawienia['TylkoPakowanie'] = toInt(sessionStorage.getItem("B_TylkoPakowanie"));
- if(ustawienia['TylkoPakowanie']) Akcja = toInt(sessionStorage.getItem("B_Action"));
- }
- else setDefaultData();
- }
- function setDefaultData()
- {
- localStorage.setItem("B_Ustawienia", "1");
- localStorage.setItem("B_Action", "0");
- localStorage.setItem("B_MobZLochow", "15");
- localStorage.setItem("B_Func0", "1");
- localStorage.setItem("B_TypLochow", "1");
- localStorage.setItem("B_TypArena", "1");
- localStorage.setItem("B_KogoBicArena", "1");
- localStorage.setItem("B_TypCT", "1");
- localStorage.setItem("B_KogoBicCT", "1");
- localStorage.setItem("B_SymulatorArena", "0");
- localStorage.setItem("B_SymulatorCT", "0");
- localStorage.setItem("B_ProcentHP", "3");
- localStorage.setItem("B_SZEQNP", "1");
- localStorage.setItem("B_TPG", "20000");
- sessionStorage.setItem("B_Func"+SessionWorking, "1");
- for(var i=0; i < CzasDoTopienia.length; i++) localStorage.setItem("B_Roztapiarka"+i, "0");
- for(var i=1; i < Funkcja.length; i++) localStorage.setItem("B_Func"+i, "0");
- LoadData();
- }
- function GuiUpdate()
- {
- /* 0~3 */
- for(var i=0; i < 4; i++)
- {
- jQ("#B_State-"+i).text((CzasDoAkcji[i] == KoniecCzekania[i] ? "On" : CzasDoAkcji[i]));
- }
- /* 4~5 */
- for(var i=0; i < 6; i++)
- {
- if(CzasDoTopienia[i] - GetTime() <= 0) jQ("#B_State-"+(i+4)).text("On");
- else jQ("#B_State-"+(i+4)).text(TimeToString(CzasDoTopienia[i]));
- }
- // Akcja
- jQ("#B_Action").text(Akcje[Akcja]);
- }
- /* --- Site --- */
- function ImThere(tab)
- {
- var url = new URL(window.location.href);
- var mod = url.searchParams.get("mod"); if(mod == null) mod = "";
- var submod = url.searchParams.get("submod"); if(submod == null) submod = "";
- var aType = url.searchParams.get("aType"); if(aType == null) aType = "";
- var doll = url.searchParams.get("doll"); if(doll == null) doll = "";
- if( mod == tab[0] && submod == tab[1] && aType == tab[2] && doll == tab[3]) return true;
- else if(mod == tab[0] && tab[0] == "quests") return true;
- else if(mod == tab[0] && tab[0] == "auction") return true;
- return false;
- }
- function WhereAmI()
- {
- var url = new URL(window.location.href);
- var mod = url.searchParams.get("mod"); if(mod == null) mod = "";
- var submod = url.searchParams.get("submod"); if(submod == null) submod = "";
- var aType = url.searchParams.get("aType"); if(aType == null) aType = "";
- var doll = url.searchParams.get("doll"); if(doll == null) doll = "";
- if( mod == link_trening[0] && submod == link_trening[1] && aType == link_trening[2]) return Trening;
- else if( mod == link_podglad[0] && submod == link_podglad[1] && aType == link_podglad[2] && doll == "1") return DodanieHP;
- else if( mod == link_wyprawa[0]) return Wyprawa;
- else if( mod == link_lochy[0]) return Lochy;
- else if( mod == link_roztapiarka[0] && submod == link_roztapiarka[1] && aType == link_roztapiarka[2]) return Roztapiarka;
- else if( mod == link_arena[0] && submod == link_arena[1] && aType == link_arena[2]) return Arena;
- else if( mod == link_arenaProvincum[0] && submod == link_arenaProvincum[1] && aType == link_arenaProvincum[2]) return Arena;
- else if( mod == link_ct[0] && submod == link_ct[1] && aType == link_ct[2]) return CT;
- else if( mod == link_ctProvincum[0] && submod == link_ctProvincum[1] && aType == link_ctProvincum[2]) return CT;
- return NudyNaPudy;
- }
- function GoTo(where)
- {
- var url = new URL(window.location.href);
- var sh = url.searchParams.get("sh");
- var newUri = "index.php?" + "mod=" + where[0];
- if(where[1].length > 0) newUri += "&submod=" + where[1];
- if(where[2].length > 0) newUri += "&aType=" + where[2];
- if(where[3].length > 0) newUri += "&doll=" + where[3];
- if(where == link_rynekGildii) newUri += "&s=p";
- newUri += "&sh="+sh;
- Location(newUri);
- }
- function FindItemsByClass(from, klasa)
- {
- return jQ(from).find(`div[class*="`+klasa+`"]`);
- }
- function TurnOffChat()
- {
- socket.disconnect();
- document.querySelector("#chatBox").style.zIndex = "-100";
- }
- function TurnOnChat()
- {
- socket.connect();
- document.querySelector("#chatBox").style.zIndex = "100";
- }
- function isLogged()
- {
- var logoutButton = jQ(`a[href*="mod=start&submod=logout"]`);
- if(logoutButton.length > 0) return 1;
- return 0;
- }
- function isLogouted()
- {
- var loginButton = jQ(`input[onclick*="submitLoginForm()"]`);
- if(loginButton.length > 0) return 1;
- return 0;
- }
- /* --- Ogólne --- */
- function DoActions()
- {
- DebugLog("DoActions pre");
- DebugLog("Akcja: "+Akcja);
- switch(Akcja)
- {
- case Pakowanie:
- {
- if(PakiStatus == 0 && ImThere(link_rynekGildii)) TryPakujGolda();
- else if(PakiStatus == 1 && ImThere(link_paczki)) setTimeout(TryWezPaczke, 1500);
- else if(PakiStatus == 2 && ImThere(link_rynekGildii)) TrySprzedajPake();
- setTimeout(ReloadPage, 30*1000);
- break;
- }
- case Trening:
- {
- if(ImThere(link_trening)) setTimeout(TryTrening, 1500);
- break;
- }
- case DodanieHP:
- {
- if(ImThere(link_podglad))
- {
- if(GetHP() <= ustawienia['ProcentHP']) setTimeout(AddHP, 1500);
- else setAction(NudyNaPudy);
- }
- break;
- }
- case Wyprawa:
- {
- if(ImThere(link_wyprawa)) TryWyprawa();
- break;
- }
- case Lochy:
- {
- if(ImThere(link_lochy)) TryLochy();
- break;
- }
- case Arena:
- {
- if(WhereAmI() == Arena) TryFight(Arena);
- break;
- }
- case CT:
- {
- if(WhereAmI() == CT) TryFight(CT);
- break;
- }
- case Roztapiarka:
- {
- if(GetGold() < ustawienia['TPG']) setAction(NudyNaPudy);
- else if(ImThere(link_roztapiarka)) setTimeout(TryRoztapiarka, 1500);
- break;
- }
- case Misja:
- {
- if(ImThere(link_misja)) setTimeout(TryMisja, 1500);
- break;
- }
- }
- DebugLog("DoActions post");
- }
- function setAction(x)
- {
- if(Akcja != x)
- {
- Akcja = x;
- if(ustawienia['TylkoPakowanie']) sessionStorage.setItem("B_Action", x);
- else localStorage.setItem("B_Action", x);
- }
- }
- function AllowSetActions()
- {
- AllowActions = true;
- }
- /* --- Wyprawa --- */
- function TryWyprawa()
- {
- DebugLog("TryWyprawa pre");
- setAction(NudyNaPudy);
- var ruby = jQ("img[src*='res3.gif']");
- var timer = jQ("img[src*='token_small/7.png']");
- if(ruby.length <= 0 && timer.length <= 0)
- {
- DebugLog("TryWyprawa click");
- WaiterStamp();
- jQ("button[onclick^='attack']").eq(ustawienia['MobZWyprawy']-1).click();
- }
- else setTimeout(ReloadPage, 3000);
- DebugLog("TryWyprawa post");
- }
- /* --- Lochy --- */
- function TryLochy()
- {
- setAction(NudyNaPudy);
- var ruby = jQ("img[src*='res3.gif']");
- var timer = jQ("img[src*='token_small/7.png']");
- if(ruby.length <= 0 && timer.length <= 0)
- {
- var ListaMobow = jQ("img[onclick^='startFight']");
- if(ListaMobow.length > 0)
- {
- var Max = [0, 0], Min = [100, 0];
- for(var i=0; i < ListaMobow.length; i++)
- {
- var attr = ListaMobow.eq(i).attr( "onclick" );
- var str = (attr.slice(attr.indexOf("(")+1, attr.indexOf(")"))).replace(new RegExp('\'', 'g'), '');
- var przecinek = str.indexOf(",");
- var firstArg = str.substring(0, przecinek);
- var secondArg = str.substring(przecinek+2, str.length);
- if(firstArg >= Max[0])
- {
- Max[0] = firstArg;
- Max[1] = secondArg;
- }
- if(firstArg <= Min[0])
- {
- Min[0] = firstArg;
- Min[1] = secondArg;
- }
- }
- WaiterStamp();
- if(Max[0] <= ustawienia['MobZLochow']) startFight(Max[0], Max[1]);
- else if(Min[0] <= ustawienia['MobZLochow']) startFight(Min[0], Min[1]);
- else
- {
- WaiterStamp();
- jQ("input[value='Anuluj lochy']").click();
- setAction(Lochy);
- }
- }
- else
- {
- var PoziomLochow = (ustawienia['TypLochow'] == 1 ? "normalne" : "zaawansowane");
- var WejscieDoLochu = jQ(`input[value^='`+PoziomLochow+`']`);
- if(WejscieDoLochu.length > 0)
- {
- WejscieDoLochu = WejscieDoLochu.first();
- setAction(Lochy);
- WaiterStamp();
- WejscieDoLochu.click();
- }
- }
- }
- else setTimeout(ReloadPage, 3000);
- }
- /* --- Arena & CT --- */
- async function TryFight(ArenaOrCT)
- {
- var enemy = jQ(".attack");
- var Suffiks = (ArenaOrCT == Arena ? "Arena" : "CT");
- DebugLog("TryFight pre | Typ: "+Suffiks + " | Len: "+enemy.length+" | Symulator: "+ustawienia['Symulator'+Suffiks]);
- if(enemy.length == 0) return;
- if(ustawienia['Symulator'+Suffiks] == 0)
- {
- setAction(NudyNaPudy);
- WaiterStamp();
- var setting = "KogoBic"+Suffiks;
- if(ustawienia[setting] == 1) enemy.first().click();
- else if(ustawienia[setting] == 2) enemy.eq(getRndInteger(0, enemy.length)).click();
- else if(ustawienia[setting] == 3) enemy.last().click();
- }
- else
- {
- var start = 0;
- var end = Symulator.EnemyCount;
- if(Symulator.EnemyCount == 9) start = 5;
- var buttons = jQ(`button[onclick*="CheckPlayer"]`);
- for(var i = start; i < end; i++)
- {
- buttons.eq(i).click();
- DebugLog("Click: "+i);
- }
- while(Symulator.EnemyCount != (Symulator.EnemyLoaded+start)) await sleep(10);
- setAction(NudyNaPudy);
- WaiterStamp();
- DebugLog("Click on enemy on pos: "+Symulator.WeakestEnemy.Position);
- enemy.eq(Symulator.WeakestEnemy.Position - start).click();
- }
- jQ("#linkbod").click();
- }
- /* --- Trening --- */
- function TryTrening()
- {
- DebugLog("[Trening] TryTrening() pre");
- var AddPoints = jQ(`div[style="width:500px;position:relative"]`);
- var TrenowaneStaty = [];
- for(var i=0; i < 6; i++)
- {
- }
- if(ustawienia['TRS'] == 1)
- {
- var lowest = [ 0, 1000000000];
- for(var i=0; i < 6; i++)
- {
- if(ustawienia['SDT-'+(i+1)])
- {
- var gold = parseInt(jQ("div.training_costs").eq(i).text().replaceAll(".",""));
- if(lowest[1] >= gold)
- {
- lowest[0] = i;
- lowest[1] = gold;
- }
- }
- }
- if(ustawienia['SDT-'+(lowest[0]+1)])
- {
- setAction(NudyNaPudy);
- var link = AddPoints.eq(lowest[0]).children(`div[class="training_link"]`).children(`a.training_button`).first().attr("href");
- Location(link);
- return;
- }
- }
- else
- {
- var count = 0;
- for(var i=0; i < 6; i++) if(ustawienia['SDT-'+(i+1)]) count++;
- var rand = getRndInteger(0, count);
- for(var i=0; i < 6; i++)
- {
- if(ustawienia['SDT-'+(i+1)])
- {
- if(rand == 0)
- {
- setAction(NudyNaPudy);
- var link = AddPoints.eq(i).children(`div[class="training_link"]`).children(`a.training_button`).first().attr("href");
- Location(link);
- return;
- }
- rand--;
- }
- }
- }
- }
- function LookForStats()
- {
- if(!ImThere(link_trening)) return;
- for(var i=0; i < 6; i++)
- {
- staty[i] = Number(jQ("#char_f"+i+" > .training_value").first().text().split("+")[0]);
- localStorage.setItem("B_Staty-"+i, staty[i]);
- }
- }
- function MinKosztStatow()
- {
- var koszta = [];
- var min = -1;
- for(var i=0; i < 6; i++)
- {
- if(ustawienia['SDT-'+(i+1)] == 1)
- {
- koszta[i] = Math.floor(Math.pow(staty[i]-4, StatsExp[i])*(1-2*ustawienia['PPT']/100));
- if(min == -1 || koszta[i] < koszta[min]) min = i;
- }
- }
- return koszta[min];
- }
- function GetGold()
- {
- var divGold = toInt(jQ("#sstat_gold_val").text().replace(/\s/g, "").replace(/\./g,""));
- if(isNaN(divGold)) return 0;
- return divGold;
- }
- /* --- Roztapiarka --- */
- function TakeMaterials()
- {
- WaiterStamp();
- jQ("#forge_lootbox").click();
- }
- async function MakeForge()
- {
- for(var j=1; j < 6;j++)
- {
- if(!ustawienia['SZI-'+j]) continue;
- ChooseStorageBox(j);
- await sleep(500);
- var Box = FindBoxByType(BoxEq).first();
- if(Box.length == 0) continue;
- for(var i=0; i < Eq.length; i++)
- {
- var Items = FindItemsByType(Eq[i], Inventarz);
- if(Items.length > 0)
- {
- var Item = Items.first();
- DragAndDrop(Item, Box);
- await sleep(2000);
- rent();
- return;
- }
- }
- }
- setAction(NudyNaPudy);
- Funkcja[Roztapiarka] = 0;
- localStorage.setItem("B_Func"+Roztapiarka, Funkcja[Roztapiarka]);
- jQ('#B_F'+Roztapiarka).prop('checked', false);
- }
- function CheckForgeTime(x=-1)
- {
- if(x == -1)
- {
- var Done = 0;
- for(var i=0; CzasDoTopienia.length > i; i++)
- {
- if((CzasDoTopienia[i] - GetTime()) < 0) Done = 1;
- }
- if(Done) return true;
- }
- else
- {
- if((CzasDoTopienia[x] - GetTime()) < 0) return true;
- }
- return false;
- }
- async function TryRoztapiarka()
- {
- DebugLog("[Roztapiarka] TryRoztapiarka Pre");
- //setAction(NudyNaPudy);
- for(var i=0; i < 6; i++)
- {
- if(!CheckForgeTime(i)) continue;
- DebugLog("[Roztapiarka] i == "+i);
- ChooseForgeBox(i);
- await sleep(3000);
- if(jQ("#slot-finished-succeeded[class^='hidden']").length == 0)
- {
- DebugLog("[Roztapiarka] finished-succeeded");
- TakeMaterials();
- return;
- }
- else if(jQ("#slot-closed[class^='hidden']").length == 0)
- {
- DebugLog("[Roztapiarka] closed");
- MakeForge();
- return;
- }
- else if(jQ("#slot-crafting[class^='hidden']").length == 0)
- {
- DebugLog("[Roztapiarka] crafting, time == "+jQ("#forge_time_remaining").text());
- var tabOfTime = jQ("#forge_time_remaining").text().split(':');
- for(var j=0; j<3;j++) tabOfTime[j] = parseInt(tabOfTime[j]);
- CzasDoTopienia[i] = GetTime()+1000*(tabOfTime[2]+60*(tabOfTime[1] + 60*tabOfTime[0]));
- localStorage.setItem("B_Roztapiarka"+i, CzasDoTopienia[i]);
- setAction(NudyNaPudy);
- }
- else
- {
- setAction(NudyNaPudy);
- DebugLog("[Roztapiarka] break");
- break;
- }
- }
- }
- function ChooseForgeBox(index)
- {
- var divNav = jQ("#forge_nav").find("div");
- if(divNav.length > 0)
- {
- divNav.eq(index).click();
- }
- }
- function ChooseStorageBox(num)
- {
- jQ("a[data-bag-number="+(511+num)+"]").click();
- }
- function FindBoxByType(type)
- {
- return jQ("div[data-content-type-accept="+type+"]");
- }
- function FindItemsByType(type, from)
- {
- return jQ( from ).find("div[data-content-type="+type+"]");
- }
- function FindItems(from)
- {
- return jQ(from).find(`div[class*="item"]`);
- }
- /* --- Dodanie HP --- */
- async function AddHP()
- {
- DebugLog("AddHP()");
- for(var i=1; i < 6; i++)
- {
- if(!ustawienia['SZJ-'+i]) continue;
- ChooseStorageBox(i);
- await sleep(1000);
- DebugLog("After ChooseStorageBox()");
- var Item = FindItemsByType(Jedzenie, Inventarz);
- var Box = FindBoxByType(Jedzenie);
- if(Item.length <= 0 || Box.length <= 0)
- {
- if(Item.length <= 0) DebugLog("[Jedzenie] Nie ma tu żarcia");
- if(Box.length <= 0) DebugLog("[Jedzenie] Nie ma tu box'a");
- continue;
- }
- Item = Item.first();
- Box = Box.first();
- DragAndDrop(Item, Box);
- DebugLog("After DragAndDrop()");
- setAction(NudyNaPudy);
- return;
- }
- }
- function GetHP()
- {
- var HP = parseInt(jQ("#header_values_hp_percent").text());
- if(isNaN(HP)) return 0;
- return HP;
- }
- /* --- Misje --- */
- function TryMisja()
- {
- for(var i=0; i < MissionID_end.length; i++)
- {
- var box = jQ( MissionID_end[i] );
- if(box.length != 1) continue;
- if( box.css("display") == "block")
- {
- var mission = box.find("a");
- if(mission.length <= 0) continue;
- mission = mission.first();
- var url = mission.attr("href");
- Location(url);
- return;
- }
- }
- setAction(NudyNaPudy);
- for(var i=0; i < MissionID_start.length; i++)
- {
- if(!ustawienia['MDW-'+(i+1)]) continue;
- var box = jQ( MissionID_start[i] );
- if(box.length != 1) continue;
- if( box.css("display") == "block")
- {
- var mission = box.find("a");
- for(var j=0; j < mission.length; j++)
- {
- if( mission.eq(j).attr("title") == "Przyjmij zadanie")
- {
- var url = mission.eq(j).attr("href");
- Location(url);
- return;
- }
- }
- }
- }
- var newMissionBtn = jQ(`input[value="Nowe zadania"]:enabled`);
- if( newMissionBtn.length == 1) newMissionBtn.click();
- }
- /* --- Pakowanie --- */
- function setPakaStatus(x)
- {
- PakiStatus = x;
- localStorage.setItem("B_Paczka_Akcja", x);
- }
- window.confirm = function myConfirm() {
- return true;
- }
- function TryPakujGolda()
- {
- var myGold = GetGold();
- var btn = jQ(`input[value="Kup"]`);
- for(var i=btn.length-1; i >= 0; i--)
- {
- var td = btn.eq(i).closest("tr").find("td");
- var itemPrice = toInt(td.eq(2).text().replace(/\s/g, "").replace(/\./g,""));
- if(itemPrice % 100000 != 0 || itemPrice > myGold) continue;
- var sniezka = td.eq(0).find(`div[data-basis="21-5"]`).length;
- var dynia = td.eq(0).find(`div[data-basis="21-7"]`).length;
- if(sniezka == 0 && dynia == 0) cotninue;
- var myItem = td.eq(0).find(`div[class*="item"]`);
- var itemID = myItem.attr("data-soulbound-to");
- localStorage.setItem("B_Paczka_Akcja", 1);
- localStorage.setItem("B_Paczka_ID", itemID);
- localStorage.setItem("B_Paczka_Cena", itemPrice);
- WaiterStamp();
- jQ(`input[value="Kup"]`).eq(i).click();
- DebugLog("[Paczki] Kupuje: i: "+i+" | price: "+itemPrice+" | id: "+itemID);
- return;
- }
- }
- async function TryWezPaczke()
- {
- ChooseStorageBox(ustawienia['SZEQNP']);
- await sleep(1000);
- var Box = jQ(Inventarz);
- var Item = jQ(`div[data-soulbound-to=`+PakiItemID+`]`);
- if(Item.length > 0)
- {
- var Cells = Box.find(`div[class="ui-droppable grid-droparea"]`);
- if(Cells.length == 0)
- {
- DragAndDrop(Item, Box);
- await sleep(100);
- Cells = Box.find(`div[class="ui-droppable grid-droparea"]`);
- }
- DragAndDrop(Item, Cells.last());
- await sleep(2000);
- setPakaStatus(2);
- GoTo(link_rynekGildii);
- return "lel";
- }
- PaczkiRestart();
- }
- async function TrySprzedajPake()
- {
- if(GetGold() < (PakiCena*0.02 + 1) ) return;
- ChooseStorageBox(ustawienia['SZEQNP']);
- await sleep(1000);
- var Box = jQ("#market_sell");
- var Item = jQ(Inventarz).find(`div[data-soulbound-to=`+PakiItemID+`]`);
- if(Item.length > 0)
- {
- DragAndDrop(Item, Box);
- await sleep(1000);
- jQ("#preis").val(PakiCena);
- jQ("#dauer").val(3)
- calcDues();
- await sleep(1000);
- jQ(`input[value="Oferta"]`).click();
- }
- PaczkiRestart();
- }
- function PaczkiRestart()
- {
- setPakaStatus(0);
- localStorage.setItem("B_Paczka_ID", 0);
- localStorage.setItem("B_Paczka_Cena", 0);
- }
- function AddButtons()
- {
- if(ImThere(link_paczki)) jQ(`div[class*="inventoryBox"]`).first().append(PaczkiButton);
- else if(ImThere(link_handlarze)) jQ(`div[class*="inventoryBox"]`).first().append(HandlarzeButton);
- else if(ImThere(link_ranking))
- {
- var ele = jQ("#highscore_range");
- ele.prepend(ClickAllArena);
- ele.prepend(ClickAllCT);
- }
- else if(ImThere(link_listaCzlonkowGildii))
- {
- var ele = jQ("#content");
- ele.prepend(ClickAllArena);
- ele.prepend(ClickAllCT);
- }
- else if(ImThere(link_aukcja))
- {
- var Items = FindItemsByType(Jedzenie, "#auction_table").not(`[data-tooltip*="Czas"]`);
- if(Items.length > 0)
- {
- var oldBtn = jQ(`input[value="Filtr" ]`);
- var oldTd = oldBtn.closest("td");
- var tr = oldTd.closest("tr");
- oldTd.attr("colspan", "");
- oldTd.css("text-align", "right");
- tr.append(AukcjaButton);
- }
- }
- /* --- Simulator buttons --- */
- var listOfPlayers = jQ("a[href*='mod=player']");
- if( listOfPlayers.length == 0) return;
- if( ImThere(link_arenaProvincum) || ImThere(link_arena) || ImThere(link_raportyArena) ) AddCheckButtons(Arena);
- else if( ImThere(link_ctProvincum) || ImThere(link_ct) || ImThere(link_raportyCT) ) AddCheckButtons(CT);
- else if( ImThere(link_listaCzlonkowGildii) || ImThere(link_ranking) ) AddCheckButtons(Arena|CT);
- }
- async function PutAllItemsToBox(From, To)
- {
- var Box = jQ(To);
- if(Box.length != 1)
- {
- console.log("Brak elementu: "+To);
- return;
- }
- var Items = FindItems(From);
- if(Items.length < 1)
- {
- console.log("Brak przedmiotów");
- return;
- }
- var Cells = Box.find(`div[class="ui-droppable grid-droparea"]`);
- if(Cells.length == 0)
- {
- DragAndDrop(Items.last(), Box);
- await sleep(150);
- if(Items.length == 0) Items = FindItems(From);
- Cells = Box.find(`div[class="ui-droppable grid-droparea"]`);
- }
- for(var i = (Items.length - 1); i >= 0; i--)
- {
- DragAndDrop(Items.eq(i), Box);
- await sleep(10);
- Cells = Box.find(`div[class="ui-droppable grid-droparea"]`);
- if(Cells.length < 1)
- {
- console.log("Koniec miejsca w box'ie");
- return;
- }
- DragAndDrop(Items.eq(i), Cells.last());
- await sleep(125);
- if(Items.length == 0) Items = FindItems(From);
- }
- }
- function KupJedzenie()
- {
- jQ("#B_tooltiptext").css("opacity", "1");
- jQ("#B_tooltiptext").text("KupujÄ™");
- var Items = FindItemsByType(Jedzenie, "#auction_table").not(`[data-tooltip*="Czas"]`);
- var count = 0;
- for(var i = 0; i < Items.length; i++)
- {
- if(Items.eq(i).attr("data-content-size") == 1)
- {
- var div = Items.eq(i).closest("form").find(`div[class="auction_bid_div"]`);
- var text = div.children("div").first().text().slice(1, 100);
- text = text.replace(/\s/g, "");
- if(text == "Brakofert" || text == "Przedmiotlicytowany")
- {
- var btn = div.children(`input[value="Licytuj"]`);
- if(btn.length == 1)
- {
- btn.click();
- count++;
- }
- }
- }
- }
- jQ("#B_tooltiptext").text("Zakupiono "+count+" jedzenia");
- setTimeout(() => jQ("#B_tooltiptext").css("opacity", "0"), 2000);
- }
- function AddCheckButtons(type)
- {
- var listOfPlayers = jQ("a[href*='mod=player']");
- var res = `https://s`+ustawienia['IndexSerwera']+`-pl.gladiatus.gameforge.com/game/`;
- for(var i=0; i < listOfPlayers.length; i++)
- {
- if(type != (Arena|CT))
- {
- var tr = jQ("a[href*='mod=player']").eq(i).parents("tbody").children("tr").first();
- if(tr.children("th").last().text() != "Symulator") tr.append("<th>Symulator</th>");
- var tab = jQ("a[href*='mod=player']").eq(i).parents("table");
- tab.css("width", "100%");
- }
- var link = listOfPlayers.eq(i).attr("href");
- if(link.indexOf("gladiatus") == -1)
- {
- link = res + link;
- var serverID = ustawienia['IndexSerwera'];
- }
- else
- {
- var buff = listOfPlayers.eq(i).attr("href").split("s");
- var serverID = parseInt(buff[2]);
- }
- var enemy_url = new URL(link);
- var playerID = enemy_url.searchParams.get("p");
- // Nie powtarzanie przycisków
- if(!ImThere(link_raportyArena) && !ImThere(link_raportyCT))
- {
- if(Symulator.EnemyID.find(x => {return x == playerID}) != undefined) continue;
- Symulator.EnemyID.push(playerID);
- }
- if(type == (Arena|CT))
- {
- var parent = jQ("a[href*='mod=player']").eq(i).parents("td");
- parent.css("text-align", "center");
- var str = `<br><div class="SymulatorView" >`;
- str += `<span style="width: 50%;float: left;"><button data-pos-num="`+i+`" data-type="`+Arena+`" onclick="CheckPlayer(this,`+playerID+`,`+serverID+`,`+Arena+`)">Arena</button></span>`;
- str += `<span style="width: 50%;float: right;"><button data-pos-num="`+i+`" data-type="`+CT+`" onclick="CheckPlayer(this,`+playerID+`,`+serverID+`,`+CT+`)">CT</button></span>`;
- str += `</div>`
- parent.append(str);
- }
- else
- {
- var parent = jQ("a[href*='mod=player']").eq(i).parents("tr");
- var str = `<td style="text-align: center;"><button data-pos-num="`+i+`" data-type="`+type+`" onclick="CheckPlayer(this,`+playerID+`,`+serverID+`,`+type+`)">Check</button></td>`;
- parent.append(str);
- }
- Symulator.EnemyCount++;
- }
- var lel = jQ(`td[colspan="4"]`);
- for(var i=0; i < lel.length; i++) lel.eq(i).attr("colspan", 5);
- }
- /* --- JavaScript --- */
- function ReloadPage()
- {
- window.location=window.location;
- }
- function GetTime()
- {
- return (new Date()).getTime();
- }
- function sleep(ms) {
- return new Promise(resolve => setTimeout(resolve, ms));
- }
- function getRndInteger(min, max) {
- return Math.floor(Math.random() * (max - min) ) + min;
- }
- function MinMax(min, val, max)
- {
- if(min > val) return min;
- if(max < val) return max;
- return val;
- }
- function Max(a, b)
- {
- if(a > b) return a;
- return b;
- }
- function Min(a, b)
- {
- if(a < b) return a;
- return b;
- }
- function TimeToString(time)
- {
- time -= GetTime();
- time = Math.floor( time/1000 );
- var S = time % 60;
- time = Math.floor( time/60 );
- var M = time % 60;
- time = Math.floor( time/60 );
- var H = time % 60;
- var str = "";
- if(H > 0) str = H+":"+M+":"+S;
- else if( M > 0) str = M+":"+S;
- else if( S > 0) str = S;
- else str = "On";
- return str;
- }
- function setCookie(cname, cvalue, exdays) {
- var d = new Date();
- d.setTime(d.getTime() + (exdays * 24 * 60 * 60 * 1000));
- var expires = "expires="+d.toUTCString();
- document.cookie = cname + "=" + cvalue + ";" + expires + ";path=/";
- }
- function setCookieSec(cname, cvalue, exsec) {
- var d = new Date();
- d.setTime(d.getTime() + (exsec * 1000));
- var expires = "expires="+d.toUTCString();
- document.cookie = cname + "=" + cvalue + ";" + expires + ";path=/";
- }
- function getCookie(name)
- {
- var value = "; " + document.cookie;
- var parts = value.split("; " + name + "=");
- if (parts.length == 2) return parts.pop().split(";").shift();
- return "";
- }
- function CanChangeLocation()
- {
- var d = new Date();
- var time = d.getTime();
- if((time - localStorage.getItem("LastSiteChange")) > 1500 ) return true;
- return false;
- }
- function Location(pwd)
- {
- var d = new Date();
- var time = d.getTime();
- if((time - localStorage.getItem("LastSiteChange")) > 1500 )
- {
- if(pwd == undefined)
- {
- GoTo(link_podglad);
- return;
- }
- localStorage.setItem("LastSiteChange", time);
- window.location = pwd;
- }
- }
- function WaiterStamp()
- {
- var d = new Date();
- var time = d.getTime();
- localStorage.setItem("LastSiteChange", time);
- }
- function DebugLog(Msg)
- {
- if(Debug) console.log(Msg);
- }
- String.prototype.replaceAll = function(search, replacement) {
- var target = this;
- return target.split(search).join(replacement);
- }
- function toInt(str)
- {
- if(isNaN(str)) return 0;
- var number = parseInt(str);
- if(isNaN(number) || !Number.isFinite(number)) return 0;
- return number;
- }
- Element.prototype.remove = function() {
- this.parentElement.removeChild(this);
- }
- NodeList.prototype.remove = HTMLCollection.prototype.remove = function() {
- for(var i = this.length - 1; i >= 0; i--) {
- if(this[i] && this[i].parentElement) {
- this[i].parentElement.removeChild(this[i]);
- }
- }
- }
- function getKeyByValue(object, value) {
- return Object.keys(object).find(key => object[key] === value);
- }
- async function GetPlayerData()
- {
- var listOfPlayers = jQ("a[href*='mod=player']");
- if( listOfPlayers.length == 0 ) return;
- if(!(ImThere(link_arenaProvincum) || ImThere(link_arena) || ImThere(link_raportyArena) || ImThere(link_raportyCT) || ImThere(link_listaCzlonkowGildii) || ImThere(link_ranking) || ImThere(link_ctProvincum) || ImThere(link_ct))) return;
- var type = 0;
- if(Akcja == Arena && ustawienia['SymulatorArena']) type = Arena;
- else if(Akcja == CT && ustawienia['SymulatorCT']) type = CT;
- if(type)
- {
- if(Symulator.Ja <= 0)
- {
- if(Symulator.Ja == 0) CheckPlayer(-1, ustawienia['IndexGracza'], ustawienia['IndexSerwera'], type);
- Symulator.Ja = -1;
- while(Symulator.Ja <= 0) await sleep(10);
- }
- /*
- var res = `https://s`+ustawienia['IndexSerwera']+`-pl.gladiatus.gameforge.com/game/`;
- for(var i=0; i < listOfPlayers.length; i++)
- {
- var link = listOfPlayers.eq(i).attr("href");
- if(link.indexOf("gladiatus") == -1)
- {
- link = res + link;
- var serverID = ustawienia['IndexSerwera'];
- }
- else
- {
- var buff = listOfPlayers.eq(i).attr("href").split("s");
- var serverID = parseInt(buff[2]);
- }
- var enemy_url = new URL(link);
- var playerID = enemy_url.searchParams.get("p");
- if(Symulator.EnemyID.find(x => {return x == playerID}) != undefined) continue;
- Symulator.EnemyID.push(playerID);
- Symulator.EnemyCount++;
- CheckPlayer(i, playerID, serverID, type);
- }*/
- }
- }
- async function CheckPlayer(Button, playerID, serverID, type)
- {
- DebugLog("Fight: "+playerID+" | "+serverID+" | "+type);
- var pc = new Player(playerID, serverID, type);
- if(Symulator.Ja <= 0 && Button != -1)
- {
- if(Symulator.Ja == 0) CheckPlayer(-1, ustawienia['IndexGracza'], ustawienia['IndexSerwera'], type);
- Symulator.Ja = -1;
- while(Symulator.Ja <= 0) await sleep(10);
- }
- if(type == Arena) httpGetAsync(Button, pc.GetLink(1), LoadPlayerData, pc);
- else for(var i=2; i < 7; i++) httpGetAsync(Button, pc.GetLink(i), LoadPlayerData, pc);
- }
- function httpGetAsync(Button, theUrl, callback, pc)
- {
- var xmlHttp = new XMLHttpRequest();
- xmlHttp.onreadystatechange = function() {
- if (xmlHttp.readyState == 4 && xmlHttp.status == 200)
- callback(Button, xmlHttp.responseText, pc);
- }
- xmlHttp.open("GET", theUrl, true); // true for asynchronous
- xmlHttp.send(null);
- }
- function LoadPlayerData(Button, page, pc)
- {
- var start = page.search(`id="charstats"`);
- page = page.substring(start, page.length - 1);
- var lastone = 0;
- var character = new Char();
- /* --- Określenie typu postaci --- */
- var n = page.indexOf("charmercsel active", 0);
- var start = page.indexOf("Zadanie: ", n);
- var end = page.indexOf("&", start);
- var str = page.slice(start,end);
- if(page.indexOf("Walka w lochach", n) != -1) character.isMain = true;
- else character.isMain = false;
- if(str == "Zadanie: Prowokuj przeciwnika") character.type = Blocker;
- else if(str == "Zadanie: Atakuj") character.type = Attacker;
- else character.type = Healer;
- /* end */
- /* --- Get: lvl, dmg, pancerz, zagrożenie --- */
- for(var i=0; i < 4; i++)
- {
- var toFind = `"charstats_value22"`;
- n = page.indexOf(toFind, lastone)+toFind.length;
- lastone = n;
- if(i == 2)
- {
- var buff = page.substring(n+1, n+12).split(" - ");
- character.obrazeniaMin = parseInt(buff[0]);
- character.obrazeniaMax = parseInt(buff[1]);
- }
- else
- {
- var number = parseInt(page.substring(n+1, n+7));
- if(i == 0) character.lvl = number;
- else if(i == 1) character.pancerz = number;
- else if(i == 3) character.zagrozenie = number;
- }
- }
- /* --- Get: base stats --- */
- lastone = 0;
- for(var i = 0; i < 8; i++)
- {
- var toFind = `"charstats_value"`;
- n = page.indexOf(toFind, lastone)+toFind.length;
- lastone = n;
- var number = parseInt(page.substring(n+1, n+7));
- if(character.isMain)
- {
- if(i == 2) character.sila = number;
- else if(i == 3) character.wladanie = number;
- else if(i == 4) character.zrecznosc = number;
- else if(i == 5) character.budowa = number;
- else if(i == 6) character.charyzma = number;
- else if(i == 7) character.inteligencja = number;
- }
- else
- {
- if(i == 1) character.sila = number;
- else if(i == 2) character.wladanie = number;
- else if(i == 3) character.zrecznosc = number;
- else if(i == 4) character.budowa = number;
- else if(i == 5) character.charyzma = number;
- else if(i == 6) character.inteligencja = number;
- }
- }
- // Parowanie
- var toFind = `cie krytycznych trafie`;
- n = page.indexOf(toFind)+toFind.length;
- var number = parseInt( page.substring(n+20, n+23) );
- character.UnikniecieKrytyczne = number/100;
- // Blokowanie
- toFind = `Szanse na zablokowanie ciosu:`;
- n = page.indexOf(toFind)+toFind.length;
- number = parseInt( page.substring(n+13, n+16) );
- character.ZablokowanieTrafienia = number/100;
- // Trafienie krytyczne
- toFind = `Szanse na krytyczne trafienie:`;
- n = page.indexOf(toFind)+toFind.length;
- number = parseInt( page.substring(n+13, n+16) );
- character.KrytyczneTrafienie = number/100;
- pc.character.push(character);
- if(pc.type == Arena || (pc.type == CT && pc.character.length == 5) )
- {
- if(Button == -1) Symulator.Ja = pc;
- else
- {
- SimulateBattle(Button, pc);
- Symulator.EnemyLoaded++;
- }
- }
- }
- function SimulateBattle(Button, pc)
- {
- var chance = 0;
- if(pc.type == Arena) chance = SimulateArena(Symulator.Ja, pc);
- else chance = SimulateCT(Symulator.Ja, pc);
- red = 255*Math.cos( (Math.PI/2)*MinMax(0, chance, 100)/100 );
- green = 255*Math.sin( (Math.PI/2)*MinMax(0, chance, 100)/100 );
- var elementTD = jQ(Button).parent();
- elementTD.append(`<span class="B_ChanceToWin" style="text-shadow: 0 1px 6px rgb(`+red+`,`+green+`,0);">`+chance+`%</span>`);
- var BtnPos = Number(jQ(Button).attr("data-pos-num"));
- var BtnType = Number(jQ(Button).attr("data-type"));
- jQ(Button).remove();
- if(Symulator.WeakestEnemy.WinRatio <= chance)
- {
- Symulator.WeakestEnemy.Position = BtnPos;
- Symulator.WeakestEnemy.WinRatio = chance;
- }
- }
- function SimulateCT(attacker, deffender)
- {
- attacker.CalculateStats();
- deffender.CalculateStats();
- var aDmg = 0;
- var dDmg = 0;
- for(var i = 0; i < attacker.character.length; i++)
- {
- for(var j = 0; j < deffender.character.length; j++)
- {
- var a = attacker.character[i];
- var d = deffender.character[j];
- a.CalculateStats(d);
- d.CalculateStats(a);
- var aChance = d.GetThreat() / deffender.zagrozenie;
- var dChance = a.GetThreat() / attacker.zagrozenie;
- aDmg += a.DmgDone(d, aChance, 50);
- dDmg += d.DmgDone(a, dChance, 50);
- }
- }
- //var chance = Math.round(1000*aDmg / (aDmg+dDmg))/10;
- var aDmgPerc = aDmg / (aDmg+dDmg);
- var dDmgPerc = dDmg / (aDmg+dDmg);
- var aXGauss = Math.sqrt(-Math.log(aDmgPerc));
- var dXGauss = Math.sqrt(-Math.log(dDmgPerc));
- var chance = Math.round(1000*dXGauss / (dXGauss+aXGauss))/10;
- return chance;
- }
- function SimulateArena(attacker, deffender)
- {
- var a = attacker.character[0];
- var d = deffender.character[0];
- a.CalculateStats(d);
- d.CalculateStats(a);
- var aDmg = a.DmgDone(d, 1, 15);
- var dDmg = d.DmgDone(a, 1, 15);
- //var chance = Math.round(1000*aDmg / (aDmg+dDmg))/10;
- var aDmgPerc = aDmg / (aDmg+dDmg);
- var dDmgPerc = dDmg / (aDmg+dDmg);
- var aXGauss = Math.sqrt(-Math.log(aDmgPerc));
- var dXGauss = Math.sqrt(-Math.log(dDmgPerc));
- var chance = Math.round(1000*dXGauss / (dXGauss+aXGauss))/10;
- /*var str = "Statystyki\n\nJa:";
- var lel = a;
- str += "\nObrażenia: "+lel.ZadawaneObrazenia[0] + " ~ " + lel.ZadawaneObrazenia[1];
- str += "\nSzansa na trafienie: "+lel.Trafienie;
- str += "\nSzansa na podwójne trafienie: "+lel.PodwojneTrafienie;
- str += "\nSzansa na krytyczne trafienie: "+lel.KrytyczneTrafienie;
- str += "\nSzansa na blok: "+lel.ZablokowanieTrafienia;
- str += "\nBlokowanie obrażeń: "+lel.BlokowaneObrazenia[0] + " ~ " + lel.BlokowaneObrazenia[1];
- str += "\nSzansa na unik: "+lel.UnikniecieKrytyczne;
- var lel = d;
- str += "\n\nEnemy:";
- str += "\nObrażenia: "+lel.ZadawaneObrazenia[0] + " ~ " + lel.ZadawaneObrazenia[1];
- str += "\nSzansa na trafienie: "+lel.Trafienie;
- str += "\nSzansa na podwójne trafienie: "+lel.PodwojneTrafienie;
- str += "\nSzansa na krytyczne trafienie: "+lel.KrytyczneTrafienie;
- str += "\nSzansa na blok: "+lel.ZablokowanieTrafienia;
- str += "\nBlokowanie obrażeń: "+lel.BlokowaneObrazenia[0] + " ~ " + lel.BlokowaneObrazenia[1];
- str += "\nSzansa na unik: "+lel.UnikniecieKrytyczne;
- DebugLog(str);
- DebugLog("A: "+aDmg+" | D: " + dDmg);*/
- return chance;
- }
- function GetCss()
- {
- var GuiStyle = `<style>
- .B_Gui
- {
- margin: 10px;
- position: fixed;
- z-index: 4000;
- padding: 10px;
- display: block;
- background-color: black;
- opacity: 0.85;
- border-style: outset;
- border-radius: 3px;
- color: white;
- box-sizing: inherit;
- width: 250px;
- }
- .timer
- {
- top: 200px;
- }
- /* Rounded sliders */
- .switch {
- position: relative;
- display: inline-block;
- width: 40px;
- height: 23px;
- opacity: 1;
- vertical-align: bottom;
- }
- .switch input {
- opacity: 0;
- width: 0;
- height: 0;
- }
- .sliderFromSwitch {
- position: absolute;
- cursor: pointer;
- top: 0;
- left: 0;
- right: 0;
- bottom: 0;
- background-color: #ccc;
- -webkit-transition: .4s;
- transition: .4s;
- opacity: 1;
- }
- .sliderFromSwitch:before {
- position: absolute;
- content: "";
- height: 17px;
- width: 17px;
- left: 3px;
- bottom: 3px;
- background-color: white;
- -webkit-transition: .4s;
- transition: .4s;
- opacity: 1;
- }
- input:checked + .sliderFromSwitch {
- background-color: limegreen;
- }
- input:focus + .sliderFromSwitch {
- box-shadow: 0 0 1px #2196F3;
- }
- input:checked + .sliderFromSwitch:before {
- -webkit-transform: translateX(17px);
- -ms-transform: translateX(17px);
- transform: translateX(17px);
- }
- .sliderFromSwitch.round {
- border-radius: 23px;
- }
- .sliderFromSwitch.round:before {
- border-radius: 50%;
- }
- /* Inner table*/
- table.B_table, table.B_table td, table.B_table th {
- padding: 4px;
- //border: 1px solid #ddd;
- text-align: center;
- font-size: 102%;
- opacity: 1;
- }
- table.B_table th
- {
- font-weight: bold;
- text-decoration: underline;
- width: 33%;
- }
- table.B_table caption
- {
- color: bisque;
- margin: 6px 0;
- font-size: 1.4em;
- text-align: center;
- }
- table.B_table {
- border-collapse: collapse;
- opacity: 1;
- }
- .B_ChanceToWin
- {
- font-weight: bold;
- display: inline-block;
- color: black;
- padding: 1px 3px 1px 3px;
- text-decoration: none;
- }
- h2 {
- text-align: center;
- }
- .tooltip {
- position: relative;
- display: inline-block;
- }
- .tooltip .tooltiptext {
- opacity: 0;
- width: 120px;
- background-color: black;
- color: #fff;
- text-align: center;
- border-radius: 6px;
- padding: 5px 0;
- position: absolute;
- z-index: 1;
- bottom: 150%;
- left: 50%;
- margin-left: -60px;
- transition: opacity 0.5s;
- }
- .tooltip .tooltiptext::after {
- content: "";
- position: absolute;
- top: 100%;
- left: 50%;
- margin-left: -5px;
- border-width: 5px;
- border-style: solid;
- border-color: black transparent transparent transparent;
- }
- input.settings
- {
- width: 15px;
- height: 15px;
- margin: 0px 3px 0px 3px;
- background-color: white;
- border-color: gray;
- padding: 2px;
- border-radius: 5px;
- vertical-align: bottom;
- }
- .SettingsMenu
- {
- position: relative;
- display: inline-block;
- }
- .SettingsMenu .SettingsMenuText
- {
- display: none;
- opacity: 0;
- width: 250px;
- background-color: grey;
- color: #fff;
- text-align: center;
- padding: 5px 0;
- border-radius: 6px;
- position: absolute;
- z-index: 99999;
- transition: opacity 0.5s;
- top: -5px;
- left: 105%;
- }
- .SettingsMenuText select
- {
- width: 100%;
- padding: 4px 6px;
- border: none;
- border-radius: 4px;
- background-color: #f1f1f1;
- }
- input[type=image].settings:focus {
- outline: none;
- }
- input[type=range].xSlider {
- -webkit-appearance: none;
- width: 80%;
- margin: 0.7px 0;
- border-color: #00000000;
- background-color: #00000000;
- vertical-align: bottom;
- bottom: 0;
- }
- input[type=range].xSlider:focus {
- outline: none;
- }
- input[type=range].xSlider::-webkit-slider-runnable-track {
- width: 100%;
- height: 25.6px;
- cursor: pointer;
- box-shadow: 1px 1px 1px #000000, 0px 0px 1px #0d0d0d;
- background: #484d4d;
- border-radius: 0px;
- border: 0px solid #010101;
- }
- input[type=range].xSlider::-webkit-slider-thumb {
- box-shadow: 0px 0px 1px #670000, 0px 0px 0px #810000;
- border: 0px solid #ff1e00;
- height: 27px;
- width: 18px;
- border-radius: 0px;
- background: rgba(255, 67, 95, 0.93);
- cursor: pointer;
- -webkit-appearance: none;
- margin-top: -0.7px;
- }
- input[type=range].xSlider:focus::-webkit-slider-runnable-track {
- background: #484d4d;
- }
- input[type=range].xSlider::-moz-range-track {
- width: 100%;
- height: 25.6px;
- cursor: pointer;
- box-shadow: 1px 1px 1px #000000, 0px 0px 1px #0d0d0d;
- background: #484d4d;
- border-radius: 0px;
- border: 0px solid #010101;
- }
- input[type=range].xSlider::-moz-range-thumb {
- box-shadow: 0px 0px 1px #670000, 0px 0px 0px #810000;
- border: 0px solid #ff1e00;
- height: 27px;
- width: 18px;
- border-radius: 0px;
- background: rgba(255, 67, 95, 0.93);
- cursor: pointer;
- }
- input[type=range].xSlider::-ms-track {
- width: 100%;
- height: 25.6px;
- cursor: pointer;
- background: transparent;
- border-color: transparent;
- color: transparent;
- }
- input[type=range].xSlider::-ms-fill-lower {
- background: #484d4d;
- border: 0px solid #010101;
- border-radius: 0px;
- box-shadow: 1px 1px 1px #000000, 0px 0px 1px #0d0d0d;
- }
- input[type=range].xSlider::-ms-fill-upper {
- background: #484d4d;
- border: 0px solid #010101;
- border-radius: 0px;
- box-shadow: 1px 1px 1px #000000, 0px 0px 1px #0d0d0d;
- }
- input[type=range].xSlider::-ms-thumb {
- box-shadow: 0px 0px 1px #670000, 0px 0px 0px #810000;
- border: 0px solid #ff1e00;
- height: 27px;
- width: 18px;
- border-radius: 0px;
- background: rgba(255, 67, 95, 0.93);
- cursor: pointer;
- height: 25.6px;
- }
- input[type=range].xSlider:focus::-ms-fill-lower {
- background: #484d4d;
- }
- input[type=range].xSlider:focus::-ms-fill-upper {
- background: #484d4d;
- }
- input[type=number].BINum:focus {
- outline: none;
- }
- input[type=number].BINum {
- background: white;
- border-color: #ff9d0070;
- border-radius: 5px;
- width: 100px;
- text-align: center;
- font-family: "Times New Roman", Times, serif;
- padding: 3px 0px 2px 10px;
- }
- .SymulatorView
- {
- //border: 2px solid white;
- margin: 1px 0 1px 0;
- //border-left: 6px solid #80f;
- display: inline-block;
- width: 100%;
- }
- button
- {
- border: 1.5px solid white;
- padding: 3% 10% 3% 10%;
- margin: 0;
- color: white;
- background-color: #0000003A;
- cursor: pointer;
- transition: 400ms;
- }
- button:hover, button:focus
- {
- background-color: white;
- color: black;
- }
- button:focus, button:active
- {
- outline: 2px solid #fff;
- outline-offset: -1px;
- }
- .BVersion
- {
- float: right;
- position: absolute;
- top: 0;
- right: 0;
- padding: 5px;
- }
- </style>`;
- return GuiStyle;
- }
- function DragAndDrop(Item, Box)
- {
- var draggable = Item.draggable(),
- droppable = Box.droppable(),
- droppableOffset = droppable.offset(),
- draggableOffset = draggable.offset(),
- dx = droppableOffset.left - draggableOffset.left,
- dy = droppableOffset.top - draggableOffset.top;
- draggable.simulate("drag", { dx: dx, dy: dy });
- }
- /* --- DragAndDrop simulate --- */
- (function( jQ, undefined ) {
- var rkeyEvent = /^key/,
- rmouseEvent = /^(?:mouse|contextmenu)|click/;
- jQ.fn.simulate = function( type, options ) {
- return this.each(function() {
- new jQ.simulate( this, type, options );
- });
- };
- jQ.simulate = function( elem, type, options ) {
- var method = jQ.camelCase( "simulate-" + type );
- this.target = elem;
- this.options = options;
- if ( this[ method ] ) {
- this[ method ]();
- } else {
- this.simulateEvent( elem, type, options );
- }
- };
- jQ.extend( jQ.simulate, {
- keyCode: {
- BACKSPACE: 8,
- COMMA: 188,
- DELETE: 46,
- DOWN: 40,
- END: 35,
- ENTER: 13,
- ESCAPE: 27,
- HOME: 36,
- LEFT: 37,
- NUMPAD_ADD: 107,
- NUMPAD_DECIMAL: 110,
- NUMPAD_DIVIDE: 111,
- NUMPAD_ENTER: 108,
- NUMPAD_MULTIPLY: 106,
- NUMPAD_SUBTRACT: 109,
- PAGE_DOWN: 34,
- PAGE_UP: 33,
- PERIOD: 190,
- RIGHT: 39,
- SPACE: 32,
- TAB: 9,
- UP: 38
- },
- buttonCode: {
- LEFT: 0,
- MIDDLE: 1,
- RIGHT: 2
- }
- });
- jQ.extend( jQ.simulate.prototype, {
- simulateEvent: function( elem, type, options ) {
- var event = this.createEvent( type, options );
- this.dispatchEvent( elem, type, event, options );
- },
- createEvent: function( type, options ) {
- if ( rkeyEvent.test( type ) ) {
- return this.keyEvent( type, options );
- }
- if ( rmouseEvent.test( type ) ) {
- return this.mouseEvent( type, options );
- }
- },
- mouseEvent: function( type, options ) {
- var event, eventDoc, doc, body;
- options = jQ.extend({
- bubbles: true,
- cancelable: (type !== "mousemove"),
- view: window,
- detail: 0,
- screenX: 0,
- screenY: 0,
- clientX: 1,
- clientY: 1,
- ctrlKey: false,
- altKey: false,
- shiftKey: false,
- metaKey: false,
- button: 0,
- relatedTarget: undefined
- }, options );
- if ( document.createEvent ) {
- event = document.createEvent( "MouseEvents" );
- event.initMouseEvent( type, options.bubbles, options.cancelable,
- options.view, options.detail,
- options.screenX, options.screenY, options.clientX, options.clientY,
- options.ctrlKey, options.altKey, options.shiftKey, options.metaKey,
- options.button, options.relatedTarget || document.body.parentNode );
- // IE 9+ creates events with pageX and pageY set to 0.
- // Trying to modify the properties throws an error,
- // so we define getters to return the correct values.
- if ( event.pageX === 0 && event.pageY === 0 && Object.defineProperty ) {
- eventDoc = event.relatedTarget.ownerDocument || document;
- doc = eventDoc.documentElement;
- body = eventDoc.body;
- Object.defineProperty( event, "pageX", {
- get: function() {
- return options.clientX +
- ( doc && doc.scrollLeft || body && body.scrollLeft || 0 ) -
- ( doc && doc.clientLeft || body && body.clientLeft || 0 );
- }
- });
- Object.defineProperty( event, "pageY", {
- get: function() {
- return options.clientY +
- ( doc && doc.scrollTop || body && body.scrollTop || 0 ) -
- ( doc && doc.clientTop || body && body.clientTop || 0 );
- }
- });
- }
- } else if ( document.createEventObject ) {
- event = document.createEventObject();
- jQ.extend( event, options );
- // standards event.button uses constants defined here: http://msdn.microsoft.com/en-us/library/ie/ff974877(v=vs.85).aspx
- // old IE event.button uses constants defined here: http://msdn.microsoft.com/en-us/library/ie/ms533544(v=vs.85).aspx
- // so we actually need to map the standard back to oldIE
- event.button = {
- 0: 1,
- 1: 4,
- 2: 2
- }[ event.button ] || ( event.button === -1 ? 0 : event.button );
- }
- return event;
- }
- });
- /** complex events **/
- function findCenter( elem ) {
- var offset,
- document = jQ( elem.ownerDocument );
- elem = jQ( elem );
- offset = elem.offset();
- return {
- x: offset.left + elem.outerWidth() / 2 - document.scrollLeft(),
- y: offset.top + elem.outerHeight() / 2 - document.scrollTop()
- };
- }
- function findCorner( elem ) {
- var offset,
- document = jQ( elem.ownerDocument );
- elem = jQ( elem );
- offset = elem.offset();
- return {
- x: offset.left - document.scrollLeft(),
- y: offset.top - document.scrollTop()
- };
- }
- jQ.extend( jQ.simulate.prototype, {
- simulateDrag: function() {
- var i = 0,
- target = this.target,
- options = this.options,
- center = options.handle === "corner" ? findCorner( target ) : findCenter( target ),
- x = Math.floor( center.x ),
- y = Math.floor( center.y ),
- coord = { clientX: x, clientY: y },
- dx = options.dx || ( options.x !== undefined ? options.x - x : 0 ),
- dy = options.dy || ( options.y !== undefined ? options.y - y : 0 ),
- moves = options.moves || 3;
- this.simulateEvent( target, "mousedown", coord );
- for ( ; i < moves ; i++ ) {
- x += dx / moves;
- y += dy / moves;
- coord = {
- clientX: Math.round( x ),
- clientY: Math.round( y )
- };
- this.simulateEvent( target.ownerDocument, "mousemove", coord );
- }
- if ( jQ.contains( document, target ) ) {
- this.simulateEvent( target, "mouseup", coord );
- this.simulateEvent( target, "click", coord );
- } else {
- this.simulateEvent( document, "mouseup", coord );
- }
- },
- dispatchEvent: function( elem, type, event ) {
- if ( elem[ type ] ) {
- elem[ type ]();
- } else if ( elem.dispatchEvent ) {
- elem.dispatchEvent( event );
- } else if ( elem.fireEvent ) {
- elem.fireEvent( "on" + type, event );
- }
- }
- });
- })( jQ );
- function GetMsg(e)
- {
- if(e.data == "Go")
- {
- isIframeLoaded = true;
- if(isParent())
- {
- iframe.contentWindow.postMessage("IsWorking|"+IsWorking, '*');
- iframe.contentWindow.postMessage("CzyPaczkowac|"+CzyPaczkowac, '*');
- }
- }
- else
- {
- var str = e.data.split("|");
- if(str[0] == "IsWorking")
- {
- IsWorking = toInt(str[1]);
- if(!isParent()) jQ("#B_cb99").get()[0].checked = IsWorking;
- }
- else if(str[0] == "CzyPaczkowac")
- {
- CzyPaczkowac = toInt(str[1]);
- if(!isParent()) jQ("#B_cb98").get()[0].checked = CzyPaczkowac;
- }
- }
- }
- function iframeLoaded()
- {
- isIframeLoaded = false;
- }
- function isParent()
- {
- if(iframe != null) return true;
- return false;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement