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

Crafty

Пустынные рейнджеры
  • Постов

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

  • Посещение

Репутация

83 Послушник

Информация

  • Откуда:
    Киев, 404
  • Пол:
    Мужчина (male)
  1. Не тру :-p При получении облучения >=10 движок сообщает об этом ("Вы получаете большую дозу радиации.", #1007 из MISC.MSG), но кроме того активный Счётчик Гейгера в любой руке должен сообщать о маленьких дозах - от 1 до 5 ("Счетчик Гейгера тикает.") и >=6 ("Счетчик Гейгера тикает, как сумасшедший."). Понятно что это не работало и счётчик (был) зело бесполезной штукой в F1/F2.
  2. Ни на что - он должен поставить игру и играть в неё. Вот когда захочется чего-то новенького, тогда может разбираться и пробовать. Фоксу я взятку дал, чтобы при установке рекомендовался мой вариант Всё враки!AP пули наносят столько дамага сколько должны, а не x2. У игл для инъектора изменён не баланс, а исправлен миф :-p JHP пуля - это пуля с мягким наконечником, после попадания головная часть деформируется (условно говоря раскрывается как цветок) из-за чего повреждений больше особенно если цель без брони. Они не лучше AP, просто оружие для 10 мм патронов, как в примере, их использующее недостаточно мощное (как и сами пули) и 10 дамага (до модификаторов) просто перекрывается бронёй (конкретно DT брони очень влияет). Так это нормально, против бронированных целей нужно оружие и пули получше брать. Расширю расчёты для 10 мм и 5 мм, но вместо среднего значения использую максимальное и добавлю Силовую броню T-51b и без брони, но под Психо. Расчёты на бумажке, поэтому возможны небольшие погрешности при округлении. Уровень сложности боя - нормал. │Нет брони (DT=0,DR=0)│Кожаная куртка (DT=0,DR=20)│Металлическая броня (DT=4,DR=30)│T-51b (DT=13,DR=50)│Психо (DT=0,DR=50)│ Ammo │ O F │ O F │ O │ F │ O │ F │ O │ F │ ─────────────────────┼──────────┼──────────┼─────────────┼─────────────┼───────────────┼────────────────┼─────────┼─────────┼────────┼─────────┤ 29. 10 мм п/об (16) │ 24 │ 24 │ 18 │ 18 │ 13 │ 13 │ 5 │ 5 │ 8 │ 8 │ 30. 10 мм ББ (16) │ 8 │ 16 │ 8 │ 16 │ 4 │ 11 │ 0 │ 2 │ 6 │ 12 │ ─────────────────────┼──────────┼──────────┼─────────────┼─────────────┼───────────────┼────────────────┼─────────┼─────────┼────────┼─────────┤ 35. 5 мм п/об (19) │ 25 │ 25 │ 17 │ 17 │ 12 │ 12 │ 4 │ 4 │ 6 │ 6 │ 36. 5 мм ББ (19) │ 10 │ 19 │ 10 │ 19 │ 6 │ 15 │ 0 │ 5 │ 8 │ 16 │ которая бафает дамаг циферки покрасивше ;-p Мой вариант не является альтернативной формулой для замены YAMM или Glovz - он всего лишь исправляет дамаг у 7 боеприпасов (из 25) для оригинальной формулы.
  3. Исправление боеприпасов (ребаланс): Сбалансированные модификаторы урона от Crafty Yet Another Ammo Mod (YAAM) от HaenlomalДля YAMM нет смысла писать о модификаторах урона, поскольку там ещё и формула расчёта другая.Ну и при снятой галке "Исправление боеприпасов (ребаланс):" используется оригинальная формула с оригинальными модификаторами (баланс). По скриптам RP радиацию у собутыльников лечит только доктор Трой. Но раз используешь контроль, то дай им антирадины, включи бой и переключаясь используй его на "себе".
  4. Я не врубаюсь о чём речь, или у слова альтернатива есть ещё какое-то значение? Плохие новости - бронебойность определяется именно отрицательным значением в dr_adjust патрона, достаточно посмотреть формулу. Поэтому конкретно эти патроны с оригинальными значениями в pro-шнике таковыми не являются, хоть и содержат в своём названии ББ. Очень удобно - результат соответствует твоим представлениям, а значит такова авторская задумка Min-max дамаг оружия использующего 10 мм (пистолет и SMG = 5-12, H&K P90c = 12-16). Используется при расчёте шанса попадания.
  5. Можно не использовать sfall2 (погоди, ведь ты и не используешь - "не читал, но осуждаю") или отключить AmmoFile. Без альтернативы, ага Оба ошибаетесь Модификаторы не используются в F1 и там все пули являются аналогом шариков для пневморужья. Конечно играет роль оружие в котором они используются (дамаг и перки), защита цели и ещё всякое вроде уровня сложности. В F2 модификаторы используются, а сама формула расчёта повреждений превосходна (иноземцам тут и тут говорил). Только вот значения многих модификаторов в pro-шниках неправильные. Вот это домыслы. Ой, или это в вики написано? (на заборе тоже много чего написано)Считаешь нормальным что ББ иглы должны и урона наносить больше и броню пробивать (ну из названия) потому что на вики/etc скопировали модификаторы, но при этом закрываешь глаза на ББ патроны, модификаторы которых тоже есть на вики/etc. Я сделал скриптовый аналог формулы F2 движка, можно посмотреть как обрабатываются модификаторы и посчитать результат (в скрипте есть закомментированная часть или на бумажке). В цифрах для некоторых типов патронов (в скобках средний дамаг до модификаторов) это выглядит так: F2 формула с оригинальными (O) модификаторами (из родных pro-шников или с помощью AmmoF2default.ini) и она же, но с исправленными (F) через AmmoF2balance.ini данными. Результаты п/об патронов для лучшего понимания изменений в дамаге ББ патронов. │Нет брони (DT=0,DR=0)│Кожаная куртка (DT=0,DR=20)│Металлическая броня (DT=4,DR=30)│ Ammo │ O F │ O F │ O │ F │ ──────────────────────────────────────┼──────────┼──────────┼─────────────┼─────────────┼───────────────┼────────────────┤ 29. 10 мм п/об (5-16=10) │ 15 │ 15 │ 11 │ 11 │ 7 │ 7 │ 30. 10 мм ББ (5-16=10) │ 5 │ 10 │ 5 │ 10 │ 1 │ 6 │ ──────────────────────────────────────┼──────────┼──────────┼─────────────┼─────────────┼───────────────┼────────────────┤ 33. 14 мм ББ (12-22=17) │ 8 │ 17 │ 8 │ 17 │ 4 │ 13 │ ──────────────────────────────────────┼──────────┼──────────┼─────────────┼─────────────┼───────────────┼────────────────┤ 35. 5 мм п/об (7-19=13) │ 17 │ 17 │ 12 │ 12 │ 8 │ 8 │ 36. 5 мм ББ (7-19=13) │ 6 │ 13 │ 6 │ 13 │ 2 │ 9 │ ──────────────────────────────────────┼──────────┼──────────┼─────────────┼─────────────┼───────────────┼────────────────┤ 361. Припасы для инъектора (12-24=18) │ 18 │ 18 │ 14 │ 14 │ 10 │ 10 │ 362. ББ для инъектора (12-24=18) │ 36 │ 18 │ 29 │ 18 │ 22 │ 14 │Кстати, иглы действительно нужно подправить - простым увеличить DR с 0 до 25, а ББ уменьшить DR с -50 до -25 Так и было в первоначальном варианте, только называлась она, если не вру, "F2 balance", а её включение подменяло модификаторы из pro-шников на правильные.Но позже я понял что использование AmmoFile будет более удобным и гибким. Поставил RP с YAMM по умолчанию и уже не поменять формулу без танцов с бубном (замена pro'шников), а так включил формулу и подключил AmmoFile с нужным файлом и жизнь сразу наладилась
  6. Разглядывал len_array и показалось что "вот эта хрень" может иметь последствия, я её поправил. Потом скачал твой архив и загрузил сейв - на Маркусе панельки есть, сумка на misc в инвентаре есть. Решил проверить на версии до правки - панелек нет, сумки нет В общем как обычно - описали не то, искали не там :-p Исправил и party_member_list(0), с сейва и нужно было начинать :-p Mr.Сталин красавчик, снимаю шляпу
  7. В реальных и тестировал, думаешь у меня нет сейва с парочкой собутыльников :-p Так замени кусок кода между проверкой нажатой клавиши на свой кусок и проверь.
  8. Мне это ни о чём не говорит, просто какой-то текст. hs_keypress.ssl: procedure start; procedure start begin if not init_hook then begin variable event := get_sfall_arg, keyDX := get_sfall_arg, keyVK := get_sfall_arg, arrayID, object; if (keyDX == 0x57) and (event == 0) then begin // F11 arrayID := party_member_list(0); display_msg("count="+metarule(16, 0)+", len="+len_array(arrayID)); foreach (object in arrayID) begin display_msg("Party:"+object+" Name: "+obj_name(object)); end end end endparty_member_list(0) в принципе не может вернуть 0 при занесении pobj в массив, будет краш игры:.loopMembers: mov eax, [esi] ; eax = pobj test edi, edi ; mode 0 will act just like party_member_count in fallout2 jnz @f ; Переход если был вызов party_member_list(1) mov eax, [eax+obj.pid] ; Вот здесь сразу краш если eax=0 Зачем мне сейв, скрипт покажи. Ага, ещё не все опечатки в документации исправили PS. Надо в чатик перебраться :-p
  9. Потому что ты думаешь что party_member_list возвращает постоянный массив.
  10. Выше цитата из оригинала, где сказано что все функции кроме create_array возвращают временные массивы. Так было и осталось, с чего бы мне у себя это нужно было "фиксить".Вот, не поленился, из sfall-3.8-maintenance\sfall\ScriptOps\ObjectsOps.hpp: static void _stdcall op_get_party_members2() { DWORD obj, mode = opHandler.arg(0).asInt(), isDead; int i, actualCount = *(DWORD*)_partyMemberCount; DWORD arrayId = TempArray(0, 4); // <--------------
  11. Так? procedure check_tile_object begin ..... if skill_object > 0 then begin object_array := create_array_list(1); end else object_array := tile_get_objs(tile_num_in_direction(dude_tile, dude_cur_rot, 1), dude_elevation); ..... clear_array(object_array); //обнулить массив end "create_array is the only function that returns a permenent array, all other functions which return arrays (string_split, list_as_array etc,) all return temp arrays.""arrays created with temp_array will be automatically freed at the end of the frame." ©
  12. Хотелось бы на него взглянуть. Вообще думал ты уже покурил доки из scripting\ на предмет разницы между Temporary и Permanent/Saved массивами :-p Одна из причин переписывания на ассемблер - куча багов в оригинальном коде (вроде, к примеру, скриптовых get_screen_width/height, set*_stat_min, call_offset_* и sneak_success). О них не знают потому что куча "фич" нафик никому не нужна. Кеннеди, кстати, тоже я :-p А что случилось с ddraw.dll? Видимо их несколько, нужно не ошибиться кому давать :-p
  13. Это движковый алгоритм, весьма интересный и комплексный, а не просто рандом.Недостаток в том, что у нпс маленький скилл (чекнул в игре Мецгера и ко - 15-18%) и проходит вторая проверка. Подними нпс скилл до 50% (или 100%) и жизнь станет сложнее. Можно даже через тот же hs_steal: #define obj_critter 1 #define SKILL_STEAL 10 #define percent 50 procedure start; procedure start begin if not init_hook then begin variable thief := get_sfall_arg, target := get_sfall_arg, item := get_sfall_arg, isNotSteal := get_sfall_arg; if thief == dude_obj and obj_type(target) == obj_critter then begin variable target_skill := has_skill(target, SKILL_STEAL); if target_skill < percent then set_critter_skill_points(target, SKILL_STEAL, percent - target_skill); end return -1; end end
  14. 1. bonus = 0 - количество_ранее_украденных_вещей 2. Если это не ГГ то 5 3. Если цель собутыльник то 16 4. Если взят перк "Карманник" то 7 5. bonus = bonus - (размер_воруемой_вещи * 4) 6. Если цель персонаж и ворюга перед её лицом то bonus = bonus - 25 7. Если цель без сознания/сбита с ног то bonus = bonus + 20 8. thief_skill = уровень_воровства_ворюги + bonus 9. Если thief_skill > 95 то thief_skill = 95 10. roll = бросок кубиков с учётом thief_skill и шанса на крит у ворюги 11. Если roll равен ROLL_CRITICAL_SUCCESS то 16 12. Если roll равен ROLL_CRITICAL_FAILURE то 17 13. Если цель не персонаж то target_skill = 30, иначе target_skill = уровень_воровства_цели 14. roll = бросок кубиков с учётом target_skill и 0 шансом на крит 15. Если roll равен ROLL_SUCCESS или ROLL_CRITICAL_SUCCESS, то цель не растяпа и засекла воровство, а значит 17 16: "Вы крадете предмет (%s).", return 1 17: "Вас поймали при краже (%s)", return 0
×
×
  • Создать...