var loadingLogNow = true; var vlogid = 0; var battleClass = { battle:0, hod:0, conf:{ timeout:'-- мин.', damage:'0', tactic:[ 0 , 0 , 0 , 0 , 0 , 0 , 0 ], priems:[], pr:"", pr_z:"", pr_s:0 }, me:0, enemy:0, users:{ }, uids:[0], priems:{ }, prms:[0], eff:[], act:[], log:function(txt) { console.log(txt); }, start:function() { this.reflesh(1); }, reflesh:function( type ) { $.getJSON( 'https://new-combats.com/getbattle.php',{ 'global':true,'type':type },function(data) { // if( data.e != undefined && data.e != "" ) { alert( 'Ошибка: ' + data.e ); } // battleClass.me = data.you; battleClass.enemy = data.enemy; battleClass.battle = data.btl; battleClass.hod = data.hod; battleClass.conf.timeout = data.to; battleClass.conf.damage = data.dm; battleClass.conf.pr = data.pr[0]; battleClass.conf.pr_z = data.pr[1]; battleClass.conf.pr_s = data.pr[2]; battleClass.conf.tactic = [ 0 , data.t1 , data.t2 , data.t3 , data.t4 , data.t5 , data.t6 , data.t7 ]; // battleClass.eff = data.r.eff_me; battleClass.act = data.r.act; // //Пользователи if( data.r.u != undefined ) { var i = 0; while( i != -1 ) { if( data.r.u[i] != undefined ) { if( data.r.u[i][0] > 0 ) { // if( battleClass.users[data.r.u[i][0]] == undefined ) { battleClass.users[data.r.u[i][0]] = { 'complete':false }; battleClass.uids[0]++; battleClass.uids[battleClass.uids[0]] = data.r.u[i][0]; } battleClass.users[data.r.u[i][0]].id = data.r.u[i][0]; // battleClass.users[data.r.u[i][0]].hp = data.r.u[i][1]; battleClass.users[data.r.u[i][0]].mp = data.r.u[i][2]; battleClass.users[data.r.u[i][0]].hpAll = data.r.u[i][3]; battleClass.users[data.r.u[i][0]].mpAll = data.r.u[i][4]; // if( battleClass.users[data.r.u[i][0]].hp > battleClass.users[data.r.u[i][0]].hpAll ) { battleClass.users[data.r.u[i][0]].hp = battleClass.users[data.r.u[i][0]].hpAll; } if( battleClass.users[data.r.u[i][0]].mp > battleClass.users[data.r.u[i][0]].mpAll ) { battleClass.users[data.r.u[i][0]].mp = battleClass.users[data.r.u[i][0]].mpAll; } // }else{ battleClass.log( 'Ошибка, игрок не найден...' ); } }else{ i = -2; } i++; } battleClass.loadingGlobaldata(); } // }); }, loadingGlobaldata:function() { var r = { 'load':0, 'users':"0", 'priems':"0" }; //Обновляем пользователей которых не прогрузили /* Склонность, Клан, Уровень, Логин, Команда */ var i = 1; while( i <= battleClass.uids[0] ) { if( battleClass.users[ battleClass.uids[i] ].complete == false ) { //Прогружаем данные игрока r.load++; r.users = r.users + "," + battleClass.users[ battleClass.uids[i] ].id; }else{ //Все окей } i++; } //Приемы var pr = battleClass.conf.pr.split('|'); var prz = battleClass.conf.pr_z.split('|'); var i = 0; while( i < battleClass.conf.pr_s ) { if( pr[i] != undefined && pr[i] > 0 ) { if( battleClass.priems[pr[i]] == undefined ) { //Прогружаем данные по приемам r.load++; r.priems += ',' + pr[i]; }else{ //Все окей } } i++; } // if( r.load > 0 ) { $.getJSON( 'https://new-combats.com/getbattle.php',{ 'loading':true , 'uload':r.users , 'pload':r.priems },function(data) { // if( data.e != undefined && data.e != "" ) { alert( 'Ошибка: ' + data.e ); } // if( data.r != undefined ) { //+++++++++++++++++++++++++++++ battleClass.log(data); //Загрузка пользователей if( data.r.ul != undefined ) { // var i = 0; while( i != -1 ) { if( data.r.ul[i] != undefined ) { if( data.r.ul[i].id > 0 ) { // if( battleClass.users[data.r.ul[i].id] == undefined ) { battleClass.users[data.r.ul[i].id] = { }; battleClass.uids[0]++; battleClass.uids[battleClass.uids[0]] = data.r.ul[i].id; } battleClass.users[data.r.ul[i].id] = data.r.ul[i]; // battleClass.users[data.r.ul[i].id].complete = true; // }else{ battleClass.log( 'Ошибка, игрок не найден...' ); } }else{ i = -2; } i++; } // } //Загрузка приемов if( data.r.pl != undefined ) { // var i = 0; while( i != -1 ) { if( data.r.pl[i] != undefined ) { if( data.r.pl[i].id > 0 ) { // if( battleClass.priems[data.r.pl[i].id] == undefined ) { battleClass.priems[data.r.pl[i].id] = { }; battleClass.prms[0]++; battleClass.prms[battleClass.prms[0]] = data.r.pl[i].id; } battleClass.priems[data.r.pl[i].id] = data.r.pl[i]; // battleClass.priems[data.r.pl[i].id].complete = true; // }else{ battleClass.log( 'Ошибка, прием не найден...' ); } }else{ i = -2; } i++; } // } battleClass.generate(); //+++++++++++++++++++++++++++++ } // }); }else{ battleClass.generate(); } // }, loadLog:function(url) { var loadingLogNow = false; $('#battle_log').remove(); var e = document.createElement("script"); e.src = url; e.id = 'battle_log'; e.type="text/javascript"; document.getElementsByTagName("head")[0].appendChild(e); }, testAct:function(uid1,uid2) { var r = false; var i = 0; while( i != -1 ) { if( this.act[i] != undefined ) { if( this.act[i][1] == uid1 && this.act[i][2] == uid2 ) { r = true; } }else{ i = -2; } i++; } return r; }, userInfoItems:function(id,t) { var i = 0; while( i != - 1 ) { if( this.users[id].itm[i] != undefined ) { // title = '
'+this.users[id].itm[i][3]+''; title += '
(Характеристики скрыты)'; title += '
'; // var cvs = ''; if( id == this.me ) { cvs = this.users[id].itm[i][5]; } // abitms(t,id,this.users[id].itm[i][0],this.users[id].itm[i][2],this.users[id].itm[i][3],title,this.users[id].itm[i][4],cvs); }else{ i = -2; } i++; } }, userInfoEffects:function(id,t) { var i = 0; var html = ''; if( this.eff != undefined ) { while( i != - 1 ) { if( this.eff[i] != undefined ) { if( this.eff[i][0] == id ) { var title_eff = ''+this.eff[i][3]+''; var eff_types = '(Эффект)'; if( this.eff[i][5] > 0 && this.eff[i][5] < 7 ) { var eff_types = '(Эликсир)'; }else if( (this.eff[i][5] > 6 && this.eff[i][5] < 11) || this.eff[i][5] == 16 ) { var eff_types = '(Заклятие)'; }else if( this.eff[i][5] == 14 ) { var eff_types = '(Прием)'; }else if( this.eff[i][5] == 15 ) { var eff_types = '(Изучение)'; }else if( this.eff[i][5] == 17 ) { var eff_types = '(Проклятие)'; }else if( this.eff[i][5] == 18 || this.eff[i][5] == 17 ) { var eff_types = '(Травма)'; }else if( this.eff[i][5] == 20 ) { var eff_types = '(Пристрастие)'; }else if( this.eff[i][5] == 22 ) { var eff_types = '(Ожидание)'; } title_eff += ' ' + eff_types; html = '
'+html; } }else{ i = -2; } i++; } } return html; }, userInfo:function(id,t) { var stats_title = ''; stats_title += ''+this.users[id].login+'
'; stats_title += 'Сила: --
'; stats_title += 'Ловкость: --
'; stats_title += 'Интуиция: --
'; stats_title += 'Выносливость: --
'; var eff_data = this.userInfoEffects(id,t); return info_reflesh(t,id,'',this.users[id].obraz,this.users[id].hp,this.users[id].hpAll,this.users[id].mp,this.users[id].mpAll,0,0,eff_data,stats_title,0,''); }, generate:function() { //Набито $('#nabito').html( this.conf.damage ); //Таймаут $('#timer_out').html( this.conf.timeout ); //Тактики var i = 1; while( i <= 7 ) { $('#tac'+i).html( ( 0 + parseInt(this.conf.tactic[i]) )); i++; } $('#tac7t').attr( { 'title':'Уровень духа: ' + this.conf.tactic[7] } ); //Игрок $('#player1').html( this.userInfo(this.me,1) ); $('#player1_login').html( this.microLogin(this.me,0) ); this.userInfoItems(this.me,1); //Противник if( this.enemy > 0 ) { $('#player2').html( this.userInfo(this.enemy,2) ); $('#player2_login').html( this.microLogin(this.enemy,0) + ' ' ); this.userInfoItems(this.enemy,2); }else{ $('#player2_login').html(''); $('#player2').html('Нет противника...'); } //Доп.функции shpb(); //Приемы var pr_see = ''; var pr = battleClass.conf.pr.split('|'); var prz = battleClass.conf.pr_z.split('|'); var i = 0; while( i < battleClass.conf.pr_s ) { if( pr[i] != undefined && pr[i] > 0 ) { if( battleClass.priems[pr[i]] != undefined ) { prm = battleClass.priems[pr[i]]; cl = ''; if( prm.type == 1 ) { var onuser = ''; if( prm.onUser > 0 ) { cl = 'href="javascript:void(0);" onClick="top.priemOnUser('+i+',1,\''+prm.name+'\',\''+onuser+'\',\''+prm.img+'\');"'; }else{ cl = 'href="javascript:void(0);" onClick="usepriem('+i+',1,\''+prm.img+'\');"'; } }else if( prm.type == 2 ) { cl = 'href="javascript:void(0);" onClick="usepriem('+i+',1,\''+prm.img+'\');"'; }else if( prm.type == 3 ) { cl = 'href="javascript:void(0);" onClick="alert(\'Возможно используем?\');"'; } }else{ prm = { 'id':pr[i], 'name':"*Неизвестный прием №"+pr[i]+"*", 'img':"clearPriem.gif" }; cl = 'href="javascript:void(0);" onclick="alert(\'Прием не найден\');"'; } pr_see += ''; }else{ pr_see += ''; } i++; } $('#priems').html( pr_see ); delete pr_see; //Собираем команды var rd = ''; var tms = []; var tmr = [0]; var i = 1; while( i <= this.uids[0] ) { if( tms[this.users[ this.uids[i] ].team] == undefined ) { tmr[0]++; tms[this.users[ this.uids[i] ].team] = ''; tmr[tmr[0]] = this.users[ this.uids[i] ].team; } if( this.users[ this.uids[i] ].hp > 0 ) { if( tms[this.users[ this.uids[i] ].team] != '' ) { tms[this.users[ this.uids[i] ].team] += ', '; } tms[this.users[ this.uids[i] ].team] += this.teamLogin(this.users[ this.uids[i] ].id,1); } i++; } var i = 1; while( i <= tmr[0] ) { if( tms[tmr[i]] != '' ) { if( rd != '' ) { rd += '   против   '; } rd += ' ' + tms[tmr[i]]; } i++; } $('#teams').html( rd ); // //лог боя this.loadLog('https://new-combats.com/battle_logs/btl_'+this.battle+'.js?'+this.hod); this.logTimerX = 0; this.logUpdateNow(); // //Раздел поединка if( this.testAct( this.me , this.enemy ) == true ) { mainstatus(2); }else{ mainstatus(1); } // }, lastvlogid:0, logTimer:null, logTimerX:0, logUpdateNow:function() { clearTimeout(this.logTimer); if( typeof logRefleshedCache == 'function' && loadingLogNow == true && this.lastvlogid < vlogid) { this.lastvlogid = vlogid; this.logTimerX = 0; $('#battle_logg').html(''); logRefleshedCache(); }else{ this.logTimerX++; this.log('logUpdateNow-cycles'); if( this.logTimerX < 101 ) { this.logTimer = setTimeout('battleClass.logUpdateNow();',20); }else{ this.logTimerX = 0; } } }, teamLogin:function(id,type) { var r = ''; if( this.users[id].align != undefined && this.users[id].align > 0 ) { // r += ''; } if( this.users[id].clan != undefined && this.users[id].clan > 0 ) { // r += ''; } var stl = ''; if( this.testAct(this.me,id) != false ) { //Ударили ожидаем ответа stl = ''; } if( this.testAct(id,this.me) != false ) { //Ударили, нужно ответить stl = 'text-decoration:underline;'; } r += ''+this.users[id].login+''; // r += ' ['+this.users[id].hp+'/'+this.users[id].hpAll+']'; // return r; }, microLogin:function(id,type) { var r = ''; if( this.users[id].align != undefined && this.users[id].align > 0 ) { r += ''; } if( this.users[id].clan != undefined && this.users[id].clan > 0 ) { r += ''; } r += ''+this.users[id].login+' ['+this.users[id].level+']'; r += ''; return r; } };