-
Публикаций
1533 -
Зарегистрирован
-
Посещение
-
Победитель дней
5 -
Отзывы
0%
Тип контента
Профили
Форумы
Загрузки
Магазин
Инструкции
Весь контент Jumper
-
AdminkO заходишь к нему на сайт, зовешь друзей, человек 30-40 и F5 жмите у него на сайте
-
http://rghost.ru/40628625
-
скиньте пример из армор, а то я в пв не лазил)
-
не мой svn это что уж за работу ставите) просто наткнулся огибая просторы интернета)
-
Большая часть форума конечно знает про это svn, но всё же некоторые спрашивают... На нем исходные коды команд, разных хроник от С4 до HF SVN пароль на все архивы: l2j
-
это моё мнение, когда для себя я поставлю, а так я рад за вас)
-
silentium рано еще брать 104 ревы, но скажу хорошо работают, смотрел исходы, аи баюма на высоте) месяцов через 5 можно и на проект их ставить) а так RT возьми, поработай немного) Link тоже сойдут)
-
tcpdump - это мощнейшая утилита UNIX, позволяющая перехватывать и анализировать сетевой трафик, проходящий через сетевые интерфейсы. Об установке читайте на сайте разработчика, в FreeBSD она есть в портах, в Debian Linux в репозиториях. Приведу пример как можно использовать tcpdump. Например, на сервере отключены логи, идет легкая ddos атака, происходит что-то не ладное, вы хотите быстро посмотреть масштабность или убедиться, что это DDoS-атака, а не DoS или может это вообще никак не связано с внешним миром? Давайте посмотрим tcpdump -v -i eth0 dst port 80 После выше набранной команды вы сможете наблюдать список подключений к 80-у порту, чем больше повторных подключений с одинаковых хостов тем вероятнее мы столкнулись с DoS или DDoS атакой. Как вы уже наверное догадались, изменив порт можно проверить есть ли атака на FTP, SSH или другие сервисы которые крутятся на сервере. Добавив ключ -n имена хостов преобразуются в IP адреса. Глазами все не уследить, при атаке на веб-сервер вывод tcpdump-a сумасшедшей скоростью будет двигаться вдоль окна вывода терминала Поэтому, мы сначала запишем вывод tcpdump-a в файл. Пакетов 200-300 хватит. tcpdump -v -n -w attack.log dst port 80 -c 250 -v - самый простой уровень логирования, без изысканности. -n - преобразуем имена хостов в IP адреса -w - записываем анализ трафика в файл -c - количество захваченных пакетов Приступим к анализу полученных данных через tcpdump, отпарсим лог следующей командой tcpdump -nr attack.log |awk '{print $3}' |grep -oE '[0-9]{1,}\.[0-9]{1,}\.[0-9]{1,}\.[0-9]{1,}' |sort |uniq -c |sort -rn Результат будет - 2 столбца, в первом количество подключений, во втором IP. Чем больше подключений для одного IP тем вероятнее что это бот. Если список очень длинный можно ограничить его указав нужное количество выводимых строк tcpdump -nr attack.log |awk '{print $3}' |grep -oE '[0-9]{1,}\.[0-9]{1,}\.[0-9]{1,}\.[0-9]{1,}' |sort |uniq -c |sort -rn | head -20 Мы добавили head -20 Что бы получить только IP адреса, без первого столбца, нужно убрать ключ -c после uniq Вывод парсинга можно перенаправить в файл, а затем простым bash-скриптом, заблокировать все IP со списка. #!/bin/bash BLOCKDB="ips.txt" IPS=$(grep -Ev "^#" $BLOCKDB) for i in $IPS do iptables -A INPUT -s $i -j DROP
-
Добавляем новый тип оружия на сервер Расскажу как это делается на примере исходников l2jFrozen. Запускаем Eclipse. Открываем com\l2jfrozen\gameserver\datatables\SkillTable.java и находим: private static final L2WeaponType weaponDbMasks = { L2WeaponType.ETC, L2WeaponType.BOW, L2WeaponType.POLE, L2WeaponType.DUALFIST, L2WeaponType.DUAL, L2WeaponType.BLUNT, L2WeaponType.SWORD, L2WeaponType.DAGGER, L2WeaponType.BIGSWORD, L2WeaponType.ROD, L2WeaponType.BIGBLUNT }; Добавляем после L2WeaponType.BIGBLUNT L2WeaponType.LANCE и сохраняем. Заходим в com\l2jfrozen\gameserver\datatables\sql\ItemTable Находим: _weaponTypes.put("bigblunt", L2WeaponType.BIGBLUNT); //Two handed blunt После добавляем: _weaponTypes.put("lance", L2WeaponType.LANCE); //Lance Заходим в com\l2jfrozen\gameserver\model\L2Skill Находим: public final static int COMBAT_MOD_DARK = 223; После добавляем public final static int COMBAT_MOD_LANCE = 224; Заходим в com\l2jfrozen\gameserver\skills\Formulas Находим: case POLE: stat = Stats.POLE_WPN_VULN; break; После добавляем: case LANCE: stat = Stats.LANCE_WPN_VULN; break; Заходим в com\l2jfrozen\gameserver\skills\Stats Находим: POLE_WPN_VULN("poleWpnVuln"), После добавляем: LANCE_WPN_VULN("lanceWpnVuln"), Заходим в com\l2jfrozen\gameserver\templates\L2WeaponType Находим: BIGBLUNT(14, "Big Blunt"); // Two handed blunt Заменяем на: BIGBLUNT(14, "Big Blunt"), // Two handed blunt LANCE(15, "Lance"); При создании оружия в базе в поле "weaponType " списываем Lance Lance можно заменить чем угодно. Это все проделано для того что бы можно делать резисты от нового типа оружия, что бы скилы работали только с этим типом оружия. и т.д.
-
Создание своего рецепта Я думаю устанавливать сервер научились все, раз принялись за прочтение данного урока, по этому можно начать: 1. Идем в папку gameserver\data\ и ищем там файл recipes.csv 2. Открываем его и видем что-то странное, честно говоря сам не понял что=), но нам на это пох, мы идем в самый низ. 3. В самый конец вписываем вот это : dwarven;mk_new_item;844;9991;9;[9650(1)],[5553(1)];57;20000000;[9650(1)],[57(540000)];225;100; Сейчас сделаем лиричиское отступление, и я расскажу какое значение за что отвечает: -dwarven - означает то, что рецепт могу открыть только гнумы, можно поставить значение common, в таком случаем рецепт откроют все. -mk_new_item - название итема. Состоит из : mk_ - обязательный префикс, значение для крафта, и new_item, ваш предмет, можно без низжней черы, если одно слово. - 844 - ID рецепта в скрипте, в моей сборке последним был рецепт с идом 843, по этому я взял 844. - 9991 - ID рецепта по базе данных MySQL, тоесть тот ID, который мы будем спавнить как итем или кидать в мультиселл. - 9 - необходимый уровень крафт скила(не забываем, если ставить возможность всем открывать и крафтить рецепт, то ставим уровень 1). - [9650(1)],[5553(1)];57;20000000;[9650(1)] - вещи необходимые для крафта итема ([iD предмета(количество)],...) - [57(100000000)] - то, что мы собираемся крафтить, в нашем случае 100кк аден. - 225 - это значение регулирует сколько маны мы угробим... - 100 - шанс того, что крафт пройдет успешен. 4. На основе вышенаписанного создаем свой рецепт. 5. Теперь нужно добавить наш запрос в сервер, тоесть делаем запрос в базу данных MySQL: -Первая строчка является пояснением к значениям, темболее некоторые их них мы разбирали чуток выше, по этому останавливаться не будем. 6. Запускаем File Edit и открываем файл itemname-e.dat который лежит в папка клиента/system/ 7. В самый конец добовляем: 9991 Recipe: 100kk Adena. Требуется 9 уровень создания вещей. Шанс создания вещи - 100%. -1 0 0 0 -Изменяем все под себя и не забываем в конце остваить одну пустую строчку. 8. Открываем etcitemgrp.dat, находим любой рецепт, вставляем его в самый конец, меняем ID, название и в конце оставляем одну пустую строчку. 9. Но и этого не достаточно. Идем в файл recipe-c.dat. 10. Точно так же копируем любую строку и вставляем в конце, но вот тут то и вся муть - надо соблюдать все пропорции,ничего лишнего ненаудалять и непонаписать, иначе он просто обратно не закодирует - будет ошибку выдавать. - Вот мы нашли нашли рецепт, подробно разбирем что для чего: mk_eye_of_soul_ii(имя рецетпа, лучше указывать в соответсвии с пунктом 3.2) 805(id рецепта по файлу рецептов) 8313(id рецепта по бд) 7(лвл крафта) 7894(что производиться) 1(сколько) 192(сколько маны надо) 100(шанс) 10(сколько вещей учавсвует в крафте) 8313(что надо для крафта) 1(сколько) 8341(что надо для крафта) 13(сколько) 5554(и так далее) 2 1890 122 1888 122 1885 61 4042 61 5550 244 1460 415 2132 143 - К нашему рецепту выйдет вот такая вот штукенция: mk_new_item 844 9991 9 57 100000000 225 100 2 5553 1 9650 1 Если вы все сделали правильно, то после рестарта(лучше делать при выключенном сервере), или при его включении, появится ваш собственный рецепт.
-
Мануал для тех кому нужны заточенные вещи в мультиселах! - Идем: gameserver\head-src\com\l2jfrozen\config.java - После данных строк : public static String FARM1_CUSTOM_MESSAGE; public static String FARM2_CUSTOM_MESSAGE; public static String PVP1_CUSTOM_MESSAGE; public static String PVP2_CUSTOM_MESSAGE; - Добавим: public static boolean ENABLE_MODIFY_ENCHANT_MULTISELL; public static Map<Integer, Integer> ENCHANT_MULTISELL_LIST; - Далее ищем такие строки: /** Server Name **/ ALT_SERVER_NAME_ENABLED = Boolean.parseBoolean(L2JFrozenSettings.getProperty("ServerNameEnabled", "false")); ANNOUNCE_TO_ALL_SPAWN_RB = Boolean.parseBoolean(L2JFrozenSettings.getProperty("AnnounceToAllSpawnRb", "false")); ANNOUNCE_TRY_BANNED_ACCOUNT = Boolean.parseBoolean(L2JFrozenSettings.getProperty("AnnounceTryBannedAccount", "false")); ALT_Server_Name = String.valueOf(L2JFrozenSettings.getProperty("ServerName")); DIFFERENT_Z_CHANGE_OBJECT = Integer.parseInt(L2JFrozenSettings.getProperty("DifferentZchangeObject", "650")); DIFFERENT_Z_NEW_MOVIE = Integer.parseInt(L2JFrozenSettings.getProperty("DifferentZnewmovie", "1000")); - И добавляем после них: ENABLE_MODIFY_ENCHANT_MULTISELL = Boolean.parseBoolean(L2JFrozenSettings.getProperty("EnableModifyEnchantMultisell", "False")); if (ENABLE_MODIFY_ENCHANT_MULTISELL) { ENCHANT_MULTISELL_LIST = new FastMap<Integer, Integer>(); String[] propertySplit; propertySplit = L2JFrozenSettings.getProperty("EnchantMultisellList", "").split(";"); for (String enchant : propertySplit) { String[] enchantSplit = enchant.split(","); if (enchantSplit.length != 2) { System.out.println("[EnchantMultisellList]: invalid config property -> EnchantMultisellList \"" + enchant + "\""); } else { try { ENCHANT_MULTISELL_LIST.put(Integer.parseInt(enchantSplit[0]), Integer.parseInt(enchantSplit[1])); } catch (NumberFormatException nfe) { if (!enchant.equals("")) { System.out.println("[EnchantMultisellList]: invalid config property -> EnchantMultisellList \"" + enchantSplit[0] + "\"" + enchantSplit[1]); } } } } } - Далее идем в MultiSellChoose.java: gameserver\head-src\com\l2jfrozen\gameserver\network\clientpackets\MultiSellChoose.java - И после таких строк: // Generate the appropriate items for (MultiSellIngredient e : entry.getProducts()) { if (ItemTable.getInstance().createDummyItem(e.getItemId()).isStackable()) { inv.addItem("Multisell["+_listId+"]" , e.getItemId(), (e.getItemCount() * _amount), player, player.getTarget()); } else { L2ItemInstance product = null; for (int i = 0; i < e.getItemCount() * _amount; i++) { product = inv.addItem("Multisell["+_listId+"]", e.getItemId(), 1, player, player.getTarget()); - Добавляем: if (Config.ENABLE_MODIFY_ENCHANT_MULTISELL) { if (Config.ENCHANT_MULTISELL_LIST.containsKey(_listId)) { product.setEnchantLevel(Config.ENCHANT_MULTISELL_LIST.get(_listId)); } } - Также добавляем в конфиг l2jfrozen.properties: gameserver\config\functions\l2jfrozen.properties - Такие строки: # Продавать заточенные вещи через мультиселлы EnableModifyEnchantMultisell = True # Номера мультиселлов в которых будут затачиваться вещи при продаже # Например: EnchantMultisellList=1001,10;1002,5 # Означает что в мультиселле 1001.xml все вещи при продаже будут точиться на 10 # и в мультиселле 1002.xml соответственно точиться на 5 # ВНИМАНИЕ! Не ставьте точку с запятой в самом конце и пишите все без пробелов! EnchantMultisellList=40002,30;
-
<skill id="4551" name="Hot Springs Rheumatism"> <skill id="4552" name="Hot Springs Cholera"> <skill id="4553" name="Hot Springs Flu"> <skill id="4554" name="Hot Springs Malaria">
-
забудьте про открытые порты, если модем
-
http://subversion.assembla.com/svn/L2jFrozenInterlude/trunk/
-
ну а поискать сначала, ребят ну что такое http://forummaxi.ru/index.php?showtopic=15337
-
темный эльф в лайте, по любому косячный, поэтому и не показали!
-
html переделать всего то)
- 4 ответа
-
- 1
-
-
держи, не мучайся http://rghost.ru/40561260
- 4 ответа
-
- 1
-
-
Мой скромный список услуг - HTML Правка имеющихся HTML - 1 рубль (1 шт) Создание новых - от 1 до 4 рублей, зависит от сложности (1 шт) - XML Сюда входят статы, мультиселлы, скиллы Правка имеющихся XML - 2 рубля (1 шт) Создание новых - от 4 до 9 рублей, зависит от их объема (1 шт) - SQL Правка имеющихся SQL - 1 рубль (один запрос) Перенос и адаптация SQL с одной сборки на другую - от 10 рублей! (зависит от кол-ва) Создание SQL под ваши пушки, крылья и прочее - 1 рубль (1 шт) - Помощь в установке MySQL, Java, Navicat(имеется свой с ключами), самой сборки - 12 рублей CSM (WordPress, StressWeb, GHTWeb, DLE) - 8 рублей Форума (IPB, PhpBB, SFM, VBulletin) - 9 рублей - Также Внесу в патч ваши Крылья, Арморы, Пухи, Итемы - 10 рублей Помощь в чтение логов Сервера, Логина - 2 рубля Помощь и советы по CMS WordPress, Форум IPB - беслпатно Создание Блога на основе CMS WordPress - 7 рублей Также обучу работе в Eclipse (создание проекта, основные моменты в работе, компиляция) - 5 рублей Что касается работы по ява, скажу сразу писать вам эвенты, бафферов и прочее я не буду, на это мне нужно время, которого у меня сейчас очень мало! Поэтому, если у вас какие-то проблемы в ява коде, ошибка при компиляции то милости прошу! Цена договорная, если по мелочи залатаю бесплатно! Работаю исключительно с Interlude, Epilogue, GoD! UP: с клиентскими дополнениями не работаю, то есть не перекрашиваю шмотки, не создаю нпс, не адаптирую! Что-то не нашли в списке, спросите! Помогаю в основном от степени занятости! Контакты: ICQ: 2751476 SOFT: Notepad TeamViewer
-
идем gameserver\config\functions открываем physics..properties ищим MaxPAtkSpeed = 1500 (скорость атаки) MaxMAtkSpeed = 1999 (скорость каста)
-
не поняли вы суть, этот раздел откроется, как только наберет нужное кол-во материала
-
обидно чуваку ноги обрубать) а с блоки хз, посоветуйте шрифты какие нибудь