-
Постов
316 -
Зарегистрирован
-
Посещение
-
Победитель дней
55
Сообщения, опубликованные Habilis
-
-
7 часов назад, Fizik сказал:
Бедные ребята, теперь каждый новый сервер будут моим называть xD Печально)
Настолько вас я обидел что вы теперь каждый новый проект моим считать будете?)Ты кто?
-
Ах*нный топ пачян, Хабиля в скоре (через пару недель) напишет Англ гид по герку для Винды.
Только Хабиля опишет ВоркФлоу с гитом чтобы кароч установить и тянуть с репозитория и апдейтить...
А так, Спасибо за идею с Кзампом а то Хабиля хз как не муторно замутить МайСКЛ сервак на винде
И Визуал студио мож Експресс С попробует
А так ох*нный гид!
-
Косяк в том, что еАфина больше не разрабатываеться. А гиду, больше 5 лет?
ЦитатаThis may mean that the package is missing, has been obsoleted, or
is only available from another sourceЧто как-бы намекает...
- 1
-
3 часа назад, Dr0zd сказал:
Извини, но он мне очень понравился....
КаЕф!!! Хабиля это скажет
есликогда угонит Фераррий какого-то мажорика.... -
Красивый скин у кого заказывал?
-
10 час назад, SouZe сказал:
хабиля упарывает вещества? почему ты о себе в третьем лице говоришь?
Много Употребляет, а еще Много курит и не только табак, Много пьет..... Много ест, и морально разлагается
10 час назад, SouZe сказал:как сделать так, чтобы твои посты не раздражали?
Проще некуда, Не читать их , Ё*та....
УПД : Раз ^^^ это ^^^ самая крутая идея, которую пачаны смогли сгенерировать... Смотрите первый пост, там проапдейтанные версии плагинов компилящиеся на последнем герке.
В комманде @emotion добавлен костыль, убирающий эмотики молчанки и определенной стороны кубика из /dice.
Читайте коментарии к коду, если хотите убрать еще какие-то емотики.
-
Так не зделал еще...
4 часа назад, Habilis сказал:Хабиля в скором времени до рихтует их чтобы компиллились с последней версией герка (А то они больше не компиляться)
Так-же в комманде @emotion заметил возможность вызвать эмотку (Молчанки , и эмотки с определенной стороной кубика из /dice можно лохотроннить в игре с костями...)
Хабиля допилит в эту комманду костыль с отключенными Емотиками...
УПД : Просто если у пачанов есть еще какие-то Ах*тельные идеи, пусть пока пишут, если чо понравиться и будет по силам Хабиле релизну все сразу кароч...
А вот ссыль на то что было релизнуто на Герке, год назад.
http://herc.ws/board/topic/12855-emotion-heart-show-hold-detach/
-
Хабиля год назад модернизировал эти старые добрые комманды под Геркулес плагины (кое-где подрихтовал, кое-где подчистил)
emotion.c
@emotion 0 - 81 эмотики без задержки.
#include "common/hercules.h" #include <stdio.h> #include <stdlib.h> #include <string.h> #include <math.h> #include "common/HPMi.h" #include "map/clif.h" #include "map/atcommand.h" #include "map/script.h" #include "map/pc.h" #include "common/nullpo.h" #include "common/HPMDataCheck.h" HPExport struct hplugin_info pinfo = { "@emotion", // Plugin name SERVER_TYPE_MAP,// Which server types this plugin works with? "1.2", // Plugin version HPM_VERSION, // HPM Version (don't change, macro is automatically updated) }; /*========================================== * @emotion X by Anarchist * => Displays the emotions without delay *------------------------------------------*/ int emotion_max = 81; // Set last available emotion number available for this command. // Clients < 2013 support way less emotions. ACMD(emotion) { char err_msg[1024]; // Disabled emotions 34 = mute; [58 to 63] = dice particular sides int rEmoArray[] = {34, 58, 59, 60, 61, 62, 63}; int rEmoArraySize = sizeof(rEmoArray) / sizeof(rEmoArray[0]); if(!*message || atoi(message) < 0 || atoi(message) > emotion_max) { sprintf(err_msg, "Usage: @emotion 0-%d", emotion_max); clif->message(fd, err_msg); return -1; } for (int i = 0; i < rEmoArraySize; i++) { if (rEmoArray[i] == atoi(message)) { sprintf(err_msg, "This emotion is disabled."); clif->message(fd, err_msg); return -1; } } clif->emotion(&sd->bl,atoi(message)); return 1; } /* Server Startup */ HPExport void plugin_init (void) { addAtcommand("emotion",emotion); }
heart.c
@heart 1 or 2 (сердечки без задержки)
#include "common/hercules.h" #include <stdio.h> #include <stdlib.h> #include <string.h> #include <math.h> #include "common/HPMi.h" #include "map/clif.h" #include "map/atcommand.h" #include "map/script.h" #include "map/pc.h" #include "common/nullpo.h" #include "common/HPMDataCheck.h" HPExport struct hplugin_info pinfo = { "@heart", // Plugin name SERVER_TYPE_MAP,// Which server types this plugin works with? "1.2", // Plugin version HPM_VERSION, // HPM Version (don't change, macro is automatically updated) }; /*========================================== @heart X by Anarchist => Displays the heart special effect ------------------------------------------ */ ACMD(heart) { if(!*message || atoi(message) < 1 || atoi(message) > 2) { clif->message(fd, "usage: @heart 1 or 2"); return -1; } if(atoi(message) == 1) { clif->specialeffect(&sd->bl,364,0); } else if(atoi(message) == 2) { clif->specialeffect(&sd->bl,509,0); } return 1; } /* Server Startup */ HPExport void plugin_init (void) { addAtcommand("heart",heart); }
dance.c
@dance 1 - 8 (Персонаж выполняет какие-то трюки)
#include "common/hercules.h" #include <stdio.h> #include <stdlib.h> #include <string.h> #include <math.h> #include "common/HPMi.h" #include "map/clif.h" #include "map/atcommand.h" #include "map/script.h" #include "map/pc.h" #include "common/nullpo.h" #include "common/HPMDataCheck.h" HPExport struct hplugin_info pinfo = { "@dance", // Plugin name SERVER_TYPE_MAP,// Which server types this plugin works with? "1.2", // Plugin version HPM_VERSION, // HPM Version (don't change, macro is automatically updated) }; /*========================================== @dance X by Anarchist => Special effects with dance style ------------------------------------------ */ ACMD(dance) { if(!*message || atoi(message) < 1 || atoi(message) > 9) { clif->message(fd, "Usage: @dance 1-9"); return -1; } switch(atoi(message)) { case 1 : clif->specialeffect(&sd->bl,413,0); break; case 2 : clif->specialeffect(&sd->bl,414,0); break; case 3 : clif->specialeffect(&sd->bl,415,0); break; case 4 : clif->specialeffect(&sd->bl, 426,0); break; case 5 : clif->specialeffect(&sd->bl,458,0); break; case 6 : clif->specialeffect(&sd->bl,466,0); break; case 7 : clif->specialeffect(&sd->bl,501,0); break; case 8 : clif->specialeffect(&sd->bl,540,0); break; case 9 : clif->specialeffect(&sd->bl,550,0); break; } return 1; } /* Server Startup */ HPExport void plugin_init (void) { addAtcommand("dance",dance); }
show.c
@show X Y (Показывает точку на миникарте по заданным координатам.)
#include "common/hercules.h" #include <stdio.h> #include <stdlib.h> #include <string.h> #include <math.h> #include "common/HPMi.h" #include "map/clif.h" #include "map/atcommand.h" #include "map/script.h" #include "map/pc.h" #include "common/nullpo.h" #include "common/HPMDataCheck.h" HPExport struct hplugin_info pinfo = { "@show", // Plugin name SERVER_TYPE_MAP,// Which server types this plugin works with? "1.2", // Plugin version HPM_VERSION, // HPM Version (don't change, macro is automatically updated) }; /*========================================== * @show by KarLaeda * => Displays the point on minimap *------------------------------------------*/ ACMD(show) { int x = 0, y = 0; if(!*message || (sscanf(message, "%d %d", &x, &y) != 2)) { clif->message(fd, "usage: @show <x> <y>"); return -1; } clif->viewpoint(sd, 1, 1, x, y, 2, 0xFF0000); return 1; } /* Server Startup */ HPExport void plugin_init (void) { addAtcommand("show",show); }
hold.c
@hold (Отключает передвежения персонажа, наверное полезна арчерам и свордмэнам с пикой...)
#include "common/hercules.h" #include <stdio.h> #include <stdlib.h> #include <string.h> #include <math.h> #include "common/HPMi.h" #include "map/clif.h" #include "map/atcommand.h" #include "map/script.h" #include "map/pc.h" #include "common/nullpo.h" #include "common/HPMDataCheck.h" HPExport struct hplugin_info pinfo = { "@hold", // Plugin name SERVER_TYPE_MAP,// Which server types this plugin works with? "1.2", // Plugin version HPM_VERSION, // HPM Version (don't change, macro is automatically updated) }; /*========================================== * @hold by Voidless *==========================================*/ ACMD(hold) { if (!sd->state.blockedmove) { sd->state.blockedmove = 1; clif->message(fd, "Character movement turned off"); } else { sd->state.blockedmove = 0; clif->message(fd, "Character movement turned on"); } return 1; } /* Server Startup */ HPExport void plugin_init (void) { addAtcommand("hold",hold); }
detach.c
@detach (Оставляет чара в игре с отключеным клиентом)
#include "common/hercules.h" #include <stdio.h> #include <stdlib.h> #include <string.h> #include "common/HPMi.h" #include "common/timer.h" #include "common/nullpo.h" #include "map/channel.h" #include "map/script.h" #include "map/pc.h" #include "map/clif.h" #include "map/chat.h" #include "map/battle.h" #include "map/status.h" #include "common/HPMDataCheck.h" HPExport struct hplugin_info pinfo = { "@detach", // Plugin name SERVER_TYPE_MAP,// Which server types this plugin works with? "1.1", // Plugin version HPM_VERSION, // HPM Version (don't change, macro is automatically updated) }; /*========================================== * @detach *==========================================*/ ACMD(detach) { if( pc_isdead(sd) ) { clif->message(fd, "Cannot use @detach if you are dead."); return true; } if( map->list[sd->bl.m].flag.autotrade == battle->bc->autotrade_mapflag ) { if(map->list[sd->bl.m].flag.pvp || map->list[sd->bl.m].flag.gvg){ clif->message(fd, "You may not use @detach when you are on maps PVP or GVG."); return true; } sd->state.monster_ignore = 0; sd->state.autotrade = 1; chat->create_pc_chat(sd, "DETACH", "", 1, true); sd->sc.opt1 = OPT1_STONE; pc->setoption(sd, sd->sc.option); pc_setsit(sd); skill->sit(sd,1); clif->sitting(&sd->bl); channel->quit(sd); clif->authfail_fd(sd->fd, 15); return true; } else { clif->message(fd, "@detach is not allowed on this map."); return true; } } /* Server Startup */ HPExport void plugin_init (void) { addAtcommand("detach",detach); }
Над детачем Хабиля еще поработает, нужно в него допилить новы фишки, ДЕТАЧ еще не финальной версии...
Хабиля
в скором времени до рихтует их чтобы компиллились с последней версией герка (А то они больше не компиляться)УЖЕ!Так-же в комманде @emotion заметил возможность вызвать эмотку (Молчанки , и эмотки с определенной стороной кубика из /dice можно лохотроннить в игре с костями...)
Хабиля допилит в эту комманду костыль с отключенными Емотиками...
Если есть еще какие-нить интерессные идеи и предложения чего-бы еще накодить, намутить, пишите!
Если чо, накодим с пачанами....
(только что-то очень большое не буду кодить, Хабиля не умеет кодить если-чо)
-
Угу, хоть вон здоровый интересс к форуму с нова появился... ато никто-ниче не пишет, сидят аутируют все.
-
1 минуту назад, Kubix! сказал:
ты долбоеб
Сделал
Ладно, я тебя услышал.
-
Ошибки такого плана означают что СКЛ запрос не удался
функция ожидает обьект (рекордсет) а был передан FALSE (скорее всего)
Что именно не так точнее сказать с предоставленной инфой не смогу
Хабиля ПоХнаПэ и Еврит(Шутка) знает Хорошо а вот флюкс... хз
- 1
-
3 часа назад, Кеник сказал:
Диванная аналитика в итоге получилась Сказать - сказал, но толку нет. Внезапно "пара часов" уже расширяется до "надо арендовать, настроить, подготовить сервер", чтобы потом после всего этого уже пара часов осталась. По сути, я солидарен SouZe - он озвучил, Санасол после расшифровал - если есть выбор между MD5 и чистым паролем - использовать чистые - долбоебизм. И никакие аргументы о ненадежности MD5 этого не отменяют. И я не понимаю, почему ты топишь за второй вариант в данном случае.
А теперь все поясню пачанам:
1 - Брут это работа, работа должна быть оплачена, в случае когда делаеться для себя. Хабиля инвистирует свое время в возможность навариться на продаже МВП карт. или кидануть интеренет Казино ...
а какому-то челу с форума, который решил взять Хабилю на понт, какой смысл гонять порожняки да еще и должным остаться? Как-то не справедливо...
(Большинство школьников будут брутить на своих игровых компах купленых мамками / папками на прогах скачаных с инета которые используют ресурсы видеокарт, Хабиля, на заказ брутить на своем компе не будет... что не понятного?)
2 - А кто сказал что я топлю за не использование?
Внимательнее читайте что я написал
Цитатаmd5 (без соли) (да уже даже и с солью) вас хоть сколько-то убережет?
Народ, курите заповеди Админа, и не подпускайте к ПРОДЕ никого кроме сибя!
Раз в рагне ниче другое пока не поддерживаеться....
Кароче посыл такой (Для савсем чугунных чувачков)
"Конечно использовать! Но уповать на хешинг паролей в МД5, Очень не советую. Что действительно вас спасет, это не подпускать, ни третих, ни первых лиц к ПРОД серверу. "
Подчеркнул, то,
за что я топлю, раз не очевидно.
2 часа назад, Kubix! сказал:Потому что он написал лишь бы написать, очевидно ж.
Кубикс.... хейть молча, или ставь минусы как Кеник.
вот то что ты написал действительно лишь-бы написать.
Надеюсь Четко, Ровно, По понятиям все пояснил пачанам?
УПД : Разумееться Хабиля готов признать, что он всегда на своей волне, и некоторые вещи очевидные Хабиле, могут быть не очевидными другим пачанам и нужно четче высказывать свое мнение.
-
Я хз куда ты поставил ВПС\Локалка но
самое простое и быстрое это кароче делать как у Хабили в школе делают (Кеник давай ставь минус) мне -666 себе вернуть нада....
создать файл в корневой паке сайта test.php
<?php phpinfo(); ?>
в него вписать ^ это ^
открой файл так
www.site.com/test.php
и ищи в нем CTRL+F mysql
Это должно прояснить чо именно не так с сайтом или серваком...
Хабиля бы еще посоветовал глянуть
ПоХнаПэ.ини (php.ini)
если вот эта по*ень закоменчена (; стоит в переди)
;extension=php_mysql.so
нада кароче убрать ;
Но, чаще всего, если это ВПС, пакет ПоХнаПэ-МайСКЛ (php-mysql) не установлен
-
Сколько веревочке не виться, а все равно можно утопиться....
-
1. На понт взять не получиться (Мне пох*й что обо мне думают, надеюсь форумчане это уже давно поняли...)
2. Ты не сказал сколько заплатиш ТЫ если я ее расшифрую (заплатить придеться явно больше 5к...), мое время стоит дороже.
3. 50% предоплата. (мне надо будет арендовать мощьный сервер у DigitalOcean на пару часов...)
4. Хули я должен делать что то для тебя?
-
55 минут назад, Sanasol сказал:
Вряд ли какой-то админ брутил пароли ради того чтобы зайти в игру потролить школьников.
Как Хабиля отвечал на Герке смысл брута в том чтобы получить пароль админа от веб акка, искать уязвимости в админ интерфейсе
А чаще их и искать не нужно, через админ интерфейс можно залить исполняемый файл в вэб директории... или подредактировать существующие исполняемые файлы (Протроянить).
При возможности залить вэб шелл и торговать МВП картами за реал. Забанили новиса? создаешь нового рисуеш ему мвп карты и по новой...
Всему юнных какеров учить нада... ППЦ кароч...
Как Хабиля писал на герке, приемущество такой схемы в том что когда рисуеш через СКЛ а не через @ комманду в логах сервака ничего нет.. нада смотреть СКЛ логи...
-
Участвуя в споре хабиля скажет ща счет чего у пресного МД5 достигаеться моментальное вскрытие паррля, по тому что есть словари на 100-200 гигов их можно зашифровать в МД5 и залить в базу и по сути отключить у этой базы ACID принципы и делать кучу СЕЛЕКТ выборок, между 2 СКЛ базами, (КОгда все синхронизации ACID принцыпов отключены, можно пролистать ОГРОМНУЮ базу за пару минут...)таким образом , можно вскрыть целую МД5 базу паролей за несколько минут..
Какеры учитесь сливать базы и пароли ..
-
7 часов назад, SouZe сказал:
И поэтому вы решили не использовать никакого шифрования вообще? Ахах
Жестокая логика
- у МД5 есть шанс коллизий
- ок! тогда храним пароли плейн текстом
хотя я хз кто в здравом уме начнет юзлес хеши брутитьблеа... еще раз повторяю на*й.
Любой школьник подбрутит ВСЮ базу пресных МД5 паролей за несколько часов (Ну Хабиля точно)...
Часов КАРЛ, даже не дней...
А когда МД5 с солью, тоже несколько часов, но там уже не получиться так чтобы, Х*як и всю базу подбрутить, там нада будет выбрать несколько акков, которые нужно подбрутить, чем меньше тем быстрее...
Карочь, изучайте запаведи админов и не подпускайте какеров к ПРОДЕ. а то Какеры они такие ... какеры.
- 1
- 1
-
1 час назад, Sanasol сказал:
Шел 2017, люди все еще не использовали md5 для паролей.
Вы чо рияльно думаете что пресный md5 (без соли) (да уже даже и с солью) вас хоть сколько-то убережет?
Алё-Балё! Народ, курите заповеди Админа, и не подпускайте к ПРОДЕ никого кроме сибя!
Раз в рагне ниче другое пока не поддерживаеться....
- 1
-
7 часов назад, Elmiria сказал:
А теперь самое интересное - Хабиля должен научить всему нубов) Чтоб также быстро и так же качественно, и так же бесплатно (последнее относительно) XD
Почти вся инфа есть в гайдах у Хабили в блоге.
1. Ничего что там написано Распберри пай, норм встанет на Дебиан ВПС
(Если не пытаться отключить ВайФай и Блутуз у ВПС (Хабиля и такое видел, а еще спрашивают почему этот пункт не работает на ВПС...))
2. гиды правда только на Инглише, если совсем ни как у Гугла есть гуг транслейт встроеный прямо в Хром, (Когда все как-то не по Русски)
3. Гиды только по Герку, по тому что Хабиля больше любит Герк. (Не па таму что Хабилю
поставили в уголзабанили на рА за плохое поведение)- 1
-
Хабиля уже ХЗ чо тут еще добавить....
В принципе все уже сделано (Если у вас еще есть какие-то идеи то велкам)
Могу только запостить еще отчеты и оценки инспекции того что Хабиля по настроил...
1 . Тест шифрования и (Типо безопасности) Е-мейл сервер а/ов
сайт : http://www.emailsecuritygrader.com
Скрытый текстИспользуеться ССЛ шифрование (Бесплатный ССЛ сертификат от Let's Encrypt)
В гугле информация об отправителе выглядит так:
Скрытый текстЗАМОООЧЕК!!!
А вот как выглядит когда шифрование не настроено
Скрытый текст2. Тестируем Качество настройки ССЛ сертификата на сайте
Хабиля установил и настроил ХТТПС (HTTPS://) шифрование сайт при помощи бесплатных сертификатов ССЛ от Let's Encrypt
SSL сертификат это вот эта вот фигнюшка
Можно протестировать качество настройки.
сайт : https://www.ssllabs.com/ssltest/
Скрытый текст3. Ну и на конец можно протесировать проходимость Е-мейлов.
От качества настройки Е-мейл сервера, зависит проходимость ваших Е-мейлов в Инбоксы пользователей
Тоесть, хренова настроеные редко проходят в Инбокс а чеще попадают в спам. По этому многие ресурсы пишут унизительную фразу
"Если вы не получали от нас Е-мейл, посмотрите в Спаме" ©
сайт : https://www.mail-tester.com/
Скрытый текстОтняли 0.3 очка, по тому что некоторые Е-мейл провайдеры думают что Хабиля пользует БЕСПЛАТНЫЙ динамический ДНС...
А так с оценкой 9.7 ВСЕГДА будет падать в Инбокс
А значит Унизительную надпись
"Если вы не получали от нас Е-мейл, посмотрите в Спаме" ©
Можно не писать...
Карочь вот и все!!!
Настраивайте Сервера Парвильно!
Тестируйте и проверяйте настроенное!!
Делайте с профессиональной точки зрения!
И не забывайте про кибербезопасность!
Да прибудет с вами сила!!!
- 1
-
Так (по скрину с ничего не говорящей ошибкой) тебе врятли кто-то поможет...
нужно предоставить vhosts конфиг сайта или что там у апача... (Хабиля работает только с НгинХ по этому ваще ХЗ как там у апача...)
и ls папки где находиться сайт или myphpadmin
- 1
-
Да ладно.. не надо на себя наговаривать. Если что-то совсем нев*нно сложное, можно тут, у пачанов спросить, они норм отвечают не смотря на то что говорят всякие школьники..(что их там обидили, оскорбили, затроллили, не ответили на вопросик)
А еще можно на Герке спросить, там тоже норм пачяны и норм отвечают только они мутные карочь, по Русски не понимают...
А на рАфине Хабилю
в угол поставилиРид-онли за плохое поведение кинули, там хз какие пачяны.. тоже норм наверное есть.Глвавное, кароч, не бояться и не здаваться, и не отступать кароч!.....
- 1
-
Лови первую версию
дома кароч доработаю выборку
DELIMITER // set @nameid = 601; SELECT c.account_id ,c.name ,inv.inventory_amnt ,crt.cart_amnt ,mail.mail_amnt ,stor.storage_amnt ,(ifnull(inv.inventory_amnt, 0) + ifnull(crt.cart_amnt, 0) + ifnull(mail.mail_amnt, 0) + ifnull(stor.storage_amnt, 0)) AS tot_amnt FROM `char` c LEFT JOIN (SELECT char_id, SUM(amount) AS inventory_amnt FROM inventory WHERE nameid=@nameid GROUP BY char_id) inv ON inv.char_id=c.char_id LEFT JOIN (SELECT char_id, SUM(amount) AS cart_amnt FROM cart_inventory WHERE nameid=@nameid GROUP BY char_id) crt ON crt.char_id=c.char_id LEFT JOIN (SELECT dest_id AS char_id, SUM(amount) AS mail_amnt FROM mail WHERE nameid=@nameid GROUP BY dest_id) mail ON mail.char_id=c.char_id LEFT JOIN (SELECT account_id, SUM(amount) AS storage_amnt FROM storage WHERE nameid=@nameid GROUP BY account_id) stor ON stor.account_id=c.account_id ORDER BY tot_amnt DESC; // DELIMITER ;
пример того что выбираеться
+------------+------------+----------------+-----------+-----------+--------------+----------+ | account_id | name | inventory_amnt | cart_amnt | mail_amnt | storage_amnt | tot_amnt | +------------+------------+----------------+-----------+-----------+--------------+----------+ | 2000002 | Wiwrtas | 19 | NULL | NULL | NULL | 19 | | 2000002 | Strelok | 9 | NULL | NULL | NULL | 9 | | 2000000 | test | NULL | NULL | NULL | NULL | 0 | | 2000002 | aaaaa | NULL | NULL | NULL | NULL | 0 | | 2000003 | ladyAdA | NULL | NULL | NULL | NULL | 0 | | 2000000 | toto | NULL | NULL | NULL | NULL | 0 | | 2000000 | Habilis | NULL | NULL | NULL | NULL | 0 | | 2000001 | tata | NULL | NULL | NULL | NULL | 0 | | 2000002 | asdasfasfd | NULL | NULL | NULL | NULL | 0 | | 2000004 | tatatatata | NULL | NULL | NULL | NULL | 0 | +------------+------------+----------------+-----------+-----------+--------------+----------+ 10 rows in set (0.01 sec)
Выбираеться сумма предмета 601 (крыло мухи) в инвентаре, тележке, почте, кафре (оно по акку а не по персонажу по этому у всех персонажей под 1 акком там одинаковое значение) и тотал, по нему определяю того у кого больше всего предмета...
С ги стореджем логика та-же только выборка меньше... я не стал вкручивать по тому что Гильдия это воабще отдельная сущьность связаннае кароч с множеством Чаров...
Fizik, Сергей Пивоваров
в Black List
Опубликовано
А чего нет на других серверах? по моему все уже так или иначе придумано...