Found 47 repositories(showing 30)
Gabriel1231n2j3n
// ==UserScript== // @name aimbot gratis para krunker.io // @description Este es el mejor aimbot mod menuq puedas obtener // @version 2.19 // @author Gabriel - // @iconURL 31676a4e532e706e673f7261773d74727565.png // @match *://krunker.io/* // @exclude *://krunker.io/editor* // @exclude *://krunker.io/social* // @run-at document-start // @grant none // @noframes // ==/UserScript== /* eslint-env es6 */ /* eslint-disable no-caller, no-undef, no-loop-func */ var CRC2d = CanvasRenderingContext2D.prototype; var skid, skidStr = [...Array(8)].map(_ => 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'[~~(Math.random()*52)]).join(''); class Skid { constructor() { skid = this; this.downKeys = new Set(); this.settings = null; this.vars = {}; this.playerMaps = []; this.skinCache = {}; this.inputFrame = 0; this.renderFrame = 0; this.fps = 0; this.lists = { renderESP: { off: "Off", walls: "Walls", twoD: "2d", full: "Full" }, renderChams: { off: "Off", white: "White", blue: "Blue", teal: "Teal", purple: "Purple", green: "Green", yellow: "Yellow", red: "Red", }, autoBhop: { off: "Off", autoJump: "Auto Jump", keyJump: "Key Jump", autoSlide: "Auto Slide", keySlide: "Key Slide" }, autoAim: { off: "Off", correction: "Aim Correction", assist: "Legit Aim Assist", easyassist: "Easy Aim Assist", silent: "Silent Aim", trigger: "Trigger Bot", quickScope: "Quick Scope" }, audioStreams: { off: 'Off', _2000s: 'General German/English', _HipHopRNB: 'Hip Hop / RNB', _Oldskool: 'Hip Hop Oldskool', _Country: 'Country', _Pop: 'Pop', _Dance: 'Dance', _Dubstep: 'DubStep', _Lowfi: 'LoFi HipHop', _Jazz: 'Jazz', _Oldies: 'Golden Oldies', _Club: 'Club', _Folk: 'Folk', _ClassicRock: 'Classic Rock', _Metal: 'Heavy Metal', _DeathMetal: 'Death Metal', _Classical: 'Classical', _Alternative: 'Alternative', }, } this.consts = { twoPI: Math.PI * 2, halfPI: Math.PI / 2, playerHeight: 11, cameraHeight: 1.5, headScale: 2, armScale: 1.3, armInset: 0.1, chestWidth: 2.6, hitBoxPad: 1, crouchDst: 3, recoilMlt: 0.3, nameOffset: 0.6, nameOffsetHat: 0.8, }; this.key = { frame: 0, delta: 1, xdir: 2, ydir: 3, moveDir: 4, shoot: 5, scope: 6, jump: 7, reload: 8, crouch: 9, weaponScroll: 10, weaponSwap: 11, moveLock: 12 }; this.css = { noTextShadows: `*, .button.small, .bigShadowT { text-shadow: none !important; }`, hideAdverts: `#aMerger, #endAMerger { display: none !important }`, hideSocials: `.headerBarRight > .verticalSeparator, .imageButton { display: none }`, cookieButton: `#onetrust-consent-sdk { display: none !important }`, newsHolder: `#newsHolder { display: none !important }`, }; this.isProxy = Symbol("isProxy"); this.spinTimer = 1800; let wait = setInterval(_ => { this.head = document.head||document.getElementsByTagName('head')[0] if (this.head) { clearInterval(wait); Object.entries(this.css).forEach(entry => { this.css[entry[0]] = this.createElement("style", entry[1]); }) this.onLoad(); } }, 100); } canStore() { return this.isDefined(Storage); } saveVal(name, val) { if (this.canStore()) localStorage.setItem("kro_utilities_"+name, val); } deleteVal(name) { if (this.canStore()) localStorage.removeItem("kro_utilities_"+name); } getSavedVal(name) { if (this.canStore()) return localStorage.getItem("kro_utilities_"+name); return null; } isType(item, type) { return typeof item === type; } isDefined(object) { return !this.isType(object, "undefined") && object !== null; } isNative(fn) { return (/^function\s*[a-z0-9_\$]*\s*\([^)]*\)\s*\{\s*\[native code\]\s*\}/i).test('' + fn) } getStatic(s, d) { return this.isDefined(s) ? s : d } crossDomain(url) { return "https://crossorigin.me/" + url; } async waitFor(test, timeout_ms = 20000, doWhile = null) { let sleep = (ms) => new Promise((resolve) => setTimeout(resolve, ms)); return new Promise(async (resolve, reject) => { if (typeof timeout_ms != "number") reject("Timeout argument not a number in waitFor(selector, timeout_ms)"); let result, freq = 100; while (result === undefined || result === false || result === null || result.length === 0) { if (doWhile && doWhile instanceof Function) doWhile(); if (timeout_ms % 1000 < freq) console.log("waiting for: ", test); if ((timeout_ms -= freq) < 0) { console.log( "Timeout : ", test ); resolve(false); return; } await sleep(freq); result = typeof test === "string" ? Function(test)() : test(); } console.log("Passed : ", test); resolve(result); }); }; createSettings() { this.settings = { //Rendering showSkidBtn: { pre: "<div class='setHed'>Rendering</div>", name: "Show Skid Button", val: true, html: () => this.generateSetting("checkbox", "showSkidBtn", this), set: (value, init) => { let button = document.getElementById("mainButton"); if (!button) { button = this.createButton("5k1D", "https://i.imgur.com/1tWAEJx.gif", this.toggleMenu, value) } else button.style.display = value ? "inherit" : "none"; } }, hideAdverts: { name: "Hide Advertisments", val: true, html: () => this.generateSetting("checkbox", "hideAdverts", this), set: (value, init) => { if (value) this.head.appendChild(this.css.hideAdverts) else if (!init) this.css.hideAdverts.remove() } }, hideStreams: { name: "Hide Streams", val: false, html: () => this.generateSetting("checkbox", "hideStreams", this), set: (value) => { window.streamContainer.style.display = value ? "none" : "inherit" } }, hideMerch: { name: "Hide Merch", val: false, html: () => this.generateSetting("checkbox", "hideMerch", this), set: value => { window.merchHolder.style.display = value ? "none" : "inherit" } }, hideNewsConsole: { name: "Hide News Console", val: false, html: () => this.generateSetting("checkbox", "hideNewsConsole", this), set: value => { window.newsHolder.style.display = value ? "none" : "inherit" } }, hideCookieButton: { name: "Hide Security Manage Button", val: false, html: () => this.generateSetting("checkbox", "hideCookieButton", this), set: value => { window['onetrust-consent-sdk'].style.display = value ? "none" : "inherit" } }, noTextShadows: { name: "Remove Text Shadows", val: false, html: () => this.generateSetting("checkbox", "noTextShadows", this), set: (value, init) => { if (value) this.head.appendChild(this.css.noTextShadows) else if (!init) this.css.noTextShadows.remove() } }, customCSS: { name: "Custom CSS", val: "", html: () => this.generateSetting("url", "customCSS", "URL to CSS file"), resources: { css: document.createElement("link") }, set: (value, init) => { if (value.startsWith("http")&&value.endsWith(".css")) { //let proxy = 'https://cors-anywhere.herokuapp.com/'; this.settings.customCSS.resources.css.href = value } if (init) { this.settings.customCSS.resources.css.rel = "stylesheet" try { this.head.appendChild(this.settings.customCSS.resources.css) } catch(e) { alert(e) this.settings.customCSS.resources.css = null } } } }, renderESP: { name: "Player ESP Type", val: "off", html: () => this.generateSetting("select", "renderESP", this.lists.renderESP), }, renderTracers: { name: "Player Tracers", val: false, html: () => this.generateSetting("checkbox", "renderTracers"), }, rainbowColor: { name: "Rainbow ESP", val: false, html: () => this.generateSetting("checkbox", "rainbowColor"), }, renderChams: { name: "Player Chams", val: "off", html: () => this.generateSetting( "select", "renderChams", this.lists.renderChams ), }, renderWireFrame: { name: "Player Wireframe", val: false, html: () => this.generateSetting("checkbox", "renderWireFrame"), }, customBillboard: { name: "Custom Billboard Text", val: "", html: () => this.generateSetting( "text", "customBillboard", "Custom Billboard Text" ), }, //Weapon autoReload: { pre: "<br><div class='setHed'>Weapon</div>", name: "Auto Reload", val: false, html: () => this.generateSetting("checkbox", "autoReload"), }, autoAim: { name: "Auto Aim Type", val: "off", html: () => this.generateSetting("select", "autoAim", this.lists.autoAim), }, frustrumCheck: { name: "Line of Sight Check", val: false, html: () => this.generateSetting("checkbox", "frustrumCheck"), }, wallPenetrate: { name: "Aim through Penetratables", val: false, html: () => this.generateSetting("checkbox", "wallPenetrate"), }, weaponZoom: { name: "Weapon Zoom", val: 1.0, min: 0, max: 50.0, step: 0.01, html: () => this.generateSetting("slider", "weaponZoom"), set: (value) => { if (this.renderer) this.renderer.adsFovMlt = value;} }, weaponTrails: { name: "Weapon Trails", val: false, html: () => this.generateSetting("checkbox", "weaponTrails"), set: (value) => { if (this.me) this.me.weapon.trail = value;} }, //Player autoBhop: { pre: "<br><div class='setHed'>Player</div>", name: "Auto Bhop Type", val: "off", html: () => this.generateSetting("select", "autoBhop", this.lists.autoBhop), }, thirdPerson: { name: "Third Person", val: false, html: () => this.generateSetting("checkbox", "thirdPerson"), set: (value, init) => { if (value) this.thirdPerson = 1; else if (!init) this.thirdPerson = undefined; } }, skinUnlock: { name: "Unlock Skins", val: false, html: () => this.generateSetting("checkbox", "skinUnlock", this), }, //GamePlay disableWpnSnd: { pre: "<br><div class='setHed'>GamePlay</div>", name: "Disable Players Weapon Sounds", val: false, html: () => this.generateSetting("checkbox", "disableWpnSnd", this), }, disableHckSnd: { name: "Disable Hacker Fart Sounds", val: false, html: () => this.generateSetting("checkbox", "disableHckSnd", this), }, autoActivateNuke: { name: "Auto Activate Nuke", val: false, html: () => this.generateSetting("checkbox", "autoActivateNuke", this), }, autoFindNew: { name: "New Lobby Finder", val: false, html: () => this.generateSetting("checkbox", "autoFindNew", this), }, autoClick: { name: "Auto Start Game", val: false, html: () => this.generateSetting("checkbox", "autoClick", this), }, inActivity: { name: "No InActivity Kick", val: true, html: () => this.generateSetting("checkbox", "autoClick", this), }, //Radio Stream Player playStream: { pre: "<br><div class='setHed'>Radio Stream Player</div>", name: "Stream Select", val: "off", html: () => this.generateSetting("select", "playStream", this.lists.audioStreams), set: (value) => { if (value == "off") { if ( this.settings.playStream.audio ) { this.settings.playStream.audio.pause(); this.settings.playStream.audio.currentTime = 0; this.settings.playStream.audio = null; } return; } let url = this.settings.playStream.urls[value]; if (!this.settings.playStream.audio) { this.settings.playStream.audio = new Audio(url); this.settings.playStream.audio.volume = this.settings.audioVolume.val||0.5 } else { this.settings.playStream.audio.src = url; } this.settings.playStream.audio.load(); this.settings.playStream.audio.play(); }, urls: { _2000s: 'http://0n-2000s.radionetz.de/0n-2000s.aac', _HipHopRNB: 'https://stream-mixtape-geo.ntslive.net/mixtape2', _Country: 'https://live.wostreaming.net/direct/wboc-waaifmmp3-ibc2', _Dance: 'http://streaming.radionomy.com/A-RADIO-TOP-40', _Pop: 'http://bigrradio.cdnstream1.com/5106_128', _Jazz: 'http://strm112.1.fm/ajazz_mobile_mp3', _Oldies: 'http://strm112.1.fm/60s_70s_mobile_mp3', _Club: 'http://strm112.1.fm/club_mobile_mp3', _Folk: 'https://freshgrass.streamguys1.com/irish-128mp3', _ClassicRock: 'http://1a-classicrock.radionetz.de/1a-classicrock.mp3', _Metal: 'http://streams.radiobob.de/metalcore/mp3-192', _DeathMetal: 'http://stream.laut.fm/beatdownx', _Classical: 'http://live-radio01.mediahubaustralia.com/FM2W/aac/', _Alternative: 'http://bigrradio.cdnstream1.com/5187_128', _Dubstep: 'http://streaming.radionomy.com/R1Dubstep?lang=en', _Lowfi: 'http://streams.fluxfm.de/Chillhop/mp3-256', _Oldskool: 'http://streams.90s90s.de/hiphop/mp3-128/', }, audio: null, }, audioVolume: { name: "Radio Volume", val: 0.5, min: 0, max: 1, step: 0.01, html: () => this.generateSetting("slider", "audioVolume"), set: (value) => { if (this.settings.playStream.audio) this.settings.playStream.audio.volume = value;} }, }; // Inject Html let waitForWindows = setInterval(_ => { if (window.windows) { const menu = window.windows[11]; menu.header = "Settings"; menu.gen = _ => { var tmpHTML = `<div style='text-align:center'> <a onclick='window.open("https://skidlamer.github.io/")' class='menuLink'>SkidFest Settings</center></a> <hr> </div>`; for (const key in this.settings) { if (this.settings[key].pre) tmpHTML += this.settings[key].pre; tmpHTML += "<div class='settName' id='" + key + "_div' style='display:" + (this.settings[key].hide ? 'none' : 'block') + "'>" + this.settings[key].name + " " + this.settings[key].html() + "</div>"; } tmpHTML += `<br><hr><a onclick='${skidStr}.resetSettings()' class='menuLink'>Reset Settings</a> | <a onclick='${skidStr}.saveScript()' class='menuLink'>Save GameScript</a>` return tmpHTML; }; clearInterval(waitForWindows); //this.createButton("5k1D", "https://i.imgur.com/1tWAEJx.gif", this.toggleMenu) } }, 100); // setupSettings for (const key in this.settings) { this.settings[key].def = this.settings[key].val; if (!this.settings[key].disabled) { let tmpVal = this.getSavedVal(key); this.settings[key].val = tmpVal !== null ? tmpVal : this.settings[key].val; if (this.settings[key].val == "false") this.settings[key].val = false; if (this.settings[key].val == "true") this.settings[key].val = true; if (this.settings[key].val == "undefined") this.settings[key].val = this.settings[key].def; if (this.settings[key].set) this.settings[key].set(this.settings[key].val, true); } } } generateSetting(type, name, extra) { switch (type) { case 'checkbox': return `<label class="switch"><input type="checkbox" onclick="${skidStr}.setSetting('${name}', this.checked)" ${this.settings[name].val ? 'checked' : ''}><span class="slider"></span></label>`; case 'slider': return `<span class='sliderVal' id='slid_utilities_${name}'>${this.settings[name].val}</span><div class='slidecontainer'><input type='range' min='${this.settings[name].min}' max='${this.settings[name].max}' step='${this.settings[name].step}' value='${this.settings[name].val}' class='sliderM' oninput="${skidStr}.setSetting('${name}', this.value)"></div>` case 'select': { let temp = `<select onchange="${skidStr}.setSetting(\x27${name}\x27, this.value)" class="inputGrey2">`; for (let option in extra) { temp += '<option value="' + option + '" ' + (option == this.settings[name].val ? 'selected' : '') + '>' + extra[option] + '</option>'; } temp += '</select>'; return temp; } default: return `<input type="${type}" name="${type}" id="slid_utilities_${name}"\n${'color' == type ? 'style="float:right;margin-top:5px"' : `class="inputGrey2" placeholder="${extra}"`}\nvalue="${this.settings[name].val}" oninput="${skidStr}.setSetting(\x27${name}\x27, this.value)"/>`; } } resetSettings() { if (confirm("Are you sure you want to reset all your settings? This will also refresh the page")) { Object.keys(localStorage).filter(x => x.includes("kro_utilities_")).forEach(x => localStorage.removeItem(x)); location.reload(); } } setSetting(t, e) { this.settings[t].val = e; this.saveVal(t, e); if (document.getElementById(`slid_utilities_${t}`)) document.getElementById(`slid_utilities_${t}`).innerHTML = e; if (this.settings[t].set) this.settings[t].set(e); } createObserver(elm, check, callback, onshow = true) { return new MutationObserver((mutationsList, observer) => { if (check == 'src' || onshow && mutationsList[0].target.style.display == 'block' || !onshow) { callback(mutationsList[0].target); } }).observe(elm, check == 'childList' ? {childList: true} : {attributes: true, attributeFilter: [check]}); } createListener(elm, type, callback = null) { if (!this.isDefined(elm)) { alert("Failed creating " + type + "listener"); return } elm.addEventListener(type, event => callback(event)); } createElement(element, attribute, inner) { if (!this.isDefined(element)) { return null; } if (!this.isDefined(inner)) { inner = ""; } let el = document.createElement(element); if (this.isType(attribute, 'object')) { for (let key in attribute) { el.setAttribute(key, attribute[key]); } } if (!Array.isArray(inner)) { inner = [inner]; } for (let i = 0; i < inner.length; i++) { if (inner[i].tagName) { el.appendChild(inner[i]); } else { el.appendChild(document.createTextNode(inner[i])); } } return el; } createButton(name, iconURL, fn, visible) { visible = visible ? "inherit":"none"; let menu = document.querySelector("#menuItemContainer"); let icon = this.createElement("div",{"class":"menuItemIcon", "style":`background-image:url("${iconURL}");display:inherit;`}); let title= this.createElement("div",{"class":"menuItemTitle", "style":`display:inherit;`}, name); let host = this.createElement("div",{"id":"mainButton", "class":"menuItem", "onmouseenter":"playTick()", "onclick":"showWindow(12)", "style":`display:${visible};`},[icon, title]); if (menu) menu.append(host) } objectHas(obj, arr) { return arr.some(prop => obj.hasOwnProperty(prop)); } getVersion() { const elems = document.getElementsByClassName('terms'); const version = elems[elems.length - 1].innerText; return version; } saveAs(name, data) { let blob = new Blob([data], {type: 'text/plain'}); let el = window.document.createElement("a"); el.href = window.URL.createObjectURL(blob); el.download = name; window.document.body.appendChild(el); el.click(); window.document.body.removeChild(el); } saveScript() { this.fetchScript().then(script => { this.saveAs("game_" + this.getVersion() + ".js", script) }) } isKeyDown(key) { return this.downKeys.has(key); } simulateKey(keyCode) { var oEvent = document.createEvent('KeyboardEvent'); // Chromium Hack Object.defineProperty(oEvent, 'keyCode', { get : function() { return this.keyCodeVal; } }); Object.defineProperty(oEvent, 'which', { get : function() { return this.keyCodeVal; } }); if (oEvent.initKeyboardEvent) { oEvent.initKeyboardEvent("keypress", true, true, document.defaultView, keyCode, keyCode, "", "", false, ""); } else { oEvent.initKeyEvent("keypress", true, true, document.defaultView, false, false, false, false, keyCode, 0); } oEvent.keyCodeVal = keyCode; if (oEvent.keyCode !== keyCode) { alert("keyCode mismatch " + oEvent.keyCode + "(" + oEvent.which + ")"); } document.body.dispatchEvent(oEvent); } toggleMenu() { let lock = document.pointerLockElement || document.mozPointerLockElement; if (lock) document.exitPointerLock(); window.showWindow(12); if (this.isDefined(window.SOUND)) window.SOUND.play(`tick_0`,0.1) } onLoad() { this.createSettings(); this.createObservers(); this.waitFor(_=>this.isDefined(this.exports)).then(_=> { if (!this.isDefined(this.exports)) { alert("This Mod Needs To Be Updated Please Try Agian Later"); return; } //console.dir(this.exports); let toFind = { overlay: ["render", "canvas"], config: ["accAnnounce", "availableRegions", "assetCat"], three: ["ACESFilmicToneMapping", "TextureLoader", "ObjectLoader"], ws: ["socketReady", "ingressPacketCount", "ingressPacketCount", "egressDataSize"], utility: ["VectorAdd", "VectorAngleSign"], //colors: ["challLvl", "getChallCol"], //ui: ["showEndScreen", "toggleControlUI", "toggleEndScreen", "updatePlayInstructions"], //events: ["actions", "events"], } for (let rootKey in this.exports) { let exp = this.exports[rootKey].exports; for (let name in toFind) { if (this.objectHas(exp, toFind[name])) { console.log("Found Export ", name); delete toFind[name]; this[name] = exp; } } } if (!(Object.keys(toFind).length === 0 && toFind.constructor === Object)) { for (let name in toFind) { alert("Failed To Find Export " + name); } } else { Object.defineProperty(this.config, "nameVisRate", { value: 0, writable: false, configurable: true, }) this.ctx = this.overlay.canvas.getContext('2d'); this.overlay.render = new Proxy(this.overlay.render, { apply: function(target, that, args) { return [target.apply(that, args), render.apply(that, args)] } }) function render(scale, game, controls, renderer, me) { let width = skid.overlay.canvas.width / scale; let height = skid.overlay.canvas.height / scale; const renderArgs = [scale, game, controls, renderer, me]; if (renderArgs && void 0 !== skid) { ["scale", "game", "controls", "renderer", "me"].forEach((item, index)=>{ skid[item] = renderArgs[index]; }); if (me) { skid.ctx.save(); skid.ctx.scale(scale, scale); //this.ctx.clearRect(0, 0, width, height); skid.onRender(); //window.requestAnimationFrame.call(window, renderArgs.callee.caller.bind(this)); skid.ctx.restore(); } if(skid.settings && skid.settings.autoClick.val && window.endUI.style.display == "none" && window.windowHolder.style.display == "none") { controls.toggle(true); } } } // Skins const $skins = Symbol("skins"); Object.defineProperty(Object.prototype, "skins", { set: function(fn) { this[$skins] = fn; if (void 0 == this.localSkins || !this.localSkins.length) { this.localSkins = Array.apply(null, Array(5e3)).map((x, i) => { return { ind: i, cnt: 0x1, } }) } return fn; }, get: function() { return skid.settings.skinUnlock.val && this.stats ? this.localSkins : this[$skins]; } }) this.waitFor(_=>this.ws.connected === true, 40000).then(_=> { this.ws.__event = this.ws._dispatchEvent.bind(this.ws); this.ws.__send = this.ws.send.bind(this.ws); this.ws.send = new Proxy(this.ws.send, { apply: function(target, that, args) { if (args[0] == "ah2") return; try { var original_fn = Function.prototype.apply.apply(target, [that, args]); } catch (e) { e.stack = e.stack = e.stack.replace(/\n.*Object\.apply.*/, ''); throw e; } if (args[0] === "en") { skid.skinCache = { main: args[1][2][0], secondary: args[1][2][1], hat: args[1][3], body: args[1][4], knife: args[1][9], dye: args[1][14], waist: args[1][17], } } return original_fn; } }) this.ws._dispatchEvent = new Proxy(this.ws._dispatchEvent, { apply: function(target, that, [type, event]) { if (type =="init") { if(event[10] && event[10].length && event[10].bill && skid.settings.customBillboard.val.length > 1) { event[10].bill.txt = skid.settings.customBillboard.val; } } if (skid.settings.skinUnlock.val && skid.skinCache && type === "0") { let skins = skid.skinCache; let pInfo = event[0]; let pSize = 38; while (pInfo.length % pSize !== 0) pSize++; for(let i = 0; i < pInfo.length; i += pSize) { if (pInfo[i] === skid.ws.socketId||0) { pInfo[i + 12] = [skins.main, skins.secondary]; pInfo[i + 13] = skins.hat; pInfo[i + 14] = skins.body; pInfo[i + 19] = skins.knife; pInfo[i + 24] = skins.dye; pInfo[i + 33] = skins.waist; } } } return target.apply(that, arguments[2]); } }) }) if (this.isDefined(window.SOUND)) { window.SOUND.play = new Proxy(window.SOUND.play, { apply: function(target, that, [src, vol, loop, rate]) { if ( src.startsWith("fart_") && skid.settings.disableHckSnd.val ) return; return target.apply(that, [src, vol, loop, rate]); } }) } AudioParam.prototype.setValueAtTime = new Proxy(AudioParam.prototype.setValueAtTime, { apply: function(target, that, [value, startTime]) { return target.apply(that, [value, 0]); } }) this.rayC = new this.three.Raycaster(); this.vec2 = new this.three.Vector2(0, 0); } }) } gameJS(script) { let entries = { // Deobfu inView: { regex: /(\w+\['(\w+)']\){if\(\(\w+=\w+\['\w+']\['position']\['clone']\(\))/, index: 2 }, spectating: { regex: /\['team']:window\['(\w+)']/, index: 1 }, //inView: { regex: /\]\)continue;if\(!\w+\['(.+?)\']\)continue;/, index: 1 }, //canSee: { regex: /\w+\['(\w+)']\(\w+,\w+\['x'],\w+\['y'],\w+\['z']\)\)&&/, index: 1 }, //procInputs: { regex: /this\['(\w+)']=function\((\w+),(\w+),\w+,\w+\){(this)\['recon']/, index: 1 }, aimVal: { regex: /this\['(\w+)']-=0x1\/\(this\['weapon']\['\w+']\/\w+\)/, index: 1 }, pchObjc: { regex: /0x0,this\['(\w+)']=new \w+\['Object3D']\(\),this/, index: 1 }, didShoot: { regex: /--,\w+\['(\w+)']=!0x0/, index: 1 }, nAuto: { regex: /'Single\\x20Fire','varN':'(\w+)'/, index: 1 }, crouchVal: { regex: /this\['(\w+)']\+=\w\['\w+']\*\w+,0x1<=this\['\w+']/, index: 1 }, recoilAnimY: { regex: /\+\(-Math\['PI']\/0x4\*\w+\+\w+\['(\w+)']\*\w+\['\w+']\)\+/, index: 1 }, //recoilAnimY: { regex: /this\['recoilAnim']=0x0,this\[(.*?\(''\))]/, index: 1 }, ammos: { regex: /\['length'];for\(\w+=0x0;\w+<\w+\['(\w+)']\['length']/, index: 1 }, weaponIndex: { regex: /\['weaponConfig']\[\w+]\['secondary']&&\(\w+\['(\w+)']==\w+/, index: 1 }, isYou: { regex: /0x0,this\['(\w+)']=\w+,this\['\w+']=!0x0,this\['inputs']/, index: 1 }, objInstances: { regex: /\w+\['\w+']\(0x0,0x0,0x0\);if\(\w+\['(\w+)']=\w+\['\w+']/, index: 1 }, getWorldPosition: { regex: /{\w+=\w+\['camera']\['(\w+)']\(\);/, index: 1 }, //mouseDownL: { regex: /this\['\w+'\]=function\(\){this\['(\w+)'\]=\w*0,this\['(\w+)'\]=\w*0,this\['\w+'\]={}/, index: 1 }, mouseDownR: { regex: /this\['(\w+)']=0x0,this\['keys']=/, index: 1 }, //reloadTimer: { regex: /this\['(\w+)']&&\(\w+\['\w+']\(this\),\w+\['\w+']\(this\)/, index: 1 }, maxHealth: { regex: /this\['health']\/this\['(\w+)']\?/, index: 1 }, xDire: { regex: /this\['(\w+)']=Math\['lerpAngle']\(this\['xDir2']/, index: 1 }, yDire: { regex: /this\['(\w+)']=Math\['lerpAngle']\(this\['yDir2']/, index: 1 }, //xVel: { regex: /this\['x']\+=this\['(\w+)']\*\w+\['map']\['config']\['speedX']/, index: 1 }, yVel: { regex: /this\['y']\+=this\['(\w+)']\*\w+\['map']\['config']\['speedY']/, index: 1 }, //zVel: { regex: /this\['z']\+=this\['(\w+)']\*\w+\['map']\['config']\['speedZ']/, index: 1 }, // Patches exports: {regex: /(this\['\w+']\['\w+']\(this\);};},function\(\w+,\w+,(\w+)\){)/, patch: `$1 ${skidStr}.exports=$2.c; ${skidStr}.modules=$2.m;`}, inputs: {regex: /(\w+\['\w+']\[\w+\['\w+']\['\w+']\?'\w+':'push']\()(\w+)\),/, patch: `$1${skidStr}.onInput($2)),`}, inView: {regex: /&&(\w+\['\w+'])\){(if\(\(\w+=\w+\['\w+']\['\w+']\['\w+'])/, patch: `){if(!$1&&void 0 !== ${skidStr}.nameTags)continue;$2`}, thirdPerson:{regex: /(\w+)\[\'config\'\]\[\'thirdPerson\'\]/g, patch: `void 0 !== ${skidStr}.thirdPerson`}, isHacker:{regex: /(window\['\w+']=)!0x0\)/, patch: `$1!0x1)`}, fixHowler:{regex: /(Howler\['orientation'](.+?)\)\),)/, patch: ``}, respawnT:{regex: /'\w+':0x3e8\*/g, patch: `'respawnT':0x0*`}, anticheat1:{regex: /&&\w+\(\),window\['utilities']&&\(\w+\(null,null,null,!0x0\),\w+\(\)\)/, patch: ""}, anticheat2:{regex: /(\[]instanceof Array;).*?(var)/, patch: "$1 $2"}, anticheat3:{regex: /windows\['length'\]>\d+.*?0x25/, patch: `0x25`}, commandline:{regex: /Object\['defineProperty']\(console.*?\),/, patch: ""}, writeable:{regex: /'writeable':!0x1/g, patch: "writeable:true"}, configurable:{regex: /'configurable':!0x1/g, patch: "configurable:true"}, typeError:{regex: /throw new TypeError/g, patch: "console.error"}, error:{regex: /throw new Error/g, patch: "console.error"}, }; for(let name in entries) { let object = entries[name]; let found = object.regex.exec(script); if (object.hasOwnProperty('index')) { if (!found) { object.val = null; alert("Failed to Find " + name); } else { object.val = found[object.index]; console.log ("Found ", name, ":", object.val); } Object.defineProperty(skid.vars, name, { configurable: false, value: object.val }); } else if (found) { script = script.replace(object.regex, object.patch); console.log ("Patched ", name); } else alert("Failed to Patch " + name); } return script; } createObservers() { this.createObserver(window.instructionsUpdate, 'style', (target) => { if (this.settings.autoFindNew.val) { console.log(target) if (['Kicked', 'Banned', 'Disconnected', 'Error', 'Game is full'].some(text => target && target.innerHTML.includes(text))) { location = document.location.origin; } } }); this.createListener(document, "keyup", event => { if (this.downKeys.has(event.code)) this.downKeys.delete(event.code) }) this.createListener(document, "keydown", event => { if (event.code == "F1") { event.preventDefault(); this.toggleMenu(); } if ('INPUT' == document.activeElement.tagName || !window.endUI && window.endUI.style.display) return; switch (event.code) { case 'NumpadSubtract': document.exitPointerLock(); //console.log(document.exitPointerLock) console.dirxml(this) break; default: if (!this.downKeys.has(event.code)) this.downKeys.add(event.code); break; } }) this.createListener(document, "mouseup", event => { switch (event.button) { case 1: event.preventDefault(); this.toggleMenu(); break; default: break; } }) } onRender() { /* hrt / ttap - https://github.com/hrt */ this.renderFrame ++; if (this.renderFrame >= 100000) this.renderFrame = 0; let scaledWidth = this.ctx.canvas.width / this.scale; let scaledHeight = this.ctx.canvas.height / this.scale; let playerScale = (2 * this.consts.armScale + this.consts.chestWidth + this.consts.armInset) / 2 let worldPosition = this.renderer.camera[this.vars.getWorldPosition](); let espVal = this.settings.renderESP.val; if (espVal ==="walls"||espVal ==="twoD") this.nameTags = undefined; else this.nameTags = true; if (this.settings.autoActivateNuke.val && this.me && Object.keys(this.me.streaks).length) { /*chonker*/ this.ws.__send("k", 0); } if (espVal !== "off") { this.overlay.healthColE = this.settings.rainbowColor.val ? this.overlay.rainbow.col : "#eb5656"; } for (let iter = 0, length = this.game.players.list.length; iter < length; iter++) { let player = this.game.players.list[iter]; if (player[this.vars.isYou] || !player.active || !this.isDefined(player[this.vars.objInstances]) || this.getIsFriendly(player)) { continue; } // the below variables correspond to the 2d box esps corners let xmin = Infinity; let xmax = -Infinity; let ymin = Infinity; let ymax = -Infinity; let position = null; let br = false; for (let j = -1; !br && j < 2; j+=2) { for (let k = -1; !br && k < 2; k+=2) { for (let l = 0; !br && l < 2; l++) { if (position = player[this.vars.objInstances].position.clone()) { position.x += j * playerScale; position.z += k * playerScale; position.y += l * (player.height - player[this.vars.crouchVal] * this.consts.crouchDst); if (!this.containsPoint(position)) { br = true; break; } position.project(this.renderer.camera); xmin = Math.min(xmin, position.x); xmax = Math.max(xmax, position.x); ymin = Math.min(ymin, position.y); ymax = Math.max(ymax, position.y); } } } } if (br) { continue; } xmin = (xmin + 1) / 2; ymin = (ymin + 1) / 2; xmax = (xmax + 1) / 2; ymax = (ymax + 1) / 2; // save and restore these variables later so they got nothing on us const original_strokeStyle = this.ctx.strokeStyle; const original_lineWidth = this.ctx.lineWidth; const original_font = this.ctx.font; const original_fillStyle = this.ctx.fillStyle; //Tracers if (this.settings.renderTracers.val) { CRC2d.save.apply(this.ctx, []); let screenPos = this.world2Screen(player[this.vars.objInstances].position); this.ctx.lineWidth = 4.5; this.ctx.beginPath(); this.ctx.moveTo(this.ctx.canvas.width/2, this.ctx.canvas.height - (this.ctx.canvas.height - scaledHeight)); this.ctx.lineTo(screenPos.x, screenPos.y); this.ctx.strokeStyle = "rgba(0, 0, 0, 0.25)"; this.ctx.stroke(); this.ctx.lineWidth = 2.5; this.ctx.strokeStyle = this.settings.rainbowColor.val ? this.overlay.rainbow.col : "#eb5656" this.ctx.stroke(); CRC2d.restore.apply(this.ctx, []); } CRC2d.save.apply(this.ctx, []); if (espVal == "twoD" || espVal == "full") { // perfect box esp this.ctx.lineWidth = 5; this.ctx.strokeStyle = this.settings.rainbowColor.val ? this.overlay.rainbow.col : "#eb5656" let distanceScale = Math.max(.3, 1 - this.getD3D(worldPosition.x, worldPosition.y, worldPosition.z, player.x, player.y, player.z) / 600); CRC2d.scale.apply(this.ctx, [distanceScale, distanceScale]); let xScale = scaledWidth / distanceScale; let yScale = scaledHeight / distanceScale; CRC2d.beginPath.apply(this.ctx, []); ymin = yScale * (1 - ymin); ymax = yScale * (1 - ymax); xmin = xScale * xmin; xmax = xScale * xmax; CRC2d.moveTo.apply(this.ctx, [xmin, ymin]); CRC2d.lineTo.apply(this.ctx, [xmin, ymax]); CRC2d.lineTo.apply(this.ctx, [xmax, ymax]); CRC2d.lineTo.apply(this.ctx, [xmax, ymin]); CRC2d.lineTo.apply(this.ctx, [xmin, ymin]); CRC2d.stroke.apply(this.ctx, []); if (espVal == "full") { // health bar this.ctx.fillStyle = "#000000"; let barMaxHeight = ymax - ymin; CRC2d.fillRect.apply(this.ctx, [xmin - 7, ymin, -10, barMaxHeight]); this.ctx.fillStyle = player.health > 75 ? "green" : player.health > 40 ? "orange" : "red"; CRC2d.fillRect.apply(this.ctx, [xmin - 7, ymin, -10, barMaxHeight * (player.health / player[this.vars.maxHealth])]); // info this.ctx.font = "48px Sans-serif"; this.ctx.fillStyle = "white"; this.ctx.strokeStyle='black'; this.ctx.lineWidth = 1; let x = xmax + 7; let y = ymax; CRC2d.fillText.apply(this.ctx, [player.name||player.alias, x, y]); CRC2d.strokeText.apply(this.ctx, [player.name||player.alias, x, y]); this.ctx.font = "30px Sans-serif"; y += 35; CRC2d.fillText.apply(this.ctx, [player.weapon.name, x, y]); CRC2d.strokeText.apply(this.ctx, [player.weapon.name, x, y]); y += 35; CRC2d.fillText.apply(this.ctx, [player.health + ' HP', x, y]); CRC2d.strokeText.apply(this.ctx, [player.health + ' HP', x, y]); } } CRC2d.restore.apply(this.ctx, []); this.ctx.strokeStyle = original_strokeStyle; this.ctx.lineWidth = original_lineWidth; this.ctx.font = original_font; this.ctx.fillStyle = original_fillStyle; // skelly chams if (this.isDefined(player[this.vars.objInstances])) { let obj = player[this.vars.objInstances]; if (!obj.visible) { Object.defineProperty(player[this.vars.objInstances], 'visible', { value: true, writable: false }); } obj.traverse((child) => { let chamColor = this.settings.renderChams.val; let chamsEnabled = chamColor !== "off"; if (child && child.type == "Mesh" && child.material) { child.material.depthTest = chamsEnabled ? false : true; //if (this.isDefined(child.material.fog)) child.material.fog = chamsEnabled ? false : true; if (child.material.emissive) { child.material.emissive.r = chamColor == 'off' || chamColor == 'teal' || chamColor == 'green' || chamColor == 'blue' ? 0 : 0.55; child.material.emissive.g = chamColor == 'off' || chamColor == 'purple' || chamColor == 'blue' || chamColor == 'red' ? 0 : 0.55; child.material.emissive.b = chamColor == 'off' || chamColor == 'yellow' || chamColor == 'green' || chamColor == 'red' ? 0 : 0.55; } child.material.wireframe = this.settings.renderWireFrame.val ? true : false } }) } } } spinTick(input) { //this.game.players.getSpin(this.self); //this.game.players.saveSpin(this.self, angle); const angle = this.getAngleDst(input[2], this.me[this.vars.xDire]); this.spins = this.getStatic(this.spins, new Array()); this.spinTimer = this.getStatic(this.spinTimer, this.config.spinTimer); this.serverTickRate = this.getStatic(this.serverTickRate, this.config.serverTickRate); (this.spins.unshift(angle), this.spins.length > this.spinTimer / this.serverTickRate && (this.spins.length = Math.round(this.spinTimer / this.serverTickRate))) for (var e = 0, i = 0; i < this.spins.length; ++i) e += this.spins[i]; return Math.abs(e * (180 / Math.PI)); } raidBot(input) { let target = this.game.AI.ais.filter(enemy => { return undefined !== enemy.mesh && enemy.mesh && enemy.mesh.children[0] && enemy.canBSeen && enemy.health > 0 }).sort((p1, p2) => this.getD3D(this.me.x, this.me.z, p1.x, p1.z) - this.getD3D(this.me.x, this.me.z, p2.x, p2.z)).shift(); if (target) { let canSee = this.containsPoint(target.mesh.position) let yDire = (this.getDir(this.me.z, this.me.x, target.z, target.x) || 0) let xDire = ((this.getXDire(this.me.x, this.me.y, this.me.z, target.x, target.y + target.mesh.children[0].scale.y * 0.85, target.z) || 0) - this.consts.recoilMlt * this.me[this.vars.recoilAnimY]) if (this.me.weapon[this.vars.nAuto] && this.me[this.vars.didShoot]) { input[this.key.shoot] = 0; input[this.key.scope] = 0; this.me.inspecting = false; this.me.inspectX = 0; } else { if (!this.me.aimDir && canSee) { input[this.key.scope] = 1; if (!this.me[this.vars.aimVal]||this.me.weapon.noAim) { input[this.key.shoot] = 1; input[this.key.ydir] = yDire * 1e3 input[this.key.xdir] = xDire * 1e3 this.lookDir(xDire, yDire); } } } } else { this.resetLookAt(); } return input; } onInput(input) { if (this.isDefined(this.config) && this.config.aimAnimMlt) this.config.aimAnimMlt = 1; if (this.isDefined(this.controls) && this.isDefined(this.config) && this.settings.inActivity.val) { this.controls.idleTimer = 0; this.config.kickTimer = Infinity } if (this.me) { this.inputFrame ++; if (this.inputFrame >= 100000) this.inputFrame = 0; if (!this.game.playerSound[this.isProxy]) { this.game.playerSound = new Proxy(this.game.playerSound, { apply: function(target, that, args) { if (skid.settings.disableWpnSnd.val && args[0] && typeof args[0] == "string" && args[0].startsWith("weapon_")) return; return target.apply(that, args); }, get: function(target, key) { return key === skid.isProxy ? true : Reflect.get(target, key); }, }) } let isMelee = this.isDefined(this.me.weapon.melee)&&this.me.weapon.melee||this.isDefined(this.me.weapon.canThrow)&&this.me.weapon.canThrow; let ammoLeft = this.me[this.vars.ammos][this.me[this.vars.weaponIndex]]; // autoReload if (this.settings.autoReload.val) { //let capacity = this.me.weapon.ammo; //if (ammoLeft < capacity) if (isMelee) { if (!this.me.canThrow) { //this.me.refillKnife(); } } else if (!ammoLeft) { this.game.players.reload(this.me); input[this.key.reload] = 1; // this.me[this.vars.reloadTimer] = 1; //this.me.resetAmmo(); } } //Auto Bhop let autoBhop = this.settings.autoBhop.val; if (autoBhop !== "off") { if (this.isKeyDown("Space") || autoBhop == "autoJump" || autoBhop == "autoSlide") { this.controls.keys[this.controls.binds.jumpKey.val] ^= 1; if (this.controls.keys[this.controls.binds.jumpKey.val]) { this.controls.didPressed[this.controls.binds.jumpKey.val] = 1; } if (this.isKeyDown("Space") || autoBhop == "autoSlide") { if (this.me[this.vars.yVel] < -0.03 && this.me.canSlide) { setTimeout(() => { this.controls.keys[this.controls.binds.crouchKey.val] = 0; }, this.me.slideTimer||325); this.controls.keys[this.controls.binds.crouchKey.val] = 1; this.controls.didPressed[this.controls.binds.crouchKey.val] = 1; } } } } //Autoaim if (this.settings.autoAim.val !== "off") { this.playerMaps.length = 0; this.rayC.setFromCamera(this.vec2, this.renderer.fpsCamera); let target = this.game.players.list.filter(enemy => { let hostile = undefined !== enemy[this.vars.objInstances] && enemy[this.vars.objInstances] && !enemy[this.vars.isYou] && !this.getIsFriendly(enemy) && enemy.health > 0 && this.getInView(enemy); if (hostile) this.playerMaps.push( enemy[this.vars.objInstances] ); return hostile }).sort((p1, p2) => this.getD3D(this.me.x, this.me.z, p1.x, p1.z) - this.getD3D(this.me.x, this.me.z, p2.x, p2.z)).shift(); if (target) { //let count = this.spinTick(input); //if (count < 360) { // input[2] = this.me[this.vars.xDire] + Math.PI; //} else console.log("spins ", count); //target.jumpBobY * this.config.jumpVel let canSee = this.containsPoint(target[this.vars.objInstances].position); let inCast = this.rayC.intersectObjects(this.playerMaps, true).length; let yDire = (this.getDir(this.me.z, this.me.x, target.z, target.x) || 0); let xDire = ((this.getXDire(this.me.x, this.me.y, this.me.z, target.x, target.y - target[this.vars.crouchVal] * this.consts.crouchDst + this.me[this.vars.crouchVal] * this.consts.crouchDst, target.z) || 0) - this.consts.recoilMlt * this.me[this.vars.recoilAnimY]) if (this.me.weapon[this.vars.nAuto] && this.me[this.vars.didShoot]) { input[this.key.shoot] = 0; input[this.key.scope] = 0; this.me.inspecting = false; this.me.inspectX = 0; } else if (!canSee && this.settings.frustrumCheck.val) this.resetLookAt(); else if (ammoLeft||isMelee) { input[this.key.scope] = this.settings.autoAim.val === "assist"||this.settings.autoAim.val === "correction"||this.settings.autoAim.val === "trigger" ? this.controls[this.vars.mouseDownR] : 0; switch (this.settings.autoAim.val) { case "quickScope": input[this.key.scope] = 1; if (!this.me[this.vars.aimVal]||this.me.weapon.noAim) { if (!this.me.canThrow||!isMelee) input[this.key.shoot] = 1; input[this.key.ydir] = yDire * 1e3 input[this.key.xdir] = xDire * 1e3 this.lookDir(xDire, yDire); } break; case "assist": case "easyassist": if (input[this.key.scope] || this.settings.autoAim.val === "easyassist") { if (!this.me.aimDir && canSee || this.settings.autoAim.val === "easyassist") { input[this.key.ydir] = yDire * 1e3 input[this.key.xdir] = xDire * 1e3 this.lookDir(xDire, yDire); } } break; case "silent": if (!this.me[this.vars.aimVal]||this.me.weapon.noAim) { if (!this.me.canThrow||!isMelee) input[this.key.shoot] = 1; } else input[this.key.scope] = 1; input[this.key.ydir] = yDire * 1e3 input[this.key.xdir] = xDire * 1e3 break; case "trigger": if (input[this.key.scope] && canSee && inCast) { input[this.key.shoot] = 1; input[this.key.ydir] = yDire * 1e3 input[this.key.xdir] = xDire * 1e3 } break; case "correction": if (input[this.key.shoot] == 1) { input[this.key.ydir] = yDire * 1e3 input[this.key.xdir] = xDire * 1e3 } break; default: this.resetLookAt(); break; } } } else { this.resetLookAt(); //input = this.raidBot(input); } } } //else if (this.settings.autoClick.val && !this.ui.hasEndScreen) { //this.config.deathDelay = 0; //this.controls.toggle(true); //} //this.game.config.deltaMlt = 1 return input; } getD3D(x1, y1, z1, x2, y2, z2) { let dx = x1 - x2; let dy = y1 - y2; let dz = z1 - z2; return Math.sqrt(dx * dx + dy * dy + dz * dz); } getAngleDst(a, b) { return Math.atan2(Math.sin(b - a), Math.cos(a - b)); } getXDire(x1, y1, z1, x2, y2, z2) { let h = Math.abs(y1 - y2); let dst = this.getD3D(x1, y1, z1, x2, y2, z2); return (Math.asin(h / dst) * ((y1 > y2)?-1:1)); } getDir(x1, y1, x2, y2) { return Math.atan2(y1 - y2, x1 - x2); } getDistance(x1, y1, x2, y2) { return Math.sqrt((x2 -= x1) * x2 + (y2 -= y1) * y2); } containsPoint(point) { let planes = this.renderer.frustum.planes; for (let i = 0; i < 6; i ++) { if (planes[i].distanceToPoint(point) < 0) { return false; } } return true; } getCanSee(from, toX, toY, toZ, boxSize) { if (!from) return 0; boxSize = boxSize||0; for (let obj, dist = this.getD3D(from.x, from.y, from.z, toX, toY, toZ), xDr = this.getDir(from.z, from.x, toZ, toX), yDr = this.getDir(this.getDistance(from.x, from.z, toX, toZ), toY, 0, from.y), dx = 1 / (dist * Math.sin(xDr - Math.PI) * Math.cos(yDr)), dz = 1 / (dist * Math.cos(xDr - Math.PI) * Math.cos(yDr)), dy = 1 / (dist * Math.sin(yDr)), yOffset = from.y + (from.height || 0) - this.consts.cameraHeight, aa = 0; aa < this.game.map.manager.objects.length; ++aa) { if (!(obj = this.game.map.manager.objects[aa]).noShoot && obj.active && !obj.transparent && (!this.settings.wallPenetrate.val || (!obj.penetrable || !this.me.weapon.pierce))) { let tmpDst = this.lineInRect(from.x, from.z, yOffset, dx, dz, dy, obj.x - Math.max(0, obj.width - boxSize), obj.z - Math.max(0, obj.length - boxSize), obj.y - Math.max(0, obj.height - boxSize), obj.x + Math.max(0, obj.width - boxSize), obj.z + Math.max(0, obj.length - boxSize), obj.y + Math.max(0, obj.height - boxSize)); if (tmpDst && 1 > tmpDst) return tmpDst; } } /* let terrain = this.game.map.terrain; if (terrain) { let terrainRaycast = terrain.raycast(from.x, -from.z, yOffset, 1 / dx, -1 / dz, 1 / dy); if (terrainRaycast) return utl.getD3D(from.x, from.y, from.z, terrainRaycast.x, terrainRaycast.z, -terrainRaycast.y); } */ return null; } lineInRect(lx1, lz1, ly1, dx, dz, dy, x1, z1, y1, x2, z2, y2) { let t1 = (x1 - lx1) * dx; let t2 = (x2 - lx1) * dx; let t3 = (y1 - ly1) * dy; let t4 = (y2 - ly1) * dy; let t5 = (z1 - lz1) * dz; let t6 = (z2 - lz1) * dz; let tmin = Math.max(Math.max(Math.min(t1, t2), Math.min(t3, t4)), Math.min(t5, t6)); let tmax = Math.min(Math.min(Math.max(t1, t2), Math.max(t3, t4)), Math.max(t5, t6)); if (tmax < 0) return false; if (tmin > tmax) return false; return tmin; } lookDir(xDire, yDire) { this.controls.object.rotation.y = yDire this.controls[this.vars.pchObjc].rotation.x = xDire; this.controls[this.vars.pchObjc].rotation.x = Math.max(-this.consts.halfPI, Math.min(this.consts.halfPI, this.controls[this.vars.pchObjc].rotation.x)); this.controls.yDr = (this.controls[this.vars.pchObjc].rotation.x % Math.PI).round(3); this.controls.xDr = (this.controls.object.rotation.y % Math.PI).round(3); this.renderer.camera.updateProjectionMatrix(); this.renderer.updateFrustum(); } resetLookAt() { this.controls.yDr = this.controls[this.vars.pchObjc].rotation.x; this.controls.xDr = this.controls.object.rotation.y; this.renderer.camera.updateProjectionMatrix(); this.renderer.updateFrustum(); } world2Screen (position) { let pos = position.clone(); let scaledWidth = this.ctx.canvas.width / this.scale; let scaledHeight = this.ctx.canvas.height / this.scale; pos.project(this.renderer.camera); pos.x = (pos.x + 1) / 2; pos.y = (-pos.y + 1) / 2; pos.x *= scaledWidth; pos.y *= scaledHeight; return pos; } getInView(entity) { return null == this.getCanSee(this.me, entity.x, entity.y, entity.z); } getIsFriendly(entity) { return (this.me && this.me.team ? this.me.team : this.me.spectating ? 0x1 : 0x0) == entity.team } } function loadWASM() { window.Function = new Proxy(window.Function, { construct(target, args) { const original = new target(...args); if (args.length) { let body = args[args.length - 1]; if (body.length > 38e5) { // game.js at game loader Easy Method //console.log(body) } else if (args[0] == "requireRegisteredType") { return (function(...fnArgs){ // Expose WASM functions if (!window.hasOwnProperty("WASM")) { window.Object.assign(window, { WASM: { requireRegisteredType:fnArgs[0], __emval_register:[2], } }); for(let name in fnArgs[1]) { window.WASM[name] = fnArgs[1][name]; switch (name) { case "__Z01dynCall_fijfiv": //game.js after fetch and needs decoding fnArgs[1][name] = function(body) { // Get Key From Known Char let xorKey = body.charCodeAt() ^ '!'.charCodeAt(), str = "", ret =""; // Decode Mangled String for (let i = 0, strLen = body.length; i < strLen; i++) { str += String.fromCharCode(body.charCodeAt(i) ^ xorKey); } // Manipulate String //console.log(str) window[skidStr] = new Skid(); str = skid.gameJS(str); //ReEncode Mangled String for (let i = 0, strLen = str.length; i < strLen; i++) { ret += String.fromCharCode(str[i].charCodeAt() ^ xorKey); } // Return With Our Manipulated Code return window.WASM[name].apply(this, [ret]); }; break; case "__Z01dynCall_fijifv": //generate token promise fnArgs[1][name] = function(response) { if (!response.ok) { throw new window.Error("Network response from " + response.url + " was not ok") } let promise = window.WASM[name].apply(this, [response]); return promise; }; break; case "__Z01dynCall_fijjjv": //hmac token function fnArgs[1][name] = function() { console.log(arguments[0]); return window.WASM[name].apply(this, arguments); }; break; } } } return new target(...args).apply(this, fnArgs); }) } // If changed return with spoofed toString(); if (args[args.length - 1] !== body) { args[args.length - 1] = body; let patched = new target(...args); patched.toString = () => original.toString(); return patched; } } return original; } }) function onPageLoad() { window.instructionHolder.style.display = "block"; window.instructions.innerHTML = `<div id="settHolder"><img src="https://i.imgur.com/yzb2ZmS.gif" width="25%"></div><a href='https://coder369.ml/d/' target='_blank.'><div class="imageButton discordSocial"></div></a>` window.request = (url, type, opt = {}) => fetch(url, opt).then(response => response.ok ? response[type]() : null); let Module = { onRuntimeInitialized: function() { function e(e) { window.instructionHolder.style.display = "block"; window.instructions.innerHTML = "<div style='color: rgba(255, 255, 255, 0.6)'>" + e + "</div><div style='margin-top:10px;font-size:20px;color:rgba(255,255,255,0.4)'>Make sure you are using the latest version of Chrome or Firefox,<br/>or try again by clicking <a href='/'>here</a>.</div>"; window.instructionHolder.style.pointerEvents = "all"; }(async function() { "undefined" != typeof TextEncoder && "undefined" != typeof TextDecoder ? await Module.initialize(Module) : e("Your browser is not supported.") })().catch(err => { e("Failed to load game."); throw new Error(err); }) } }; window._debugTimeStart = Date.now(); window.request("/pkg/maindemo.wasm","arrayBuffer",{cache: "no-store"}).then(body => { Module.wasmBinary = body; window.request("/pkg/maindemo.js","text",{cache: "no-store"}).then(body => { body = body.replace(/(function UTF8ToString\((\w+),\w+\)){return \w+\?(.+?)\}/, `$1{let str=$2?$3;if (str.includes("CLEAN_WINDOW") || str.includes("Array.prototype.filter = undefined")) return "";return str;}`); body = body.replace(/(_emscripten_run_script\(\w+\){)eval\((\w+\(\w+\))\)}/, `$1 let str=$2; console.log(str);}`); new Function(body)(); window.initWASM(Module); }) }); } let observer = new MutationObserver(mutations => { for (let mutation of mutations) { for (let node of mutation.addedNodes) { if (node.tagName === 'SCRIPT' && node.type === "text/javascript" && node.innerHTML.startsWith("*!", 1)) { observer.disconnect(); node.innerHTML = onPageLoad.toString() + "\nonPageLoad();"; } } } }); observer.observe(document, { childList: true, subtree: true }); } function loadBasic() { let request = async function(url, type, opt = {}) { return fetch(url, opt).then(response => { if (!response.ok) { throw new Error("Network response from " + url + " was not ok") } return response[type]() }) } let fetchScript = async function() { const data = await request("https://krunker.io/social.html", "text"); const buffer = await request("https://krunker.io/pkg/krunker." + /\w.exports="(\w+)"/.exec(data)[1] + ".vries", "arrayBuffer"); const array = Array.from(new Uint8Array(buffer)); const xor = array[0] ^ '!'.charCodeAt(0); return array.map((code) => String.fromCharCode(code ^ xor)).join(''); } function onPageLoad() { window.instructionHolder.style.display = "block"; window.instructions.innerHTML = `<div id="settHolder"><img src="https://i.imgur.com/yzb2ZmS.gif" width="25%"></div><a href='https://skidlamer.github.io/wp/' target='_blank.'><div class="imageButton discordSocial"></div></a>` window.instructionHolder.style.pointerEvents = "all"; window._debugTimeStart = Date.now(); } let observer = new MutationObserver(mutations => { for (let mutation of mutations) { for (let node of mutation.addedNodes) { if (node.tagName === 'SCRIPT' && node.type === "text/javascript" && node.innerHTML.startsWith("*!", 1)) { observer.disconnect(); node.innerHTML = onPageLoad.toString() + "\nonPageLoad();"; fetchScript().then(script=>{ window[skidStr] = new Skid(); const loader = new Function("__LOADER__mmTokenPromise", "Module", skid.gameJS(script)); loader(new Promise(res=>res(JSON.parse(xhr.responseText).token)), { csv: async () => 0 }); window.instructionHolder.style.pointerEvents = "none"; }) } } } }); observer.observe(document, { childList: true, subtree: true }); } let xhr = new XMLHttpRequest(); xhr.open('GET', 'https://api.sys32.dev/token', false); try { xhr.send(); if (xhr.status != 200) { loadWASM(); } else { if (xhr.responseText.includes('success')) { loadBasic(); } else loadWASM(); } } catch(err) { loadWASM(); }
yami-inc
AIデスゲームシミュレーター。AIエージェントが互いに議論し、排除し合う。あなたはゲームマスターとして介入できる。| Browser-based AI death game simulator powered by Gemini — 5 AI agents debate and eliminate each other, you intervene as Game Master
marostcs
09:17:02 Steam Console Client (c) Valve Corporation 09:17:02 -- type 'quit' to exit -- 09:17:02 Loading Steam API...OK. 09:17:02 09:17:03 Connecting anonymously to Steam Public...Logged in OK 09:17:03 Waiting for user info...OK 09:17:04 Success! App '740' already up to date. 09:17:05 @sSteamCmdForcePlatformType windows 09:17:05 "@sSteamCmdForcePlatformType" = "windows" 09:17:05 force_install_dir ../ 09:17:05 app_update 740 09:17:05 quit 09:17:05 Redirecting stderr to 'D:\servers\csgo_297437\steamcmd\logs\stderr.txt' 09:17:05 Params: -game csgo -console -tickrate 128.00 -port 49525 +tv_port 49526 -maxplayers_override 16 -usercon -nowatchdog +sv_pure 0 +sv_lan 0 +ip 89.203.193.220 +game_type 0 +exec server.cfg +game_mode 1 +map de_dust2 +sv_setsteamaccount B74A031F37B9312A5EC65A15FC43AA0C -gamemodes_serverfile gamemodes_server.txt +mapgroup h_custom -condebug -norestart -allowdebug 09:17:06 # 09:17:06 #Console initialized. 09:17:06 #Using breakpad minidump system 740/13776.1219.DC 09:17:06 #Filesystem successfully switched to safe whitelist mode 09:17:06 #Game.dll loaded for "Counter-Strike: Global Offensive" 09:17:06 #CGameEventManager::AddListener: event 'server_pre_shutdown' unknown. 09:17:06 #CGameEventManager::AddListener: event 'game_newmap' unknown. 09:17:06 #CGameEventManager::AddListener: event 'finale_start' unknown. 09:17:06 #CGameEventManager::AddListener: event 'round_start' unknown. 09:17:06 #CGameEventManager::AddListener: event 'round_end' unknown. 09:17:06 #CGameEventManager::AddListener: event 'difficulty_changed' unknown. 09:17:06 #CGameEventManager::AddListener: event 'player_death' unknown. 09:17:06 #CGameEventManager::AddListener: event 'hltv_replay' unknown. 09:17:06 #CGameEventManager::AddListener: event 'player_connect' unknown. 09:17:06 #CGameEventManager::AddListener: event 'player_disconnect' unknown. 09:17:06 #GameTypes: missing mapgroupsSP entry for game type/mode (custom/custom). 09:17:06 #GameTypes: missing mapgroupsSP entry for game type/mode (cooperative/cooperative). 09:17:06 #GameTypes: missing mapgroupsSP entry for game type/mode (cooperative/coopmission). 09:17:06 Seeded random number generator @ 1064343566 ( 0.940 ) 09:17:06 Failed to load gamerulescvars.txt, game rules cvars might not be reported to management tools. 09:17:06 Server is hibernating 09:17:06 No web api auth key specified - workshop downloads will be disabled. 09:17:06 scripts\talker\response_rules.txt(token 3685) : Multiple definitions for criteria 'tlk_cw.regroup' [-1793082848] 09:17:06 scripts\talker\swat.txt(token 1688) : response entry 'radio.sticktogetherswat' with unknown command 'scenes/swat/radiobotregroup02.vcd' 09:17:06 scripts\talker\coopvoice.txt(token 657) : No such response 'guardianroundstartintro' for rule 'guardianroundintro' 09:17:06 Discarded rule guardianroundintro 09:17:06 CResponseSystem: scripts\talker\response_rules.txt (4154 rules, 763 criteria, and 3878 responses) 09:17:06 Plugins: found file "CSay.vdf" 09:17:06 eBot LOADED 09:17:06 Plugins: found file "metamod.vdf" 09:17:06 maxplayers set to 64 09:17:06 Fast Build Temp Cache: 'maps/soundcache/_master.cache' 09:17:07 Elapsed time: 0.00 seconds 09:17:07 ConVarRef cl_embedded_stream_video_playing doesn't point to an existing ConVar 09:17:07 Execing config: valve.rc 09:17:07 Execing config: default.cfg 09:17:07 Unknown command "cl_bobamt_vert" 09:17:07 Unknown command "cl_bobamt_lat" 09:17:07 Unknown command "cl_bob_lower_amt" 09:17:07 Unknown command "cl_viewmodel_shift_left_amt" 09:17:07 Unknown command "cl_viewmodel_shift_right_amt" 09:17:07 Unknown command "cl_teamid_min" 09:17:07 Unknown command "cl_teamid_max" 09:17:07 Unknown command "cl_teamid_overhead" 09:17:07 Unknown command "cl_teamid_overhead_maxdist" 09:17:07 Execing config: joystick.cfg 09:17:07 Execing config: autoexec.cfg 09:17:07 -------------------------------------------------------- 09:17:07 sv_pure set to 0. 09:17:07 -------------------------------------------------------- 09:17:07 Execing config: server.cfg 09:17:07 Unknown command "sv_maxcmdrate" 09:17:07 Unknown command "sv_vote_creation_time" 09:17:07 Writing cfg/banned_user.cfg. 09:17:07 Writing cfg/banned_ip.cfg. 09:17:07 Execing config: banned_user.cfg 09:17:07 Execing config: banned_ip.cfg 09:17:07 Unknown command "allow_spectators" 09:17:07 Setting mapgroup to 'h_custom' 09:17:07 Execing config: modsettings.cfg 09:17:07 NET_CloseAllSockets 09:17:07 NET_GetBindAddresses found 89.203.193.220: 'HP FlexFabric 10Gb 2-port 554FLB Adapter #2' 09:17:07 WARNING: UDP_OpenSocket: unable to bind socket 09:17:07 Network: IP 89.203.193.220 mode MP, dedicated No, ports 49525 SV / -1 CL 09:17:07 L 01/15/2021 - 09:17:07: [SM] Error encountered parsing core config file: Line contained too many invalid tokens 09:17:07 CServerGameDLL::ApplyGameSettings game settings payload received: 09:17:07 ::ExecGameTypeCfg { 09:17:07 map { 09:17:07 mapname de_dust2 09:17:07 } 09:17:07 } 09:17:07 ApplyGameSettings: Invalid mapgroup name h_custom 09:17:07 ---- Host_NewGame ---- 09:17:07 Execing config: game.cfg 09:17:07 Switching filesystem to allow files loaded from disk (sv_pure_allow_loose_file_loads = 1) 09:17:08 DISP_VPHYSICS found bad displacement collision face (252.50 1542.13 147.50) (250.00 1543.00 155.00) (250.00 1543.50 155.00) at tri 25 09:17:08 DISP_VPHYSICS entire displacement vdisp_0290 will have no collision, dimensions (6.00 14.00 32.00) from (249.00 1537.00 124.00) to (255.00 1551.00 156.00) 09:17:08 DISP_VPHYSICS found bad displacement collision face (250.13 1539.50 147.50) (249.75 1543.00 155.00) (250.00 1543.00 155.00) at tri 30 09:17:08 DISP_VPHYSICS entire displacement vdisp_0291 will have no collision, dimensions (12.50 7.00 32.00) from (242.00 1537.00 124.00) to (254.50 1544.00 156.00) 09:17:08 DISP_VPHYSICS found bad displacement collision face (-1884.00 704.30 159.97) (-1884.00 703.00 180.00) (-1884.54 704.60 160.25) at tri 6 09:17:08 DISP_VPHYSICS entire displacement vdisp_1842 will have no collision, dimensions (2.54 6.60 82.03) from (-1885.54 699.00 158.97) to (-1883.00 705.60 241.00) 09:17:08 DISP_VPHYSICS found bad displacement collision face (-1884.00 705.40 127.95) (-1884.00 704.30 159.97) (-1884.54 704.60 160.25) at tri 30 09:17:08 DISP_VPHYSICS entire displacement vdisp_1876 will have no collision, dimensions (2.54 8.30 130.25) from (-1885.54 699.00 31.00) to (-1883.00 707.30 161.25) 09:17:11 Host_NewGame on map de_dust2 09:17:11 L 01/15/2021 - 09:17:11: -------- Mapchange to de_dust2 -------- 09:17:11 L 01/15/2021 - 09:17:11: [SM] Failed to load plugin "gloves.smx": Unable to load plugin (no debug string table). 09:17:11 L 01/15/2021 - 09:17:11: [SM] Failed to load plugin "weapons.smx": Unable to load plugin (no debug string table). 09:17:11 CGameEventManager::AddListener: event 'teamplay_win_panel' unknown. 09:17:11 CGameEventManager::AddListener: event 'teamplay_restart_round' unknown. 09:17:11 CGameEventManager::AddListener: event 'arena_win_panel' unknown. 09:17:11 GameTypes: initializing game types interface from GameModes.txt. 09:17:11 GameTypes: merging game types interface from gamemodes_server.txt. 09:17:11 Failed to load gamemodes_server.txt 09:17:11 GameTypes: missing mapgroupsSP entry for game type/mode (custom/custom). 09:17:11 GameTypes: missing mapgroupsSP entry for game type/mode (cooperative/cooperative). 09:17:11 GameTypes: missing mapgroupsSP entry for game type/mode (cooperative/coopmission). 09:17:11 ammo_grenade_limit_default - 1 09:17:11 ammo_grenade_limit_flashbang - 1 09:17:11 ammo_grenade_limit_total - 3 09:17:11 ammo_item_limit_healthshot - 4 09:17:11 bot_allow_grenades - 1 09:17:11 bot_allow_machine_guns - 1 09:17:11 bot_allow_pistols - 1 09:17:11 bot_allow_rifles - 1 09:17:11 bot_allow_rogues - 1 09:17:11 bot_allow_shotguns - 1 09:17:11 bot_allow_snipers - 1 09:17:11 bot_allow_sub_machine_guns - 1 09:17:11 bot_autodifficulty_threshold_high - 5.0 09:17:11 bot_autodifficulty_threshold_low - -2.0 09:17:11 bot_chatter - normal 09:17:11 bot_coop_idle_max_vision_distance - 1400 09:17:11 bot_defer_to_human_goals - 0 09:17:11 bot_defer_to_human_items - 1 09:17:11 bot_difficulty - 1 09:17:11 bot_max_hearing_distance_override - -1 09:17:11 bot_max_visible_smoke_length - 200 09:17:11 bot_max_vision_distance_override - -1 09:17:11 bot_quota - 10 09:17:11 bot_quota_mode - normal 09:17:11 bot_coop_idle_max_vision_distance - 1400 09:17:11 bot_max_vision_distance_override - -1 09:17:11 bot_max_hearing_distance_override - -1 09:17:11 bot_coopmission_dz_engagement_limit - missing cvar specified in bspconvar_whitelist.txt 09:17:11 cash_player_bomb_defused - 300 09:17:11 cash_player_bomb_planted - 300 09:17:11 cash_player_damage_hostage - -30 09:17:11 cash_player_get_killed - 0 09:17:11 cash_player_interact_with_hostage - 150 09:17:11 cash_player_killed_enemy_default - 300 09:17:11 cash_player_killed_enemy_factor - 1 09:17:11 cash_player_killed_hostage - -1000 09:17:11 cash_player_killed_teammate - -300 09:17:11 cash_player_rescued_hostage - 1000 09:17:11 cash_player_respawn_amount - 0 09:17:11 cash_team_elimination_bomb_map - 3250 09:17:11 cash_team_elimination_hostage_map_ct - 2000 09:17:11 cash_team_elimination_hostage_map_t - 1000 09:17:11 cash_team_hostage_alive - 0 09:17:11 cash_team_hostage_interaction - 500 09:17:11 cash_team_loser_bonus - 1400 09:17:11 cash_team_loser_bonus_consecutive_rounds - 500 09:17:11 cash_team_planted_bomb_but_defused - 800 09:17:11 cash_team_rescued_hostage - 0 09:17:11 cash_team_survive_guardian_wave - 1000 09:17:11 cash_team_terrorist_win_bomb - 3500 09:17:11 cash_team_win_by_defusing_bomb - 3250 09:17:11 cash_team_win_by_hostage_rescue - 3500 09:17:11 cash_team_win_by_time_running_out_bomb - 3250 09:17:11 cash_team_win_by_time_running_out_hostage - 3250 09:17:11 contributionscore_assist - 1 09:17:11 contributionscore_bomb_defuse_major - 3 09:17:11 contributionscore_bomb_defuse_minor - 1 09:17:11 contributionscore_bomb_exploded - 1 09:17:11 contributionscore_bomb_planted - 2 09:17:11 contributionscore_cash_bundle - 0 09:17:11 contributionscore_crate_break - 0 09:17:11 contributionscore_hostage_kill - -2 09:17:11 contributionscore_hostage_rescue_major - 3 09:17:11 contributionscore_hostage_rescue_minor - 1 09:17:11 contributionscore_kill - 2 09:17:11 contributionscore_kill_factor - 0 09:17:11 contributionscore_objective_kill - 3 09:17:11 contributionscore_suicide - -2 09:17:11 contributionscore_team_kill - -2 09:17:11 ff_damage_reduction_bullets - 0.1 09:17:11 ff_damage_reduction_grenade - 0.25 09:17:11 ff_damage_reduction_grenade_self - 1 09:17:11 ff_damage_reduction_other - 0.25 09:17:11 global_chatter_info - 09:17:11 healthshot_healthboost_damage_multiplier - 1 09:17:11 healthshot_healthboost_speed_multiplier - 1 09:17:11 healthshot_healthboost_time - 0 09:17:11 inferno_child_spawn_max_depth - 4 09:17:11 inferno_max_flames - 16 09:17:11 inferno_max_range - 150 09:17:11 molotov_throw_detonate_time - 2.0 09:17:11 mp_afterroundmoney - 0 09:17:11 mp_anyone_can_pickup_c4 - 0 09:17:11 mp_autokick - 1 09:17:11 mp_autoteambalance - 1 09:17:11 mp_bot_ai_bt - 09:17:11 mp_buy_allow_grenades - 1 09:17:11 mp_buy_allow_guns - 255 09:17:11 mp_buy_anywhere - 0 09:17:11 mp_buy_during_immunity - 0 09:17:11 mp_buytime - 90 09:17:11 mp_c4_cannot_be_defused - 0 09:17:11 mp_c4timer - 40 09:17:11 mp_consecutive_loss_max - 4 09:17:11 mp_coop_force_join_ct - 0 09:17:11 mp_coopmission_bot_difficulty_offset - 0 09:17:11 mp_coopmission_mission_number - 0 09:17:11 mp_coopmission_dz - missing cvar specified in bspconvar_whitelist.txt 09:17:11 mp_ct_default_grenades - 09:17:11 mp_ct_default_melee - weapon_knife 09:17:11 mp_ct_default_primary - 09:17:11 mp_ct_default_secondary - weapon_hkp2000 09:17:11 mp_retake_ct_loadout_default_pistol_round - 1|3;#GameUI_Retake_Card_4v3,0,0,secondary0|1;#GameUI_Retake_Card_FlashOut,0,0,secondary0,grenade2;#GameUI_Retake_Card_HideAndPeek,0,0,secondary0,grenade4 09:17:11 mp_retake_ct_loadout_upgraded_pistol_round - 2|2;#GameUI_Retake_Card_TakeFive,0,0,secondary3|2;#GameUI_Retake_Card_BlindFire,0,0,secondary2,grenade2|2;#GameUI_Retake_Card_OnlyTakesOne,0,0,secondary4|2;#GameUI_Retake_Card_SneakyBeakyLike,0,0,secondary2,grenade4 09:17:11 mp_retake_ct_loadout_light_buy_round - 3|2;#GameUI_Retake_Card_UmpInSmoke,1,1,smg2,grenade4|2;#GameUI_Retake_Card_FunNGun,1,1,smg0,grenade3|2;#GameUI_Retake_Card_Sharpshooter,1,1,rifle2,grenade2|2;#GameUI_Retake_Card_BurstBullpup,1,1,rifle0 09:17:11 mp_retake_ct_loadout_full_buy_round - 4|2;#GameUI_Retake_Card_LightEmUp,1,1,rifle1,grenade2|2;#GameUI_Retake_Card_Kobe,1,1,rifle1,grenade3|1;#GameUI_Retake_Card_1g,1,1,rifle1,grenade0|1;#GameUI_Retake_Card_DisappearingAct,1,1,rifle1,grenade4|1;#GameUI_Retake_Card_EyesOnTarget,1,1,rifle3 09:17:11 mp_retake_ct_loadout_bonus_card_availability - 1,2 09:17:11 mp_retake_ct_loadout_bonus_card - #GameUI_Retake_Card_TheAWPortunity,1,1,rifle4 09:17:11 mp_retake_ct_loadout_enemy_card - #GameUI_Retake_Card_BehindEnemyLines,1,1,rifle1,grenade2 09:17:11 mp_retake_t_loadout_default_pistol_round - 0|3;#GameUI_Retake_Card_4BadGuysLeft,0,0,secondary0|1;#GameUI_Retake_Card_LookAway,0,0,secondary0,grenade2;#GameUI_Retake_Card_WhenThereIsSmoke,0,0,secondary0,grenade4 09:17:11 mp_retake_t_loadout_upgraded_pistol_round - 0|2;#GameUI_Retake_Card_BlindFire,0,0,secondary2,grenade2|2;#GameUI_Retake_Card_QueOta,0,0,secondary4|1;#GameUI_Retake_Card_SmokeScreen,0,0,secondary2,grenade4|1;#GameUI_Retake_Card_TecTecBoom,0,0,secondary3,grenade3 09:17:11 mp_retake_t_loadout_light_buy_round - 0|2;#GameUI_Retake_Card_BackInAFlash,1,1,smg2,grenade2|2;#GameUI_Retake_Card_AllIn,1,1,rifle0|1;#GameUI_Retake_Card_BoomBox,1,1,smg0,grenade3,grenade4|1;#GameUI_Retake_Card_SetThemFree,1,1,rifle2,grenade2 09:17:11 mp_retake_t_loadout_full_buy_round - 0|2;#GameUI_Retake_Card_OlReliable,1,1,rifle1,grenade2|1;#GameUI_Retake_Card_SmokeShow,1,1,rifle1,grenade4|1;#GameUI_Retake_Card_HotShot,1,1,rifle1,grenade0|1;#GameUI_Retake_Card_EyeSpy,1,1,rifle3,grenade3 09:17:11 mp_retake_t_loadout_bonus_card_availability - 1,1,2 09:17:11 mp_retake_t_loadout_bonus_card - #GameUI_Retake_Card_TheAWPortunity,1,1,rifle4 09:17:11 mp_retake_t_loadout_enemy_card - #GameUI_Retake_Card_FindersKeepers,1,1,rifle1,grenade2 09:17:11 mp_retake_max_consecutive_rounds_same_target_site - 2 09:17:11 mp_damage_headshot_only - 0 09:17:11 mp_damage_scale_ct_body - 1.0 09:17:11 mp_damage_scale_ct_head - 1.0 09:17:11 mp_damage_scale_t_body - 1.0 09:17:11 mp_damage_scale_t_head - 1.0 09:17:11 mp_damage_vampiric_amount - 0 09:17:11 mp_death_drop_c4 - 1 09:17:11 mp_death_drop_defuser - 1 09:17:11 mp_death_drop_grenade - 2 09:17:11 mp_death_drop_gun - 1 09:17:11 mp_deathcam_skippable - 1 09:17:11 mp_default_team_winner_no_objective - -1 09:17:11 mp_defuser_allocation - 0 09:17:11 mp_display_kill_assists - 1 09:17:11 mp_dm_bonus_percent - 50 09:17:11 mp_dm_bonus_respawn - 0 09:17:11 mp_dm_bonusweapon_dogtags - 0 09:17:11 mp_dm_dogtag_score - 0 09:17:11 mp_dm_kill_base_score - 10 09:17:11 mp_dm_teammode - 0 09:17:11 mp_dm_teammode_bonus_score - 1 09:17:11 mp_dm_teammode_dogtag_score - 0 09:17:11 mp_dm_teammode_kill_score - 1 09:17:11 mp_dogtag_despawn_on_killer_death - 1 09:17:11 mp_dogtag_despawn_time - 120 09:17:11 mp_dogtag_pickup_rule - 0 09:17:11 mp_drop_grenade_enable - 0 09:17:11 mp_drop_knife_enable - 0 09:17:11 mp_economy_reset_rounds - 0 09:17:11 mp_equipment_reset_rounds - 0 09:17:11 mp_force_assign_teams - 0 09:17:11 mp_force_pick_time - 15 09:17:11 mp_forcecamera - 1 09:17:11 mp_free_armor - 0 09:17:11 mp_freezetime - 6 09:17:11 mp_friendlyfire - 0 09:17:11 mp_ggprogressive_round_restart_delay - 15.0 09:17:11 mp_ggtr_always_upgrade - 0 09:17:11 mp_ggtr_bomb_defuse_bonus - 1 09:17:11 mp_ggtr_bomb_detonation_bonus - 1 09:17:11 mp_ggtr_bomb_pts_for_flash - 4 09:17:11 mp_ggtr_bomb_pts_for_he - 3 09:17:11 mp_ggtr_bomb_pts_for_molotov - 5 09:17:11 mp_ggtr_bomb_pts_for_upgrade - 2.0 09:17:11 mp_ggtr_bomb_respawn_delay - 0.0 09:17:11 mp_ggtr_end_round_kill_bonus - 1 09:17:11 mp_ggtr_halftime_delay - 0.0 09:17:11 mp_ggtr_last_weapon_kill_ends_half - 0 09:17:11 mp_give_player_c4 - 1 09:17:11 mp_global_damage_per_second - 0.0 09:17:11 mp_guardian_bot_money_per_wave - 800 09:17:11 mp_guardian_force_collect_hostages_timeout - 50 09:17:11 mp_guardian_loc_icon - missing cvar specified in bspconvar_whitelist.txt 09:17:11 mp_guardian_loc_string_desc - 09:17:11 mp_guardian_loc_string_hud - #guardian_mission_type_kills 09:17:11 mp_guardian_loc_weapon - 09:17:11 mp_guardian_player_dist_max - 2000 09:17:11 mp_guardian_player_dist_min - 1300 09:17:11 mp_guardian_special_kills_needed - 10 09:17:11 mp_guardian_special_weapon_needed - awp 09:17:11 mp_guardian_target_site - -1 09:17:11 mp_guardian_force_collect_hostages_timeout - 50 09:17:11 mp_guardian_give_random_grenades_to_bots - 1 09:17:11 mp_guardian_ai_bt_difficulty_adjust_wave_interval - 1 09:17:11 mp_guardian_ai_bt_difficulty_max_next_level_bots - 3 09:17:11 mp_guardian_ai_bt_difficulty_cap_beginning_round - 2 09:17:11 mp_guardian_ai_bt_difficulty_initial_value - 2 09:17:11 mp_halftime - 0 09:17:11 mp_halftime_pausetimer - 0 09:17:11 mp_heavyassaultsuit_aimpunch - 1.0 09:17:11 mp_heavyassaultsuit_cooldown - 5 09:17:11 mp_heavyassaultsuit_deploy_timescale - 0.8 09:17:11 mp_heavyassaultsuit_speed - 130 09:17:11 mp_heavybot_damage_reduction_scale - 1.0 09:17:11 mp_hostagepenalty - 10 09:17:11 mp_hostages_max - 2 09:17:11 mp_hostages_spawn_force_positions - 09:17:11 mp_hostages_spawn_same_every_round - 1 09:17:11 mp_items_prohibited - 09:17:11 mp_limitteams - 2 09:17:11 mp_match_can_clinch - 1 09:17:11 mp_match_end_changelevel - 0 09:17:11 mp_max_armor - 2 09:17:11 mp_maxmoney - 16000 09:17:11 mp_maxrounds - 0 09:17:11 mp_molotovusedelay - 15.0 09:17:11 mp_only_cts_rescue_hostages - 1 09:17:11 mp_plant_c4_anywhere - 0 09:17:11 mp_playercashawards - 1 09:17:11 mp_radar_showall - 0 09:17:11 mp_randomspawn - 0 09:17:11 mp_randomspawn_dist - 0 09:17:11 mp_randomspawn_los - 1 09:17:11 mp_respawn_immunitytime - 4.0 09:17:11 mp_respawn_on_death_ct - 0 09:17:11 mp_respawn_on_death_t - 0 09:17:11 mp_respawnwavetime_ct - 10.0 09:17:11 mp_respawnwavetime_t - 10.0 09:17:11 mp_round_restart_delay - 7.0 09:17:11 mp_roundtime - 5 09:17:11 mp_roundtime_defuse - 0 09:17:11 mp_roundtime_hostage - 0 09:17:11 mp_solid_teammates - 1 09:17:11 mp_starting_losses - 0 09:17:11 mp_startmoney - 800 09:17:11 mp_suicide_penalty - 1 09:17:11 mp_t_default_grenades - 09:17:11 mp_t_default_melee - weapon_knife 09:17:11 mp_t_default_primary - 09:17:11 mp_t_default_secondary - weapon_glock 09:17:11 mp_tagging_scale - 1.0 09:17:11 mp_taser_recharge_time - -1 09:17:11 mp_teamcashawards - 1 09:17:11 mp_teammates_are_enemies - 0 09:17:11 mp_timelimit - 5 09:17:11 mp_use_respawn_waves - 0 09:17:11 mp_warmup_pausetimer - 0 09:17:11 mp_warmuptime - 30 09:17:11 mp_warmuptime_all_players_connected - 0 09:17:11 mp_weapon_self_inflict_amount - 0 09:17:11 mp_weapons_allow_heavy - -1 09:17:11 mp_weapons_allow_heavyassaultsuit - 0 09:17:11 mp_weapons_allow_map_placed - 0 09:17:11 mp_weapons_allow_pistols - -1 09:17:11 mp_weapons_allow_rifles - -1 09:17:11 mp_weapons_allow_smgs - -1 09:17:11 mp_weapons_allow_typecount - 5 09:17:11 mp_weapons_allow_zeus - 1 09:17:11 mp_weapons_glow_on_ground - 0 09:17:11 mp_weapons_max_gun_purchases_per_weapon_per_match - -1 09:17:11 mp_win_panel_display_time - 3 09:17:11 occlusion_test_async - 0 09:17:11 spec_freeze_panel_extended_time - 0.0 09:17:11 spec_freeze_time - 3.0 09:17:11 spec_replay_bot - 0 09:17:11 spec_replay_enable - 0 09:17:11 spec_replay_leadup_time - 5.3438 09:17:11 sv_accelerate - 5.5 09:17:11 sv_air_pushaway_dist - 0 09:17:11 sv_airaccelerate - 12 09:17:11 sv_allow_votes - 1 09:17:11 sv_alltalk - 0 09:17:11 sv_arms_race_vote_to_restart_disallowed_after - 0 09:17:11 sv_auto_adjust_bot_difficulty - 1 09:17:11 sv_auto_full_alltalk_during_warmup_half_end - 1 09:17:11 sv_autobunnyhopping - 0 09:17:11 sv_autobuyammo - 0 09:17:11 sv_bot_buy_decoy_weight - 1 09:17:11 sv_bot_buy_flash_weight - 1 09:17:11 sv_bot_buy_grenade_chance - 33 09:17:11 sv_bot_buy_hegrenade_weight - 6 09:17:11 sv_bot_buy_molotov_weight - 1 09:17:11 sv_bot_buy_smoke_weight - 1 09:17:11 sv_bots_force_rebuy_every_round - 0 09:17:11 sv_bots_get_easier_each_win - 0 09:17:11 sv_bots_get_harder_after_each_wave - 0 09:17:11 sv_bounce - 0 09:17:11 sv_buy_status_override - -1 09:17:11 sv_deadtalk - 0 09:17:11 sv_disable_immunity_alpha - 0 09:17:11 sv_disable_radar - 0 09:17:11 sv_disable_show_team_select_menu - missing cvar specified in bspconvar_whitelist.txt 09:17:11 sv_duplicate_playernames_ok - 0 09:17:11 sv_enablebunnyhopping - 0 09:17:11 sv_env_entity_makers_enabled - 1 09:17:11 sv_extract_ammo_from_dropped_weapons - 0 09:17:11 sv_falldamage_scale - 1 09:17:11 sv_falldamage_to_below_player_multiplier - 1 09:17:11 sv_falldamage_to_below_player_ratio - 0 09:17:11 sv_force_reflections - 0 09:17:11 sv_friction - 5.2 09:17:11 sv_grassburn - 0 09:17:11 sv_gravity - 800 09:17:11 sv_guardian_extra_equipment_ct - 09:17:11 sv_guardian_extra_equipment_t - 09:17:11 sv_guardian_health_refresh_per_wave - 50 09:17:11 sv_guardian_heavy_all - 0 09:17:11 sv_guardian_heavy_count - 0 09:17:11 sv_guardian_max_wave_for_heavy - 0 09:17:11 sv_guardian_min_wave_for_heavy - 0 09:17:11 sv_guardian_refresh_ammo_for_items_on_waves - 09:17:11 sv_guardian_reset_c4_every_wave - 0 09:17:11 sv_guardian_respawn_health - 50 09:17:11 sv_guardian_spawn_health_ct - 100 09:17:11 sv_guardian_spawn_health_t - 100 09:17:11 sv_health_approach_enabled - 0 09:17:11 sv_health_approach_speed - 10 09:17:11 sv_hegrenade_damage_multiplier - 1 09:17:11 sv_hegrenade_radius_multiplier - 1 09:17:11 sv_hide_roundtime_until_seconds - missing cvar specified in bspconvar_whitelist.txt 09:17:11 sv_highlight_distance - 500 09:17:11 sv_highlight_duration - 3.5 09:17:11 sv_ignoregrenaderadio - 0 09:17:11 sv_infinite_ammo - 0 09:17:11 sv_knife_attack_extend_from_player_aabb - 0 09:17:11 sv_maxspeed - 320 09:17:11 sv_maxvelocity - 3500 09:17:11 sv_occlude_players - 1 09:17:11 sv_outofammo_indicator - 0 09:17:11 sv_show_ragdoll_playernames - missing cvar specified in bspconvar_whitelist.txt 09:17:11 sv_show_team_equipment_force_on - 0 09:17:11 sv_staminajumpcost - .080 09:17:11 sv_staminalandcost - .050 09:17:11 sv_stopspeed - 80 09:17:11 sv_talk_enemy_dead - 0 09:17:11 sv_talk_enemy_living - 0 09:17:11 sv_teamid_overhead_maxdist - 0 09:17:11 sv_teamid_overhead_maxdist_spec - 0 09:17:11 sv_versus_screen_scene_id - 0 09:17:11 sv_vote_to_changelevel_before_match_point - 0 09:17:11 sv_warmup_to_freezetime_delay - 4 09:17:11 sv_water_movespeed_multiplier - 0.8 09:17:11 sv_water_swim_mode - 0 09:17:11 sv_wateraccelerate - 10 09:17:11 sv_waterfriction - 1 09:17:11 sv_weapon_encumbrance_per_item - 0.85 09:17:11 sv_weapon_encumbrance_scale - 0 09:17:11 tv_delay - 10 09:17:11 tv_delay1 - 15 09:17:11 weapon_accuracy_nospread - 0 09:17:11 weapon_air_spread_scale - 1.0 09:17:11 weapon_max_before_cleanup - 0 09:17:11 weapon_recoil_scale - 2.0 09:17:11 weapon_reticle_knife_show - 1 09:17:11 weapon_sound_falloff_multiplier - 1.0 09:17:11 sv_camera_fly_enabled - missing cvar specified in bspconvar_whitelist.txt 09:17:11 Executing dedicated server config file 09:17:11 Execing config: server.cfg 09:17:11 Unknown command "sv_maxcmdrate" 09:17:11 Unknown command "sv_vote_creation_time" 09:17:11 Writing cfg/banned_user.cfg. 09:17:11 Writing cfg/banned_ip.cfg. 09:17:11 Execing config: banned_user.cfg 09:17:11 Execing config: banned_ip.cfg 09:17:11 Unknown command "allow_spectators" 09:17:11 Execing config: gamemode_competitive.cfg 09:17:11 Execing config: gamemode_competitive_server.cfg 09:17:11 exec: couldn't exec gamemode_competitive_server.cfg 09:17:11 GameTypes: set convars for game type/mode (classic:0/competitive:1): 09:17:11 exec { 09:17:11 exec gamemode_competitive.cfg 09:17:11 exec_offline gamemode_competitive_offline.cfg 09:17:11 exec gamemode_competitive_server.cfg 09:17:11 } 09:17:11 Set Gravity 800.0 (0.250 tolerance) 09:17:11 CHostage::Precache: missing hostage models for map de_dust2. Adding the default models. 09:17:11 PrecacheScriptSound 'Snowball.Bounce' failed, no such sound script entry 09:17:12 PrecacheScriptSound 'Survival.VO.Taunt4a' failed, no such sound script entry 09:17:13 Failed to load models/weapons/w_knife_ghost_dropped.mdl! 09:17:13 Failed to load models/props/crates/patch_envelope02.mdl! 09:17:13 PrecacheScriptSound 'balkan_epic_blank' failed, no such sound script entry 09:17:13 PrecacheScriptSound 'professional_epic.omw_to_plant_a_04' failed, no such sound script entry 09:17:13 PrecacheScriptSound 'professional_epic.loc_ramp_01' failed, no such sound script entry 09:17:13 PrecacheScriptSound 'professional_epic.loc_back_01' failed, no such sound script entry 09:17:13 PrecacheScriptSound 'professional_epic.loc_platform_01' failed, no such sound script entry 09:17:13 PrecacheScriptSound 'professional_epic.loc_catwalk_03' failed, no such sound script entry 09:17:13 PrecacheScriptSound 'professional_epic.loc_enemy_spawn_01' failed, no such sound script entry 09:17:13 PrecacheScriptSound 'professional_epic.loc_doubledoors_01' failed, no such sound script entry 09:17:13 PrecacheScriptSound 'professional_epic.loc_front_01' failed, no such sound script entry 09:17:13 PrecacheScriptSound 'professional_epic.loc_overpass_03' failed, no such sound script entry 09:17:13 PrecacheScriptSound 'professional_epic.loc_palace_01' failed, no such sound script entry 09:17:13 PrecacheScriptSound 'professional_epic.loc_stairs_01' failed, no such sound script entry 09:17:13 PrecacheScriptSound 'professional_epic.loc_snipers_nest_01' failed, no such sound script entry 09:17:13 PrecacheScriptSound 'professional_epic.loc_connector_01' failed, no such sound script entry 09:17:13 PrecacheScriptSound 'professional_epic.loc_door_01' failed, no such sound script entry 09:17:14 Invalid file size for host.txt 09:17:14 Commentary: Could not find commentary data file 'maps/de_dust2_commentary.txt'. 09:17:14 The Navigation Mesh was built using a different version of this map. 09:17:14 Error parsing BotProfile.db - unknown attribute 'Rank' 09:17:14 Error parsing BotProfile.db - unknown attribute 'Rank' 09:17:14 Error parsing BotProfile.db - unknown attribute 'Rank' 09:17:14 Error parsing BotProfile.db - unknown attribute 'Rank' 09:17:14 Error parsing BotProfile.db - unknown attribute 'Rank' 09:17:14 Error parsing BotProfile.db - unknown attribute 'Rank' 09:17:14 Error parsing BotProfile.db - unknown attribute 'Rank' 09:17:14 Error parsing BotProfile.db - unknown attribute 'Rank' 09:17:14 Created class baseline: 20 classes, 13792 bytes. 09:17:14 Initializing Steam libraries for secure Internet server 09:17:14 Logging into Steam gameserver account with logon token 'B74A031Fxxxxxxxxxxxxxxxxxxxxxxxx' 09:17:14 Initialized low level socket/threading support. 09:17:14 \src\steamnetworkingsockets\clientlib\csteamnetworkingsockets_steam.cpp(138): Assertion Failed: Initted interface twice? 09:17:14 Set SteamNetworkingSockets P2P_STUN_ServerList to '' as per SteamNetworkingSocketsSerialized 09:17:14 SteamDatagramServer_Init succeeded 09:17:14 Execing config: sourcemod/sourcemod.cfg 09:17:14 Execing config: sourcemod\basevotes.cfg 09:17:14 Execing config: sourcemod\funcommands.cfg 09:17:14 Execing config: sourcemod\funvotes.cfg 09:17:14 Connection to Steam servers successful. 09:17:14 Public IP is 89.203.193.220. 09:17:14 Assigned persistent gameserver Steam ID [G:1:3976299]. 09:17:14 Gameserver logged on to Steam, assigned identity steamid:85568392924015723 09:17:14 Set SteamNetworkingSockets P2P_STUN_ServerList to '146.66.155.54:3478' as per SteamNetworkingSocketsSerialized 09:17:15 VAC secure mode is activated. 09:17:15 Received server welcome from GC. 09:17:15 GC Connection established for server version 1219, instance idx 1
mahdimouss
{ "اللغة الإنجليزية"، "startmenu.new_game": "لعبة جديدة" ، "startmenu.multiplayer": "MULTIPLAYER" ، "startmenu.resume_game": "استئناف اللعبة" ، "startmenu.settings": "الإعدادات"، "startmenu.high_score": "High Score"، "startmenu.throne_room": "Throne Room"، "startmenu.about": "حول"، "news.title": "أخبار بوليتوبيا"، "news.description": "مرحبًا! \ n هذا هو المكان الذي نشارك فيه آخر الأخبار من عالم Polytopia. ترقبوا!"، "gamemodepicker.title": "GAME MODE"، "tribepicker.title": "اختر قبلتك" ، "tribepicker.categories.humantribes": "القبائل العادية" ، "tribepicker.categories.specialtribes": "القبائل الخاصة" ، "tribepicker.categories.specialtribes.description": "مجموعة من القبائل التي هي خارج هذا العالم قليلاً ..."، "tribepicker.categories.random": "دع المصير يقرر!" ، "tribepicker.categories.random.button": "القبيلة العشوائية" ، "tribepicker.categories.random.selected.title": "Alakazam!"، "tribepicker.categories.random.selected.text": "تم اختيار القبيلة العشوائية"، "tribepicker.restore": "استعادة المشتريات"، "tribepicker.restoring": "استعادة ..."، "tribepicker.reset": "إعادة تعيين المشتريات"، "tribepicker.tba": "TBA"، "tribepicker.underconstruction": "قيد الإنشاء" ، "tribepicker.underconstruction.description": "ما زلنا نعمل على ابتكار هذه القبيلة. زراعة الفاكهة وتطوير اللغات والعمارة. هذا يستغرق وقتًا كما تعلم. تابعMidjiwan على Instagram أو Twitter وستكون أول من يعرف متى القبائل الجديدة يصل!"، "tribepicker.freetribe": "Free Tribe" ، "tribepicker.freetribe.description": "هذه القبيلة متاحة مجانًا ولا يمكن شراؤها لتمكين اللاعبين المتعددين عبر الإنترنت."، "tribepicker.taken": "مأخوذة"، "tribepicker.enable": "تمكين" ، "tribepicker.disable": "تعطيل"، "tribepicker.disabled": "معطل"، "tribepicker.disabled.description": "القبيلة معطلة ، لا يمكن استخدامها من قبلك أو من قبل منظمة العفو الدولية."، "tribepicker.pick": "PICK"، "tribepicker.yourname": "اسمك" ، "tribepicker.anonymous": "مجهول"، "tribepicker.firstplayer": "يجب أن يكون اللاعب الأول إنسانًا" ، "tribepicker.pickyour": "اختر قبيلتك" ، "tribepicker.playertype": "نوع اللاعب"، "tribepicker.news.readmore": "قراءة المزيد ..."، "tribepicker.toprating": "أعلى تقييم {0}٪"، "tribepicker.toprating.next": "{0}٪ مطلوب للنجم التالي"، "tribepicker.topscore": "أعلى نتيجة {0}"، "tribepicker.topscore.next": "{0} للنجمة التالية"، "tribepicker.players": "{0} players"، "tribepicker.mapsize": "حجم الخريطة: {0} مربعات"، "tribepicker.gamemode": "وضع اللعبة: {0}"، "gamesettings.title": "إعداد اللعبة"، "gamesettings.yourname": "اسمك" ، "gamesettings.anonymous": "مجهول"، "gamesettings.gamename": "اسم اللعبة"، "gamesettings.game": "اللعبة {0}"، "gamesettings.players": "اللاعبون"، "gamesettings.opponents": "المعارضون" ، "gamesettings.unlockmore": "افتح قفل المزيد من القبائل لتلعب مع المزيد من الخصوم" ، "gamesettings.notavailable": "غير متوفر" ، "gamesettings.info.multiplayer": "{0} اللاعبون ، {1} خريطة المربعات" ، "gamesettings.info.local": "{0} المعارضون ، {1} خريطة المربعات" ، "gamesettings.info.turnlimit30": "، 30 turn limit"، "gamesettings.info.difficulty.bonus": "مكافأة الصعوبة: {0}٪"، "gamesettings.difficulty": "صعوبة"، "gamesettings.difficulty.easy": "سهل"، "gamesettings.difficulty.normal": "عادي"، "gamesettings.difficulty.hard": "صعب" ، "gamesettings.difficulty.crazy": "مجنون" ، "gamesettings.startgame": "START GAME" ، "gamesettings.creatingworld": "CREATING WORLD" ، "gamesettings.mode": "Game Mode"، "gamesettings.createslot": "إنشاء فتحة لعبة ..."، "gamesettings.createslot.error": "خطأ في إنشاء اللعبة" ، "gamesettings.createslot.error.info": "تأكد من اتصالك بالإنترنت وحاول مرة أخرى."، "gamesettings.size": "حجم الخريطة"، "gamesettings.size.tiny": "صغيرة" ، "gamesettings.size.normal": "عادي"، "gamesettings.size.large": "كبير" ، "gamesettings.size.disabled": "غير متوفر"، "gamesettings.network": "الشبكة"، "gamesettings.network.online": "عبر الإنترنت" ، "gamesettings.network.passplay": "Pass & Play"، "gamesettings.online.disabled": "الإنترنت مغلق" ، "gamesettings.online.disabled.info": "هناك بعض الأشياء التي تحتاج إلى إصلاحها للعب متعددة اللاعبين عبر الإنترنت" ، "gamesettings.online.info": "العب مع أصدقائك عبر الإنترنت باستخدام خادمنا المتعدد اللاعبين."، "gamesettings.passplay.info": "العب مع أصدقائك في وضع عدم الاتصال على هذا الجهاز عن طريق تمريره."، "gamesettings.size.tiles": "{0} خريطة المربعات."، "gamesettings.continue": "متابعة"، "gamemode.perfection.caps": "الكمال" ، "gamemode.perfection": "الكمال" ، "gamemode.perfection.description.button": "أظهر مهاراتك على النقطة العالمية في اللعبة الكلاسيكية 30 دورة." ، "gamemode.perfection.description": "احصل على أعلى درجة ممكنة قبل نفاد الوقت."، "gamemode.perfection.win": "لقد وصلنا إلى نهاية الزمن. ذكرى قبيلتك سوف يتردد صداها في الأبدية!" ، "gamemode.perfection.loss": "لقد وصلنا إلى نهاية الوقت."، "gamemode.domination.caps": "DOMINATION"، "gamemode.domination": "الهيمنة" ، "gamemode.domination.description.button": "العب حتى تبقى قبيلة واحدة فقط ، بدون حد زمني."، "gamemode.domination.description": "امسح كل القبائل الأخرى من على وجه المربع. يمكن أن يكون هناك قبيلة واحدة فقط."، "gamemode.domination.win": "لقد هزمت كل القبائل الأخرى ووحدت الساحة بأكملها!" ، "gamemode.domination.loss": "فقدت مدينتك الأخيرة ، لقد هُزمت."، "gamemode.glory.caps": "GLORY" ، "gamemode.glory": "Glory"، "gamemode.glory.description": "أول من يفوز بـ {0} نقطة"، "gamemode.glory.win": "تم الوصول إلى مجموع النقاط البالغ {0}!" ، "gamemode.might.caps": "MIGHT"، "gamemode.might": "ربما"، "gamemode.might.description": "التقط كل الأحرف الكبيرة للفوز" ، "gamemode.might.win": "تم التقاط جميع الأحرف الكبيرة" ، "gamemode.death": "فقدت مدينتك الأخيرة ، لقد هُزمت."، "world.intro.title": "القائد العظيم!"، "world.intro.text": "لقد تم اختيارك لحكم قبيلة {0}. استكشف العالم ووسع إمبراطوريتك ، لكن احترس من القبائل الأخرى."، "world.intro.objective": "الهدف: {0}"، "world.turn.end": "End Turn"، "world.turn.end.question": "إنهاء دورك؟" ، "world.turn.end.confirm": "تأكيد" ، "world.turn.next": "المنعطف التالي" ، "world.turn.finish": "إنهاء اللعبة" ، "world.turn.nomoves": "لا مزيد من الحركات المتاحة ، انعطاف النهاية" ، "world.turn.start": "START" ، "world.turn.exit": "خروج" ، "world.turn.waiting": "في انتظار {0} للتشغيل ..."، "world.turn.waiting.unknown": "انتظار لعب قبيلة غير معروفة ..."، "world.turn.ready": انقر على حفظ عندما تكون جاهزًا ، "world.turn.your": "دورك" ، "world.turn.remaining": "{0} يتجه لليسار" ، "world.turn.last": "آخر منعطف!"، "world.turn.replaying": "إعادة تشغيل ..."، "world.unit.info.from": "من مدينة {0}."، "world.unit.veteran": "هذه الوحدة مخضرم."، "world.unit.veteran.progress": "{0} / {1} لتصبح متمرسًا."، "world.unit.ability": "قدرة الوحدة"، "world.unit.health": "الصحة" ، "world.unit.attack": "هجوم" ، "world.unit.defence": "دفاع"، "world.unit.movement": "حركة"، "world.unit.range": "Range" ، "world.unit.disembark.title": "اترك {0}" ، "world.unit.disembark.message": "سيؤدي النزول من هذه الوحدة إلى تفكيك {0}. هل ترغب في المتابعة؟"، "world.unit.evolve": "لقد تطورت وحدتك إلى {0}!" ، "world.unit.evolve.title": "نمو الوحدة" ، "world.unit.dissolved": "تم حل وحدتك" ، "world.building.info": "مدينة {0}" ، "world.building.village": "Village"، "world.building.capture.ready": "ستكون جاهزًا لالتقاط المنعطف التالي" ، "world.building.capture.ready.title": "إدخال {0}!"، "world.building.capture.warning": "سيتم الانتهاء من الالتقاط في المنعطف التالي إذا لم توقفهم."، "world.building.capture.warning.title": "{0} تحت الحصار!"، "world.attract.sanctuary": "ملاذك قد جذب حيوانًا بريًا!" ، "world.loading": "تحميل {0}٪"، "world.suggestion.title": "إليك نصيحة!" ، "world.suggestion.message": "يجب {0}" ، "world.suggestion.disable": "(يمكن إيقاف تشغيل هذه الاقتراحات في القائمة)" ، "world.ranks": "الأول والثاني والثالث والرابع والخامس والسادس والسابع والثامن والتاسع والعاشر والحادي عشر والثاني عشر" ، "world.road.connected.title": "طريق التجارة الجديد!"، "world.road.connected.message": "{0} متصل الآن بعاصمتك!"، "world.tech.new.title": "تقنية جديدة!" ، "world.tech.new.message": "لقد اكتشفت سر {0}" ، "world.reward.levelup": "{0} level up!"، "world.reward.building": "يمكنك الآن إنشاء {0}! هذا النصب الملحمي سيجلب الثروة والمجد إلى أقرب مدينة."، "world.reward.building.title": "تم إكمال {0}" ، "world.meet.tribe": "تلتقي {0}" ، "world.task.new": "لقد حصلت على مهمة جديدة!" ، "tribes.nature": "الطبيعة" ، "tribes.xin-xi": "Xin-xi" ، "tribes.xin-xi.info": "يبدأون رحلتهم في الجبال الكثيفة ، محاطة بأزهار الكرز الجميلة. \ n \ n {0} تبدأ اللعبة بتقنية '{1}'."، "tribes.imperius": "Imperius"، "tribes.imperius.info": "جبال ضخمة ووديان خضراء. المناخ {0} مثالي لزراعة الفاكهة. \ n \ n {0} تبدأ اللعبة بتقنية '{1}'."، "tribes.bardur": "Bardur"، "tribes.bardur.info": "البقاء على قيد الحياة في الشتاء الأبدي القاسي في {0} الغابة ليس بالمهمة السهلة ، ولكن يبدو أن {0} تزدهر هنا. \ n \ n {0} تبدأ اللعبة بـ '{1 }' تقنية."، "tribes.oumaji": "Oumaji" ، "tribes.oumaji.info": "الصحراء المباركة التي لا نهاية لها على ما يبدو هي موطن {0} القبيلة. \ n \ n {0} تبدأ اللعبة بتقنية '{1}'."، "tribes.kickoo": "Kickoo"، "tribes.kickoo.info": "شواطئ رملية بيضاء مع أشجار جوز الهند. وفرة من الفاكهة والأسماك. مرحبًا بك في منزل {0}. \ n \ n {0} ابدأ اللعبة باستخدام تقنية" {1} " . "، "tribes.hoodrick": "Hoodrick" ، "tribes.hoodrick.info": "أوراق الخريف الصفراء لغابات {0} هي مخابئ مثالية لسكانها المميزين الذين يحشوون الفطر. \ n \ n {0} ابدأ اللعبة باستخدام تقنية '{1}'."، "tribes.luxidoor": "Luxidoor"، "tribes. أجود أنواع الحرير الأرجواني. ولكن هل ستنجو خارج أسوار عاصمتهم المحبوبة؟ \ n \ n {0} تبدأ اللعبة برأسمال ضخم محاط بأسوار. "، "tribes.vengir": "Vengir"، "tribes.vengir.info": "تستهجن القبائل الأخرى وتدفعها إلى الأراضي البور غير السارة. هل سيتسامحون مع هذا الظلم أم سينهضون للرد؟ \ n \ n {0} ابدأ اللعبة بـ '{1}' التكنولوجيا ومبارز قوي. "، "tribes.zebasi": "Zebasi" ، "tribes.zebasi.info": "{0} ازدهر في غابات السافانا الدافئة ، وزرع التربة الخصبة لتوفير الغذاء لسكانها الأقوياء. \ n \ n {0} ابدأ اللعبة بتقنية" {1} ". و "tribes.zebasi.news": "يتم استثمار كل أرباح قبيلة الزباسي في مشاريع الطاقة الشمسية."، "tribes.aimo": "Ai-Mo" ، "tribes.aimo.info": "تعيش القبيلة {0} الهادئة والحكيمة في أقسى سلسلة جبال في الميدان وأكثرها رياحًا ، حيث وجدوا السلام الداخلي من خلال التأمل في ضوء المساء الأبدي. \ n \ n {0 } يبدأ اللعبة بتقنية "{1}". "، "tribes.aquarion": "Aquarion" ، "tribes.aquarion.info": "من أعماق المحيطات تظهر حضارة ضائعة منذ زمن طويل! لقد منحهم عزلتهم الشديدة قدرات مائية خاصة غير معروفة للقبائل البشرية الأخرى. \ n \ n {0} لديهم تقنية مختلفة قليلاً شجرة والوصول إلى وحدات السلاحف البرمائية الفريدة التي لا يمكن لأي قبيلة أخرى تدريبها. "، "tribes.quetzali": "Quetzali"، "tribes.quetzali.info": "قبيلة {0} تعبد آلهة الطيور في التربة الحمراء وتعيش في وئام مع التناسق الطبيعي لأدغالها التكعيبية. يُشاهدون عادة يركبون طيورًا ضخمة لا تطير. \ n \ n {0 } يبدأ اللعبة بتقنية "{1}". "، "tribes.elyrion": "riȱŋ"، "tribes.elyrion.info": "الغامض {0} يدافع عن منازلهم في الغابات بسحر ملون وضراوة التنانين التي تنفث النيران! \ n \ n إنهم يعتبرون الطبيعة روحًا مقدسة ولا يمكنهم اصطياد الحيوانات أو قطع الأشجار ، بدلاً من ذلك يبدأون اللعبة باستخدام تقنية Enchantment الفريدة التي يمكنها تحويل الحيوانات العادية إلى وحوش قوية. "، "tribes.yadakk": "يدقق" ، "tribes.yadakk.info": "بدأ {0} كقبيلة بدوية في سهول الخليج القاسية الجميلة. الآن هم تجار الساحة ، ويربطون إمبراطوريتهم بالطرق التجارية الرائعة. \ n \ n {0} تبدأ اللعبة بتقنية "{1}". "، "tribes.polaris": "Polaris"، "tribes.polaris.info": "لقد حوصر {0} في أقاصي التندرا المتجمدة على مدى دهور ، ولكنهم باركهم Gaami المجهول بالقدرة على توسيع تضاريسهم الجليدية غير الطبيعية إلى أبعد مما يسمح به الطقس. \ n \ n مع قوة الزلاجات والماموس ، تم تصميم {0} الصوفي على دفن الساحة في الجليد وتحويل الأرض إلى جنة متجمدة. \ n \ n {0} تبدأ اللعبة بإمكانية تجميد التضاريس المحيطة باستخدام موني. "، "building.capital.owner": "{0} هي عاصمة {1}" ، "building.capital.owner.former": "{0} هي العاصمة السابقة للإمبراطورية {1} ، التي تحتلها حاليًا {2} القوات" ، "building.city.owner": "{0} هي مدينة في {1} الإمبراطورية" ، "building.village.owner": "هذه قرية لا تنتمي إلى أية قبيلة" ، "build.ability.attract": "يجذب حيوانًا بريًا إلى بلاطة غابة قريبة كل 3 دورات" ، "build.produce": "تنتج {0} كل منعطف"، "building.produce.multiply.polaris": "({0} لكل {1} بلاطات مجمدة في العالم)"، "build.produce.multiply2.polaris": "تنتج {0} لكل {1} بلاطات مجمدة في العالم"، "build.produce.multiply": "({0} لكل قريب {1})"، "build.produce.multiply2": "ينتج {0} لكل مكان قريب {1} كل منعطف" ، "build.produce.multiply3": "ينتج {0} لكل قريب {1}"، "build.produce.reward.igned": "ينتج {0} لـ {1}" ، "build.produce.reward": "تنتج {0}"، "build.reward.tech": "يمنحك {0}"، "build.reward.instant": "فورًا يمنحك {0}"، "building.transform": "يحول {0} إلى {1}" ، "building.transform2": "يحول {0} إلى {1} مع {2}" ، "build.resource": "يضيف {0} في المربع المحدد" ، "build.value": "تساوي {0} من النقاط"، "build.ability.embark": "الوحدات التي تتحرك هنا ستتحول إلى قوارب يمكنها التحرك على الماء."، "build.ability.route": "يقوم بإنشاء طرق تجارية عبر {0} إلى أي {1} أخرى داخل دائرة نصف قطرها 5 مربعات."، "build.ability.route.and": "و" ، "build.ability.road": "أنشئ طرقًا لربط المدن بالعاصمة. تحصل المدن المتصلة على 1 من السكان كمكافأة. تمنح الطرق أيضًا مكافأة حركة لجميع الوحدات."، "building.ability.ruin": "خراب من حضارة قديمة ، يمكن أن يحتوي على أشياء ثمينة! اذهب إلى هناك مع وحدة لفحصها."، "build.ability.patina": "{0} تنمو بمرور الوقت ، لذا حاول بناءها في أقرب وقت ممكن."، "build.ability.limited": "يمكنك بناء واحد فقط {0} لكل مدينة."، "build.ability.unique": "يمكن بناء {0} مرة واحدة فقط."، "build.restriction.near": "يجب أن يتم بناؤه بجوار {0}."، "build.restriction.on": "يجب أن يكون على مربع به {0}."، "building.names.city": "المدينة"، "build.names.ruin": "خراب"، "building.names.monument1": "مذبح السلام" ، "building.names.monument2": "برج الحكمة" ، "building.names.monument3": "البازار الكبير" ، "building.names.monument4": "مقبرة الأباطرة" ، "building.names.monument5": "بوابة القوة" ، "building.names.monument6": "Park of Fortune" ، "building.names.monument7": "عين الله" ، "building.names.temple": "Temple"، "building.names.burnforest": "Burn Forest" ، "building.names.road": "Road"، "building.names.customshouse": "مركز الجمارك" ، "building.names.gather": "حصاد الفاكهة" ، "building.names.farm": "مزرعة" ، "building.names.windmill": "Windmill"، "building.names.fishing": "صيد السمك"، "building.names.whalehunting": "صيد الحيتان" ، "building.names.watertemple": "Water Temple" ، "building.names.port": "المنفذ"، "build.names.hunting": "صيد" ، "building.names.clearforest": "مسح مجموعة التفرعات" ، "building.names.lumberhut": "Lumber Hut" ، "building.names.sawmill": "Sawmill"، "building.names.growforest": "Grow Forest" ، "building.names.foresttemple": "Forest Temple" ، "building.names.mountaintemple": "Mountain Temple" ، "building.names.mine": "Mine"، "building.names.forge": "Forge"، "building.names.sanctuary": "Sanctuary"، "building.names.enchant": "حيوان ساحر" ، "building.names.enchant_whale": "Enchant Whale" ، "building.names.ice_bank": "Ice Bank" ، "building.names.iceport": "Outpost"، "building.names.icetemple": "Ice Temple" ، "الوحدة": "الوحدة" ، "unit.info.attack": "هجوم" ، "unit.info.defence": "الدفاع" ، "unit.info.movement": "الحركة"، "unit.info.health": "الصحة" ، "unit.info.range": "النطاق" ، "unit.info.skills": "المهارات"، "unit.names.giant": "العملاق" ، "unit.names.crab": "Crab" ، "unit.names.egg": "Dragon Egg" ، "unit.names.wendy": "Gaami" ، "unit.names.bunny": "الأرنب" ، "unit.names.scout": "Scout" ، "unit.names.boat": "قارب"، "unit.names.warrior": "المحارب" ، "unit.names.rider": "رايدر" ، "unit.names.knight": "Knight" ، "unit.names.defender": "المدافع" ، "unit.names.ship": "سفينة"، "unit.names.battleship": "سفينة حربية" ، "unit.names.catapult": "المنجنيق" ، "unit.names.archer": "رامي" ، "unit.names.priest": "Mind Bender"، "unit.names.swordman": "Swordsman"، "unit.names.amphibian": "البرمائيات" ، "unit.names.tridention": "Tridention" ، "unit.names.dragon": "Baby Dragon" ، "unit.names.dragon_large": "Fire Dragon" ، "unit.names.polytaur": "Polytaur" ، "unit.names.seamonster": "نافالون" ، "unit.names.icemaker": "Mooni" ، "unit.names.battlesled": "Battle Sled" ، "unit.names.fortress": "Ice Fortress"، "unit.names.icearcher": "Ice Archer" ، "قابلية الوحدة": "القدرة"، "unit.abilities.dash": "DASH"، "unit.abilities.escape": "ESCAPE"، "unit.abilities.scout": "SCOUT" ، "unit.abilities.sneak": "SNEAK" ، "unit.abilities.hide": "إخفاء" ، "unit.abilities.build": "BUILD" ، "unit.abilities.persist": "PERSIST" ، "unit.abilities.convert": "CONVERT" ، "unit.abilities.heal": "HEAL"، "unit.abilities.swim": "السباحة" ، "unit.abilities.carry": "CARRY"، "unit.abilities.grow": "GROW"، "unit.abilities.fly": "FLY"، "unit.abilities.splash": "SPLASH"، "unit.abilities.decay": "DECAY"، "unit.abilities.navigate": "NAVIGATE"، "unit.abilities.freeze": "التجميد"، "unit.abilities.freezearea": "منطقة التجميد" ، "unit.abilities.autofreeze": "التجميد التلقائي" ، "unit.abilities.skate": "تزلج" ، "unit.abilities.fortify": "FORTIFY"، "player.abilities.destroy": "تدمير"، "player.abilities.disband": "disband"، "player.abilities.literacy": "محو الأمية"، "player.abilities.glide": "الانزلاق"، "resources.names.fruit": "فاكهة"، "Resource.names.crop": "المحاصيل" ، "Resource.names.fish": "fish"، "Resource.names.whale": "whale"، "Resource.names.game": "wild animal"، "Resource.names.metal": "metal"، "terrain.unknown": "أراضي غير معروفة" ، "terrain.water": "Water"، "terrain.ocean": "المحيط"، "terrain.field": "حقل"، "terrain.forest": "غابة"، "terrain.mountain": "Mountain"، "terrain.ice": "Ice"، "actionbox.building.level": "المستوى {0} / {1}" ، "actionbox.tile.roads": "الطرق"، "actionbox.city": "مدينة {0}"، "actionbox.city.level": "lvl {0}"، "actionbox.village": "Village"، "actionbox.unit.frozen": "Frozen {0}"، "actionbox.unit.kills": "{0} / {1} kills"، "actionbox.unit.veteran": "Veteran"، "actionbox.unit.new": "تدريب جديد {0} {1}"، "actionbox.unit.ability": "قدرة الوحدة"، "actionbox.unit.train": "TRAIN" ، "actionbox.unit.upgrade": "ترقية" ، "actionbox.unit.toomany": "(كثير جدًا)"، "actionbox.unit.toomany.info": "هذه المدينة لا يمكنها دعم أي وحدات أخرى. قم بترقية المدينة للحصول على مساحة أكبر للوحدات."، "actionbox.building.doit": "افعل ذلك" ، "actionbox.building.requiredtech": "أنت بحاجة إلى البحث {0} للقيام بذلك ، انقر على زر" شجرة التكنولوجيا "."، "actionbox.building.techtree": "TECH TREE" ، "actionbox.insufficientfunds": "ليس لديك ما يكفي من النجوم لشراء هذا. انقر على" المنعطف التالي "للحصول على المزيد من النجوم."، "actionbox.confirm": "تأكيد {0}" ، "actionbox.confirm.info": "هل أنت متأكد أنك تريد القيام بذلك؟"، "actionbox.confirm.button": "نعم" ، "tooltip.tile.road": "قم ببناء طريق لربط هذه المدينة بعاصمتك."، "tooltip.tile.choose_unit": "اختر وحدة لإنتاج."، "tooltip.tile.limit": "هذه المدينة لا يمكنها دعم المزيد من الوحدات."، "tooltip.tile.capture.enemy": "مدينتك يتم الاستيلاء عليها من قبل العدو!" ، "tooltip.tile.capture": "هذه المدينة يتم الاستيلاء عليها."، "tooltip.tile.capture.tip": "انقل وحدة هنا للاستيلاء على هذه المدينة!"، "tooltip.tile.produces": "تنتج {0} كل منعطف."، "tooltip.tile.level.polaris": "تجميد {0} المزيد من المربعات للوصول إلى المستوى التالي"، "tooltip.tile.level.next": "المستوى التالي في {0} المنعطفات"، "tooltip.tile.level.max": "وصلت إلى الحد الأقصى" ، "tooltip.tile.sailing": "انقل وحدة هنا لبدء الإبحار!" ، "tooltip.tile.monuments": "المعالم تمنح إمبراطوريتك درجة إضافية!"، "tooltip.tile.ruin": "انقل وحدة هنا وافحص هذه الآثار القديمة."، "tooltip.tile.blocked": "تم حظر هذا المورد بواسطة وحدة معادية"، "tooltip.tile.extract.upgrade": "استخرج هذا المورد لترقية مدينتك"، "tooltip.tile.extract.convert": "يمكن تحويل هذا المورد إلى وحدة"، "tooltip.tile.extract.stars": "استخرج هذا المورد لكسب النجوم فورًا" ، "tooltip.tile.extract.research": "تحتاج إلى البحث {0} لاستخراج هذا المورد" ، "tooltip.tile.outside": "هذا المورد خارج إمبراطوريتك" ، "tooltip.tile.research": "تحتاج إلى البحث {0} لتتمكن من الانتقال إلى هنا" ، "tooltip.tile.explore": "استكشف هذه المنطقة لترى ما تحمله!"، "tooltip.unit.city.capture": "اضغط على" التقاط "لإضافة هذه المدينة إلى إمبراطوريتك" ، "tooltip.unit.city.capture.next": "ستكون هذه المدينة جاهزة لالتقاط المنعطف التالي" ، "tooltip.unit.city.capture.flying": "لا يمكن للوحدات الطائرة الاستيلاء على المدن"، "tooltip.unit.actions.none": "لا توجد إجراءات متبقية. اضغط على" المنعطف التالي "لتحريك هذه الوحدة مرة أخرى." ، "tooltip.unit.actions.move": "انقر فوق علامة زرقاء للتحرك."، "tooltip.unit.actions.attack": "انقر فوق علامة حمراء للهجوم!" ، "tooltip.unit.enemy": "هذا هو العدو!" ، "tooltip.unit.enemy.territory": "هذا العدو في منطقتك!" ، "tooltip.unit.enemy.city": "هذا العدو يستولي على مدينتك!" ، "tooltip.unit.grow.now": "سينمو إلى {0} في نهاية هذا المنعطف!"، "tooltip.unit.grow.later": "سينمو إلى {0} {1} دورة."، "tooltip.unit.decay.now": "ستحل هذه الوحدة في نهاية هذا المنعطف."، "tooltip.unit.decay.later": "ستذوب هذه الوحدة في {0} دورات."، "tooltip.ability.disband": "قم بإزالة أي من الوحدات الخاصة بك واحصل على نصف تكلفتها في المقابل."، "tooltip.ability.destroy": "قم بإزالة أي مبنى داخل حدودك ، وهو أمر رائع لإعادة بناء إمبراطوريتك."، "tooltip.ability.literacy": "خفض سعر جميع التقنيات بنسبة 20٪."، "tooltip.ability.glide": "تحصل جميع الوحدات غير المتزلجة على حركة إضافية عند التحرك على الجليد."، "tooltip.ability.dash": "يمكن لهذه الوحدة الهجوم بعد التحرك إذا كان هناك عدو في النطاق."، "tooltip.ability.convert": "يمكن لهذه الوحدة تحويل عدو إلى قبيلتك من خلال مهاجمتها."، "tooltip.ability.escape": "يمكن لهذه الوحدة التحرك مرة أخرى بعد الهجوم."، "tooltip.ability.persist": "يمكن لهذه الوحدة أن تستمر في الهجوم طالما أنها تقتل ضحاياها تمامًا."، "tooltip.ability.swim": "هذه الوحدة برمائية ويمكن أن تتحرك على الأرض والمياه."، "tooltip.ability.carry": "تحمل هذه الوحدة وحدة أخرى بداخلها."، "tooltip.ability.heal": "يمكن لهذه الوحدة أن تعالج الوحدات المحيطة."، "tooltip.ability.navigate": "يمكن لهذه الوحدة التحرك في أي تضاريس حتى لو لم تكن لديك التقنية اللازمة للانتقال إلى هناك."، "tooltip.ability.fly": "يمكن لهذه الوحدة التحليق فوق أي تضاريس بدون عقوبات أو مكافآت على الحركة."، "tooltip.ability.splash": "تتسبب هذه الوحدة في تلف الوحدات المجاورة عند الهجوم."، "tooltip.ability.grow": "ستنمو هذه الوحدة في النهاية وتصبح شيئًا آخر."، "tooltip.ability.sneak": "يمكن لهذه الوحدة تجاوز وحدات العدو دون توقف."، "tooltip.ability.scout": "هذه الوحدة لها نطاق رؤية مزدوج."، "tooltip.ability.freeze": "تقوم هذه الوحدة بتجميد أعدائها عند مهاجمتهم حتى لا يتمكنوا من التحرك."، "tooltip.ability.freeze_area": "يمكن لهذه الوحدة تجميد البلاط المحيط بما في ذلك أي وحدات معادية."، "tooltip.ability.freeze_auto": "تقوم هذه الوحدة بتجميد أي بلاطات ووحدات محيطة عند الحركة."، "tooltip.ability.skate": "تحصل هذه الوحدة على حركة مزدوجة على بلاطات الجليد ولكن حركتها على الأرض تقتصر على قطعة واحدة ويتم تعطيل جميع القدرات الأخرى."، "tooltip.ability.fortify": "تحصل هذه الوحدة على مكافأة دفاع عند الدفاع في مدنها ، علاوة مضاعفة مع جدار المدينة."، "أزرار.ok": "موافق" ، "أزرار.exit": "خروج" ، "button.save": "حفظ" ، "Button.back": "BACK"، "gameinfo.id": "المعرف: {0}"، "gameinfo.lastmove": "آخر حركة: قبل {0}"، "gameinfo.updated": "تم التحديث: منذ {0}" ، "gameinfo.turn": "Turn: {0}"، "gameinfo.serverversion": "إصدار الخادم: {0}"، "gameinfo.gameover": "انتهت هذه اللعبة ، افتحها لعرض النتيجة النهائية" ، "gameinfo.yourturn": "حان دورك إلى {0}"، "gameinfo.opponentsturn": "Waiting for {0} to {1}"، "gameinfo.start": "ابدأ اللعبة"، "gameinfo.picktribe": "اختيار القبيلة" ، "gameinfo.play": "play"، "gamesaverbinary.unable.to.save": "لم أتمكن من حفظ اللعبة ، تأكد من أن لديك مساحة تخزين كافية على جهازك" ، "gamesaverbinary.unable.to.save.title": "تعذر الحفظ :("، "gamesaverbinary.error.loading.moves": "خطأ في تحميل الحركات" ، "polyplayer.task": "مهمة"، "polyplayer.task.explorer.title": "Explorer" ، "polyplayer.task.explorer.description": "استكشف كل قطعة في هذا العالم المربع" ، "polyplayer.task.war.title": "لا رحمة" ، "polyplayer.task.war.description": "امسح عدوًا" ، "polyplayer.task.pacifist.title": "السلمي"، "polyplayer.task.pacifist.description": "لا تقم بأي هجمات لمدة 5 أدوار"، "polyplayer.task.killer.title": "القاتل"، "polyplayer.task.killer.description": "اقتل 10 أعداء في المعركة" ، "polyplayer.task.wealth.title": "الثروة"، "polyplayer.task.wealth.description": "جمع 100 نجمة" ، "polyplayer.task.genius.title": "Genius" ، "polyplayer.task.genius.description": "اكتشف كل التقنيات المتاحة" ، "polyplayer.task.metropolis.title": "Metropolis"، "polyplayer.task.metropolis.description": "أنشئ مدينة من المستوى الخامس"، "polyplayer.task.network.title": "الشبكة" ، "polyplayer.task.network.description": "اربط 5 مدن بعاصمتك" ، "task.info": "{0} للحصول على {1}" ، "price.stars": "star"، "price.stars.plural": "stars"، "price.population": "Population"، "price.population.plural": "Population"، "price.points": "point"، "price.points.plural": "Points"، "wcontroller.online.yourturn.title": "إنه دورك!"، "wcontroller.online.yourturn.description": "انقر على" موافق "لمتابعة اللعبة عندما تكون جاهزًا."، "wcontroller.convertvillage.description": "يوافق القرويون على الانضمام إلى إمبراطوريتك الناشئة!" ، "wcontroller.convertvillage.title": "تم تحويل القرية!"، "wcontroller.capital.regained.description": "لقد استعدت السيطرة على رأس المال الخاص بك ، وأعيد إنشاء شبكات التجارة" ، "wcontroller.capital.regained.title": "أخبار رائعة!"، "wcontroller.capital.lost.description": "تم الاستيلاء على رأس مالك بواسطة جحافل {0}! تم إلغاء جميع اتصالاتك التجارية حتى تستعيد السيطرة على رأس مالك" ، "wcontroller.capital.lost.title": "أخبار سيئة!"، "wcontroller.capital.captured.description": "لقد استولت على رأس مال {0}! تم إلغاء جميع اتصالاتهم التجارية حتى يستعيدوا السيطرة على رأس مالهم" ، "wcontroller.capital.captured.title": "أخبار رائعة!"، "wcontroller.capital.captured2.description": "{0} هي الآن جزء من {1} الإمبراطورية" ، "wcontroller.capital.captured2.title": "استولت المدينة!"، "wcontroller.kill.upgrade.description": "الوحدة جاهزة للترقية!" ، "wcontroller.kill.upgrade.title": "Level Up!"، "wcontroller.examine.water.elyrion": "لقد صادفت {0} مسحورًا انضم إلى قبيلتك!" ، "wcontroller.examine.water": "لقد واجهت عصابة من القراصنة الودودين الذين انضموا إلى قبيلتك!" ، "wcontroller.examine.water.title": "سفينة المعركة" ، "wcontroller.examine.giant": "لقد وجدت {0} صديقًا انضم إلى قبيلتك!" ، "wcontroller.examine.explorer": "تقابل بعض السكان المحليين الذين يظهرون لك الأراضي المحيطة."، "wcontroller.examine.explorer.title": "Explorer"، "wcontroller.examine.tech": "لقد عثرت على بعض اللفائف القديمة التي تحتوي على سر {0}."، "wcontroller.examine.tech.title": "مخطوطات الحكمة"، "wcontroller.examine.stars": "الآثار القديمة مليئة بالموارد القيمة!"، "wcontroller.examine.stars.title": "الموارد"، "wcontroller.examine.population": "تلتقي بقبيلة بدوية تستقر في عاصمتك!"، "wcontroller.examine.population.title": "السكان"، "wcontroller.move.unto.unit": "لا يمكن الانتقال إلى وحدة أخرى" ، "wcontroller.building.upgrade": "تمت ترقية {0} إلى {1}!"، "wcontroller.building.upgrade.reward": "{0} تمت الترقية إلى المستوى {1} وزاد إنتاجه +1. يمكنك أيضًا اختيار مكافأة إضافية:"، "wcontroller.reward.workshop": "Workshop"، "wcontroller.reward.citywall": "جدار المدينة"، "wcontroller.reward.populationgrowth": "النمو السكاني"، "wcontroller.reward.park": "park"، "wcontroller.reward.explorer": "explorer"، "wcontroller.reward.resources": "resources"، "wcontroller.reward.bordergrowth": "نمو الحدود"، "wcontroller.reward.superunit": "super unit"، "wcontroller.unit.promotion": "اكتسبت وحدتك حالة المحاربين القدامى! زادت الصحة."، "wcontroller.unit.promotion.title": "تم ترقية الوحدة!"، "wcontroller.meet.tribe.leader": "قائدهم"، "wcontroller.meet.tribe.bigger.hostile": "يضحك على عذرك الضئيل لقبيلة."، "wcontroller.meet.tribe.bigger.fri friendly": "تحية لك ودودًا لكنها لا تولي اهتمامًا لمملك الصغير."، "wcontroller.meet.tribe.smaller.hostile": "يبدو عدائيًا بعض الشيء ويحييك بشكل مريب."، "wcontroller.meet.tribe.smaller.fri friendly": "انحناءات في رهبة حضارتك العظيمة."، "wcontroller.meet.tribe.tech.hostile": "يمكنك سرقة سر {0}!"، "wcontroller.meet.tribe.tech.fri friendly": "كبادرة حسن نية ، يشاركون سر {0}!" ، "wcontroller.meet.tribe.resource.hostile": "يمكنك سرقة بعض القطع الذهبية الثمينة!"، "wcontroller.meet.tribe.resource.fri friendly": "إنهم يقدمون لك هدية من الموارد القيمة!" ، "wcontroller.tribe.destroy": "لقد دمرت {0}!"، "wcontroller.tribe.destroy.title": "Blood!"، "wcontroller.tribe.destroy2": "تم تدمير {0} بواسطة {1}!"، "wcontroller.tribe.destroy.all": "لقد دمرت كل القبائل المعارضة ووحدت الساحة بأكملها تحت إمرتك!" ، "wcontroller.tribe.destroy.all.title": "الهيمنة!"، "wcontroller.city.disconnect": "تم قطع اتصال {0} بـ {1}" ، "wcontroller.city.disconnect.title": "فقد طريق التجارة!"، "wcontroller.turn.end": "إنهاء الدور ..."، "wcontroller.turn.saving": "جارٍ حفظ اللعبة على الخادم ..."، "wcontroller.turn.notification": "حان دورك {0} (دوران {1})" ، "wcontroller.turn.passed": "تم تمرير اللعبة إلى {0}"، "wcontroller.turn.passed.title": "Turn Complete"، "wcontroller.turn.error": "تعذر الوصول إلى خادم اللاعبين المتعددين. يرجى التأكد من اتصالك بالإنترنت والمحاولة مرة أخرى."، "wcontroller.turn.error.title": "خطأ في الشبكة" ، "wcontroller.turn.next": "التالي"، "wcontroller.load.error": "لا توجد لعبة محفوظة لاستئنافها ، ابدأ لعبة جديدة!"، "wcontroller.load.error.title": "لا توجد لعبة محفوظة" ، "wcontroller.load.notpartof": "أنت لست جزءًا من هذه اللعبة" ، "wcontroller.load.wait": "انتظر حتى يتم تنزيل هذه اللعبة بالكامل قبل فتحها."، "wcontroller.load.wait.title": "جاري التحميل ..."، "wcontroller.load.update": "تستخدم هذه اللعبة إصدارًا أحدث من Polytopia ، يلزمك التوجه إلى {0} وتحديثه قبل أن تتمكن من اللعب."، "wcontroller.load.update.title": "التحديث مطلوب"، "wcontroller.removingplayer": "إزالة اللاعب"، "wcontroller.not.your.turn": "عذرًا ، لم يحن دورك بعد!"، "technology.intro": "ستعمل هذه التقنية على تمكين ما يلي:"، "technology.build": "{0} يجعل من الممكن إنشاء {1}" ، "technology.movement": "الحركة"، "technology.movement.info": "تمكن الحركة في {0}" ، "technology.defence": "مكافأة الدفاع"، "technology.defence.info": "يمنح وحدتك قوة إضافية عند الدفاع بـ {0}"، "technology.task": "{0} ينشط {1} المهمة" ، "قابلية التكنولوجيا": "القدرة"، "technology.ability.info": "{1} يمنحك القدرة على {1}"، "technology.names.basic": "أساسي"، "technology.names.riding": "ركوب الخيل"، "technology.names.freespirit": "Free Spirit" ، "technology.names.chivalry": "الفروسية" ، "technology.names.roads": "Roads"، "technology.names.trade": "التجارة" ، "technology.names.organization": "Organization"، "technology.names.shields": "Shields"، "technology.names.farming": "الزراعة" ، "technology.names.construction": "Construction"، "technology.names.fishing": "صيد السمك" ، "technology.names.whaling": "صيد الحيتان"، "technology.names.aquatism": "المائية" ، "technology.names.sailing": "الإبحار" ، "technology.names.navigation": "تصفح" ، "technology.names.hunting": "صيد" ، "technology.names.forestry": "الغابات" ، "technology.names.mathematics": "Mathematics"، "technology.names.archery": "الرماية"، "technology.names.spiritualism": "الروحانية" ، "technology.names.climbing": "التسلق" ، "technology.names.meditation": "تأمل" ، "technology.names.philosophy": "الفلسفة" ، "technology.names.mining": "Mining"، "technology.names.smithery": "Smithery"، "technology.names.freediving": "الغوص الحر" ، "technology.names.spearing": "Spearing"، "technology.names.forestmagic": "سحر الغابة" ، "technology.names.watermagic": "Water Magic" ، "technology.names.frostwork": "Frostwork"، "technology.names.polarwarfare": "Polar Warfare" ، "technology.names.polarism": "Polarism"، "techview.info": "تزداد تكاليف التكنولوجيا لكل مدينة في إمبراطوريتك."، "techview.info.literacy": "معرفة القراءة والكتابة تقلل من سعر جميع التقنيات بنسبة 20٪!" ، "techview.locked": "(مغلق)" ، "techview.locked.info": "يجب عليك البحث {0} قبل أن تتمكن من تعلم {1}."، "techview.completed": "(مكتمل)" ، "techview.completed.info": "لقد بحثت بالفعل عن هذه التقنية."، "techview.expensive.info": "ليس لديك ما يكفي من النجوم لشراء هذا. انقر على" المنعطف التالي "للحصول على المزيد من النجوم."، "techview.research": "بحث" ، "action.info.attack": "قم بهجوم بهذه الوحدة. حدد الوحدة وانقر فوق أي من أهداف RED إذا كنت تريد الهجوم" ، "action.info.recover": "استرداد" ، "action.info.healothers": "شفاء الآخرين" ، "action.info.train": "قم بتدريب وحدة في هذه المدينة. يمكن استخدام الوحدات لاستكشاف العالم ومهاجمة الأعداء والدفاع عن مدينتك" ، "action.info.move": "انقل هذه الوحدة. حدد الوحدة وانقر فوق أي من الأهداف الزرقاء" ، "action.info.capture": "أسر" ، "action.info.capture2": "استحوذ على هذه المدينة. المدن تولد النجوم في كل منعطف يمكنك استخدامه لتطوير إمبراطوريتك" ، "action.info.destroy": "إتلاف" ، "action.info.disband": "Disband {0}"، "action.info.remove": "إزالة" ، "action.info.cityreward": "City Reward" ، "action.info.reward": "Reward"، "action.info.trip": "رحلة"، "action.info.meet": "Meet"، "action.info.promote": "ترقية" ، "action.info.examine": "فحص" ، "action.info.endturn": "قم بإنهاء هذا المنعطف للحصول على المزيد من الموارد وتحركات الوحدة. اضغط على زر" المنعطف التالي "" ، "action.info.stay": "Stay"، "action.info.healarea": "healArea" ، "action.info.freezearea": "منطقة التجميد" ، "action.info.breakice": "كسر الجليد" ، "action.info.do": "افعل {0} هنا" ، "action.info.build": "إنشاء {0} هنا" ، "action.info.reward.population": "سيؤدي ذلك إلى زيادة عدد سكان أقرب مدينة. عندما يصبح عدد السكان كبيرًا بما يكفي ، سترتفع المدينة وتنتج المزيد من الموارد" ، "action.info.reward.resources": "هذا سيمنحك مكافأة فورية {0} من الموارد" ، "action.info.research": "بحث {0}."، "actionbtn.upgrade": "ترقية إلى {0}"، "actionbtn.remove.building": "Building"، "actionbtn.remove.roads": "الطرق" ، "stringtools.typelist.and": "و" ، "topbar.score": "النتيجة"، "topbar.turn": "Turn"، "topbar.stars": "نجوم (+ {0})"، "Bottommenu.gamestats": "إحصائيات اللعبة" ، "Bottommenu.menu": "Menu"، "Bottommenu.nextturn": "المنعطف التالي" ، "Bottommenu.techtree": "شجرة التكنولوجيا" ، "endscreen.done": "تم"، "endscreen.ruledby": "محكومة بواسطة {0}"، "endscreen.army & region": "الجيش والأراضي"، "endscreen.monuments and المعابد": "الآثار والمعابد"، "endscreen.cities": "المدن"، "endscreen.science": "Science"، "endscreen.units": "{0} الوحدات ، {1} إمبراطورية البلاط" ، "endscreen.culture": "{0} monuments، {1} temples"، "endscreen.citiescount": "{0} Cities"، "endscreen.techscore": "{0} / {1} التقنيات التي تم البحث عنها"، "endscreen.bonus": "مكافأة الصعوبة"، "endscreen.finalscore": "النتيجة النهائية"، "endscreen.speedskills": "مهارات السرعة"، "endscreen.domination.win": "{0} / {1} turn"، "endscreen.domination.loss": "{0} turn"، "endscreen.battle": "مهارات المعركة"، "endscreen.battle.info": "فقدت {0} وحدة"، "endscreen.destroyed": "قبائل دمرت"، "endscreen.destroyed.info": "{0} / {1}"، "endscreen.rating": "تصنيف الصعوبة"، "endscreen.finalrating": "التصنيف النهائي"، "endscreen.nextstar.percent": "{0}٪ مطلوبة للنجمة التالية"، "endscreen.nextstar": "{0} مطلوب للنجمة التالية"، "endscreen.topresult": "أفضل نتيجة جديدة!"، "endscreen.topresult.title": "عظيم!"، "endscreen.personal": "شخصية جديدة عالية الجودة طوال الوقت!"، "endscreen.personal.title": "مدهش!"، "endscreen.showhiscore": "SHOW HISCORE"، "endscreen.winner": "{0} win!"، "endscreen.victory": "انتصار"، "endscreen.gameover": "انتهت اللعبة"، "highscore.title": "درجة عالية"، "highscore.today": "Today"، "highscore.thisweek": "هذا الأسبوع" ، "highscore.alltime": "كل الأوقات"، "highscore.alltribes": "جميع القبائل" ، "highscore.hiscore": "hiscore"، "highscore.loading": "جارٍ التحميل .."، "highscore.notavailable": "High Score not available."، "multiplayer.passplay": "Pass & Play"، "multiplayer.passplay.info": "تحدي أصدقائك في مباراة متعددة اللاعبين على نفس الجهاز. فقط قم بتمريرها إلى اللاعب التالي عندما ينتهي دورك."، "multiplayer.activegames": "الألعاب النشطة" ، "multiplayer.finishedgames": "Finished Games" ، "multiplayer.creategame": "إنشاء لعبة" ، "multiplayer.clipboard": "تمت إضافة Gamedata إلى الحافظة" ، "multiplayer.clipboard.title": "Voilà!"، "gamestats.gamemode": "وضع اللعبة: {0}"، "gamestats.bonus": "مكافأة الصعوبة: {0}"، "gamestats.speed": "مهارات السرعة"، "gamestats.speed.info": "{0} / {1} دورة"، "gamestats.battle": "مهارات القتال" ، "gamestats.battle.info": "{0} فاز ، {1} خسر"، "gamestatus.tribes": "القبائل دمرت" ، "gamestatus.difficulty": "تصنيف الصعوبة"، "gamestatus.capitals": "Capitals Owned"، "gamestatus.scores": "النتائج"، "gamestatus.ruled": "محكومة بواسطة {0}" ، "gamestatus.ruled.you": "تحكمها أنت" ، "gamestatus.unknown.tribe": "قبيلة غير معروفة"، "gamestatus.unknown.ruler": "مسطرة غير معروفة" ، "gamestatus.score": "النتيجة: {0} نقطة"، "gamestatus.city": "{0} city"، "gamestatus.cities": "{0} Cities"، "gamestatus.destroyed": "مدمر"، "gamestatus.tasks": "المهام {0} / {1}"، "gamestatus.tasks.complete": "مكتمل!" ، "settings.title": "إعدادات"، "settings.volume": "مستوى الصوت {0}"، "settings.soundeffects": "تأثيرات صوتية"، "settings.ambience": "Ambience"، "settings.tribemusic": "Tribe Music"، "settings.suggestions": "اقتراحات" ، "settings.info": "معلومات حول الإنشاء" ، "settings.confirm": "تأكيد الدور" ، "settings.saveexit": "EXIT TO MENU" ، "settings.on": "تشغيل" ، "settings.off": "OFF" ، "settings.language": "Language"، "settings.restartlanguage": "الرجاء إعادة تشغيل Polytopia لتبديل اللغة بالكامل" ، "settings.language.load.title": "لغة مخصصة (نسخة تجريبية)" ، "settings.language.load.info": "قم بتحميل ملف لغة Polytopia من خادم بعيد باستخدام https. هذه ميزة تجريبية وليست لأصحاب القلوب الضعيفة."، "settings.language.load.input": "عنوان url لملف اللغة:"، "settings.language.load.button": "LOAD" ، "throne.title": "THRONE ROOM"، "throne.reset": "إعادة تعيين النتائج"، "throne.playerinfo": "معلومات اللاعب"، "throne.playerid": "معرف اللاعب" ، "throne.clipboard": "تمت إضافة معرف المشغل إلى الحافظة"، "throne.clipboard.title": "Voilà!"، "throne.alias": "الاسم المستعار" ، "throne.played": "تم تشغيل الألعاب"، "throne.topscore": "أعلى نتيجة"، "throne.toprating": "Top Rating"، "throne.resetwarning": "هل أنت متأكد من أنك تريد إعادة تعيين جميع درجاتك وتقييماتك المحفوظة؟ لا يمكن التراجع عن هذا."، "throne.resetwarning.title": "إعادة تعيين النتائج"، "throne.reset.complete": "تم إعادة تعيين النتائج الآن" ، "throne.google.achievements": "الإنجازات"، "throne.google.signedin": "لقد قمت بتسجيل الدخول باستخدام Google Play" ، "throne.google.out": "تسجيل الخروج"، "throne.google.info": "(!) تحتاج إلى تسجيل الدخول باستخدام Google Play لحفظ بيانات اللعبة والنتائج العالية." ، "throne.google.in": "تسجيل الدخول" ، "consent.approval.title": "مرحبًا بكم في Polytopia!" ، "consent.approval.info": "لتحسين Polytopia بإحصائيات الاستخدام ولتخزين درجاتك العالية وإعداداتك ، نحتاج إلى موافقتك للوصول إلى بعض البيانات الشخصية. \ n يمكنك قراءة المزيد حول البيانات التي نجمعها في <u> < a href = '{0}'> سياسة الخصوصية </a> </u>. \ n (يمكنك إبطال موافقتك في أي وقت في 'Throne Room') "، "Accept.approve": "الموافقة"، "Accept.deny": "DENY"، "Accept.enabled": "البيانات الشخصية ممكّنة"، "consent.enabled.info": "أنت تسمح حاليًا لـ Polytopia بالوصول إلى بعض البيانات الشخصية لتحسين الخدمة وتخزين نتائجك العالية وما إلى ذلك. لمزيد من المعلومات ، اقرأ <u> <a href='{0}'> سياسة الخصوصية < / a> </u>. "، "Accept.disabled": "البيانات الشخصية معطلة"، "consent.disabled.info": "لحفظ البيانات الشخصية مثل النتائج العالية وإحصاءات الاستخدام ، نحتاج إلى موافقتك. لمزيد من المعلومات ، اقرأ <u> <a href='{0}'> سياسة الخصوصية </a> < / u>. "، "موافقة.إلغاء": "إبطال الموافقة" ، "onlineview.title": "MULTIPLAYER"، "onlineview.loadingservice": "خدمة التحميل" ، "onlineview.yourturn": "دورك" ، "onlineview.theirturn": "دورهم" ، "onlineview.reloading": "إعادة التحميل .."، "onlineview.reloading.release": "حرر لإعادة التحميل ..."، "onlineview.newgame": "لعبة جديدة" ، "onlineview.friends": "الأصدقاء"، "onlineview.profile": "الملف الشخصي" ، "onlineview.passplay": "Pass & Play"، "onlineview.refresh": "تحديث" ، "onlineview.profile.available": "الملف الشخصي متاح فقط عند الاتصال بالخادم."، "onlineview.friendlist.available": "قائمة الأصدقاء متاحة فقط عند الاتصال بالخادم."، "onlineview.servicedisabled": "تم تعطيل خادم اللاعبين المتعددين مؤقتًا ، يرجى المحاولة مرة أخرى لاحقًا. تأكد أيضًا من أنك تستخدم أحدث إصدار من Battle of Polytopia." ، "خطأ onlineview.load": "تعذر الاتصال بخادم اللاعبين المتعددين. تحقق من اتصالك بالإنترنت وحاول مرة أخرى."، "onlineview.uptodate": "تم تحديث جميع الألعاب" ، "onlineview.intro.fix": "مرحبًا {0}! \ n \ n للعب متعدد اللاعبين عبر الإنترنت ، هناك بعض الأشياء التي تحتاج إلى إصلاحها:"، "onlineview.intro.update": "متعددة اللاعبين عبر الإنترنت غير متاحة ، يرجى تحديث Polytopia إلى أحدث إصدار" ، "onlineview.gameinvitations": "دعوات الألعاب" ، "onlineview.nogames.intro": "مرحبًا {0}!"، "onlineview.nogames.start": "لنبدأ تشغيل بعض الألعاب عبر الإنترنت مع أصدقائك. انقر على" لعبة جديدة "لبدء واحدة."، "onlineview.nogames.first": "أول شيء تحتاجه هو التواصل مع بعض البشر الآخرين الذين يلعبون Polytopia. انقر على" الأصدقاء "لإضافتهم."، "onlineview.or": "أو" ، "onlineview.passplay.start": "ابدأ إحدى ألعاب Pass & Play المحلية من خلال النقر على" لعبة جديدة "، "onlineview.login.ios": "تسجيل الدخول إلى {0}"، "onlineview.login.ios.info": "يضمن استخدام {0} أن يكون لديك معرف لاعب فريد وثابت يحافظ على بياناتك آمنة عبر الأجهزة."، "onlineview.notifications": "تمكين الإخطارات"، "onlineview.notifications.info": "We use notifications to communicate the status of your ongoing multiplayer games.", "onlineview.purchase": "Purchase one Tribe", "onlineview.purchase.info": "Running an online multiplayer service costs real money and we rely solely on the kind support from players like you.", "onlineview.completed": "completed", "onlineview.required": "required", "onlineview.check": "check", "onlineview.fixit": "FIX IT", "onlineview.clipboard": "Game ID added to clipboard: {0}", "onlineview.clipboard.title": "Voilà!", "onlineview.game.join": "JOIN GAME", "onlineview.game.start": "START GAME", "onlineview.game.open": "OPEN", "onlineview.game.size": "Map Size", "onlineview.game.moreinfo": "More info", "onlineview.game.gameinfo": "Game Info", "onlineview.game.you": "You", "onlineview.game.resign": "RESIGN", "onlineview.game.decline": "DECLINE", "onlineview.game.delete": "DELETE", "onlineview.game.resign.title": "Resign", "onlineview.game.resign.info": "Are you sure you want to leave this game permanently?", "onlineview.game.old.title": "Old file version", "onlineview.game.old.info": "This game was created with an outdated version of the game. It can unfortunately not be loaded :( My suggestion is that you delete it and start a new one. Sorry for the inconvenience.", "onlineview.game.player.left": "{0} has left the game {1} and has been replaced by a bot.", "onlineview.game.player.kicked": "You have been removed from game {0}", "onlineview.game.player.invited": "You are invited to a new game, {0}", "firebaseservice.status.connecting": "Connecting to the Polytopia server...", "firebaseservice.status.loading": "Loading game data...", "firebaseservice.status.loading.count": "Loading game data, {0} left", "firebaseservice.status.loading.player": "Loading player data...", "firebaseservice.status.sync": "Sync chronometer..", "firebaseservice.status.sync.player": "Syncing your player data..", "firebaseservice.status.checking": "Checking for changes..", "firebaseservice.status.loading.messages": "Loading messages...", "firebaseservice.important.title": "Important information", "firebaseservice.important.deleted": "{0} has deleted you from multiplayer game {1}", "firebaseservice.error": "There was an error saving the game. Please try again.", "firebaseservice.invite": "You are invited to a new game, {0}", "firebaseservice.removed": "You have been removed from game {0}", "friendlist.title": "FRIEND LIST", "friendlist.new.caps": "ADD FRIEND", "friendlist.new.title": "Add a new friend", "friendlist.new.info": "Enter the player ID of your friend. (they can find it on this Friend page on their device)", "friendlist.new.button": "ADD", "friendlist.new.input": "Player ID:", "friendlist.new.myself.title": "Me, myself & I", "friendlist.new.myself.info": "Seems like you tried to add yourself as a friend. That might sound like a nice thing to do but it would add an existential layer to the game that we cannot handle at the moment. Please submit a player ID of someone else.", "friendlist.new.empty.title": "Emptiness", "friendlist.new.empty.info": "The player ID you entered was completely empty! You should not try to make friends with the void, it is a very lonely path.", "friendlist.new.exists.title": "Duplicate Player", "friendlist.new.exists.info": "You are already friends with {0}", "friendlist.new.looking.title": "Loading Player", "friendlist.new.looking.info": "Looking for player {0}", "friendlist.new.added.title": "Player Added", "friendlist.new.added.info": "Added player {0}", "friendlist.new.error.title": "Error loading player", "friendlist.new.error.info": "Could not find player with the ID {0}.", "friendlist.new.error2.title": "Player not found", "friendlist.new.error2.info": "Could not find any player with the ID {0}. Error: {1}", "friendlist.loading": "Loading friends...", "friendlist.error": "Error loading friends", "friendlist.friends": "Friends", "friendlist.friends.old": "Outdated friends", "friendlist.local": "Local Players", "friendlist.bots": "Bots", "friendlist.bot": "{0} Bot", "friendlist.player": "Player {0}", "friendlist.remove": "REMOVE", "friendlist.reload": "RELOAD", "friendlist.checking": "Checking friend status..", "friendlist.friend.update": "{0} needs to update to the latest version of Polytopia before you can invite them to new games.", "friendlist.friend.updated": "{0} is now on the new server", "friendlist.friend.notupdated": "{0} is still on the old server", "friendlist.removed.title": "Player Removed", "friendlist.removed.info": "Removed player {0}", "idconsole.playerid": "Your Player ID:", "idconsole.share": "Send this Player ID to anyone you want to play against. Tap it to copy.", "idconsole.clipboard": "Player ID {0} added to clipboard", "idconsole.clipboard.title": "Voilà!", "playerpickerview.title": "PICK PLAYERS", "playerpickerview.name": "Game Name", "playerpickerview.startgame": "START GAME", "playerpickerview.addplayer": "ADD PLAYER", "playerpickerview.size": "Map size: {0} tiles", "playerpickerview.mode": "Game mode: {0}", "playerpickerview.players": "Players ({0}/{1})", "playerpickerview.you": "{0} (you)", "playerpickerview.bot": "{0} ({1} bot)", "playerpickerview.human": "No human player", "playerpickerview.human.info": "There needs to be at least one human player to start a game", "gameitem.join": "Join this game or decline the invitation", "gameitem.join.wait": "Waiting for {0} to pick tribe", "gameitem.ready": "Ready to start!", "gameitem.ready.wait": "{0} can start the game", "gameitem.turn.your": "Your turn", "gameitem.turn.other": "Waiting for {0}", "gameitem.gameover": "This game is over, tap to see the end.", "gameitem.pick": "{0}, pick your tribe", "gameitem.start": "{0}, start the game", "gameitem.turn": "{0}, take your turn", "gameitem.ended": "This game is over.", "gameitem.pending": "Pending. Open and save to server.", "gameitem.timeup": "Time Up!", "gameitem.timeup.info": "Your time to make a move is up, do you want to resign?", "gameitem.timelimit": "Time limit", "gameitem.timelimit.info": "You have {0} to make your move, after that you will be removed from the game.", "gameitem.kick": "Duh!", "gameitem.kick.info": "Do you want to kick {0} out of from this game? A bot will take control of the tribe.", "gameitem.kick.action": "KICK", "gameitem.slow": "Come on..", "gameitem.slow.info": "{0} has {1} to make a move. Send a rude reminder to make {0} hurry up?", "gameitem.slow.action": "REMIND", "gameitem.timeleft": "Cool runnings", "gameitem.timeleft.info": "{0} still has {1} to make a move.", "gameitem.reload": "RELOAD", "gameitem.remind.max": "That's enough", "gameitem.remind.max.info": "Reminder already sent to {0}", "gameitem.remind.notification": "We are waiting for you to play in {0}. Come on!!", "gameitem.remind.notify": "Done", "gameitem.remind.notify.info": "Reminder sent to {0}", "mplayerstats.title": "PLAYER PROFILE", "mplayerstats.clear": "clear data", "mplayerstats.reload": "reload multiplayer data", "mplayerstats.multiplayer.faq": "MULTIPLAYER FAQ", "mplayerstats.alias": "Alias", "mplayerstats.friends": "nº of friends", "mplayerstats.games": "Games Played", "mplayerstats.server": "Server version", "mplayerstats.lost": "Feeling lost? Check the:", "credits.title": "ABOUT", "credits.subtitle": "Indie Delight", "credits.midjiwan": "The Battle of Polytopia is constantly being created by Midjiwan, a tiny indie game studio in Stockholm, Sweden.", "credits.learnmore1": "Want to know everything?", "credits.learnmore2": "Check the extensive Wikia database created by the Polytopia community:", "c
mariofv
UE Gladiators of the Forest is a spectator game in which two AI controlled gladiators fight each other to death.
BCMichaelBC
Ultimate Fighter is a platform fighter player game in which the user has the option of playing with a friend and fighting them to the death, or playing by themselves and refine their skills against the AI.
purnellbp
Rust Game Plugin: Free AI death commentary using Hugging Face Inference Providers
Metapyziks
AI Challenge tools for a game loosely based on Deadly Rooms of Death
rileynold
A little AI game I wrote in C. Play against a computer AI or match other computers against eachother to a battle to the death!
CaettoGattowski
Shooter Sample Game where i learnt: Shooter Game: - Character Animations - Guns and Shooting - Damage and death - Enemy AI with behavior trees - Sounds, particles and the HUD UI - Level Design
ArshPelia
Final Frontier is an action-adventure 2D platformer set in the confines of space and extra-terrestrial planets. The game will potentially consist of four levels consisting of 4 worlds which must be completed in consecutive order. Death results in the player restarting the level, and 3 accumulated deaths require the player to restart the entire game; these lives are restored upon completing a level/planet. Each run of the game requires the player to select a weapon, out of a select few, which they must use for the whole level or risk returning to ship to choose a new weapon at the cost of all enemies resurrecting (Schell 134). Resurrection is limited, for although you are an android, your ship can only construct new artificial limbs in proportion to the moon rocks you provide it with. Once again, returning to ship to invest in an additional life results in levels being repopulated with enemy AI. The design of this mechanic aims to constantly perpetuate an internal conflict within the player between the reward of investing accumulated resources against the risk of repeating the level.
Pabloquisi
I'm looking for programmers who understand java, c / c #, c ++ that can do a source correction of a game that I need to fix the source contains 15 to 22 bugs, I need those bugs, be corrected for me to be able to launch the game and so, continue working with us I will leave listed bugs that need to be fixed and I await response from a professional, who accepts the work. Download from source: http://www.4shared.com/rar/U2Y5lhDkce/Server_B_pvp8x8.html Download the client: http://www.4shared.com/rar/Y7P27qGMba/Client_Project_Brazil.html List of bugs, recognized Fitur Sistem: Title System Mission Card System Tutorial Mode Destruction Mode Fix EXP (dapat Exp setelah mengakhiri permainan) Fix Credist / Point (dapat Credist / Point setelah pertandingan berakhir) Fix Fix Manual add weapon form database Fix Score Board Fix Player Kill Death in Score Board Fix AI MODE (UDP Connection) Fix New MAP Support UDP Server Connection Fix Server Chanel Fix Player Details Fix Configurations Fix Message System Fix Character Dino (can use dino character) Fix Item Consumption Fix Durable Item Fix Lan (bisa main LAN) required programs 1. Java SE Development Kit 7u67: Download (Pilih sesuai Bit OS kalian) (32-bit ata 64-bit) 2. Postgresql 1.9.3: (Pilih sesuai Bit OS kalian) (32-bit ata 64-bit) 3. Navicat Premium Enterprise + Keygen 4. Eclipse Standard Kepler S2 5. Project Blackout Server [Fix] 6. Project Blackout Client 7. Untuk membuat code hash Category: IT & Programming Subcategory: Desktop Applications What is the scope of the project ?: Mean change Is this a project or a job position ?: A project I currently have: I have a general idea Experience in this type of project: Yes (I have already managed this type of project) Availability required: As required API Integration: Social Media (Facebook, Twitter, etc.), Payment Processor (Paypal, Stripe, etc.), Cloud Storage (Dropbox, Google Drive, Platforms required: Windows
foriver4725
AI倫理デスゲーム
tk230378
AI倫理デスゲーム
Ryuto1991
Fork workspace for AI一本デス大喜利改造
bbbbbbbIniad8
AIデスゲームでキャラを追加する簡易Cプログラム。読み込んだJSONファイルを基に、プログラムが自動でゲームデータのソースコードを編集してキャラを追加します。(最低限の変更しかしていませんので、画像等は各自で用意してください)
buildr-daemon
A game of death for ai agents
tashifkhan
A game inspired by death by AI and Psych
HarrisNatH
A game where a player pit against an AI in a death game
andressolve
Death at the Velvet Lounge — AI-powered murder mystery interrogation game
TristanD0703
AI Models fight to the death in a game of monopoly
coshx
Simple Utility AI Bot for the Game of Life and Death
KhangHungBinh
A death match Tank game with simple control, AI, terrain in Unreal 4
AI bot for Conway's Game of Life and Death on riddle.io
SylvainTran
STILL IN DEVELOPMENT. Weird Reality Show, Staff Scheduling & AI Journalist Interviewing UI Game About Death
calexlee
An AI text-based game where you reset on death and try to live the day
14ROVI
AI learns how to play a death fight (battle royale) game overtime by playing against itself and evolving the best scoring AI.
PadreFirst
Telegram bot for solo DnD adventures with AI Game Master. Character/world gen, tactical combat, death saves, Mini App dashboard.
MW-GC
A nearly completely AI generated game about making a 'Rube Goldberg' machine that must end with the death of the NPC.
rahma-mohmed
A 2D platformer game built with Godot Engine 4, featuring smooth character controls, enemy AI (chasing & attacking), animations, and basic game mechanics such as jumping, running, death & respawn