- // ==UserScript==
- // @name C&C:TA CnC-Eco
- // @version 1.2.0
- // @namespace http://cnc-eco.herokuapp.com
- // @homepage http://cnc-eco.herokuapp.com
- // @description Sammelt Informationen ueber Basenausbau der Allianzmitglieder (basierend auf Skripte / Routinen von neobsen, JimBeamJD, KRS_L, F.D, und Dooki)
- // @author F.D, J.L.
- // @include http*://*.alliances.commandandconquer.com/*/index.aspx*
- // @icon https://cnc-eco.herokuapp.com/favicon.ico
- // @copyright 2018, J.L.
- // @grant GM_setValue
- // @grant GM_getValue
- // @grant GM_registerMenuCommand
- // @grant GM_xmlhttpRequest
- // @grant GM_updatingEnabled
- // @grant unsafeWindow
- // @license CC BY-NC-SA 4.0 - http://creativecommons.org/licenses/by-nc-sa/4.0/
- // ==/UserScript==
-
- (function() {
- var CncEco_mainFunction = function() {
- function Y() {
- var l = {};
- Array.isarray ||
- (Array.isarray = function(c) {
- return c instanceof Array ? !0 : !1;
- });
- Object.isobj ||
- (Object.isobj = function(c) {
- return c instanceof Object && !0 !== c instanceof Array ? !0 : !1;
- });
- JSON.isjson ||
- (JSON.isjson = function(c) {
- try {
- return JSON.parse(c), 'parse';
- } catch (f) {
- try {
- return JSON.stringify(c), 'stringify';
- } catch (b) {
- return !1;
- }
- }
- });
- qx.Class.define('CncEcomain', {
- type: 'singleton',
- extend: qx.core.Object,
- construct: function() {
- this.mainMenuContent = new qx.ui.menu.Menu();
- this.mainMenuButton = new qx.ui.form.MenuButton(
- 'CncEco',
- null,
- this.mainMenuContent
- );
- this.mainMenuButton.set({
- width: 70,
- appearance: 'button-bar-right',
- toolTipText: 'List of MemberStatsCommands',
- });
- this.mainMenuButton.addListener(
- 'execute',
- function(b) {
- this.mainMenuContent.open();
- },
- this
- );
- for (
- var c = qx.core.Init.getApplication().getUIItem(
- ClientLib.Data.Missions.PATH.BAR_MENU
- ),
- f = c.getChildren()[1].getChildren(),
- b = f.length - 1;
- 0 <= b;
- b--
- )
- 'function' === typeof f[b].setAppearance &&
- 'button-bar-right' == f[b].getAppearance() &&
- f[b].setAppearance('button-bar-center');
- c.getChildren()[1].add(this.mainMenuButton);
- c.getChildren()[0].setScale(!0);
- c.getChildren()[0].setWidth(834);
- },
- members: {
- mainMenuContent: null,
- mainMenuButton: null,
- poiwindow: null,
- poiInfoWindow: null,
- AddMainMenu: function(c, f, b) {
- null === c
- ? h('CncEco.AddSubMenu: name empty')
- : null === f
- ? h('CncEco.AddMainMenu: command empty')
- : (null !== b
- ? ((b = new qx.ui.command.Command(b)),
- b.addListener('execute', f, this),
- (c = new qx.ui.menu.Button(c)),
- c.setCommand(b))
- : ((c = new qx.ui.menu.Button(c)),
- c.addListener('execute', f)),
- this.mainMenuContent.add(c));
- },
- AddSubMainMenu: function(c) {
- if (null === c) h('Mest.AddSubMainMenu: name empty');
- else {
- var f = new qx.ui.menu.Menu();
- c = new qx.ui.menu.Button(c, null, null, f);
- this.mainMenuContent.add(c);
- return f;
- }
- },
- AddSubMenu: function(c, f, b, d) {
- if (null === f) h('CncEco.AddSubMenu: name empty');
- else if (null === b) h('CncEco.AddSubMenu: command empty');
- else if (null === c) h('CncEco.AddSubMenu: subMenu empty');
- else {
- if (null !== d) {
- var g = new qx.ui.command.Command(d);
- g.addListener('execute', b, this);
- d = new qx.ui.menu.Button(f);
- d.setCommand(g);
- } else (d = new qx.ui.menu.Button(f)), d.addListener('execute', b);
- c.add(d);
- c = new qx.ui.menu.Menu();
- new qx.ui.menu.Button(f, null, null, c);
- return c;
- }
- },
- initialize: function() {
- try {
- var c = ClientLib.Data.MainData.GetInstance();
- c.get_Player().get_Name();
- c.get_Server().get_WorldId();
- c.get_Alliance().get_Id();
- addEventListener('keyup', this.onKey, !1);
- h('init done');
- CncEcomain.getInstance().doAtLogin();
- CncEcomain.getInstance().doAfter();
- Array.isArray ||
- (Array.isArray = function(c) {
- return (
- '[object Array]' === Object.prototype.toString.call(c)
- );
- });
- Object.isObj ||
- (Object.isObj = function(c) {
- return (
- '[object Object]' === Object.prototype.toString.call(c)
- );
- });
- } catch (f) {
- h(f);
- }
- },
- onKey: function(c) {
- console.log(c);
- },
- doMenu: function() {
- var c = CncEcomain.getInstance(),
- f; //= c.AddSubMainMenu('MainOptions');
- c.AddMainMenu('open CnCEco', function() {
- CncEcomain.getInstance().openurl();
- });
- // c.AddMainMenu('send reports', function() {
- // CncEcoReports.getInstance().onAllReportsLoaded();
- // });
- c.AddMainMenu('add player', function() {
- CncEcomain.getInstance().getToken();
- });
- c.AddMainMenu(
- 'update data',
- function() {
- CncEcomain.getInstance().doAfter();
- },
- 'Alt+y'
- );
- !0 ===
- ClientLib.Data.MainData.GetInstance()
- .get_Alliance()
- .get_IsAdmin() &&
- false && // todo remove false
- ((f = c.AddSubMainMenu('State of War')),
- c.AddSubMenu(
- f,
- 'set State of War',
- function() {
- CncEcomain.getInstance().remoteRequest('stateofwar');
- },
- 'Alt+p'
- ),
- c.AddSubMenu(
- f,
- 'unset State of War',
- function() {
- CncEcomain.getInstance().remoteRequest('unsetstateofwar');
- },
- 'Alt+o'
- ));
- },
- doAtLogin: function() {
- this.checkWar();
- this.doMenu();
- this.isPoiMinister();
- },
- doAfter: function() {
- CncEcomain.getInstance().checkVersion();
- CncEcomain.getInstance().PlayerUpdate();
- },
- checkWar: function() {
- CncEcomain.getInstance().getIsWar();
- },
- checkVersion: function() {
- CncEcomain.getInstance().remoteRequest('version');
- },
- openurl: function() {
- CncEcomain.getInstance().remoteRequest('new_check');
- },
- getToken() {
- CncEcomain.getInstance().remoteRequest('get_token');
- },
- askOtherButton: function() {
- CncEcomain.getInstance().remoteRequest('button_check');
- },
- setSubstitution: function(c, f) {
- CncEcomain.getInstance().substitutionXhr('set', f, c);
- },
- removeSubstitution: function(c, f) {
- CncEcomain.getInstance().substitutionXhr('unset', c, f);
- },
- poiInfo: function() {
- CncEcomain.getInstance()
- .getWindow()
- .open();
- this.getWindow().push('Create PoiInfo\nplease wait\n\n');
- CncEcomain.getInstance().getPoiInfo();
- },
- isPoiMinister: function() {
- // h('check if poiminister i');
- // CncEcomain.getInstance().remoteRequest('poiminister');
- },
- substitutionXhr: function(c, f, b) {
- var d = ClientLib.Data.MainData.GetInstance()
- .get_Server()
- .get_WorldId(),
- g = ClientLib.Net.CommunicationManager.GetInstance().get_InstanceId(),
- n = new qx.bom.request.Xhr();
- 'set' == c &&
- ((n.onload = function() {
- '0' == n.responseText && h('WarSubstitution is set!');
- '1' == n.responseText && h('WarSubstitution is Error!');
- if ('2' == n.responseText) {
- n.abort();
- h('substitution ist nicht richtig gesetzt');
- var c = ClientLib.Data.MainData.GetInstance()
- .get_PlayerSubstitution()
- .getOutgoing();
- c.n !== b &&
- (h('Substitution to ' + c.n + ' delet'),
- (c =
- '{"session":"' +
- g +
- '","id":"' +
- c.i +
- '","pid":"' +
- c.p1 +
- '"}'),
- CncEcomain.getInstance().removeSubstitution(c, b));
- }
- '3' == n.responseText &&
- h('WarSubstitution Account nicht auf dieser Welt!');
- '4' == n.responseText &&
- h(
- 'WarSubstitution kann nicht auf eigenen account gesetzt werden!'
- );
- }),
- n.open(
- 'POST',
- '/' +
- d +
- '/Presentation/Service.svc/ajaxEndpoint/SubstitutionCreateReq'
- ),
- n.setRequestHeader('Content-Type', 'application/json'),
- n.send(f));
- 'unset' == c &&
- ((n.onload = function() {
- if ('0' == n.responseText) {
- var c =
- '{"session":"' +
- ClientLib.Net.CommunicationManager.GetInstance().get_InstanceId() +
- '","name":"' +
- b +
- '"}';
- CncEcomain.getInstance().setSubstitution(b, c);
- }
- }),
- n.open(
- 'POST',
- '/' +
- d +
- '/Presentation/Service.svc/ajaxEndpoint/SubstitutionCancelReq'
- ),
- n.setRequestHeader('Content-Type', 'application/json'),
- n.send(f));
- },
- getIsWar: function() {
- h('Check if is War');
- 'true' !== B.get_IsSubstituteLogin()
- ? (h('Player is not substitutionLogin'),
- CncEcomain.getInstance().remoteRequest('war'))
- : h('Player is substitutionLogin');
- },
- PlayerUpdate: function() {
- var c = ClientLib.Data.MainData.GetInstance();
- c.get_Player().get_Name();
- var f = c.get_Alliance(),
- b = c.get_Player().get_Id();
- c.get_Server();
- ClientLib.Net.CommunicationManager.GetInstance().get_InstanceId();
- f.get_OwnedPOIs();
- ClientLib.Net.CommunicationManager.GetInstance().SendSimpleCommand(
- 'GetPublicPlayerInfo',
- { id: b },
- phe.cnc.Util.createEventDelegate(
- ClientLib.Net.CommandResult,
- this,
- Z
- ),
- null
- );
- },
- remoteRequest: function(c, f) {
- h('remoteRequest: ' + c);
- var b = ClientLib.Data.MainData.GetInstance();
- var d = b.get_Player().get_Name(),
- g = b.get_Alliance(),
- n = b.get_Player().get_Id(),
- s = b.get_Player().get_IsSubstituteLogin(),
- q = b.get_Server(),
- k = ClientLib.Net.CommunicationManager.GetInstance().get_InstanceId(),
- u = g.get_OwnedPOIs(),
- p = new qx.io.remote.Request(
- 'https://cnc-eco.herokuapp.com/api/v1/ingameData',
- 'POST',
- 'text/html'
- );
- p.setTimeout(3e3);
- p.setProhibitCaching(!1);
- p.setRequestHeader('Content-Type', 'text/html');
- p.setTimeout('3600000');
- p.setResponseType('text/html');
- p._ontimeout = function() {
- p.abort();
- h('req abort');
- };
- 'version' == c &&
- (h('version check'),
- p.setData('version'),
- p.setParameter('version', '4.7.5'),
- p.addListener('completed', function(b) {
- 'version' === b.getContent()
- ? (h('UPDATE is vorhanden'),
- CncEcomain.getInstance().UpdateWindow())
- : h('Kein Script Update');
- }),
- p.send());
- 'update' == c &&
- (p.setData('UPDATE'),
- p.setParameter('update', '1'),
- console.log('PlayerInfoData= null ______________________'),
- CncEcomain.getInstance().Playerinfo(p, f),
- p.addListener('completed', function(b) {
- h('PlayerDataUpdate');
- 'UPDATED' === b.getContent() && h('PlayerData Up To Date');
- }));
- 'new_check' == c &&
- (p.setData('new_check'),
- p.setParameter('new_check', d),
- p.addListener('completed', function(b) {
- '' === b.getContent()
- ? (h('new Account:: ' + b.getContent()),
- CncEcomain.getInstance().winOpen('', d))
- : (h('NOT new :: ' + b.getContent()),
- CncEcomain.getInstance().winOpen('', ''));
- }),
- p.send());
- 'get_token' == c &&
- (s
- ? CncEcomain.getInstance().winOpen(
- '',
- 'error=You cannot add account from substitutions'
- )
- : p.setData('get_token', d),
- p.setParameter('get_token', d),
- p.addListener('completed', function(b) {
- const content = b.getContent();
- h('content from get_token');
- h(content);
- // content ? CncEcomain.getInstance().winOpen('', content) : h('token missing - add your account ingame first')
- content
- ? CncEcomain.getInstance().AuthWindow(content)
- : h('token missing - add your account ingame first');
- }),
- p.send());
- 'war' == c &&
- (p.setData('WAR'),
- p.setParameter('name', d),
- p.setParameter('alli', g.get_Id()),
- p.setParameter('world', q.get_WorldId()),
- p.addListener('completed', function(b) {
- var c =
- '{"session":"' + k + '","name":"' + b.getContent() + '"}';
- if (
- '' !== b.getContent() &&
- d !== b.getContent() &&
- !0 !==
- ClientLib.Data.MainData.GetInstance()
- .get_Player()
- .get_IsSubstituteLogin()
- ) {
- var f = ClientLib.Data.MainData.GetInstance()
- .get_PlayerSubstitution()
- .getOutgoing();
- null !== f
- ? (h(f),
- f.n !== b.getContent() &&
- CncEcomain.getInstance().CncEcoUvWindow(
- b.getContent(),
- c
- ))
- : CncEcomain.getInstance().CncEcoUvWindow(
- b.getContent(),
- c
- );
- } else h('No War');
- }),
- p.send());
- 'stateofwar' == c &&
- (p.setData('stateofwar'),
- p.setParameter('stateofwar', d),
- p.setParameter('token', n),
- p.setParameter('alli', g.get_Id()),
- p.setParameter('world', q.get_WorldId()),
- p.addListener('completed', function(b) {
- 'stateofwar' === b.getContent()
- ? (h('State of War is set'),
- CncEcomain.getInstance().stateofwarwin(d, 'set'))
- : h('State of War ERROR :: ' + b.getContent());
- }),
- (b = ClientLib.Data.MainData.GetInstance()
- .get_Alliance()
- .get_IsAdmin()),
- !0 === b ? p.send() : h('State of War ERROR :: You are no admin!'));
- 'unsetstateofwar' == c &&
- (p.setData('unsetstateofwar'),
- p.setParameter('unsetstateofwar', d),
- p.setParameter('token', n),
- p.setParameter('alli', g.get_Id()),
- p.setParameter('world', q.get_WorldId()),
- p.addListener('completed', function(b) {
- 'unsetstateofwar' === b.getContent()
- ? (h('State of War is unset'),
- CncEcomain.getInstance().stateofwarwin(d, 'unset'))
- : h('State of War ERROR :: ' + b.getContent());
- }),
- (b = ClientLib.Data.MainData.GetInstance()
- .get_Alliance()
- .get_IsAdmin()),
- !0 === b ? p.send() : h('State of War ERROR :: You are no admin!'));
- 'poiminister' == c &&
- (p.setData('poiminister'),
- p.setParameter('poiminister', d),
- p.setParameter('token', n),
- p.setParameter('alli', g.get_Id()),
- p.setParameter('world', q.get_WorldId()),
- p.addListener('completed', function(b) {
- b.getContent() === d
- ? '0' < u.length
- ? (h('you are PoiMinister'),
- CncEcomain.getInstance().AddMainMenu(
- 'PoiInfo',
- function() {
- CncEcomain.getInstance().poiInfo();
- },
- 'Alt+x'
- ))
- : h("you are PoiMinister but alli have 0 Poi's ")
- : h('you are not PoiMinister :: ' + b.getContent());
- }),
- p.send());
- },
- Playerinfo: function(c, f) {
- qx.core.Init.getApplication()
- .getBackgroundArea()
- .closeCityInfo();
- var b = ClientLib.Data.MainData.GetInstance();
- var d = b.get_Alliance().get_MemberDataAsArray();
- var g = b
- .get_Server()
- .get_Name()
- .trim(),
- n = b.get_Server().get_WorldId(),
- q = b.get_Cities(),
- k = q.get_CurrentOwnCity().get_AllianceName(),
- q = q.get_CurrentOwnCity().get_AllianceId();
- c.setFormField('version', '4.7.5');
- c.setFormField('worldId', n);
- c.setFormField('serverName', g);
- c.setFormField('allianceId', q);
- c.setFormField('allianceName', k);
- c.setFormField('count', d.length);
- for (g = 0; g < d.length; g++)
- (n = d[g].Id),
- (k = d[g].Name),
- (q = d[g].RoleName),
- c.setFormField('playerId' + g, n),
- c.setFormField('name' + g, k),
- c.setFormField('ro' + g, q);
- d = b.get_Cities();
- n = d.get_CurrentOwnCity().get_PlayerId();
- c.setFormField('currentplayerId', n);
- n = ClientLib.Data.MainData.GetInstance().get_Player().accountId;
- c.setFormField('accountId', n);
- n = ClientLib.Data.MainData.GetInstance()
- .get_Alliance()
- .get_FirstLeaders().l;
- k = ClientLib.Data.MainData.GetInstance()
- .get_Alliance()
- .get_SecondLeaders().l;
- c.setFormField('cic', n);
- c.setFormField('sc', k);
- n = d.get_CurrentOwnCity().get_PlayerName();
- c.setFormField('currentplayerName', n);
- n = f.c.length;
- c.setFormField('basecount', n);
- c.setFormField('fraction', f.f);
- c.setFormField('basekills', f.bd);
- c.setFormField('pvekills', f.bde);
- c.setFormField('pvpkills', f.bd - f.bde);
- c.setFormField('points', f.p);
- c.setFormField('rank', f.r);
- c.setFormField('hascode', f.hchc);
- c.setFormField('maxcp', B.GetCommandPointMaxStorage());
- c.setFormField('actcp', Math.round(B.GetCommandPointCount()));
- c.setFormField('funds', b.get_Inventory().get_PlayerFunds());
- c.setFormField('schirme', Math.round(B.GetSupplyPointCount()));
- c.setFormField('RPoints', B.get_ResearchPoints());
- c.setFormField('CreditsCount', Math.round(B.GetCreditsCount()));
- b = ClientLib.Data.MainData.GetInstance().get_Player();
- k = b.get_Faction();
- k = ClientLib.Base.Tech.GetTechIdFromTechNameAndFaction(
- ClientLib.Base.ETechName.Research_BaseFound,
- k
- );
- k = b
- .get_PlayerResearch()
- .GetResearchItemFomMdbId(k)
- .get_NextLevelInfo_Obj();
- b = [];
- for (g in k.rr) 0 < k.rr[g].t && (b[k.rr[g].t] = k.rr[g].c);
- g = b[ClientLib.Base.EResourceType.Gold];
- b = b[ClientLib.Base.EResourceType.ResearchPoints];
- k = B.get_Credits();
- k =
- (k.Delta + k.ExtraBonusDelta) *
- ClientLib.Data.MainData.GetInstance()
- .get_Time()
- .get_StepsPerHour();
- g = (g - B.GetCreditsCount()) / k;
- c.setFormField('timeTOmcv', Math.round(3600 * g));
- c.setFormField('rpNeeded', b);
- for (g = 0; g < n; g++) {
- var k = d.GetCity(f.c[g].i),
- b = [];
- b.Id = f.c[g].i;
- b.Na = k.get_Name();
- b.Po = f.c[g].p;
- b.Lvl = k.get_LvlBase().toFixed(2);
- b.Off = k.get_LvlOffense().toFixed(2);
- b.Def = k.get_LvlDefense().toFixed(2);
- b.PosX = f.c[g].x;
- b.PosY = f.c[g].y;
- q = k.get_CityUnitsData();
- b.repInf =
- 0 < b.Off
- ? q.GetRepairTimeFromEUnitGroup(
- ClientLib.Data.EUnitGroup.Infantry,
- !1
- )
- : 0;
- b.repVeh =
- 0 < b.Off
- ? q.GetRepairTimeFromEUnitGroup(
- ClientLib.Data.EUnitGroup.Vehicle,
- !1
- )
- : 0;
- b.repAir =
- 0 < b.Off
- ? q.GetRepairTimeFromEUnitGroup(
- ClientLib.Data.EUnitGroup.Aircraft,
- !1
- )
- : 0;
- b.maxRep =
- 0 < b.Off
- ? k.GetResourceMaxStorage(
- ClientLib.Base.EResourceType.RepairChargeInf
- )
- : 0;
- b.availRep =
- 0 < b.Off
- ? ClientLib.Base.Resource.GetResourceCount(
- k
- .get_RepairOffenseResources()
- .get_RepairChargeOffense()
- )
- : 0;
- var u = k.get_SupportWeapon();
- b.supWp = null !== u ? u.n : '';
- u = k.get_SupportData();
- b.SL = null !== u ? u.get_Level() : 0;
- q = k.get_CityBuildingsData();
- u = q.GetUniqueBuildingByTechName(
- ClientLib.Base.ETechName.Construction_Yard
- );
- b.CY = null !== u ? u.get_CurrentLevel() : 0;
- u = q.GetUniqueBuildingByTechName(
- ClientLib.Base.ETechName.Defense_Facility
- );
- b.DF = null !== u ? u.get_CurrentLevel() : 0;
- u = q.GetUniqueBuildingByTechName(
- ClientLib.Base.ETechName.Defense_HQ
- );
- b.DHQ = null !== u ? u.get_CurrentLevel() : 0;
- b.PP = Math.round(
- k.GetResourceGrowPerHour(
- ClientLib.Base.EResourceType.Power,
- !1,
- !1
- )
- );
- b.PBP = Math.round(
- k.GetResourceBonusGrowPerHour(
- ClientLib.Base.EResourceType.Power
- )
- );
- b.PAB = ClientLib.Data.MainData.GetInstance()
- .get_Alliance()
- .GetPOIBonusFromResourceType(
- ClientLib.Base.EResourceType.Power
- );
- b.CP = Math.round(
- ClientLib.Base.Resource.GetResourceGrowPerHour(
- k.get_CityCreditsProduction(),
- !1
- )
- );
- b.CBP = Math.round(
- ClientLib.Base.Resource.GetResourceBonusGrowPerHour(
- k.get_CityCreditsProduction(),
- !1
- )
- );
- b.Tall = Math.round(
- k.GetResourceGrowPerHour(
- ClientLib.Base.EResourceType.Tiberium,
- !1,
- !1
- ) +
- k.GetResourceBonusGrowPerHour(
- ClientLib.Base.EResourceType.Tiberium
- ) +
- ClientLib.Data.MainData.GetInstance()
- .get_Alliance()
- .GetPOIBonusFromResourceType(
- ClientLib.Base.EResourceType.Tiberium
- )
- );
- b.Call = Math.round(
- k.GetResourceGrowPerHour(
- ClientLib.Base.EResourceType.Crystal,
- !1,
- !1
- ) +
- k.GetResourceBonusGrowPerHour(
- ClientLib.Base.EResourceType.Crystal
- ) +
- ClientLib.Data.MainData.GetInstance()
- .get_Alliance()
- .GetPOIBonusFromResourceType(
- ClientLib.Base.EResourceType.Crystal
- )
- );
- b.PPall = b.PP + b.PBP + b.PAB;
- b.CPall = b.CP + b.CBP;
- c.setFormField('basename' + g, b.Na);
- c.setFormField('baseid' + g, b.Id);
- c.setFormField('punkte' + g, b.Po);
- c.setFormField('level' + g, b.Lvl);
- c.setFormField('off' + g, b.Off);
- c.setFormField('def' + g, b.Def);
- c.setFormField('repinf' + g, b.repInf);
- c.setFormField('repveh' + g, b.repVeh);
- c.setFormField('repair' + g, b.repAir);
- c.setFormField('repmax' + g, b.maxRep);
- c.setFormField('availrep' + g, b.availRep);
- c.setFormField('suptype' + g, b.supWp);
- c.setFormField('suplvl' + g, b.SL);
- c.setFormField('cylvl' + g, b.CY);
- c.setFormField('dflvl' + g, b.DF);
- c.setFormField('dfhqlvl' + g, b.DHQ);
- c.setFormField('power' + g, b.PPall);
- c.setFormField('tib' + g, b.Tall);
- c.setFormField('cris' + g, b.Call);
- c.setFormField('cash' + g, b.CPall);
- c.setFormField('x' + g, b.PosX);
- c.setFormField('y' + g, b.PosY);
- V(b.Id, g, c);
- }
- c.send();
- },
- stateofwarwin: function(c, f) {
- var b = new qx.ui.window.Window('Alliance on war');
- if ('set' == f) {
- var d = 'You "' + c + '" have set State of War';
- var g = 'Set State of War';
- }
- 'unset' == f &&
- ((d = 'You "' + c + '" have delet State of War'),
- (g = 'UnSet State of War'));
- b.set({
- caption: g,
- icon: 'webfrontend/ui/common/icon_moral_alert_red.png',
- layout: new qx.ui.layout.HBox(4),
- width: 250,
- height: 75,
- contentPaddingTop: 0,
- contentPaddingBottom: 6,
- contentPaddingRight: 6,
- contentPaddingLeft: 6,
- showMaximize: !1,
- showMinimize: !1,
- allowMaximize: !1,
- allowMinimize: !1,
- resizable: !1,
- visibility: 'visible',
- textColor: '#bfbfbf',
- });
- b.setPadding(10);
- b.setLayout(new qx.ui.layout.VBox(10));
- g = new qx.ui.container.Composite(
- new qx.ui.layout.VBox(4).set({ alignX: 'left' })
- );
- g.add(new qx.ui.basic.Label(d));
- d = new qx.ui.container.Composite(
- new qx.ui.layout.VBox(1).set({ alignX: 'center' })
- );
- var n = new qx.ui.form.Button('close');
- n.set({
- toolTipText: 'close',
- width: 70,
- height: 20,
- maxWidth: 200,
- maxHeight: 32,
- center: !0,
- rich: !0,
- });
- d.add(n);
- n.addListener(
- 'execute',
- function(c) {
- b.close();
- },
- this
- );
- b.add(g);
- b.add(d);
- b.center();
- b.open();
- },
- CncEcoUvWindow: function(c, f) {
- var b = new qx.ui.window.Window('Alliance on war'),
- d =
- 'Your commander has declared war status!|It was sent a substitution to:|' +
- c;
- b.set({
- caption: 'Alliance on war',
- icon: 'webfrontend/ui/common/icon_moral_alert_red.png',
- layout: new qx.ui.layout.HBox(4),
- width: 300,
- height: 150,
- contentPaddingTop: 0,
- contentPaddingBottom: 6,
- contentPaddingRight: 6,
- contentPaddingLeft: 6,
- showMaximize: !1,
- showMinimize: !1,
- allowMaximize: !1,
- allowMinimize: !1,
- resizable: !1,
- visibility: 'visible',
- textColor: '#bfbfbf',
- });
- b.setPadding(10);
- b.setLayout(new qx.ui.layout.VBox(10));
- var g = new qx.ui.container.Composite(
- new qx.ui.layout.VBox(4).set({ alignX: 'left' })
- ),
- n = new qx.ui.container.Composite(
- new qx.ui.layout.VBox(1).set({ alignX: 'center' })
- ),
- q = new qx.ui.form.Button('send Substitution'),
- k = new qx.ui.form.Button('abort');
- q.set({
- toolTipText: 'send Substitution',
- width: 120,
- height: 20,
- maxWidth: 200,
- maxHeight: 32,
- center: !0,
- rich: !0,
- });
- k.set({
- toolTipText: 'dont send substitution',
- width: 120,
- height: 20,
- maxWidth: 200,
- maxHeight: 32,
- center: !0,
- rich: !0,
- });
- n.add(q);
- n.add(k);
- q.addListener(
- 'execute',
- function(d) {
- b.close();
- CncEcomain.getInstance().substitutionXhr('set', f, c);
- },
- this
- );
- k.addListener(
- 'execute',
- function(c) {
- b.close();
- },
- this
- );
- d = d.split('|');
- for (i = 0; '3' > i; i++) g.add(new qx.ui.basic.Label(d[i]));
- b.add(g);
- b.add(n);
- b.center();
- b.open();
- },
- UpdateWindow: function() {
- var c = new qx.ui.window.Window('CnCEco Update!');
- c.set({
- caption: 'CnCEco Update!',
- icon: 'webfrontend/ui/common/icon_moral_alert_red.png',
- layout: new qx.ui.layout.HBox(4),
- width: 450,
- height: 170,
- contentPaddingTop: 0,
- contentPaddingBottom: 6,
- contentPaddingRight: 6,
- contentPaddingLeft: 6,
- showMaximize: !1,
- showMinimize: !1,
- allowMaximize: !1,
- allowMinimize: !1,
- resizable: !0,
- visibility: 'excluded',
- textColor: '#bfbfbf',
- });
- c.setPadding(10);
- c.setLayout(new qx.ui.layout.VBox(10));
- var f = new qx.ui.container.Composite(
- new qx.ui.layout.VBox(2).set({ alignX: 'left' })
- ),
- b = new qx.ui.basic.Label('CnCEco script "4.7.5" is to old');
- f.add(b);
- b = new qx.ui.basic.Label(
- 'Please disable/deinstall the old script and get new version'
- );
- f.add(b);
- b = new qx.ui.basic.Label('');
- f.add(b);
- b = new qx.ui.basic.Label(
- 'Click button below to open link to get new version'
- );
- f.add(b);
- var b = new qx.ui.container.Composite(
- new qx.ui.layout.VBox(2).set({ alignX: 'right' })
- ),
- d = new qx.ui.form.Button('Get new Script');
- b.add(d);
- d.addListener(
- 'execute',
- function() {
- c.close();
- qx.core.Init.getApplication().showExternal(
- 'https://www.member-stats.de/?link=new_version',
- '.member-stats'
- );
- },
- this
- );
- c.add(f);
- c.add(b);
- c.center();
- c.open();
- },
- AuthWindow: function(content) {
- var c = new qx.ui.window.Window('CnCEco add player!');
- c.set({
- caption: 'CnCEco add player!',
- icon: 'webfrontend/ui/common/icon_moral_alert_red.png',
- layout: new qx.ui.layout.HBox(4),
- width: 450,
- height: 170,
- contentPaddingTop: 0,
- contentPaddingBottom: 6,
- contentPaddingRight: 6,
- contentPaddingLeft: 6,
- showMaximize: !1,
- showMinimize: !1,
- allowMaximize: !1,
- allowMinimize: !1,
- resizable: !0,
- visibility: 'excluded',
- textColor: '#bfbfbf',
- });
- c.setPadding(10);
- c.setLayout(new qx.ui.layout.VBox(10));
- var f = new qx.ui.container.Composite(
- new qx.ui.layout.VBox(2).set({ alignX: 'left' })
- ),
- b = new qx.ui.basic.Label('You can now add your player to CnCEco');
- f.add(b);
- b = new qx.ui.basic.Label('');
- f.add(b);
- b = new qx.ui.basic.Label(
- 'Click button below to add your player to your CnCEco account'
- );
- f.add(b);
- var b = new qx.ui.container.Composite(
- new qx.ui.layout.VBox(2).set({ alignX: 'right' })
- ),
- d = new qx.ui.form.Button('add player');
- b.add(d);
- d.addListener(
- 'execute',
- function() {
- c.close();
- // CncEcomain.getInstance().winOpen('', content)
- qx.core.Init.getApplication().showExternal(
- 'https://www.cnc-eco.de/user?' + content
- );
- },
- this
- );
- c.add(f);
- c.add(b);
- c.center();
- c.open();
- },
- getPoiInfo: function() {
- function c(b, c) {
- try {
- var f = c.c;
- M = {};
- for (var d in f) {
- var g = f[d];
- M[d] = {};
- M[d].x = g.x;
- M[d].y = g.y;
- M[d].n = g.n;
- I.push([M[d].n, M[d].x, M[d].y, c.n]);
- }
- } catch (C) {
- h('onPlayerInfo: ', C);
- }
- }
- x = [];
- I = [];
- var f = ClientLib.Data.MainData.GetInstance(),
- b = f.get_Alliance().get_OwnedPOIs(),
- d = b.length,
- g = this.getWindow();
- g.push('search all Pois from Alliance\n');
- for (var n = 0; n < d; n++) {
- if (null !== b[n] && 'undefined' !== b[n]) {
- var q = phe.cnc.gui.util.Text.getPoiInfosByType(b[n].t).name,
- k = b[n].t,
- u = b[n].l,
- p = b[n].i,
- l = ClientLib.Base.PointOfInterestTypes.GetScoreByLevel(
- b[n].l
- ),
- O = phe.cnc.gui.util.Numbers.formatCoordinates(
- b[n].x,
- b[n].y
- );
- x.push([p, q, u, l, b[n].x, b[n].y, O, k]);
- }
- if (n + 1 == d)
- for (
- h('AlliancePois scanned'),
- g.push('AlliancePois scanned\n'),
- q = [],
- q = f.get_Alliance().get_MemberDataAsArray(),
- g.push('search all Playerbases\n'),
- k = 0;
- k < q.length;
- k++
- )
- (W = q[k].Name),
- ClientLib.Net.CommunicationManager.GetInstance().SendSimpleCommand(
- 'GetPublicPlayerInfoByName',
- { name: W },
- phe.cnc.Util.createEventDelegate(
- ClientLib.Net.CommandResult,
- this,
- c
- ),
- !0
- ),
- k + 1 === q.length &&
- (h('save all Playerbases'),
- g.push('all Playerbases saved\n'),
- CncEcomain.getInstance().getBasesOnPoi());
- }
- },
- getBasesOnPoi: function() {
- h('scan if Playerbase is in range of a AlliancePoi');
- var c = this.getWindow();
- c.push('scan if Playerbase is in range of a AlliancePoi\n');
- E = [];
- ClientLib.Data.MainData.GetInstance()
- .get_Alliance()
- .get_MemberDataAsArray();
- window.setTimeout(function() {
- for (var f = 0; f < I.length; f++) {
- for (var b = 0; b < x.length; b++) {
- var d = Math.abs(I[f][1] - x[b][4]),
- g = Math.abs(I[f][2] - x[b][5]);
- 2 < d ||
- 2 < g ||
- (2 == d && 2 == g) ||
- E.push([
- x[b][0],
- x[b][1],
- x[b][2],
- x[b][3],
- x[b][6],
- I[f][0],
- I[f][3],
- x[b][4],
- x[b][5],
- x[b][7],
- ]);
- }
- f + 1 === I.length &&
- b === x.length &&
- (h('Scan complete'),
- c.push('Scan complete\n'),
- CncEcomain.getInstance().SendPoiInfo());
- }
- }, 2e3);
- },
- SendPoiInfo: function() {
- var c = this.getWindow();
- c.push('Preparing to Send PoiInfo to Memberstats.de\n');
- h('Preparing to Send PoiInfo');
- window.setTimeout(function() {
- function f() {
- b.addListener('completed', function(b) {
- '' !== b.getContent()
- ? (h('hab was bekommen ' + b.getContent()),
- c.push('complete Send PoiInfo to Memberstats.de\n'),
- 'none' != CncEcomain.getInstance().getForumId()
- ? ((b = CncEcomain.getInstance().getForumId()),
- CncEcomain.getInstance().PoiForum(E, b))
- : CncEcomain.getInstance().CreatePoiForum(E))
- : h('hab nix bekommen ' + b.getContent());
- });
- b.send();
- }
- var b = new qx.io.remote.Request(
- 'https://www.member-stats.de/poi/',
- 'POST',
- 'text/html'
- );
- b.setProhibitCaching(!1);
- b.setRequestHeader('Content-Type', 'text/html');
- b.setTimeout('3600000');
- b.setResponseType('text/html');
- if (null !== E) {
- var d = ClientLib.Data.MainData.GetInstance(),
- g = d.get_Server().get_WorldId(),
- d = d.get_Alliance().get_Id();
- b.setFormField('worldId', g);
- b.setFormField('allianceId', d);
- b.setData('PoiData');
- b.setParameter('version', '4.7.5');
- b.setFormField('count', E.length);
- for (g = 0; g < E.length; g++)
- b.setFormField('id' + g, E[g][0]),
- b.setFormField('name' + g, E[g][1]),
- b.setFormField('level' + g, E[g][2]),
- b.setFormField('score' + g, E[g][3]),
- b.setFormField('coords' + g, E[g][4]),
- b.setFormField('playerBase' + g, E[g][5]),
- b.setFormField('player' + g, E[g][6]),
- b.setFormField('x' + g, E[g][7]),
- b.setFormField('y' + g, E[g][8]),
- b.setFormField('type' + g, E[g][9]),
- g + 1 === E.length &&
- (h('Send PoiInfo to https://www.member-stats.de'),
- window.setTimeout(f, 1e3));
- }
- }, 2e3);
- },
- winOpen: function(c, f) {
- var b = CncEcoScanner.Layout.window.getInstance(),
- d = 'https://www.member-stats.de';
- '' !== f && (d = 'https://www.cnc-eco.de/user?' + f);
- if ('layout' == f) {
- var g = ClientLib.Data.MainData.GetInstance();
- var n = g.get_Player().get_Name();
- d =
- 'https://www.cnc-eco.de/layouts/' +
- g.get_Server().get_WorldId();
- }
- var g = qx.core.Init.getApplication(),
- q = new webfrontend.gui.CustomWindow(g.tr('tnf:external link')).set(
- {
- resizable: !1,
- showClose: !1,
- showMaximize: !1,
- showMinimize: !1,
- }
- );
- q.setLayout(new qx.ui.layout.VBox(10));
- q.addListenerOnce('resize', q.center, q);
- q.add(
- new qx.ui.basic.Label(
- g.tr('tnf:link will lead to an external page?') +
- '<br />' +
- g.tr('tnf:do you want to continue?')
- ).set({ rich: !0, maxWidth: 360, wrap: !0, textColor: 'white' })
- );
- c = new qx.ui.container.Composite(
- new qx.ui.layout.HBox(10).set({ alignX: 'right' })
- );
- var k = new webfrontend.ui.SoundButton(g.tr('tnf:no'));
- k.addListener(
- 'execute',
- function(c) {
- q.close();
- 'layout' == f &&
- (CncEcoScanner.getInstance().win.close(),
- !0 !== b.active &&
- CncEcoScanner.Layout.window
- .getInstance()
- .openWindow('CncEco Scan result'));
- },
- this
- );
- g = new webfrontend.ui.SoundButton(g.tr('tnf:yes'));
- g.addListener(
- 'execute',
- function(c) {
- q.close();
- 'layout' == f &&
- (CncEcoScanner.getInstance().win.close(),
- !0 !== b.active &&
- CncEcoScanner.Layout.window
- .getInstance()
- .openWindow('CncEco Scan result'));
- c =
- "<form name='LaunchForm' id='LaunchForm' action='" +
- d +
- "' method='POST'>";
- c += "<input type='hidden' name='dummy' value='dummy' />";
- 'layout' == f &&
- (c +=
- "<input type='hidden' name='name' value='" +
- n +
- "' />");
- c +=
- "</form><script type='text/javascript'>document.LaunchForm.submit();\x3c/script>";
- var g = window.open('', '');
- g.document.write(c);
- g.document.close();
- },
- this
- );
- c.add(k);
- c.add(g);
- q.add(c);
- q.setModal(!0);
- q.open();
- },
- getForumId: function(c) {
- c = ClientLib.Data.MainData.GetInstance()
- .get_Forum()
- .get_Forums();
- var f = c.c,
- b = 'none',
- d = 1,
- g;
- for (g in c.d) {
- if ('CncEco PoiInfo' == c.d[g].Title) return (b = c.d[g].Id);
- if ('none' == b && d === f && d <= f) return b;
- d++;
- }
- },
- SortAlliancePois: function(c, f) {
- function b(b, c) {
- !0 === c && 0 === g
- ? (d.push('Post all AlliancePois to Forum\n'), g++)
- : !0 === c &&
- (0 === U
- ? U++
- : 1 === U
- ? h('do something postInfoAll')
- : 2 < R && h('postInfoAll do is was schiaf glafn ' + R));
- !0 !== c &&
- d.push('ERROR: Post all AlliancePois to Forum\n' + c + '\n');
- }
- var d = CncEcomain.getInstance().getWindow();
- d.push('Try to insert a post to "List of Alliance Poi"\n');
- h('forumid: ' + c + ' threadid: ' + f);
- for (
- var g = 0,
- n = [],
- q = [],
- k = [],
- u = [],
- p = [],
- l = [],
- O = [],
- m = '',
- A = 0;
- A < x.length;
- A++
- ) {
- var D = x[A][1],
- w = x[A][7],
- t = x[A][2],
- C = x[A][0],
- v = x[A][3],
- z = x[A][6],
- y = x[A][4],
- r = x[A][5];
- 2 === x[A][7] && n.push([C, D, t, v, y, r, z, w]);
- 3 === x[A][7] && q.push([C, D, t, v, y, r, z, w]);
- 4 === x[A][7] && k.push([C, D, t, v, y, r, z, w]);
- 5 === x[A][7] && u.push([C, D, t, v, y, r, z, w]);
- 6 === x[A][7] && p.push([C, D, t, v, y, r, z, w]);
- 7 === x[A][7] && l.push([C, D, t, v, y, r, z, w]);
- 8 === x[A][7] && O.push([C, D, t, v, y, r, z, w]);
- if (A + 1 == x.length)
- for (r = y = z = v = C = t = w = D = 0; r <= n.length; r++)
- if (
- (0 === r && (m += '[b][u]Tiberium[/u][/b]\n'),
- r == n.length)
- )
- for (
- var m = m + '\n',
- m = m + '\n',
- m = m + '[u]Tiberium TotalScore:[/u]\n',
- m = m + ('[b]' + D + '[/b]\n'),
- m = m + '[hr]\n',
- F = 0;
- F <= q.length;
- F++
- )
- if (
- (0 === F && (m += '[b][u]Crystal[/u][/b]\n'),
- F == q.length)
- )
- for (
- var m = m + '\n',
- m = m + '\n',
- m = m + '[u]Crystal TotalScore:[/u]\n',
- m = m + ('[b]' + w + '[/b]\n'),
- m = m + '[hr]\n',
- G = 0;
- G <= k.length;
- G++
- )
- if (
- (0 === G &&
- (m += '[b][u]Reactor[/u][/b]\n'),
- G == k.length)
- )
- for (
- var m = m + '\n',
- m = m + '\n',
- m =
- m +
- '[u]Power TotalScore:[/u]\n',
- m = m + ('[b]' + t + '[/b]\n'),
- m = m + '[hr]\n',
- B = 0;
- B <= u.length;
- B++
- )
- if (
- (0 === B &&
- (m +=
- '[b][u]Tungsten[/u][/b]\n'),
- B == u.length)
- )
- for (
- var m = m + '\n',
- m = m + '\n',
- m =
- m +
- '[u]Tung TotalScore:[/u]\n',
- m =
- m +
- ('[b]' +
- C +
- '[/b]\n'),
- m = m + '[hr]\n',
- E = 0;
- E <= p.length;
- E++
- )
- if (
- (0 === E &&
- (m +=
- '[b][u]Uranium[/u][/b]\n'),
- E == p.length)
- )
- for (
- var m = m + '\n',
- m = m + '\n',
- m =
- m +
- '[u]Uran TotalScore:[/u]\n',
- m =
- m +
- ('[b]' +
- v +
- '[/b]\n'),
- m =
- m +
- '[hr]\n',
- J = 0;
- J <= l.length;
- J++
- )
- if (
- (0 === J &&
- (m +=
- '[b][u]Aircraft[/u][/b]\n'),
- J == l.length)
- )
- for (
- var m =
- m +
- '\n',
- m =
- m +
- '\n',
- m =
- m +
- '[u]Air TotalScore:[/u]\n',
- m =
- m +
- ('[b]' +
- z +
- '[/b]\n'),
- m =
- m +
- '[hr]\n',
- K = 0;
- K <=
- O.length;
- K++
- )
- 0 === K &&
- (m +=
- '[b][u]Resonator[/u][/b]\n'),
- K ==
- O.length
- ? ((m +=
- '\n'),
- (m +=
- '\n'),
- (m +=
- '[u]Reso TotalScore:[/u]\n'),
- (m +=
- '[b]' +
- y +
- '[/b]\n'))
- : ((m +=
- 'Level: ' +
- O[
- K
- ][2] +
- ' Score: ' +
- O[
- K
- ][3] +
- ' Coords: [coords]' +
- O[
- K
- ][6] +
- '[/coords]\n'),
- (y +=
- O[
- K
- ][3]));
- else
- (m +=
- 'Level: ' +
- l[J][2] +
- ' Score: ' +
- l[J][3] +
- ' Coords: [coords]' +
- l[J][6] +
- '[/coords]\n'),
- (z +=
- l[
- J
- ][3]);
- else
- (m +=
- 'Level: ' +
- p[E][2] +
- ' Score: ' +
- p[E][3] +
- ' Coords: [coords]' +
- p[E][6] +
- '[/coords]\n'),
- (v += p[E][3]);
- else
- (m +=
- 'Level: ' +
- u[B][2] +
- ' Score: ' +
- u[B][3] +
- ' Coords: [coords]' +
- u[B][6] +
- '[/coords]\n'),
- (C += u[B][3]);
- else
- (m +=
- 'Level: ' +
- k[G][2] +
- ' Score: ' +
- k[G][3] +
- ' Coords: [coords]' +
- k[G][6] +
- '[/coords]\n'),
- (t += k[G][3]);
- else
- (m +=
- 'Level: ' +
- q[F][2] +
- ' Score: ' +
- q[F][3] +
- ' Coords: [coords]' +
- q[F][6] +
- '[/coords]\n'),
- (w += q[F][3]);
- else
- (m +=
- 'Level: ' +
- n[r][2] +
- ' Score: ' +
- n[r][3] +
- ' Coords: [coords]' +
- n[r][6] +
- '[/coords]\n'),
- (D += n[r][3]);
- }
- if (A == x.length)
- if (2999 >= m.length)
- ClientLib.Net.CommunicationManager.GetInstance().SendSimpleCommand(
- 'CreateForumPost',
- { forumID: c, threadID: f, postMessage: m },
- phe.cnc.Util.createEventDelegate(
- ClientLib.Net.CommandResult,
- this,
- b
- ),
- !0
- ),
- h('All Pois inserted to Forum');
- else
- for (A in ((n = m.split('[hr]\n')), n))
- ClientLib.Net.CommunicationManager.GetInstance().SendSimpleCommand(
- 'CreateForumPost',
- { forumID: c, threadID: f, postMessage: n[A] },
- phe.cnc.Util.createEventDelegate(
- ClientLib.Net.CommandResult,
- this,
- b
- ),
- !0
- ),
- h('All Pois inserted to Forum');
- },
- SortWhoPois: function(c, f) {
- function b(b, c) {
- !0 === c && 0 === d
- ? (g.push('Post "Who is at POI X" to Forum\n'), d++)
- : !0 === c &&
- (0 === R
- ? R++
- : 1 === R
- ? (g.close(), h('do something postInfoWho'))
- : 1 < R && h('postInfoWho do is was schiaf glafn ' + R));
- !0 !== c &&
- g.push('ERROR: Post "Who is at POI X" to Forum\n' + c + '\n');
- }
- var d = 0;
- h('Try to insert a post to "Who is at POI X"');
- var g = CncEcomain.getInstance().getWindow();
- g.push('Try to insert a post to "Who is at POI X"\n');
- for (
- var n = [],
- q = [],
- k = [],
- u = [],
- p = [],
- l = [],
- r = [],
- m = '',
- A = 0,
- D = 0,
- w = 0,
- t = 0,
- C = 0,
- v = 0,
- z = 0,
- y = 0;
- y < x.length;
- y++
- ) {
- for (
- var B = x[y][0],
- F = x[y][1],
- G = x[y][2],
- H = x[y][3],
- N = x[y][4],
- J = x[y][5],
- K = x[y][6],
- L = x[y][7],
- M = 0;
- M < E.length;
- M++
- ) {
- var I = E[M][5],
- P = E[M][6];
- x[y][0] == E[M][0] &&
- (2 == L &&
- ('undefined' === typeof n[A] && (n[A] = []),
- n[A].push([B, F, G, H, N, J, K, L, I, P])),
- 3 == L &&
- ('undefined' === typeof q[D] && (q[D] = []),
- q[D].push([B, F, G, H, N, J, K, L, I, P])),
- 4 == L &&
- ('undefined' === typeof k[w] && (k[w] = []),
- k[w].push([B, F, G, H, N, J, K, L, I, P])),
- 5 == L &&
- ('undefined' === typeof u[t] && (u[t] = []),
- u[t].push([B, F, G, H, N, J, K, L, I, P])),
- 6 == L &&
- ('undefined' === typeof p[C]
- ? ((p[C] = []),
- p[C].push([B, F, G, H, N, J, K, L, I, P]),
- C++)
- : p[C].push([B, F, G, H, N, J, K, L, I, P])),
- 7 == L &&
- ('undefined' === typeof l[v] && (l[v] = []),
- l[v].push([B, F, G, H, N, J, K, L, I, P])),
- 8 == L &&
- ('undefined' === typeof r[z] && (r[z] = []),
- r[z].push([B, F, G, H, N, J, K, L, I, P])));
- }
- 'undefined' !== typeof n[A] && A++;
- 'undefined' !== typeof q[D] && D++;
- 'undefined' !== typeof k[w] && w++;
- 'undefined' !== typeof u[t] && t++;
- 'undefined' !== typeof p[C] && C++;
- 'undefined' !== typeof l[v] && v++;
- 'undefined' !== typeof r[z] && z++;
- }
- if (y == x.length) {
- for (A = 0; A < n.length; A++)
- for (
- 0 === A && (m += '[b][u]Tiberium[/u][/b]\n'), D = 0;
- D < n[A].length;
- D++
- )
- 0 === D &&
- (m +=
- 'Level: ' +
- n[A][D][2] +
- ' Score: ' +
- n[A][D][3] +
- ' Coords [coords]' +
- n[A][D][6] +
- '[/coords]\n'),
- (m +=
- 'Player: [player]' +
- n[A][D][9] +
- '[/player] base: ' +
- n[A][D][8] +
- '\n'),
- D + 1 == n[A].length && (m += '\n');
- for (D = 0; D < q.length; D++)
- for (
- 0 === D && (m += '[hr]\n[b][u]Crystal[/u][/b]\n'), w = 0;
- w < q[D].length;
- w++
- )
- 0 === w &&
- (m +=
- 'Level: ' +
- q[D][w][2] +
- ' Score: ' +
- q[D][w][3] +
- ' Coords [coords]' +
- q[D][w][6] +
- '[/coords]\n'),
- (m +=
- 'Player: [player]' +
- q[D][w][9] +
- '[/player] base: ' +
- q[D][w][8] +
- '\n'),
- w + 1 == q[D].length && (m += '\n');
- for (w = 0; w < k.length; w++)
- for (
- 0 === w && (m += '[hr]\n[b][u]Reactor[/u][/b]\n'), t = 0;
- t < k[w].length;
- t++
- )
- 0 === t &&
- (m +=
- 'Level: ' +
- k[w][t][2] +
- ' Score: ' +
- k[w][t][3] +
- ' Coords [coords]' +
- k[w][t][6] +
- '[/coords]\n'),
- (m +=
- 'Player: [player]' +
- k[w][t][9] +
- '[/player] base: ' +
- k[w][t][8] +
- '\n'),
- t + 1 == k[w].length && (m += '\n');
- for (t = 0; t < u.length; t++)
- for (
- 0 === t && (m += '[hr]\n[b][u]Tungsten[/u][/b]\n'), C = 0;
- C < u[t].length;
- C++
- )
- 0 === C &&
- (m +=
- 'Level: ' +
- u[t][C][2] +
- ' Score: ' +
- u[t][C][3] +
- ' Coords [coords]' +
- u[t][C][6] +
- '[/coords]\n'),
- (m +=
- 'Player: [player]' +
- u[t][C][9] +
- '[/player] base: ' +
- u[t][C][8] +
- '\n'),
- C + 1 == u[t].length && (m += '\n');
- for (C = 0; C < p.length; C++)
- for (
- 0 === C && (m += '[hr]\n[b][u]Uranium[/u][/b]\n'), v = 0;
- v < p[C].length;
- v++
- )
- 0 === v &&
- (m +=
- 'Level: ' +
- p[C][v][2] +
- ' Score: ' +
- p[C][v][3] +
- ' Coords [coords]' +
- p[C][v][6] +
- '[/coords]\n'),
- (m +=
- 'Player: [player]' +
- p[C][v][9] +
- '[/player] base: ' +
- p[C][v][8] +
- '\n'),
- v + 1 == p[C].length && (m += '\n');
- for (v = 0; v < l.length; v++)
- for (
- 0 === v && (m += '[hr]\n[b][u]Aircraft[/u][/b]\n'), z = 0;
- z < l[v].length;
- z++
- )
- 0 === z &&
- (m +=
- 'Level: ' +
- l[v][z][2] +
- ' Score: ' +
- l[v][z][3] +
- ' Coords [coords]' +
- l[v][z][6] +
- '[/coords]\n'),
- (m +=
- 'Player: [player]' +
- l[v][z][9] +
- '[/player] base: ' +
- l[v][z][8] +
- '\n'),
- z + 1 == l[v].length && (m += '\n');
- for (z = 0; z < r.length; z++)
- for (
- 0 === z && (m += '[hr]\n[b][u]Resonator[/u][/b]\n'), y = 0;
- y < r[z].length;
- y++
- )
- 0 === y &&
- (m +=
- 'Level: ' +
- r[z][y][2] +
- ' Score: ' +
- r[z][y][3] +
- ' Coords [coords]' +
- r[z][y][6] +
- '[/coords]\n'),
- (m +=
- 'Player: [player]' +
- r[z][y][9] +
- '[/player] base: ' +
- r[z][y][8] +
- '\n'),
- y + 1 == r[z].length && (m += '\n');
- if (
- A == n.length &&
- D == q.length &&
- w == k.length &&
- t == u.length &&
- C == p.length &&
- v == l.length &&
- z == r.length
- )
- if (((n = m.length), console.log(n), 2999 >= n))
- ClientLib.Net.CommunicationManager.GetInstance().SendSimpleCommand(
- 'CreateForumPost',
- { forumID: c, threadID: f, postMessage: m },
- phe.cnc.Util.createEventDelegate(
- ClientLib.Net.CommandResult,
- this,
- b
- ),
- !0
- ) && h('who Pois inserted to Forum');
- else {
- var m = m.split('[hr]\n'),
- Q;
- for (Q in m)
- ClientLib.Net.CommunicationManager.GetInstance().SendSimpleCommand(
- 'CreateForumPost',
- { forumID: c, threadID: f, postMessage: m[Q] },
- phe.cnc.Util.createEventDelegate(
- ClientLib.Net.CommandResult,
- this,
- b
- ),
- !0
- ),
- h('who Pois inserted to Forum');
- }
- else
- console.log(
- 'tib ' +
- A +
- ' ' +
- n.length +
- ' cris ' +
- D +
- ' ' +
- q.length +
- ' reaktor ' +
- w +
- ' ' +
- k.length +
- ' tung ' +
- t +
- ' ' +
- u.length +
- ' uran ' +
- C +
- ' ' +
- p.length +
- ' luft ' +
- v +
- ' ' +
- l.length +
- ' reso ' +
- z +
- ' ' +
- r.length
- );
- }
- },
- PoiForum: function(c, f) {
- function b(b, c) {
- !0 === b &&
- '0' == c &&
- ClientLib.Net.CommunicationManager.GetInstance().SendSimpleCommand(
- 'GetForumThreads',
- { forumId: f, skip: 0, take: 10 },
- phe.cnc.Util.createEventDelegate(
- ClientLib.Net.CommandResult,
- this,
- d
- ),
- !0
- );
- }
- function d(c, d) {
- console.log(d);
- for (var k in d) {
- var h = d[k].i;
- 'List of Alliance Poi' == d[k].t &&
- 0 == n &&
- (CncEcomain.getInstance().SortAlliancePois(f, h), (n = 1));
- 'Who is at POI X' == d[k].t &&
- 0 == q &&
- (CncEcomain.getInstance().SortWhoPois(f, h), (q = 1));
- }
- 0 == n
- ? (g.push('Try to create Thread "List of Alliance Poi"\n'),
- ClientLib.Net.CommunicationManager.GetInstance().SendSimpleCommand(
- 'CreateForumThread',
- {
- forumID: f,
- threadTitle: 'List of Alliance Poi',
- firstPostMessage: '.',
- subscribe: !0,
- },
- phe.cnc.Util.createEventDelegate(
- ClientLib.Net.CommandResult,
- this,
- b
- ),
- !0
- ))
- : 0 == q &&
- (g.push('Try to create Thread2 "Who is at POI X"\n'),
- ClientLib.Net.CommunicationManager.GetInstance().SendSimpleCommand(
- 'CreateForumThread',
- {
- forumID: f,
- threadTitle: 'Who is at POI X',
- firstPostMessage: '.',
- subscribe: !0,
- },
- phe.cnc.Util.createEventDelegate(
- ClientLib.Net.CommandResult,
- this,
- b
- ),
- !0
- ));
- }
- ClientLib.Data.MainData.GetInstance()
- .get_Forum()
- .get_Forums();
- var g = this.getWindow(),
- n = 0,
- q = 0;
- ClientLib.Net.CommunicationManager.GetInstance().SendSimpleCommand(
- 'GetForumThreads',
- { forumId: f, skip: 0, take: 10 },
- phe.cnc.Util.createEventDelegate(
- ClientLib.Net.CommandResult,
- this,
- d
- ),
- !0
- );
- },
- CreatePoiForum: function(c, f) {
- if (
- !0 ===
- ClientLib.Data.MainData.GetInstance()
- .get_Alliance()
- .get_CanCreateForum()
- ) {
- var b = function() {
- n.push('Try to create Thread "List of Alliance Poi"\n');
- var b = CncEcomain.getInstance().getForumId(c),
- b =
- '{"session":"' +
- k +
- '", "forumID":' +
- b +
- ',"threadTitle":"List of Alliance Poi","subscribe":true,"firstPostMessage":"."}';
- l.onload = function() {
- '0' == l.responseText
- ? (l.abort(),
- h('Thread erstellt!!!'),
- n.push(
- 'Thread "List of Alliance Poi" created!\n'
- ),
- window.setTimeout(d, 1e3))
- : h('ERROR: thread erstellen!');
- };
- l.open(
- 'POST',
- '/' +
- q +
- '/Presentation/Service.svc/ajaxEndpoint/CreateForumThread'
- );
- l.setRequestHeader('Content-Type', 'application/json');
- l.send(b);
- },
- d = function() {
- n.push('Try to create Thread2 "Who is at POI X"\n');
- var b = CncEcomain.getInstance().getForumId(c),
- b =
- '{"session":"' +
- k +
- '", "forumID":' +
- b +
- ',"threadTitle":"Who is at POI X","subscribe":true,"firstPostMessage":"."}';
- l.onload = function() {
- '0' == l.responseText
- ? (l.abort(),
- h('Thread2 erstellt!!!'),
- n.push('Thread "Who is at POI X" created!\n'),
- window.setTimeout(g, 1e3))
- : h('ERROR: Thread2 erstellen!');
- };
- l.open(
- 'POST',
- '/' +
- q +
- '/Presentation/Service.svc/ajaxEndpoint/CreateForumThread'
- );
- l.setRequestHeader('Content-Type', 'application/json');
- l.send(b);
- },
- g = function() {
- var b = CncEcomain.getInstance().getForumId(c);
- CncEcomain.getInstance().PoiForum(c, b);
- };
- h('CreatePoiForum');
- var n = this.getWindow();
- n.push('Try to create PoiForum\n');
- var q = ClientLib.Data.MainData.GetInstance()
- .get_Server()
- .get_WorldId(),
- k = ClientLib.Net.CommunicationManager.GetInstance().get_InstanceId(),
- l = new qx.bom.request.Xhr();
- l.onload = function() {
- '0' == l.responseText
- ? (l.abort(),
- h('forum erstellt!!!'),
- n.push('created PoiForum\n'),
- window.setTimeout(b, 1e3))
- : h('ERROR: forum erstellt!');
- };
- var p =
- '{"session":"' +
- k +
- '", "sharedAlliance":null,"Title":"CncEco PoiInfo","Description":"List of AlliancePois"}';
- l.open(
- 'POST',
- '/' + q + '/Presentation/Service.svc/ajaxEndpoint/CreateForum'
- );
- l.setRequestHeader('Content-Type', 'application/json');
- l.send(p);
- } else n.push('no rights to create PoiForum\n');
- },
- getWindow: function() {
- null === this.poiwindow &&
- ((this.poiwindow = new CncEcoreport.window()),
- this.poiwindow.moveTo(
- window.innerWidth - 150 - this.poiwindow.getWidth() - 200,
- 40
- ));
- return this.poiwindow;
- },
- getPoiWindow: function() {
- null === this.poiInfoWindow &&
- ((this.poiInfowindow = new CncEcoreport.window()),
- this.poiInfoWindow.center());
- return this.poiwindow;
- },
- _Allisupport: function() {
- for (
- var c = ClientLib.Data.MainData.GetInstance()
- .get_AllianceSupportState()
- .get_Bases().d,
- f,
- b = Object.keys(c),
- d = b.length,
- g = {},
- n = 0,
- q = 0,
- k = d;
- d--;
-
- )
- (f = c[b[d]]),
- g.hasOwnProperty(f.get_Type()) || (g[f.get_Type()] = 0),
- g[f.get_Type()]++,
- 30 <= f.get_Level() && q++,
- (n += f.get_Level());
- n /= k;
- c = ClientLib.Data.MainData.GetInstance()
- .get_Alliance()
- .get_MemberData().d;
- g = 0;
- b = Object.keys(c);
- for (d = b.length; d--; ) (f = c[b[d]]), (g += f.Bases);
- b =
- 'Bases: ' +
- g +
- ' SupCount: ' +
- k +
- '(' +
- ((k / g) * 100).toFixed(0) +
- '%) \u00d8: ' +
- n.toFixed(2) +
- ' 30+: ' +
- q +
- '(' +
- ((q / g) * 100).toFixed(0) +
- '%)';
- CncEcomain.getInstance()
- .getWindow()
- .push(b);
- },
- },
- });
- qx.Class.define('CncEcoPlayerinfo', {
- type: 'singleton',
- extend: qx.core.Object,
- members: {
- windowinterval: null,
- windowbevoreunload: null,
- get_info: function() {
- try {
- var c = ClientLib.Data.MainData.GetInstance();
- B = c.get_Player();
- B.get_Name();
- B.get_AccountId();
- T = c.get_Alliance();
- c.get_Server().get_WorldId();
- return !0;
- } catch (f) {
- (c = { func: 'get_info', class: 'CncEco5main' }),
- (c.error = f),
- h(f),
- beta && H(f, c);
- }
- },
- initialize: function() {
- try {
- return (
- h('CncEcoPlayerinfo load'),
- h('CncEcoPlayerinfo load'),
- h('CncEcoPlayerinfo load'),
- h('CncEcoPlayerinfo load'),
- this.get_info() &&
- ClientLib.Net.CommunicationManager.GetInstance().SendSimpleCommand(
- 'GetPublicPlayerInfo',
- { id: playerId },
- phe.cnc.Util.createEventDelegate(
- ClientLib.Net.CommandResult,
- this,
- this.Playerinfo
- ),
- null
- ),
- (this.windowinterval = window.setInterval(function() {
- CncEcoPlayerinfo.getInstance().interval();
- }, 18e5)),
- (this.windowbevoreunload = window.addEventListener(
- 'beforeunload',
- function() {
- CncEcoPlayerinfo.getInstance().interval();
- }
- )),
- !0
- );
- } catch (f) {
- var c = { func: 'ini', class: 'CncEcoPlayerinfo' };
- c.error = f;
- h(f);
- beta && H(f, c);
- }
- },
- interval: function() {
- try {
- if (Main.get_info())
- return (
- ClientLib.Net.CommunicationManager.GetInstance().SendSimpleCommand(
- 'GetPublicPlayerInfo',
- { id: playerId },
- phe.cnc.Util.createEventDelegate(
- ClientLib.Net.CommandResult,
- this,
- this.Playerinfo
- ),
- null
- ),
- !0
- );
- } catch (f) {
- var c = { func: 'interval', class: 'CncEcoPlayerinfo' };
- c.error = f;
- h(f);
- beta && H(f, c);
- }
- },
- Playerinfo: function(c, f) {
- try {
- var b = { server: {} };
- b.server.serverid = worldId;
- b.server.serverName = MainData.get_Server()
- .get_Name()
- .trim();
- if (0 < f.a) {
- b.alli = {};
- b.alli.alliId = f.a;
- b.alli.alliName = f.an;
- b.alli.cic = T.get_FirstLeaders().l;
- b.alli.sc = T.get_SecondLeaders().l;
- b.alli.roleinfo = T.get_Roles().d;
- var d = MainData.get_Alliance().get_MemberData();
- b.alli.member = d;
- }
- b.player = {};
- b.player.name = playerName;
- b.player.id = playerId;
- b.player.accountid = accountId;
- b.player.creationDate = B.get_CreationDate();
- b.player.fraction = B.get_Faction();
- b.player.bases = {};
- b.player.pve = f.bd;
- b.player.pvp = f.bd - f.bde;
- b.player.points = f.p;
- b.player.rank = f.r;
- b.player.hascode = f.hchc;
- b.player.maxcp = B.GetCommandPointMaxStorage();
- b.player.actcp = Math.round(B.GetCommandPointCount());
- b.player.funds = MainData.get_Inventory().get_PlayerFunds();
- b.player.schirme = Math.round(B.GetSupplyPointCount());
- b.player.RPoints = B.get_ResearchPoints();
- b.player.CreditsCount = Math.round(B.GetCreditsCount());
- var g = MainData.get_Player(),
- n = g.get_Faction(),
- q = ClientLib.Base.Tech.GetTechIdFromTechNameAndFaction(
- ClientLib.Base.ETechName.Research_BaseFound,
- n
- ),
- k = g
- .get_PlayerResearch()
- .GetResearchItemFomMdbId(q)
- .get_NextLevelInfo_Obj(),
- d = [],
- u;
- for (u in k.rr) 0 < k.rr[u].t && (d[k.rr[u].t] = k.rr[u].c);
- var p = d[ClientLib.Base.EResourceType.Gold],
- r = d[ClientLib.Base.EResourceType.ResearchPoints],
- x = g.get_Credits(),
- m =
- (x.Delta + x.ExtraBonusDelta) *
- ClientLib.Data.MainData.GetInstance()
- .get_Time()
- .get_StepsPerHour(),
- A = (p - B.GetCreditsCount()) / m;
- b.player.timeTOmcv = Math.round(3600 * A);
- b.player.rpNeeded = r;
- var D = MainData.get_Cities(),
- w = f.c.length;
- b.player.basecount = w;
- for (u = 0; u < w; u++) {
- var t = D.GetCity(f.c[u].i),
- g = {};
- g.Id = f.c[u].i;
- g.Na = t.get_Name();
- g.Po = f.c[u].p;
- g.Lvl = parseFloat(t.get_LvlBase().toFixed(2));
- g.Off = parseFloat(t.get_LvlOffense().toFixed(2));
- g.Def = parseFloat(t.get_LvlDefense().toFixed(2));
- g.PosX = f.c[u].x;
- g.PosY = f.c[u].y;
- var C = t.get_CityUnitsData();
- g.repInf =
- 0 < g.Off
- ? C.GetRepairTimeFromEUnitGroup(
- ClientLib.Data.EUnitGroup.Infantry,
- !1
- )
- : 0;
- g.repVeh =
- 0 < g.Off
- ? C.GetRepairTimeFromEUnitGroup(
- ClientLib.Data.EUnitGroup.Vehicle,
- !1
- )
- : 0;
- g.repAir =
- 0 < g.Off
- ? C.GetRepairTimeFromEUnitGroup(
- ClientLib.Data.EUnitGroup.Aircraft,
- !1
- )
- : 0;
- g.maxRep =
- 0 < g.Off
- ? t.GetResourceMaxStorage(
- ClientLib.Base.EResourceType.RepairChargeInf
- )
- : 0;
- g.availRep =
- 0 < g.Off
- ? ClientLib.Base.Resource.GetResourceCount(
- t
- .get_RepairOffenseResources()
- .get_RepairChargeOffense()
- )
- : 0;
- var v = t.get_SupportWeapon();
- g.supWp = null !== v ? v.n : '';
- v = t.get_SupportData();
- g.supWplvl = null !== v ? v.get_Level() : 0;
- var z = t.get_CityBuildingsData();
- v = z.GetUniqueBuildingByTechName(
- ClientLib.Base.ETechName.Construction_Yard
- );
- g.CY = null !== v ? v.get_CurrentLevel() : 0;
- v = z.GetUniqueBuildingByTechName(
- ClientLib.Base.ETechName.Defense_Facility
- );
- g.DF = null !== v ? v.get_CurrentLevel() : 0;
- v = z.GetUniqueBuildingByTechName(
- ClientLib.Base.ETechName.Defense_HQ
- );
- g.DHQ = null !== v ? v.get_CurrentLevel() : 0;
- g.PP = Math.round(
- t.GetResourceGrowPerHour(
- ClientLib.Base.EResourceType.Power,
- !1,
- !1
- )
- );
- g.PBP = Math.round(
- t.GetResourceBonusGrowPerHour(
- ClientLib.Base.EResourceType.Power
- )
- );
- g.PAB = ClientLib.Data.MainData.GetInstance()
- .get_Alliance()
- .GetPOIBonusFromResourceType(
- ClientLib.Base.EResourceType.Power
- );
- g.CP = Math.round(
- ClientLib.Base.Resource.GetResourceGrowPerHour(
- t.get_CityCreditsProduction(),
- !1
- )
- );
- g.CBP = Math.round(
- ClientLib.Base.Resource.GetResourceBonusGrowPerHour(
- t.get_CityCreditsProduction(),
- !1
- )
- );
- g.Tall = Math.round(
- t.GetResourceGrowPerHour(
- ClientLib.Base.EResourceType.Tiberium,
- !1,
- !1
- ) +
- t.GetResourceBonusGrowPerHour(
- ClientLib.Base.EResourceType.Tiberium
- ) +
- ClientLib.Data.MainData.GetInstance()
- .get_Alliance()
- .GetPOIBonusFromResourceType(
- ClientLib.Base.EResourceType.Tiberium
- )
- );
- g.Call = Math.round(
- t.GetResourceGrowPerHour(
- ClientLib.Base.EResourceType.Crystal,
- !1,
- !1
- ) +
- t.GetResourceBonusGrowPerHour(
- ClientLib.Base.EResourceType.Crystal
- ) +
- ClientLib.Data.MainData.GetInstance()
- .get_Alliance()
- .GetPOIBonusFromResourceType(
- ClientLib.Base.EResourceType.Crystal
- )
- );
- g.PPall = g.PP + g.PBP + g.PAB;
- g.CPall = g.CP + g.CBP;
- b.player.bases[u] = g;
- b.player.bases[u].cncopt = V(g.Id, u);
- }
- b.player.mainoff = 0;
- b.player.maindef = 0;
- b.player.mainavailrep = 0;
- b.player.mainrepinf = 0;
- b.player.mainrepveh = 0;
- b.player.mainrepair = 0;
- b.player.supschnitt = 0;
- b.player.defschnitt = 0;
- b.player.tibgesamt = 0;
- b.player.crigesamt = 0;
- b.player.cashgesamt = 0;
- b.player.powergesamt = 0;
- b.player.mainpower = 0;
- for (var y in b.player.bases)
- delete b.player.bases[y].PP,
- delete b.player.bases[y].PBP,
- delete b.player.bases[y].PAB,
- delete b.player.bases[y].CP,
- delete b.player.bases[y].CBP,
- b.player.bases[y].Off > b.player.mainoff &&
- ((b.player.mainoff = b.player.bases[y].Off),
- (b.player.mainpower = b.player.bases[y].PPall),
- (b.player.maindef = b.player.bases[y].Def),
- (b.player.mainavailrep = b.player.bases[y].availRep),
- (b.player.mainrepinf = b.player.bases[y].repInf),
- (b.player.mainrepveh = b.player.bases[y].repVeh),
- (b.player.mainrepair = b.player.bases[y].repAir)),
- (b.player.supschnitt += b.player.bases[y].supWplvl),
- (b.player.defschnitt += b.player.bases[y].Def),
- (b.player.tibgesamt += b.player.bases[y].Tall),
- (b.player.crigesamt += b.player.bases[y].Call),
- (b.player.cashgesamt += b.player.bases[y].CPall),
- (b.player.powergesamt += b.player.bases[y].PPall);
- b.player.supschnitt /= b.player.basecount;
- b.player.defschnitt /= b.player.basecount;
- b.player.supschnitt = b.player.supschnitt.toFixed(2);
- b.player.defschnitt = b.player.defschnitt.toFixed(2);
- var E = b.player.bases;
- delete b.player.bases;
- b.player.bases = E;
- if (null !== l.xhr._xhr)
- (xhr = l.xhr),
- xhr.send(
- 'https://www.member-stats.de/playerinfo.php?i=playerinfos',
- 'POST',
- null,
- b,
- this.callback
- );
- else {
- var F = {
- func: 'playerinfo',
- class: 'CncEcoPlayerinfo',
- error: 'CncEco.xhr.req !== null',
- };
- h('CncEco.xhr.req !== null');
- beta && H('CncEco.xhr.req !== null', F);
- }
- } catch (G) {
- (F = { func: 'playerinfo', class: 'CncEcoPlayerinfo' }),
- (F.error = G),
- h(G),
- beta && H(G, F);
- }
- },
- callback: function(c) {
- try {
- !1 !== JSON.isjson(c) &&
- ('parse' === JSON.isjson(c)
- ? JSON.parse(c)
- : 'stringify' === JSON.isjson(c) && JSON.stringify(c));
- } catch (f) {
- (c = { func: 'callback', class: 'CncEcoPlayerinfo' }),
- (c.error = f),
- h(f),
- beta && H(f, c);
- }
- },
- },
- });
- qx.Class.define('CncEcoreport.window', {
- extend: qx.ui.window.Window,
- construct: function() {
- qx.ui.window.Window.call(this);
- this.set({
- caption: 'CncEco Info',
- icon: 'webfrontend/ui/icons/icn_show_combat_active.png',
- layout: new qx.ui.layout.VBox(4),
- width: 300,
- height: 50,
- contentPaddingTop: 0,
- contentPaddingBottom: 6,
- contentPaddingRight: 6,
- contentPaddingLeft: 6,
- showMaximize: !1,
- showMinimize: !1,
- allowMaximize: !1,
- allowMinimize: !1,
- resizable: !0,
- visibility: 'excluded',
- textColor: '#bfbfbf',
- });
- this.getChildControl('icon').set({
- scale: !0,
- width: 18,
- height: 17,
- alignY: 'middle',
- marginLeft: 8,
- });
- this.add(
- (this.logContainer = new qx.ui.container.Composite(
- new qx.ui.layout.VBox()
- ))
- );
- this.add(new qx.ui.core.Spacer(), { flex: 1 });
- this.addListener('close', function() {
- this.onClose();
- });
- },
- members: {
- logContainer: null,
- onClose: function() {
- this.removeAll();
- this.add(
- (this.logContainer = new qx.ui.container.Composite(
- new qx.ui.layout.VBox()
- ))
- );
- },
- push: function(c, f) {
- this.isActive() || this.open();
- this.logContainer.add(new qx.ui.basic.Label(c.toString()));
- f && this.logContainer.add(f);
- },
- delall: function() {
- this.removeAll();
- this.add(
- (this.logContainer = new qx.ui.container.Composite(
- new qx.ui.layout.VBox()
- ))
- );
- },
- initialize: function() {
- try {
- h('CncEcoreport.window loadet');
- } catch (c) {
- h(c);
- }
- },
- },
- });
- var r = {
- _g: function(c, f, b, d) {
- c = c.toString().replace(/\s/gim, '');
- f = c.match(f);
- var g;
- for (g = 1; g < d + 1; g++)
- null !== f && 6 === f[g].length
- ? console.debug(b, g, f[g])
- : null !== f && 0 < f[g].length
- ? console.warn(b, g, f[g])
- : (console.error('Error - ', b, g, 'not found'),
- console.warn(b, c));
- return f;
- },
- patch: function() {
- if (!d._patched) {
- var c = ClientLib.Data.WorldSector.WorldObjectCity.prototype,
- c = ClientLib.Data.WorldSector.WorldObjectNPCBase.prototype;
- re = /100\){0,1};this\.(.{6})=Math.floor.*d\+=f;this\.(.{6})=\(/;
- var f = r._g(
- c.$ctor,
- re,
- 'ClientLib.Data.WorldSector.WorldObjectNPCBase',
- 2
- );
- null !== f && 6 === f[1].length
- ? (c.getLevel = function() {
- return this[f[1]];
- })
- : console.error(
- 'Error - ClientLib.Data.WorldSector.WorldObjectNPCBase.Level undefined'
- );
- null !== f && 6 === f[2].length
- ? (c.getID = function() {
- return this[f[2]];
- })
- : console.error(
- 'Error - ClientLib.Data.WorldSector.WorldObjectNPCBase.ID undefined'
- );
- c = ClientLib.Data.WorldSector.WorldObjectNPCCamp.prototype;
- re = /100\){0,1};this\.(.{6})=Math.floor.*this\.(.{6})=\(*g\>\>(22|0x16)\)*\&.*=-1;\}this\.(.{6})=\(/;
- var b = r._g(
- c.$ctor,
- re,
- 'ClientLib.Data.WorldSector.WorldObjectNPCCamp',
- 4
- );
- null !== b && 6 === b[1].length
- ? (c.getLevel = function() {
- return this[b[1]];
- })
- : console.error(
- 'Error - ClientLib.Data.WorldSector.WorldObjectNPCCamp.Level undefined'
- );
- null !== b && 6 === b[2].length
- ? (c.getCampType = function() {
- return this[b[2]];
- })
- : console.error(
- 'Error - ClientLib.Data.WorldSector.WorldObjectNPCCamp.CampType undefined'
- );
- null !== b && 6 === b[4].length
- ? (c.getID = function() {
- return this[b[4]];
- })
- : console.error(
- 'Error - ClientLib.Data.WorldSector.WorldObjectNPCCamp.ID undefined'
- );
- d._patched = !0;
- }
- },
- },
- d = null;
- qx.Class.define('CncEcoScanner', {
- type: 'singleton',
- extend: qx.core.Object,
- members: {
- initialize: function() {
- try {
- h('Scanner loadet\n'),
- CncEcomain.getInstance().AddMainMenu(
- 'scan layouts',
- function() {
- CncEcoScanner.getInstance().scan();
- },
- 'Alt+s'
- ),
- (d = CncEcoScanner.getInstance()),
- (d.win = CncEcomain.getInstance().getWindow()),
- (d.storage = CncEcostorage.getInstance()),
- (d.xhr = l.xhr),
- (d.winOpen = CncEcomain.getInstance()),
- d.startup();
- } catch (c) {
- h(c);
- }
- },
- _patched: !1,
- _bases: {},
- _selectionBases: {},
- _scanned: [],
- _toScan: [],
- _scanning: !1,
- failCount: 0,
- wincounter: 0,
- basecounter: 0,
- button: function() {
- if (!0 === d._abort) {
- var c = new qx.ui.form.Button('resume');
- c.addListener(
- 'execute',
- function() {
- d.resume();
- },
- this
- );
- } else
- (c = new qx.ui.form.Button('stop')),
- c.addListener(
- 'execute',
- function(c) {
- d.abort();
- var b = ClientLib.Data.MainData.GetInstance();
- c = b.get_Player().get_Name();
- var f = b.get_Server().get_WorldId(),
- b = b.get_Alliance().get_Id();
- d.xhr.send(
- 'https://cnc-eco.herokuapp.com/api/v1/layouts?pl=' +
- c +
- '&w=' +
- f +
- '&a=' +
- b,
- 'POST',
- null,
- d._bases,
- h
- );
- },
- this
- );
- return c;
- },
- scan: function(c) {
- h('start scan');
- if (d._scanning) h('BaseScanner._scanning');
- else if (
- (null == c &&
- (d.win.isActive() && (d.win.delall(), d.win.close()),
- d.win.open()),
- !0 === d._abort)
- )
- d.resume();
- else {
- d.win.push('start Scanning');
- d._bases = {};
- d._scanning = !0;
- d._count = 0;
- d._done = 0;
- d.index = -1;
- d._toScanMap = {};
- d._toScan = [];
- d.basecounter = 0;
- c = d.storage.get('scan');
- Array.isArray(c) ||
- (d.storage.set('scan', '[]'), (c = d.storage.get('scan')));
- for (var f = d.storage.get('scan').length; 800 <= f; )
- c.shift(), f--, 800 >= f && d.storage.set('scan', c);
- c = ClientLib.Data.MainData.GetInstance()
- .get_Cities()
- .get_AllCities().d;
- for (var b in c)
- c.hasOwnProperty(b) &&
- ((f = c[b]),
- void 0 === f && h('unable to find base: ' + b),
- d.getNearByBases(f));
- d.scanNextBase();
- }
- },
- getNearByBases: function(c) {
- for (
- var f,
- b = c.get_PosX(),
- l = c.get_PosY(),
- g =
- ClientLib.Data.MainData.GetInstance()
- .get_Server()
- .get_MaxAttackDistance() - 0.5,
- n = ClientLib.Data.MainData.GetInstance().get_World(),
- q = 0,
- k = l - 11;
- k <= l + 11;
- k++
- )
- for (var h = b - 11; h <= b + 11; h++) {
- var p = Math.abs(b - h),
- r = Math.abs(l - k),
- p = Math.sqrt(p * p + r * r);
- if (
- !(
- p >= g ||
- void 0 !== d._toScanMap[h + ':' + k] ||
- void 0 !== d._bases[h + ':' + k] ||
- ((r = n.GetObjectFromPosition(h, k)),
- null === r ||
- (r.Type !==
- ClientLib.Data.WorldSector.ObjectType.NPCBase &&
- r.Type !==
- ClientLib.Data.WorldSector.ObjectType
- .NPCCamp) ||
- ('function' === typeof r.getCampType &&
- r.getCampType() ===
- ClientLib.Data.Reports.ENPCCampType
- .Destroyed))
- )
- ) {
- var x = 0;
- if (null !== d.storage.get('scan'))
- if (
- ((f = d.storage.get('scan')),
- !0 === Array.isArray(f))
- )
- for (
- var m = d.storage.get('scan').length, A = 0;
- A < m;
- A++
- )
- r.getID() === f[A] && (x = 1);
- else d.storage.set('scan', '[]');
- else d.storage.set('scan', '[]');
- 0 < x ||
- ((f = d.storage.get('scan')),
- f.push(r.getID()),
- CncEcostorage.getInstance().set('scan', f),
- (m = ClientLib.Data.MainData.GetInstance()),
- (f = m.get_Player().get_Name()),
- (x = m.get_Server().get_WorldId()),
- (m = m.get_Alliance().get_Id()),
- (p = {
- x: h,
- y: k,
- level: r.getLevel(),
- id: r.getID(),
- distance: p,
- selectedBaseID: c.get_Id(),
- alliance: m,
- world: x,
- player: f,
- failCount: 0,
- }),
- d._toScan.push(p),
- (d._toScanMap[h + ':' + k] = p),
- q++);
- }
- }
- },
- abort: function() {
- d._scanning = !1;
- d._abort = !0;
- d.win.delall();
- d.win.push('stop scan');
- d.win.push((' ' + d.index).slice(-3) + '/' + d._toScan.length);
- d.win.push('', d.button());
- },
- resume: function() {
- d._scanning = !0;
- d._abort = !1;
- d.win.delall();
- d.win.push('resume scan');
- d.win.push((' ' + d.index).slice(-3) + '/' + d._toScan.length);
- d.win.push('', d.button());
- d.scanNextBase();
- },
- done: function() {
- d._done++;
- var c = ClientLib.Data.MainData.GetInstance();
- var f = c.get_Player().get_Name(),
- b = c.get_Server().get_WorldId(),
- l = c.get_Alliance().get_Id();
- !1 === d._scanning && d._count === d._done && !1 === d._abort
- ? (d.win.push(''),
- 0 < d._count
- ? (d.win.push('Done! (' + d._count + ')'),
- d.win.push(''),
- d.xhr.send(
- 'https://cnc-eco.herokuapp.com/api/v1/layouts?pl=' +
- f +
- '&w=' +
- b +
- '&a=' +
- l,
- 'POST',
- null,
- d._bases,
- h
- ),
- d.winOpen.winOpen('layout', 'layout'),
- 5 > Object.keys(d._bases).length &&
- ((c = CncEcoScanner.Layout.window.getInstance()),
- !0 !== c.active &&
- ((c.active = !0),
- c.openWindow('CncEco Scan result', null, 1)),
- c.FO(d._bases),
- d.xhr.send(
- 'https://cnc-eco.herokuapp.com/api/v1/layouts?pl=' +
- f +
- '&w=' +
- b +
- '&a=' +
- l,
- 'POST',
- null,
- d._bases,
- h
- ),
- (d._bases = {})))
- : (d.win.push('Done! 0 new layouts to scan'), d.win.push('')))
- : !1 === d._scanning && d._count + 1 === d._done && !1 === d._abort
- ? (d.win.delall(),
- d.win.push(''),
- 0 < d._count
- ? (d.win.push('Done! (' + d._count + ')'),
- d.win.push(''),
- d.xhr.send(
- 'https://cnc-eco.herokuapp.com/api/v1/layouts?pl=' +
- f +
- '&w=' +
- b +
- '&a=' +
- l,
- 'POST',
- null,
- d._bases,
- h
- ),
- d.winOpen.winOpen('layout', 'layout'),
- 5 > Object.keys(d._bases).length &&
- ((c = CncEcoScanner.Layout.window.getInstance()),
- !0 !== c.active &&
- ((c.active = !0),
- c.openWindow('CncEco Scan result', null, 1)),
- c.FO(d._bases),
- d.xhr.send(
- 'https://cnc-eco.herokuapp.com/api/v1/layouts?pl=' +
- f +
- '&w=' +
- b +
- '&a=' +
- l,
- 'POST',
- null,
- d._bases,
- h
- ),
- (d._bases = {})))
- : (d.win.push('Done! 0 new layouts to scan'), d.win.push('')))
- : !1 === d._scanning && !1 === d._abort && d.win.push('Scan');
- },
- getBaseLayout: function(c) {
- var f = ClientLib.Data.MainData.GetInstance(),
- b = f.get_Player().get_Name(),
- l = f.get_Server().get_WorldId(),
- f = f.get_Alliance().get_Id();
- if (!d._abort)
- if (void 0 === c)
- (d._abort = !1),
- (d._scanning = !1),
- !1 === d._abort && d.done(),
- h('[BaseScanner] base undefined');
- else {
- d._lastBaseID !== c.selectedBaseID &&
- d.setCurrentBase(c.selectedBaseID);
- ClientLib.Data.MainData.GetInstance()
- .get_Cities()
- .set_CurrentCityId(c.id);
- var g = ClientLib.Data.MainData.GetInstance()
- .get_Cities()
- .GetCity(c.id);
- ClientLib.Net.CommunicationManager.GetInstance().UserAction();
- if (g.get_IsGhostMode()) return d.scanNextBase();
- if (0 === g.GetBuildingsConditionInPercent())
- return (
- c.failCount++,
- 30 === c.failCount
- ? (h('[BaseScanner] max_fails'), d.scanNextBase())
- : setTimeout(function() {
- d.getBaseLayout(c);
- }, 99)
- );
- var n = g.get_Name();
- c.layout = d.getLayout(g);
- c.name = n;
- d._bases[c.x + ':' + c.y] = c;
- d.basecounter++;
- g = CncEcoScanner.Layout.window.getInstance();
- !0 !== g.active &&
- ((g.active = !0),
- g.openWindow('CncEco Scan result', null, 1));
- 4 < d.basecounter &&
- ((d.basecounter = 0),
- g.FO(d._bases),
- d.xhr.send(
- 'https://cnc-eco.herokuapp.com/api/v1/layouts?pl=' +
- b +
- '&w=' +
- l +
- '&a=' +
- f,
- 'POST',
- null,
- d._bases,
- h
- ),
- (d._bases = {}));
- ClientLib.Data.MainData.GetInstance()
- .get_Server()
- .get_WorldId();
- ClientLib.Data.MainData.GetInstance()
- .get_Player()
- .get_Name();
- d._count++;
- d.printScanResults(c);
- d.done();
- d.scanNextBase();
- }
- },
- scanNextBase: function() {
- !0 !== d._abort &&
- (void 0 === d.index ? (d.index = 0) : d.index++,
- d.getBaseLayout(d._toScan[d.index]));
- },
- isScanning: function() {
- return !0 === d._scanning;
- },
- printScanResults: function(c) {
- d.win.delall();
- if (!1 === d._abort)
- switch (d.wincounter) {
- case 0:
- d.wincounter++;
- d.win.push('Scanning');
- break;
- case 1:
- d.wincounter++;
- d.win.push('Scanning.');
- break;
- case 2:
- d.wincounter++;
- d.win.push('Scanning..');
- break;
- case 3:
- d.wincounter = 0;
- d.win.push('Scanning...');
- break;
- default:
- d.win.push('Scanning');
- }
- else d.win.push('Scanning');
- d.win.push((' ' + d.index).slice(-3) + '/' + d._toScan.length);
- d.win.push('', d.button());
- },
- getLayout: function(c) {
- for (var f = [], b = 0; 16 > b; b++)
- for (var d = 0; 9 > d; d++)
- switch (c.GetResourceType(d, b)) {
- case 0:
- f.push('.');
- break;
- case 1:
- f.push('c');
- break;
- case 2:
- f.push('t');
- break;
- case 4:
- f.push('j');
- break;
- case 5:
- f.push('h');
- break;
- case 6:
- f.push('l');
- break;
- case 7:
- f.push('k');
- }
- return f.join('');
- },
- setCurrentBase: function(c) {
- var f = ClientLib.Data.MainData.GetInstance()
- .get_Cities()
- .get_AllCities().d[c];
- ClientLib.Vis.VisMain.GetInstance().CenterGridPosition(
- f.get_PosX(),
- f.get_PosY()
- );
- ClientLib.Vis.VisMain.GetInstance().Update();
- ClientLib.Vis.VisMain.GetInstance().ViewUpdate();
- d._lastBaseID = c;
- },
- startup: function() {
- r.patch();
- phe.cnc.Util.attachNetEvent(
- ClientLib.Vis.VisMain.GetInstance(),
- 'ViewModeChange',
- ClientLib.Vis.SelectionChange,
- d,
- d.onSelectionChange
- );
- },
- destroy: function() {
- phe.cnc.Util.detachNetEvent(
- ClientLib.Vis.VisMain.GetInstance(),
- 'ViewModeChange',
- ClientLib.Vis.SelectionChange,
- d,
- d.onSelectionChange
- );
- },
- onSelectionChange: function() {
- try {
- if (!d.isScanning() && !0 !== d._abort) {
- d.failCount = 0;
- d._bases = {};
- d._count = 0;
- d._done = 0;
- d.index = -1;
- d._toScanMap = {};
- d._toScan = [];
- void 0 !== d.selectionChange &&
- (clearTimeout(d.selectionChange),
- (d.selectionChange = void 0));
- var c = ClientLib.Vis.VisMain.GetInstance().get_SelectedObject(),
- c = ClientLib.Data.MainData.GetInstance()
- .get_Cities()
- .get_CurrentCity();
- if (
- null !== c &&
- !0 ===
- ClientLib.Data.MainData.GetInstance()
- .get_Cities()
- .get_CurrentCity()
- .IsNPC()
- ) {
- for (id in d._scanned)
- if (d._scanned[id] == c.get_Id()) {
- console.log('already scanned');
- return;
- }
- d._scanned.push(c.get_Id());
- d.scanCurrentBase();
- }
- }
- } catch (f) {
- console.log(f);
- }
- },
- scanCurrentBase: function() {
- var c = ClientLib.Data.MainData.GetInstance().get_Cities(),
- f = c.get_CurrentCity(),
- b = c.get_CurrentOwnCity();
- d.failCount++;
- if (!(30 < d.failCount)) {
- if (null === f)
- return (
- h('base = 0'),
- (d.selectionChange = setTimeout(d.scanCurrentBase, 100)),
- d.selectionChange
- );
- void 0 !== d.selectionChange &&
- (clearTimeout(d.selectionChange), (d.selectionChange = void 0));
- var c = f.get_PosX(),
- l = f.get_PosY();
- f.get_Id();
- if (f.get_IsGhostMode()) d.failCount = 0;
- else if (0 === f.GetBuildingsConditionInPercent())
- d.selectionChange = setTimeout(d.scanCurrentBase, 100);
- else {
- d.failCount = 0;
- var g = ClientLib.Data.MainData.GetInstance(),
- n = g.get_Player().get_Name(),
- q = g.get_Server().get_WorldId(),
- g = g.get_Alliance().get_Id(),
- k = ClientLib.Base.Util.CalculateDistance(
- f.get_PosX(),
- f.get_PosY(),
- b.get_PosX(),
- b.get_PosY()
- ),
- b = {
- x: f.get_PosX(),
- y: f.get_PosY(),
- level: f.get_BaseLevel(),
- id: f.get_Id(),
- distance: k,
- selectedBaseID: b.get_Id(),
- alliance: g,
- world: q,
- player: n,
- failCount: 0,
- },
- k = f.get_Name();
- b.layout = d.getLayout(f);
- b.name = k;
- b.alliance = ClientLib.Data.MainData.GetInstance()
- .get_Alliance()
- .get_Id();
- d._bases[c + ':' + l] = b;
- d._selectionBases[c + ':' + l] = b;
- ClientLib.Data.MainData.GetInstance()
- .get_Server()
- .get_WorldId();
- ClientLib.Data.MainData.GetInstance()
- .get_Player()
- .get_Name();
- ClientLib.Data.MainData.GetInstance()
- .get_Alliance()
- .get_Id();
- d.xhr.send(
- 'https://cnc-eco.herokuapp.com/api/v1/layouts?pl=' +
- n +
- '&w=' +
- q +
- '&a=' +
- g,
- 'POST',
- null,
- d._bases,
- h
- );
- }
- }
- },
- },
- });
- qx.Class.define('CncEcostorage', {
- type: 'singleton',
- extend: qx.core.Object,
- members: {
- get: function(c) {
- c = localStorage.getItem('CncEco:' + c);
- return null === c ? c : JSON.parse(c);
- },
- set: function(c, f) {
- if (null === f || void 0 === f) return l.storage.remove(c);
- 'string' !== typeof f && (f = JSON.stringify(f));
- return localStorage.setItem('CncEco:' + c, f);
- },
- remove: function(c) {
- return localStorage.removeItem('CncEco:' + c);
- },
- initialize: function() {
- try {
- h('CncEcostorage loadet');
- } catch (c) {
- h(c);
- }
- },
- },
- });
- qx.Class.define('CncEcoReports', {
- type: 'singleton',
- extend: qx.core.Object,
- statics: {
- ResourceTypes: {},
- },
- defer: function(statics) {
- // var fileManager = ClientLib.File.FileManager.GetInstance();
- statics.ResourceTypes[
- ClientLib.Base.EResourceType.Tiberium
- ] = 1; // fileManager.GetPhysicalPath('ui/common/icn_res_tiberium.png');
- statics.ResourceTypes[
- ClientLib.Base.EResourceType.Crystal
- ] = 1; // fileManager.GetPhysicalPath('ui/common/icn_res_chrystal.png');
- statics.ResourceTypes[
- ClientLib.Base.EResourceType.Gold
- ] = 1; // fileManager.GetPhysicalPath('ui/common/icn_res_dollar.png');
- statics.ResourceTypes[
- ClientLib.Base.EResourceType.Power
- ] = 1; // fileManager.GetPhysicalPath('ui/common/icn_res_power.png');
- statics.ResourceTypes[
- ClientLib.Base.EResourceType.ResearchPoints
- ] = 1; // fileManager.GetPhysicalPath('ui/common/icn_res_research.png');
- // const savedReports = CncEcostorage.getInstance().get('reports') || {}
- // const date = new Date();
- // date.setDate(date.getDate() - 15);
- //
- // Object.keys(savedReports).forEach(id => {
- // console.log(id, savedReports[id], data)
- // })
- //
- // CncEcostorage.getInstance().set('reports', savedReports)
- },
- members: {
- reports: null,
- newReports: [],
- init: function() {
- this.destroy()
- const reports = ClientLib.Data.MainData.GetInstance().get_Reports();
- this.reports = reports;
- console.log('init reports', reports)
-
- phe.cnc.Util.attachNetEvent(
- reports,
- 'ReportsDelivered',
- ClientLib.Data.Reports.ReportsDelivered,
- this,
- this.onReportsDelivered
- );
- },
- destroy: function() {
- phe.cnc.Util.detachNetEvent(
- ClientLib.Data.MainData.GetInstance().get_Reports(),
- 'ReportDelivered',
- ClientLib.Data.Reports.ReportDelivered,
- this,
- this.onReportDelivered
- );
- } ,
- onReportsDelivered: function(reports) {
- console.log('all reports delivered');
- const savedReports = CncEcostorage.getInstance().get('reports') || {}
- // console.log('savedReports - before', savedReports)
- this.newReports = []; // reset reports
- reports.forEach(report => {
- const id = report.get_Id()
- if(!savedReports[id]) {
- savedReports[id] = report.get_Time()
- this.newReports.push(report)
- }
- })
- CncEcostorage.getInstance().set('reports', savedReports)
- // console.log('savedReports', savedReports)
- console.log('newReports', this.newReports)
- this.newReports.length && this.onAllReportsLoaded()
- },
-
- onAllReportsLoaded: function() {
- console.time('onAllReportsLoaded')
- // console.log('all loaded reports');
- // console.log(this.newReports);
- if (this.newReports.length > 0) {
- // this.newReports.forEach(report => {
- // this.reports.RequestReportData(report);
- // });
-
- // var attackerBaseIds = [];
- // var defenderBaseIds = [];
- var repairTimeCosts = 0;
- var minCommandPointCosts = 0;
- var maxCommandPointCosts = 0;
- // var firstAttack = null;
- // var lastAttack = 0;
-
- var loot = {};
- var getTotalLootMethod, getRepairCostsMethod;
-
- var reports = [];
-
- // off
- const { CombatReport } = ClientLib.Data.Reports;
- if (
- this.newReports[0].get_PlayerReportType() ===
- ClientLib.Data.Reports.EPlayerReportType.CombatOffense
- ) {
- getTotalLootMethod =
- CombatReport.prototype.GetAttackerTotalResourceReceived;
- getRepairCostsMethod = CombatReport.prototype.GetAttackerRepairCosts;
- }
- // def
- else {
- getTotalLootMethod =
- CombatReport.prototype.GetDefenderTotalResourceCosts;
- getRepairCostsMethod = CombatReport.prototype.GetDefenderRepairCosts;
- }
-
- // init sever configs for cp costs
- var server = ClientLib.Data.MainData.GetInstance().get_Server();
- var player = ClientLib.Data.MainData.GetInstance().get_Player();
- var combatCostMinimum = server.get_CombatCostMinimum();
- var combatCostMinimumPvP = server.get_UsesRebalancingI()
- ? server.get_PvPCombatCostMinimum()
- : combatCostMinimum;
- var combatCostPerFieldInside = server.get_CombatCostPerField();
- var combatCostPerFieldOutside = server.get_CombatCostPerFieldOutsideTerritory();
-
- // console.log({player, server})
-
- // loop through all reports
- for (var i = 0; i < this.newReports.length; i++) {
- var report = this.newReports[i];
- // console.log({ report });
-
- var rapport = {};
- rapport.id = report.get_Id();
-
- if (!(report instanceof CombatReport)) {
- continue;
- }
-
- rapport.attackerBaseId = report.get_AttackerBaseId();
- rapport.defenderBaseId = report.get_DefenderBaseId();
-
- // if (attackerBaseIds.indexOf(report.get_AttackerBaseId()) === -1) {
- // attackerBaseIds.push(report.get_AttackerBaseId());
- // }
- //
- // if (defenderBaseIds.indexOf(report.get_DefenderBaseId()) === -1) {
- // defenderBaseIds.push(report.get_DefenderBaseId());
- // }
-
- // add repair time
- repairTimeCosts += report.GetAttackerMaxRepairTime();
- rapport.maxRep = report.GetAttackerMaxRepairTime();
- rapport.infRep = report.GetAttackerInfantryRepairCosts();
- rapport.vehRep = report.GetAttackerVehicleRepairCosts();
- rapport.airRep = report.GetAttackerAirRepairCosts();
-
- var distance = Math.sqrt(
- Math.pow(
- report.get_AttackerBaseXCoord() -
- report.get_DefenderBaseXCoord(),
- 2
- ) +
- Math.pow(
- report.get_AttackerBaseYCoord() -
- report.get_DefenderBaseYCoord(),
- 2
- )
- );
-
- rapport.distance = distance; // total distane between coords
- let cost
- switch (report.get_Type()) {
- case ClientLib.Data.Reports.EReportType.Combat: // 1, pvp
- var isFriendlyTerritory =
- report.get_AttackerAllianceName() ===
- report.get_DefenderAllianceName();
- cost = Math.floor(
- combatCostMinimumPvP +
- (isFriendlyTerritory
- ? combatCostPerFieldInside
- : combatCostPerFieldOutside) *
- distance
- );
- // minCommandPointCosts += cost;
- // maxCommandPointCosts += cost;
- rapport.def = true;
- rapport.minCp = cost;
- rapport.maxCp = cost;
- break;
- case ClientLib.Data.Reports.EReportType.NPCRaid: // 2, pvp
- switch (parseInt(report.get_DefenderBaseName(), 10)) {
- case ClientLib.Data.Reports.ENPCCampType.Base: // 4
- case ClientLib.Data.Reports.ENPCCampType.Fortress: // 6
- cost = Math.floor(
- combatCostMinimum +
- combatCostPerFieldOutside * distance
- );
- // minCommandPointCosts += cost;
- // maxCommandPointCosts += cost;
- rapport.off = true;
- rapport.minCp = cost;
- rapport.maxCp = cost;
- break;
- default:
- const minCp = Math.floor(
- combatCostMinimum +
- combatCostPerFieldInside * distance
- );
- const maxCp = Math.floor(
- combatCostMinimum +
- combatCostPerFieldOutside * distance
- );
- // minCommandPointCosts += minCp;
- // maxCommandPointCosts += maxCp;
- rapport.off = true;
- rapport.minCp = minCp;
- rapport.maxCp = maxCp;
- }
- break;
- case ClientLib.Data.Reports.EReportType.NPCPlayerCombat: // 5
- // No repair time or command point cost for Forgotten attacks
- break;
- default:
- throw 'Unexpected report type (' + report.get_Type() + ')';
- }
-
- rapport.time = report.get_Time();
-
- /**
- @discroption: calc the loot with out the rep res costs
- */
- for (var resourceType in CncEcoReports.ResourceTypes) {
- var resourceCount =
- getTotalLootMethod.call(report, resourceType) -
- getRepairCostsMethod.call(report, resourceType);
-
- if (resourceCount !== 0) {
- if (!(resourceType in loot)) {
- loot[resourceType] = 0;
- }
-
- loot[resourceType] += resourceCount;
- }
- }
- rapport.loot = loot;
-
- reports.push(rapport);
- }
-
- // console.log({
- // server,
- // player,
- // combatCostMinimum,
- // combatCostMinimumPvP,
- // combatCostPerFieldInside,
- // combatCostPerFieldOutside,
- //
- // minCommandPointCosts,
- // maxCommandPointCosts,
- // // firstAttack,
- // // lastAttack,
- // getTotalLootMethod,
- // getRepairCostsMethod,
- //
- // // attackerBaseIds, // id off attacker bases, the player pvp attacker maybe
- // // defenderBaseIds, // id of defender bases, the bases who got attacked, maybe the player also in pvp
- //
- // repairTimeCosts, // total time in s
- // loot, //
- // });
- //
- // console.warn('All reports');
-
- fetch('https://cnc-eco.herokuapp.com/api/v1/reports/update', {
- // fetch('http://localhost:8000/api/v1/reports/update', {
- method: 'POST',
- headers: {
- "content-type": "application/json",
- },
- body: JSON.stringify({
- reports,
- world: server.get_WorldId(),
- player: player.get_Name(),
- playerId: player.get_Id(),
- accountId: player.get_AccountId(),
- })
- }).then(async r => {
- const data = await r.json()
- console.log('all reports delivered', reports, data)
- }).catch(e => console.warn(e))
- }
- console.timeEnd('onAllReportsLoaded')
- },
-
- initialize: function() {
- this.init();
- try {
- h('CncEcoReports loaded');
- } catch (c) {
- h(c);
- }
- },
- },
- });
- qx.Class.define('CncEcoxhr', {
- type: 'singleton',
- extend: qx.core.Object,
- members: {
- send: function(c, f) {
- var b = new qx.bom.request.Xhr()._createNativeXhr();
- b.timeout = 3e3;
- b.onload = function() {
- 1 == b.responseText
- ? h('CncEcoxhr Send true!')
- : 0 == b.responseText
- ? h('CncEcoxhr is Error :: ' + b.responseText)
- : 1 !== b.responseText;
- b.abort();
- };
- b.ontimeout = function() {
- h('xhr timeout');
- b.abort();
- };
- b.onloadend = function() {
- h('xhr timeout');
- b.abort();
- };
- b.open('POST', c, !0);
- b.setRequestHeader('Method', 'POST');
- b.setRequestHeader('Content-Type', 'application/json');
- b.send(JSON.stringify(f));
- },
- initialize: function() {
- try {
- h('CncEcoxhr loadet');
- } catch (c) {
- h(c);
- }
- },
- },
- });
- l.xhr = {
- _load: !1,
- _xhr: null,
- _timeout: 3e3,
- start: function() {
- var c = null;
- if (window.XMLHttpRequest) c = new XMLHttpRequest();
- else if (window.ActiveXObject)
- try {
- c = new ActiveXObject('Msxml2.XMLHTTP.6.0');
- } catch (f) {
- try {
- c = new ActiveXObject('Msxml2.XMLHTTP.3.0');
- } catch (b) {
- h(b);
- }
- }
- if (null === c) return !1;
- l.xhr._load = !0;
- l.xhr._xhr = c;
- l.xhr._xhr.timeout = l.xhr._timeout;
- return l.xhr._load;
- },
- send: function(c, f, b, d, g) {
- try {
- if (null !== l.xhr._xhr)
- if (!1 !== l.xhr._load && null !== l.xhr._xhr) {
- l.xhr._xhr.open(f, c, !0);
- if (null !== b && 'object' == typeof b)
- for (var n in b)
- b[n].hasOwnProperty('name') &&
- b[n].hasOwnProperty('value') &&
- l.xhr._xhr.setRequestHeader(b[n].name, b[n].value);
- l.xhr._xhr.onload = function() {
- try {
- 4 == l.xhr._xhr.readyState &&
- 200 == l.xhr._xhr.status &&
- 'function' == typeof g &&
- g(l.xhr._xhr.responseText);
- } catch (q) {
- h(q);
- }
- };
- null !== d
- ? ('stringify' == JSON.isjson(d) &&
- !0 === Array.isarray(d)) ||
- (!0 === Object.isobj(d) && 'stringify' == JSON.isjson(d))
- ? l.xhr._xhr.send(JSON.stringify(d))
- : h(e)
- : l.xhr._xhr.send(null);
- } else alert('Ihr Browser unterstuetzt kein Ajax!');
- } catch (q) {
- h(q);
- }
- },
- };
- qx.Class.define('CncEcoScanner.Layout.window', {
- type: 'singleton',
- extend: qx.ui.window.Window,
- construct: function() {
- try {
- this.base(arguments),
- this.setWidth(925),
- this.setHeight(700),
- this.setContentPadding(10),
- this.setShowMinimize(!1),
- this.setShowMaximize(!0),
- this.setShowClose(!0),
- this.setResizable(!0),
- this.setAllowMaximize(!0),
- this.setAllowMinimize(!1),
- this.setAllowClose(!0),
- this.setShowStatusbar(!1),
- this.setDecorator(null),
- this.setPadding(10),
- this.setLayout(new qx.ui.layout.Grow()),
- this.addListener(
- 'close',
- function() {
- this.active = !1;
- this.row = 0;
- this.ZW = [];
- this.removeAll();
- this.ZZ = new qx.ui.container.Scroll();
- this.ZY = new qx.ui.container.Composite(
- new qx.ui.layout.Flow()
- );
- this.add(this.ZZ, { flex: 3 });
- this.ZZ.add(this.ZY);
- },
- this
- ),
- (this.ZW = []),
- this.removeAll(),
- (this.ZZ = new qx.ui.container.Scroll()),
- (this.ZY = new qx.ui.container.Composite(new qx.ui.layout.Flow())),
- this.add(this.ZZ, { flex: 3 }),
- this.ZZ.add(this.ZY);
- } catch (c) {
- console.debug('CncEcoScanner.Layout.window construct: ', c);
- }
- },
- members: {
- ZW: null,
- ZZ: null,
- ZY: null,
- ZX: null,
- row: 0,
- openWindow: function(c, f, b) {
- try {
- '' !== c && this.setCaption(c),
- this.isVisible() && null === f
- ? this.close()
- : null !== b
- ? (this.open(), this.moveTo(30, 100))
- : (this.open(),
- this.moveTo(30, 100),
- null !== f ? this.FO(f) : this.FO());
- } catch (S) {
- console.log('CncEcoScanner.Layout.window.openWindow: ', S);
- }
- },
- listener: function(c) {
- var f = qx.core.Init.getApplication();
- f.getBackgroundArea().closeCityInfo();
- f.getPlayArea().setView(
- ClientLib.Data.PlayerAreaViewMode.pavmCombatSetupDefense,
- c,
- 0,
- 0
- );
- f = ClientLib.Data.MainData.GetInstance()
- .get_Cities()
- .get_CurrentOwnCity();
- null != f &&
- f.get_CityArmyFormationsManager().set_CurrentTargetBaseId(c);
- },
- FO: function(c) {
- try {
- if (!0 !== this.active)
- return setTimeout(function() {
- this.openWindow('', c);
- }, 90);
- var f = {
- '.':
- 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABAQMAAAAl21bKAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAADUExURQAAAKd6PdoAAAABdFJOUwBA5thmAAAACklEQVQI12NgAAAAAgAB4iG8MwAAAABJRU5ErkJggg==',
- c:
- 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABwAAAAcCAMAAABF0y+mAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAGMUExURQAAAJvj+p3l+57m+5vj+prj+p7m+5nh+pni+pri+pni+pri+pvj+5ri+pzl+57n+57m+5ff+Z7m+5nh+qDv/Zvj+57m+6Hr/KL6/pni+p30/Zrl+53z/aLt/KL9/pf0/Zn3/Zv4/pfr+6L0/Zf3/Z7n+5fs+6L1/Zf6/qL8/qL2/pfm+qLw/AlQf5n8/BJVbwlTq3HQ05P29wRFaGzY3hZnhAtRn4zu7h2JtBVxnQMtShFidgZMdQdIk5/9/gY7eQI5YAY9lgY6QghmnAZIUQtUlUe26RmQzwhHXAqAvBFzwg9WjRXM4AtpkTGZowtbZwQscWSt3SuF2SiKk3/j5pLb8WD29UiZpFzR1VzP4htnmjS0xiVpdR2VswpIiSCb6Tap6Ac1g33s7kCq0CeDswQxYjSx2cf2/GrQ6x5mrGfH8izk9UzCyzWEmyuouw+XpAuPyi6ApDqLkF7GzWS9wxbD8TKJzEmPwB+x7ShDQRS90zKGmXHl9wdYtX3M6KHo+k6stWzoymS0yB9GXksjNTkAAAAzdFJOUwAHHxQLFxsBBQMkDQkoMUZCTyw3fBA9VOVYqWWhS/W53sh3sM9ok43r2b52cP///////t3sG3QAAAIISURBVCjPrZJVc9tAFEazwpVkkRljOw23smzZlpkZYjvMzFBmTOGPd5VkAtO+dKb3UWe+785dnaGhfxgazd8Jw0ATQQDIPOQ0AwEAhI2kMIy0EfBBBKLvCJgtksdq4UmCuZeDNooVJbvoGPMvRPyimQR3xQxBCVYt5LY+ckbWkwm3yHJ3UYibfVNHmyHnwupSvfE0MWIhb7fSJkzyxpZ29rW1xcW5udRyUEbRm2KG4x1TK1p9O7ZWa8/OJjcSjy0kuKEMLow568c7794fhPVOPK4mxmXeBq7XQkrKx051vVR4Ga4pivJZC3jtmA1et7KO/MZhKVwqbClKLhv9Hll+My6QwGAAFzzTkfRgd1dVy9Fcpv3tx+r+qISZjFIOEyece83BYGbzeTodz54eX54dTMosgSAKPgldrMd/9T91u61oOqe3z05mQjLPGUdS9umLlLqlds/P31aKh/rX2s8jBI0kTWBivpct6J3Glw/blWIh11H6/VdBu7GTIbCJlUyxFC5+TDVeVNRqtdXqRUZHzDg6hTFRPi2WiSrJeLmZypab0eTJpNclUMbb0wDnHW6tF8sP7z3LVOfnX4f8HhExSF+dQpkla9BrRT9seDgQcHtkC0sSVwxZwJFIAbsk+hwul0uWBJbkIHPrD+BsOEliGMvzPEvhHLhvGI38YiAESD3C9Id8/31+A0POUa1xABFzAAAAAElFTkSuQmCC',
- t:
- 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABwAAAAcCAMAAABF0y+mAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAGbUExURQAAAJri+pvj+prj+pnh+pjg+prj+pjh+pri+pzk+5rj+pni+pzl+5ri+pjh+pnh+prj+pnh+pni+pni+pjw/Jzl+5/s/Jrn+5ff+Zzl+5fz/Z/p/Jzw/Zf0/Jrm+5r3/aL4/Zfh+p7t/Jvt/Jv1/Zfv/Jvw/Jf6/aL6/gtsLQ6IVBKiXghkNm/Sw5H49ARQHJj7+g+FNwhdLYzx7ByrThCNQXvo1w1/OAt2NSvNZhKgRxCdURFyPAdlJRe/ZA2TToPt4y+yZxBsNh2YXA6RW2jcvxW3TTXykCqAWkachqD+/oLk3UeogUCeeWDEplSxnCJwVBKlWBqPNwMyFA2SKAqAUhyGPn71qDSTYhxfPC/liFHFdiTjbqr4sFnFiyCWSRCaQzrCfg1/Rz3ubGj0sVbTp7v7yBC8LBvmNBNKOSrtbxLKKV7xgkvenV3AoHzZzk6/mFHXTAtXLGndrVq5Wcr8zUvvjF+9e2HkmnTmr0fWem7m0C2nfxnVSFKPbRvUakbehimOUz3ORRbDbmveyTnfjnH1hFnMph+1ZunFEtoAAAApdFJOUwAUEBgJCw4CBAYkKC4bPR80RzddoExze1NB0FWIxWrv1GWUmdyvu93GYZ5Q7AAAAgFJREFUKM+tUtVy2wAQjJhZZrZjJ5LMzAxhJoeZy8zc767kNqk7zVOn+3g7eze3uyMj/wcYhuvA7poSBAICEAAixB80TsAoCAAMSYsiTzEoMawjQIikad5mkuSxoEPkUHxIiHK0edzpNvu92cZ9lyQy8O/FBMQ74gdZrzf+5NFR+oHLSoG3UgylTKHOUSFVL+ys9wpr004Wur2KA6I5/vl779vXva3N4+3ijN1KoTcPEYwQqF+f9o5PtHR6q7u04TGzDPJrMUw6xt9s7lZbbxvVUiKRn/UE3TSEDKQ4SJujfVX7oqmt4mIpo8xFIymJAvDBk5DNMjURbmtqrhkr1fL7L56mOzLLwMZFkHL4PZOPV9XESmW5vJZ/9Wzn+YnLROokBjOscyp70FxQzq7OcrGyuvFy/XXLY6UQ40nSFN9dShz2r87P32XCYW2xcVrIxK2kQYK0L6qUD9XM5fXldjPZ1mr5vZWJMYGDB6Q8p6y2tYv3Hz90c+GkUswpkyk/b5ike+eMLITVWvKiv99txmKV6r2U3cKSRjIYwrFydDb5MBv5lKwsx5SZ+mhAYklgEAwBUDaLfdoeckU78/ORyKjsM/Ec+DM0HIFIUXBLPrcl6ArJAUngSQC58R2HQYgjKZpnbYIgsDQHDJcI0ysEI3qJGB0ACBPYHb00+vd3Mf8JPwDEQVFKmgSbiAAAAABJRU5ErkJggg==',
- },
- b,
- d = CncEcoScanner.getInstance()._bases;
- null !== c && (d = c);
- for (b in d) {
- var g = d[b].layout,
- n = g.match(/t/g).length,
- l = g.match(/c/g).length;
- switch (
- ClientLib.Data.MainData.GetInstance()
- .get_Player()
- .get_Faction()
- ) {
- case ClientLib.Base.EFactionType.GDIFaction:
- var k = 'G';
- break;
- case ClientLib.Base.EFactionType.NODFaction:
- k = 'N';
- }
- for (
- var h =
- 'https://www.cnc-eco.de/b/map=2|' +
- k +
- '|' +
- k +
- '||' +
- g +
- '....................................|newEconomy',
- p =
- '<table border="2" cellspacing="0" cellpadding="0" onclick="CncEcoScanner.Layout.window.getInstance().listener(' +
- d[b].id +
- ')">',
- p =
- p +
- ('<tr><td colspan="9"><font color="#FFF">' +
- d[b].x +
- ':' +
- d[b].y +
- ' <img width="14" height="14" src="' +
- f.t +
- '"> ' +
- n +
- ' <img width="14" height="14" src="' +
- f.c +
- '"> ' +
- l +
- '</font></td></tr>'),
- r = 0;
- 72 > r;
- r++
- ) {
- var x = r - 9 * Math.floor(r / 9);
- 0 == x && (p += '<tr>');
- p +=
- '<td><img width="14" height="14" src="' +
- f[g.charAt(r)] +
- '"></td>';
- 8 == x && (p += '</tr>');
- }
- p +=
- '</table><a href="' +
- h +
- '" target="_blank" style="color:#FFFFFF;">CnCEco';
- this.resourceLayout = new qx.ui.basic.Label().set({
- backgroundColor: '#303030',
- value: p,
- padding: 10,
- rich: !0,
- });
- 7 == n
- ? this.resourceLayout.setBackgroundColor('#202820')
- : 5 == n &&
- this.resourceLayout.setBackgroundColor('#202028');
- this.ZW.push(this.resourceLayout);
- }
- this.ZY.removeAll();
- k = 0;
- this.row > k && (k = this.row);
- for (a = f = 0; a < this.ZW.length; a++)
- this.ZY.add(this.ZW[a], { row: k, column: f }),
- f++,
- 5 < f && ((f = 0), k++, this.row++);
- } catch (m) {
- console.log(m);
- }
- },
- },
- });
- qx.Class.define('CncEcoHIDE.window.container', {
- extend: qx.ui.container.Composite,
- construct: function(c) {
- try {
- qx.ui.container.Composite.call(this);
- this.set({
- layout: new qx.ui.layout.VBox(5),
- padding: 5,
- decorator: 'pane-light-opaque',
- });
- switch (c) {
- case 'o':
- console.log('add container o');
- this.add(
- new qx.ui.basic.Label('Hide Outposts').set({
- alignX: 'center',
- font: 'font_size_14_bold',
- })
- );
- var f = new qx.ui.container.Composite(new qx.ui.layout.HBox(5));
- f.add(
- new qx.ui.basic.Label(this.tr('level < ')).set({
- alignY: 'middle',
- })
- );
- f.add(
- (this.oLevel = new qx.ui.form.Spinner(1).set({
- maximum: 65,
- minimum: 1,
- }))
- );
- this.oLevel.addListener('changeValue', this.onInputo, this);
- f.add(
- (this.btnLevelo = new qx.ui.form.Button('del').set({
- toolTipText: 'delete outposts from view',
- }))
- );
- this.btnLevelo.addListener('execute', this.delo, this);
- f.add(
- (this.btnhideo = new qx.ui.form.Button('hide').set({
- toolTipText: 'hide targetinfo from view',
- }))
- );
- this.btnhideo.addListener('execute', this.hideo, this);
- this.add(f);
- break;
- case 'c':
- console.log('add container c');
- this.add(
- new qx.ui.basic.Label('Hide Camps').set({
- alignX: 'center',
- font: 'font_size_14_bold',
- })
- );
- f = new qx.ui.container.Composite(new qx.ui.layout.HBox(5));
- f.add(
- new qx.ui.basic.Label(this.tr('level < ')).set({
- alignY: 'middle',
- })
- );
- f.add(
- (this.cLevel = new qx.ui.form.Spinner(1).set({
- maximum: 65,
- minimum: 1,
- }))
- );
- this.cLevel.addListener('changeValue', this.onInputc, this);
- f.add(
- (this.btnLevelc = new qx.ui.form.Button('del').set({
- toolTipText: 'delete camps from view',
- }))
- );
- this.btnLevelc.addListener('execute', this.delc, this);
- f.add(
- (this.btnhidec = new qx.ui.form.Button('hide').set({
- toolTipText: 'hide targetinfo from view',
- }))
- );
- this.btnhidec.addListener('execute', this.hidec, this);
- this.add(f);
- break;
- case 'b':
- console.log('add container b');
- this.add(
- new qx.ui.basic.Label('Hide Bases').set({
- alignX: 'center',
- font: 'font_size_14_bold',
- })
- );
- f = new qx.ui.container.Composite(new qx.ui.layout.HBox(5));
- f.add(
- new qx.ui.basic.Label(this.tr('level < ')).set({
- alignY: 'middle',
- })
- );
- f.add(
- (this.bLevel = new qx.ui.form.Spinner(1).set({
- maximum: 47,
- minimum: 1,
- }))
- );
- this.bLevel.addListener('changeValue', this.onInputb, this);
- f.add(
- (this.btnLevelb = new qx.ui.form.Button('del').set({
- toolTipText: 'delete bases from view',
- }))
- );
- this.btnLevelb.addListener('execute', this.delb, this);
- f.add(
- (this.btnhideb = new qx.ui.form.Button('hide').set({
- toolTipText: 'hide targetinfo from view',
- }))
- );
- this.btnhideb.addListener('execute', this.hideb, this);
- this.add(f);
- break;
- case 'p':
- console.log('add container p');
- this.add(
- new qx.ui.basic.Label('Hide Player').set({
- alignX: 'center',
- font: 'font_size_14_bold',
- })
- );
- f = new qx.ui.container.Composite(new qx.ui.layout.HBox(5));
- f.add(
- new qx.ui.basic.Label(this.tr('level < ')).set({
- alignY: 'middle',
- })
- );
- f.add(
- (this.pLevel = new qx.ui.form.Spinner(1).set({
- maximum: 65,
- minimum: 1,
- }))
- );
- this.pLevel.addListener('changeValue', this.onInputp, this);
- f.add(
- (this.btnLevelp = new qx.ui.form.Button('del').set({
- toolTipText: 'delete player from viev',
- }))
- );
- this.btnLevelp.addListener('execute', this.delp, this);
- f.add(
- (this.btnhidep = new qx.ui.form.Button('hide').set({
- toolTipText: 'hide targetinfo from view',
- }))
- );
- this.btnhidep.addListener('execute', this.hidep, this);
- this.add(f);
- break;
- case 'reset':
- console.log('add container p');
- this.add(
- new qx.ui.basic.Label('Reset all').set({
- alignX: 'center',
- font: 'font_size_14_bold',
- })
- );
- f = new qx.ui.container.Composite(
- new qx.ui.layout.HBox(5, 'center')
- );
- f.add(
- (this.btnReset = new qx.ui.form.Button('reset').set({
- toolTipText: 'Reset view',
- }))
- );
- this.btnReset.addListener('execute', this.reset, this);
- this.add(f);
- break;
- default:
- console.log('add container default'),
- this.add(
- new qx.ui.basic.Label('Hide all').set({
- alignX: 'center',
- font: 'font_size_14_bold',
- })
- ),
- (f = new qx.ui.container.Composite(
- new qx.ui.layout.HBox(5)
- )),
- f.add(
- new qx.ui.basic.Label(this.tr('level < ')).set({
- alignY: 'middle',
- })
- ),
- f.add(
- (this.aLevel = new qx.ui.form.Spinner(1).set({
- maximum: 65,
- minimum: 1,
- }))
- ),
- this.aLevel.addListener('changeValue', this.onInputa, this),
- f.add(
- (this.btnLevela = new qx.ui.form.Button('del').set({
- toolTipText: 'delete all targets from view',
- }))
- ),
- this.btnLevela.addListener('execute', this.dela, this),
- f.add(
- (this.btnhidea = new qx.ui.form.Button('hide').set({
- toolTipText: 'hide targetinfo from view',
- }))
- ),
- this.btnhidea.addListener('execute', this.hidea, this),
- this.add(f);
- }
- this.dirtySectors = {};
- } catch (b) {
- console.log(
- 'Error setting up CncEcoHIDE.window.container Constructor: '
- ),
- console.log(b.toString());
- }
- },
- destruct: function() {},
- members: {
- dirtySectors: null,
- oLevel: null,
- btnHideCurrent: null,
- btndelCurrent: null,
- cLevel: null,
- bLevel: null,
- pLevel: null,
- aLevel: null,
- btnLevelo: null,
- btnLevelc: null,
- btnLevelb: null,
- btnLevelp: null,
- btnLevela: null,
- btnReset: null,
- btnhideo: null,
- btnhidec: null,
- btnhideb: null,
- btnhidep: null,
- btnhidea: null,
- markDirty: function(c) {
- c.get_Id() in this.dirtySectors ||
- (this.dirtySectors[c.get_Id()] = { alliance: [], player: [] });
- },
- onTick: function() {
- this.onInput();
- },
- onInputo: function() {
- this.onInput('o');
- },
- onInputc: function() {
- this.onInput('c');
- },
- onInputb: function() {
- this.onInput('b');
- },
- onInputp: function() {
- this.onInput('p');
- },
- onInputa: function() {
- this.onInput('a');
- },
- hideo: function() {
- this.hide('o');
- },
- hidec: function() {
- this.hide('c');
- },
- hideb: function() {
- this.hide('b');
- },
- hidep: function() {
- this.hide('p');
- },
- hidea: function() {
- this.hide('a');
- },
- delo: function() {
- this.del('o');
- },
- delc: function() {
- this.del('c');
- },
- delb: function() {
- this.del('b');
- },
- delp: function() {
- this.del('p');
- },
- dela: function() {
- this.del('a');
- },
- onInput: function(c) {
- switch (c) {
- case 'o':
- var f = parseInt(this.oLevel.getValue(), 10);
- break;
- case 'c':
- f = parseInt(this.cLevel.getValue(), 10);
- break;
- case 'p':
- f = parseInt(this.pLevel.getValue(), 10);
- break;
- case 'b':
- f = parseInt(this.bLevel.getValue(), 10);
- break;
- case 'a':
- f = parseInt(this.aLevel.getValue(), 10);
- }
- console.log('value is ' + f + ' from ' + c);
- },
- del: function(c) {
- for (
- var f = ClientLib.Data.MainData.GetInstance()
- .get_Cities()
- .get_CurrentOwnCity(),
- b = f.get_X(),
- f = f.get_Y(),
- d = ClientLib.Data.MainData.GetInstance().get_World(),
- g = ClientLib.Vis.VisMain.GetInstance().get_Region(),
- n = b - 16;
- n < b + 16;
- n++
- )
- for (var l = f - 16; l < f + 16; l++) {
- var k = g.GetObjectFromPosition(
- n * g.get_GridWidth(),
- l * g.get_GridHeight()
- );
- if (null != k) {
- var h = d.GetWorldSectorByCoords(n, l);
- 'function' === typeof k.get_BaseLevel &&
- (k.get_VisObjectType() ==
- ClientLib.Vis.VisObject.EObjectType.RegionNPCCamp &&
- (2 === k.get_CampType() &&
- 'c' == c &&
- Math.floor(k.get_BaseLevel()) <
- parseInt(this.cLevel.getValue(), 10) &&
- (k.Dispose(), this.markDirty(h)),
- 3 === k.get_CampType() &&
- 'o' == c &&
- Math.floor(k.get_BaseLevel()) <
- parseInt(this.oLevel.getValue(), 10) &&
- (k.Dispose(), this.markDirty(h)),
- 0 === k.get_CampType() &&
- (k.Dispose(), this.markDirty(h))),
- k.get_VisObjectType() ==
- ClientLib.Vis.VisObject.EObjectType
- .RegionCityType &&
- 'p' == c &&
- Math.floor(k.get_BaseLevel()) <
- parseInt(this.pLevel.getValue(), 10) &&
- !k.IsOwnBase() &&
- (k.Dispose(), this.markDirty(h)),
- k.get_VisObjectType() ==
- ClientLib.Vis.VisObject.EObjectType.RegionNPCBase &&
- 'b' == c &&
- Math.floor(k.get_BaseLevel()) <
- parseInt(this.bLevel.getValue(), 10) &&
- (k.Dispose(), this.markDirty(h)),
- 'a' == c &&
- Math.floor(k.get_BaseLevel()) <
- parseInt(this.aLevel.getValue(), 10) &&
- ('function' === typeof k.IsOwnBase
- ? k.IsOwnBase() ||
- (k.Dispose(), this.markDirty(h))
- : (k.Dispose(), this.markDirty(h))));
- }
- }
- console.log(this.dirtySectors);
- },
- hide: function(c) {
- for (
- var f = ClientLib.Data.MainData.GetInstance()
- .get_Cities()
- .get_CurrentOwnCity(),
- b = f.get_X(),
- f = f.get_Y(),
- d = ClientLib.Vis.VisMain.GetInstance().get_Region(),
- g = b - 16;
- g < b + 16;
- g++
- )
- for (var l = f - 16; l < f + 16; l++) {
- var h = d.GetObjectFromPosition(
- g * d.get_GridWidth(),
- l * d.get_GridHeight()
- );
- null != h &&
- 'function' === typeof h.get_BaseLevel &&
- (h.get_VisObjectType() ==
- ClientLib.Vis.VisObject.EObjectType.RegionNPCCamp &&
- (2 === h.get_CampType() &&
- 'c' == c &&
- Math.floor(h.get_BaseLevel()) <
- parseInt(this.cLevel.getValue(), 10) &&
- h.HideInfos(),
- 3 === h.get_CampType() &&
- 'o' == c &&
- Math.floor(h.get_BaseLevel()) <
- parseInt(this.oLevel.getValue(), 10) &&
- h.HideInfos(),
- 0 === h.get_CampType() && h.HideInfos()),
- h.get_VisObjectType() ==
- ClientLib.Vis.VisObject.EObjectType.RegionCityType &&
- 'p' == c &&
- Math.floor(h.get_BaseLevel()) <
- parseInt(this.pLevel.getValue(), 10) &&
- (h.IsOwnBase() || h.HideInfos()),
- h.get_VisObjectType() ==
- ClientLib.Vis.VisObject.EObjectType.RegionNPCBase &&
- 'b' == c &&
- Math.floor(h.get_BaseLevel()) <
- parseInt(this.bLevel.getValue(), 10) &&
- h.HideInfos(),
- 'a' == c &&
- Math.floor(h.get_BaseLevel()) <
- parseInt(this.aLevel.getValue(), 10) &&
- ('function' === typeof h.IsOwnBase
- ? h.IsOwnBase() || h.HideInfos()
- : h.HideInfos()));
- }
- },
- reset: function(c) {
- console.log('reset view');
- this.showAll();
- },
- showAll: function() {
- try {
- ClientLib.Vis.VisMain.GetInstance()
- .get_Region()
- .ShowAllPlates();
- } catch (c) {
- console.log(c);
- }
- },
- },
- });
- qx.Class.define('CncEcoHIDE.window.Window', {
- type: 'singleton',
- extend: qx.ui.window.Window,
- construct: function() {
- try {
- this.base(arguments),
- this.set({
- layout: new qx.ui.layout.VBox().set({ spacing: 0 }),
- contentPadding: 5,
- contentPaddingTop: 0,
- allowMaximize: !1,
- showMaximize: !1,
- allowMinimize: !1,
- showMinimize: !1,
- resizable: !1,
- }),
- this.setCaption('Hide targets'),
- this.moveTo(150, 50),
- this.add(new CncEcoHIDE.window.container('o')),
- this.add(new CncEcoHIDE.window.container('c')),
- this.add(new CncEcoHIDE.window.container('b')),
- this.add(new CncEcoHIDE.window.container('p')),
- this.add(new CncEcoHIDE.window.container('a')),
- this.add(new CncEcoHIDE.window.container('reset')),
- this.addListener('appear', this.onOpen, this),
- this.addListener('close', this.onClose, this);
- } catch (c) {
- console.log('Error setting up CncEcoHIDE.window.Window Constructor: '),
- console.log(c.toString());
- }
- },
- destruct: function() {},
- members: {
- view: {},
- onOpen: function() {
- console.log('Window onOpen ');
- },
- onClose: function() {
- console.log('Window onClose ');
- },
- initialize: function() {
- try {
- CncEcomain.getInstance().AddMainMenu(
- 'hide targets',
- function() {
- CncEcoHIDE.window.Window.getInstance().open();
- },
- 'Alt+h'
- ),
- phe.cnc.Util.attachNetEvent(
- ClientLib.Vis.VisMain.GetInstance(),
- 'ViewModeChange',
- ClientLib.Vis.ViewModeChange,
- this,
- this.viewChangeHandler
- ),
- (this.btnHideCurrent = new qx.ui.form.Button('Hide')),
- this.btnHideCurrent.set({
- width: 50,
- appearance: 'button-text-small',
- toolTipText: 'Hide From Map',
- }),
- this.btnHideCurrent.addListener(
- 'click',
- this.hideCurrent,
- this
- ),
- (this.btndelCurrent = new qx.ui.form.Button('del')),
- this.btndelCurrent.set({
- width: 50,
- appearance: 'button-text-small',
- toolTipText: 'Delete From Map',
- }),
- this.btndelCurrent.addListener('click', this.delCurrent, this);
- } catch (c) {
- h(c);
- }
- },
- viewChangeHandler: function(c, f) {
- try {
- var b = qx.core.Init.getApplication().getUIItem(
- ClientLib.Data.Missions.PATH.OVL_PLAYAREA
- ),
- d = ClientLib.Data.MainData.GetInstance()
- .get_Cities()
- .get_CurrentCity();
- null != d &&
- (((this.view.ownCity =
- d ===
- ClientLib.Data.MainData.GetInstance()
- .get_Cities()
- .get_CurrentOwnCity()),
- this.view.ownCity || f !== ClientLib.Vis.Mode.CombatSetup)
- ? c === ClientLib.Vis.Mode.CombatSetup &&
- (b.remove(this.btnHideCurrent),
- b.remove(this.btndelCurrent))
- : (b.add(this.btnHideCurrent, { right: 1, top: 33 }),
- b.add(this.btndelCurrent, { right: 1, top: 60 })));
- } catch (g) {
- console.log(g);
- }
- },
- hideCurrent: function() {
- try {
- var c = ClientLib.Data.MainData.GetInstance()
- .get_Cities()
- .get_CurrentCity(),
- d = c.get_PosX(),
- b = c.get_PosY(),
- h = ClientLib.Vis.VisMain.GetInstance().get_Region();
- h.GetObjectFromPosition(
- d * h.get_GridWidth(),
- b * h.get_GridHeight()
- ).HideInfos();
- qx.core.Init.getApplication()
- .getMainOverlay()
- ._onClose();
- } catch (g) {
- console.log(g);
- }
- },
- delCurrent: function() {
- console.log('___________del___________');
- try {
- var c = ClientLib.Data.MainData.GetInstance()
- .get_Cities()
- .get_CurrentCity(),
- d = c.get_PosX(),
- b = c.get_PosY(),
- h = ClientLib.Vis.VisMain.GetInstance().get_Region();
- h.GetObjectFromPosition(
- d * h.get_GridWidth(),
- b * h.get_GridHeight()
- ).Dispose();
- qx.core.Init.getApplication()
- .getMainOverlay()
- ._onClose();
- } catch (g) {
- console.log(g);
- }
- },
- },
- });
- l.xhr = {
- _load: !1,
- _xhr: null,
- _timeout: 3e3,
- start: function() {
- var c = null;
- if (window.XMLHttpRequest) c = new XMLHttpRequest();
- else if (window.ActiveXObject)
- try {
- c = new ActiveXObject('Msxml2.XMLHTTP.6.0');
- } catch (b) {
- try {
- c = new ActiveXObject('Msxml2.XMLHTTP.3.0');
- } catch (S) {
- var d = { func: 'start', class: 'CncEco.xhr' };
- d.error = S;
- h(S);
- beta && H(S, d);
- }
- }
- if (null === c) return !1;
- l.xhr._load = !0;
- l.xhr._xhr = c;
- l.xhr._xhr.timeout = l.xhr._timeout;
- return l.xhr._load;
- },
- send: function(c, d, b, r, g) {
- try {
- if (null !== l.xhr._xhr)
- if (!1 !== l.xhr._load && null !== l.xhr._xhr) {
- l.xhr._xhr.open(d, c, !0);
- if (null !== b && 'object' == typeof b)
- for (var f in b)
- b[f].hasOwnProperty('name') &&
- b[f].hasOwnProperty('value') &&
- l.xhr._xhr.setRequestHeader(b[f].name, b[f].value);
- l.xhr._xhr.onload = function() {
- try {
- if (4 == l.xhr._xhr.readyState)
- if (200 == l.xhr._xhr.status)
- if ('function' == typeof g)
- g(l.xhr._xhr.responseText);
- else {
- var b = {
- func: 'send',
- class: 'CncEco.xhr',
- };
- var c = 'typeof callback !== function';
- b.error = c;
- h(c);
- beta && H(c, b);
- }
- else
- (b = { func: 'send', class: 'CncEco.xhr' }),
- (c = 'CncEco.xhr._xhr.status !== 200'),
- (b.error = c),
- h(c),
- beta && H(c, b);
- } catch (p) {
- (b = {
- func: 'send CncEco.xhr._xhr.onreadystatechange',
- class: 'CncEco.xhr',
- }),
- (b.error = p),
- h(p),
- beta && H(p, b);
- }
- };
- l.xhr._xhr.ontimeout = function() {
- var b = {
- func: 'CncEco.xhr._xhr.onerror',
- class: 'CncEco.xhr',
- error: 'ontimeout',
- };
- h('ontimeout');
- beta && H('ontimeout', b);
- };
- if (null !== r)
- if (
- ('stringify' == JSON.isjson(r) &&
- !0 === Array.isarray(r)) ||
- (!0 === Object.isobj(r) &&
- 'stringify' == JSON.isjson(r))
- )
- l.xhr._xhr.send(JSON.stringify(r));
- else {
- var q = {
- func: 'send',
- class: 'CncEco.xhr',
- error:
- "Array.isarray(data) && JSON.isjson(data) === 'stringify' || Object.isabj(data) JSON.isjson(data) === 'stringify'",
- };
- h(
- "Array.isarray(data) && JSON.isjson(data) === 'stringify' || Object.isabj(data) JSON.isjson(data) === 'stringify'"
- );
- beta &&
- H(
- "Array.isarray(data) && JSON.isjson(data) === 'stringify' || Object.isabj(data) JSON.isjson(data) === 'stringify'",
- q
- );
- }
- else l.xhr._xhr.send(null);
- } else alert('Ihr Browser unterstuetzt kein Ajax!');
- } catch (k) {
- (q = {
- func: 'send CncEco.xhr._xhr.onreadystatechange',
- class: 'CncEco.xhr',
- }),
- (q.error = k),
- h(k),
- beta && H(k, q);
- }
- },
- };
- l.xhr = l.xhr;
- l.xhr.start = l.xhr.start;
- l.xhr.name = 'CncEco.xhr';
- window.CncEco = l;
- return !0;
- }
- function X(h) {
- var l = [],
- d;
- for (d in h)
- if ('object' == typeof h[d] && h[d])
- for (var c in h[d])
- if (376877 <= PerforceChangelist) {
- if ('object' == typeof h[d][c] && h[d][c] && 'd' in h[d][c]) {
- var f = h[d][c].d;
- if ('object' == typeof f && f)
- for (var b in f)
- 'object' == typeof f[b] &&
- f[b] &&
- 'get_CurrentLevel' in f[b] &&
- l.push(f);
- }
- } else if (
- 'object' == typeof h[d][c] &&
- h[d][c] &&
- 'l' in h[d][c] &&
- ((f = h[d][c].l), 'object' == typeof f && f)
- )
- for (b in f)
- 'object' == typeof f[b] &&
- f[b] &&
- 'get_CurrentLevel' in f[b] &&
- l.push(f);
- return l;
- }
- function V(baseId, r, d) {
- h('CNCOpt Link loaded');
- var c = {
- selected_base: null,
- keymap: {
- GDI_Accumulator: 'a',
- GDI_Refinery: 'r',
- 'GDI_Trade Center': 'u',
- GDI_Silo: 's',
- 'GDI_Power Plant': 'p',
- 'GDI_Construction Yard': 'y',
- GDI_Airport: 'd',
- GDI_Barracks: 'b',
- GDI_Factory: 'f',
- 'GDI_Defense HQ': 'q',
- 'GDI_Defense Facility': 'w',
- 'GDI_Command Center': 'e',
- GDI_Support_Art: 'z',
- GDI_Support_Air: 'x',
- GDI_Support_Ion: 'i',
- FOR_Silo: 's',
- FOR_Refinery: 'r',
- 'FOR_Tiberium Booster': 'b',
- 'FOR_Crystal Booster': 'v',
- 'FOR_Trade Center': 'u',
- 'FOR_Defense Facility': 'w',
- 'FOR_Construction Yard': 'y',
- FOR_Harvester_Tiberium: 'h',
- 'FOR_Defense HQ': 'q',
- FOR_Harvester_Crystal: 'n',
- NOD_Refinery: 'r',
- 'NOD_Power Plant': 'p',
- NOD_Harvester: 'h',
- 'NOD_Construction Yard': 'y',
- NOD_Airport: 'd',
- 'NOD_Trade Center': 'u',
- 'NOD_Defense HQ': 'q',
- NOD_Barracks: 'b',
- NOD_Silo: 's',
- NOD_Factory: 'f',
- NOD_Harvester_Crystal: 'n',
- 'NOD_Command Post': 'e',
- NOD_Support_Art: 'z',
- NOD_Support_Ion: 'i',
- NOD_Accumulator: 'a',
- NOD_Support_Air: 'x',
- 'NOD_Defense Facility': 'w',
- GDI_Wall: 'w',
- GDI_Cannon: 'c',
- 'GDI_Antitank Barrier': 't',
- GDI_Barbwire: 'b',
- GDI_Turret: 'm',
- GDI_Flak: 'f',
- 'GDI_Art Inf': 'r',
- 'GDI_Art Air': 'e',
- 'GDI_Art Tank': 'a',
- 'GDI_Def_APC Guardian': 'g',
- 'GDI_Def_Missile Squad': 'q',
- GDI_Def_Pitbull: 'p',
- GDI_Def_Predator: 'd',
- GDI_Def_Sniper: 's',
- 'GDI_Def_Zone Trooper': 'z',
- 'NOD_Def_Antitank Barrier': 't',
- 'NOD_Def_Art Air': 'e',
- 'NOD_Def_Art Inf': 'r',
- 'NOD_Def_Art Tank': 'a',
- 'NOD_Def_Attack Bike': 'p',
- NOD_Def_Barbwire: 'b',
- 'NOD_Def_Black Hand': 'z',
- NOD_Def_Cannon: 'c',
- NOD_Def_Confessor: 's',
- NOD_Def_Flak: 'f',
- 'NOD_Def_MG Nest': 'm',
- 'NOD_Def_Militant Rocket Soldiers': 'q',
- NOD_Def_Reckoner: 'g',
- 'NOD_Def_Scorpion Tank': 'd',
- NOD_Def_Wall: 'w',
- FOR_Wall: 'w',
- FOR_Barbwire_VS_Inf: 'b',
- FOR_Barrier_VS_Veh: 't',
- FOR_Inf_VS_Inf: 'g',
- FOR_Inf_VS_Veh: 'r',
- FOR_Inf_VS_Air: 'q',
- FOR_Sniper: 'n',
- FOR_Mammoth: 'y',
- FOR_Veh_VS_Inf: 'o',
- FOR_Veh_VS_Veh: 's',
- FOR_Veh_VS_Air: 'u',
- FOR_Turret_VS_Inf: 'm',
- FOR_Turret_VS_Inf_ranged: 'a',
- FOR_Turret_VS_Veh: 'v',
- FOR_Turret_VS_Veh_ranged: 'd',
- FOR_Turret_VS_Air: 'f',
- FOR_Turret_VS_Air_ranged: 'e',
- 'GDI_APC Guardian': 'g',
- GDI_Commando: 'c',
- GDI_Firehawk: 'f',
- GDI_Juggernaut: 'j',
- GDI_Kodiak: 'k',
- GDI_Mammoth: 'm',
- 'GDI_Missile Squad': 'q',
- GDI_Orca: 'o',
- GDI_Paladin: 'a',
- GDI_Pitbull: 'p',
- GDI_Predator: 'd',
- GDI_Riflemen: 'r',
- 'GDI_Sniper Team': 's',
- 'GDI_Zone Trooper': 'z',
- 'NOD_Attack Bike': 'b',
- NOD_Avatar: 'a',
- 'NOD_Black Hand': 'z',
- NOD_Cobra: 'r',
- NOD_Commando: 'c',
- NOD_Confessor: 's',
- 'NOD_Militant Rocket Soldiers': 'q',
- NOD_Militants: 'm',
- NOD_Reckoner: 'k',
- NOD_Salamander: 'l',
- 'NOD_Scorpion Tank': 'o',
- 'NOD_Specter Artilery': 'p',
- NOD_Venom: 'v',
- NOD_Vertigo: 't',
- '<last>': '.',
- },
- make_sharelink: function() {
- try {
- var f = c.selected_base,
- b = ClientLib.Data.MainData.GetInstance()
- .get_Cities()
- .GetCity(f),
- l = ClientLib.Data.MainData.GetInstance()
- .get_Cities()
- .get_CurrentOwnCity(),
- g = ClientLib.Data.MainData.GetInstance().get_Alliance(),
- n = ClientLib.Data.MainData.GetInstance().get_Server();
- tbase = f;
- tcity = b;
- scity = l;
- f = 'http://cncopt.com/?map=';
- f += '3|';
- switch (b.get_CityFaction()) {
- case 1:
- f += 'G|';
- break;
- case 2:
- f += 'N|';
- break;
- case 3:
- case 4:
- case 5:
- case 6:
- f += 'F|';
- break;
- default:
- h('cncopt: Unknown faction: ' + b.get_CityFaction()),
- (f += 'E|');
- }
- switch (l.get_CityFaction()) {
- case 1:
- f += 'G|';
- break;
- case 2:
- f += 'N|';
- break;
- case 3:
- case 4:
- case 5:
- case 6:
- f += 'F|';
- break;
- default:
- h('cncopt: Unknown faction: ' + l.get_CityFaction()),
- (f += 'E|');
- }
- f += b.get_Name() + '|';
- defense_units = [];
- for (l = 0; 20 > l; ++l) {
- var q = [];
- for (var k = 0; 9 > k; ++k) q.push(null);
- defense_units.push(q);
- }
- a: {
- for (var u = X(b), p = 0; p < u.length; ++p)
- for (var x in u[p])
- if (u[p][x].get_UnitGameData_Obj().n in aa) {
- var B = u[p];
- break a;
- }
- B = [];
- }
- if (376877 <= PerforceChangelist)
- for (l in B) {
- var m = B[l];
- defense_units[m.get_CoordX()][m.get_CoordY() + 8] = m;
- }
- else
- for (l = 0; l < B.length; ++l)
- (m = B[l]),
- (defense_units[m.get_CoordX()][m.get_CoordY() + 8] = m);
- offense_units = [];
- for (l = 0; 20 > l; ++l) {
- q = [];
- for (k = 0; 9 > k; ++k) q.push(null);
- offense_units.push(q);
- }
- a: {
- var A = X(b);
- for (q = 0; q < A.length; ++q)
- for (var D in A[q])
- if (A[q][D].get_UnitGameData_Obj().n in ba) {
- var w = A[q];
- break a;
- }
- w = [];
- }
- if (376877 <= PerforceChangelist)
- for (l in w)
- (m = w[l]),
- (offense_units[m.get_CoordX()][m.get_CoordY() + 16] = m);
- else
- for (l = 0; l < w.length; ++l)
- (m = w[l]),
- (offense_units[m.get_CoordX()][m.get_CoordY() + 16] = m);
- a: {
- for (var t in b)
- if (
- 'object' == typeof b[t] &&
- b[t] &&
- 0 in b[t] &&
- 8 in b[t] &&
- 'object' == typeof b[t][0] &&
- b[t][0] &&
- b[t][0] &&
- 0 in b[t][0] &&
- 15 in b[t][0] &&
- 'object' == typeof b[t][0][0] &&
- b[t][0][0] &&
- 'BuildingIndex' in b[t][0][0]
- ) {
- var C = b[t];
- break a;
- }
- C = null;
- }
- a: {
- var v = b.get_CityBuildingsData(),
- z;
- for (z in v)
- if (376877 <= PerforceChangelist) {
- if (
- 'object' === typeof v[z] &&
- v[z] &&
- 'd' in v[z] &&
- 'c' in v[z] &&
- 0 < v[z].c
- ) {
- var y = v[z].d;
- break a;
- }
- } else if ('object' === typeof v[z] && v[z] && 'l' in v[z]) {
- y = v[z].l;
- break a;
- }
- y = void 0;
- }
- for (l = 0; 20 > l; ++l)
- for (row = [], k = 0; 9 > k; ++k) {
- var E = 16 < l ? null : C[k][l];
- m = 0;
- w = null;
- E &&
- 0 <= E.BuildingIndex &&
- ((w = y[E.BuildingIndex]), (m = w.get_CurrentLevel()));
- var F = defense_units[k][l];
- F && (m = F.get_CurrentLevel());
- var G = offense_units[k][l];
- G && (m = G.get_CurrentLevel());
- 1 < m && (f += m);
- switch (16 < l ? 0 : b.GetResourceType(k, l)) {
- case 0:
- if (w) {
- var H = w.get_MdbBuildingId();
- GAMEDATA.Tech[H].n in c.keymap
- ? (f += c.keymap[GAMEDATA.Tech[H].n])
- : (h('cncopt [5]: Unhandled building: ' + H, w),
- (f += '.'));
- } else
- F
- ? F.get_UnitGameData_Obj().n in c.keymap
- ? (f +=
- c.keymap[F.get_UnitGameData_Obj().n])
- : (h(
- 'cncopt [5]: Unhandled unit: ' +
- F.get_UnitGameData_Obj().n
- ),
- (f += '.'))
- : G
- ? G.get_UnitGameData_Obj().n in c.keymap
- ? (f +=
- c.keymap[G.get_UnitGameData_Obj().n])
- : (h(
- 'cncopt [5]: Unhandled unit: ' +
- G.get_UnitGameData_Obj().n
- ),
- (f += '.'))
- : (f += '.');
- break;
- case 1:
- f = 0 > E.BuildingIndex ? f + 'c' : f + 'n';
- break;
- case 2:
- f = 0 > E.BuildingIndex ? f + 't' : f + 'h';
- break;
- case 4:
- f += 'j';
- break;
- case 5:
- f += 'h';
- break;
- case 6:
- f += 'l';
- break;
- case 7:
- f += 'k';
- break;
- default:
- h(
- 'cncopt [4]: Unhandled resource type: ' +
- b.GetResourceType(k, l)
- ),
- (f += '.');
- }
- }
- g &&
- scity.get_AllianceId() == tcity.get_AllianceId() &&
- ((f += '|' + g.get_POITiberiumBonus()),
- (f += '|' + g.get_POICrystalBonus()),
- (f += '|' + g.get_POIPowerBonus()),
- (f += '|' + g.get_POIInfantryBonus()),
- (f += '|' + g.get_POIVehicleBonus()),
- (f += '|' + g.get_POIAirBonus()),
- (f += '|' + g.get_POIDefenseBonus()));
- 1.2 !== n.get_TechLevelUpgradeFactorBonusAmount() &&
- (f += '|newEconomy');
- d.setFormField('opt' + r, f);
- return f;
- } catch (N) {
- h('cncopt [1]: ', N);
- }
- },
- };
- c.selected_base = baseId;
- c.make_sharelink();
- }
- function Z(h, r) {
- CncEcomain.getInstance().remoteRequest('update', r);
- }
- function H(h, r) {
- var d = {};
- d.func = r.func;
- d['class'] = r['class'];
- d.message = h.message;
- d.error = h.stack;
- MainData = ClientLib.Data.MainData.GetInstance();
- B = MainData.get_Player();
- d.playerName = B.get_Name();
- d.accountId = B.get_AccountId();
- server = MainData.get_Server();
- d.worldId = server.get_WorldId();
- d.clientinfo = ca();
- var c = null;
- console.log(
- '____________________________Mest5-errorreport->send______________________________________'
- );
- console.log(d);
- console.log(
- '_________________________________________________________________________________________'
- );
- if (window.XMLHttpRequest) c = new XMLHttpRequest();
- else if (window.ActiveXObject)
- try {
- c = new ActiveXObject('Msxml2.XMLHTTP.6.0');
- } catch (f) {
- try {
- c = new ActiveXObject('Msxml2.XMLHTTP.3.0');
- } catch (b) {
- console.log(b);
- }
- }
- null !== c &&
- c.open('POST', 'https://www.member-stats.de/playerinfo.php?i=error', !0);
- c.onreadystatechange = function() {
- 4 == this.readyState &&
- (200 == this.status ? console.log(h) : console.log(this.statusText));
- };
- c.send(JSON.stringify(d));
- }
- function ca() {
- var h,
- r = navigator.userAgent.toLowerCase(),
- d = function(b) {
- return b.test(r);
- },
- c = d(/opera/),
- f = d(/chrome/),
- b = d(/webkit/),
- x = !f && d(/safari/);
- x && d(/applewebkit\/4/);
- x && d(/version\/3/);
- x && d(/version\/4/);
- var g = !c && d(/msie/),
- n = g && d(/msie 7/),
- q = g && d(/msie 8/),
- k = g && !n && !q,
- u = !b && d(/gecko/);
- var p = u && d(/rv:1\.8/);
- var B = u && d(/rv:1\.9/),
- E = d(/windows|win32/),
- m = d(/macintosh|mac os x/);
- d(/adobeair/);
- var A = d(/linux/);
- /^https/i.test(window.location.protocol);
- var D = '',
- w = (h = d = ''),
- r = navigator.userAgent.toLowerCase(),
- d = function(b) {
- return b.test(r);
- };
- E
- ? ((w = 'Windows'),
- d(/windows nt/) &&
- ((w = r.indexOf('windows nt')),
- (E = r.indexOf(';', w)),
- (w = r.substring(w, E))))
- : (w = m ? 'Mac' : A ? 'Linux' : 'Other');
- g
- ? ((D = d = 'IE'),
- (p = r.indexOf('msie') + 5),
- (h = r.indexOf(';', p)),
- (h = r.substring(p, h)),
- (D = k ? 'IE6' : n ? 'IE7' : q ? 'IE8' : 'IE'))
- : u
- ? ((d = (n = d(/firefox/)) ? 'Firefox' : 'Others'),
- (D = p ? 'Gecko2' : B ? 'Gecko3' : 'Gecko'),
- n &&
- ((p = r.indexOf('firefox') + 8),
- (h = r.indexOf(' ', p)),
- -1 == h && (h = r.length),
- (h = r.substring(p, h))))
- : f
- ? ((d = 'Chrome'),
- (D = b ? 'Web Kit' : 'Other'),
- (p = r.indexOf('chrome') + 7),
- (h = r.indexOf(' ', p)),
- (h = r.substring(p, h)))
- : (d = c ? 'Opera' : x ? 'Safari' : '');
- n = {};
- n.javascript = D;
- n.browserType = d;
- n.browserVersion = h;
- n.osName = w;
- return n;
- }
- function Q() {
- try {
- if ('undefined' !== typeof qx) {
- var l = qx.core.Init.getApplication(),
- r = qx.core.Init.getApplication().getMenuBar();
- l && r
- ? ((B = ClientLib.Data.MainData.GetInstance().get_Player()),
- 0 !== B.id
- ? (Y(),
- window.CncEcomain.getInstance().initialize(),
- window.CncEcoScanner.getInstance().initialize(),
- window.CncEcostorage.getInstance().initialize(),
- window.CncEcoReports.getInstance().initialize(),
- window.CncEcoxhr.getInstance().initialize(),
- CncEcoHIDE.window.Window.getInstance().initialize(),
- window.CncEco.xhr.start())
- : window.setTimeout(Q, 1e3))
- : window.setTimeout(Q, 1e3);
- } else window.setTimeout(Q, 1e3);
- } catch (d) {
- h(d), window.setTimeout(Q, 1e3);
- }
- }
- function h(h) {
- h = '[CncEco] ' + h;
- 'undefined' !== typeof console
- ? console.log(h)
- : window.opera && opera.postError(h);
- }
- var B = 0,
- T = 0,
- M = null,
- x = null,
- W = null,
- I = null,
- E = null,
- R = 0,
- U = 0,
- aa = {
- GDI_Wall: 'w',
- GDI_Cannon: 'c',
- 'GDI_Antitank Barrier': 't',
- GDI_Barbwire: 'b',
- GDI_Turret: 'm',
- GDI_Flak: 'f',
- 'GDI_Art Inf': 'r',
- 'GDI_Art Air': 'e',
- 'GDI_Art Tank': 'a',
- 'GDI_Def_APC Guardian': 'g',
- 'GDI_Def_Missile Squad': 'q',
- GDI_Def_Pitbull: 'p',
- GDI_Def_Predator: 'd',
- GDI_Def_Sniper: 's',
- 'GDI_Def_Zone Trooper': 'z',
- 'NOD_Def_Antitank Barrier': 't',
- 'NOD_Def_Art Air': 'e',
- 'NOD_Def_Art Inf': 'r',
- 'NOD_Def_Art Tank': 'a',
- 'NOD_Def_Attack Bike': 'p',
- NOD_Def_Barbwire: 'b',
- 'NOD_Def_Black Hand': 'z',
- NOD_Def_Cannon: 'c',
- NOD_Def_Confessor: 's',
- NOD_Def_Flak: 'f',
- 'NOD_Def_MG Nest': 'm',
- 'NOD_Def_Militant Rocket Soldiers': 'q',
- NOD_Def_Reckoner: 'g',
- 'NOD_Def_Scorpion Tank': 'd',
- NOD_Def_Wall: 'w',
- FOR_Wall: 'w',
- FOR_Barbwire_VS_Inf: 'b',
- FOR_Barrier_VS_Veh: 't',
- FOR_Inf_VS_Inf: 'g',
- FOR_Inf_VS_Veh: 'r',
- FOR_Inf_VS_Air: 'q',
- FOR_Sniper: 'n',
- FOR_Mammoth: 'y',
- FOR_Veh_VS_Inf: 'o',
- FOR_Veh_VS_Veh: 's',
- FOR_Veh_VS_Air: 'u',
- FOR_Turret_VS_Inf: 'm',
- FOR_Turret_VS_Inf_ranged: 'a',
- FOR_Turret_VS_Veh: 'v',
- FOR_Turret_VS_Veh_ranged: 'd',
- FOR_Turret_VS_Air: 'f',
- FOR_Turret_VS_Air_ranged: 'e',
- '': '',
- },
- ba = {
- 'GDI_APC Guardian': 'g',
- GDI_Commando: 'c',
- GDI_Firehawk: 'f',
- GDI_Juggernaut: 'j',
- GDI_Kodiak: 'k',
- GDI_Mammoth: 'm',
- 'GDI_Missile Squad': 'q',
- GDI_Orca: 'o',
- GDI_Paladin: 'a',
- GDI_Pitbull: 'p',
- GDI_Predator: 'd',
- GDI_Riflemen: 'r',
- 'GDI_Sniper Team': 's',
- 'GDI_Zone Trooper': 'z',
- 'NOD_Attack Bike': 'b',
- NOD_Avatar: 'a',
- 'NOD_Black Hand': 'z',
- NOD_Cobra: 'r',
- NOD_Commando: 'c',
- NOD_Confessor: 's',
- 'NOD_Militant Rocket Soldiers': 'q',
- NOD_Militants: 'm',
- NOD_Reckoner: 'k',
- NOD_Salamander: 'l',
- 'NOD_Scorpion Tank': 'o',
- 'NOD_Specter Artilery': 'p',
- NOD_Venom: 'v',
- NOD_Vertigo: 't',
- '': '',
- };
- /commandandconquer\.com/i.test(document.domain) && window.setTimeout(Q, 1e3);
- },
- CncEcoScript = document.createElement('script'),
- txt = CncEco_mainFunction.toString();
- CncEcoScript.innerHTML = '(' + txt + ')();';
- CncEcoScript.type = 'text/javascript';
- /commandandconquer\.com/i.test(document.domain) &&
- document.getElementsByTagName('head')[0].appendChild(CncEcoScript);
- })();