Техническая поддержка сервиса Quadro.Boards

Объявление

Новости сервиса

О форуме

Quadro.Support – это форум технической поддержки различных проектов и сервисов Quadro.Systems LLC, на котором грамотные технические специалисты всегда смогут помочь вам в решении проблем, или же подсказать ответы на самые сложные вопросы. Так же на форуме собрана обширная база знаний по различным аспектам наших сервисов. Не забывайте пользоваться поиском ;)

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.


Вы здесь » Техническая поддержка сервиса Quadro.Boards » Поток сознания » Скрипты по подгрузке API WoW


Скрипты по подгрузке API WoW

Сообщений 121 страница 129 из 129

121

sadhaka
есть.
у тебя вот тут на первой странице прогружаются авы?
http://blackteam.mmohost.ru/viewtopic.php?id=5
посему-т начиная с четвертого поста не пашет скрипт. в других местах вродь норма

0

122

Герда
ага, про гостей забыла (
попробуй вот эту строчку в скрипте

idParam = $(this).find(".pa-respect a[href*='respect.php']").attr('href').split('id=')[1];


заменить на

if ($(this).find(".pa-respect a[href*='respect.php']").length)
idParam = $(this).find(".pa-respect a[href*='respect.php']").attr('href').split('id=')[1];

else {
setDefaultAva(newAva); return;
}

не очень оптимальный вариант. надо подумать как оформить все условия

+1

123

шик, все пашет ^^

0

124

sadhaka
в догонку, если будет время, у нас проблема с скриптом ростера:
http://blackteam.mmohost.ru/pages/roster (см. полный состав гильдии внизу)

скриптег
Скрытый текст:

Для просмотра скрытого текста - войдите или зарегистрируйтесь.

как работает
инфа берется с файла оружейной гильдии: http://eu.battle.net/api/wow/guild/подземье/Чёрный отряд?fields=members&jsonp=breturn
но вставляет с этого файла только имена: http://eu.battle.net/wow/ru/character/%D0%BF%D0%BE%D0%B4%D0%B7%D0%B5%D0%BC%D1%8C%D0%B5/"+p.character.name+"/simple

суть проблемы.
наша гильдия находится на объединенном риалме, поэтому в ней состоят игроки с двух серверов (разувий, подземье)
но скрипт не выцепляет инфу о риалме и всем по умолчанию ставит "подземье" из-за этого в ростере неправильные ссылки на персонажей.
можешь, для примера в поиске Шквалударов найти. таблица выдаст дк в результате, но по ссылке на батл нет откроется другой перс с таким наком на подземье - паладин.

что над поправить
нужно, чтоб скрипт еще забирал из оружейной сервер игрока и вставлял в ссылку:

{"character":{"name":"Анчерите","realm":"Deepholm","battlegroup":"Sturmangriff / Charge","class":11,"race":6,"gender":0,"level":100,"achievementPoints":11650,"thumbnail":"deepholm/134/17156742-avatar.jpg","spec":{"name":"Restoration","role":"HEALING","backgroundImage":"bg-druid-restoration","icon":"spell_nature_healingtouch","description":"Uses heal-over-time Nature spells to keep allies alive.","order":3},"guild":"Чёрный отряд","guildRealm":"Deepholm"},"rank":7}


я как-то копалась с этим, но руки не оттуда растут, что-то не то делаю.

0

125

Герда
Чисто теоретически в этой строке

l=l + "<tr><td><a target=\"_blank\" href=\"http://eu.battle.net/wow/ru/character/%D0%BF%D0%BE%D0%B4%D0%B7%D0%B5%D0%BC%D1%8C%D0%B5/"+p.character.name+"/simple\">"
+p.character.name+"</a></td><td><img src=\"http://media.blizzard.com/wow/icons/18/race_"+p.character.race+"_"+p.character.gender+".jpg\"></td><td><img src=\"http://media.blizzard.com/wow/icons/18/class_"+p.character.class+".jpg\"></td><td>"+p.character.level+"</td><td>"+r[p.rank]+"</td><td><span class=\"ach-icon\">"+p.character.achievementPoints+"</span></td></tr>";

надо заменить на

l=l + "<tr><td><a target=\"_blank\" href=\"http://eu.battle.net/wow/ru/character/"+p.character.realm+"/"+p.character.name+"/simple\">"
+p.character.name+"</a></td><td><img src=\"http://media.blizzard.com/wow/icons/18/race_"+p.character.race+"_"+p.character.gender+".jpg\"></td><td><img src=\"http://media.blizzard.com/wow/icons/18/class_"+p.character.class+".jpg\"></td><td>"+p.character.level+"</td><td>"+r[p.rank]+"</td><td><span class=\"ach-icon\">"+p.character.achievementPoints+"</span></td></tr>";

0

126

Герда
Слушай, мне нравится этот скрипт. И файлик нравитс.я Можно его заюзать для аватарок. Получится вообще 1 запрос к баттленету. И без локалстораджа.
У Вас же все форумчане из этой гильдии?

0

127

sadhaka
не все.
но! мне начхать, если гости форума, не состоящие в гильдии будут иметь стандартную аватарку по умолчанию.
более того - это выделяет наших согильдейцев как особых кашерных юзеров. :)
если это увеличит производительность скрипта, то давай юзать его.

0

128

Герда
ок, я попробую заняться

0

129

sadhaka
ку.
хелп, плиз, поправить скрипт оружейной.

близы решили уменьшить количество запросов на ружейную со всяких левых сайтов и терь заставляют регить ключ на доступ к данным с ограничением по количеству запросов с сайта.

кароче - изменилась ссылка на данные персонажа. и я хз как ее вкорячить корректно.
раньше ссылка у нас была такая:

http://eu.battle.net/api/wow/character/название сервера/имя персонажа

теперь сцылка у нас такая:

Скрытый текст:

Для просмотра скрытого текста - войдите или зарегистрируйтесь.

собственно, в этот кусок скрипта (как я думаю) над подправить:

function getData(flag, id, realm, nick, aux, place) { //get data from battle.net, if LocalStorage is empty
  $.jsonp({
    url: 'http://eu.battle.net/api/wow/character/'+realm+'/'+nick,
    callbackParameter: 'jsonp',
    success: function(json) {
        arrStorage[id] = {'realm': json.realm, 'nick': json.nick, 'aux': aux, 'avatar': json.thumbnail, 'class': json.class};
        localStorage.setItem('battlenet', JSON.stringify(arrStorage));
        if (flag == "topic") {
            setCustomAva(place, realm, nick, aux, json.thumbnail);
            setColorTopic(place, json.class);
        }
        if (flag == "all") {
            setCustomAva(place, realm, nick, aux, json.thumbnail);
            $("a[href$='/profile.php?id="+id+"]").css("color", colorClasses[json.class]);
        }
       
    },
    error: function() {
        setDefaultAva(place, flag, id);
    }
  });
}

на всякий случай вот весь он

Код:
<!-- аватары -->
<style>
  .pa-avatar.item2, .pa-fld1 {display: none;}
</style>

<script src="http://co.forum4.ru/files/0011/e9/e1/73894.js"></script>
<script>
//global var
var arrStorage, dataSet, currentDate, createDate, arrParam = []; 
var fld = 1;

var colorClasses = {
1 : "#c69b5b",
2 : "#d58cba",
3 : "#aad372",
4 : "#fff448",
5 : "#ffffff",
6 : "#aa1813",
7 : "#2359ff",
8 : "#68cccd",
9 : "#9382c9",
10 : "#0dffba",
11 : "#ff7c0a",
};
// end global var
function readLocalStorage() { //read LocalStorage to global var arrStorage
  var arrStorage, currentDate, createDate;

  if(window.localStorage) {
    currentDate = new Date();
    currentDate = Date.parse(currentDate) / 86400000;

      if (localStorage.getItem('battlenet') !== null) {
        
        arrStorage = $.parseJSON(localStorage.getItem('battlenet'));
        createDate = arrStorage[dataSet];
        if (currentDate - createDate > 7) {
          localStorage.removeItem('battlenetAva');
        } 
      }
      if (localStorage.getItem('battlenet') == null) {
        arrStorage = {};
        arrStorage['dataSet'] = currentDate;
      }        
  }
  return arrStorage;
}

function getData(flag, id, realm, nick, aux, place) { //get data from battle.net, if LocalStorage is empty
  $.jsonp({
    url: 'http://eu.battle.net/api/wow/character/'+realm+'/'+nick,
    callbackParameter: 'jsonp',
    success: function(json) {
        arrStorage[id] = {'realm': json.realm, 'nick': json.nick, 'aux': aux, 'avatar': json.thumbnail, 'class': json.class};
        localStorage.setItem('battlenet', JSON.stringify(arrStorage));
        if (flag == "topic") {
            setCustomAva(place, realm, nick, aux, json.thumbnail);
            setColorTopic(place, json.class);
        }
        if (flag == "all") {
            setCustomAva(place, realm, nick, aux, json.thumbnail);
            $("a[href$='/profile.php?id="+id+"]").css("color", colorClasses[json.class]);
        }
        
    },
    error: function() {
        setDefaultAva(place, flag, id);
    }
  });
}

function setDefaultAva(place, flag, id) { //set avatar, if loading failed
    if (flag == 'profile') {
        $(place).html('<a title="персонаж неизвестен" class="tip" href="/profile.php?section=fields&id='+id+'"><img src="http://blackteam.mmohost.ru/files/0012/ad/ab/72354.jpg" /></a>');
    }
    else 
        $(place).html('<img title="персонаж неизвестен" class="tip" src="http://blackteam.mmohost.ru/files/0012/ad/ab/72354.jpg" title="персонаж неизвестен" />');
}

function setCustomAva(place, param0, param1, param2, avatar) { //set avatar, if loading is successful
  $(place).append('<a href="http://eu.battle.net/wow/ru/character/'+param0+'/'+param1+'/simple" title="оружейная" class="tip"> <img alt="'+param2+'" src="http://eu.battle.net/static-render/eu/'+avatar+'"> </a>');
}

function setColorTopic(place, color) { //set color for links
    $(place).parent().find("li.pa-author a").css("color", colorClasses[color]);
}

function lookAvaTopic() { 
  var flParam, idParam, newAva;
  $(".post-author").each(function(e) {

    flParam = $(this).find(".pa-fld"+fld);
    if ($(flParam).length) arrParam = $(flParam).text().split(":")[1].split(",");

    newAva = $('<li class="pa-avatar item3"></li>').insertAfter($(this).find(".pa-title"));
         if ($(this).find(".pa-respect a[href*='respect.php']").length)
    idParam = $(this).find(".pa-respect a[href*='respect.php']").attr('href').split('id=')[1];

    else {
    setDefaultAva(newAva); return;
    } 

    if(arrParam.length < 2) { setDefaultAva(newAva); return;}
    if(!arrParam[2]) arrParam[2] = "0"; 

    arrStorage = readLocalStorage();

    if (arrStorage[idParam]) {
        setCustomAva(newAva, arrParam[0], arrParam[1], arrParam[2], arrStorage[idParam].avatar);
        setColorTopic(newAva, arrStorage[idParam].class);
    }
    else {
        getData('topic', idParam, arrParam[0], arrParam[1], arrParam[2], newAva);
    }

  })
}

function colorLinks() {
    var idLink, color;
    $("a[href*='/profile.php?id=']").each(function() {
        idLink = $(this).attr('href').split("id=")[1];
        arrStorage = readLocalStorage();
        if(arrStorage[idLink]) {
            color = arrStorage[idLink].class;
            $(this).css("color", colorClasses[color]);
        }
        //else getData('all', idLink, realm);
    });
}


if(document.URL.indexOf("viewtopic.php")!=-1) {
  lookAvaTopic();
}
else {
  colorLinks();
}
//Make mini profile for index (main) page
if($('#pun-index').length) {
var loadavatar = 1; 

function MakeProfile() {
    var paSex='',paAuthor='',paAvatar='',paTitle='',paRespect='',paAge='',paName='',paAwards='';
    var showFilds = {
        paAuthor : 1,
        paTitle : 1,
        paAvatar : 1,
        paRespect : 1,
        paName : 1,
        paAge : 1,
        paSex : 1,
        paAwards : 1
    }
    if(showFilds.paAuthor) paAuthor = '<li class="pa-author"><a href="/profile.php?id='+UserID+'">'+UserLogin+'</a></li>';
    if(showFilds.paTitle) paTitle = '<li class="pa-title">'+UserTitle+'</li>';
    if(showFilds.paAvatar) paAvatar = '<li class="pa-avatar item3"></li>';
      
    if(showFilds.paRespect) {
        var summRespect = UserRespectPlus - UserRespectMinus;
        paRespect = '<li class="pa-respect"><a href="/respect.php?id='+UserID+'">Репутация:</a> '+summRespect+'</li>';
    };
    if(showFilds.paName) {
        if (UserName != "") paName = '<li class="pa-name">Имя: '+UserName+'</li>';
        else paName = '<li class="pa-name">Имя: <a href="/profile.php?section=personal&id='+UserID+'">неизвестно</a></li>';
    }
    if (showFilds.paAge) {
        if (UserBirthDate!='') paAge = '<li class="pa-age">Возраст: '+UserAge+'<span> ['+UserBirthDate+']</span></li>';
        else paAge = '<li class="pa-age">Возраст: неизвестен <span> [<a href="/profile.php?section=personal&id='+UserID+'">заполнить</a>]</span></li>';
    }
    if(showFilds.paSex) {
        var Usex = {
            0: 'неизвестно',
            1: 'мужской',
            2: 'женский'
        };
        paSex = '<li class="pa-sex">Пол: '+Usex[UserSex]+'</li>';
    }
    if(showFilds) paAwards = '<li class="pa-awards"><a href="/mod/awards/?uid='+UserID+'">Достижения</a></li>';

    var fullHtml = '<ul>'+paAuthor+paTitle+paAvatar+paRespect+paName+paAge+paSex+paAwards+'</ul>';
    $("#u-panel").append(fullHtml);
}
MakeProfile();
    //
    if (loadavatar) {
        function getAvatarProfile() {
            var flParam, newAva; 

            $.get("/profile.php?section=fields&id="+UserID+"", function(data){

                newAva = $("#u-panel .pa-avatar.item3");

                var paFld = $(data).find(".input #fld"+fld).val();
                if (paFld == undefined) {setDefaultAva(newAva, 'profile', UserID); return;}
                
                flParam = paFld.split(",");
                if (flParam.length < 2 ) {setDefaultAva(newAva, 'profile', UserID); return;}
                
                if(!flParam[2]) flParam[2] = "0";

                arrStorage = readLocalStorage();
                console.log(arrStorage);
                console.log(arrStorage[UserID]);
                if (arrStorage[UserID]) { 
                    setCustomAva(newAva, flParam[0], flParam[1], flParam[2], arrStorage[UserID].avatar);
                    setColorTopic(newAva, arrStorage[UserID].class);
                }
                else {
                    getData('profile', UserID, flParam[0], flParam[1], flParam[2], newAva);
                }
            });
        }
        getAvatarProfile();
    }

}
</script>

0


Вы здесь » Техническая поддержка сервиса Quadro.Boards » Поток сознания » Скрипты по подгрузке API WoW


Рейтинг форумов | Создать форум бесплатно © 2007–2016 «QuadroSystems» LLC