Перейти к контенту

Внимание. На форуме проводятся технические работы с боковым меню.

_Val_ _Val_

Скриптование


Svoboда

Рекомендуемые сообщения

Vano_Santuri, вот это: local Tbl="TblMsges_"..ComTbl, дает строку, а не таблицу. Вот insert и не работает.

Поделиться этим сообщением


Ссылка на сообщение

Desertir,

local key = "key_1"
if db.storage[db.actor:id()].pstor[key] then
   db.storage[db.actor:id()].pstor[key] = nil
end

Из АМК :)

Поделиться этим сообщением


Ссылка на сообщение
_Призрак_, открой в hex редакторе файл модели, в конце прописаны доступные анимации. У сталкеров прописаны все анимации из stalker_animation.omf, а у монстров анимации по отдельности. У той же химеры, например, анимации "idle" нет. Возможно, поэтому у тебя вылет. Изменено пользователем KD87

Поделиться этим сообщением


Ссылка на сообщение
Лёха_тц, бери секции с section_name = physic_object.

Поделиться этим сообщением


Ссылка на сообщение
Shadows, регулярным выражением. В Lua это вроде через string.find(). Только совсем непонятен смысл этой чехарды.

Поделиться этим сообщением


Ссылка на сообщение
AndreySol, получить просто - берешь декомпилятор, декомпилишь xrGame.dll и смотришь размер :) Для ТЧ - 8 Кб, для ЧН и ЗП - 16 кб. Pstor же в нет-пакет сохраняется, а других способов получить размер нет-пакета нет. Как и невозможно определить момент переполнения нет-пакета при записи.

Поделиться этим сообщением


Ссылка на сообщение
_Призрак_, анимации задаются для модели при ее изготовлении. Почему они должны быть общими? Если нужен полный список, смотри в самой модели, лучше способа не придумаешь.

Поделиться этим сообщением


Ссылка на сообщение
Ааз, как меняешь, чем распаковываешь? Обязательно надо проставить upd:condition = 1.

Поделиться этим сообщением


Ссылка на сообщение

Artos, все так и есть. Добавлю только, что есть также параметр condition, который изменяется от 0.0 до 1.0. Оба параметра должны друг другу соответствовать. Впрочем, движок отдает предпочтение upd:condition :) Модель оружия никак не может влиять на его состояние.

Callisto, если параметр в all.spawn равен дефолтному значению (для 'ammo_elapsed' это 0, ствол разряжен), он не печатается. Если нужно поменять такой параметр - просто добавь его в распакованный спавн.

Поделиться этим сообщением


Ссылка на сообщение
*Shoker*, universal acdc имеет функцию parse как раз для замены вертексов в спавне :)

Поделиться этим сообщением


Ссылка на сообщение
*Shoker*, класс предмета в функции eat() должен наследовать от CEatableItem. Оружие и броня от него не наследуют. use() среди методов game_object в ТЧ нет, про остальные сказать не могу.

Поделиться этим сообщением


Ссылка на сообщение
strelok200, дык он сразу в оффлайн уводится, скорее всего. Для того, чтобы монстр заспавнился по заданным координатам с помощью spawner, ему надо поставить флажок no_move_in_offline и отключить can_switch_offline. Или в СДК, или в object_flags. Изменено пользователем KD87

Поделиться этим сообщением


Ссылка на сообщение

Кое-чего выяснил в процессе копания в update-части нет-пакета оружия.

Нижеследующие параметры есть у любого оружия

1) upd:weapon_flags

Значения: 0 - оружие спрятано, 1 - оружие в руках

2) upd:ammo_elapsed

Остаток патронов в стволе

3) upd:addon_flags

Навешанные аддоны. Бинарный флаг по сути, но распишу подробней:

0 - нету

1 - прицел

2 - гранатомет

3 - прицел+подствольный гранатомет

4 - глушитель

5 - прицел + глушитель

6 - подствольный гранатомет + глушитель

7 - все сразу

4) upd:ammo_type

Тип патронов. 0 - обычные, 1 - бронебойные. Если есть еще - идут в порядке повышения убойности (так вроде)

Если не полностью расстрелять магазин и поменять тип патронов, upd:ammo_type изменится для всего магазина.

5) upd:weapon_state

Самое интересное. Это состояние оружия:

0 - в руках, idle

1 - стрельба выстрел пулей/дробью (или удар ножом)

2 - альтернативный удар (только нож)

3 - перезарядка

4 - достается

5 - убирается (или выбрасывается)

6 - спрятано

7 - заклинило

8 - ??? выстрел из подствольника (в режиме огня "А"-автомат)

9 - включение/выключение подствольного гранатомета

6) upd:weapon_zoom

Состояние зума оружия: 0 - обычное состояние, 1 - прицел (зажатая правая мышка).

 

Нижеследующие параметры есть у всего, кроме ножа

7) upd:current_fire_mode

Текущий режим огня. 0 - одиночными, 1 - два патрона, 2 - очередью. Если режима по 2 патрона у оружия нет, то режим очередью будет 1.

 

Нижеследующие параметры есть только у стволов с возможностью крепления подствольника

7) upd:grenade_mode

Режим подствольника. 0 - выключен, 1 - включен

 

Нижеследующие параметры есть только у дробовиков и ружей

8) upd:ammo_ids

Количество оставшихся патронов в стволе. Полностью дублирует upd:ammo_elapsed, зачем - непонятно.

Изменено пользователем Artos
  • Полезно 2

Поделиться этим сообщением


Ссылка на сообщение

abramcumner, ammo_ids всегда равен ammo_elapsed. Проверял для всех дробовиков, с разными типами патронов, с разным количеством патронов разных типов. Так в ТЧ, по крайней мере.

Artos, ну так они и должны соответствовать :) А что в ACDC надо поправить с твоей точки зрения?

Zander_driver, честно говоря, не знал, что режимы стрельбы можно добавить в конфигах :)

Поделиться этим сообщением


Ссылка на сообщение

Капрал Хикс, повесь в биндер объекта hit_callback. В вызываемой функции считай расстояние. Как-то так, я думаю:

function generic_physics_binder:hit_callback(obj, amount, local_direction, who, bone_index)
     local dist = self.object:position():distance_to(who:position())
     if dist > 100 then
          db.actor:give_info_portion(...)
     end
end

 

Добавлено через 5 мин.:

Полтергейст, а оно разное от объекта к объекту. Зависит от наличия/отсутствия строковых параметров у объекта - кастом дата, character_profile и т.д. Разбирай пакет полностью.

Поделиться этим сообщением


Ссылка на сообщение

Полтергейст, формат нет-пакетов одинаковый в патчах 1.0002-1.0006, можешь использовать функции амк.

Неудивительно, что виснет. Первый аргумент метода - id объекта, а не он сам. Также есть еще метод remove_all_restrictions() для клиентского объекта. Правда, в таком случае удаляются и out-рестрикторы.

Изменено пользователем KD87

Поделиться этим сообщением


Ссылка на сообщение

Artos, не буду возражать в целом, но best_danger() все-таки возвращает самый опасный объект. А кто его знает, как движок обрабатывает эти объекты, аномалии вполне могут считаться малоопасными, по сравнению со шмаляющим из ружья сталкером :)

От себя могу предложить еще такой вариант - итератор memory_sound_objects() класса game_object. Он предоставляет возможность перебирать объекты в памяти сталкера (типа sound_memory_object), из которых легко получить обычные клиентские объекты, издававшие звук. Сталкер помнит 32 объекта по дефолту, но это можно поменять в конфигах. Разумеется, не буду говорить, что это лучший способ, но про такой вариант тоже можно помнить.

Изменено пользователем KD87

Поделиться этим сообщением


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

Поделиться этим сообщением


Ссылка на сообщение

strelok200, нет.

Dennis_Chikin, сразу не обратил внимания (я в lua с регулярками не работал), но тут, скорее всего, неправильное регулярное выражение в первой строке. "(.+)[.](.+)" означает "много любых символов, массив любых символов, снова много любых символов". Чтобы это превратить в "два массива символов, разделенные точкой", нужно как-то так, наверное: "(.+)\.(.+)"

Изменено пользователем KD87

Поделиться этим сообщением


Ссылка на сообщение
  • Недавно просматривали   0 пользователей

    • Ни один зарегистрированный пользователь не просматривает эту страницу.
×
×
  • Создать...