не лезет скрипт, помогите упаковать

  • Автор темы АГАПАНТУС
  • Дата начала

DeletedUser

Гость
Столкнулся с серьёзной для меня проблемой - люблю максимально упростить себе жизнь, потому до недавнего времени пугал своим квикбаром друзей(дошёл до 7 фулл-строк). Потом сложил часть ссылок друг в друга, свёл до одной строки плюс две технические. Сейчас начал сворачивать ещё сильнее и тут выскочило
. Неприятно. Посмотрел через блокнот - у меня почти 8кБ кода 0о
Видел некоторые скрипты, начинающиеся с
javascript: eval(function(p,a,c,k,e,d){e=function(c)
. Вопрос - как сделать подобное с моим художеством?

оригинал моего кода на 8к:

Код:
javascript: var mystr = location.href;mystr = mystr.substring(0, mystr.indexOf('&'));
var innerscript = \'var loccat='
a = annexed b = baseloc c = claimed e = enclave f = planned d = dropped 
g = targets(xy) h = handled(targets_vid) i = iplayer(ram_target)';
var loclist='
0F | 582 | 612 | a | Heart 18 | 459 | 642 | b | Hemorroids 1A | 488 | 641 | e | BarField_64NE 1E 
| 568 | 627 | e |BarField_65N 29 | 474 | 645 | b | Rings 2C | 518 | 635 | b | FarIt777(65) 2F 
| 587 | 641 | e | TBarField_65E 37 | 435 | 660 | b | WestFort 38 | 461 | 657 | e | SRelax64 39 
| 475 | 660 | b | G_A_H_SPb 3A | 488 | 656 | e | EastFort 47 | 426 | 677 | e | BarField_64SW 48 
| 456 | 676 | e | BarField_64S 4B | 503 | 673 | c | Sw.5A | 491 | 687 | e | BarField_64SE 64 | 393 
| 700 | e | WestTower 69 | 467 | 702 | b | AngelNorGard 72 | 358 | 717 | e | Forgotten73 79 | 467 
| 717 | b | BonChance 7K | 678 | 717 | f | FarAway 83 | 372 | 726 | f | BabelGum 9A | 482 | 747 
| b | Perm 9B | 497 | 747 | e | hstopor 9I | 648 | 748 | c | mrUeff A7 | 438 | 762 | e | DeadMan A8 
| 457 | 762 | b | BaseLoc A9 | 474 | 762 | e | Enclave AB | 497 | 762 | b | Murom B7 | 439 | 777 
| b | Ellada B9 | 465 | 777 | e | Florida BA | 482 | 777 | e | SouthPark CD | 543 | 792 | c 
| GrandBonusCD sorthandle | 505 | 634 | g | mrUeff_LZ sorthandle | 515 | 687 | g | Ledi - I7 sorthandle 
| 394 | 589 | g | Ledi - B0 sorthandle | 405 | 604 | g | Ledi - C0 sorthandle | 405 | 619 | g 
| Ledi - D0 sorthandle | 400 | 652 | g | Ledi - F0 sorthandle | 420 | 604 | g | Ledi - C1 sorthandle 
| 420 | 619 | g | Ledi - D1 sorthandle | 420 | 634 | g | Ledi - E1 sorthandle | 420 | 649 | g 
| Ledi - F1 sorthandle | 435 | 585 | g | Ledi - B2 sorthandle | 435 | 604 | g | Ledi - C2 sorthandle 
| 435 | 619 | g | Ledi - D2 sorthandle | 435 | 634 | d | Ledi - E2 sorthandle | 436 | 649 | d 
| Ledi - F2 sorthandle | 435 | 679 | g | Ledi - H2 sorthandle | 450 | 570 | g | Ledi - A3 sorthandle 
| 450 | 585 | g | Ledi - B3 sorthandle | 451 | 604 | g | Ledi - C3 sorthandle | 450 | 619 | g 
| Ledi - D3 sorthandle | 450 | 634 | g | Ledi - E3 sorthandle | 450 | 649 | g | Ledi - F3 sorthandle 
| 450 | 664 | g | Ledi - G3 sorthandle | 450 | 679 | g | Ledi - H3 sorthandle | 465 | 585 | g 
| Ledi - B4 sorthandle | 465 | 619 | d | Ledi - D4 sorthandle | 465 | 634 | g | Ledi - E4 sorthandle 
| 465 | 664 | g | Ledi - G4 sorthandle | 482 | 559 | g | Ledi - Z5 sorthandle | 480 | 577 | g 
| Ledi - A5 sorthandle | 480 | 591 | g | Ledi - B5 sorthandle | 480 | 619 | g | Ledi - D5 sorthandle 
| 480 | 634 | d | Ledi - E5 sorthandle | 492 | 604 | g | Ledi - C6 sorthandle | 495 | 621 | g 
| Ledi - D6 unit / unit_sword | 18172 | 0 | h | place unit / unit_axe | 481 | 705 | g 
| ScanIt unit / unit_spy | 491 | 687 | g | налсура ( ? ) unit / unit_ram | 1115322 | k54 | i 
| player buildings / market | 86762 | max(mrUeff) | h | market ';
/* maplinks */function maplinks(mapa){var loccatz=loccat.split('');
var rs=''; if(mapa==''){for(j=0;j<loccatz.length;j++){l occats=loccatz[j].split(' = ');
rs+=' < a href = javascript: maplinks("'+loccats[0]+'") > '+loccats[1]+' < /a> | ';};}
else if(mapa.length<2){var cati=0;var catn='';for(j=0;j<loccatz.length;j++){loccats=locc atz[j].split('=');
if(mapa==loccats[0]){cati=j;catn=loccats[1];};};rs+='<b>'+catn+' :</b > ';var loclistz=loclist.split('');
for(j=0;j<loclistz.length;j++){loclists=loclist z[j].split(' | ');
if(loclists[3]==mapa){if(cati<5){rs+=' < a href = '+mystr+' & screen = map & x = '+loclists[1]+' & y = '
+loclists[2]+' > '+loclists[0]+'.'+loclists[4]+' < /a> | ';}else if(cati<7){rs+='<a href='
+mystr+'&screen=map&x='+loclists[1]+'&y='+loclists[2]+'><img src=http:/ / cdn.tribalwars.net / graphic / '
+loclists[0]+'.png > '+loclists[4]+' < /a> | ';}else if(cati<8){rs+='<a href='+mystr+'&screen='
+loclists[4]+'&target='+loclists[1]+'><img src=http:/ / cdn.tribalwars.net / graphic / '
+loclists[0]+'.png > '+loclists[2]+' < /a> | ';}else{rs+='<a href='+mystr+'&screen=info_'
+loclists[4]+'&id='+loclists[1]+'><img src=http:/ / cdn.tribalwars.net / graphic / '+loclists[0]
+'.png > '+loclists[2]+' < /a> | ';};};};};if(rs.length>3)rs=rs.substring(0,rs.leng th-3);
document.getElementById('newbar_content').inner HTML=rs;};/ * /maplinks */ /* menuvars */


function renamer() {
    rs = '';
    renst = '{#q}&{#loc}&{#cutlass}&{#ol d} {#q}&{#encrypt}&{#decrypt}&{#sort}
	&{#sort}:0:0 2 3 4 1&{#sort}:0:2 3 1 0 4&Los Angeles {#nr}:3:0';
    renz = renst.split('&');
    for (j = 0; j < renz.le ngth; j++) {
        if (renz[j].search(':') != -1) {
            rens = renz[j].split(':');
        } else {
            rens = new Array(renz[j], '0', '0');
        };
        rs += '<a href=javascript:n_mvrs("' + rens[0] + '","' + rens[1] + '","' 
		+ rens[2] + '");>' + renz[j] + '</a> | ';
    };
    if (rs.length > 3) rs = rs.substring(0, rs.length - 3);
    document.getElementById('newbar_content').inner HTML = rs;
}; /* /menuvars */
/*from this point is renamer script*/

/*@contributor Lekensteyn<lekensteyn@gmail.com>;russian version by Krutov Leonid*/
function n_mvrs(village_name, nln, sord) { 
    var inputs = document.getElementsByTagName('input');
    if ((!village_name) | (village_name.search('{#q}') != -1)) {
        village_name = prompt('Настройка новых названий для деревень. 
		Возможности:\n\n*{#k},{#x},{#y},{#c} - функции координат деревни. [c]=[x]|[y]; 
		обычная запись координат в обзоре [c] K[k]\n*{#old} - старое название деревни без изменений *** *{#nr} 
		- номер деревни по списку\n----------------------\n*{#id} - id деревни\n
		*{#sort} - switches fields in index for sort by other field\n
		*{#cutlass} - clears all after last space\n*{#loc} - вставляет glid', village_name);
    };
    if (!village_name);
    else if (village_name.length < 3) {
        alert('Название деревни не может быть короче 3 символов!');
    } else {
        var current = 1;
        if (village_name.search('{#nr}') != -1) {
            if (!nln) nln = prompt('В поле ниже укажите пожалуйста количество символов в номере деревни.\n
			Цифра больше единицы - фиксированная длина номера, единица(по умолчанию)\n
			даст обычную нумерацию (1,..,9,10,...)', '');
            if (nln) nln = nln.match(/\d+/);
            nln = nln ? nln * 1 : 0;
            if (nln && (current!sord) ? prompt('С какого номера начинать?:', current) : sord)) {
            current = current.match(/\d+/);
        };
        current = current ? current * 1 : 0;
        var sln = -1 * nln;
        var nrsnew Array(nln)).join('0');
};
var cre = /((\d{1,3})\|(\d{1,3}))\)%20.(\d{1,2})$/;
var transtr = '0 1 2 3 4 5 6 7 8 9 A B C D E F G H I J K L M N O P Q R S T U V';
transtr = transtr.split(' '); /* -= sort =- */
if (village_name.search('{#sort}') != -1) {
    if (!sord) sord = prompt('Укажите через пробелы новый порядок полей в 
	индексе относительно старого. 0 - первое поле.', '');
};

function sortie(s) {
    var sords = sord.split(' ');
    s = s.split(' ');
    var nis = '';
    for (k = 0; k < sords.length; k++) {
        nis += s[sords[k] * 1] + ' ';
    };
    nis = nis.substring(0, nis.length - 1);
    return nis;
}; /* -= /sort =- */
for (var i = 0, l = inputs.length; i < l; i++) {
    if (inputs[i].id.indexOf('edit_input') != -1) {
        var nr = '' + current;
        if (nln > nr.length) nrnrs + nr).substr(sln);
    var did = inputs[i].id.match(/\d+/) * 1;
    var old = inputs[i].value;
    var crd = document.getElementById('label_text_' + did).inn erHTML.match(cre);
    var oldi = old.split(' '); /* -= loc =- */
    var x = crd[2] * 1;
    var y = crd[3] * 1;
    var cl = '';
    var cx = 0;
    var cy = 0;
    var cn = 'test';
    var locinfo = '';
    var cr = '';
    var loclistz = loclist.split(' ');
    for (j = 0; j < loclistz.length; j++) {
        locinfo = loclistz[j].split('|');
        k = 1;
        if (locinfo[3] == 'h') k = 0;
        if (locinfo[3] == 'i') k = 0;
        if (locinfo[3] == 'g') k = 0;
        if (locinfo[3] == 'd') k = 0;
        if (k) {
            k = 1;
            if ((x - locinfo[1]) < -7) k = 0;
            if ((x - locinfo[1]) > 7) k = 0;
            if ((y - locinfo[2]) < -7) k = 0;
            if ((y - locinfo[2]) > 7) k = 0;
            if (k) {
                cx = x + 7 - locinfo[1];
                cy = y + 7 - locinfo[2];
                cl = locinfo[0];
                cn = locinfo[4];
            };
        };
    };
    cx = transtr[cx];
    cy = transtr[cy];
    cr = cl + cy + cx + ' ' + cn; /* -= /loc =- */
    /* -= cutlass =- */
    ci = '';
    for (j = 0; j < oldi.length - 1; j++) {
        ci += oldi[j] + ' ';
    };
    ci = ci.substring(0, ci.length - 1); /* -= /cutlass =- */
    inputs[i].value = village_name.replace(/{#c}/g, crd[1]).replace(/{#x}/g, crd[2]).replace(/{#y}/g, 
	crd[3]).replace(/{#k}/g, crd[4]).replace(/{#nr}/g, nr).replace(/{#old}/g, old).replace(/{#id}/g, 
	did).replace(/{#loc}/g, cr).replace(/{#cutlass}/g, ci).replace(/{#sort}/g, sortie(old)).replace(/{#q}/g, old);
    current++;
    inputs[i + 1].click();
};
};
};
};\';
var bars=document.getElementsByTagName('
ul ');var oldbar=bars[1].innerHTML;
function putmylink(lh,im,ac){return ' < a href = "'+lh+'" > 
< img src = "http://cdn.tribalwars.net/graphic/'+im+'.png" > '+ac+' < /a>';};
var nbmm=putmylink(\'javascript:var bars=document.getElementsByTagName('ul');
bars[1].innerHTML=document.getElementById('oldbar_content ').innerHTML;\',\'delete\',\'\')+' | '
+putmylink(\'javascript:maplinks('');\',\'sorthan dle\',\'\')+' | '
+putmylink(\'javascript:renamer();\',\'rename\',\ '\');
var newbar=\'<script language="JavaScript">\'+innerscript+\'</script > < span id = "oldbar_content"
style = "display:none" > \'+oldbar+\'</span><span id="newbar_mainmenu">\'
+nbmm+\'</span><span id="newbar_content"></span>\';
bars[1].innerHTML=newbar;

для справки по содержимому скрипта:
  1. список моих локаций(в основном)+локации, к которым я потенциально могу обратить внимание+target-инфа
  2. функция, генерирующая ссылки на карту по этим координатам либо на площадь/рынок/обзор профиля по id
  3. функция, генерирующая ссылки для использования скрипта-функции(п.4) переименования деревень с различным набором аргументов
  4. функция переименования деревень(переведено мной с нидерландского(вроде),источник не укажу;модифицировано(точнее надстроено) для собственных нужд)
  5. скрипт замены исходной панели новым содержимым с возможностью run-time возврата без перезагрузки страницы, содержимое - кнопка возврата, кнопка генерации ссылок по карте, кнопка генерации ссылок для переименования деревень.

в планах добавить в это чудо ещё 3 мегоссылки, сделанных мною ранее:
  • ссылка на переход к определённому обзору определённой группы деревень(в т.ч. окно масс чеканка монет в определённой группе)
  • ссылка на переход к определённому зданию(в т.ч. вкладкам в зданиях) в деревне+ввод определённого отряда в площади+несколько ссылок типа перехода к определённой папке писем,своим броням и т.п.
  • скрипт-калькулятор для набора войск с возможностью подстановки результата (остаёться только нажать "Призыв")
 
Последнее редактирование модератором:

DeletedUser12618

Гость
Задофига скриптов в панели, придется чтото убирать
 

DeletedUser27002

Гость
Сталкивался с этой фичей, до максимального количества скриптов было далеко.
 

DeletedUser26201

Гость
у тебя достаточно много ошибок в исходном коде к примеру цикл или условие должны заканчиваться закрывающей фигурной скобкой(}) , у тебя же (}; )
for(j=0;j<loccatz.length;j++){
loccats=locc atz[j].split('=');
if(mapa==loccats[0]){
cati=j;catn=loccats[1];
};
};

Плюс что ты хотел сказать этой строкой?
var innerscript=\'var loccat='a=annexed b=baseloc c=claimed e=enclave f=planned d=dropped g=targets(xy) h=handled(targets_vid) i=iplayer(ram_target)'
если это строка то почему начинаеться с (\)
если перечисление переменных тогда разделяй их(; )

у тебя есть исходный код в нормально читаемом виде (не в единую строку)?
 
Последнее редактирование модератором:

DeletedUser

Гость
Жесть))))
Зато сразу видно: Сам писал)))
 

Akkela

Кавалерист
Член команды
Модератор
Оценка реакций
74
1. про ошибки и т.д. общайтесь прежде всего в личке - здесь это не по делу и может обидеть автора
2. сделал исходник для интересующихся легче читаемым
 
Верх