Malandrinus
Жители-
Число публикаций
1 930 -
Регистрация
-
Последнее посещение
-
Дней в топе
13 -
AMKoin
160 [Подарить AMKoin]
Весь контент пользователя Malandrinus
-
Справочник по функциям и классам
Malandrinus ответил на тему форума автора Malandrinus в Скрипты / конфиги / движок
AndreySol, кастомстатики, создаваемые через ui_custom_msgs.xml, - достаточно специфические. Если нужны с ними изыски, то лучше всего непосредственно в ui_custom_msgs.xml ничего не создавать, только пустое окно без текстуры и вообще всего. А само наполнение сделать отдельно и поместить на статик с помощью AttachChild. С этим окном уже все операции будут работать без проблем. Я ничего не понял. Что такое базовый статик? ставят/снимают флажок автоудаления окна при его отсоединении от родительского или удалении родительского. -
SkyLoader, Возможно мусор остался, не помню уже. Для этих целей сделана функция получения целого по смещению от начала объекта get_actor_int. Надо только знать смещение, по которому лежит нужный флажок.
-
Real Wolf, Проверяйте последнюю версию, там с этим должно быть в порядке.
-
Язык Lua. Общие вопросы программирования
Malandrinus ответил на тему форума автора Malandrinus в Скрипты / конфиги / движок
RvP, В первом приближении, мешает отсутствие у тебя этих самых классов. Впрочем, если сможешь это сделать, было бы действительно замечательно. То, как делаются расширения сейчас, иначе как мазохизмом не назвать. -
Universal ACDC и другие perl-скрипты
Malandrinus ответил на тему форума автора KD87 в Инструментарий
KD87, новые сеты (пары клиентский/серверный класс) добавляются через class_registrator.script. Ничем не отличаются от встроенных движковых. Это автоматом добавляет как новую константу к перечислению clsid, так и новую константу вида ZS_ICE для использования в секциях в параметре class. здесь я это описывал -
Artos, всё-таки nil записывается, поскольку это - одно из возможных значений переменных, такое же законное, как и любое другое. Будет при этом удалена переменная или нет, зависит от того, где она находится. Если в стеке, то никуда не денется до конца блока кода, если в таблице, то будет удалена при определённых условиях. Насчёт таблиц мы же это даже вместе выясняли.
-
Artos, Нет строки в конфиге. Только через SDK/аллспавн/нетпакеты.
-
Artos, А зачем нетпакетом? Есть же вроде get_ammo_in_magazine
-
Artos, ты прав, на самом деле вызывается при переходе в онлайн. Однако, других моментов, когда это ещё вызывается, я пока не вижу. разница может быть как небо и земля. Я сам, к примеру, использую перепаковку нетпакетом кастомдаты оружия. Это кстати можно в онлайне делать. А как сходу отличить вызов скриптом и вызов движком? Разве только по значению w_tell. Так вот это скорее всего скриптовые вызовы, поскольку в движковых в нетпакете уже есть данные cse_abstract и w_tell как раз и даёт их размер.
-
Artos, Ещё раз, это не подтверждается моими наблюдениями. Специально взял чистую игру, выдал себе автомат, пострелял, убрал в оффлайн, вывел обратно в онлайн. Ничего такого нет. STATE_Read/Write вызываются строго один раз при появлении офлайнового объекта, и всякий раз при записи сохранения. Выход объекта в онлайн/уход в онлайн тоже на этом никак не сказывается. Проверь сам, только возьми чистую игру.
-
Artos, Это противоречит тому, что я знаю. По моим данным, вызов STATE_read/write не при записи/сохранении - результат прямого вызова этих методов со стороны скриптов, и при этом всегда в нём отсутствует начальная часть cse_abstract по понятным причинам. В немодифицированной игре эти вызовы происходят строго при загрузке/сохранении за исключением пары случаев, когда этими манипуляциями занимаются сами авторы игры (они и сами этим грешили, есть такое дело). Серверные данные переписываются постоянно, это факт, но вызовы STATE_read/write в этом не участвуют. Внутри движка клиентская часть имеет прямой доступ к серверной, и в этом попросту нет необходимости.
-
Artos, а что не так? Закомментирован кусок кода блочным комментарием, но фрагмент синтаксически корректен. Добавлено через 11 мин.: _Призрак_, Доуточню то, что выше сказал Artos. Поля из cse_abstract доступны в STATE_Write только в момент создания объекта. При этом нетпакет уже заполнен этими данными, но они ещё не прочитаны движком. Если в этот момент перепаковать пакет, то можно всё там поменять. По поводу физики и вращения. Это требует специального визуала для объекта. Надо добавить что-то типа маховика с вращательной степенью свободы. Затем методами класса сочленения (джоинта, вроде как) вращаешь маховик в одну сторону, а весь объект крутится при этом в другую. Точных названий классов сейчас не припомню, но можешь глянуть модуль управления дверью. Двери открываются как раз физическим вращением, и эти команды для этого и были экспортированы.
-
Dennis_Chikin, По идее, работает для CInventoryOwner, к коим относятся актор, сталкеры, монстры и торговец (отдельный класс, единственным представителем является Сидор). Только правильно ли ты эту функцию используешь? Вот нормальное описание, которое всё руки не доходят выложить в справочник. void set_relation(enum ALife::ERelationType <relation>, game_object* <who>) // установка отношения // на самом деле это просто установка персональной благосклонности (что можно напрямую сделать с помощью set_goodwill) // в соответствии с параметрами из секции "game_relations" // (это как правило файл "config\creatures\game_relations.ltx", входящиё в system.ltx) // константа | параметр в секции game_relations | значение в оригинальной игре // --------------------+----------------------------------+------------------------------ // game_object.enemy | goodwill_enemy | -1000 // game_object.neutral | goodwill_neutal | 0 // game_object.friend | goodwill_friend | 1000
-
SkyLoader, Обратная dik_to_bind, переводит код клавиши в код назначенной ей команды.
-
KD87, Нету
-
Справочник по функциям и классам
Malandrinus ответил на тему форума автора Malandrinus в Скрипты / конфиги / движок
Для нажатий клавиш есть колбеки для ТЧ и ЧН в модифицированных dll. -
Язык Lua. Общие вопросы программирования
Malandrinus ответил на тему форума автора Malandrinus в Скрипты / конфиги / движок
RvP, Основные претензии к встроенному random не столько насчёт скорости, сколько по поводу качества. Каково происхождение новой функции? Работает ли с ней randomseed? -
Язык Lua. Общие вопросы программирования
Malandrinus ответил на тему форума автора Malandrinus в Скрипты / конфиги / движок
Gun12, Поделились бы что-ли. Всех проблем это не решает, но во многих вопросах развязывает руки: отладка, работа с файлами, или подключить те же сторонние либы с полноценными регулярными выражениями или парсингом XML, пользы много. -
Zander_driver, Принципиально неверный подход. Ты смешиваешь понятия "представление" и "конверсия/преобразование". Преобразовывать надо значения тогда и только тогда, когда надо чтобы значение изменилось, как бы тривиально это ни звучало. Задача представить значение в каком-то виде: сколько-то знаков после запятой или в некой системе счисления, - это совсем другое. Значение при этом не меняется, только создаётся некая временная строка для показа её хуману. Так вот, round и иже с ними - это конверсия, format - это создание представления.
-
Real Wolf, Если вызываемая функция - локальная, то убедись, что она стоит перед местом, откуда вызывается.
-
Real Wolf, Так и задумано, всё правильно сделал. Активный колбек на нажатие клавиш вызывает вылет между загрузками. Разбираться в причинах было лень, потому просто сделал затычку. Ну и в общем полезно иметь функцию отключения. Не все колбеки одинаково полезны =)
-
Справочник по функциям и классам
Malandrinus ответил на тему форума автора Malandrinus в Скрипты / конфиги / движок
Real Wolf, Очепятался. Спасибо, что заметил. Это странно, поскольку я проверил весь допустимый диапазон [-128, 127] и работает именно так, как я написал. Т.е. пишем с помощью w_u8 отрицательное число и без проблем читаем его с помощью r_s8. Какой движок используешь для теста? Приведи пожалуйста код. P.S.: информацию в посте поправил. -
[CoP] Ковыряемся в файлах
Malandrinus ответил на тему форума автора Halford в Скрипты / конфиги / движок
Да не нужны нетпакеты для изменения флагов flCanSwitchOffline/flCanSwitchOnline. Я выше написал, какие функции за это отвечают. Информация по флажкам, которую смог нарыть сам. Флажок двоичное дес. Функция-аксессор * назначение ====================================================================== flUseSwitches 0000000000001 1 используется только редактором level editor из SDK и отвечает за видимость в редакторе флажков flSwitchOnline и flSwitchOffline flSwitchOnline 0000000000010 2 can_switch_online возможность перехода в онлайн flSwitchOffline 0000000000100 4 can_switch_offline возможность перехода в оффлайн flInteractive 0000000001000 8 interactive ** Такое ощущение, что ни на что не влияет flVisibleForAI 0000000010000 16 используется на клиентской стороне, в частности для зон отвечает за возможность реакции на контакт flUsefulForAI 0000000100000 32 кроме участия в interactive имет смысл для инвентарного предмета, в частности, влияет на торговлю flOfflineNoMove 0000001000000 64 move_offline по идее должен отвечать за отсутствие движения в оффлайне, но не используется flUsedAI_Locations 0000010000000 128 used_ai_locations*** При спавне будет привязан к сетке, при наличии таковой под объектом. Иначе будет создан в воздухе. flGroupBehaviour 0000100000000 256 неизвестно flCanSave 0001000000000 1024 can_save Сохранять ли объект. Если флажок снят, то при перезагрузке объект исчезнет. flVisibleForMap 0010000000000 2048 visible_for_map Устанавливает видимость на миникарте flUseSmartTerrains 0100000000000 4096 неизвестно flCheckForSeparator 1000000000000 8192 неизвестно * Для многих объектов соответствующая функция не связана с флагом, а имеет логику, специфичную для данного объекта. ** Функция interactive также учитывает флажки flVisibleForAI и flUsefulForAI *** В ЗП имеется функция для установки флажка use_ai_locations(bool). Обратите внимание, имя отличается от функции для чтения флажка. -
[CoP] Ковыряемся в файлах
Malandrinus ответил на тему форума автора Halford в Скрипты / конфиги / движок
Clayman, Эти галки есть у всех объектов во всех версиях SDK, поскольку это базовый серверный флажок, но эффект имеют разный, примерно как я описал выше. -
Язык Lua. Общие вопросы программирования
Malandrinus ответил на тему форума автора Malandrinus в Скрипты / конфиги / движок
Не все действия требуется делать с максимальной частотой, некоторые действия надо просто сделать "когда-то". Ставим низкоприоритетные действия в очередь. При очередном обновлении выполняем очередное действие из очереди, они естественным образом "размазываются" по времени. На каждый апдейт вешаем только то, что реально требует быстрой реакции: имитацию критического хита, к примеру (требует мгновенной реакции на падение здоровья). Остальные стоят в очереди =)
- [ЧН] OGSM CS 1.8 CE Fixes
- [ЧН] HARDWARMOD 3.2
- [ЗП] The Long Road
- [ЧН] New vision of War
- [ЧН] Old Good Stalker Mod - Clear Sky
- [ЗП] Unofficial Patch
- [ЗП] Смерти вопреки
- [ЗП] Контракт на хорошую жизнь
- [ЗП] Shoker Weapon Mod 2.1
- [ЗП] Hardcore pack for SGM 2.2
- [ЗП] Контракт Синдиката
- [ЗП] Клондайк 2.0
- ...и другие моды