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