Полная Версия: (sfall) дополнения
Страницы: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25
Fakeman
Crafty, тут главный промах в том что это не зависит от скила,
с какого вдруг гг будет лечить больше хп не качая навыки врачевания...
ну головой об стену же)

QUOTE
Там главная проблема что нет доступа к таблице попыток.

Чего это за таблица попыток?
Crafty
QUOTE (Fakeman)
тут главный промах в том что это не зависит от скила,
с какого вдруг гг будет лечить больше хп не качая навыки врачевания...
Без прокачки навыка он будет видеть "У вас не получается исцеление.".
И он не лечит больше, лечится его цель на процент от своего хп. Если ГГ 5 уровня, а его цель 1 уровня, то лечит он её на 3 хп. Если же ГГ 25 уровня, то он всё равно лечит свою цель 1 уровня на 3 хп.

QUOTE (Fakeman)
Чего это за таблица попыток?
Вот такое видел:
CODE
Вы исчерпали ресурсы этого навыка. Подождите немного.
Вы слишком устали.
Вы можете умереть от переутомления.
Ethereal
QUOTE
Без прокачки навыка он будет видеть "У вас не получается исцеление.".


И только полный пофигист, после такого сообщения, не нажмёт F7. Ваше предложение ставит крест на раскачке навыков Доктора и Первой помощи. Ну разве что для того, что бы взять перк Целитель.
Crafty
QUOTE (Ethereal)
И только полный пофигист, после такого сообщения, не нажмёт F7.
Так я и говорю что проще редактором воспользоваться :-p
И это кстати жесть — ну там понятно при неудачном воровстве (из-за боя) можно загружать, но при неудачном лечении...
Ethereal
А чем это хуже подрыва на ловушке, при разминировании, или заклинившего при неудачном взломе замка? Тем более, что попыток исцеления неприлично мало.

Вообще, в идеале, прилепить бы систему медицины из Fallout Tactics, со всеми вытекающими, но, боюсь, такое физически невозможно.
Fakeman
QUOTE
И он не лечит больше, лечится его цель на процент от своего хп.

Я вкурсе, что от цели, но в данном случае я говорил о self targer.
Посути меняется механика лечения, не зависищая от навыка, с возможностью установки на 100% бррр... хоть бы кап поставил 10-20%

QUOTE
Вы можете умереть от переутомления

Ну видел, и что бывали случаи смерти?)))
Crafty
QUOTE (Ethereal)
А чем это хуже подрыва на ловушке, при разминировании, или заклинившего при неудачном взломе замка? Тем более, что попыток исцеления неприлично мало.
Не, неудачных попыток лечения (первая помощь/доктор/ремонт) может быть сколько угодно (и это, кстати, серьёзный недостаток не стимулирующий прокачивать навык), поэтому загружаться не надо :-p
А вот для удачных есть лимит, чтобы не абузить получение опыта.

QUOTE (Ethereal)
Вообще, в идеале, прилепить бы систему медицины из Fallout Tactics, со всеми вытекающими, но, боюсь, такое физически невозможно.
Не знаком/помню.

QUOTE (Fakeman)
Посути меняется механика лечения, не зависищая от навыка.
Потому что игра не рассчитана на 30-40+ уровни с большим количеством хп. Оригинальное значение восстанавливаемого хп оптимально для низких уровней и подразумевает взятие Целителя для уровней повыше. Лечение стимпаками тоже ограниченно конкретными и вполне разумными цифрами для "нормального" прохождения.
Я согласен, что на 30-40+ уровнях оригинальная формула бесполезна и значение от уровня навыка лучше, но лютый диссонанс от того, как это повлияет на "нормальные" уровни.

QUOTE (Fakeman)
Ну видел, и что бывали случаи смерти?)))
Пугают :-p
Ethereal
QUOTE
Не знаком/помню


QUOTE
Лечение

Стандартный способ повышения здоровья — с помощью стимпаков. Более серьезные ранения (с большим HP) нужно лечить с использованием First Aid Kit. Делает это доктор с большим скилом First Aid (чем выше скил, тем быстрее и эффективнее лечение). Однако не переусердствуйте: если излечите слишком много HP (примерно более трети от общего запаса здоровья), то боец окажется в состоянии «Bandaged», что означает, что он сильно перемотан бинтами, которые ограничивают его действия. Если боец ранен (Crippled, Blinded, Winded, Concussed и т.п.), то вылечить его можно лишь с помощью Doctor's Bag (чем выше скил Doctor, тем лучше). Состояние «Bandaged» тоже убирается с помощью Doctor's Bag, однако для этого необходимо, чтобы у бойца не хватало хотя бы 1 HP здоровья.


Кроме того, для применения этих умений необходимы соответствующие предметы — аптечки и докторские чемоданы, имеющие ограниченный запас средств лечения. Без наборов лечить вообще нельзя.

Я понимаю, что это нереализуемо в полной мере, но прикрутить эффективность лечения к уровню умения очень желательно.

QUOTE
Потому что игра не рассчитана на 30-40+ уровни


Игра рассчитана на достижение 90 уровня, иначе ограничения сохранились бы с первой части.
Fakeman
QUOTE
А вот для удачных есть лимит

a это число лимитов постоянно? или зависит от навыка или уровня гг или еще чего?

QUOTE
Я понимаю, что это нереализуемо в полной мере,

Прочитал вполне реализуемо, только нет желающих это делать.
Crafty
QUOTE (Fakeman)
a это число лимитов постоянно?
3 слота для удачных лечений, через 24 часа занятый слот освобождается. Навык/уровень роли не играет.
Fakeman
To: "crazy genius Russian hacker named Crafty" цитата из-за бугра.
И давно ты стал русским хакером? Не боишься попасть в госдепосвкий список известных русских хакеров?))))

Теперь по делу. Если не трудно будет, напиши по какой формуле/шансу происходит излечение поврежденных органов?
смотрел я код но не хакеру там явно не разобраться.
Crafty
QUOTE (Fakeman)
Не боишься попасть в госдепосвкий список известных русских хакеров?))))
Не новость, давно невыездной ;)

QUOTE (Fakeman)
Теперь по делу. Если не трудно будет, напиши по какой формуле/шансу происходит излечение поврежденных органов?
QUOTE
if есть_свободный_слот then begin
  bodypart := [DAM_BLIND, DAM_CRIP_ARM_LEFT, DAM_CRIP_ARM_RIGHT, DAM_CRIP_LEG_RIGHT, DAM_CRIP_LEG_LEFT];
  crit_bonus := get_critter_stat(source, STAT_crit_chance) + bonus_от_чемоданчика/сумки;

  for (I := 0; I < 5; I++) begin
    if target_bodypart_I_повреждён and is_success(roll_vs_skill(source, SKILL_DOCTOR, crit_bonus)) then begin
      target_bodypart_I_излечен;
      слот_занят;
      // конечно это фейл, должен быть выход из цикла при первом удачном лечении любого органа (может поправить?)
    end
  end

  if is_success(roll_vs_skill(source, SKILL_DOCTOR, crit_bonus)); and get_critter_stat(target, STAT_current_hp) < get_critter_stat(target, STAT_max_hit_points) then begin
    get_critter_stat(target, STAT_current_hp) + random((4+уровень_перка_целитель*4), (10+уровень_перка_целитель*10)); // но не больше STAT_max_hit_points
    слот_занят; // тоже фейл если при лечении органа был занят последний слот
  end
end
Ну там ещё есть всякие дополнительные проверки (цель жива и это не Body_Type_Robotic).
Fakeman
Да я видел там роботик. Там вообще как-то все запутанно.
А излечение(ремонт) роботов происходит по отдельной формуле или она там такаяже как первая помощь но только на навык ремонт?

QUOTE
// конечно это фейл, должен быть выход из цикла при первом удачном лечении любого органа (может поправить?)

Хз. Думаю ненадо трогать.
Тоесть сначало идет лечение органа, потом восстановление здоровья?
Crafty
QUOTE (Fakeman)
Да я видел там роботик. Там вообще как-то все запутанно.
А излечение(ремонт) роботов происходит по отдельной формуле или она там такаяже как первая помощь но только на навык ремонт?
Точно такая же как у доктора (не первой помощи, цифры другие), просто копия. Возможно хотели сделать выбор разных сообщений для разных скиллов ("Вы вылечиваете орган (поврежденный глаз)" и "Вы ремонтируете орган (поврежденный глаз)"), но оставили универсальный "Вы вылечиваете орган (поврежденный глаз)" и для доктора и для ремонта. Ну и код после этого поленились оптимизировать, потому так запутанно.

QUOTE (Fakeman)
Хз. Думаю ненадо трогать.
При высоком скилле за одно использование можно вылечить все органы (жирновато) и ещё восстановить здоровье. И это за один слот (если остался последний), но при свободных они будут заняты.

QUOTE (Fakeman)
Тоесть сначало идет лечение органа, потом восстановление здоровья?
Да, и при удачном лечении и восстановлении дополнительно будет занят ещё один слот, конечно если есть свободные.
Ethereal
Crafty, что бы ни было сделано с отображением брони на напарниках со времён версии v1.7.29, просьба откатить обратно. У меня в моде, благодаря таким нововведениям, из игры выпадает вся новая броня, поскольку напарники не могут её носить, а броня нового класса (bosenro и так далее) и вовсе не позволяет применять оружие. Никакое. Я понимаю, что в старой версии напарники становились мульти оружейными, но меня это не смущает, а даже наоборот. Глюк со слетающей бронёй мутанта и псины там был поправлен, а больше и не нужно ничего.
Fakeman
ТипаБаг: Если во время боя юзнуть атечку то пишет "незя", но очки AP теряются — обидно да!

QUOTE
У меня в моде, благодаря таким нововведениям, из игры выпадает вся новая броня, поскольку напарники не могут её носить,

Напиши по подробнее че там изменилось, почему теперь не могут носить?
Ethereal
QUOTE
Напиши по подробнее че там изменилось, почему теперь не могут носить?


Вид не меняют, а это приводит к тому, что некоторые напарники вообще не могут пользоваться никаким оружием. ФТ-шная броня глючит страшно. Напарник может вообще исчезнуть. А что изменилось в этом плане в sfall-е — не знаю, но явно к худшему.

Я уже устал спорить на тему необходимости мульти оружейности напарников, но никому это, судя по всему, на фиг не надо. Видимо придётся сидеть на той версии sfall-а, которая это позволяет.
Fakeman
Crafty, фиксил этот баг? > https://github.com/phobos2077/sfall/issues/67 ... вроде как работает.
А это дорабатывал? > https://github.com/phobos2077/sfall/issues/78

QUOTE
Вид не меняют,

A каким способом ты им меняешь броню?
Crafty
QUOTE (Ethereal)
что бы ни было сделано с отображением брони на напарниках со времён версии v1.7.29, просьба откатить обратно.
Наверное год прошёл, думаешь я помню ;-p

QUOTE (Ethereal)
Вид не меняют, а это приводит к тому, что некоторые напарники вообще не могут пользоваться никаким оружием. ФТ-шная броня глючит страшно. Напарник может вообще исчезнуть.
Дай сейв и свои инишки, не понимаю о чём речь и как воспроизвести.

QUOTE (Fakeman)
фиксил этот баг? > https://github.com/phobos2077/sfall/issues/67 ... вроде как работает.
Переписывал всё, у меня другой способ.

QUOTE (Fakeman)
А это дорабатывал? > https://github.com/phobos2077/sfall/issues/78
Мог захватить ;-p
Да, есть проверка, ну и чутка по-другому.
Ethereal
Сильно сомневаюсь, что сможешь просмотреть сохранялку, не располагая моим модом целиком. Опишу так. В старой версии одевая новую броню, которой не было в оригинальном Ф2, напарник не менял вид, но если отрыть инвентарь управляя им в бою, то напарник менял вид согласно тем ссылкам на внешний вид, что установлен в настройках брони для ГГ. При том никаких глюков не было и сохранения, с изменившими вид напарниками, грузились исправно. В новой версии так сделать нельзя, ибо отображение фиксируется в момент одевания напарником брони. Вот скрин возможности, которую желательно вернуть.
Fakeman
Тоесть ты просто давал броню напарнику через обмен и напарник одевал ее? А теперь не может?

QUOTE
Мог захватить ;-p

Непонял, кого захватить)
Ethereal
QUOTE
Тоесть ты просто давал броню напарнику через обмен и напарник одевал ее? А теперь не может?


Нет. Одевал через диалог, потом активировал бой, переключался на управление напарником, открывал инвентарь, и он менял вид на желаемый. Потом закрывал инвентарь, (нужный вид оставался при напарнике) и завершал бой. Далее напарник имел постоянно необходимый внешний вид, до снятия брони через диалог.
Fakeman
Ого изврат какой, и похожде на баг, видимо опять твой любимый баг починили))
Crafty
QUOTE (Ethereal)
Сильно сомневаюсь, что сможешь просмотреть сохранялку, не располагая моим модом целиком.
Дак я поставил RUP с твоим модом когда искал причину крашей в Кламате, или там уж очень спец.версия мода нужна? Впрочем я вспомнил о чём разговор был ;-p

QUOTE (Ethereal)
напарник не менял вид, но если отрыть инвентарь управляя им в бою, то напарник менял вид согласно тем ссылкам на внешний вид, что установлен в настройках брони для ГГ.
Это баг был, и он исправлен :-p

QUOTE (Fakeman)
Непонял, кого захватить)
Мне иногда приходят письма с гитхаба и я их даже читаю ;)

QUOTE (Ethereal)
Далее напарник имел постоянно необходимый внешний вид, до снятия брони через диалог.
Ну, могу подправить кое-чего и изменить формат Armor.ini — оставить PID и Default, но удалив Leather-Robe, вместо которых добавить, допустим, Data с данными в формате npcfid:armorpid[|armorpid[...]],npcfid:armorpid[|armorpid[...]],...
К примеру для Сулика старые варианты Leather и Power конвертнутся в Data=16777325:1|379,16777324:232|3
Позволит использовать нужный тебе fid при одевании любой брони (pid).
Ethereal
А нельзя Сфаловский мод брони сделать проще, со свободным добавлением новой брони и их отображений на напарниках через ИНИ файл? К чему все эти "Leather и Power конвертнутся в Data=чёртзнаетчто" Ну почему мы всегда из Москвы в Питер через Пекин едем?! Это сейчас в ходу у мододелов уже 3 новых типа брони, со своими особыми отображениями и дальше только больше будет.
Crafty
QUOTE (Ethereal)
Ну почему мы всегда из Москвы в Питер через Пекин едем?!
Думай :-p
Подсказка: для Сулика варианты Leather-Robe конвертнутся в Data=16777325:1|379,16777324:3|232,16777323:2|240|380,16777321:74|265,16777322:17|239|381;,16777287:348|349,16777218:113|524
Foxx
Ethereal

А какие новые 3 брони ты имеешь ввиду? Знаю только две старые из Глобалмод, которые из тактиса. Они закрытого типа и подходят М и Ж, но одна из них какая-то не очень:-)
Ethereal
QUOTE
А какие новые 3 брони ты имеешь ввиду? Знаю только две старые из Глобалмод, которые из тактиса. Они закрытого типа и подходят М и Ж, но одна из них какая-то не очень:-)


Есть ещё броня, которая в охранного робота превращает. А есть ещё и броня Хорригана.
Fakeman
Ваши коментарии пожалуйста!
CODE
00424B5C            call    item_w_perk_             ; Weapon Knockback|Оружие отбрасывает врага
00424B61            cmp     eax, PERK_weapon_knockback; Оружие отбрасывает врага (Do NOT USE!  Engine ONLY!)
00424B64            jnz     short loc_424B6F         ; amount
00424B66            mov     edx, [edi]               ; amount
00424B68            mov     ecx, 5
00424B6D            jmp     short loc_424B76

00424B6F
00424B6F loc_424B6F:                                 ; compute_damage_+3ACj
00424B6F            mov     edx, [edi]               ; amount
00424B71            mov     ecx, 10

mov ecx, 5 < это я так понял расстояние на которое отбросит игрока?
mov ecx, 10 < тогда это расстояние в случае перка у оружия?
Crafty
QUOTE (Fakeman)
Ваши коментарии пожалуйста!
CODE
if weapon_perk == PERK_weapon_knockback then amountKnockback := amount / 5; else amountKnockback := amount / 10;
В example_mods\DamageFormula\gl_compute_damage_F2.ssl всё есть.
Fakeman
Ясно.
Ну там огород нагородил... "отступы? неe, не слышали о таких!" :)
Crafty
QUOTE (Fakeman)
Ну там огород нагородил... "отступы? неe, не слышали о таких!" :)
Чё? :-p
Fakeman
вот так должно быть для удобного читания.
не ну это хоть ты не поленился отступ по 1 пробелу поставил)
вообще отступы по 3-4 пробела обычно ставят, или по 1шт табуляции.
Crafty
QUOTE (Fakeman)
вот так должно быть для удобного читания.
.....
вообще отступы по 3-4 пробела обычно ставят, или по 1шт табуляции.
Настало время историй :-p
Fakeman
Настало время поучительных историй — fixed
этот compute_damage на оригинале работает или ты там какие-то изменения делал?
а то там проверка на sfall2 стоит.
Crafty
QUOTE (Fakeman)
Настало время поучительных историй — fixed
Есть и другой вариант, поэтому я сократил :-p
QUOTE (Fakeman)
этот compute_damage на оригинале работает или ты там какие-то изменения делал?
Не проверял, использование якобы небезопасных функций и arg12 уже достаточно для проверки версии.
Fakeman
12аргумент добавили. Значит совместимо?
Fakeman
При метании гранаты в дверь взрываясь на ней взрыв не наносит ущерба рядом стоящим целям (нет сплеш дамага) может посмотришь в чем там дело?
Crafty
QUOTE (Fakeman)
При метании гранаты в дверь взрываясь на ней взрыв не наносит ущерба рядом стоящим целям (нет сплеш дамага) может посмотришь в чем там дело?
Хлопотно-лень ;)
Нет проблемы чтобы был дамаг, но нужны дополнительные усилия чтобы дамаг получали цели только с той стороны откуда прилетела граната.
Fakeman
А хотя бы временно можно давать дамаг?
Просто витает одна идея как заставить метать гранаты не только по целям но и на пустые гексы рядом с непесями, вот тут передвижной объект дверь и выступает в качестве цели, единственное что попадая в цель(в дверь) нет дамага и нпс не агрятся.

И еще можешь растолковать на что именно влияет модификатор шанса в функциях roll_vs_skill/do_check, то что оно увеличивает/уменьшает шанс понятно, но хочется понять что оно там конкретно увеличивает/уменьшает?.
К примеру do_check при значении тестируемой характеристики = 10, и при модификаторе -10 к шансу, каков тут будет шанс для получения успешного броска?
Вот это не совсем понятно.
Crafty
QUOTE (Fakeman)
А хотя бы временно можно давать дамаг?
Запилил на_поиграться в [Misc] переменную ExplosionAroundPortal.

QUOTE (Fakeman)
Просто витает одна идея как заставить метать гранаты не только по целям но и на пустые гексы рядом с непесями, вот тут передвижной объект дверь и выступает в качестве цели, единственное что попадая в цель(в дверь) нет дамага и нпс не агрятся.
Идея хорошая, но вряд ли прокнет. Слишком много переделывать.
Жертвы разбегаются после получения дамага от взрыва в дверь и не нападают. Можно и нужно выйти из боя, чтобы напали.

QUOTE (Fakeman)
И еще можешь растолковать на что именно влияет модификатор шанса в функциях roll_vs_skill/do_check, то что оно увеличивает/уменьшает шанс понятно, но хочется понять что оно там конкретно увеличивает/уменьшает?.
if (has_skill(source, skill) + modifier — random(1, 100)) < 0 then ROLL_FAILURE else ROLL_SUCCESS; // для ROLL_CRITICAL_SUCCESS/FAILURE училий чуть больше
Fakeman
QUOTE

Жертвы разбегаются после получения дамага от взрыва в дверь и не нападают.

В смысле разбегаются) типа не знают кто атаковал?
Когда косит и взрывается рядом то вроде нормально не убегают.

Еще нужна под. функция на курсор мыши, чтобы дверь создавать только когда курсор в режиме таргета находиться, в двиге это определяется или без вариантов?.

CODE
Запилил на_поиграться в [Misc] переменную ExplosionAroundPortal.

Та я как бы и не просил ничего запиливать.


QUOTE
if (has_skill(source, skill) + modifier

То есть модификатор просто влияет на уровень скила?
а у do_check так же на стату?

Crafty
QUOTE (Fakeman)
В смысле разбегаются) типа не знают кто атаковал?
Видимо, не вникал. Проверяй :-p

QUOTE (Fakeman)
Еще нужна под. функция на курсор мыши, чтобы дверь создавать только когда курсор в режиме таргета находиться, в двиге это определяется или без вариантов?.
call_offset_r0(0x44CB6C); // 0 = курсор движения, 1 = курсор команд, 2 = курсор прицеливания

QUOTE (Fakeman)
Та я как бы и не просил ничего запиливать.
Но так ты можешь посмотреть как это выглядит и проверить свои идеи, а уже потом решим развивать ли эту тему дальше...

QUOTE (Fakeman)
То есть модификатор просто влияет на уровень скила?
Да.

QUOTE (Fakeman)
а у do_check так же на стату?
if random(1, 10) <= (get_critter_stat(source, stat) + modifier) then ROLL_SUCCESS else ROLL_FAILURE;
Fakeman
Как можно узнать, что текущая атака была критической?
Я так понимаю, что вот это оно и есть, или это что-то другое.
CODE
HOOK_COMBATDAMAGE
int     arg9  - Roll result of the attack (check with is_success, etc functions; basically: 0-crit. fail, 1-fail, 2-success, 3-crit. success)

crit. success — это значит был критический удар?
success — это тогда обычная атака, так?
crit. fail/fail — а это к каким ударам относится?
Ничего не понятно

У меня в тестах Roll result бывает только 2 и 4 Oo
Crafty
QUOTE (Fakeman)
Как можно узнать, что текущая атака была критической?
В HOOK_COMBATDAMAGE проверяй DAM_CRITICAL у arg6:
CODE
if flagsSource bwand DAM_CRITICAL then

QUOTE (Fakeman)
Я так понимаю, что вот это оно и есть, или это что-то другое.
В scripting\hookscripts.txt смотри описание:
QUOTE
int arg9  — DamageMultiplier (this is divided by 2, so a value of 3 does 1.5x damage, and 8 does 4x damage.); Обычно равно 2, но при взятом перке Silent Death|Тихая смерть и соответствующих условиях атаки равно 4, а при критических попаданиях значение берётся из таблицы критов
Fakeman
CODE
int arg9  — DamageMultiplier

Точно) надо чтоб в оригинальном исправили.

CODE
а при критических попаданиях значение берётся из таблицы критов

Где-то я видел эту таблицу не напомнишь где?)

QUOTE
В HOOK_COMBATDAMAGE проверяй DAM_CRITICAL у arg6:

Спасибо огромное!
Crafty
QUOTE (Fakeman)
Где-то я видел эту таблицу не напомнишь где?)
Fakeman
CODE
004238CD            cmp     edi, MELEE               ; Холодное оружие
004238D0            jz      short loc_4238DB
004238D2            cmp     edi, UNARMED             ; Без оружия
004238D5            jnz     loc_423A0D
004238DB
004238DB loc_4238DB:                                 ; compute_attack_+144j

Что-то не могу понять, когда происходят переходы
Если атака не равна UNARMED то переход?
Тогда с MELEE если равна то прыжок, так?
Crafty
QUOTE (Fakeman)
Что-то не могу понять, когда происходят переходы
if attack_subtype == MELEE or attack_subtype == UNARMED then
Fakeman
Я пытаюсь понять как логически работают перки Silent Death и Slayer в паре.
Что означает вот это вот строка из кода от перка Silent Death
00423942 mov [esp+3Ch+DamageMultiplier], 4

Перк Slayer как-то влияет на Silent Death, или наоборот?

Отправлено: 20 авг 17 01:08
CODE
if attack_subtype == MELEE or attack_subtype == UNARMED then

ты меня тут не запутывай, на вопросы ответь)
QUOTE
Если атака не равна UNARMED то переход?
Тогда с MELEE если равна то прыжок, так?



Ваш ответ: