Исправьте скрипт

DeletedUser

Гость
Изучаю язык JavaCkript=) Вот мой первый скрипт,и он естественное не работает:D
Суть в том что бы на странице участников племени,нажимая на скрипт все игроки выводились в ББ-кодах...
Может кто исправит?
Прошу не пинать ногами если уж сооовсем не правильно=(

Код:
javascript: function getGameDoc() {
    getdoc = window.document;
    if (!getdoc.URL.match('game\.php')) {
        for (var i = 0; i < window.frames.length; i++) {
            if (window.frames[i].document.URL.match('game\.php')) {
                getdoc = window.frames[i].document;
            }
        }
    }
    return getdoc;
}
doc = getGameDoc();

function main(doc) {
    var getMain = doc.getElementsByTagName("TABLE");
    for (var a = 0; a < getMain.length; a++) {
        if (getMain[a].className == "main") {
            var getTable1 = getMain[a].getElementsByTagName("TABLE")[1];
            var clonekabile = getTable1.getElementsByTagName("TR")[0].cloneNode(true);
            var clonePoints = getTable1.getElementsByTagName("TR")[1].cloneNode(true);
            var cloneRang = getTable1.getElementsByTagName("TR")[2].cloneNode(true);
            var cloneAlly = getTable1.getElementsByTagName("TR")[3].cloneNode(true);
            if (!getTable1.getElementsByTagName("A")[4]) {} else {
                var getAkte = getTable1.getElementsByTagName("A")[4].href;
                var AkteSplit = getAkte.split(".");
                var welt = AkteSplit[0].slice(8, 10);
                AkteSplit = getAkte.split("&");
                var pit = AkteSplit[1];
            }
            var getTable2 = getMain[a].getElementsByTagName("TABLE")[2];
            var getRows = getTable2.getElementsByTagName("TR");
            for (var c = 0; c < getRows.length; c++) {
                if (getRows[c].firstChild.nodeName == "TD") {
                    getRows[c].getElementsByTagName("TD")[1].firstChild.insertData(0, "[player]");
                    getRows[c].getElementsByTagName("TD")[1].firstChild.insertData(getRows[c].getElementsByTagName("TD")[1].firstChild.data.length, "[/player]");
                    getRows[c].removeChild(getRows[c].firstChild);
                }
            }
            getRows[0].removeChild(getRows[0].firstChild.nextSibling);
            if (!getTable1.getElementsByTagName("A")[4]) {} else {
                var newTR = doc.createElement("TR");
                var newTD = doc.createElement("TD");
                var newText = doc.createTextNode("");
                newTD.appendChild(newText);
                newTR.appendChild(newTD);
                getTable2.firstChild.nextSibling.insertBefore(newTR, getTable2.getElementsByTagName("TR")[0]);
            }
            getTable2.firstChild.nextSibling.insertBefore(cloneAlly, getTable2.getElementsByTagName("TR")[0]);
            getTable2.getElementsByTagName("A")[0].firstChild.insertData(0, "[ally]");
            getTable2.getElementsByTagName("A")[0].firstChild.insertData(getTable2.getElementsByTagName("A")[0].firstChild.data.length, "[/ally]");
            getTable2.firstChild.nextSibling.insertBefore(cloneRang, getTable2.getElementsByTagName("TR")[0]);
            getTable2.firstChild.nextSibling.insertBefore(clonePlayer, getTable2.getElementsByTagName("TR")[0]);
            getTable2.getElementsByTagName("TH")[0].firstChild.insertData(0, "[player]");
            getTable2.getElementsByTagName("TH")[0].firstChild.insertData(getTable2.getElementsByTagName("TH")[0].firstChild.data.length, "[/player]");
        }
    }
}
if (!doc.URL.match('screen=info_kabile')) {
    alert('You have to be on a kabileler overview!');
} else {
    main(doc);
}
 
Последнее редактирование модератором:

Akkela

Кавалерист
Член команды
Модератор
Оценка реакций
74
что бы пока не ставить студию - куда выводить будеш? только ники?
 

Akkela

Кавалерист
Член команды
Модератор
Оценка реакций
74
для начала попробуй вывод в popup сделать

Код:
popup=window.open ('about:blank','twfg','width=640,height=480,scrollbars=1');
popup.document.open ('text/html','replace');
popup.document.write("здесь мои данные в литерале");
popup.document.close();
 

Akkela

Кавалерист
Член команды
Модератор
Оценка реакций
74
1. не вижу слысла в функции getGameDoc(), простой doc=document; спасет мир

2. искать среди всех табличек нужную можно проще... у нашей есть клас - "vis", таких таблиц в screen=ally&mode=members с ПА 3 штуки, без - 2.
В обоих случаях наша таблица вторая, отнимаем 1 для array = 1.
Если смотриш на чужое племя только одна. 1-1=0
Итого наша таблица = document.getElementsByClassName("vis")[1] или ...[0]

3. смысла закидывать все весь код в проверку таблицы нет.

4. ноды, которые клонируеш, не используются



П.С. getAkte... это гдето нашел или в германии обитаеш?

пока думал как поправить свой написал. если кому то нужен - пишите в личку, выложу
 
Последнее редактирование:

DeletedUser

Гость
Народ, у кого есть рабочий скрипт на атаки, со счетчиком высланных атак
 

DeletedUser

Гость
javascript:
var Player="nik";
coords='координаты';
var units=[0,0,-1,0,-1,-1,-1,0,-1,-1,0,0];
var a;
var vid="Attak-";
var cookieName=vid+Player;
function insertUnit(input, count) { if(input.value != count) { input.value=count; } else{input.value=''; } }
var doc=document;
if(window.frames.length>0)doc=window.main.document;
url=doc.URL;
if(url.indexOf('screen=place')==-1)alert('Этот скрипт работает только на площади');
coords=coords.split(" ");
a=coords.length;
index=0;
farmcookie=document.cookie.match('(^|;) ?'+ cookieName +'=([^;]*)(;|$)');
if(farmcookie!=null)index=parseInt(farmcookie[2]);
a=coords.length;
if(index>=a)index=0;
coords=coords[index];
coords=coords.split("|");
index=index+1;
alert(index+" "+"из"+" "+a);
if(index>=a)alert('Это была последняя деревня списка');
cookie_date=new Date(2012,12,12);
document.cookie=cookieName +"="+index+";
expires="+cookie_date.toGMTString();
doc.forms[0].x.value=coords[0];
doc.forms[0].y.value=coords[1];
selectAllUnits(true);
if (units[0]>=0) {insertUnit(doc.forms[0].spear, units[0])};
if (units[1]>=0) {insertUnit(doc.forms[0].sword, units[1])};
if (units[2]>=0) {insertUnit(doc.forms[0].axe, units[2])};
if (units[3]>=0) {insertUnit(doc.forms[0].archer, units[3])};
if (units[4]>=0) {insertUnit(doc.forms[0].spy, units[4])};
if (units[5]>=0) {insertUnit(doc.forms[0].light, units[5])};
if (units[6]>=0) {insertUnit(doc.forms[0].marcher, units[6])};
if (units[7]>=0) {insertUnit(doc.forms[0].heavy, units[7])};
if (units[8]>=0) {insertUnit(doc.forms[0].ram, units[8])};
if (units[9]>=0) {insertUnit(doc.forms[0].catapult, units[9])};
if (units[10]>=0) {insertUnit(doc.forms[0].snob, units[10])};
end();


вот такой он был, ...
 
Верх