Ru-MaNGOS

Ru-MaNGOS (http://mangos.ytdb.ru/index.php)
-   WWW (http://mangos.ytdb.ru/forumdisplay.php?f=23)
-   -   Blizzlike userbar (http://mangos.ytdb.ru/showthread.php?t=120)

SergiK_KilleR 08.03.2010 09:15

Blizzlike userbar
 
Вложений: 5
Ссылки на репозитарий :
GIT:
Код:

git://github.com/webmangos/userbar.git
git://github.com/webmangos/onlinebar.git

Скрытый текст (вы должны войти под своим логином или зарегистрироваться и иметь 20 сообщение(ий)):
У вас нет прав чтобы видеть скрытый текст, содержащейся здесь.


Для коректной работы необходимо включить gd2 библиотеку в PHP и mod_rewrite в Apache
Вид ссылки на юзербар(необходимо включить mod_rewrite в Apache):
Код:

http://you_ip_or_host/userbar/ub.php?name=имя_персонажа
http://you_ip_or_host/userbar/ub.php?name=имя_персонажа&mini

Или
Код:

http://you_ip_or_host/userbar/имя_персонажа.png
http://you_ip_or_host/userbar/mini/имя_персонажа.png

Если у вас путь до папки другой, то вручную меняйте пути в .htaccess и конфиге

Используемые функции и необходимые версии PHP:

для корректного отображения баров у вас должен стоять PHP v4.3.2+ и GDlib v2.0.1+

Код:

ImageTTFBBox - задаёт ограничивающий бокс текста, используя шрифты TrueType (PHP v3.0.1+ , GDlib и FreeType)
ImageCreateTrueColor - создаёт новое изображение true color (PHP v4.0.6+ , GD v2.0.1+)
ImageCreateFromGif - создаёт новое изображение из файла или URL.(PHP v3+, GD v1.7+)
ImageColorAllocate - выделение цвета для изображения. (PHP v3+)
ImageColorAllocateAlpha -  /* -//-  */ (PHP v4.3.2+, GD v2.0.1+)
ImageFill - заливка (PHP v3+)
ImageSY - получает высоту изображения. (PHP v3+)
ImageSX - получает ширину изображения. (PHP v3+)
ImageLine - рисует линию. (PHP v4)
ImageColorDeallocate - отменяет выделение цвета для изображения. (PHP v3.0.6+)
ImageFilledRectangle - рисует заполненный прямоугольник.(PHP v3+)
ImageCopyResampled - копирует и изменяет размеры части изображения с пересэмплированием. (PHP v4.0.6+, GD v2.0.1+)
ImageRectangle - прорисовывает прямоугольник (PHP v.3+)
ImageCreateFromPNG - создаёт новое изображение из файла или URL (PHP v3.0.13+)
ImageTTFText - записывает текст на изображение с использованием шрифтов TrueType. (PHP v3+)


SergiK_KilleR 09.03.2010 15:59

обновления добавлены

ревизия 58 - добавленна поддержка 3.3.x к старой версии юзербара

ревизия 59 - рекомендую пока использовать релиз старого юзербара пока не будет доделан новый юзербар, добавленный в 60 ревизии

ну и собственно, 60 ревизия - добавлен новый юзербар....
что же нового скажете Вы?!

Цитата:

+ добавленно простенькое кешеирование баров ( время использования кеша настаривается в конфиге (по-умолчанию 2 минуты)).
+ немного переделана графика (наглым образом стянуто с http://forum.wow-europe.com , скажите спасибо близам =))) )
+ сейчас доступны только 2 вида юзербаров, 3-ий юзербар будет сделан пойзже
+ упрощено интегрирование юзербаров в другие проекты: в ub.php всё ясно и понятно, только полный нуб не разберётся :friends:

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

Это я к тому что за время отсутствия getmangos.ru я повидал столько пабликов, где тупо убирали копирайты или ставили свои (там где их нет).

KiriX 09.03.2010 23:53

Всегда нравился этот юзербар...
До сих пор не могу понять, почему в опцию не включена функция не применять особые настройки юзербара для ГМов...

angelShlesser 10.03.2010 01:06

Цитата:

Сообщение от KiriX (Сообщение 1063)
Всегда нравился этот юзербар...
До сих пор не могу понять, почему в опцию не включена функция не применять особые настройки юзербара для ГМов...

Хорошая идея.. =))) А то для не которых не охото, чтобы высвечивался гм!

KiriX 10.03.2010 08:28

Я сделал так чтобы уровень отображался в любом случае, но фон юзербара... Как я понял, он теперь в любом случае одинаков для орды и аликов чтоли? И почему убрали статы? Шрифт, по моему, не очень удобно читаемый... Новая ревизия вызвала много вопросов. =) На данный момент я предпочту подогнать под новые ревы старую версию юзербара...
Вот такие вот мысли, SergiK_KilleR...

SergiK_KilleR 10.03.2010 17:19

KiriX, добавил ваши пожелания (ГМ) и поправил цвет фона-подложки

Теперь что касается шрифтов: для какой опции поменять шрифт? Если есть какие-то свои шрифты - могу добавить.
А вообще, хотел сделать так, чтобы админ сервера сам настраивал шрифты под каждый параметр или группу параметров.

и ещё,
Цитата:

Сообщение от KiriX (Сообщение 1090)
...И почему убрали статы?...

Цитата:

Сообщение от SergiK_KilleR (Сообщение 964)
+ сейчас доступны только 2 вида юзербаров, 3-ий юзербар будет сделан пойзже

мб я ранее несовсем полно ответил - под третим видом юзербара понималось как раз то о чем вы спросили.
Тут бы я хотел вас попросить расписать какие лучше статы выводить для каждого класса. Я уже давно не играл в ВоВ (~1 год), пишу бары "на коленке", имея под рукой базу чаров от 3.1.x, обновленную под 3.3.2.

Цитата:

Сообщение от KiriX (Сообщение 1090)
На данный момент я предпочту подогнать под новые ревы старую версию юзербара...

если вы о поддержке 3.3.2 старой версией баров - ревизия 59 в вашем распоряжении (ссылка есть в первом посте, 2 строка)

KiriX 10.03.2010 19:28

Цитата:

Сообщение от SergiK_KilleR (Сообщение 1183)
KiriX, добавил ваши пожелания (ГМ) и поправил цвет фона-подложки

Теперь что касается шрифтов: для какой опции поменять шрифт? Если есть какие-то свои шрифты - могу добавить.
А вообще, хотел сделать так, чтобы админ сервера сам настраивал шрифты под каждый параметр или группу параметров.

и ещё,

мб я ранее несовсем полно ответил - под третим видом юзербара понималось как раз то о чем вы спросили.
Тут бы я хотел вас попросить расписать какие лучше статы выводить для каждого класса. Я уже давно не играл в ВоВ (~1 год), пишу бары "на коленке", имея под рукой базу чаров от 3.1.x, обновленную под 3.3.2.


если вы о поддержке 3.3.2 старой версией баров - ревизия 59 в вашем распоряжении (ссылка есть в первом посте, 2 строка)

Спасибо, ответили по полной =) Всё ясно. Со шрифтами да, задумка понятная. Про статы теперь тоже всё ясно. Спасибо за ГМ надстройку.
По поводу выводимых статов (на самом деле я тоже не игрок, меня больше сам сервер привлекает), но в общем-то ничего не поменялось. Пусть выводится тоже, что и раньше - этого вполне достаточно и вполне описывает персонажа.

angelShlesser 12.03.2010 08:21

Идею дам SergiK_KilleR! =)))
Такое дело заметил, что юзербары сделаны под 1 сервер, плохо это!Можно сделать же выпадающее меню с выбором сервера. И хорошо если можно бы подключать свои картинки вместо фонового цвета!
Это мои идеи строго не судите :pardon:

SergiK_KilleR 12.03.2010 16:03

Цитата:

Сообщение от angelShlesser (Сообщение 1487)
Идею дам SergiK_KilleR! =)))
Такое дело заметил, что юзербары сделаны под 1 сервер, плохо это!Можно сделать же выпадающее меню с выбором сервера. И хорошо если можно бы подключать свои картинки вместо фонового цвета!
Это мои идеи строго не судите :pardon:

что вы имеете ввиду под несколькими серверами?! несколько баз с чарами?! как вы предлагаете разграничивать кеш баров для персонажей с одинаковыми никами на разных серверах?
Думаю проще сделать для каждого сервера свою папку с барами. К тому же сервера явно будут разных версий, а конфиг бара только один. Изобретать велосипед не вижу смысла.

Хотите свой фон - дайте набор картинок под фон, я сделаю такую возможность...размеры картинок есть в class.userbar.php.

angelShlesser 13.03.2010 12:56

Вложений: 2
Ну типа как на оффе =) фон пока не нашёл от куда слить!
А чего так мало данных в новом юзербаре? Вот скрин!

SergiK_KilleR 15.03.2010 10:20

angelShlesser, мало данных?!
во-первых, читаем выше о 3-ем юзербаре.
во-вторых, пример с ГМом - не показатель отсутствия данных (проф нет, гильдии нет)

Draco 16.03.2010 23:58

SergiK_KilleR, если будет нужна какая-либо графика(на фон юба, еще куда) обращайся, я рад помочь :)

tempura 17.03.2010 03:28

Цитата:

Сообщение от Draco (Сообщение 2326)
SergiK_KilleR, если будет нужна какая-либо графика(на фон юба, еще куда) обращайся, я рад помочь :)

Вообще-то обращение уже прозвучало:
Цитата:

Сообщение от SergiK_KilleR (Сообщение 1599)
Хотите свой фон - дайте набор картинок под фон, я сделаю такую возможность...размеры картинок есть в class.userbar.php.

Вам необходимо что-то более персональное?

selector 17.03.2010 05:59

Может что не доглядел, сразу прошу прощения. Но можно ли выставить время "апдейта" картинок. Точней задать определенный промежуток времени через который будет конект к БД и считывание данных. А то при огромном количестве запросов - это может сильно повлиять на производительность самого MySQL сервера(при открытии форума, где у каждого будет по 5-6 в подписи и на странице 100сообщений).

SergiK_KilleR 17.03.2010 07:30

Цитата:

Сообщение от selector (Сообщение 2357)
Может что не доглядел, сразу прошу прощения. Но можно ли выставить время "апдейта" картинок. Точней задать определенный промежуток времени через который будет конект к БД и считывание данных. А то при огромном количестве запросов - это может сильно повлиять на производительность самого MySQL сервера(при открытии форума, где у каждого будет по 5-6 в подписи и на странице 100сообщений).

я же уже писал об этом
Цитата:

+ добавленно простенькое кешеирование баров ( время использования кеша настаривается в конфиге (по-умолчанию 2 минуты)).

GriffonHeart 22.03.2010 07:52

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

StinK 22.03.2010 08:56

А мне старый вариант дизайна нравился больше, который ещё на 2.4.3 был.

Chestarfild 30.03.2010 14:29

Дизайн от wowdata мне больше по душе :) Но спасибо за проделанную работу :)

Chaosua 30.03.2010 18:06

Вложений: 4
на счет шрифтов
Как по мне шрифт azerothcyrillic намного лучше смотрится в юзербаре чем FrizQuadrataCTT

Где то на просторах инета рылся, и накопал шрифтиков, три штуки что есть в юзербаре были и у меня плюс Abaddon(токо англ а жаль), AzerothCyrillic и MORPHEUSCyr которые есть во вложении

Ну и на картинках показано как оно с одним исходным, а как с новым

хотя шрифт это на любителя

tempura 31.03.2010 05:42

http://ytdb.ru/Yuriy/fonts.rar
Это называется "где-то"? :) :) :) :)

Chaosua 31.03.2010 10:04

Цитата:

Сообщение от tempura (Сообщение 3478)
http://ytdb.ru/Yuriy/fonts.rar
Это называется "где-то"? :) :) :) :)

угу, я вообще не помню где я взял шрифты, мало ли шрифт-паков валяется всюду =))) может и оттуда, но со 100% уверенностью сказать не могу

GriffonHeart 06.04.2010 06:07

Нужна поддержка ревизий 9634+
Поле data больше не существует

GriffonHeart 09.04.2010 02:31

Чем полемику разводить по поводу правильности терминов, лучше бы попробовал кто юзербар переделать под новые ревизии мангоса

tempura 25.04.2010 08:51

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


В сотый раз ныть "кагда абнавица" - нет смысла. Когда автор обновит - в этой теме он наверняка отметит сей факт.

profipl 06.05.2010 08:21

Поставил userbar на 3.3.2 браузер пишет ошибку
Код:

[SQL Error]: Unknown column 'data' in 'where clause' at /home/...../public_html/wow/userbar/core/class.character.php line 189
Array
(
    (code) => 1054
    [message] => Unknown column 'data' in 'where clause'
    [query] =>
                        SELECT
                                `name`
                        FROM
                                `characters`
                        WHERE
                                `guid`=2 &&
                                LENGTH(SUBSTRING_INDEX(data, ' ', 1326)) < LENGTH(data) &&
                                LENGTH(SUBSTRING_INDEX(data, ' ', 1327)) >= LENGTH(data)
               
    [context] => /home/...../public_html/wow/userbar/core/class.character.php line 189
)

В конфиге:
'buildClient' => 11159,
Получается под 3.3.2 пока не работает?

CruncH 06.05.2010 08:36

Цитата:

Сообщение от profipl (Сообщение 5673)
Поставил userbar на 3.3.2 браузер пишет ошибку
Получается под 3.3.2 пока не работает?

Да, не работает. Это можно было понять из предыдущих постов.

KiriX 06.05.2010 08:51

Не работает он с тех ревизий, как убрали поле data. А убрали его, насколько я помню, уже в 3.3.3а
Юзербар поправить не так уж и сложно...

Кот ДаWINчи 06.05.2010 09:45

Цитата:

А убрали его, насколько я помню, уже в 3.3.3а
поле data убрали в 3.3.2 рева 9630 ... ;)

Insider42 06.05.2010 10:00

Цитата:

Сообщение от KiriX (Сообщение 5677)
Юзербар поправить не так уж и сложно...

Действительно? Я например немогу допереть как переделать это
Код:

        public function getAllProfessions(){
                $exists = false;

                for ($i=PLAYER_SKILL_INFO_1_1; $i<PLAYER_CHARACTER_POINTS1; $i+=3){
                        if (!$this->getFieldData($i))  continue;

                        $skill = $this->getFieldData($i);
                        if ($skill > 65536) $skill -= 65536;
                        if(in_array($skill,self::$PROFESSIONS)) {
                                $prof["skill"] = $skill;
                                $prof["value"] = $this->getFieldData($i+1) % 65536;
                                $this->profs[] = $prof;
                                $exists = true;
                        }
                }

                return $exists;
        }

правильно ли делать так (ставить запросы через запятую. Я не изучал php!!)
Код:

        public function getHealth(){
                return array
                (
                        $this->cDB->selectCell("SELECT `health` FROM `characters` WHERE `guid`=?d ",$this->guid),
                        $this->cDB->selectCell("SELECT `maxhealth` FROM `character_stats` WHERE `guid`=?d ",$this->guid)
                );
        }

откуда теперь брать
Код:

$this->getFieldData(PLAYER_NEXT_LEVEL_XP)
Тут вообще непонятки... Это получается мы должны проверять, нашёл ли запись с guid игрока в таблице guild_member, но как?
Код:

        public function inGuild(){
                if(!$this->getFieldData(PLAYER_GUILDID))
                        return false;
                else{
                        $this->guildID = $this->getFieldData(PLAYER_GUILDID);
                        $this->guildName = $this->cDB->selectCell("SELECT `name` FROM `guild` WHERE guildid=?d ",$this->guildID);
                        $this->guildRank = $this->cDB->selectCell("SELECT `rname` FROM `guild_rank` WHERE guildid=?d &&  rid=?d",$this->guildID,$this->getFieldData(PLAYER_GUILDRANK));
                        return true;
                }
        }

        public function isGuildLeader(){
                if(!$this->inGuild())
                        return false;

                if($this->getFieldData(PLAYER_GUILDRANK)=='0')
                        return true;
                return false;
        }


Кот ДаWINчи 06.05.2010 12:02

Цитата:

правильно ли делать так (ставить запросы через запятую. Я не изучал php!!)
через ;

CruncH 06.05.2010 13:01

Цитата:

Сообщение от Кот ДаWINчи (Сообщение 5688)
через ;

Sql запросы да, окончание "логической" строки тоже, а вот как в примере, где элементы массива, то запятая.

KiriX 06.05.2010 13:15

Я не брался за перевод именно Юзербара - но, как вы могли заметить, я занимаюсь подобным переводом CSWOWD, а там данных даже больше =) Понял чётко - вытянуть всё можно и сейчас - только чутка сложнее это будет.
Insider42, я, возможно, возьмусь за обнову Юзербара, но позже, сейчас приоритеты немного иные. А вообще php должен даться вам легко - тот же С++ ;)

GriffonHeart 06.05.2010 20:40

с $this->getFieldData(PLAYER_NEXT_LEVEL_XP) проблема, с остальным вроде не должно быть.
Моя версия юзербара - DOWNLOAD NOW!
Предупреждаю, сварганено на скорую руку, куча хаков.

wk23 06.05.2010 23:52

в characters есть level и xp
select xp_for_next_level from mangos.player_xp_for_level where lvl=level
если максимальный левел PLAYER_NEXT_LEVEL_XP=0 иначе xp_for_next_level-xp

Кот ДаWINчи 07.05.2010 11:22

Цитата:

Сообщение от wk23 (Сообщение 5760)
в characters есть level и xp
select xp_for_next_level from mangos.player_xp_for_level where lvl=level
если максимальный левел PLAYER_NEXT_LEVEL_XP=0 иначе xp_for_next_level-xp

попытка пошевелить мозгами не засчитана. Хотя хорошо, что хоть что-то попробовал.
Объясняю: в поле "ХР" хранится текущее значение ХР. (значение между ХР данного уровня и следующего) в поле "level" хранится текущий уровень. Нам необходимо вычислить при каком значениии ХР уровень станет level+1 т.е. нужно узнать значение ХР для перехода на след. уровень ДЛЯ КОНКРЕТНОЙ расы и КОНКРЕТНОГО класса. Да, это константа, но таких констант много 79*10*10. Раньше эта константа вычислялась и хранилась в DATA (если я не ошибаюсь). Теперь этого поля нет. А значит надо ее вычислять самостоятельно или брать откуда-то. Возможно всё это есть в каком-нибудь ДБЦ.

GriffonHeart 07.05.2010 11:48

Цитата:

Сообщение от Кот ДаWINчи (Сообщение 5806)
попытка пошевелить мозгами не засчитана. Хотя хорошо, что хоть что-то попробовал.
Объясняю: в поле "ХР" хранится текущее значение ХР. (значение между ХР данного уровня и следующего) в поле "level" хранится текущий уровень. Нам необходимо вычислить при каком значениии ХР уровень станет level+1 т.е. нужно узнать значение ХР для перехода на след. уровень ДЛЯ КОНКРЕТНОЙ расы и КОНКРЕТНОГО класса. Да, это константа, но таких констант много 79*10*10. Раньше эта константа вычислялась и хранилась в DATA (если я не ошибаюсь). Теперь этого поля нет. А значит надо ее вычислять самостоятельно или брать откуда-то. Возможно всё это есть в каком-нибудь ДБЦ.

Вот только не надо про КОНКРЕТНУЮ расу или КОНКРЕТНЫЙ класс! От этих параметров опыт не зависит.

Далее, смотрим код:
Цитата:

SetUInt32Value(PLAYER_NEXT_LEVEL_XP, sObjectMgr.GetXPForLevel(level));
Выборка идёт запросом в ObjectMgr.cpp:
Цитата:

SELECT lvl, xp_for_next_level FROM player_xp_for_level
Так что, wk23 прав на 100%

KiriX 07.05.2010 12:00

Цитата:

Сообщение от GriffonHeart (Сообщение 5812)
Так что, wk23 прав на 100%

Совершенно верно. Я не стал этого писать - хотел сразу патчем выложить, он опередил =) Только смущает необходимость отнимать от одного другое - действительно ли это необходимо? По-моему - нет.
У меня 61 ревизия - у себя вообще не могу найти $this->getFieldData(PLAYER_NEXT_LEVEL_XP)

wk23 07.05.2010 16:37

если не производить арифметические действия то будет или текущее количество опыта или количесвто опыта от начала до конца уровня, а не сколько осталось на текущий момент

wk23 07.05.2010 16:41



может где-то такое и есть, но я исходил из текущего положения дел
P.S. в ту же копилку

Insider42 07.05.2010 17:50

Цитата:

Сообщение от GriffonHeart (Сообщение 5746)
с $this->getFieldData(PLAYER_NEXT_LEVEL_XP) проблема, с остальным вроде не должно быть.
Моя версия юзербара - DOWNLOAD NOW!
Предупреждаю, сварганено на скорую руку, куча хаков.

Как минимум нужно добавить после
Код:

            case 11159: // 3.3.0/3.3.0a/3.3.2
                include_once(dirname(__FILE__)."/scripts/11159.php");
                break;

Код:

            case 11723: // 3.3.3
                break;

А вообще я бы избавился от всех этих define, лишних файлов для них и использования полей data. Зачем нам поддержка старых патчей? Пусть те, кому она нужна качают старые версии юзербаров...


Текущее время: 16:59. Часовой пояс GMT +3.

ru-mangos.ru - Русское сообщество MaNGOS