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

Справочник по функциям и классам


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

2. Не считаю себя знатоком всех возможностей XML, но все же чего-то знаю. Тем не менее, последнее время стал предпочитать именно вариант 'без XML'.

'Правильность' - понятие все же относительное, тем более в подобном вопросе (какой метод правильнее применять). Можно назвать немало ситуаций, когда применение скриптового метода будет 'не менее, и даже более правильным'. :-)

Отделение данных(читай описание интерфейса) от кода всегда правильно. Код пишет скриптер, интерфейс рисует дизайнер. Вроде бы нет сомнений, что данные надо выносить в лтх, хотя можно спокойно закодить их в скрипте. Также и с интерфейсом.

 

Мало кто уделяет дизайну должное внимание но ... если принять во внимание, что метод XML расчитан в основном на разрешение 4:3, и еще позволяется 16:10 дублированием уже имеющегося, то для немало уже появившихся ноутбучных экранов с их 16:9, 15x9 или 5x4 применение XML метода становится похоже на "взять болванку и обработать топором и рашпилем".

Проблема с разными разрешениями при работе с хмл надуманная. В работе с хмл нет завязки на разрешение 4:3. Что мешает сделать несколько хмл с разными именами и загружать нужный для данного разрешения.

 

А с учетом нижесказанного, так и вообще.

 

Исходно, скриптовой метод - вариант низкоуровневого применения и более гибок по отношению к XML методу, хотя и имеет недостатки, обусловленные закрытыми в движке дополнительными возможностями для XML. Правильнее применять оптимальный метод к 'месту и по контексту' в зависимости от конкретных целей и задач.

Собственно да, хочешь тот же многострочный статик - только хмл

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


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

Kirag,

а почему выбрана именно функция r_stringZ? может лучше на r_u32 проверять?

Просто функция r_stringZ читает строку до символа'/0', а такой в файлах конфигов, например, не встречается.

А так запросто может и переполнение буфера быть.

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


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

singapur22,

:)

    for i=0, 1000000 do j = tbl[1] end

Время то хоть зависит от длины цикла?

 

Далее. Имеется различие в скорости считывания данных из таблицы, при числовых и строчных ключах. Работая с алгоритмами матриц, обратил внимание, что строчные ключи считываются на ~10...50% быстрее, чем числовые(индексированные), не зависимо от длин имён. По крайней мере, при длинах имён в 1 и 10 символов, различий замечено не было:

Следующий тест не проверяет, что индексированные медленнее. У тебя там нет никакого индексированного доступа, так как это уже хеш-таблица.

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

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


Ссылка на сообщение
правильно ли я понимаю, что npc:critically_wounded() возращает не false/nil примерно на время, когда проигрывается анимация ранения ? Что она вообще такое на самом деле ?

Да, true выдается во время проигрывания анимации ранения, остальное время false

Зависит от значений конфига critical_wound_threshold и critical_wound_decrease_quant. Если critical_wound_threshold меньше 0, анимации не проигрываются.

Для определения момента начала проигрыша анимации заводится счетчик. Он увеличивается при каждом хите на итоговый power хита, и каждую секунду уменьшается на critical_wound_decrease_quant. Когда значение счетчика больше или равно critical_wound_threshold, стартует анимация. Анимация проигрывается в зависимости от кости, в которую попали последний раз.

 

а npc:wounded() - это когда хиты непися ушли за некое пороговое значение (и кстати вот здесь примерно он должен лечь совсем ?)

Как оно связано с конфигами ?

С конфигами никак не связано. Устанавливается исключительно из скриптов, в движке никак не задается, но используется. Пороговые значения задаются в xr_wounded.script

  • Полезно 1

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


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

_Призрак_,

надо просто приаттачивать после открытия инвентаря, пда - тогда будет сверху

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


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

@*Shoker*,

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

Оружие выбирается в соотвествии с common\weaponeffectiveness.efd

Что касается ЗП: параметры очередей и диапазоны растояний настраиваются в конфигах.

min_radius, max_radius читаются из конфига, но не используются. Они и не нужны, так как расстояние учитывается в weaponeffectiveness.efd

fire_distance - вообще используется только при расчете полета пули, на выбор никак не влияет.

  • Нравится 1

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


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

@Dennis_Chikin, нет, в оригинале тоже не работает. При переходе оффлайн/онлайн данные биндера очищаются. Не помогает даже

function se_...:keep_saved_data_anyway()
  return true
end
И так не только у монстров :)
  • Спасибо 1

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


Ссылка на сообщение
@Карлан, то есть тебе неизвестно помогает или нет, так как ты пользуешься своим механизмом сохранения :) Изменено пользователем abramcumner

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


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

@Карлан, в коде движка прямо прописана очистка данных биндера при выходе в онлайн - с ним не может быть все в порядке. Может быть модифицированный движок?

 

Кстати как ты проверяешь, что все в порядке?

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

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


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

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

×
×
  • Создать...