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

Результаты поиска

  1. Supreme
  2. Supreme
    Тема

    id стилей

    # Как то в своё время копировал с сайта jd.pwdatabase.com id стилей к себе в текстовик, чтобы потом засунуть на продажу в npc на SN сервере, сейчас решил поделится со всеми. Верхняя одежда 33011 33010 21251 21250 6377 23428 18885 18884 34943 34942 25334 34752 21257 6367 16432 4452 25015 20128 19439 21258 6376 16436 6375 15819 6374 7809 31776 7808 31774 27492 4453 25023 25024 18769 13312 21655 25013 20495 32931 7807 22001 22000 33649 23146 13476 23148 32193 32301 32945 22422 22421 25027 35204 32010 32011 25033 4226 25017 35446 23155 35332 25025 25026 13613 13612 34004 25022 6378 24773 34940 34749 34003 Обувь 33020 33019 21253 21252 34007 25099 15824 35339 35338 25097 25081 18887 19438 25092 34947 34946 27497 27496 25336 31782 33653 22004 22425 18771 13617 25095 7816 33021 32012 32013 25094 25093 34008 25100 19441 4457 20500 25076 25082 16501 14003 10635 25089 25085 11960 25077 20130 25090 32305 7817 32949 14244 31784 25098 35452 25087 11544 18772 21657 7818 35209 32195 32933 23160 23159 35453 34751 31783 Головное украшение 33015 33014 21254 34005 6511 31780 32008 32009 32194 34945 34944 19437 32303 19440 32304 23312 23311 7813 18889 18888 13484 11958 15822 25046 25047 31781 27494 27495 35336 23157 23158 35335 31778 35448 25044 25045 35449 34075 25056 23153 21656 16500 25073 25074 32932 7811 35450 22003 22002 13614 13615 6379 34006 24774 32929 35207 39919 19326 22424 22423 23429 25066 25068 6384 6381 25065 25058 10632 25064 4228 25596 Украшения для глаз 33123 25439 6237 6230 13354 25108 6228 33208 34102 25106 6227 25440 13307 19127 19128 19130 19129 13306 7824 25111 33121 33120 11406 23877 7541 7540 13355 Некоторые могут не быть в вашем элементе, так что придется самим выискивать багнутые стили. p.s. багнутые стили link не вызывают.
    Автор темы: Supreme, 28 июл 2011, ответов - 4, в разделе: JD Сервер
  3. Supreme
  4. Supreme
  5. Supreme
  6. Supreme
  7. Supreme
  8. Supreme
  9. Supreme
  10. Supreme
  11. Supreme
  12. Supreme
    Для работы требуется pck extract и файл configs.pck http://spck.codeplex.com/ Для начала распакуем configs.pck, находим файл broadcast.ini [img] Открываем его и видим: [Channel] Number = 0 ChannelName0 = 诛仙网络电台电信入口1 ChannelURL0 = http://zhuxian.radio-arts.com/dianxin1/ ChannelName1 = 诛仙网络电台电信入口2 ChannelURL1 = http://zhuxian.radio-arts.com/dianxin2/ ChannelName2 = 诛仙网络电台网通入口1 ChannelURL2 = http://zhuxian.radio-arts.com/wangtong1/ ChannelName3 = 诛仙网络电台网通入口2 ChannelURL3 = http://zhuxian.radio-arts.com/wangtong2/ ChannelName4 = 完美时空音乐频道电信入口1 ChannelURL4 = http://mec.radio-arts.com/dianxin1/ ChannelName5 = 完美时空音乐频道电信入口2 ChannelURL5 = http://mec.radio-arts.com/dianxin2/ ChannelName6 = 完美时空音乐频道网通入口1 ChannelURL6 = http://mec.radio-arts.com/wangtong1/ ChannelName7 = 完美时空音乐频道网通入口2 ChannelURL7 = http://mec.radio-arts.com/wangtong2/ Это broadcast.ini с китайского клиента. Если хотим добавить своё радио то делаем следующим образом. [Channel] Number = 1 ChannelName0 = radio NRJ ChannelURL0 = http://www.adress.ru/stream.m3u и т.д. Вот что получилось [img] Писал от руки и на коленке (;
    Автор темы: Supreme, 13 фев 2011, ответов - 15, в разделе: JD Сервер
  13. Supreme
    [img] [img] Взято с ragezone Скачать
    Автор темы: Supreme, 31 янв 2011, ответов - 12, в разделе: Архив
  14. Supreme
  15. Supreme
    На некоторых сборках серваков, эти файлы сразу переведены на русский, но на многих, там всё по-английски, и вот эта тема как раз для тех кто не дружит с английским, или неохото переводить... Папка где хранятся все настройки: GameServer\config Впишите True для включения, False - для отключения, или в некоторых случаях впишите цифры. Тут будут описываться некоторые настройки из серверов. Это сделано для облегчения настройки сервера! Если у вас этой настройки нету - значит ваша сборка не поддерживает её! Указаны тока те настройки, в сути которых я разобрался полностью и правельность описания могу гарантировать Файл: altsettings.properties # Включение автоподбора дропа вещей с монстров. Впишите True для включения, False - для отключения AutoLoot # Если отключено - herbs будут выпадать на землю, даже при включенном автоподборе дропа AutoLootHerbs # Допускать перемещение используя клавиатуру. По умолчанию = true AltKeyboardMovement # Разрешить понижение уровня персонажа при потере XP. по умолчанию - включено ('true') Delevel # Если выключено, урон магией будет наноситься с вероятностью 100%. по умолчанию - включено ('true') MagicFailures # Альтернативное окончание атаки (bow, cast, all) (атака прерывающиеся нажатием кнопки "Esc") (bow-стрельба из лука, cast-магия, all-всё прерывать можно) AltGameCancelByHit # Альтернативные правила для щитов - если удается блок щитом, то урон расчитывается как powerAtk-shieldDef, # При включении расчет идет как powerAttak / (shieldDef + powerDef) AltShieldBlocks # Альтернативный AltGameMobAttackAI (способ атаки мобов), подобие C1 AltGameMobAttackAI # Использование усталости (СР) (вместо боевых точек (НР)) # (при атаке снимается сразу НР (мобома), а при ПвП сначала снимается СР а потом НР # если включить настройку - всегда вначале будет сниматься СР, а потом уже НР) AltGameTiredness # Может ли игрок с кармой использовать Свиток или Навык Возврата(например: телепорт в город)? AltKarmaPlayerCanTeleport # Может ли игрок с кармой использовать гейткиперов (GK)? AltKarmaPlayerCanUseGK # Ограничение скорости атаки (магии и физической) (0 = без лемита) MaxPAtkSpeed MaxMAtkSpeed # Крафтинг (создание вещей) включен/выключен. По умолчанию - включен CraftingEnabled #Лимит рецептов (по умолчанию: 50 - для дварфов , 50 - для остальных) DwarfRecipeLimit CommonRecipeLimit # Разрешить использование Менеджеров событий для изучения навыков. Если вы хотите изучать навыки только через квесты установите False # (1,2,3 = 1st, 2nd and 3rd професиий). По умолчанию = False SpawnClassMaster AllowClassMaster1 AllowClassMaster2 AllowClassMaster3 # Для изучения навыков требуется ли книги навыков(спелбуки)? SpBookNeeded # Альтернативные правила изучения навыков: # - все классы могут изучить любые навыки # - навыки другого класса стоят x2 SP # - навыки другой расы стоят x2 SP # - навыки воинов/магов стоят x3 SP AltGameSkillLearn # Разрешить игроку дополнять подкласс(получать субкласс) не проверяя наличие требуемых квестовых предметов. AltSubClassWithoutQuests # Максимальное число баффов (по умолчанию = 24 в C5) (больше 200 баффов не ставить!!!) AltNbCumulatedBuff # Активировать авто изучение навыков(скиллов) для игрока AutoLearnSkills # Количество дней требуемых для ожидания : # - входа в другой клан DaysBeforeJoinAClan # - создание нового клана DaysBeforeCreateAClan # Количество членов клана, требуемых для начала клановой войны AltClanMembersForWar Файл: options.properties # включение данной опции превратиш сервер в тестовый сервер # (отобразится у клиентов с включенной опцией testserver) TestServer # При включении данной опции любой созданый персонаж будет получать уровень доступа 200 (т.е. станет ГМом). EverybodyHasAdminRights # Отображать часы рядос с именем сервера ServerListClock (порой с этой включённой опцией тупит...клиент) # При включении данной опции на сервер смогут зайти только ГМы (уровень аккаунта >= 100) ServerGMOnly # Данная настройка это эксперементальная синхронизация между Клиентскими <-и-> Серверными координатами игрока, # 0 - нет синхронизации ВООБЩЕ !!! # 1 - Частичная синхронизация от клиента -к-> серверу # 2 - Частичная синхронизация от Сервера -к-> клиенту # 3 - Полная синхронизация Клиента <-и-> Сервера # -1 - Старая система синхронизации: Только по оси Z CoordSynchronize (1,2 и особенно 3 при большом онлайне загружает канал сервера) # Настройки зон # 0 = Мир во всем мире # 1 = PVP при осадах # 2 = PVP везде ZoneTown # Включение глобального Чата(тот что через !): ON-Включен, OFF-Выключен, GM-Только для GM, GLOBAL-Глобально GlobalChat # Включение чата торговли: ON-Глобально, OFF-Выключен, GM-Только для GM, LIMITED-область видимости TradeChat # Наказание персонажа за нелегальные действия # 1 - Отправка ГМам сообщения о данном действии # 2 - Выкинуть игрока (kick) # 3 - Выкинуть и забанить # 4 - Поcадить игрока в тюрьму (в следующем параметре указывается время в минутах: 0 = без ограничения ) DefaultPunish DefaultPunishParam # Использование gameguard для проверки клиента # GameGuardEnforce - использует запрос gameguard про входе персонажа в игру # GameGuardProhibitAction - не разрешит игроку заниматься торговлей, разговаривать с npc # и перемещаться по миру, пока GameGuard не ответит серверу GameGuardEnforce GameGuardProhibitAction # Статус дня и ночи. Время указывается от 0 до 23 DayStatusSunRiseAt DayStatusSunSetAt # Иницировать смену времени суток на клиенте DayStatusForceClientUpdate # Удалять персонаж, выбраныго для удаления, через N дней, 0 - отключение опции DeleteCharAfterDays # Пересылает информацию обо всех вещах персонажа, а не только о той с которой происходит операция. # ОБРАТИТЕ ВНИМАНИЕ: Неимоверно нагружает трафик. ForceInventoryUpdate # Максимальное отклонение моба от точки спауна MaxDriftRange # Минимальная и максимальная задержка в секундах для анимации NPC # Минимальное значение не должно быть больше Максимального # "0" - значение по умолчанию. MinNPCAnimation MaxNPCAnimation # Отображать уровень и агрессивность монстров ShowNpcLevel # Разрешить игрокам бросать вещи на землю AllowDiscardItem # Разрешить рыбалку AllowFishing #Разрешить использования Геодаты AllowGeodata #выгружает неиспользованную геодату после 900000 микросекунд AllowGeodata_ExpirationTime #Проверить видимые объекты в геодате, увеличивает потребление CPU AllowGeodataCheckKnown # Вести лог окна чата LogChat
    Автор темы: Supreme, 24 янв 2011, ответов - 4, в разделе: LineAge 2
  16. Supreme
    Создание нового класса / создание новой профессии в данном примере делается новый класс 1я профа по аналогии с Артизаном и так берём исходники сервака (у меня это L2jFree 4843) I. нам понадобятся следующие *.java файлы лежащие по адресу: 1) C:\L2jFree\l2jfree-core\src\main\java\com\l2jfree\gameserver\datatabl es\CharTemplateTable.java 2) C:\L2jFree\l2jfree-core\src\main\java\com\l2jfree\gameserver\model\baseClassId.java 3) C:\L2jFree\l2jfree-core\src\main\java\com\l2jfree\gameserver\model\PlayerClass.java II. а также *.sql: 1) C:\server\sql\char_templates.sql 2) C:\server\sql\lvlupgain.sql 3) C:\server\sql\class_list.sql I. изменение исходников: 1) CharTemplateTable.java находим строку: Цитата: "Dwarven Artisan", "Warsmith", "dummyEntry1", //меняем скажем на "New Class", "dummyEntry2", 2) baseClassId.java находим строку: Цитата: artisan (0x38, false, Race.Dwarf, dwarvenFighter), warsmith (0x39, false, Race.Dwarf, artisan), dummyEntry1 (58, false, null, null), //меняем скажем на newClass (0x3a, false, Race.Dwarf, dwarvenFighter),* dummyEntry2 (59, false, null, null), *тут нужно пояснить думаю: 0x3a = id проффы 58 в шестнадцатеричной системе это 3a (можно переводить в калькуляторе винды) false = физик (true, = мистик) Race.Dwarf = ссылается на расу указанную в C:\L2jFree\l2jfree-core\src\main\java\com\l2jfree\gameserver\model\ba se\Race.java, чувствительно к регистру букв. dwarvenFighter = предшествующая профа (видимо = ) 3) PlayerClass.java находим строку: DwarvenArtisan(Dwarf, Fighter, Second), Цитата: Warsmith(Dwarf, Fighter, Third), dummyEntry1(null, null, null), //меняем скажем на NewClass(Dwarf, Fighter, Second),** dummyEntry2(null, null, null), **поясню: Dwarf = опять расса Fighter = тип класса (есть ещё два Mystic, Priest) C:\L2jFree\l2jfree-core\src\main\java\com\l2jfree\gameserver\model\ba se\ClassType.java Second = какая профа по счёту (бывает 4е вида: базовая First, первая Second, вторая Third, третья Fourth) они описанны в файле C:\L2jFree\l2jfree-core\src\main\java\com\l2jfree\gameserver\model\ba se\ClassLevel.java Компелим сервак, собираем, запихиваем всё скажем в C:\server II. добавляем строки в *.sql: 1) char_templates.sql Код: (56, 'Artisan', 4, 39, 45, 29, 20, 10, 27, 4, 80, 6, 41, 300, 333, 33, 43, 33, 115, 83000, 108512, -174026, -400, 1, 1.09, 1.487196, 9.0, 18.0, 1.09, 1.487196, 5.0, 19.0), (57, 'Warsmith', 4, 39, 45, 29, 20, 10, 27, 4, 80, 6, 41, 300, 333, 33, 43, 33, 115, 83000, 108512, -174026, -400, 1, 1.09, 1.487196, 9.0, 18.0, 1.09, 1.487196, 5.0, 19.0), (58, 'New Class', 4, 39, 45, 29, 20, 10, 27, 4, 80, 6, 41, 300, 333, 33, 43, 33, 115, 83000, 108512, -174026, -400, 1, 1.09, 1.487196, 9.0, 18.0, 1.09, 1.487196, 5.0, 19.0), (88, 'Duelist', 0, 40, 43, 30, 21, 11, 25, 4, 80, 6, 41, 300, 333, 33, 44, 33, 115, 81900, -71338, 258271, -3104, 0, 1.10, 1.188000, 9.0, 23.0, 1.10, 1.188000, 8.0, 23.5),каждый столбец описан в шапке и в принципе там всё понятно называется 2) lvlupgain.sql Цитата: INSERT INTO `lvlupgain` VALUES ('56', '346.0', '32.90', '0.37', '276.8', '26.30', '0.22', '144.0', '9.80', '0.14', '20'); INSERT INTO `lvlupgain` VALUES ('57', '1063.0', '54.50', '0.37', '850.4', '43.58', '0.22', '359.1', '19.40', '0.14', '40'); INSERT INTO `lvlupgain` VALUES ('58', '346.0', '32.90', '0.37', '276.8', '26.30', '0.22', '144.0', '9.80', '0.14', '20'); INSERT INTO `lvlupgain` VALUES ('88', '3061.8', '63.08', '0.37', '2755.6', '56.77', '0.22', '1155.6', '24.90', '0.14', '76'); каждый столбец описан в шапке и в принципе там всё понятно называется 3) class_list.sql Цитата: ('D_Artisan', 56, 53), ('D_Warsmith', 57, 56), ('D_NewClass', 58, 53), ('D_Maestro', 118, 57), тут всё просто, текущая профа и предыдущая обновляем таблици в вшей вабзе, лично я делаю это так: взял батник C:\server\tool\database_installer.bat копирнул, изменил: @echo off REM ############################################ REM ## You can change here your own DB params ## REM ############################################ REM MYSQL BIN PATH set mysqlBinPath=C:\Program Files\MySQL\MySQL Server 6.0\bin REM LOGINSERVER set lsuser= set lspass= set lsdb= set lshost=localhost REM GAMESERVER set gsuser= set gspass= set gsdb= set gshost=localhost REM ############################################ set mysqldumpPath="%mysqlBinPath%\mysqldump" set mysqlPath="%mysqlBinPath%\mysql" echo install.. echo lvlupgain.sql %mysqlPath% -h %gshost% -u %gsuser% --password=%gspass% -D %gsdb% < ../sql/lvlupgain.sql echo char_templates.sql %mysqlPath% -h %gshost% -u %gsuser% --password=%gspass% -D %gsdb% < ../sql/char_templates.sql echo class_list.sql %mysqlPath% -h %gshost% -u %gsuser% --password=%gspass% -D %gsdb% < ../sql/class_list.sql :end echo. echo Script complete. pause от что нам вылазит: [IMG] [IMG] на втором скрине вместо профы написанно "Граф. курсор" это уже клиентская часть открываем sysstring-e.dat находим "Граф. курсор" его id 305 303 a,Artisan\0 304 a,Warsmith\0 305 u,Граф. курсор\0 306 u,Очень быстро\0 можно конечно изменить "Граф. курсор" на "New Class" но это изменение будет видно скорее всего не тока в профе чара, но и в интерфейсе.. так что интересно как изменить с id 305 на id 2000 (там пустые значения) так что хочется услышать мнения как можно изменить id Автор неизвестен
    Автор темы: Supreme, 24 янв 2011, ответов - 0, в разделе: LineAge 2
  17. Supreme
    И так приступим открываем папку D:\server\gameserver\data\jscript\custom - и тут создаем папочку 9999_NPCBuffer далее тут же D:\server\gameserver\data\jscript\custom ищем файлик с названием __init__.py и у вас например там такое __all__ = [ '3995_echo', '4000_ShadowWeapons', '7000_HeroItems', '7782_Recz', '7785_HeroSF', '8000_RaidbossInfo', '7779_LazyNooblez', '6050_KetraOrcSupport', '6051_VarkaSilenosSupport' ] print "" print "importing custom data ..." for name in __all__ : try : __import__('data.jscript.custom.'+name,globals(), locals(), ['__init__'], -1) except: print "failed to import quest : ",name print "... done" print "" что вам нужно, ето вписать туда своего бафера и код должен получится следующий Код __all__ = [ '3995_echo', '4000_ShadowWeapons', '7000_HeroItems', '7782_Recz', '7785_HeroSF', '8000_RaidbossInfo', '7779_LazyNooblez', '6050_KetraOrcSupport', '6051_VarkaSilenosSupport', '9999_NPCBuffer' ] print "" print "importing custom data ..." for name in __all__ : try : __import__('data.jscript.custom.'+name,globals(), locals(), ['__init__'], -1) except: print "failed to import quest : ",name print "... done" print "" все бафера вписали теперь копируем етот файлик _init_.py и вставляем сюда D:\server\gameserver\data\jscript\custom\9999_NPCBuffer далее создаем здесь D:\server\gameserver\data\jscript\custom\9999_NPCBuffer файлики например 1.htm 2.htm ( ети файлы ето раззделы с бафами ) и так открываем штмл файлик через блокнот и пишем следующее Цитата <html> <body> <center> <img src="L2UI_CH3.herotower_deco" width=256 height=32> <font color="FF40FF">Бафер</font><br> <br> <font color="00FFBB">Список баффоф:</font><br> <tr><td><img src="L2UI.SquareWhite" width=260 height=1></tr></td><br> <tr><td></td><td><button value="Лечить - 1k" action="bypass -h Quest 9999_NPCBuffer 6" width=75 height=21 back="L2UI_ch3.Btn1_normalOn" fore="L2UI_ch3.Btn1_normal"></td></tr><br> <tr><td></td><td><button value="CP - 1k" action="bypass -h Quest 9999_NPCBuffer 69" width=75 height=21 back="L2UI_ch3.Btn1_normalOn" fore="L2UI_ch3.Btn1_normal"></td></tr><br> <tr><td><img src="L2UI.SquareWhite" width=260 height=1></tr></td><br> <tr> <td><button value="Баффы" action="bypass -h Quest 9999_NPCBuffer 4.htm" width=75 height=21 back="L2UI_ch3.Btn1_normalOn" fore="L2UI_ch3.Btn1_normal"></td><br> <td><button value="Танцы" action="bypass -h Quest 9999_NPCBuffer 2.htm" width=75 height=21 back="L2UI_ch3.Btn1_normalOn" fore="L2UI_ch3.Btn1_normal"></td><br> </tr> <tr> <td><button value="Песни" action="bypass -h Quest 9999_NPCBuffer 3.htm" width=75 height=21 back="L2UI_ch3.Btn1_normalOn" fore="L2UI_ch3.Btn1_normal"></td><br> <td><button value="Чанты" action="bypass -h Quest 9999_NPCBuffer 7.htm" width=75 height=21 back="L2UI_ch3.Btn1_normalOn" fore="L2UI_ch3.Btn1_normal"></td><br> </tr> <tr> <td><button value="Животные" action="bypass -h Quest 9999_NPCBuffer 8.htm" width=75 height=21 back="L2UI_ch3.Btn1_normalOn" fore="L2UI_ch3.Btn1_normal"></td><br> <td><button value="Дополнительно" action="bypass -h Quest 9999_NPCBuffer 9.htm" width=75 height=21 back="L2UI_ch3.Btn1_normalOn" fore="L2UI_ch3.Btn1_normal"></td><br> </tr> <tr> <tr><td><img src="L2UI.SquareWhite" width=260 height=1></tr></td><br> </center> </body> </html> Красный - надпись Вверху менюшки бафера Оранжевый - Надпись на картинке что бы зайти в список баффов Голубой - название штмл при нажатие на картинку вас будет перемещать в тот штмл который вы указали [IMG] Далее: настраиваем баффы открываем файлик 2.htm и вписываем например ето <html> <body> <center> <img src="L2UI_CH3.herotower_deco" width=256 height=32> <tr> <td><font color="00FFBB">Танцы (20k каждый)</font></td> </tr> <tr> <td> </td> </tr> <tr><td><img src="L2UI.SquareWhite" width=260 height=1></tr></td> <table width="260"> <tr> <td><button value="Warrior" action="bypass -h Quest 9999_NPCBuffer 27" width=75 height=21 back="L2UI_ch3.Btn1_normalOn" fore="L2UI_ch3.Btn1_normal"></td><br> <td><button value="Inspiration" action="bypass -h Quest 9999_NPCBuffer 28" width=75 height=21 back="L2UI_ch3.Btn1_normalOn" fore="L2UI_ch3.Btn1_normal"></td><br> </tr> <tr> <td><button value="Mystic" action="bypass -h Quest 9999_NPCBuffer 29" width=75 height=21 back="L2UI_ch3.Btn1_normalOn" fore="L2UI_ch3.Btn1_normal"></td><br> <td><button value="Fire" action="bypass -h Quest 9999_NPCBuffer 30" width=75 height=21 back="L2UI_ch3.Btn1_normalOn" fore="L2UI_ch3.Btn1_normal"></td><br> </tr> <tr> <td><button value="Fury" action="bypass -h Quest 9999_NPCBuffer 31" width=75 height=21 back="L2UI_ch3.Btn1_normalOn" fore="L2UI_ch3.Btn1_normal"></td><br> <td><button value="Concentration" action="bypass -h Quest 9999_NPCBuffer 32" width=75 height=21 back="L2UI_ch3.Btn1_normalOn" fore="L2UI_ch3.Btn1_normal"></td><br> </tr> <tr> <td><button value="Light" action="bypass -h Quest 9999_NPCBuffer 33" width=75 height=21 back="L2UI_ch3.Btn1_normalOn" fore="L2UI_ch3.Btn1_normal"></td><br> <td><button value="Aqua Guard" action="bypass -h Quest 9999_NPCBuffer 34" width=75 height=21 back="L2UI_ch3.Btn1_normalOn" fore="L2UI_ch3.Btn1_normal"></td><br> </tr> <tr> <td><button value="Earth Guard" action="bypass -h Quest 9999_NPCBuffer 35" width=75 height=21 back="L2UI_ch3.Btn1_normalOn" fore="L2UI_ch3.Btn1_normal"></td><br> <td><button value="Vampire" action="bypass -h Quest 9999_NPCBuffer 36" width=75 height=21 back="L2UI_ch3.Btn1_normalOn" fore="L2UI_ch3.Btn1_normal"></td><br> </table><br> <tr><td><img src="L2UI.SquareWhite" width=260 height=1></tr></td><br> <td><button value="Назад" action="bypass -h Quest 9999_NPCBuffer 1.htm" width=75 height=21 back="L2UI_ch3.Btn1_normalOn" fore="L2UI_ch3.Btn1_normal"></td><br> </center> </body> </html> Крастный - Надпись вверху списка денсов Оранжевый - Слово на картинке при нажатие на которую будет даватся Бафф Голубой - етот номер вам ещо понадобится обязательно смотрите что бы они шли попорядку Следующий Пункт у нас Добавление самих бафов : открываем D:\server\gameserver\data\jscript\custom\9999_NPCBuffer и открывайте файлик __init__.py там у вас должно быть пусто так что вписываем туда примерно такое import sys from net.sf.l2j.gameserver.model.actor.instance import L2PcInstance from java.util import Iterator from net.sf.l2j.gameserver.datatables import SkillTable from net.sf.l2j import L2DatabaseFactory from net.sf.l2j.gameserver.model.quest import State from net.sf.l2j.gameserver.model.quest import QuestState from net.sf.l2j.gameserver.model.quest.jython import QuestJython as JQuest qn = "9999_NPCBuffer" NPC=[70022] ADENA_ID=57 QuestId = 9999 QuestName = "NPCBuffer" QuestDesc = "custom" InitialHtml = "1.htm" print "importing custom: 9999: NPCBuffer" class Quest (JQuest) : def __init__(self,id,name,descr): JQuest.__init__(self,id,name,descr) def onEvent(self,event,st): htmltext = event count=st.getQuestItemsCount(ADENA_ID) if count < 150000 or st.getPlayer().getLevel() < 1 : htmltext = "<html><head><body>You dont have enough Adena,<br> or your level is too low. You must be 40 or higher.</body></html>" else: st.takeItems(ADENA_ID,0) st.getPlayer().setTarget(st.getPlayer()) if event == "2": st.takeItems(ADENA_ID,160000) st.getPlayer().useMagic(SkillTable.getInstance().getInfo(4360,3),False,False) st.getPlayer().restoreHPMP() st.getPlayer().useMagic(SkillTable.getInstance().getInfo(4359,3),False,False) st.getPlayer().restoreHPMP() st.getPlayer().useMagic(SkillTable.getInstance().getInfo(4358,3),False,False) st.getPlayer().restoreHPMP() st.getPlayer().useMagic(SkillTable.getInstance().getInfo(4357,2),False,False) st.getPlayer().restoreHPMP() st.getPlayer().useMagic(SkillTable.getInstance().getInfo(4354,4),False,False) st.getPlayer().restoreHPMP() st.getPlayer().useMagic(SkillTable.getInstance().getInfo(4353,6),False,False) st.getPlayer().restoreHPMP() st.getPlayer().useMagic(SkillTable.getInstance().getInfo(4350,4),False,False) st.getPlayer().restoreHPMP() st.getPlayer().useMagic(SkillTable.getInstance().getInfo(4347,6),False,False) st.getPlayer().restoreHPMP() return "4.htm" st.setState(COMPLETED) if event == "3": st.takeItems(ADENA_ID,80000) st.getPlayer().useMagic(SkillTable.getInstance().getInfo(4352,2),False,False) st.getPlayer().restoreHPMP() st.getPlayer().useMagic(SkillTable.getInstance().getInfo(4351,6),False,False) st.getPlayer().restoreHPMP() st.getPlayer().useMagic(SkillTable.getInstance().getInfo(4355,3),False,False) st.getPlayer().restoreHPMP() st.getPlayer().useMagic(SkillTable.getInstance().getInfo(4356,3),False,False) st.getPlayer().restoreHPMP() return "4.htm" st.setState(COMPLETED) if event == "4": st.takeItems(ADENA_ID,140000) st.getPlayer().useMagic(SkillTable.getInstance().getInfo(4346,4),False,False) st.getPlayer().restoreHPMP() st.getPlayer().useMagic(SkillTable.getInstance().getInfo(4342,2),False,False) st.getPlayer().restoreHPMP() st.getPlayer().useMagic(SkillTable.getInstance().getInfo(4343,3),False,False) st.getPlayer().restoreHPMP() st.getPlayer().useMagic(SkillTable.getInstance().getInfo(4344,3),False,False) st.getPlayer().restoreHPMP() st.getPlayer().useMagic(SkillTable.getInstance().getInfo(4345,3),False,False) st.getPlayer().restoreHPMP() st.getPlayer().useMagic(SkillTable.getInstance().getInfo(4349,2),False,False) st.getPlayer().restoreHPMP() st.getPlayer().useMagic(SkillTable.getInstance().getInfo(4348,6),False,False) st.getPlayer().restoreHPMP() return "4.htm" st.setState(COMPLETED) if event == "5": st.takeItems(ADENA_ID,400000) st.getPlayer().useMagic(SkillTable.getInstance().getInfo(4360,3),False,False) st.getPlayer().restoreHPMP() st.getPlayer().useMagic(SkillTable.getInstance().getInfo(4359,3),False,False) st.getPlayer().restoreHPMP() st.getPlayer().useMagic(SkillTable.getInstance().getInfo(4358,3),False,False) st.getPlayer().restoreHPMP() st.getPlayer().useMagic(SkillTable.getInstance().getInfo(4357,2),False,False) st.getPlayer().restoreHPMP() st.getPlayer().useMagic(SkillTable.getInstance().getInfo(4354,4),False,False) st.getPlayer().restoreHPMP() st.getPlayer().useMagic(SkillTable.getInstance().getInfo(4353,6),False,False) st.getPlayer().restoreHPMP() st.getPlayer().useMagic(SkillTable.getInstance().getInfo(4350,4),False,False) st.getPlayer().restoreHPMP() st.getPlayer().useMagic(SkillTable.getInstance().getInfo(4348,6),False,False) st.getPlayer().restoreHPMP() st.getPlayer().useMagic(SkillTable.getInstance().getInfo(4352,2),False,False) st.getPlayer().restoreHPMP() st.getPlayer().useMagic(SkillTable.getInstance().getInfo(4351,6),False,False) st.getPlayer().restoreHPMP() st.getPlayer().useMagic(SkillTable.getInstance().getInfo(4355,3),False,False) st.getPlayer().restoreHPMP() st.getPlayer().useMagic(SkillTable.getInstance().getInfo(4356,3),False,False) st.getPlayer().restoreHPMP() st.getPlayer().useMagic(SkillTable.getInstance().getInfo(4346,4),False,False) st.getPlayer().restoreHPMP() st.getPlayer().useMagic(SkillTable.getInstance().getInfo(4342,2),False,False) st.getPlayer().restoreHPMP() st.getPlayer().useMagic(SkillTable.getInstance().getInfo(4343,3),False,False) st.getPlayer().restoreHPMP() st.getPlayer().useMagic(SkillTable.getInstance().getInfo(4344,3),False,False) st.getPlayer().restoreHPMP() st.getPlayer().useMagic(SkillTable.getInstance().getInfo(4345,3),False,False) st.getPlayer().restoreHPMP() st.getPlayer().useMagic(SkillTable.getInstance().getInfo(4349,2),False,False) st.getPlayer().restoreHPMP() st.getPlayer().useMagic(SkillTable.getInstance().getInfo(4347,6),False,False) st.getPlayer().restoreHPMP() return "4.htm" st.setState(COMPLETED) if event == "6": st.takeItems(ADENA_ID,1000) st.getPlayer().restoreHPMP() return "1.htm" st.setState(COMPLETED) #Wind Walk if event == "7": st.takeItems(ADENA_ID,25000) st.getPlayer().useMagic(SkillTable.getInstance().getInfo(4342,2),False,False) st.getPlayer().restoreHPMP() return "5.htm" st.setState(COMPLETED) #Decrease Weight if event == "8": st.takeItems(ADENA_ID,25000) st.getPlayer().useMagic(SkillTable.getInstance().getInfo(4343,3),False,False) st.getPlayer().restoreHPMP() return "5.htm" st.setState(COMPLETED) if htmltext != event: st.setState(COMPLETED) st.exitQuest(1) return htmltext def onTalk (self,npc,player): st = player.getQuestState(qn) htmltext = "<html><head><body>I have nothing to say to you</body></html>" st.setState(STARTED) return InitialHtml QUEST = Quest(QuestId,str(QuestId) + "_" + QuestName,QuestDesc) CREATED=State('Start',QUEST) STARTED=State('Started',QUEST) COMPLETED=State('Completed',QUEST) QUEST.setInitialState(CREATED) for npcId in NPC: QUEST.addStartNpc(npcId) QUEST.addTalkId(npcId) Розовый - На какую страницу будет возращатся Бафер при использование етого баффа вам нужно поставить например 3.htm Синий - LvL Скила Серый - ID Баффа ( Нужный Вам ID вы сможете узнать здесь D:\server\gameserver\data\stats\skills ) Зеленый - число Адены котрое требует для баффа Жолтый - ID Baffer Красный - ID Итема который будет Братся при бафе Коричневый - Название Баффа Голубой - теперь вспоминаем те числа которые были при добавление Денсов ( смотрите сообщение выше обделено голубым цветом ) но я вылаживал там мануал как ставить денсы а нам нужны Бафы значит делаем ешо 1 шмл файлик и туда вписываем тоже самое вто и в денсах токо смените названиестранички Например 3.htm и место дансов пишите баффы ... и вот например вы пишите скил Wind Walk в новом файле сам вид баффа должен получится такой <td><button value="Wind Walk" action="bypass -h Quest 9999_NPCBuffer 7" width=75 height=21 back="L2UI_ch3.Btn1_normalOn" fore="L2UI_ch3.Btn1_normal"></td><br> И так далее у нас Запрос в Базу создаете файл например buffer.sql и туда вставляете ето (70022,30842,'Buffer',1,'Buffer',1,'NPC.a_trader_FElf',8.00,24.00,70,'female','L2Npc',40,3862,1493,11.85,2.78,40,43,30,21,20,10,0,0,1314,470,780,382,278,0,333,0, 0,0,55,132,NULL,0,1,0,'LAST_HIT'); Зеленый - ID бафера Красный - Имя бафера Жолтый - Титул Бафера Бафер будет иметь вид как трейдер НПЦ Alexis так далее ... октрываете Navicat нажимаете правой кнопкой по вашей папке в которой все таблицы выбираете Execute Batch File... нажимаете и указываете путь к вашему buffer.sql Кому помог отпишитесь!
    Автор темы: Supreme, 24 янв 2011, ответов - 1, в разделе: LineAge 2
  18. Supreme
    Читая здешние гайды некоторые вещи не понял, пришлось погуглить, но ничего не нашел. Пришлось подумать О.о 1. Выдаём админку персонажу. В таблице access_levels прописана информация об уровнях доступа к админ командам. Собсна чтобы получить админку, лезем в нашу базу, открываем таблицы character и accounts меняем access_level на 1. Это даст вашему персонажу полные права. 2. Ошибка логин сервера. Если логин сервер после подключения ГС пишет ExternalHostname: * InternalHostname: * А затем ругается на unknownhost: * То надо поправить конфиги обоих серверов и указать ExternalHostname = читаем комментарий, там написано какой IP писать InternalHostname = читаем комментарий, там написано какой IP писать 3. редактирование l2.ini. Клиент с lineage2.com. Сначало долго и упорно хотел редактировать l2.ini, но он отказывался запускать клиент. Кстати и досихпор не хочет запускать клиент с измененым l2.ini В итоге банальный вариант с хостс файлом. Ищем hosts в папке с виндой. Пишем в конце файла: ВАШ_IP L2authd.lineage2.com 4. startSQLAccountManager В последней ревизии не хочет создавать логин, почему хз, поиск ничего не дал. Хотя данные о клиентах считывает, а вот создавать в наглую не хочет. По дефолту включена опция создания логина через клиент. 5. ошибки Мною скомпиленый сервер выдаёт такие ошибки: Погуглив и попав на старый форум разрабов, они писали что у них не хватает каких-то кусков, поэтому эти ошибки они не могут поправить и эти ошибки есть у всех. 6. Настраиваем клиент с lineage2.com Качаем l2encdec v2.9.3 отсюда http://dstuff.l2wh.com/l2.php Заливаем в system, запускаем patcher, ждем. Качаем wildcard.rar отсюда http://fyyre.ivory-tower.de/, этот файл убирает ГГ... Закидываем в system, на всякий сделав бэкап оригинального. Качаем ct2pt4_l2.rar (updated: 22.11.09) отсюда http://fyyre.ivory-tower.de/ Копируем файл l2.exe из папки v2 в папку system. Далее выполняем пункт 3 и можем заходить в игру. Вообще-то сначало я думал сделать перевод гайда, но потом передумал.
    Автор темы: Supreme, 24 янв 2011, ответов - 0, в разделе: LineAge 2
  19. Supreme
  20. Supreme
    <?php //MSSQL settings $dbuser = 'пользователь'; $dbpasswd = 'пароль'; $base = "RF_WORLD"; $dbhost = "host"; # Private by Freelance Design Center # Script for GamerGrad Server define("_HOST_", "NEXT-A1B874E30F");# host define("_HOSTUSER_", "sa");# login define("_HOSTPASS_", "Max619");#password define("_WORLD_", "rf_world");#world $msconnect=mssql_connect(_HOST_,_HOSTUSER_,_HOSTPASS_); $res = mssql_query("SELECT * FROM "._WORLD_.".dbo.tbl_racebattle_log ORDER BY idx DESC "); $row = mssql_fetch_assoc($res); $resulty1 = mssql_query("SELECT Name,Lv FROM "._WORLD_.".dbo.tbl_base WHERE Serial = '".$row[bossserial0]."'"); $Name0 = trim(@MSSQL_RESULT($resulty1,0, "Name")); $Name10 = trim(@MSSQL_RESULT($resulty1,0, "Lv")); $resulty1 = mssql_query("SELECT Name,Lv FROM rf_world.dbo.tbl_base WHERE Serial = '".$row[bossserial1]."'"); $Name1 = trim(@MSSQL_RESULT($resulty1,0,"Name")); $Name11 = trim(@MSSQL_RESULT($resulty1,0, "Lv")); $resulty1 = mssql_query("SELECT Name,Lv FROM "._WORLD_.".dbo.tbl_base WHERE Serial = '".$row[bossserial2]."'"); $Name2 = trim(@MSSQL_RESULT($resulty1,0,"Name")); $Name12 = trim(@MSSQL_RESULT($resulty1,0, "Lv")); $resulty1 = mssql_query("SELECT PvpPoint FROM "._WORLD_.".dbo.tbl_pvporderview WHERE Serial = '".$row[bossserial0]."'"); $Name50 = trim(@MSSQL_RESULT($resulty1,0,"PvpPoint")); $resulty1 = mssql_query("SELECT PvpPoint FROM "._WORLD_.".dbo.tbl_pvporderview WHERE Serial = '".$row[bossserial1]."'"); $Name51 = trim(@MSSQL_RESULT($resulty1,0,"PvpPoint")); $resulty1 = mssql_query("SELECT PvpPoint FROM "._WORLD_.".dbo.tbl_pvporderview WHERE Serial = '".$row[bossserial2]."'"); $Name52 = trim(@MSSQL_RESULT($resulty1,0,"PvpPoint")); echo "<font face=Lucinda size=2 font color=#80FF80><p><big>Представители расы</big></p>"; echo "<p>Федерация Беллато: <b>".$Name0. "<b> Lvl:" .$Name10. "<b> PvP:" .(int)$Name50.'</b></p>'; echo "<p>Альянс Кора: <b>".$Name1."<b> Lvl:" .$Name11."<b> PvP:" .(int)$Name51.'</b></p>'; echo "<p>Империя Акретия: <b>".$Name2. "<b> Lvl:" .$Name12."<b> PvP:" .(int)$Name52.'</b></p></font>'; $conn=mssql_connect($dbhost,$dbuser,$dbpasswd); $selected=mssql_select_db('RF_World', $conn); $query ='SELECT t1.Name,t1.Class,t1.Lv,t1.Gold, t1.Serial,t2.PvpPoint FROM tbl_base AS t1, tbl_pvporderview AS t2 WHERE t1.Serial = t2.Serial and DeleteName = "*" and AccountSerial < "2000000000" ORDER BY t2.PvpPoint DESC, t1.Lv desc'; $result = mssql_query($query); echo ' <p>'; echo " <p>\n"; echo "\n"; echo 'Рейтинг по ПвП очкам'; echo ' <p>'; echo '<font face=Lucinda>'; echo '<center><table border=0 cellSpacing=3 align=center'; echo '<tr><td width="120"><center><font face=Lucinda size=2>Место</td><td><font face=Lucinda size=2><b>Игровой ник</td><td><font face=Lucinda size=2><b>Золото</td><td><font face=Lucinda size=2><b>Очки PvP</td><td><font face=Lucinda size=2><b>Класс</td><td><font face=Lucinda size=2><b>Уровень</a></td></b></font>'; for($i=0;$i < 30;++$i) { $row = mssql_fetch_row($result); echo '<tr><td width=120 ><center><font face=Lucinda size=2>'; echo $i + 1; echo '</font></td><td width=100><font face=Lucinda size=2 color=#FF0013><b><tb>'; echo $row[0]; echo '</font></td><td width=100 ><font face=Lucinda size=2 color=#FF0013><b><tb>'; echo $row[3]; echo '</font></td><td width=100 ><font face=Lucinda size=2 color=#FF0013><b><tb>'; echo (int)$row[5]; echo '</B></font></tb></td><td width=200 ><font face=Lucinda size=2 font >'; if($row[1] == 0){ echo '<font face=Lucinda size=2 font color=#80FF80></font>'; } if($row[1] == ASB0){ echo 'Accretia Specialist'; } if($row[1] == CWB0){ echo 'Cora Warrior'; } if($row[1] == ARS1){ echo 'Accretia Striker'; } if($row[1] == BWS1){ echo 'Bellato Berserk'; } if($row[1] == BWF1){ echo 'Bellato Commando'; } if($row[1] == BWF2){ echo 'Bellato Miller'; } if($row[1] == BRF1){ echo 'Bellato Diversant'; } if($row[1] == BRF2){ echo 'Bellato Sniper'; } if($row[1] == BFF1){ echo 'Bellato Psionik'; } if($row[1] == BFF2){ echo 'Bellato Magician'; } if($row[1] == BSF1){ echo 'Bellato Driver'; } if($row[1] == BSF2){ echo 'Bellato Craftsman'; } if($row[1] == BWS2){ echo 'Bellato Barbarian'; } if($row[1] == BWS3){ echo 'Bellato Defender'; } if($row[1] == BRS1){ echo 'Bellato Observer'; } if($row[1] == BRS2){ echo 'Bellato Guard'; } if($row[1] == BRS3){ echo 'Bellato Spy'; } if($row[1] == BFS1){ echo 'Bellato mag(волшебник)'; } if($row[1] == BFS2){ echo 'Bellato medium'; } if($row[1] == BFS3){ echo 'Bellato Wonder(Чудотворец)'; } if($row[1] == BSS1){ echo 'Bellato Armor Rider'; } if($row[1] == BSS2){ echo 'Bellato Metal smith'; } if($row[1] == CRB0){ echo 'Cora Ranger'; } if($row[1] == AWF1){ echo 'Accretia Destroyer'; } if($row[1] == AWF2){ echo 'Accretia Gladiator'; } if($row[1] == ARF1){ echo 'Accretia Canonnair'; } if($row[1] == ARF2){ echo 'Accretia Spy(лазутчик)'; } if($row[1] == ASF1){ echo 'Accretia Engineer'; } if($row[1] == AWS1){ echo 'Accretia Punisher'; } if($row[1] == AWS2){ echo 'Accretia Hedge-hopper(Штурмовик)'; } if($row[1] == AWS3){ echo 'Accretia Landsknecht'; } if($row[1] == ARS2){ echo 'Accretia Dementer'; } if($row[1] == ARS3){ echo 'Accretia Phantom'; } if($row[1] == ASF1){ echo 'Accretia Block-mechanic'; } if($row[1] == ASF2){ echo 'Accretia Leader of block(Лидер звена)'; } if($row[1] == CFB0){ echo 'Cora Spiritualist'; } if($row[1] == CWF1){ echo 'Cora Knight'; } if($row[1] == CWF2){ echo 'Cora Champion'; } if($row[1] == CRF1){ echo 'Cora Archer'; } if($row[1] == CRF2){ echo 'Cora Hunter'; } if($row[1] == CFF1){ echo 'Cora Caster'; } if($row[1] == CFF2){ echo 'Cora Summoner'; } if($row[1] == CSF1){ echo 'Cora CraftsMan'; } if($row[1] == CWS1){ echo 'Cora Templar(храмовник)'; } if($row[1] == CWS2){ echo 'Cora Keeper'; } if($row[1] == CWS3){ echo 'Cora Dark Knight'; } if($row[1] == CRS1){ echo 'Cora Hireling(Наемник)'; } if($row[1] == CRS2){ echo 'Cora Apostatenator(отступник)'; } if($row[1] == CRS3){ echo 'Cora Assasin'; } if($row[1] == CFS1){ echo 'Cora Warlock'; } if($row[1] == CFS2){ echo 'Cora Dark Priest'; } if($row[1] == CFS3){ echo 'Cora Grazier'; } if($row[1] == CSS1){ echo 'Cora Artist'; } if($row[1] == CSB0){ echo 'Cora Specialist'; } if($row[1] == BWB0){ echo 'Bellato Warrior'; } if($row[1] == BRB0){ echo 'Bellato Ranger'; } if($row[1] == BFB0){ echo 'Bellato Spiritualist'; } if($row[1] == BSB0){ echo 'Bellato Specialist'; } if($row[1] == AWB0){ echo 'Accretia Warrior'; } if($row[1] == ARB0){ echo 'Accretia Ranger'; } if($row[1] == AFB0){ echo 'Accretia Spiritualist'; } echo '</b></font></td><td width=60 ><b><font face=Lucinda size=2>'; echo $row[2]; echo'</td></tr>'; echo '<tr><td height=1></td><td></td><td ></td><td ></td><td><td ><td ></td>'; } echo '</table>'; echo ''; echo ' <p>'; echo ''; echo ''; echo '<br>'; $conn=mssql_close(); ?>
    Автор темы: Supreme, 24 янв 2011, ответов - 2, в разделе: RF Web