Тема: Плагин. Фильтр списка персонажей он-лайн.
Фильтр списка персонажей он-лайн
Совместимость: Версия 8.4+
Плагин фильтрует список персонажей в комнате по следующим критериям:
уровень
склонность
в бою / нет
Мне данный плагин понадобился для кача свитками нападения.
Фильтрую только девяток вне боя. Раньше выискивал их из сотен других.
//Плагин фильтра списка персонажей он-лайн (с) ZergNM
var filterLevel = 9; //фильтр по уровню, -1 - все уровни
var filterAlign = -1; //фильтр по склонности, -1 - все склонности
var filterBattle = 0; //фильтр по состоянию: в бою / нет. -1 - все, 0 - нет, 1 - в бою
function OnlineListFilter(enabled)
{
if(enabled)
{
top.AjaxRefreshed = function()
{
if(req.readyState == 4)
{
var a = req.responseText;
if(a.match(/^<html><head><title>\[503\]/))
return 0;
var onlineUsers = a.match(/top\.frames\[\'activeusers\'\]\.wu\(.+?\);/g);
if(onlineUsers != null)
{
for(i=0; i<onlineUsers.length; i++)
{
var userInfo = onlineUsers[i].match(/\((.+?)\)/)[1].split(',');
if(userInfo != null)
{
var uName = userInfo[1].replace(/\'/g, "");
var uAlign = parseInt(userInfo[3].replace(/\'/g, ""));
var uClan = userInfo[4].replace(/\'/g, "");
var uLevel = parseInt(userInfo[5].replace(/\'/g, ""));
var uInBattle = parseInt(userInfo[15].replace(/\'/g, ""));
var removeUser = false;
if(filterLevel > -1)
{
if(uLevel != filterLevel)
removeUser = true;
}
if(filterAlign > -1)
{
if(uAlign != filterAlign)
removeUser = true;
}
if(filterBattle == 0 && uInBattle > 0)
removeUser = true;
if(filterBattle == 1 && uInBattle < 1)
removeUser = true;
if(removeUser)
a = a.replace(onlineUsers[i], "");
}
}
}
try
{
eval(a);
}
catch(b)
{
}
}
}
}
else
{
top.AjaxRefreshed = function()
{
if(req.readyState == 4)
{
var a = req.responseText;
if(a.match(/^<html><head><title>\[503\]/))
return 0;
try
{
eval(a);
}
catch(b)
{
}
}
}
}
}