Перейти к содержимому


Фотография

(sfall) дополнения


  • Авторизуйтесь для ответа в теме
Сообщений в теме: 1246

#501 Crafty

Crafty

    Продвинутый пользователь

  • Пользователи
  • PipPipPip
  • 423 сообщений

Отправлено 26 августа 2016 - 03:14

QUOTE (Fakeman)
как там насчет поработать над AI противников?
В перспективе...
QUOTE (Fakeman)
Такая просьба можно ли в двиге изменить чтобы отладочный лог не только отображался на экране но и писался одновременно в файл?
Через 3 позже сделаю.
QUOTE (Fakeman)
можешь поискать смещения в exe которые за это отвечают, а я уже сам у себя поменяю.
Так не выйдет, там свою обработку нужно делать.


#502 Fakeman

Fakeman

    Продвинутый пользователь

  • Пользователи
  • PipPipPip
  • 557 сообщений

Отправлено 26 августа 2016 - 14:07

CODE
Так не выйдет, там свою обработку нужно делать.

Во как, если там много заморочек с этим то ну его, не особо то оно так и важно — обойдусь.

Тут еще маленькую бы доработку сделать при создании персонажа, если трейт отнимает -1 к стате то оно становится в 0 и с этим нулем можно начать игру, естественно после начало оно уже будет 1.
во общем проверку надо поставить такую-же как при статах выше 10.
проверить можно на олимпе с Фоксовким фиксом на мех.память, ну или самим там выставить.
и еще при -2 к стате там уже будет 99, имей это тоже ввиду.

В торговли в описании предметов в частности для стрелкового оружия добавить бы еще и информацию о его TTX. повреждения/мин СИЛ.

И еще возможно ли добавить строчку с отсутствующей информацией о защите от Energy в инвентарь игрока?
там правда строчку придется добавлять... но если место не хватит то можно удалить имя игрока)

Это сообщение отредактировано Fakeman - 26 августа 2016 | 14:35


#503 Foxx

Foxx

    Продвинутый пользователь

  • Пользователи
  • PipPipPip
  • 120 сообщений

Отправлено 26 августа 2016 - 14:34

Fakeman
QUOTE
Тут еще маленькую бы доработку сделать при создании персонажа, если трейт отнимает -1 к стате то оно становится в 0 и с этим нулем можно начать игру, естественно после начало оно уже будет 1.
во общем табличку надо поставить такую-же как при статах выше 10.
и еще при -2 к стате там уже будет 99, имей это тоже ввиду.

Лучше наверное блокировку поставить, чтобы статы ниже 1 не опускались. 0 всё равно в игре не используется.


#504 Fakeman

Fakeman

    Продвинутый пользователь

  • Пользователи
  • PipPipPip
  • 557 сообщений

Отправлено 26 августа 2016 - 14:37

Нет просто блокировка не пойдет, проверка нужна как при 10+
попробуй и поймешь в чем разница.

хотя ты прав, нужна еще и блокировка на "ручную" отмотку меньше 1, иначе можно будет читерски использовать очки.
если сделать -1 к стате которая уже равна 1 то получается мы читерим на 1 очко, в этом случае должно быть 0 и проверка "что мы не можем начать игру". как-то так! Crafty разберется.



Это сообщение отредактировано Fakeman - 26 августа 2016 | 15:09


#505 Ethereal

Ethereal

    Продвинутый пользователь

  • Пользователи
  • PipPipPip
  • 212 сообщений

Отправлено 27 августа 2016 - 18:04

Crafty
QUOTE
Твоя правда — неважно кто убивает, главное чтобы у ГГ был взят перк. Исправил, и "Наблюдательность" от ГГ при контроле тоже теперь наследуется (и в F1-версии), поскольку вполне уместный и безобидный перк.


Наблюдательность на напарниках работает, а шкуры всё равно не дропаются. Хрен с ним. Будем отключать контроль при бое с гекко.

Кстати, есть скрипт "hs_ondeath.int" от Phobos2077, 75% шанс уничтожения оружия, патронов, стимуляторов и цел.порошков при смерти противника. Есть ещё неиспользуемый перк — Хапуга. Что если этим же скриптом дать ему функцию — снижение шанса потери лута у трупов? Сам перк сделать доступным в Perks.ini не проблема. Может в этом sfall помочь?


#506 Fakeman

Fakeman

    Продвинутый пользователь

  • Пользователи
  • PipPipPip
  • 557 сообщений

Отправлено 27 августа 2016 - 19:37

QUOTE
Может в этом sfall помочь?

не надо крафти отвлекать от более важных дел) напишите фобосу пусть добавит хапугу в свой скрипт. там 5 мин делов.


#507 Ethereal

Ethereal

    Продвинутый пользователь

  • Пользователи
  • PipPipPip
  • 212 сообщений

Отправлено 27 августа 2016 - 21:11

У него на nuclear-city последняя активность — в конце Апреля. Я бы написал, но где его искать?


#508 Fakeman

Fakeman

    Продвинутый пользователь

  • Пользователи
  • PipPipPip
  • 557 сообщений

Отправлено 27 августа 2016 - 22:39

он на забугорных сайтах тусит типа NMA.

Смотрю добавлены новые процедуры combat_is_starting_p_proc и combat_is_over_p_proc.
Crafty, ты там не в курсах событие SEQUENCING в combat_p_proc при каких условиях происходит, сколько не тестировал так и не получалось увидеть это событие. или это событие просто выключено?
COMBAT_SUBTYPE_SEQUENCING (3) — проверяется боевая последовательность
чет мне кажется я у тебя уже это спрашивал, или нет..)

и еще хотел узнать о NPCsTryToSpendExtraAP что конкретно делает этот параметр?, тоже тестировал разницы в поведении НПС в бою не увидел.

Это сообщение отредактировано Fakeman - 28 августа 2016 | 00:19


#509 Crafty

Crafty

    Продвинутый пользователь

  • Пользователи
  • PipPipPip
  • 423 сообщений

Отправлено 28 августа 2016 - 01:32

QUOTE (Fakeman)
не особо то оно так и важно — обойдусь.
Поздно :-p
QUOTE (Fakeman)
и еще при -2 к стате там уже будет 99, имей это тоже ввиду.
-1 отображается как положительное число. Исправил.
QUOTE (Fakeman)
В торговли в описании предметов в частности для стрелкового оружия добавить бы еще и информацию о его TTX. повреждения/мин СИЛ.

И еще возможно ли добавить строчку с отсутствующей информацией о защите от Energy в инвентарь игрока?
Слишком хлопотно :-p

QUOTE (Ethereal)
Наблюдательность на напарниках работает, а шкуры всё равно не дропаются.
Не верю. Перк есть у ГГ? Проверяй скрипты принадлежащие животинкам.

QUOTE (Fakeman)
Смотрю добавлены новые процедуры combat_is_starting_p_proc и combat_is_over_p_proc.
Фикс вызова процедуры start намного круче, потом соберусь с силами и опишу подробнее.
QUOTE (Fakeman)
COMBAT_SUBTYPE_SEQUENCING (3) — проверяется боевая последовательность
чет мне кажется я у тебя уже это спрашивал, или нет..)
Не спрашивал, не используется нигде.
QUOTE (Fakeman)
и еще хотел узнать о NPCsTryToSpendExtraAP что конкретно делает этот параметр?, тоже тестировал разницы в поведении НПС в бою не увидел.
Ну есть у тебя нпс с 10 ОД и какой-то пушкой при стрельбе из которой он тратит 6 ОД, с NPCsTryToSpendExtraAP=0 он разок выстрелил и стоит курит на том же месте, а с >0 повторно запускается процедура атаки нпс и он пытается использовать оставшиеся ОД — бежит к тебе чтобы ударить. Ну и при следующем его ходе у него повысится точность, а когда добежит так кроме выстрелов будет ещё бить :-p


#510 Fakeman

Fakeman

    Продвинутый пользователь

  • Пользователи
  • PipPipPip
  • 557 сообщений

Отправлено 28 августа 2016 - 02:01

Вы это как к QUOTE (Fakeman) добавляете ник?

QUOTE
Поздно :-p

Aгa уже поставил 3 и проверил)

QUOTE
Ну и при следующем его ходе у него повысится точность, а когда добежит так кроме выстрелов будет ещё бить :-p

не ну я то это понял, но что-то они как то не особо то и тратили свои оставшиеся очки, ладно.

QUOTE
Фикс вызова процедуры start намного круче, потом соберусь с силами и опишу подробнее.

не замечал никакого бага со start, только единственное что он 2 раза подряд выполняется.

QUOTE
-1 отображается как положительное число. Исправил.

проверил — идеальное исправление, даже придраться не к чему)

Это сообщение отредактировано Fakeman - 28 августа 2016 | 02:10


#511 Ethereal

Ethereal

    Продвинутый пользователь

  • Пользователи
  • PipPipPip
  • 212 сообщений

Отправлено 28 августа 2016 - 12:10

Crafty
QUOTE
Не верю. Перк есть у ГГ? Проверяй скрипты принадлежащие животинкам.

Всё там есть. И у напарников перк отображается, но не более того. Скрипты я не трогал, иначе они бы не работали вообще. Какие в РП есть, такие и остались.

Fakeman
QUOTE
и еще хотел узнать о NPCsTryToSpendExtraAP что конкретно делает этот параметр?, тоже тестировал разницы в поведении НПС в бою не увидел.


Главное, что он делает, это то, что после убиения одной цели, NPC и напарники, переключаются на другую враждебную цель. Стреляют, если есть ОД, или бегут к ней.

Crafty
QUOTE
запускается процедура атаки нпс и он пытается использовать оставшиеся ОД — бежит к тебе чтобы ударить.


... выбегая, и часто перекрывая линию огня оставшимся сзади напарникам с автоматическим оружием, что не редко приводит к смерти выбежавшего. Подправить бы, чтобы с цели на цель переключался, но не бегал, если нет ОД на выстрел в обоих режимах стрельбы имеющегося оружия.

Это сообщение отредактировано Ethereal - 28 августа 2016 | 12:24


#512 Crafty

Crafty

    Продвинутый пользователь

  • Пользователи
  • PipPipPip
  • 423 сообщений

Отправлено 29 августа 2016 - 02:25

QUOTE (Fakeman)
Вы это как к QUOTE (Fakeman) добавляете ник?
[ quote = ник ] без пробелов.
QUOTE (Fakeman)
не ну я то это понял, но что-то они как то не особо то и тратили свои оставшиеся очки, ладно.
Ещё зависит от настроек AI пакета (AI.txt).
QUOTE (Fakeman)
не замечал никакого бага со start, только единственное что он 2 раза подряд выполняется.
"Видишь суслика? — Нет. — И я не вижу. А он есть!" © :-p

QUOTE
Скриптовые действия
.....
start — в Fallout2 вызывается при первом запуске скрипта, в Fallout1 — для каждого действия
Примечания:
В Fallout1 является главным обработчиком, через который вызываются все остальные. Типы действия передаются обработчику через параметр script_action, после чего происходит вызов нужного обработчика (обычно это делатеся через if-then-else). Номера обработчиков см. в Приложении.
.....
int script_action — возвращает действие, активировавшее этот скрипт (в скриптах Fallout2 не используется)
Аргументы:
нет
Возвращаемое значение:
номер стандартного обработчика (см. Приложение):
Примечания:
В Fallout1 играет важную роль. Используется в контексте обработчика start.

Информация в примечаниях частично актуальна для демо-версии, поскольку даже процедуры start не существовало — всегда вызывалась самая_первая_процедура с заданным параметром script_action.

Начиная с версии 1.0 и F1 и F2 стали использовать именные стандартные обработчики (start, spatial_p_proc и т.д.) — только в F1 description_p_proc называется desc_p_proc (надо бы имя в sslc компилятор добавить — 'Protect("desc_p_proc");'). Для совместимости способ вызова через самая_первая_процедура+script_action оставили, хотя подозреваю что подумывали отказаться — в обоих движках остались неиспользуемые кусочки кода, которые должны были обрабатывать вариант отсутствия именного стандартного обработчика (в F1 для debug-режима даже сообщение осталось "Error: exec_script_proc: Can't Find script procedure!!!").

В общем алгоритм вызова обработчиков и в F1 и в F2 стал таким — если есть именная процедура (destroy_p_proc и т.д.), то вызвать её, в противном случае установить script_action (18 для destroy_p_proc) и вызвать самую_первую_процедуру. Тут ошибочка и появилась.

Обычно именная процедура start описана как самая_первая_процедура, но в отдельных случаях это не так (декомпиляция и компиляция стандартного скрипта, в исходнике которого добавляется checkPartyMembersNearDoor в качестве самой_первой_процедуры, да даже бегло просмотрел существующие исходники и видел start не в качестве самой_первой_процедуры). Последствия слегка упомянуты в примечании к описанию critter_p_proc из BIS_help.html:
QUOTE
critter_p_proc — отвечает за поведение объекта в целом, выполняется постоянно (несколько раз в секунду). В качестве параметра получает fixed_param — урон, нанесённый криттеру в последний ход. Примечание: если в скрипте криттера данная процедура отсутствует, то могут возникать глюки, например, в качестве этого обработчика может быть воспринята первая попавшаяся процедура, которая будет выполняться несколько раз в секунду.
Не первая попавшаяся, а точно самая первая. Да и critter_p_proc не единственный пострадавший — отсутствие любого именного стандартного обработчика при попытке его вызова приведёт к вызову самой_первой_процедуры+script_action, и повезёт если там вместо start окажется безобидная процедура.
Исправил — теперь вместо фиксированного вызова самой_первой_процедуры движок сначала узнаёт номер процедуры start, а уже затем её вызывает.


#513 Ethereal

Ethereal

    Продвинутый пользователь

  • Пользователи
  • PipPipPip
  • 212 сообщений

Отправлено 29 августа 2016 - 08:49

Теперь ещё выяснилось, что и хвосты с скорпионов то же не дропаются, если их убили подконтрольные напарники. Наверняка и Кладоискатель, увеличивающий количество монет, то же работать не будет. В Общем — сплошной геморрой.

Есть предложение — внести кнопку включения и выключения контроля напарников в меню игры, вместо Фильтра Ругани, или ещё куда. Или на какую-нибудь кнопку на "клаве" повесить.

Это сообщение отредактировано Ethereal - 29 августа 2016 | 08:50


#514 Fakeman

Fakeman

    Продвинутый пользователь

  • Пользователи
  • PipPipPip
  • 557 сообщений

Отправлено 30 августа 2016 - 12:29

Кладоискатель скриптовай перк, незнаю как там дела с ним в рп, но оригинальном ф2 не везде он прописан, в общем можно сказать он по сути не везде работает. Только у караванщиков на случайках.

Crafty
Tак со Start понятно, а вот если в скрипте нет какого-то обработчика и произошло его событие, то какая тогда процедура выполняется, я надеюсь никакая? :)

Еще посмотри этот пост, там про AI & aimed shots
http://www.nma-fallo...-taunts.206700/

Это сообщение отредактировано Fakeman - 30 августа 2016 | 18:19


#515 Crafty

Crafty

    Продвинутый пользователь

  • Пользователи
  • PipPipPip
  • 423 сообщений

Отправлено 30 августа 2016 - 23:53

QUOTE (Ethereal)
Теперь ещё выяснилось, что и хвосты с скорпионов то же не дропаются, если их убили подконтрольные напарники.
ZCLSCORP.SSL:
CODE
procedure destroy_p_proc begin
 variable tail := 0;
 tail := create_object(PID_SCORPION_TAIL,0,0);
 add_obj_to_inven(self_obj,tail);
end
Вообще без разницы кто убил скорпиона. Не могу воспроизвести твою ситуацию по имеющимся данным — у меня и в чистом F2 и в Fixed Edition всё дропается :-p

QUOTE (Fakeman)
Tак со Start понятно, а вот если в скрипте нет какого-то обработчика и произошло его событие, то какая тогда процедура выполняется, я надеюсь никакая? :)
Невнимателен :-p
QUOTE
отсутствие любого именного стандартного обработчика при попытке его вызова приведёт к вызову самой_первой_процедуры+script_action
Так в оригинале, сейчас (более полное описание) — отсутствие любого именного стандартного обработчика при попытке его вызова приведёт к вызову процедуры (если она есть) start+script_action или же вызову самой_первой_процедуры+script_action (хотя в принципе это лишняя страховка).

QUOTE (Fakeman)
Еще посмотри этот пост, там про AI & aimed shots
НПС делают прицельные атаки, но там столько условий, что "обещанного три года ждут":
CODE
1. Если у НПС меньше ОД, чем нужно для прицельной атаки, то пункт 7;
2. Если оружие в руках НПС не имеет режима прицельной атаки, то пункт 7;
3. Если бросок кубика 1-called_freq (из AI.TXT) не равен 1, то пункт 7; // вообще жесть
4. Если IQ у НПС меньше 3, 5, 7 (зависит от сложности боя: 3=Круто, 5=Нормально, 7=По-детски), то пункт 7;
5. Теперь бросок кубика 0-8 (Body_Head-Body_Uncalled) и результат используется в процедуре определения шанса попадания в эту часть тела;
6. Если шанс попадания >= min_to_hit (из AI.TXT), то return результат броска кубика из 5 пункта;
7. return Body_Torso;


#516 Fakeman

Fakeman

    Продвинутый пользователь

  • Пользователи
  • PipPipPip
  • 557 сообщений

Отправлено 31 августа 2016 - 02:46

пункт 4 думаю лишний можно вырезать)

QUOTE
5. Теперь бросок кубика 0-8 (Body_Head-Body_Uncalled) и результат используется в процедуре определения шанса попадания в эту часть тела;

ну и здесь подрезать 0-7, и если 3 то опять бросок)

CODE
3. Если бросок кубика 1-called_freq (из AI.TXT) не равен 1, то пункт 7; // вообще жесть

т.е. если всем поставить в ai called_freq=1 то вероятность будет 100%
а то что-то я думал что чем больше тем выше вероятность.

Это сообщение отредактировано Fakeman - 31 августа 2016 | 03:01


#517 Fakeman

Fakeman

    Продвинутый пользователь

  • Пользователи
  • PipPipPip
  • 557 сообщений

Отправлено 01 сентября 2016 - 17:26

CODE
отсутствие любого именного стандартного обработчика при попытке его вызова приведёт к вызову самой_первой_процедуры+script_action

провел тесты в маппере
создал скрипт для контейнера оставил там 2 процедуры
стандартную start и самую верхнею сделал test.
процедура test объявлена после start но физически расположена вверху скрипта.

при попытке осмотреть/открыть всегда выполняется первым start+script_action процедура, без стандартных процедур просто одна start.

если объявляем процедуру test первой
тогда уже start не выполняется, вместо нее выполняется test+script_action
если процедуры script_action отсутствует в скрипте, то просто выполняется одна test.

Вывод любая первая объявленная процедура выполняется всегда, и независимо есть ли в скрипте процедура стандартного обработчика.

бага в маппере(игре) можно было бы избежать если в начало define.h поместить строчку procedure start; //тупые BIS программеры)

ладно это уже в прошлом, но знать необходимо.

Это сообщение отредактировано Fakeman - 1 сентября 2016 | 17:44


#518 Crafty

Crafty

    Продвинутый пользователь

  • Пользователи
  • PipPipPip
  • 423 сообщений

Отправлено 01 сентября 2016 - 21:46

QUOTE (Fakeman)
пункт 4 думаю лишний можно вырезать)
Ну не скажи, всё же проверка уровня сложности игры.
QUOTE (Fakeman)
ну и здесь подрезать 0-7, и если 3 то опять бросок)
Лишняя суета из-за 3 пункта — единица, Карл!
QUOTE (Fakeman)
т.е. если всем поставить в ai called_freq=1 то вероятность будет 100%
Верно.
QUOTE (Fakeman)
Вывод любая первая объявленная процедура выполняется всегда, и независимо есть ли в скрипте процедура стандартного обработчика.
Ну так а я что написал? :-p
start является стандартным обработчиком и вызывается при загрузке скрипта.


#519 Fakeman

Fakeman

    Продвинутый пользователь

  • Пользователи
  • PipPipPip
  • 557 сообщений

Отправлено 01 сентября 2016 - 22:32

QUOTE
Лишняя суета из-за 3 пункта — единица, Карл!

единица это же целых 10% шанса.
Кстати прицельный в тело вроде как дает какой-то бонус? не в курсе где про это написано)

QUOTE
Ну так а я что написал? :-p

ты не растолковал более подробно)

Это сообщение отредактировано Fakeman - 1 сентября 2016 | 22:34


#520 Crafty

Crafty

    Продвинутый пользователь

  • Пользователи
  • PipPipPip
  • 423 сообщений

Отправлено 01 сентября 2016 - 23:26

QUOTE (Fakeman)
единица это же целых 10% шанса.
Не, речь о called_freq — у Alien бросок кубика 1-300 и результат должен быть равен 1 (единица, Карл!). До 4 пункта ещё дойти нужно.

QUOTE (Fakeman)
Кстати прицельный в тело вроде как дает какой-то бонус? не в курсе где про это написано)
У него нет штрафа, а это бонус (BodyHit_* в ddraw.ini)




Похожие темы Свернуть

  Название темы Форум Автор Статистика Последнее сообщение


Количество пользователей, читающих эту тему: 1

0 пользователей, 1 гостей, 0 анонимных

Рейтинг@Mail.ru