Перейти к содержанию

Gaikotsu

Постоялец
  • Публикаций

    1576
  • Зарегистрирован

  • Посещение

  • Победитель дней

    63
  • Отзывы

    0%

Весь контент Gaikotsu

  1. исходный текст программы, в данном случае сервера. работать с ними можно и в блокноте, но лучше в специализированных IDE, я к примеру предпочитаю Eclipse, некоторые IntelliJ IDEA. инфу по настройке и работе в IDE на форуме насколько помню уже выкладывали. чем IDE удобны, дак это тем что они многое из работы берут на себя - подсветка и проверка синтаксиса на лету, автокомплит кода, проверки разные, та же компиляция и сборка кода в jar'ы. или даже к примеру запуск сервера прямо в IDE и правка кода прямо на лету, когда все изменения в нем сразу же вносятся в запущенный сервер.
  2. офигеть неужели в пвсофте даже даже no_landing зоны не реализованы, что ради такого придется в ядро лезть?
  3. выше ж вон уже написали что там тупо захардкодены в ядре требования у этих скиллов - так что удаляй/не удаляй кондишны в скилле - серву на это будет пофигу.
  4. Как ты над г...м не колдуй - конфеткой оно все равно не станет. Лучше не теряй зря времени и возьми какую-то сборку, у которой есть исходники и с ней работай. А пытаться что-то делать что-то через декомпил/компил - это заведомо тупиковый путь. Ладно еще маленькие и простые классы, в них достатчно просто заметить и выправить косяки внесенные декомпилом. Но вот когда тебе потребуется внести правку в какой-то большой класс (ну к примеру тот же класс Player или как там в у тебя в сборке называется класс игрока), то вот тогда то ты и познаешь все глубины ада. Сервер у тебя волне может и запускаться и работать, но вот в любой момент может вылезти какой-нибудь косяк, внесенный декомпилом и который ты не заметил.
  5. ActionName в клиенте правь - в нужных действиях необходимо добавить ид твоего нового саммона, чтобы это действие у него появилось З.Ы. скиллы саммона - тоже действия.
  6. что мешает использовать те же самые проверки что делаются при создании персонажа? сэмпл if (!Util.isMatchingRegexp(newName, ServerConfig.CHAR_NAME_TEMPLATE)) { player.sendMessage("Вы ввели некорректное имя."); return false; } @Setting(name = "CharNameTemplate") public static String CHAR_NAME_TEMPLATE = "[A-Za-z0-9\u0410-\u042f\u0430-\u044f]{2,16}"; public static boolean isMatchingRegexp(String text, String template) { Pattern pattern = null; try { pattern = Pattern.compile(template); } catch (PatternSyntaxException e) // invalid template { e.printStackTrace(); } if (pattern == null) return false; Matcher regexp = pattern.matcher(text); return regexp.matches(); }
  7. только вот в итоге логика вычитания мп для этого скилла в результате этой правки будет сломана - там именно что надо именно такой эффект снятия мп - с зависимостью от уровня так что по сути все что надо было - это урезать значения в #mp, а так же в аналогичных таблицах для точеных уровней офф данные skill_begin skill_name = [s_vicious_stance1] /* [비셔스 스탠스] */ skill_id = 312 level = 1 operate_type = T magic_level = 20 self_effect = {} effect = {{c_mp_by_level;-0.8;5};{p_critical_damage;{all};35;diff}} mp_consume1 = 4 reuse_delay = 0 target_type = none next_action = none abnormal_visual_effect = {ave_none} ride_state = {@ride_none} multi_class = 0 olympiad_use = 1 skill_end skill_begin skill_name = [s_vicious_stance2] /* [비셔스 스탠스] */ skill_id = 312 level = 2 operate_type = T magic_level = 24 self_effect = {} effect = {{c_mp_by_level;-0.8;5};{p_critical_damage;{all};48;diff}} mp_consume1 = 5 reuse_delay = 0 target_type = none next_action = none abnormal_visual_effect = {ave_none} ride_state = {@ride_none} multi_class = 0 olympiad_use = 1 skill_end skill_begin skill_name = [s_vicious_stance3] /* [비셔스 스탠스] */ skill_id = 312 level = 3 operate_type = T magic_level = 28 self_effect = {} effect = {{c_mp_by_level;-0.8;5};{p_critical_damage;{all};64;diff}} mp_consume1 = 5 reuse_delay = 0 target_type = none next_action = none abnormal_visual_effect = {ave_none} ride_state = {@ride_none} multi_class = 0 olympiad_use = 1 skill_end skill_begin skill_name = [s_vicious_stance4] /* [비셔스 스탠스] */ skill_id = 312 level = 4 operate_type = T magic_level = 32 self_effect = {} effect = {{c_mp_by_level;-0.8;5};{p_critical_damage;{all};84;diff}} mp_consume1 = 6 reuse_delay = 0 target_type = none next_action = none abnormal_visual_effect = {ave_none} ride_state = {@ride_none} multi_class = 0 olympiad_use = 1 skill_end skill_begin skill_name = [s_vicious_stance5] /* [비셔스 스탠스] */ skill_id = 312 level = 5 operate_type = T magic_level = 36 self_effect = {} effect = {{c_mp_by_level;-0.8;5};{p_critical_damage;{all};109;diff}} mp_consume1 = 7 reuse_delay = 0 target_type = none next_action = none abnormal_visual_effect = {ave_none} ride_state = {@ride_none} multi_class = 0 olympiad_use = 1 skill_end skill_begin skill_name = [s_vicious_stance6] /* [비셔스 스탠스] */ skill_id = 312 level = 6 operate_type = T magic_level = 40 self_effect = {} effect = {{c_mp_by_level;-0.8;5};{p_critical_damage;{all};139;diff}} mp_consume1 = 7 reuse_delay = 0 target_type = none next_action = none abnormal_visual_effect = {ave_none} ride_state = {@ride_none} multi_class = 0 olympiad_use = 1 skill_end skill_begin skill_name = [s_vicious_stance7] /* [비셔스 스탠스] */ skill_id = 312 level = 7 operate_type = T magic_level = 43 self_effect = {} effect = {{c_mp_by_level;-0.8;5};{p_critical_damage;{all};166;diff}} mp_consume1 = 8 reuse_delay = 0 target_type = none next_action = none abnormal_visual_effect = {ave_none} ride_state = {@ride_none} multi_class = 0 olympiad_use = 1 skill_end skill_begin skill_name = [s_vicious_stance8] /* [비셔스 스탠스] */ skill_id = 312 level = 8 operate_type = T magic_level = 46 self_effect = {} effect = {{c_mp_by_level;-0.8;5};{p_critical_damage;{all};196;diff}} mp_consume1 = 9 reuse_delay = 0 target_type = none next_action = none abnormal_visual_effect = {ave_none} ride_state = {@ride_none} multi_class = 0 olympiad_use = 1 skill_end skill_begin skill_name = [s_vicious_stance9] /* [비셔스 스탠스] */ skill_id = 312 level = 9 operate_type = T magic_level = 49 self_effect = {} effect = {{c_mp_by_level;-0.8;5};{p_critical_damage;{all};229;diff}} mp_consume1 = 9 reuse_delay = 0 target_type = none next_action = none abnormal_visual_effect = {ave_none} ride_state = {@ride_none} multi_class = 0 olympiad_use = 1 skill_end skill_begin skill_name = [s_vicious_stance10] /* [비셔스 스탠스] */ skill_id = 312 level = 10 operate_type = T magic_level = 52 self_effect = {} effect = {{c_mp_by_level;-0.8;5};{p_critical_damage;{all};266;diff}} mp_consume1 = 10 reuse_delay = 0 target_type = none next_action = none abnormal_visual_effect = {ave_none} ride_state = {@ride_none} multi_class = 0 olympiad_use = 1 skill_end skill_begin skill_name = [s_vicious_stance11] /* [비셔스 스탠스] */ skill_id = 312 level = 11 operate_type = T magic_level = 55 self_effect = {} effect = {{c_mp_by_level;-0.8;5};{p_critical_damage;{all};306;diff}} mp_consume1 = 10 reuse_delay = 0 target_type = none next_action = none abnormal_visual_effect = {ave_none} ride_state = {@ride_none} multi_class = 0 olympiad_use = 1 skill_end skill_begin skill_name = [s_vicious_stance12] /* [비셔스 스탠스] */ skill_id = 312 level = 12 operate_type = T magic_level = 58 self_effect = {} effect = {{c_mp_by_level;-0.8;5};{p_critical_damage;{all};349;diff}} mp_consume1 = 11 reuse_delay = 0 target_type = none next_action = none abnormal_visual_effect = {ave_none} ride_state = {@ride_none} multi_class = 0 olympiad_use = 1 skill_end skill_begin skill_name = [s_vicious_stance13] /* [비셔스 스탠스] */ skill_id = 312 level = 13 operate_type = T magic_level = 60 self_effect = {} effect = {{c_mp_by_level;-0.8;5};{p_critical_damage;{all};379;diff}} mp_consume1 = 11 reuse_delay = 0 target_type = none next_action = none abnormal_visual_effect = {ave_none} ride_state = {@ride_none} multi_class = 0 olympiad_use = 1 skill_end skill_begin skill_name = [s_vicious_stance14] /* [비셔스 스탠스] */ skill_id = 312 level = 14 operate_type = T magic_level = 62 self_effect = {} effect = {{c_mp_by_level;-0.8;5};{p_critical_damage;{all};410;diff}} mp_consume1 = 12 reuse_delay = 0 target_type = none next_action = none abnormal_visual_effect = {ave_none} ride_state = {@ride_none} multi_class = 0 olympiad_use = 1 skill_end skill_begin skill_name = [s_vicious_stance15] /* [비셔스 스탠스] */ skill_id = 312 level = 15 operate_type = T magic_level = 64 self_effect = {} effect = {{c_mp_by_level;-0.8;5};{p_critical_damage;{all};443;diff}} mp_consume1 = 12 reuse_delay = 0 target_type = none next_action = none abnormal_visual_effect = {ave_none} ride_state = {@ride_none} multi_class = 0 olympiad_use = 1 skill_end skill_begin skill_name = [s_vicious_stance16] /* [비셔스 스탠스] */ skill_id = 312 level = 16 operate_type = T magic_level = 66 self_effect = {} effect = {{c_mp_by_level;-0.8;5};{p_critical_damage;{all};475;diff}} mp_consume1 = 13 reuse_delay = 0 target_type = none next_action = none abnormal_visual_effect = {ave_none} ride_state = {@ride_none} multi_class = 0 olympiad_use = 1 skill_end skill_begin skill_name = [s_vicious_stance17] /* [비셔스 스탠스] */ skill_id = 312 level = 17 operate_type = T magic_level = 68 self_effect = {} effect = {{c_mp_by_level;-0.8;5};{p_critical_damage;{all};509;diff}} mp_consume1 = 13 reuse_delay = 0 target_type = none next_action = none abnormal_visual_effect = {ave_none} ride_state = {@ride_none} multi_class = 0 olympiad_use = 1 skill_end skill_begin skill_name = [s_vicious_stance18] /* [비셔스 스탠스] */ skill_id = 312 level = 18 operate_type = T magic_level = 70 self_effect = {} effect = {{c_mp_by_level;-0.8;5};{p_critical_damage;{all};542;diff}} mp_consume1 = 13 reuse_delay = 0 target_type = none next_action = none abnormal_visual_effect = {ave_none} ride_state = {@ride_none} multi_class = 0 olympiad_use = 1 skill_end skill_begin skill_name = [s_vicious_stance19] /* [비셔스 스탠스] */ skill_id = 312 level = 19 operate_type = T magic_level = 72 self_effect = {} effect = {{c_mp_by_level;-0.8;5};{p_critical_damage;{all};576;diff}} mp_consume1 = 14 reuse_delay = 0 target_type = none next_action = none abnormal_visual_effect = {ave_none} ride_state = {@ride_none} multi_class = 0 olympiad_use = 1 skill_end skill_begin skill_name = [s_vicious_stance20] /* [비셔스 스탠스] */ skill_id = 312 level = 20 operate_type = T magic_level = 74 self_effect = {} effect = {{c_mp_by_level;-0.8;5};{p_critical_damage;{all};609;diff}} mp_consume1 = 14 reuse_delay = 0 target_type = none next_action = none abnormal_visual_effect = {ave_none} ride_state = {@ride_none} multi_class = 0 olympiad_use = 1 skill_end
  8. кстати мне интересно, а в пвсофтах и других подобных сборках вобще существуют хоть сколько-то адекватно написанные бафферы, в которых бы не приходилось расписывать вручную в хтмлках ссылки на баффы, указывать в каких-то там конфигах какие-то доп. разрешенные баффы и все такое?
  9. или в свойствах самого моба, т.к. во многих сборках подобный механизм уже заложен
  10. насчет первого - ожидается числовое значение, а получено пустое, т.е. значение параметра не задано. ну а насчет второго правильно сказали
  11. Gaikotsu

    L2-Update Начало

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

    L2-Update Начало

    не это ли взято за основу - https://github.com/VISTALL/game-updater
  13. Gaikotsu

    реальное время

    берешь System.currentTimeMillis() и вперед
  14. добавь стату, лимитирующую урон и проверяй ее значение в методах расчета физ/маг урона. если она больше 0 и урон наносится игроку - лимитировать урон в методе до значения указанного в стате. ну а саму стату давать пассивкой/баффом.
  15. необязательно разный уровень - просто одинаковый стэктайп у них, вот и не ложатся вместе
  16. все просто - сообщение шлется до вызова reduceCurrentHp, так что еще и его копать на эту тему не знаю как в aCis, но в том же овере для этого служит метод displayGiveDamageMessage, обявленный изначально в Creature и который вполне можно переопределить в наследных классах, по аналогии с reduceCurrentHp
  17. ну я вобщем-то большей частью прокомментировал предложение Evolution
  18. может потому-что реализовывать подобное, одевая что-то принудительно из брони и запрещая при этом одевать что-то еще взамен - это верх маразма? если уж реализовывать, то просто подменой внешнего вида одетой брони/оружия. это легко делается при помощи простейших манипуляций с передаваемыми в CI/UI данными об одетых вещах. правда фиг знает переварит ли корректно такое клиент интерлюда, тот же хф легко это позволяет, и в итоге поулучаем вполне кошерный аналог Shape Shifting (официально введенный нцсофтом начиная с хроник Glory Days метод смены внешнего вида экипировки) пример простейшей реализации в хф - лично я это все запилил за один день, притом большую часть этого времени потратил на "красивости", т.е. на оформление самого сервиса в коммюнити - сама техническая реализация подмены вида и хранения данных о ней делается дай бог за полчаса-час максимум. если в интерлюде и не будет полноценно такое работать, то уж в корявом виде то точно - это когда при подмене будет меняться не только внешний вид, но и название+описание одетого предмета.
  19. да... некоторые знают толк в извращениях...
  20. ---> <table name="#rate">1.02 1.04 1.06 1.08 1.10 1.12 1.14 1.16 1.18 2.0</table> З.Ы. тенденция вопросов удручает...
  21. или обычные трансформы или же банальный бафф с абнормалом внешнего вида, меняющим вид брони на один из этих трех вариантов скорее всего именно второе, если все скиллы у персонажа остаются.
  22. в ошибках вроде все ясно и понятно написано 9901 - как вариант сам скилл некорретно описан 9801 - такого скилла вобше не существует 0 - тут уж смотри указанные предметы, судя по всему зачем-то ид скилла задано со значением 0. а вобще тут экстрасенсов нет хочешь чтобы помогли - выкладывай и проблемный код
  23. Gaikotsu

    extractable_items.xml

    что мешает изучить парсер этих данных в сервере на тему допустимой структуры? даже если нет исходников, то в таком простом случае и декомил поможет прояснить.
  24. правкой dat'ников ты это не решишь - ограничения этого глубже, толи в одном из u-файлов, толи в одной из dll
×
×
  • Создать...