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

Сообщений в теме: 8
Фотография

Вопрос по скриптам sFall


#1 balgot

balgot

    Только что из пустыни

  • Desert Rangers
  • Pip
  • 9 сообщений

Отправлено 20 Февраль 2021 - 14:16

Добрый день. Объясните пожалуйста логику работы скрипта быстрой перезарядки в SFall в файле gl_sfall-mods

 

Спойлер

 

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




#2 Mr.Сталин

Mr.Сталин

    Kill $oros

  • Desert Rangers
  • PipPipPipPipPip
  • 4 284 сообщений

Отправлено 20 Февраль 2021 - 15:04

cAmmo := get_weapon_ammo_count(itemWeapon); //по описанию процедура возвращает текущее число патронов (или максимальное? тогда понятно)

Текущие

//почему прерываем если текущих патронов в оружии 0 ?
//почему прерываем если тип патрона совпадает с типом патрона в оружии?

Потому, что двиг сам сделает зарядку.

// почему прерываем если в инвентаре более одного экземпляра оружия?

А черт его знает))
Наверное затем чтбы вся пачка не перезаряжалась одной обоймой.
Тут мне надо доработать один момент.

// вот тут далее вообще не понятно зачем что происходит

Там вроде коментариями написано что происходи.

sFall 4 - Extended version
Fallout Proto Manager v1.2.1 - Редактор для создания и редактирования файлов прототипов.
sFall Script Editor v4.1.7.RC1 - Программа для написания скриптов и отладки диалогов.
Mapper by Dims v0.99.3 - Обновленный вариант маппера c некоторыми новыми возможностями.
Другие утилиты для модинга Fallout.



#3 balgot

balgot

    Только что из пустыни

  • автор темы
  • Desert Rangers
  • Pip
  • 9 сообщений

Отправлено 20 Февраль 2021 - 15:27

Потому, что двиг сам сделает зарядку.

Стандартный обработчик не будет спрашивать число применяемых для перезарядки патронов и перезарядит полностью?

 

//почему прерываем если тип патрона совпадает с типом патрона в оружии?

Вторая проверка только для других патронов этого же калибра, так?

 

//Наверное затем чтбы вся пачка не перезаряжалась одной обоймой.

 

set_weapon_ammo_count 

- то есть Pid предмета не для уникального экземпляра а для стэка предметов? и перезарядит их все? независимо от того в инвентаре, слотах правой\левой руки?  




#4 Mr.Сталин

Mr.Сталин

    Kill $oros

  • Desert Rangers
  • PipPipPipPipPip
  • 4 284 сообщений

Отправлено 20 Февраль 2021 - 15:55

Стандартный обработчик не будет спрашивать число применяемых для перезарядки патронов и перезарядит полностью?

У движка своя процедура перезарядки.

Вторая проверка только для других патронов этого же калибра, так?

Непойму вопрос, движек не умеет перезаряжать автоматически, когда в оружие установлен другой тип патронов, нежели кидают на оружие.

//Наверное затем чтбы вся пачка не перезаряжалась одной обоймой.

set_weapon_ammo_count [/size]
- то есть Pid предмета не для уникального экземпляра а для стэка предметов? и перезарядит их все? независимо от того в инвентаре, слотах правой\левой руки?

Ну тут просто защита (выход) когда на стопку с оружием кидаются патроны.
Мне так кажется что тут баг есть, хотя вроде тестировал нормально все было, когда в руке было оружие и имелась стопка такого же оружия в инвентаре. Но надо проверить этот момент еще раз. Есть смутные сомнения...

sFall 4 - Extended version
Fallout Proto Manager v1.2.1 - Редактор для создания и редактирования файлов прототипов.
sFall Script Editor v4.1.7.RC1 - Программа для написания скриптов и отладки диалогов.
Mapper by Dims v0.99.3 - Обновленный вариант маппера c некоторыми новыми возможностями.
Другие утилиты для модинга Fallout.

  • Foxx это нравится


#5 balgot

balgot

    Только что из пустыни

  • автор темы
  • Desert Rangers
  • Pip
  • 9 сообщений

Отправлено 20 Февраль 2021 - 16:19

//У движка своя процедура перезарядки
Об этом и речь. Стандартная процедура вроде как должна вызывать окно с выбором количества пачек патронов для перезарядки.

Просто не понятно как работает процедура движка.

Хук передвижения предметов будет вызываться для перезарядки не через инвентарь, а через основной интерфейс для оружия в руке?

А по остальным вопросам из первого поста?


#6 Mr.Сталин

Mr.Сталин

    Kill $oros

  • Desert Rangers
  • PipPipPipPipPip
  • 4 284 сообщений

Отправлено 20 Февраль 2021 - 23:06

Об этом и речь. Стандартная процедура вроде как должна вызывать окно с выбором количества пачек патронов для перезарядки.
Просто не понятно как работает процедура движка.

ну движок вызывает окошко.
 

Хук передвижения предметов будет вызываться для перезарядки не через инвентарь, а через основной интерфейс для оружия в руке?

чет не понял что вы написали, отвечу на всякий случай ДА)
 

А по остальным вопросам из первого поста?

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

Навык выбирается движком на основании типа урона

поэтому нужна доп опция с поддержкой в движке как в случае с энерго/тяжелое.


sFall 4 - Extended version
Fallout Proto Manager v1.2.1 - Редактор для создания и редактирования файлов прототипов.
sFall Script Editor v4.1.7.RC1 - Программа для написания скриптов и отладки диалогов.
Mapper by Dims v0.99.3 - Обновленный вариант маппера c некоторыми новыми возможностями.
Другие утилиты для модинга Fallout.

  • Foxx это нравится


#7 Mr.Сталин

Mr.Сталин

    Kill $oros

  • Desert Rangers
  • PipPipPipPipPip
  • 4 284 сообщений

Отправлено 21 Февраль 2021 - 05:29

если что то вот доработанная реализация перезарядки, может тебе станет чуть яснее это дело.
variable icount = obj_is_carrying_obj(inven, itemWeapon);
if (icount > 1) then begin
   // если патроны перемещаются(кидаются) на стопку оружия в инвентаре
   // отделить предметы оставив один предмет для перезарядки, потом вернуть остальные
   variable iweapons = create_object(obj_pid(itemWeapon), 0, 0);  // наверное тут потребуется новая функция клонирования(copy) предмета а не создание нового
   icount = rm_mult_objs_from_inven(inven, itemWeapon, icount - 1);

   // fake unload ammo
   set_weapon_ammo_count(itemWeapon, 0);
   // add ammo to inventory
   call add_ammo(ammoPid, cAmmo, inven);

   // add deleted weapons
   add_mult_objs_to_inven(inven, iweapons, icount);
   return;
end
// fake unload ammo
set_weapon_ammo_count(itemWeapon, 0);
// add ammo to inventory
call add_ammo(ammoPid, cAmmo, inven);

/////////////////////////////////////////
procedure add_ammo(variable ammoPid, variable cAmmo, variable inven) begin
   variable ammoObj := create_object(ammoPid, 0, 0);

   variable packSize = get_proto_data(ammoPid, PROTO_AM_PACK_SIZE); // количество патронов в одной пачке
   if (cAmmo > packSize) then begin
      variable count = cAmmo / packSize; // количество добавляемых пачек
      add_mult_objs_to_inven(inven, ammoObj, count);
      cAmmo = cAmmo % packSize; // остаточное количество патронов (если будет)
      if (cAmmo == 0) then return;
      // создать новую пaчку
      ammoObj := create_object(ammoPid, 0, 0);
   end
   if (cAmmo != packSize) then set_weapon_ammo_count(ammoObj, cAmmo);
   add_obj_to_inven(inven, ammoObj);
end
// fake unload ammo - делаем оружие пустым для того чтобы вызвать движковую функцию заряжания.

sFall 4 - Extended version
Fallout Proto Manager v1.2.1 - Редактор для создания и редактирования файлов прототипов.
sFall Script Editor v4.1.7.RC1 - Программа для написания скриптов и отладки диалогов.
Mapper by Dims v0.99.3 - Обновленный вариант маппера c некоторыми новыми возможностями.
Другие утилиты для модинга Fallout.



#8 balgot

balgot

    Только что из пустыни

  • автор темы
  • Desert Rangers
  • Pip
  • 9 сообщений

Отправлено 21 Февраль 2021 - 16:57

Спасибо, тут код понятен. Непонятно почему в первоначальном коде не вызывается окно выбора количества патронов, хотя управление передается в стандартный обработчик зарядки.

Про основной интерфейс я имел в виду в бою например, не входя в инвентарь, там тоже будет вызываться этот хук, или по другому игра реализует перезарядку?


Может посмотришь про разрядку? Либо из списка действий как исключить, либо саму функцию разрядки хуком подменить?

А теоретически подменить хуком функцию оценки типа навыка на оружие можно? Это происходит в функции вычисления вероятности попадания?


#9 Mr.Сталин

Mr.Сталин

    Kill $oros

  • Desert Rangers
  • PipPipPipPipPip
  • 4 284 сообщений

Отправлено 21 Февраль 2021 - 18:50

Спасибо, тут код понятен. Непонятно почему в первоначальном коде не вызывается окно выбора количества патронов, хотя управление передается в стандартный обработчик зарядки.

Да оно и в первоначальном вызывается/лось, просто я провтыкал этот момент.

А про основной интерфейс я имел в виду в бою например, не входя в инвентарь, там тоже будет вызываться этот хук, или по другому игра реализует перезарядку?

Хз, но явно это несработает, так как нет логики в скрипте которая будет искать патроны другого типа чтобы перезарядиться ими в случае отсутствия текущего типа.
Надо будет по эксперементировать.
Стоп.
А разве движок сам не ищет патроны другого типа? Помойму ищет, так что скрипт тут и не нужен.

Может посмотришь про разрядку? Либо из списка действий как исключить, либо саму функцию разрядки хуком подменить?

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

А теоретически подменить хуком функцию оценки типа навыка на оружие можно? Это происходит в функции вычисления вероятности попадания?

Нельзя.
В функции/крючке вычисления можно переопределить шанс относительно навыка легкого оружия.

sFall 4 - Extended version
Fallout Proto Manager v1.2.1 - Редактор для создания и редактирования файлов прототипов.
sFall Script Editor v4.1.7.RC1 - Программа для написания скриптов и отладки диалогов.
Mapper by Dims v0.99.3 - Обновленный вариант маппера c некоторыми новыми возможностями.
Другие утилиты для модинга Fallout.


Стр. 1 из 1
Авторизуйтесь для ответа в теме
Новых тем нет



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

0 members, 0 guests, 0 anonymous users