key
.doc///
//key={keyCode,altKey,altGraphKey,shiftKey,ctrlKey,target:{name,tagName,localName,name,id}}
function lr_compare(l,r)
{
for (var i in l)
{
if (typeof(l[i])=='object')
{
if (lr_compare(l[i],r[i])==false)
return false;
continue;
}
if (r[i]!=l[i])
return false;
}
return true;
}
var HTMLChars =
{
'chars':{'"':'"'},
'replace':function (s)
{
if (typeof s == 'object')
{
for (var i in s) s[i]=this.replace(s[i]);
return s;
}
if (typeof s != 'string') return s;
for (var i in this.HTMLChars)
s=s.replace(new RegExp(i,'g'),this.HTMLChars[i]);
return s;
}
};
var KeyProcessor=
{
'old_keydown':document.onkeydown,
'processKey':function(e)
{
if (e.keyCode==18) return false;
for (var i in KeyProcessor.Keys)
{
if (KeyProcessor.Keys[i]==undefined) continue;
if (lr_compare(KeyProcessor.Keys[i].key,e)==true)
{
eval(KeyProcessor.Keys[i].todo);
if (KeyProcessor.Keys[i].clear==true) delete KeyProcessor.Keys[i];
}
}
},
'AddKey':function (key,todo,clear)
{
if (clear==undefined) clear=false;
if (todo==undefined) todo=';';
var gt=Math.random();
while (gt in this.Keys) gt=Math.random();
if (key.target==undefined) key.target=this.DefaultKeyTarget();
this.Keys[gt]={'clear':clear,'todo':todo,'key':key};
return gt;
},
'AddKeys':function (keys)
{
for (var i in keys)
if (this.AddKey(keys[i].key,keys[i].todo,keys[i].clear)<0) return i;
return 'undefined';
},
'ClearKey':function (index)
{
delete this.Keys[index];
return index;
},
'ClearKeys':function (keys)
{
for (var i in keys)
if (keys[i] in this.Keys) delete this.Keys[keys[i]];
return 'undefined';
},
'DefaultKeyTarget':function()
{
var nav=navigator.userAgent.match(/Firefox|Chrome/);
if (nav[0]=='Firefox') return {'tagName':'HTML'};
if (nav[0]=='Chrome') return {'tagName':'BODY'};
return 'undefined';
},
'Keys':{}
};
var InvProcessor=
{
'Processors':[],
'Keys':[],
'pInvAct':function (data)
{
var ok;
for (var i in InvProcessor.Keys) KeyProcessor.ClearKey(InvProcessor.Keys[i]);
InvProcessor.Keys=[];
for (var j in InvProcessor.Processors)
{
ok=false;
for (var i in data)
{
if (data[i].n == InvProcessor.Processors[j].name)
{
if (data[i].t==1)
InvProcessor.Keys.push(KeyProcessor.AddKey(InvProcessor.Processors[j].key,"pInvEl("+i+");rmodP('pinv',{'id':0});",true));
else if (data[i].t==2)
InvProcessor.Keys.push(KeyProcessor.AddKey(InvProcessor.Processors[j].key,"pInv("+i+");rmodP('pinv',{'id':0});",true));
ok=true;
break;
}
}
if (ok==false)
InvProcessor.Keys.push(KeyProcessor.AddKey(InvProcessor.Processors[j].key,"gsChat('c[pch] "+InvProcessor.Processors[j].name+" недоступен');rmodP('pinv',{'id':0});",false));
}
return InvProcessor.old_pInvAct(data);
},
'Init':function()
{
var old_pInvAct=window.pInvAct;
this.old_pInvAct=old_pInvAct;
pInvAct=this.pInvAct;
},
'Restore':function()
{
if (this.old_pInvAct!=undefined) window.pInvAct=this.old_pInvAct;
},
'Add':function (name,key)
{
for (var i in this.Processors)
if (this.Processors[i].name==name)
{
this.Processors[i]={'name':HTMLChars.replace(name),'key':key};
return i;
}
this.Processors.push({'name':name,'key':key});
return this.Processors.length-1;
}
};
function rmodP(mod,param)
{
var p = '';
for(var i in param) p += i+'='+param[i]+'&';
$.ajax({
url: '/piwar/m/'+mod+'.php?'+p+'rnd='+Math.random(),
dataType : 'text',
success: function (data, textStatus) {
eval(data);
}
});
}
function preobMsg(msg)
{
function repMsgIp(p1,p2){
return '<a href="#" onclick="p(\''+p2+'\'); return false;" style="color: #800000">'+p2+'</a> ';
}
function repMsgIt(p1,p2){
return '<a href="#" onclick="t(\''+p2+'\'); return false;">'+p2+'</a> ';
}
function repMsgP(p1,p2){
return ' » <a href="#" onclick="p(\''+p2+'\'); return false;" style="color: #800000">'+p2+'</a>';
}
function repMsgT(p1,p2){
return ' » <a href="#" onclick="t(\''+p2+'\'); return false;">'+p2+'</a>';
}
function repMsgC(p1,p2){
if (p2=='kt2') return '';
return '<img src=\'img/c/'+p2+'.gif\' />';
}
function repMsgI(p1,p2){
if (p2=='kt2') return '';
return '<img src=\'img/'+p2+'.gif\' />';
}
if(/^shell\[.*\]$/.test(msg)){
arr = /^shell\[(.*)\]$/.exec(msg);
eval('shell('+arr[1]+');');
return '';
}
if(/p\[[A-Za-zА-Яа-я0-9_ ]{4,16}?\]/.test(msg))
msg = msg.replace(/n\[([A-Za-zА-Яа-я0-9_ ]{4,16}?)]/g,repMsgIp);
else
msg = msg.replace(/n\[([A-Za-zА-Яа-я0-9_ ]{4,16}?)]/g,repMsgIt);
msg = msg.replace(/p\[([A-Za-zА-Яа-я0-9_ ]{4,16}?)\]/g,repMsgP);
msg = msg.replace(/t\[([A-Za-zА-Яа-я0-9_ ]{4,16}?)\]/g,repMsgT);
msg = msg.replace(/c\[([A-Za-z0-9_]{2,8}?)\]/g,repMsgC);
msg = msg.replace(/i\[([A-Za-z0-9_]{2,8}?)\]/g,repMsgI);
return msg+'<br />';
}
function tNextHod(){
if(arrTSec['secNHw']>0){
var pp = (arrTSec['secNHw']/arrTSec['secNHwS'])*25;
$('#piLtime div').css({'height':pp+'px'});
$('#sk6').html('<center><font color=red size=6pt>'+arrTSec['secNHw']+'</font></center>');
arrTSec['secNHw']--;
}else{
$('#sk6').html('<center><font color=lime size=5pt>GO</font></center>');
$('#piLtime div').css({'height':0+'px'});
}
}
var GoodsProducer={
'Key':'undefined',
'AutoUse':4,
'AutoOn':'undefined',
'AutoOff':'undefined',
'ProduceKey':'undefined',
'Last':'undefined',
'old_gChat':undefined,
'gChat':function (data)
{
var msg = ''; var mpreob;
var color = '#695028';
chatTime = new Date();
for(var i in data){
v = data[i];
if(v.s!=null){
shell(v.s);
}else{
if(v.c!=null) color = v.c;
mpreob = preobMsg(v.m);
if(mpreob!='') msg += '<div><span class="date">'+v.d+'</span> <span style="color: '+color+'">'+mpreob+'</span></div>';
}
}
var MSG=$('#msg')[0];
GoodsProducer.Found=false;
var start=MSG.children.length;
$('#msg').html($('#msg').html()+msg);
for (;start!=MSG.children.length;++start)
{
var child=MSG.children[start];
var links=child.getElementsByTagName('a');
for (var i=0; i!=links.length; ++i)
{
if (String(links[i].onclick).search('mobsk')>=0) { GoodsProducer.Last=links[i]; GoodsProducer.Found=true; continue; }
if (String(links[i].onclick).search('friends')>=0) { eval("rmodP('add_bonus',{'b':1});"); continue; }
if (String(links[i].onclick).search('fbonus')>=0) { links[i].onclick(); continue; }
if (String(links[i].onclick).search('rekMyActivaty')>=0) { eval("rekMyActivaty();"); continue; }
ll=links[i];
}
}
if (GoodsProducer.Found == true)
{
for (var i=0; i!=GoodsProducer.AutoUse; ++i) setTimeout('GoodsProducer.Last.onclick();',10*i+10);
}
window.document.getElementById('msg').scrollTop=999999;
},
'Init':function(key)
{
if (key=='undefined') return;
this.Key=key;
var old_gChat=window.gChat;
this.old_gChat=old_gChat;
window.gChat=this.gChat;
if (this.AutoOn=='undefined') this.AutoOn=KeyProcessor.AddKey({keyCode:this.Key,altKey:false,ctrlKey:false,shiftKey:true},'++GoodsProducer.AutoUse;',false);
if (this.AutoOff=='undefined') this.AutoOff=KeyProcessor.AddKey({keyCode:this.Key,altKey:false,ctrlKey:true,shiftKey:false},'GoodsProducer.AutoUse=0;',false);
if (this.ProduceKey=='undefined') this.ProduceKey=KeyProcessor.AddKey({keyCode:this.Key,altKey:true,ctrlKey:false,shiftKey:false},'if (GoodsProducer.Last!="undefined") GoodsProducer.Last.onclick();',false);
},
'Restore':function()
{
if (this.AutoOn!='undefined') KeyProcessor.ClearKey(this.AutoOn); this.AutoOn='undefined';
if (this.AutoOff!='undefined') KeyProcessor.ClearKey(this.AutoOff); this.AutoOff='undefined';
if (this.ProduceKey!='undefined') KeyProcessor.ClearKey(this.ProduceKey); this.ProduceKey='undefined';
if (this.old_gChat!=undefined) window.gChat=this.old_gChat;
}
};
kraft.create=function(kid,tt){
$(".kbutI").css({display:"none"});
rmodP('kalhim',{a:3,i:kid,t:tt});
last_kid=kid;
last_tt=tt;
create_all=true;
}
kraft.sec=function(n){
n--;
if(n<0){
clearTimeout(kraft.secDelay);
$('#ktt').html('');
$(".kbutI").css({display:"inline"});
if (create_all && last_kid>=0 && last_tt>=0)
setTimeout('kraft.create('+last_kid+','+last_tt+')',100);
return;
}else{
$('#ktt').html('Процесс закончится через '+n+' сек ');
}
kraft.secDelay = setTimeout('kraft.sec('+n+')',1000);
}
function ClearChat(){
while (document.getElementById('msg').childNodes.length>0) document.getElementById('msg').removeChild(document.getElementById('msg').firstChild)
}
document.onkeydown=KeyProcessor.processKey;
InvProcessor.Init();
GoodsProducer.Init(89);
InvProcessor.Add('Бодряк "Пятый день"',{keyCode:49,altKey:false,ctrlKey:false,shiftKey:false}); //1 - юзнуть бодряк 5
InvProcessor.Add('Бодряк "Червонец"',{keyCode:50,altKey:false,ctrlKey:false,shiftKey:false}); //2 - бодряк 10
InvProcessor.Add('Бодряк "Полу месяц"',{keyCode:51,altKey:false,ctrlKey:false,shiftKey:false}); //3 - бодряк 15
InvProcessor.Add('Малый эликсир энергии',{keyCode:52,altKey:false,ctrlKey:false,shiftKey:false}); //4 - енка 1
InvProcessor.Add('Средний эликсир энергии',{keyCode:53,altKey:false,ctrlKey:false,shiftKey:false}); //5 - енка 2
InvProcessor.Add('Большой эликсир энергии',{keyCode:54,altKey:false,ctrlKey:false,shiftKey:false}); //6 - енка 3
InvProcessor.Add('Малый эликсир жизни',{keyCode:55,altKey:false,ctrlKey:false,shiftKey:false}); //7 - хиллка 1
InvProcessor.Add('Средний эликсир жизни',{keyCode:56,altKey:false,ctrlKey:false,shiftKey:false}); //8 - хиллка 2
InvProcessor.Add('Большой эликсир жизни',{keyCode:57,altKey:false,ctrlKey:false,shiftKey:false}); //9 - хиллка 3
InvProcessor.Add('Карта тайника рейдера',{keyCode:77,altKey:true,ctrlKey:false,shiftKey:false}); //Alt+M - юзнуть карту
KeyProcessor.AddKeys
(
[
{'key':{keyCode:81,altKey:false,ctrlKey:false,shiftKey:false},'todo':'skClick(1);','clear':false}, //Q - искать клад
{'key':{keyCode:87,altKey:false,ctrlKey:false,shiftKey:false},'todo':'skClick(2);','clear':false}, //W - атаковать
{'key':{keyCode:69,altKey:false,ctrlKey:false,shiftKey:false},'todo':'skClick(5);','clear':false}, //E - лечить
{'key':{keyCode:82,altKey:false,ctrlKey:false,shiftKey:false},'todo':'refresh();','clear':false}, //R - обновить
{'key':{keyCode:73,altKey:true,ctrlKey:false,shiftKey:false},'todo':'pInv(0);','clear':false}, //Alt+I - инфентарь
{'key':{keyCode:85,altKey:true,ctrlKey:false,shiftKey:false},'todo':'pUserInf(0);','clear':false}, //Alt+U -
{'key':{keyCode:75,altKey:true,ctrlKey:false,shiftKey:false},'todo':'kraft.allroom();','clear':false},//Alt+A - окно крафта
{'key':{keyCode:65,altKey:true,ctrlKey:false,shiftKey:false},'todo':'kraft.main(1);','clear':false}, //Alt+K - окно алхимии
{'key':{keyCode:67,altKey:true,ctrlKey:false,shiftKey:true},'todo':'ClearChat();','clear':false}, //Alt+Shift+C - очистить чат
]
);
//97-105 - numpad
function resolve(i)
{
var x=1,y;
while (i>2*x-1){ i-=2*x-1; ++x;}
y=i;
return '∞' + x + '≡' + y +'≈'
}
function resolve_msg(i)
{
var x=1,y;
while (i>2*x-1){ i-=2*x-1; ++x;}
y=i;
return '' + x + '-' + y;
}
function cell(i)
{
window.document.fsend.send.value += resolve_msg(i)+',';
window.document.fsend.send.focus();
}
function cell_click(event)
{
var i=Number(event.target.id.replace(/c/g,''));
if (lr_compare({'ctrlKey':true,'shiftKey':false},event)) {cell(i); return true;}
if (lr_compare({'ctrlKey':false,'shiftKey':true},event))
{
if ($('#p'+i+' .gold').html()=='*') gsChat('i[kris] '+resolve(i));
else gsChat('i[money] '+resolve(i));
return true;
}
if (lr_compare({'ctrlKey':false,'shiftKey':false},event))
{
move(i);
return true;
}
return true;
}
function gPi(data){
var pi = '';
for(var i in data){
v = data[i];
var pend = '';
if(v.u==my.uid){
var pp = Math.round((arrTSec['secNHw']/arrTSec['secNHwS'])*25);
pend = '<div id="piLtime"><div style="height:'+pp+'px"></div></div>';
}
$('#p'+i).html('<div class="lvl"></div><div class="gold"></div><div class="act"><div class="hp"></div><div class="mv"></div></div><img src="i.gif" id="c'+i+'" />'+pend);
$('#p'+i+' .gold').css({'position':'relative','top':'2px','text-align':'right','height':'0px','color':(v.c>5)?'red':'navy'});
$('#p'+i+' .gold').html((v.c>5)?'*':v.c);
$('#c'+i)[0].onclick=cell_click;
if(v.u==0){
if(i!=1) $('#p'+i).css({background:'url("img/bgp.gif")'});
else $('#p'+i).css({background:'url("img/bgpp.gif")'});
$('#p'+i+' .act').css({'display':'none'});
pi = 'img/char/a.gif';
if(v.c>0) pi = 'img/char/c.gif';
if(v.c>5) pi = 'img/char/k.gif';
$('#p'+i+' .lvl').html('');
}else{
pi = 'img/char/'+v.im+'_0.gif';
if(v.u==my.uid){
$('#p'+i).css({background:'url("img/bgpmy.gif")'});
arrSkill[1].a = v.c;
}else{
if(i!=1) $('#p'+i).css({background:'url("img/bgp.gif")'});
else $('#p'+i).css({background:'url("img/bgpp.gif")'});
}
$('#p'+i+' .act').css({'display':'inline'});
$('#p'+i+' .lvl').html(v.l);
$('#p'+i+' .hp').css({'width':v.h+'%'});
$('#p'+i+' .mv').css({'width':v.m+'%'});
}
$('#p'+i+' img').attr('src',pi);
}
}