ㆍ게임 | 2011. 2. 25. 21:50
웹게임 부족전쟁(Tribal Wars) - 피격시 거리간 이동시간 계산기/시간계산기(by.운영자)
부족전쟁은 실시간 게임으로 공격, 수비시에 유닛마다의 이동 시간이 각기 다릅니다.
여기서 골치아픈것이 유닛간의 상성으로 공격오는 유닛에 맞추어 방어병력을 두지않는다면
큰손해가 벌어지게 됨으로 아무래도 나에게 오는 공격이 어떤유닛인지를 잘 알기만 하더라도 꽤나
실력을 인정해줄수 있겠다 싶습니다.
하다못해 뉴비는 벗어나는 정도쯤 되겠군요.
아래는 포럼에서의 운영자님이 쓰신 시간계산기 입니다.
큰 도움이 될터이니 꼭 참고하시길......
*** 이 퀵바용 자바스크립트 코드는 익스플로러에서 동작하지 않습니다. Firefox 혹은 Opera 브라우저의 사용을 추천합니다.
프리미엄 기능 중, 공격 하나하나 마다 내가 원하는, 알기쉬운 이름으로 다시 붙여주는 기능이 있습니다.
시간계산기는 이를 활용하여, 공격이 들어올때, 출발지와 도착지의 거리를 계산하고, 각 병종별 이동속도를 표시함으로서
해당 공격에 포함된 병종이 어느병종인지 알아낼수 있게 도와줍니다.
주로 공성병기까지만 포함된 공격구성과
귀족이 포함된 공격구성을 분별해 내는데 쓰입니다.
코드:
javascript:var tm;t=document.getElementsByTagName('table');for(var i=0;i<t.length;i++){if(t[i].className=='main'){tm=t[i].getElementsByTagName('tbody')[0];break;}}ts=tm.getElementsByTagName('table');for(var j=0;j<ts.length;j++){if(ts[j].className='vis'){tv=ts[j].getElementsByTagName('tbody')[0];sp=ts[j].getElementsByTagName('span');for(var k=0;k<sp.length;k++){if(sp[k].getElementsByTagName('input').length>0){se=sp[k];}}z=tv.getElementsByTagName('tr');a=z[1].getElementsByTagName('td')[2].getElementsByTagName('a')[0].innerHTML;s=z[2].getElementsByTagName('td')[1].getElementsByTagName('a')[0].firstChild.nodeValue;g=z[4].getElementsByTagName('td')[1].getElementsByTagName('a')[0].firstChild.nodeValue;for(k=z.length-2;k>2;--k){if(z[k].getElementsByTagName('td')[0].firstChild.nodeValue=='Ankomst om:'){Dauer=z[k].getElementsByTagName('td')[1].innerHTML;}else{tv.removeChild(z[k]);}}break;}}h=s.split('(');s=h[h.length-1];h=s.split(')');s=h[0];h=g.split('(');g=h[h.length-1];h=g.split(')');g=h[0];wx=0;wy=0;Typ=s.split(':');if (Typ.length==3){StKo=s.split(':');ZiKo=g.split(':');wx=Math.abs(((StKo[0]% 10)*50+(StKo[1]% 10)*5+StKo[2]%5)-((ZiKo[0]% 10)*50+(ZiKo[1]% 10)*5+ZiKo[2]%5));wy=Math.abs((Math.floor(StKo[0]/10)*50+Math.floor(StKo[1]/10)*5+Math.floor(StKo[2]/5))-(Math.floor(ZiKo[0]/10)*50+Math.floor(ZiKo[1]/10)*5+Math.floor(ZiKo[2]/5)));}else{StKo=s.split('|');ZiKo=g.split('|');wx=Math.abs(StKo[0]-ZiKo[0]);wy=Math.abs(StKo[1]-ZiKo[1]);}w=Math.sqrt(wx*wx+wy*wy);tv.width='470';nr=document.createElement('tr');nh=document.createElement('th');nc=document.createElement('td');nc.colSpan='2';nc.innerHTML='Distance:';nr.appendChild(nc.cloneNode(true));nc.removeAttribute('colSpan');nc.innerHTML=w.toFixed(2)+' Fields';nr.appendChild(nc);nc=nc.cloneNode(false);tv.insertBefore(nr.cloneNode(true),z[z.length-1]);nc.height='10';nc.colSpan='3';nr.innerHTML='';nr.appendChild(nc);tv.appendChild(nr);nr=nr.cloneNode(false);nc=document.createElement('td');nr.appendChild(nc);nr=document.createElement('tr');nh.innerHTML='Unit';nr.appendChild(nh.cloneNode(true));nh.innerHTML='Duration';nr.appendChild(nh.cloneNode(true));nh.innerHTML='Name to';nr.appendChild(nh.cloneNode(true));tv.appendChild(nr);ie=tv.getElementsByTagName('input')[0].cloneNode(true);ib=tv.getElementsByTagName('input')[1].cloneNode(true);e=new Array('정탐','경기','중기','도끼','검','충차','노블');n=new Array('정탐','경기','중기','도끼','검','충차','노블');l=new Array(6,6.67,7.33,12,14.67,20,23.33);ie.size='36';for(var i=0;i< e.length;i++){t3=new Array();es=Math.round(l[i]*60*w);te='';t3[0]=Math.floor(es/3600);t3[1]=Math.floor(es/60)% 60;t3[2]=es% 60;for(var j=0;j<3;j++){if(t3[j]<10){te+='0';}te+=t3[j]+':';}te=te.slice(0,te.length-1);ie.value=n[i]+' ('+s+') '+a+' 직선거리'+w.toFixed(1);nr=document.createElement('tr');nc=document.createElement('td');nc.innerHTML=e[i];nr.appendChild(nc.cloneNode(true));nc.innerHTML=te;nr.appendChild(nc);nc=document.createElement('td');ie.id='editInput'+i;nc.appendChild(ie.cloneNode(true));ii=ib.cloneNode(true);ii.onmousedown=new Function('document.getElementById(\'editInput\').value=document.getElementById(\'editInput'+i+'\').value;');nc.appendChild(ii);nr.appendChild(nc);tv.appendChild(nr);}s();
이 소스를 프리미엄 계정이 활성화 된 상태에서
설정 - 퀵바 편집기 에서
실제 예를 보면서 알아보겠습니다.
현재 운영자마을로 누군가가 수백시간씩 걸리는 공격을 해오고 있군요.
이 경우,
1. 출발시간이 각각 다른 같은 병력구성의 공격
2. 출발시간이 같지만, 다른 병력구성의 공격 등 여러 상황이 이와같은 환경을 만들어 낼수 있습니다.
가능한한, 부족전쟁에 접속하는 간격을 줄여, 공격 출발시점이 어느때인지 아는것이 매우 중요합니다.
위의 경우, 거의 같은 시간에, 같은곳에서 출발했다고 가정해 봅시다.
이 경우, 시간계산 스크립트를 사용하기 위해 붉게 표시된 공격버튼을 눌러봅시다.
이와같은 화면이 표시되게 됩니다. 이제, 앞에서 준비한 시간계산기를 사용해 보겠습니다.
부족전쟁 최신버전에서 `기간보기` 버튼을 통해 이 기능을 대신할수 있게 되었습니다.
몇몇 정보가 사라지고 새로운 정보가 나타나게 됩니다.
지금 이 공격이 217시간 05분 56초가 남아있으니 , 이동시간이 132시간인 무장기마병 혹은 그보다 빠른 병종은 절대 아니라는 정보를 최소한으로 확보할수 있습니다.
다만 공격을 늦게 발견하여, 원래 217시간이 걸리는 공격을 132시간이 남았을때 발견하게된다면, 원하지 않는 변수가 추가되는것이겠죠.
이 경우 공격 직후 바로 발견하여 바로 시간계산을 한것으로 간주하고, 최소한 도끼병이 포함된, ( 아마도 기마병과 도끼병이 같이 오는것이겠죠.) 공격으로 추정하고 도끼병에 OK버튼을 누릅니다.
이와같이 오는 공격에 포함된 병종을 예측하는데 쓰일수 있습니다.
하지만 유닛 속도가 다른 4세계에서는 스크립트의 수정을 요합니다.
( 수정된 4세계 전용 코드를 작성하여 위에 포함시켜 놓았습니다. 차후 5세계 이후 계속 세계가 나올때마다 세계의 특성에 따른 수정을 필요로 합니다.)
또한, 공격을 너무 늦게 발견하면 시간계산기의 효과를 볼수 없습니다.
자주 접속하여 공격이 오는지 안오는지 체크하는것도 필요하겠죠.
웹게임 부족전쟁(Tribal Wars) - 피격시 거리간 이동시간 계산기/시간계산기(by.운영자)
JB Simple Tistory Skin V0.5 by CMS Factory