Адрес форума: http://dreamworld.magicrpg.ru/
Проблема: Сломались функции в профиле. "Локация" должна указывать на последнее место, где отписывался человек(находился игровой персонаж) в игровом форуме, но сейчас там непонятные символы. Кроме того сломалось много чего еще.
Значок с книжкой должен указывать на вписанную ссылку на анкету, но теперь перекидывает на сломанную страницу.
В медальках и рюкзачке пропал значок помогающий закрыть открывшееся окошко и сами медальки пропали, хотя загружены были в файлы форума.
Может сломалось что-то еще, но это кинулось в глаза больше всего. Скрин прикреплю. Помогите пожалуйста разобраться с проблемой.

В профиле не видно наград(картинок), которые должны отображаться в окне. Только надписи.

Такая награда как изумруды, которая выдавалась игроку, вообще ломает вид профиля, отображаясь словами, хотя должны быть картинки парящего камушка по аватарке.

Замечания так же отображаются не картинкой, а словами. Там должны были отображаться звездочки и надпись появляться только при наведении курсора. Раньше скриптами занимался человек с которым нет сейчас связи. В файлах форума нашла ссылки ведущими на скрипт. Они я так понимаю были связаны с другим форумом нашего бывшего тех админа(с применением джавы). Можно ли их куда-то перенести, и если можно, то как? Я не очень понимаю, как технически это исправить. Вот сами скрипты:
//Инвентарь Дрима by MavJK
//----------------------------------------------
// редактор веще в профиле
//----------------------------------------------
var fld3 = $("#fld3");
function BuildItemFields(url, about, idx)
{
var strStart = "<div id='userItem"+idx+"'>";
var imgstr = "Картинка "+idx+": <input type='text' oninput='itemChange(this,0,"+idx+")' value='"+url+"' size='50' maxlength='999'> <input type='button' onclick='RemoveItem("+idx+")' value='-'><br>";
var aboutstr = "Описание "+idx+": <input type='text' oninput='itemChange(this,1,"+idx+")' value='"+about+"' size='50' maxlength='999'> <br>";
var strEnd = "<br></div>"
return strStart+imgstr+aboutstr+strEnd;
};
function CalcFreeInvSpace()
{
var charsRemain = 999-fld3[0].value.length;
var remSpaceLabel = $("#remainSpace");
remSpaceLabel.html("Свободное место: "+charsRemain+" символов");
}
function ReparseInventory()
{
if (fld3[0])
{
var divs = fld3.parent().find("div");
for(var i=0;i<divs.length;i++)
fld3.parent()[0].removeChild(divs[i]);
fld3.css("display","none"); //спрятать поле вещей
var items = fld3[0].value; //текст в поле вещей
var charsRemain = 999-items.length;
var itemlist = items.split(";");
if (itemlist.length < 2)
{
itemlist = ["",items];
}
var itemsHtml = "";
for(var i=0;i<itemlist.length-1;i+=2)
{
itemsHtml += BuildItemFields(itemlist[i],itemlist[i+1],i/2+1);
}
var ending = "<div><hr><br> <input type='button' onclick='AddNewItem()' value='+'> <span id='remainSpace'>Свободное место: "+charsRemain+" символов</span></div>";
fld3.after(itemsHtml+ending);
}
}
function itemChange(inp, type, idx)
{
var items = fld3[0].value; //текст в поле вещей
var itemlist = items.split(";");
itemlist[(idx-1)*2+type] = inp.value;
fld3[0].value = itemlist.join(";");
CalcFreeInvSpace();
}
function AddNewItem()
{
var items = fld3[0].value; //текст в поле вещей
var itemlist = items.split(";");
itemlist.splice(itemlist.length,0,"","");
fld3[0].value = itemlist.join(";");
ReparseInventory();
}
function RemoveItem(idx)
{
var items = fld3[0].value; //текст в поле вещей
var itemlist = items.split(";");
itemlist.splice((idx-1)*2,2);
fld3[0].value = itemlist.join(";");
ReparseInventory();
}
if (window.location.search.includes("section=fields"))
ReparseInventory();
//----------------------------------------------
// просмотр вещей в постах
//----------------------------------------------
function OpenItems(t)
{
$('div.AwardAllWindow').fadeIn(500);
$('div.AwardWindow div#AwardContent').html($(t).parent().parent().find('div')[2].innerHTML);
$('div.AwardWindow h3').html('Инвентарь <span>'+
$(t).parent().parent().parent().parent().find('li.pa-author a').text()+'</span>');
}
$('.post li.pa-fld3').each(function()
{
Result = '<table>';
var alt = $(this).find("div").attr("alt");
var parts = alt.split(";");
if (parts.length < 2)
parts = ["",alt];
for(var i=0;i<parts.length-1;i+=2)
{
Result +=
"<tr height='64px'>\
<td style='text-align: right;' width='160px'><img class='itemInvImg' src='"+parts[i]+"'></td>\
<td><strong>"+parts[i+1]+"</strong></td>\
</tr>"
}
Result += '</table>';
$(this).html('<div><a href="#" onclick="OpenItems(this); return false;"><div id="iconInventory" title="Инвентарь"></div></a></div><div style="display: none">'+Result+'</div>');
});//------------------------------------------------------------
// Отправка поста
//------------------------------------------------------------
function NPL_Contains(str){
for(var i=0;i<NPL.length;i++)
if (NPL[i] == str) return true;
return false;
}
function ClearLocationName(name)
{
var name;
var clearparts = name.split(";;");
if (clearparts.length > 1)
name = clearparts[clearparts.length-1];
name = name.replace(" ","");
return name;
}
function GetLocationURL()
{
var url = "";
if (window.location.pathname == "/viewtopic.php")
{
var permalinks = $(".topic .permalink");
url = permalinks[permalinks.length-1].href;
}
else if (window.location.pathname == "/post.php")
{
var as = $(".topic a");
url = as[0].href;
}
url = url.split("#")[1];
return url;
}
function GetLocationName()
{
var crumbs = $("#pun-crumbs1 .container");
if (window.location.pathname == "/viewtopic.php")
{
var parts = crumbs.html().split("»");
return ClearLocationName(parts[parts.length-1]);
}
else if (window.location.pathname == "/post.php")
{
var parts = crumbs.find("a");
var locname = parts[parts.length-1].innerHTML;
return ClearLocationName(locname);
}
return "";
}
function GetSubforumName()
{
var crumbs = $("#pun-crumbs1 .container");
var parts = crumbs.find("a");
var locname = "";
if (window.location.pathname == "/viewtopic.php")
locname = parts[parts.length-1].innerHTML;
else if (window.location.pathname == "/post.php")
locname = parts[parts.length-2].innerHTML;
return ClearLocationName(locname);
}
function SetLocInfo()
{
var subforumName = GetSubforumName();
if (NPL_Contains(subforumName))
{
//Подфорум неигровой
}
else
{
setcookie("locurl" ,GetLocationURL ());
setcookie("locname",GetLocationName());
}
}
if ( (window.location.pathname == "/viewtopic.php")
|| (window.location.pathname == "/post.php" ))
{
var button = $(".button[name='submit']")[0];
if (button)
button.onclick = SetLocInfo;
}
//------------------------------------------------------------
// Фоновый апдейт
//------------------------------------------------------------
if (window.location.search.includes("section=personal") && window.location.pathname == "/profile.php")
{
if (getcookie("locurl") != false)
{
var locurl = getcookie("locurl" );
var locname = getcookie("locname");
$(".input #fld4")[0].value = locurl+";;"+locname;
setcookie("locurl",locurl,-1);
setcookie("locname",locname,-1);
setTimeout(function (){$(".button[name='update']")[0].click();},100);
}
if (GroupID != 1)
{
$(".input #fld4").css("display","none");
$("label[for='fld4']").css("display","none");
}
}
//------------------------------------------------------------
// Парсер поля под аватаркой и в профиле
//------------------------------------------------------------
function unMav(str)
{
var p = str.split("%");
for(var i=0;i<p.length;i++)
{
if (p[i] == "") continue;
var prevp = p[i];
p[i] = parseInt(p[i],16);
if (p[i] <= 127 || p[i] > 255)
{
p[i] = unescape("%"+prevp);
continue;
}
p[i] += 848;
p[i] = p[i].toString(16);
while(p[i].length<4) p[i] = '0'+p[i];
p[i] = "%u"+p[i];
p[i] = unescape(p[i]);
}
return p.join("");
}
var g_urlHead = "http://dreamworld.magicrpg.ru/viewtopic.php?pid=";
if (window.location.pathname == "/viewtopic.php")
{
var websites = $(".post-links .pl-website a");
for(var i=0;i<websites.length;i++)
{
var locnameurl = websites[i].href.replace("http://dreamworld.magicrpg.ru/click.php?http://","");
var reg = $(websites[i]).parent().parent().parent().parent().find(".pa-avatar");
if (!reg) continue; //???
if (locnameurl.split(";;").length != 2) continue; //еще не обновлено
var locurl = locnameurl.split(";;")[0];
locurl = g_urlHead+locurl.replace("p","")+"#"+locurl;
var locname = unMav(locnameurl.split(";;")[1]);
$("<b>Локация: </b><a href='"+locurl+"'>"+locname+"</a><br>").insertAfter(reg);
$(websites[i]).css("display","none");
}
}var avaEms = new Array();
var avaTimer = 0;
var avaK = 0;
function GetEmerald(old_src)
{
var links =
[
"70198.gif","https://forumstatic.ru/files/0009/24/3d/87295.gif", //red
"82396.gif","https://forumstatic.ru/files/0009/24/3d/98590.gif", //yellow
"48932.gif","https://forumstatic.ru/files/0009/24/3d/52485.gif", //green
"80470.gif","https://forumstatic.ru/files/0009/24/3d/72990.gif", //blue
"17736.gif","https://forumstatic.ru/files/0009/24/3d/39760.gif", //sky
"22015.gif","https://forumstatic.ru/files/0009/24/3d/32060.gif", //purple
"63423.gif","https://forumstatic.ru/files/0009/24/3d/89167.gif", //white
"16487.gif","https://forumstatic.ru/files/0009/24/3d/54507.gif", //black
"55455.gif","https://forumstatic.ru/files/0009/24/3d/89750.gif" //master
];
for(var i=0;i<links.length;i+=2)
{
if (links[i] == old_src)
return links[i+1];
}
return old_src;
};
//function
var avas = $(".pa-avatar");
for( var i=0; i < avas.length; i++ )
{
var fld2 = $(avas[i]);
if (!fld2) break;
while(true)
{
if (fld2[0].className == "pa-status-icon")
{
break;
}
if (fld2[0].className == "pa-fld2")
{
avas[i].style.setProperty("position","relative");
var chld = fld2.children();
for( var j=0; j<chld.length;j++)
{
$(avas[i]).append( "<div id=ava" + avaK + "> </div>");
avaEms[avaK] = $("#ava"+avaK);
var parts = chld[j].src.split("/");
parts = parts[parts.length-1];
var emSrc = GetEmerald(parts);
avaEms[avaK][0].style.setProperty("background-image","url('"+emSrc+"')");
avaEms[avaK][0].style.setProperty("position","absolute");
if (emSrc === 'https://forumstatic.ru/files/0009/24/3d/89750.gif')
{
avaEms[avaK][0].style.setProperty("width" ,"128px");
avaEms[avaK][0].style.setProperty("height","128px");
}
else
{
avaEms[avaK][0].style.setProperty("width" ,"54px");
avaEms[avaK][0].style.setProperty("height","42px");
}
fld2[0].style.setProperty("display","none");
avaK++;
}
break;
}
fld2 = fld2.next();
if (!fld2) break;
}
};
function updateAvaFunc()
{
avaTimer += 0.02;
if (avaTimer >= 360.0) avaTimer = 0.0;
for(var i=0;i<avaK;i++)
{
var s = Math.sin(avaTimer+i*0.9);
var c = Math.cos(avaTimer+i*0.9);
avaEms[i][0].style.setProperty( "top" , 40+c*35+"%" );
avaEms[i][0].style.setProperty( "left", 35+s*40+"%" );
}
};
var avaIntTimer = setInterval( updateAvaFunc, 1000/20 );Отредактировано NightAngelTDC (Вс, 7 Ноя 2021 03:11:49)