Логин:
Пароль:
Настройки
http://lfforever.ru/design/black.css http://lfforever.ru/design/ds_dw.css http://lfforever.ru/design/xmas.css
Присоединяйся к каналу LFF в Discord!
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
Фан Форум для LF'айтеров » Игрострой » Модострой LF2 » Вопросы к Мастерам (Спрашиваем...^^!)
Вопросы к Мастерам
17.04.13 13:26 | #1

Репутация: 416
Постов: 8072
Вопросы и Ответы - Продолжение!


Задавая вопрос:
1. Убедитесь, что ответа на вопрос нет в Базе Знаний
2. Убедитесь, что вы изучили Zapashok's Guide
2. Убедитесь, что этот вопрос не оговаривался ранее в данной теме
3. Подумайте, имеет ли вопрос смысл


Не выдаются ответы на:
1. Посты, с запросами делать что-то за вас. Есть множество модов с открытым кодом.
2. Идеи реализации. Так сказать фокусник никогда не выдает своих секретов.
3. Вопрос с анормальным сленгом. Никто не будет брать словари, чтобы понять что вы хотите. Излагайте мысль четко, детально и подробно.
4. Запросы разбираться в различных чужих модах. Максимум - на примерах своих же, и не всегда.
5. Вопросы из разряда "догадайтесь, где я ошибся". Всегда выкладывайте dat-файлы.


Happy Coding!

11.08.14 18:06 | #241

Репутация: 0
Постов: 10
Всем большое спасибо, я разобрался, оказывается у меня с пдк какие-то проблемы были. Перекачал, все встало на свои места.
З.Ы.: главное, чтобы код с доп. кадрами были между <bmp_begin> и <bmp_end>.

12.08.14 09:07 | #242

Репутация: 12
Постов: 362
Эспад, Окей, потом не плачь что у тебя постоянно игра вылетать будет =/
Я с пдк уже не первый год работаю.

ERKD team togever NTLH FOREVER!
02.10.14 07:30 | #243

Репутация: 165
Постов: 672
Чет я не понял...
Как направлять призываемые объекты вверх/вниз по оси z? xD

[ Маленький Фриз говорит: это сообщение было отредактировано!]
02.10.14 13:14 | #244

Репутация: 416
Постов: 8072
Цитата
Как направлять призываемые Как направлять призываемые объекты вверх/вниз по оси z? xD объекты вверх/вниз по оси z? xD

Никак.
Ты можешь прижать объект к любому краю движением по Z.
А уже от края рассчитать нужное расстояние до середины опять движением.
Минус механики в том, что тебе нужно знать эти расстояния примерно, т.к. делая разные карты мы делаем разные расстояния.
Чтобы объект не уползал ПОСЛЕ прижатия к краю по Z (а он это любит), то лучше заблочить другие координаты через dvx: 550 и dvy: 550, чтобы наверняка.
Не помню только что лучше использовать, dvz или Uj от снарядов. В общем примерно так.

Я метод не практиковал, но решение проблемы всегда представлял именно так.
Happy Coding!

02.10.14 13:17 | #245

Репутация: 165
Постов: 672
Archer-Dante, да не, имеется в виду, боллы в стандартном лф можно направлять вверх/вниз, тупо зажав соответствующую клавишу. У меня же, некоторые направляются, а некоторые нет...
02.10.14 13:20 | #246

Репутация: 416
Постов: 8072
Найди в них и их призыве отличия.
02.10.14 13:21 | #247

Репутация: 165
Постов: 672
Archer-Dante, нашел бы, не писал бы. Ладно, буду еще искать...
02.10.14 13:22 | #248

Репутация: 416
Постов: 8072

02.10.14 16:30 | #249

Репутация: 416
Постов: 8072
Простейший эксперимент:

Меняем местами ID у снарядов firen_ball.dat и firzen_ball.dat, то есть 210 и 223
Заходим в Firzen.dat и в 265+ кадрах в 2-х местах меняем 223 на 210 ид.
Снаряды стали поворачиваться.

Итог:
Блокирование передивижения снарядов прописано в EXE, кроме того оно должно быть спецэфично привязано к каждому ИД, скорее всего, так как у меня вспоминается только firzen_ball, bat_ball с такой функцией.
ИД этих спецэфических особенностей 223 и 224.

PS:
Проверь ИД своих снарядов и попробуй сменить на другое.
Кроме того ты на алькартерском движке, он может иметь свои заносы.
Надеюсь я решил твой вопрос.
Happy Coding~

03.10.14 13:34 | #250

Репутация: 165
Постов: 672
Archer-Dante, спасибо за помощь, но дело, как оказалось, не в этом -__-
3005 не направляется.

03.10.14 15:47 | #251

Репутация: 416
Постов: 8072
И вот как я должен был догадаться, что у тебя такой код?
Без дат-файлов больше не буду отвечать, вот правда


Юзай state: 3000 и wait: 0 на первом кадре. Делов-то.

13.11.14 22:14 | #252

Репутация: 0
Постов: 22
Может я не по теме, но после установки Power Development Kit   http://lfforever.ru/index/0-94 на ЛФ2   главный босс, точнее id 52 потерял искусственный интеллект, повышенную регенерацию маны. теперь он просто дерётся как обычный bandit и использует свои приёмы так редко, что можно сказать делает из него просто более сильного бандита. Мне нравится PDK, но из-за id 52 проходить 5-5 этап на crazy не так экстремально. прошу излечить в PDK всеми любимого Julianа.
13.11.14 22:22 | #253

Репутация: 416
Постов: 8072
daedr, к сожалению в PDK это не излечат, т.к. настоящий разработчик этой штуки - китаец, который даже не бывает на LFF и далек от нашего великого и могучего :)

Тем не менее, я занимаюсь медленной разработкой Neora, которая основана на PDK, но теперь уже под нашей редакцией. Там, скорее всего, данный ляп ещё есть (я о нем впервые слышу), но всё же это может быть будет исправлено однажды.

От оригинального PDK этого врядли стоит ждать вообще. Последнее обновление было в марте 2014, больше новостей не было от разработчика.

И маленький вопрос: а зачем вы проходите игру именно через PDK? :)

13.11.14 22:43 | #254

Репутация: 0
Постов: 22
в PDK можно изменить броню любому из персонажей. я этим делом сильно не увлекаюсь, но люблю экспериментировать с прохождением на crazy. к тому в PDK можно сделать приём который будет стоить например -250 mp и + 20 hp. для меня это большое отличие от оригинала, где сложно без бутылочки как либо выжить на crazy. в последнее время я пытался установить LDK ,где присутствует возможность изменять регенерацию mp, hp ,но из-за незнания у меня ничего не вышло. Я надеюсь, что кто-либо из Коллектива LFF мне поможет.
13.11.14 23:39 | #255

Репутация: 416
Постов: 8072
daedr, LDK уже сейчас не развивается, он остается на том этапе что есть сейчас (скорее всего).

Цитата
-250 mp и + 20 hp

минус 250 mp и плюс 20 хп после приема?
такое вполне возможно при оригинале тоже
просто вызывается объект, который наносит урон персонажу тут же, отрицательный
injury: -100, например
тогда будет прибавление к здоровью.
Хотя это не идеальный вариант, но рабочий.

А если имелось в виду,что снимает 20 хп, а не прибавляет, то в оригинале hp отнимали через mp тоже. Например как в D^J Файрена.

Цитата
можно изменить броню любому из персонажей

в целом да, в LDK тоже можно менять броню, регенерации и т.д.
но это там сложнее, чем PDK.

Если вопросы касательно DC или использования какого-то движка - можем и помочь.
Но если что-то исправлять \ менять в самом движке - это уже долгий процесс, очень.

14.11.14 00:03 | #256

Репутация: 0
Постов: 22
я понимаю, что в оригинале можно пополнять жизни, но, если вы прибавите с приёма, например, 200 hp персонажу, когда у него 400 из 500 жизней, то шкала жизней выйдет за рамки так как жизней уже 600,а не максимальное возможное(500 hp). я был бы признателен вам, если вы объясните некоторые моменты в использовании LDK. 1) каким образом можно изменить броню любому из персонажей. 2)регенерация hp и mp для каждого из персонажей (это означает, что жизни которые в оригинале не восстанавливаются ;остановилась регенерация hp на 200 из 500 к примеру) я буду признателен вам, Archer-Dante, за маленький урок для меня.
14.11.14 00:10 | #257

Репутация: 0
Постов: 22
5. Опциональные расширения - редактируются через DLL:
- установка желаемым ID брони как у Louis, Knight или Julian
- добавление существующих AI к любым желаемым ID.
- установка желаемой скорости восстановления здоровья и маны с привязкой к ID.
-Можно полностью выключить регенирацию mp в lf2.By me. Как это сделать, спрашивайте меня
в LDK важные моменты. не знаю каким образом это сделать.

14.11.14 01:05 | #258

Репутация: 416
Постов: 8072
Цитата
1) каким образом можно изменить броню любому из персонажей

она не меняется там так же гибко как в PDK\Neora
в LDK лишь можно присвоить любую существующую броню типа брони Knight другому ID персонажа

Чтобы понять как работать с DLL-модификациями движков (LDK \ Neora), вы можете посмотреть более старый видеоурок здесь. Там описано как установить компилятор Masm32 + среду разработки RadASM 2, и как их использовать, чтобы что-то сделать в длл.
Ознакомьтесь с уроком для понимания базового минимума.
DLL написан на ассемблере (а именно разновидность - Masm), поэтому для полного понимания что вы делаете придется подучить его. Но если не хочется заморачиваться углубленным изучением, то достаточно будет после видео почитать следующее, что напишу.

Так же замечу, что в видео говорится об оригинальном лф2. Работа с длл на оригинальном лф2 и на LDK одинаковая, но сам DLL может немного отличаться. (или даже не работать так, как хотелось бы. например кто-то говорил что регенерация маны не редактируется на LDK)

В файлах исходников DLL есть один из файлов - generic.inc
Всё, что связано с HP и MP там находится.
В этом файле есть процедуры, выглядят они как ИМЯ_PROC
Например часть, отвечающая за реген здоровья выглядит так

Код
Health proc
               
        MOV ECX,DWORD PTR DS:[EBX+EDI*4h+194h]
        MOV EDX,DWORD PTR DS:[ECX+368h]        
        MOV EDX,DWORD PTR DS:[EDX+6F4h]
        cmp edx,55 ; проверяет, что если ID равен 55
        je short @HP_check_1 ; если равно, то переходим в обработку хп по НАШИМ правилам
               
        jmp short @HP_normal ;а если ваш ID не является особенным, то пусть обрабатывается как обычно
               
@HP_check_1:
        cmp dword ptr ds:[eax+300h],250 ; сравнивает темное здоровье с 250
        jl short @HP_LowDarkRed_1 ; если меньше 250, то идем в "HP_LowDarkRed_1"
        cmp dword ptr ds:[eax+2fch],250 ; сравнивает светлое здоровье с 250
        jl short @HP_LowRed_1 ; если меньше 250, то идем в "HP_LowRed_1"
        jmp short @HP_normal ; если условия выше не выполнялись, то просто сделаем реген как обычно - "HP_normal"

@HP_LowDarkRed_1:
        add dword ptr ds:[eax+300h],5 ; добавляем к темному хп 5 единиц
        @HP_LowRed_1:
        add DWORD PTR DS:[EAX+2FCh],4 ; добавляем к светлому хп 4 единицы
        retn
               
@HP_normal:
        add DWORD PTR DS:[EAX+2FCh],1 ; добавляем к хп 1 единицу. То есть как обычно.
        retn

Health endp


Вот. Отрывок. Это процедура обработки здоровья в игре. Позволяет сравнить ID с тем персонажем, для кого на данный момент происходит обработка, и если ID совпал вдруг - выполнить ваши условия.
На самом деле этот инструмент настолько гибкий, что тут можно было бы прописывать условие типа
"Если у персонажа меньше 100 хп, то автоматически перейти в указанный кадр\frame" для трансформации. Но этого обычно не делают :)

Там же есть процедура MP proc, но работает она в LDK или нет - не знаю. Если длл подключали к обычному лф2.ехе как в видеоуроке, то там управление маной вроде как работало исправно (я просто когда-то баловался с изменением регена маны, но по факту никогда не пользовался).
Этот DLL есть в LDK и Neora (но они разные). В PDK его нет.

Аналогичные вещи находятся в других inc файлах:
armor.inc - файл где так же по ID можно добавить броню
AI.inc - файл где так по ID можно указать какой AI будет у него

Цитата
-Можно полностью выключить регенирацию mp в lf2.By me. Как это сделать, спрашивайте меня

Не помню, кто автор этой строчки xD

+ чтобы добавить кучку ID с одним эффектом, нужно писать типа такого

Код
cmp edx,55 [i]; проверяет, что если ID равен 55
        je short @HP_check_1 [i]; если равно, то переходим в обработку хп по НАШИМ правилам №1
        cmp edx,56 [i]; проверяет, что если ID равен 56
        je short @HP_check_2 [i]; если равно, то переходим в обработку хп по НАШИМ правилам №2
        cmp edx,57 [i]; проверяет, что если ID равен 57
        je short @HP_check_3 [i]; если равно, то переходим в обработку хп по НАШИМ правилам №3
        cmp edx,58 [i]; проверяет, что если ID равен 58
        je short @HP_check_4 [i]; если равно, то переходим в обработку хп по НАШИМ правилам №4



То есть в Ассемблере каждое сравнение IF\ELSE состоит из CMP + JE\JLE\JZ\JGE\JG\JNE.
JE - Jump if equal
JLE - Jump if less or equal
JZ - Jump if zero
JGE - Jump if greater or equal
JG - Jump if greater
JNE - Jump if NOT equal
Команды не перевожу, потому что так понятней должно быть, ибо команды как аббревиатуры того, что они делают. Тут нужно учить английский, но без него никуда.

Ещё пример:
cmp - это compare, то есть сравнить


В целом как-то так.
К сожалению работе с ассемблером не научить одним видеоуроком или постом форума. Но думаю самый малый и необходимый фундамент для того чтобы делать мелкие манипуляции по списку желаемого получится ^^

14.11.14 14:16 | #259

Репутация: 0
Постов: 22
LDK каждый раз вылетает через определённое время или,когда противники ударяют героя. Так и не могу опробовать LDK


буду Neora пробовать со своими целями.

14.11.14 14:48 | #260

Репутация: 416
Постов: 8072
Прячьте ошибки под спойлер (хотя они всё-равно ничего не дадут)

LDK , как и любой другой измененный движок надо ставить на чистую версию ЛФ2, тем более если нет опыта в моддинге.
Скачал сейчас, поставил поверх оригинального лф2 - отыграл VS бой - всё работало без проблем.

Если уже делали какое-то изменение в длл, то ошибки будут запросто происходить, потому что неправильное изменение длл только и будет делать, что крашить игру.

Фан Форум для LF'айтеров » Игрострой » Модострой LF2 » Вопросы к Мастерам (Спрашиваем...^^!)
Поиск: