sadhaka
есть.
у тебя вот тут на первой странице прогружаются авы?
http://blackteam.mmohost.ru/viewtopic.php?id=5
посему-т начиная с четвертого поста не пашет скрипт. в других местах вродь норма
Техническая поддержка сервиса Quadro.Boards |
Новости сервиса |
О форуме
Quadro.Support – это форум технической поддержки различных проектов и сервисов Quadro.Systems LLC,
на котором грамотные технические специалисты всегда смогут помочь вам в решении проблем, или же подсказать ответы на самые сложные вопросы.
Так же на форуме собрана обширная база знаний по различным аспектам наших сервисов. Не забывайте пользоваться поиском ;)
|
Полезные ссылки |
Привет, Гость! Войдите или зарегистрируйтесь.
Вы здесь » Техническая поддержка сервиса Quadro.Boards » Архив » Скрипты по подгрузке API WoW
sadhaka
есть.
у тебя вот тут на первой странице прогружаются авы?
http://blackteam.mmohost.ru/viewtopic.php?id=5
посему-т начиная с четвертого поста не пашет скрипт. в других местах вродь норма
Герда
ага, про гостей забыла (
попробуй вот эту строчку в скрипте
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;
}
не очень оптимальный вариант. надо подумать как оформить все условия
шик, все пашет
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}
я как-то копалась с этим, но руки не оттуда растут, что-то не то делаю.
Герда
Чисто теоретически в этой строке
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>";
Герда
Слушай, мне нравится этот скрипт. И файлик нравитс.я Можно его заюзать для аватарок. Получится вообще 1 запрос к баттленету. И без локалстораджа.
У Вас же все форумчане из этой гильдии?
sadhaka
не все.
но! мне начхать, если гости форума, не состоящие в гильдии будут иметь стандартную аватарку по умолчанию.
более того - это выделяет наших согильдейцев как особых кашерных юзеров.
если это увеличит производительность скрипта, то давай юзать его.
Герда
ок, я попробую заняться
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="https://forumstatic.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="https://forumstatic.ru/files/0012/ad/ab/72354.jpg" /></a>'); } else $(place).html('<img title="персонаж неизвестен" class="tip" src="https://forumstatic.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>
Вы здесь » Техническая поддержка сервиса Quadro.Boards » Архив » Скрипты по подгрузке API WoW