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

[SoC] Ковыряемся в файлах


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

SCRIPT

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

anim = wait

в другой ремарке - нужная тебе анимация.

Для переключения из одной секции в другую пишешь в первую условие

on_info ={+твой инфопоршень} remark@new

после получения указанного поршня непись переключится на remark@new а в ней отыграют анимацию которая будет сюда вписана.

 

смотри тему уроки по модостроению - там в посте Gruber'а есть мой урок по стоячим-сидячим анимациям NPC, который я выкладывал на Инсайд вики (под ником erlik)

Ссылка на комментарий
А имеет смысл конвертация строк в числовые коды ASCII?

может ли тут быть выигрыш по уменьшению размера данных?

Нет смысла. В лучшем случае, если таблица оптимизирована как массив, то займёт столько же места. И вообще, строка - это и есть последовательность ASCII кодов. Зачем её ещё куда-то переводить?

 

Кстати, если надо перевести строку в массив, то это можно сделать более элегантно и без цикла:

local t = {string.byte(s,1,#s)}

 

 

Плагины Total Commander для работы с игровыми архивами:

Архиваторный плагин (для работы с одиночным архивом): link1 link2

Системный плагин (для распаковки установленной игры): link1 link2

 

Ссылка на комментарий

Возвращаясь к управлению грави-пушкой или другим N-фазным скриптовым оружием (стр. 173 - 174):

 

кстати таким макаром можно отследить любую последовательность выстрелов (или нажатий на ЛКМ) - пишем условия:

если патронов 30 или 0 то ничего не делаем, также если патронов 29 то одно действие, также если патронов 28 - другое и т.д.

 

При таком подходе возникают не бросающиеся сразу в глаза моменты.

 

Допустим, с 30 патронов дошли до 20, десяток действий сделали. А потом игроку приперло нажать "разрядить оружие", как обычный автомат. И что получим в результате? Обрыв последовательности действий. При повторной зарядке тех же, только что разряженных 20 патронов последнее действие должно по идее выполниться повторно. Причем нельзя предсказать, какое именно окажется последним - десятое, двадцатое, двадцать восьмое... В результате - простор для глюков. Это если неоткуда взять таких же патронов. А если есть? Уже взяли, дошли до 20 патронов и игрок нажал "перезарядить"? Ой!

С ПЗРК у меня на этом глюке можно было вначале делать ракеты из воздуха, просто разряжая оружие. Потом это безобразие прикрыл, но не до конца.

 

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

 

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

 

Например, с сохранением надо что-то специально думать. Как вариант - вообще наплевать на него, в ПЗРК в 90% случаев это ничего не изменит, исключение - сейв с активированной ракетой, при загрузке состояние должно по идее сброситься. В грави-пушке не сохраняемость проявится только при сейве с захваченным объектом - при загрузке он должен будет по идее упасть на землю,что мало когда что-то сможет изменить.

 

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

 

Мои работы:

Ночные прицелы + смена ножевого слота

AI вертолетов + ПЗРК

Soul Cube

 

Работаю только с ТЧ. С ковырянием ЧН/ЗП не связываюсь ни в какой форме. Совсем.

Ссылка на комментарий
Ой,не по теме,но ты не знаешь на паскале аналогичный способ без цикла?Ато как раз понадобилось :)

Увы, не знаю. В Lua эта возможность завязана на списки значений. В C++ я бы покрутил с STL и её алгоритмами. А в Паскале не знаю =(

 

Перекидываю следующий код в тест.луа

db.actor:transfer_money(num, db.actor)

Деньги не уходят.

Ты ж сам себе передаёшь. Конечно не уходят.

 

А потом игроку приперло нажать "разрядить оружие", как обычный автомат. И что получим в результате? Обрыв последовательности действий.

Патроны из инвентаря тут же удалить, ствол скриптом перезарядить.

Чтобы мельтешение патронов не бросалось в глаза, либо удалить статик с индикатором (если можно), либо прикрыть его своим

 

Плагины Total Commander для работы с игровыми архивами:

Архиваторный плагин (для работы с одиночным архивом): link1 link2

Системный плагин (для распаковки установленной игры): link1 link2

 

Ссылка на комментарий

Ray,

Посмотри внимательней. Тоже сам себе передаёшь.

 

function relocate_money(victim, num, type)

...

db.actor:transfer_money(num, victim)

...

end

 

dialogs.relocate_money(actor, item_repair_cost, "out")

 

 

ЗЫ: вредно ночами сидеть =)

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

Плагины Total Commander для работы с игровыми архивами:

Архиваторный плагин (для работы с одиночным архивом): link1 link2

Системный плагин (для распаковки установленной игры): link1 link2

 

Ссылка на комментарий

Ray, есть разница.Если у тебя start_dialog а у шашки actor_dialog или наоборот.

 

ибо не

actor, trader

а

first_speaker,second_speaker

Изменено пользователем Monnoroch
Ссылка на комментарий

Ray, Это потому,что некоторые люди пишут странные функции.В смысле аргументы называют криво.И сбивают с толку.

А у ПЫС везде как надо написано.

Изменено пользователем Monnoroch
Ссылка на комментарий
а какой прок тогда вообще от этой функции - string.byte() ?
Здесь - мало проку. Я полагаю, что нужна она при чтении/записи строк в бинарный файл

 

 

Ray,

поставь отладочный вывод в консоль и проверь, кто такой actor.

 

Плагины Total Commander для работы с игровыми архивами:

Архиваторный плагин (для работы с одиночным архивом): link1 link2

Системный плагин (для распаковки установленной игры): link1 link2

 

Ссылка на комментарий
Патроны из инвентаря тут же удалить, ствол скриптом перезарядить.

Чтобы мельтешение патронов не бросалось в глаза, либо удалить статик с индикатором (если можно), либо прикрыть его своим

 

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

Как вариант - поставить ловушку в колбэке на получение предметов и смотреть каждый раз, что получаем, если данные патроны - удаляем. Это уже ближе к истине.

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

 

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

 

В любом случае, без дополнительных параметров все равно не обойтись, и их получается едва ли не больше, чем в варианте с однозарядным магазином и параметром фазы работы оружия. Поэтому, ИМХО, многозарядный магазин порождает больше проблем при окончательной настройке, чем решает на первый взгляд.

Мои работы:

Ночные прицелы + смена ножевого слота

AI вертолетов + ПЗРК

Soul Cube

 

Работаю только с ТЧ. С ковырянием ЧН/ЗП не связываюсь ни в какой форме. Совсем.

Ссылка на комментарий
malandrinus, Ой,не по теме,но ты не знаешь на паскале аналогичный способ без цикла?Ато как раз понадобилось :)

а и делать ничего не надо, так как в паскале тип String это на самом деле указатель на первый символ строки. переводить ничего не надо s[1] - доступ к первому символу строки s :grin2:

118 101 110 105 44 32 118 105 100 105 44 32 118 105 99 105
Ссылка на комментарий

n6260

 

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

 

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

Мои работы:

Ночные прицелы + смена ножевого слота

AI вертолетов + ПЗРК

Soul Cube

 

Работаю только с ТЧ. С ковырянием ЧН/ЗП не связываюсь ни в какой форме. Совсем.

Ссылка на комментарий

Garry_Galler спасибо, будем пробовать!

 

народ, у кого есть ссылка на урок по подключению чновских карт и моделей к тч?

 

Сообщение от модератора n6260
Почитай тему мапперов в "разработках".

 

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

это ладно. лок можно скачать. а вот что насчет моделей?

Сообщение от модератора n6260
Моделей тож валом навыдергивали...

Thank you for your honesty.

Now fuck off and die.

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

 

Вот такой вопрос у меня, насчёт активации артефактов: При двойном клике по артефакту в рюкзаке, он повляется в руках и можно уже активировать, вот активировали выбросили на землю и вот аномалия появилась (ну все знают). А вот вопрос: как сделать так, чтобы при двойном клике в рюкзаке по артефакту, он сразу же сам выкидывался и создавалась аномалия (точнее: полностью исключив анимацию активации артефакта). Заранее спасибо!

ЯДиск папка с крутым схроном!

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

 

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

не в тему: народ, кто мне может скинуть папку textures от амк мода, оч надо.

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

Thank you for your honesty.

Now fuck off and die.

Ссылка на комментарий

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

Комментарии могут оставлять только зарегистрированные пользователи

Создать аккаунт

Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!

Зарегистрировать новый аккаунт

Войти

Есть аккаунт? Войти.

Войти
  • Недавно просматривали   0 пользователей

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