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


Фотография

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


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

#581 Fakeman

Fakeman

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

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

Отправлено 01 октября 2016 - 15:44

QUOTE
в бою восприятие умножается на 2

Можно узнать смещение этого значения, хочется увеличить до х3, а то некоторые с низким ВС стоят в сторонке и курят.

Что именно ты там изменил с перк.ини ?

Отправлено: 1 окт 16 16:46
и еще по армор ини
CODE

PID=16777313
Default=16777280
Leather=16777325
Power=16777324
;Advanced=16777287
Metal=16777323
Cured=16777321
Combat=16777322
;Robe=16777218

вот эти вот Metal/Leather...
нельзя просто заменить на явные номера PID итемов? т.е. чтоб не было никакого хардкодинга.
или же оставить как есть, но добавить возможность вписывать кастомные пиды.

Отправлено: 1 окт 16 16:59
QUOTE
Поменял все фиксированные "data\" на использование master_patches:

а всякие временные прохи и worldmap.dat которые создает двиг все равно создаются в DATA?


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


#582 Crafty

Crafty

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

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

Отправлено 01 октября 2016 - 16:59

QUOTE (Fakeman)
QUOTE
в бою восприятие умножается на 2
Можно узнать смещение этого значения, хочется увеличить до х3
0x42BACA, но не поможет из-за способа "умножения" — сложения.

QUOTE (Fakeman)
а то некоторые с низким ВС стоят в сторонке и курят.
Там скорее всего причина в другом...
Можешь попробовать добавить в секцию [Misc] переменную SmarterAI=1.

QUOTE (Fakeman)
Что именно ты там изменил с перк.ини ?
Без этого изменения нельзя нормально поменять эффект gain* перков через perks.ini, потому что +1 к стату всё равно добавляет движок.
В perks.ini пропиши:
CODE
[86]
Stat=2
StatMag=1
Возьми перк "Добавить выносливости" и посмотри на результат (ну и чтобы выносливости было меньше 9).

QUOTE (Fakeman)
нельзя просто заменить на явные номера PID итемов? т.е. чтоб не было никакого хардкодинга.
или же оставить как есть, но добавить возможность вписывать кастомные пиды.
Пока нельзя:
QUOTE
QUOTE (Ethereal)
Кстати, от идеи управления отображением брони на напарниках, в "NPC Armor" моде, отказался окончательно?
Почему, просто времени нет.


Отправлено: 1 окт 16 17:06
QUOTE (Fakeman)
QUOTE
Поменял все фиксированные "data\" на использование master_patches
а всякие временные прохи и worldmap.dat которые создает двиг все равно создаются в DATA?
Другое поменял — в исходниках были зашиты пути с фиксированным "data\".


#583 Fakeman

Fakeman

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

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

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

QUOTE
0x42BACA, но не поможет из-за способа "умножения" — сложения.

т.е там типа ADD EAX,EAX, а нельзя сменить на MUL — или она не влезет в размер.

0x42BACA — дай лучше которое в файле.

QUOTE
Там скорее всего причина в другом...

явно видно что из-за расстояния ставишь два криттера с разным ВС тот у которого больше бежит.
хотя да тут в чем-то другом дело, видимо другой алгоритм есть
типа ВСx2 потом еще что прибавляется где-то в коде + учитывается куда зырит(повернут) криттер.
вот пример расстояние до тестируемых критеров 35+ гексов тот который с 8 ВС бежит, рядом стоит с ВС 7 не бежит, пока ближе не подойдешь — разумеется это все в режиме боя.
ладно забей на это.

SmarterAI=1 — что это за недокументированная опция?
попробовал без разницы.

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


#584 Crafty

Crafty

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

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

Отправлено 01 октября 2016 - 20:16

QUOTE (Fakeman)
т.е там типа ADD EAX,EAX, а нельзя сменить на MUL — или она не влезет в размер.
0x42BACA — дай лучше которое в файле.
Да, и в размер не влезет и на mul нельзя поменять (требует подготовки регистров). К тому же это меняет восприятие целей которые стоят за спиной. Восприятие умножается на 5, если цель перед глазами.
0x1BECA.

QUOTE (Fakeman)
ладно забей на это.
Ну вот кусок движка:
CODE
distance = obj_dist_(target, source);
source_perception = stat_level_(source_, STAT_pe);
target_skill_sneak = skill_level_(target_, SKILL_SNEAK);
if (can_see_(_source_, target_)) { // перед лицом
 computed_distance = 5 * source_perception;
 if (target_->flags3 & TransGlass_) computed_distance /= 2;
 if (target_ == obj_dude) {
  if (is_pc_sneak_working_()) {
   .....
  } else if (is_pc_flag_(sneak)) {
   computed_distance = 2 * computed_distance / 3;
  }
 }
 if (distance <= computed_distance) return 1;
}
if (combat_state & 1) // в бою?
 computed_distance_ = 2 * source_perception; // 0x42BACA
else
 computed_distance_ = source_perception;
if (target_ == obj_dude) {
 if (is_pc_sneak_working_())  {
  .....
 } else if (is_pc_flag_(sneak)) {
  computed_distance_ = 2 * computed_distance_ / 3;
 }
}
if (distance <= computed_distance_) return 1;
else return 0;

QUOTE (Fakeman)
SmarterAI=1 — что это за недокументированная опция?
попробовал без разницы.
Мои эксперименты с улучшением AI.
Ну так сразу разницу и не заметишь. Там дофига описывать оригинальный алгоритм и что я поменял. Лень и никому не интересно.


#585 Fakeman

Fakeman

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

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

Отправлено 01 октября 2016 - 20:41

QUOTE
Мои эксперименты с улучшением AI.

а понятно — ну дерзай, дерзай! :)

QUOTE
К тому же это меняет восприятие целей которые стоят за спиной.

ну вот тут как раз бы и надо увеличить, а то эти вообще злоядлые курильщики — с восприятием 6-7 (15 гексов) резня у них за спиной происходит, а они отдыхают)

QUOTE
Восприятие умножается на 5, если цель перед глазами.

Тогда все сходится с ВС=7 как раз не и доставал до тех гексов.

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


#586 Fakeman

Fakeman

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

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

Отправлено 02 октября 2016 - 21:43

объясни мне принцип работы сфалла, вот есть MakeCall(addr, func, true);
с помощью нее я смогу сделать ассембл. вставку в код?
addr — это адрес в движке с которого будет вызваться моя вставки(func)?
а команда которая непосредственна находится в addr будет выполнена или нет?
и на какой потом адрес происходит возврат из вставки, на след за addr или продолжает с addr?
и для чего нужен третий аргумент функции MakeCall

Это сообщение отредактировано Fakeman - 2 октября 2016 | 21:45


#587 Foxx

Foxx

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

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

Отправлено 03 октября 2016 - 13:17

Crafty, есть ли в движке какие-нибудь различия у режимов холодного оружия: Свинг, Укол? Или это сделано, так для антуража.


#588 Crafty

Crafty

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

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

Отправлено 03 октября 2016 - 20:58

QUOTE (Fakeman)
ну вот тут как раз бы и надо увеличить, а то эти вообще злоядлые курильщики — с восприятием 6-7 (15 гексов) резня у них за спиной происходит, а они отдыхают)
Там не только завязка на "видимости", ещё куча условий отбора цели... К примеру, то, что сейчас меняет SmarterAI можно заметить если есть сопартийцы — их просто выносить будут очень быстро если они бегают далеко от ГГ.

QUOTE (Fakeman)
объясни мне принцип работы сфалла, вот есть MakeCall(addr, func, true);
Так это не сфалл — это ассемблер.

QUOTE (Fakeman)
с помощью нее я смогу сделать ассембл. вставку в код?
addr — это адрес в движке с которого будет вызваться моя вставки(func)?
Да, да.

QUOTE (Fakeman)
а команда которая непосредственна находится в addr будет выполнена или нет?
Нет, а поэтому её нужно будет выполнить в твоей вставке. И размер вызова твоей вставки равен 5 байтам.

QUOTE (Fakeman)
и на какой потом адрес происходит возврат из вставки, на след за addr или продолжает с addr?
и для чего нужен третий аргумент функции MakeCall
Если true, то это вызов функции (call) и возврат из функции будет через retn на addr+5, а если false то это переход по адресу (jmp) и возврат нужно будет указать в твоей вставке.

Если речь о умножении на 3, то с последней версией это не сработает — я переписал оригинальную функцию с дополнениями.
Используй хуковый скрипт, не? Вот аналог оригинальной движковой is_within_perception_ в F2, hs_withinperception.ssl:
CODE
procedure start;

procedure start begin
 if not init_hook then begin
  variable source := get_sfall_arg, target := get_sfall_arg, original := get_sfall_arg;
  variable distance, perception, result;
  result := 0;
  if target != 0 then begin
   perception := get_critter_stat(source, 1); // STAT_pe
   if combat_is_initialized then distance := perception * 2;
   else distance := perception;
   if call_offset_r2(0x412BEC, source, target) then begin // can_see_(source, target)
    distance := perception * 5;
    if (read_int(target+0x26) bwand 2) != 0 then distance := distance / 2; // target.flags3 & TransGlass_?
   end
   if target == dude_obj then begin
    if call_offset_r0(0x42E3F4) then begin // is_pc_sneak_working_
     distance := distance / 4;
     if has_skill(target, 8) > 120 then distance := distance - 1; // SKILL_SNEAK
    end
    else if call_offset_r1(0x42E2F8, 0) then distance := distance * 2 / 3; // is_pc_flag_(Sneak_)
   end
   if call_offset_r2(0x48BBD4, target, source) <= distance then result := 1; // obj_dist_(target, source)
  end
//   if original != result then display_msg(obj_name(source)+"->"+obj_name(target)+": "+original+"!="+result); // для отладки
  return result;
 end
end

QUOTE (Foxx)
есть ли в движке какие-нибудь различия у режимов холодного оружия: Свинг, Укол? Или это сделано, так для антуража.
Хз, искать лень. Может и нет и единственное отличие в анимации. Думаю в вики/etc это уже описано.

Это сообщение отредактировано Crafty - 3 октября 2016 | 21:03


#589 Fakeman

Fakeman

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

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

Отправлено 04 октября 2016 - 02:31

QUOTE
Если речь о умножении на 3, то с последней версией это не сработает — я переписал оригинальную функцию с дополнениями.

Да просто стало интересно, поставил IDA и залез в движок, ты там idb базу не обновлял?

Почему не через ini изменения вносишь, или в отладочную версию бы вносил.

QUOTE
Думаю в вики/etc это уже описано.

Что-то ничего там нету по этому поводу... хотя может не нашел.


#590 Foxx

Foxx

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

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

Отправлено 04 октября 2016 - 07:58

QUOTE (Crafty)
Думаю в вики/etc это уже описано.
Все нашел. Цитата:
QUOTE
Свинг
Основной тип удара холодным оружием. При расчёте урона в рукопашном бою учитывается модификатор силы. Параметр урона прибавляется к базовому урону оружия. Чем он выше, тем больше повреждений вы будете наносить.

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


Это сообщение отредактировано Foxx - 4 октября 2016 | 08:05


#591 Crafty

Crafty

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

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

Отправлено 05 октября 2016 - 00:13

QUOTE (Fakeman)
Да просто стало интересно, поставил IDA и залез в движок, ты там idb базу не обновлял?
Не обновлял, в старой всё что нужно есть...

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

Функция is_within_perception_ используется в скриптовых функциях obj_can_see_obj и obj_can_hear_obj. Опуская предварительные проверки на наличие цели, одинакового уровня карты и прочее (исправление рассмотрели тут) эти функции выглядят так:
QUOTE
obj_can_hear_obj:
CODE
if is_within_perception_(source, target) then return 1;
else return 0;

obj_can_see_obj:
CODE
if is_within_perception_(source, target) and проверка_препятствий(source, target) then return 1;
else return 0;
Тут для проверки препятствий используется obj_blocking_at_ (результат можно менять с помощью hs_hexmoveblocking).

В самом движке функция используется, к примеру, при оповещении сопартийцев (и введении их в бой) что ГГ в бою и для этого используется вариант obj_can_hear_obj.
Сама же реализация is_within_perception_ (опять же, опустив всякие дополнительные проверки на скрытность, стелсбой и прочее) всегда при 10 восприятия проверяющего подразумевает что слышит он в радиусе 10 гексов, а если цель перед его лицом так слышит(!) и видит на все 50 . Но что если проверяющий слепой или между его целью есть препятствие, которое сводит на нет его зрение. Вот я и расширил строчку:
QUOTE
CODE
if call_offset_r2(0x412BEC, source, target) then begin // can_see_(source, target)
до
CODE
if call_offset_r2(0x412BEC, source, target) and (read_int(source+0x44) bwand 0x40) == 0 and проверка_препятствий(source, target) then begin // can_see_(source, target)
Но тут для проверки препятствий используется obj_sight_blocking_at_ (результат можно менять с помощью hs_hexsightblocking).

Действительно нужна переменная CanSeeAndHearFix?


#592 Fakeman

Fakeman

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

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

Отправлено 05 октября 2016 - 02:35

Ничего не понял)
это типа если в бою между НПЦ и ГГ есть этот самый obj_sight_blocking_at_ (кстати что за блокиратор(с каким флагами), и в чем его отличие от obj_blocking_at_ ?) то НПЦ не побежит к ГГ так как не видит его, или чего?

QUOTE
Действительно нужна переменная CanSeeAndHearFix?

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

Это сообщение отредактировано Fakeman - 5 октября 2016 | 02:40


#593 Crafty

Crafty

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

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

Отправлено 05 октября 2016 - 16:07

QUOTE (Fakeman)
Ничего не понял)
это типа если в бою между НПЦ и ГГ есть этот самый obj_sight_blocking_at_ (кстати что за блокиратор(с каким флагами), и в чем его отличие от obj_blocking_at_ ?) то НПЦ не побежит к ГГ так как не видит его, или чего?
QUOTE
obj_sight_blocking_at_ (не установлен флаг LightThru и это Scenery или Wall):
CODE
if (obj.flags bwand 0x20000000) == 0 and (obj_type(obj) == 2 or obj_type(obj) == 3) then return obj;
else return 0;

obj_blocking_at_ (не установлен флаг NoBlock и это Critter, Scenery или Wall):
CODE
if (obj.flags bwand 0x10) == 0 and (obj_type(obj) == 1 or obj_type(obj) == 2 or obj_type(obj) == 3) then return obj;
else return 0;
Персонаж (ГГ или НПЦ), которого обидели, после получения урона запускает процедуру в которой все сопартийцы (team_num) в пределах is_within_perception_ которых находится обиженный входят в бой. При этом игнорируются любые преграды вроде стен, а если обиженный находится перед лицом обрабатываемого сопартийца, то последний видит в 2.5 раза дальше. Дополнительная проверка на sight убирает этот бонус к расстоянию, если обиженного не видно глазками (есть преграда в виде Scenery/Wall без флага LightThru (через объект проходит свет)).
Чтобы объяснить "слышимость" персонажей сквозь стены/etc можно считать что у всех слух развился в телепатию и они "слышат" чужие мысли в радиусе своего восприятия (в бою *2).

Что касается проверки на слепоту — настоящий слепой, вроде повара с базы Наварро (а он действительно такой — подробнее в CCCOOK.SSL/map_enter_p_proc), не будет слышать так же как видит зрячий только из-за того, что цель располагается перед его лицом.

QUOTE (Fakeman)
QUOTE
Действительно нужна переменная CanSeeAndHearFix?
давай переменную буду тестить чего там изменилось.
Добавил... :-p

PS. Поправил объяснение.

Это сообщение отредактировано Crafty - 5 октября 2016 | 20:54


#594 Fakeman

Fakeman

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

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

Отправлено 05 октября 2016 - 21:50

QUOTE
а если обиженный находится перед лицом обрабатываемого сопартийца, то последний видит в 2.5 раза дальше.

Непонятно! последний это конкретно кто?)
и X*2.5=?
X=?

QUOTE
Дополнительная проверка на sight убирает этот бонус к расстоянию, если обиженного не видно глазками (есть преграда в виде Scenery/Wall без флага LightThru (через объект проходит свет)).
Чтобы объяснить "слышимость" персонажей сквозь стены/etc можно считать что у всех слух развился в телепатию и они "слышат" чужие мысли в радиусе своего восприятия

Понятно)
Но! тогда нужно сделать некое исключение для НПЦ которые находятся на небольшом расстоянии от ГГ или обиженного НПЦ.
Вот к примеру, есть дом где в одной из комнат ГГ мучает НПЦ резиновой дубинкой) и получается что НПЦ стоящий в соседней комнате с тем же team_num не среагирует на БОЙ, -да? или он услышит визги)
Вообще что-то не особо понятно с этим obj_can_hear_obj, как они там слышат.

Отправлено: 5 окт 16 22:17
И это.
QUOTE
если обиженного не видно глазками (есть преграда в виде Scenery/Wall без флага LightThru (через объект проходит свет).

В ванили(в мапере проверил) через уст.флаг LightThru, все равно НПЦ не могут видеть ГГ, так как на объекте есть блокиратор (не уст.флаг NoBlock).
И вроде как в сфалл не фиксит это дело, чтобы НПЦ видели через LightThru, только через ShotThru.
или LightThru может пропускать "звук" для obj_can_hear_obj, да?

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


#595 Crafty

Crafty

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

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

Отправлено 05 октября 2016 - 22:36

QUOTE (Fakeman)
Непонятно! последний это конкретно кто?)
Сопартиец.
QUOTE
и X*2.5=?
X=?
QUOTE
Сама же реализация is_within_perception_ (опять же, опустив всякие дополнительные проверки на скрытность, стелсбой и прочее) всегда при 10 восприятия проверяющего подразумевает что слышит он в радиусе 10 гексов, а если цель перед его лицом так слышит(!) и видит на все 50.
QUOTE
в радиусе своего восприятия (в бою *2)
X=10, но поскольку есть обиженный, то это бой и X=10*2=20.
10*2*2.5=50.
QUOTE
или он услышит визги)
Угу, или "услышит" чужие мысли.
QUOTE
В ванили(в мапере проверил) через уст.флаг LightThru, все равно НПЦ не могут видеть ГГ, так как на объекте есть блокиратор (не уст.флаг NoBlock).
Не зацикливайся на скриптовой obj_can_see_obj, проверка на LightThru нужна в основном чтобы избежать движкового абсурда вроде "видимости" обижаемого на расстояние 40 гексов через кучу стен только потому что сопартиец случайно смотрит в его направлении.


#596 Fakeman

Fakeman

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

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

Отправлено 05 октября 2016 - 22:56

QUOTE
Сопартиец.

эээ, а причем тут сопартийцы ГГ, и зачем ему(Сопартийцу ГГ) видеть на 10*2*2.5=50 гексов -еще больше стало непонятно)))

Это сообщение отредактировано Fakeman - 5 октября 2016 | 23:00


#597 Crafty

Crafty

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

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

Отправлено 05 октября 2016 - 23:34

QUOTE (Fakeman)
эээ, а причем тут сопартийцы ГГ
QUOTE
Персонаж (ГГ или НПЦ), которого обидели, после получения урона запускает процедуру в которой все сопартийцы (team_num) в пределах is_within_perception_ которых находится обиженный входят в бой.
Для любого персонажа другой персонаж с такой же team_num является сопартийцем.


#598 Fakeman

Fakeman

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

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

Отправлено 06 октября 2016 - 00:22

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

Это сообщение отредактировано Fakeman - 6 октября 2016 | 01:53


#599 Fakeman

Fakeman

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

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

Отправлено 07 октября 2016 - 01:43

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

И почини пути Шейдеров — не работают после правки путей, видать не находит путь master_patches=data
Может это дело тоже через переменную фиксить, а то мало ли где-нибудь, когда-нибудь возникнут не стыковки в модах.

QUOTE
отключена обработка GVAR 491 GVAR_MODOC_SHITTY_DEATH
это что движковая гвара? — для каких целей она обрабатывается.

QUOTE
* Теперь эффект TurnHighlightContainers действует и на мёртвых персонажей.

Круто)
Теперь бы еще научить мышку цеплять трупы, если он упал за какой-нибудь объект.

CODE
;Set to 1 to allow attaching sound files to combat float messages
AllowSoundForFloats=1

какие такие sound files, такие разве есть?

CODE
;Set to 1 to enable functions relating to overriding the file system
UseFileSystemOverride=1

;Set to 1 to always reload messages, rather than only at map load
AlwaysReloadMsgs=0

Не в курсе для чего эти??? — у тебя кстати их нет в конфиге.

Это сообщение отредактировано Fakeman - 7 октября 2016 | 21:20


#600 Fakeman

Fakeman

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

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

Отправлено 07 октября 2016 - 19:14

CODE
CanSeeAndHearFix=1

Сколько не пытался так, и не увидел и не понял в чем конкретно заключается твой фикс, они как бегали на расстояние ВС х 2 х 2.5 = гексов через стенки так и продолжают.
Можешь на словах описать как должны стоять НПЦ, кто на кого должен смотреть, через стену или нет, чтоб хотя бы на живом примере увидеть это.
или же скрином из маппера.
QUOTE
я переписал оригинальную функцию с дополнениями. Используй хуковый скрипт, не?

Не это слишком сложно) тем более когда ты уже все сам там сделал, я просто добавлю немного водички :)
CODE
shl  eax, 1                               // eax = восприятие * 2
add  eax, ebp                             //  + восприятие source
notCombat:


У тебя в Changelogе не все исправления и добавления написаны. Не хватает.
Исправление сдвига положения курсора ГГ на глобальной карте, при выходе из локации.
Что-то там со скриптовой анимацией Amin в бою.
Исправление минусовых очков SPECIAL при создании персонажа.
Исправление obj_can_see_obj и obj_can_hear_obj
Исправление неправильной инициализации очков действия в начале каждого хода.

Кстати вот это зачем в ТRACE поместил, вроде нормальный баг исправляет.
// Исправление вызова damage_p_proc при промахах если цель не_персонаж

К этой бы тоже переменную замутил. Вроде не сложно.
// Исправление видимости предмета только в активной руке игрока для critter_inven_obj

Кстати combat_is_starting_p_proc очень даже пригодился мне.

CODE
sprintf(buf, "%s\\art\\heads\\%s\\%d.png"

это что сфалл головы PNG формата поддерживает?!!!
или что он такое делает с этими PNG файлами.

Это сообщение отредактировано Fakeman - 8 октября 2016 | 00:56




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

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


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

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

Рейтинг@Mail.ru