Полная Версия: (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
Crafty
QUOTE (Fakeman)
как там насчет поработать над AI противников?
В перспективе...
QUOTE (Fakeman)
Такая просьба можно ли в двиге изменить чтобы отладочный лог не только отображался на экране но и писался одновременно в файл?
Через 3 позже сделаю.
QUOTE (Fakeman)
можешь поискать смещения в exe которые за это отвечают, а я уже сам у себя поменяю.
Так не выйдет, там свою обработку нужно делать.
Fakeman
CODE
Так не выйдет, там свою обработку нужно делать.

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

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

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

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

Лучше наверное блокировку поставить, чтобы статы ниже 1 не опускались. 0 всё равно в игре не используется.
Fakeman
Нет просто блокировка не пойдет, проверка нужна как при 10+
попробуй и поймешь в чем разница.

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

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


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

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

не надо крафти отвлекать от более важных дел) напишите фобосу пусть добавит хапугу в свой скрипт. там 5 мин делов.
Ethereal
У него на nuclear-city последняя активность — в конце Апреля. Я бы написал, но где его искать?
Fakeman
он на забугорных сайтах тусит типа NMA.

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

и еще хотел узнать о NPCsTryToSpendExtraAP что конкретно делает этот параметр?, тоже тестировал разницы в поведении НПС в бою не увидел.
Crafty
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
Fakeman
Вы это как к QUOTE (Fakeman) добавляете ник?

QUOTE
Поздно :-p

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

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

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

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

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

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

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

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

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


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

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


... выбегая, и часто перекрывая линию огня оставшимся сзади напарникам с автоматическим оружием, что не редко приводит к смерти выбежавшего. Подправить бы, чтобы с цели на цель переключался, но не бегал, если нет ОД на выстрел в обоих режимах стрельбы имеющегося оружия.
Crafty
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, а уже затем её вызывает.
Ethereal
Теперь ещё выяснилось, что и хвосты с скорпионов то же не дропаются, если их убили подконтрольные напарники. Наверняка и Кладоискатель, увеличивающий количество монет, то же работать не будет. В Общем — сплошной геморрой.

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

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

Еще посмотри этот пост, там про AI & aimed shots
http://www.nma-fallout.com/threads/fo2-ai-...-taunts.206700/
Crafty
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;
Fakeman
пункт 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
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 программеры)

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

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

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

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

QUOTE (Fakeman)
Кстати прицельный в тело вроде как дает какой-то бонус? не в курсе где про это написано)
У него нет штрафа, а это бонус (BodyHit_* в ddraw.ini)
Fakeman
QUOTE (Crafty)
Не, речь о called_freq — у Alien бросок кубика 1-300 и результат должен быть равен 1 (единица, Карл!). До 4 пункта ещё дойти нужно.

подумал ты о 5 пункте.
ну 3 пункт то поправим, сделать в ini что-то типа регулятора
ai_called_freq_div=делитель
или сделать деление по натуральному логарифму
called_freq/log(called_freq)

QUOTE
У него нет штрафа,

о а что у не прицельного есть штраф) ?
Crafty
QUOTE (Fakeman)
о а что у не прицельного есть штраф) ?
Нету, и вообще Body_Uncalled в compute_attack_ превращается в Body_Torso.
Fakeman
Легким движением рук, брюки превращаются в шорты))

Я тут из твоего AutoQuickSave сделал просто AutoSave :)
все конечно замечательно, но можно это как-то подработать чтоб при включенном ExtraSave оно всегда сохраняло в первую страницу (слоты с номерами 1-10).
думаю нужно бы расширить значения AutoQuickSave до 11-20, что означало бы запись в первую страницу, в указанный слот.
так можно сделать?

конечно если тебе делать нечего, можешь попробовать реализовать AutoSave в сфале :)
Foxx
Crafty возникла проблема:

sFall2 1.7.17 (от 06.09.16) не хочет работать в Fallout: Nevada, выдает ошибку при запуске игры http://i78.fastpic.ru/big/2016/0908/5f/9f6...cad195b725f.jpg

sFall2 1.7.9 (от 24.08.16) работает нормально.

Пробовал и на оригинале Невады (без HiRes Patch) — такая же фигня. При этом Fallout 2 и Olympus работают без проблем.
Crafty
QUOTE (Foxx)
возникла проблема
Непорядок, поправил.
Foxx
Всё работает)) Спасибо за оперативность.
Foxx
Crafty у тебя в ddraw.ini переменная "ObjCanSeeObj_ShootThru_Fix" по умолчанию включена, но с ней в Fallout: Nevada есть баг. Если её отключить баг исчезает))

Вот видео: https://yadi.sk/d/IdfVZF2Sv3ZfU
Сейв я тоже на всякий случай кинул.
Fakeman
QUOTE
в ddraw.ini переменная "ObjCanSeeObj_ShootThru_Fix" по умолчанию включена, но с ней в Fallout: Nevada есть баг. Если её отключить баг исчезает))

да это не баг, просто скрипт невады не доработан и включает бой раньше времени. вернее вон те типы в синих штанах видят гг и врубают бой.
Foxx
QUOTE (Fakeman)
да это не баг, просто скрипт невады не доработан и включает бой раньше времени. вернее вон те типы в синих штанах видят гг и врубают бой.

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

А на том рейдерском "ринге" через ограждение сетки(стена) (без вкл.оциии) НПС не смогут увидеть ГГ, вот такой вот в движке косячек)
Foxx
QUOTE (Fakeman)
Во я наконец таки вспомнил нужную вещь которую надо пофиксить, это заблочить возможность менять уровень сложности в уже начатой игре.
Хорошее предложение, а то глянул во многих прохождениях на youtube — это используют как разрешенный чит (например взломать замок если навыка не хватает). Нечто подобное было и с наркотиками при подъеме навыков, но здесь Crafty исправил DrugExploitFix'ом, а тут не хочет((
QUOTE (Crafty)
А ещё запретить пользоваться редактором сейвов? ;) Нет смысла.
Редактором сейвы только гробить можно и умные люди им только в исключительных случаях пользуются, лично мне он интересен чисто для тестов.
Nordan
Crafty, есть ли возможность узнать адреса по которым живут значения номеров приоритетных скиллов (те 3, что выбираются при создании персонажа)?

А еще лучше добавить функцию в сфалл для возврата номеров этих скиллов.
Fakeman
QUOTE
Хорошее предложение, а то глянул во многих прохождениях на youtube — это используют как разрешенный чит

Чит еще тот, но скритом можно заблочить смену сложности на более низкий уровень.
Ну как заблочить просто написать, ах ты читер поганый — выключаем игру и форматируем диск))

Nordan, используй цикл while do для определения тагнутых скилов стандартная же функция есть. Можно еще их и в массив поместить, или в глобальные.
Да и где-то я встречал смешения по которым написаны тагнутые скилы — хотя может мне это приснилось надо покопаться в базе.

А что-бы добавить новые функции ее еще нужно будет добавить в компилятор — этим крафти точно не занимается.
Crafty
QUOTE (Fakeman)
ну 3 пункт то поправим, сделать в ini что-то типа регулятора
ai_called_freq_div=делитель
Сделал, кстати, давненько (AI_Called_Freq_Div в Misc), но в ini не добавлял (хз как озвучить суть, да ещё и перевести на заморский).

QUOTE (Fakeman)
Я тут из твоего AutoQuickSave сделал просто AutoSave :)
Автозапись по времени?

QUOTE (Fakeman)
все конечно замечательно, но можно это как-то подработать чтоб при включенном ExtraSave оно всегда сохраняло в первую страницу (слоты с номерами 1-10).
Почему именно первую?
Вот это
QUOTE
! Исправлен функционал переменной ExtraSaveSlots.
включило использование slotdat.ini в \SAVEGAME и запоминание текущей используемой страницы (ну и дополнительный бонус с запоминанием текущего слота даже если ExtraSaveSlots не используется).

QUOTE (Fakeman)
думаю нужно бы расширить значения AutoQuickSave до 11-20, что означало бы запись в первую страницу, в указанный слот.
так можно сделать?
Можно расширить значение до максимума (10000) когда включён ExtraSaveSlots — если AutoQuickSave=11, то при быстрозаписи увеличивать номер страницы. Но нагрузка на файловую систему будет (куча каталогов и файлов).

QUOTE (Foxx)
Нечто подобное было и с наркотиками при подъеме навыков, но здесь Crafty исправил DrugExploitFix'ом, а тут не хочет((
Абуз эффектов от наркоты включён в движке (такой себе постоянный уровень сложности "По-детски") и отключить его в настройках игры нельзя.
Ну добавлю переменную в ini для отключения уровня сложности в уже начатой игре и вместо меню настроек игры будут менять значение в ini. Сделаю без переменной в ini и начнут обвинять в ущемлении прав ;)

QUOTE (Nordan)
есть ли возможность узнать адреса по которым живут значения номеров приоритетных скиллов (те 3, что выбираются при создании персонажа)?
0x668070, 0x668074, 0x668078, 0x66807C (последний для перка Tag!|Приз!).

QUOTE (Nordan)
А еще лучше добавить функцию в сфалл для возврата номеров этих скиллов.
QUOTE (Fakeman)
используй цикл while do для определения тагнутых скилов стандартная же функция есть.
CODE
for (int SKILL = SKILL_SMALL_GUNS; SKILL <= SKILL_OUTDOORSMAN; SKILL++) {
 if (is_skill_tagged(SKILL)) display_msg("Bingo! = "+SKILL);
}
Fakeman
QUOTE (Crafty)
Автозапись по времени?

по входу(переходу) на карту, с тайм-аутом.

QUOTE
Почему именно первую?

потому, что удобно)
а то получается, что автосэйвит в текущую страницу.
хотя может это тоже удобно)

QUOTE
Можно расширить значение до максимума (10000) -если AutoQuickSave=11

O_o нахрена оно надо ?)

QUOTE
0x668070, 0x668074, 0x668078, 0x66807C (последний для перка Tag!|Приз!).

Так и запишем.

QUOTE
Сделал, кстати, давненько (AI_Called_Freq_Div в Misc), но в ini не добавлял

Если там обычное деление, то толку наверное от этого мало будет.

Отправлено: 14 сен 16 22:51
И еще по поводу бартера, если у криттера снят флаг торговли и скриптово войти в бартер, то получим абру-кодабру с интерфейсом, можно это поправить?
а то приходиться делать такую каку.
CODE
set_proto_data(self_pid, PROTO_CR_FLAGS, get_proto_data(self_pid, PROTO_CR_FLAGS) BWOR CFLG_BARTER);
gdialog_mod_barter(0);
set_proto_data(self_pid, PROTO_CR_FLAGS, get_proto_data(self_pid, PROTO_CR_FLAGS) BWAND not(CFLG_BARTER));
Crafty
QUOTE (Fakeman)
хотя может это тоже удобно)
Угу, AutoQuickSave=9 — зашёл на новую карту, сохранился в 10 слот новой страницы, а потом квиксейвишься в остальные слоты этой страницы.

QUOTE (Fakeman)
O_o нахрена оно надо ?)
Ну сам предлагаешь расширить диапазон :-p

QUOTE (Fakeman)
И еще по поводу бартера, если у криттера снят флаг торговли и скриптово войти в бартер, то получим абру-кодабру с интерфейсом, можно это поправить?
а то приходиться делать такую каку.
А в чём абракадабра проявляется? По коду gdialog_mod_barter() если у персонажа флаг не установлен, то просто выводится сообщение "Этот человек не будет с вами торговать."/"Это существо не может ничего нести.".
Да и проверку можно делать:
CODE
if critter_can_barter(self_obj) then begin
 gdialog_mod_barter(0);
end
Fakeman
QUOTE
По коду gdialog_mod_barter() если у персонажа флаг не установлен, то просто выводится сообщение "Этот человек не будет с вами торговать."/"Это существо не может ничего нести.".

Да может это тогда баг в движке, то что он открывает панель бартера, и нечего не пишет.
а ты попробуй и увидишь какая там абра-кадабра с интерфейсом. :P
хотя я вот скрин сделал чтоб тебя не утруждать.
http://i83.fastpic.ru/big/2016/0915/79/96f...02538d6cd79.jpg

QUOTE
Да и проверку можно делать:

да нет у меня заход в бартер через диалог.

QUOTE
Ну сам предлагаешь расширить диапазон :-p

я не эту дикость предлагал)

QUOTE
Угу, AutoQuickSave=9 — зашёл на новую карту, сохранился в 10 слот новой страницы, а потом квиксейвишься в остальные слоты этой страницы.

так не совсем понял почему в 10 слот новой страницы?
Как у тебя вообще AutoQuickSave работает? — ты меня запутал...
Foxx
AutoQuickSave работает так:
Если поставить например AutoQuickSave=9, то всегда первые девять слотов будут под быстрое сохранение, а десятое под нормальное. И так на каждой странице.
Nordan
Crafty, спасибо за смещения, пригодятся.

А про is_skill_tagged я и не знал, кстати. Все время был убежден, что нельзя скриптово это сделать. :)
Видимо, когда я читал документацию по стандартным функциям, я не совсем понял что означает фраза "помечено ли заданное умение как tagged".

Да и все равно через смещения это проще и быстрее сделать.
Fakeman
Nordan, у меня золотое правило — я никогда нe буду использовать функционал сфала, если задачу можно реализовать стандартными функциями.
Ты же сам недавно упрекал сфалл в глючности и отказывался от его функций, ты изменил свое мнение?)
Nordan
QUOTE
Ты же сам недавно упрекал сфалл в глючности и отказывался от его функций, ты изменил свое мнение?)

Я не отказывался от его функций, я просто хотел сказать то, что их нужно использовать рационально. Слишком сложные задачи вешать на него не стоит, просто потому что, не смотря на весь функционал, Sfall — это костыль, и именно из-за этого возникают связанные с ним баги.
Crafty
QUOTE (Fakeman)
Да может это тогда баг в движке, то что он открывает панель бартера, и нечего не пишет.
При скриптовом вызове gdialog_mod_barter(x) обрабатывается не сразу (в отличии от нажатия на кнопку бартера/клавишу "b") — устанавливается новый "режим" диалога, а уже в обработчике "режим" включается.

QUOTE (Fakeman)
да нет у меня заход в бартер через диалог.
Вот потому и нужна проверка. Полагаю что по задумке авторов gdialog_mod_barter(x) должен был использоваться только на персонажах с установленным флагом торговли.
Добавил проверку, раз скриптово не хочешь :-p
Fakeman
QUOTE
Вот потому и нужна проверка.
Добавил проверку, раз скриптово не хочешь :-p

мне проверка ка бы не нужна, просто устанавливаю флаг перед gdialog_mod_barter  — вход в бартер только через диалог, аля как в Ressurection.

Поводу Hero Appearance Mod, у меня от него пукан полыхает) ... кто вообще придумал такой идиотизм собирать "пазл" из разных кусочков интерфейса) нельзя было взять оригинальный FRM и в фотошопе сделать все по человечески, был бы отдельный арт интерфейса под это дело. реализация вообще дебильная!
Crafty
QUOTE (Fakeman)
вход в бартер только через диалог, аля как в Ressurection.
Кстати, да — отличный способ отключения кнопки бартера.

Поменял способ — проверки возможности торговли нет и окна правильно обрабатываются.

QUOTE (Fakeman)
реализация вообще дебильная!
"Мопед не мой я просто разместил объяву" © :-p
Fakeman
CODE
Поменял способ — проверки возможности торговли нет и окна правильно обрабатываются.

Спасибо.

Есть вопрос по перку Дитя Цветов — он на движковом уровне работает? или его механику вырезали.
И по трейту "Привлекательность" он точно скриптовой? а то что-то меня терзают смутные сомнения, можно там глянуть...

QUOTE
Это параметры, которые нельзя менять через set_critter_stat в скрипте.
Патч, чтоб стало можно менять основные статы
9F947 7E EB
9F94C 7F EB

Вот это я давно находил на форуме Невады, о каких таких параметрах идет речь, которые нельзя менять? -вроде как все можно менять.
Crafty
QUOTE (Fakeman)
Есть вопрос по перку Дитя Цветов — он на движковом уровне работает? или его механику вырезали.
Работает, хотя сам перк в таблице перков отключён (требуется 310 уровень). Поэтому если кто-то будет его использовать в скриптах, то ГГ будет получать скрытый перк со всеми плюшками.

QUOTE (Fakeman)
И по трейту "Привлекательность" он точно скриптовой? а то что-то меня терзают смутные сомнения, можно там глянуть...
Это который TRAIT_sex_appeal (13)? Точно скриптовый.

QUOTE (Fakeman)
QUOTE
Это параметры, которые нельзя менять через set_critter_stat в скрипте.
Патч, чтоб стало можно менять основные статы
0x4AF547 7E EB
Вот это я давно находил на форуме Невады, о каких таких параметрах идет речь, которые нельзя менять? -вроде как все можно менять.
Нельзя менять STAT_max_hp-STAT_poison_resist (7-32), вот достаточно подправить байт в движке чтобы можно было их менять через set_critter_stat.
Fakeman
Не понял, почему у тебя уже другое смещение?.
CODE
0x4AF547 7E EB


a STAT_better_crit (16) — я так понял у dude тоже не используется?


Когда уже дополнишь Changelog.txt новыми нововведениями?
Foxx
QUOTE (Fakeman)
Поводу Hero Appearance Mod, у меня от него пукан полыхает) ... кто вообще придумал такой идиотизм собирать "пазл" из разных кусочков интерфейса)
Fakeman
Crafty, прикрути к sfall_ver_build чтобы возвращала еще опознавательные знаки, что используется не ориг. версия, что-то в стиле #_CRAFTY
Foxx
Там и так вроде пишется SFALL2, а в оригинальном просто SFALL.

UPD:
Я про меню написал, ты наверно имел ввиду что то другое. Sorry.
Ваш ответ: