Случайная подборка модов
Dream Reader-TFZ 1.1
3.7
На Болотах
3.7
Новый Арсенал 4.5
3.7
Контракт на плохую жизнь: Эффект бабочки
3.7
Oblivion Lost Remake 2.5
4.4
Последний день
3.5
Последние обновленные темы Прямой эфир Самые популярные темы Последние новости
  • Страница 1 из 7
  • 1
  • 2
  • 3
  • 6
  • 7
  • »
Модератор форума: FanG, Аdmin, FantomICW, Overfirst  
Форум » S.T.A.L.K.E.R. Модификации » Помощь в моддинге » Скрипты, конфиги, логика, движок » Скрипты (Небольшие уроки для новичков, но с углубленным объяснением.)
Скрипты
Российская Федерация  DukeKAn
Суббота, 04.01.2014, 13:24 | Сообщение # 1
Статус:
Неопытный:
Сообщений: 491
Награды: 8
Регистрация: 25.11.2012

Все уроки кроме вертолёта для платформы Тень Чернобыля.

Про внутреннее устройство игры



Общие вопросы программирования



Использование класса биндера.



Модели поведения НПС



Создание окон



Установка и использование перехватчика клавиатуры



Инструментарий



Вертолёт

Сообщение отредактировал DukeKAn - Вторник, 01.12.2015, 00:36
  Злобная реклама
Суббота, 04.01.2014, 13:24
Статус:
Сообщений: 666
Регистрация: 25.11.2012
Российская Федерация  Rezon
Суббота, 04.01.2014, 13:32 | Сообщение # 2
Статус:
Бывалый:
Сообщений: 665
Награды: 2
Регистрация: 27.08.2013

Спасибо :)
  Злобная реклама
Суббота, 04.01.2014, 13:32
Статус:
Сообщений: 666
Регистрация: 27.08.2013
Российская Федерация  Stalker_Monstr
Суббота, 04.01.2014, 13:43 | Сообщение # 3
Статус:
Отмычка:
Сообщений: 194
Награды: 8
Регистрация: 30.01.2013

Довольно таки интересно.
  Злобная реклама
Суббота, 04.01.2014, 13:43
Статус:
Сообщений: 666
Регистрация: 30.01.2013
Украина  BozKurt
Суббота, 04.01.2014, 18:06 | Сообщение # 4
Статус:
Опытный:
Сообщений: 1753
Награды: 3
Регистрация: 25.05.2012

Имхо, много воды. Не ясно, что именно ты хочешь донести до читателя: как сделать постэффект от потери здоровья или разъяснить, что такое ООП, на примере класса generic_pda_binder? Если первое - то это урок для копипаста, а если второе - то почему теория в конце; выходит, что сначала стреляем, а потом предупреждаем. Ну а если всё и сразу, то ничего не вышло - те кто это и так знали, нового ничего не узнали, а те кто не знал - запутались ещё больше.
Идея в целом хорошая, но смысла ты не донёс.
  Злобная реклама
Суббота, 04.01.2014, 18:06
Статус:
Сообщений: 666
Регистрация: 25.05.2012
Российская Федерация  DukeKAn
Суббота, 04.01.2014, 19:44 | Сообщение # 5
Статус:
Неопытный:
Сообщений: 491
Награды: 8
Регистрация: 25.11.2012

ColR_iT, Не соглашусь, а именно с тем, что
Цитата ColR_iT ()
а те кто не знал - запутались ещё больше
- вы-то как раз знали, и вам это смысла объяснять нет. Мне скорее интересно мнение новичков, что в скрипте не понятно. А идея - простая, топики именно теоретические, а моды- просто как примеры.
  Злобная реклама
Суббота, 04.01.2014, 19:44
Статус:
Сообщений: 666
Регистрация: 25.11.2012
Российская Федерация  KoSShак
Суббота, 04.01.2014, 20:08 | Сообщение # 6
Статус:
Гость:
Сообщений: 47
Награды: 2
Регистрация: 10.11.2013

Не понимаю, можно постэффект сделать через хит калбек и не париться. Делаешь проверку на хит и запускай себе любой эффект!
  Злобная реклама
Суббота, 04.01.2014, 20:08
Статус:
Сообщений: 666
Регистрация: 10.11.2013
Украина  BozKurt
Суббота, 04.01.2014, 23:09 | Сообщение # 7
Статус:
Опытный:
Сообщений: 1753
Награды: 3
Регистрация: 25.05.2012

DukeKAn, не соглашаешься потому, что это писал ты, а мнение новичков ты вряд ли увидишь, т.к. не понимают они то о чём здесь написано, как следствие высказать мысль не о чём.
Если целью всё же было объяснить принцип работы класса object_binder, то и сделай его описание начиная с теории, а не говоря о ней в конце, когда большинство новичков не дочитывают до этого момента ибо не понимают о чём речь.

KoSShак, в ТЧ, например, у актора нет колбека на хит.
  Злобная реклама
Суббота, 04.01.2014, 23:09
Статус:
Сообщений: 666
Регистрация: 25.05.2012
Казахстан  Max_Warlock
Суббота, 04.01.2014, 23:41 | Сообщение # 8
Clear Sky - Remake
Статус:
Опытный:
Сообщений: 1552
Награды: 4
Регистрация: 18.01.2013

очень хороший и подробный туториал. Спасибо.
  Злобная реклама
Суббота, 04.01.2014, 23:41
Статус:
Сообщений: 666
Регистрация: 18.01.2013
Российская Федерация  DukeKAn
Воскресенье, 05.01.2014, 00:11 | Сообщение # 9
Статус:
Неопытный:
Сообщений: 491
Награды: 8
Регистрация: 25.11.2012

ColR_iT,
Цитата ColR_iT ()
большинство новичков не дочитывают до этого момента ибо не понимают о чём речь.
Да, возможно и так. В будущих уроках учту эти моменты
  Злобная реклама
Воскресенье, 05.01.2014, 00:11
Статус:
Сообщений: 666
Регистрация: 25.11.2012
Казахстан  Max_Warlock
Среда, 08.01.2014, 07:45 | Сообщение # 10
Clear Sky - Remake
Статус:
Опытный:
Сообщений: 1552
Награды: 4
Регистрация: 18.01.2013

И сколько функций можно навесить на ПДА таким образом? Есть вообще смысл разгружать апдейт актёра подобным образом? Знающие люди, отпишитесь, плиз.
  Злобная реклама
Среда, 08.01.2014, 07:45
Статус:
Сообщений: 666
Регистрация: 18.01.2013
Российская Федерация  DukeKAn
Среда, 08.01.2014, 19:57 | Сообщение # 11
Статус:
Неопытный:
Сообщений: 491
Награды: 8
Регистрация: 25.11.2012

Max_Warlock, Навесить можно сколько угодно, но тут, разумеется, тоже надо иметь меру, если перестараться, то лагать уже будет из-за ПДА. Тут надо понимать, что если апдейт нужен не мгновенный, а допускается небольшая пауза, то можно выполнять все нужные вам действия не на каждой итерации (т.е., к примеру, 3 итерации апдейта ничего не делается, на 4 - выполняется действие).
Есть и лайфхак, к примеру, возможность создать свой предмет и на него прикрепить такой биндер, а при необходимости его удалять, получается, что апдейт будет выполняться, только если у ГГ есть этот предмет. Хотя есть и другой способ это реализовать. Ценность биндера также в возможности добавить коллбэк и в методах save/load, которые я опустил, позже допишу урок с их использованием.
Ещё замечание - апдейт выполняется несколько чаще, чем у актора, просто потому, что на нём в чистом виде ничего не выполняется, а вот на апдейте актора навешано и в оригинале много.
  Злобная реклама
Среда, 08.01.2014, 19:57
Статус:
Сообщений: 666
Регистрация: 25.11.2012
Украина  BozKurt
Среда, 08.01.2014, 20:22 | Сообщение # 12
Статус:
Опытный:
Сообщений: 1753
Награды: 3
Регистрация: 25.05.2012

Всё зависит от того, что именно ты делаешь.
В данном случае на ПДА не "вешаются" функции, а к ПДА подключается биндер, который обрабатывается движком, точнее сказать, движком с разной периодичностью, либо по определённому событию, вызывается тот или иной метод класса. На сколько большой может быть класс - сказать сложно, думаю что методов пятьдесят далеко не предел. В общем сколько нужно - столько и делай. Если же ты говоришь о "повесить" функцию на update, то здесь тоже как таковой ограничением служит железо, в частности процессор (тактовая частота одного(!) ядра) и оперативная память. В оригинале, например, в методе net_spawn класса motivator_binder последовательно вызывается порядка сотни функций.
Что касается стоит или нет - опять же таки решать тебе. В качестве совета могу сказать, что свой функционал всё же стоит отделять от биндера актора, при этом не только создавая свой биндер, но и подключаться/отключать от биндера в нужный момент, если функци/метод позволяют это делать (реализовывается это при помощи так называемой "песочницы", наиболее известные две: ogse_signals (от Malandrinus и xs_sandbox (от xStream)). На вопрос "Зачем?" отвечу примитивным примером: "повесил" ты на апдейт актора свою функцию, которая что-то долго считает и даже может быть делает это в цикле; по какой-то причине (далеко не явной) цикл стал бесконечным, либо что-то пошло не так, вызвав зависание твоей функции. Поскольку она вызывалась из апдейта, то и он тоже зависнет, а как следствие - сыпется вся и всё. Отделив свою функцию от биндера - зависнет только твоя функция, не затронув работы апдейта. Выводы делай сам.

Добавлено (08.01.2014, 20:22)
---------------------------------------------

Цитата DukeKAn ()
апдейт выполняется несколько чаще, чем у актора
Скорость вызова метода update у всех биндеров одинакова, разница лишь в том, как ты правильно заметил, что за некоторыми апдейтами закреплён не абы какой функционал. При этом для не акторского биндер скорость обновления уменьшается по мере отдаления от ГГ. Самой быстро обновляемой функцией в игре доступной из скриптов является обработчик set_fastcall - он в два-три раза быстрее биндера.
  Злобная реклама
Среда, 08.01.2014, 20:22
Статус:
Сообщений: 666
Регистрация: 25.05.2012
Казахстан  Max_Warlock
Четверг, 09.01.2014, 00:27 | Сообщение # 13
Clear Sky - Remake
Статус:
Опытный:
Сообщений: 1552
Награды: 4
Регистрация: 18.01.2013

Цитата ColR_iT ()
В данном случае на ПДА не "вешаются" функции

Цитата ColR_iT ()
Если же ты говоришь о "повесить" функцию на update

Ты сам ответил себе.

В остальном - большое спасибо обоим за разъяснения. Займусь этим делом на днях.
  Злобная реклама
Четверг, 09.01.2014, 00:27
Статус:
Сообщений: 666
Регистрация: 18.01.2013
Украина  BozKurt
Четверг, 09.01.2014, 00:40 | Сообщение # 14
Статус:
Опытный:
Сообщений: 1753
Награды: 3
Регистрация: 25.05.2012

Цитата Max_Warlock ()
Ты сам ответил себе.
А ты где-то видел вопрос? :)
  Злобная реклама
Четверг, 09.01.2014, 00:40
Статус:
Сообщений: 666
Регистрация: 25.05.2012
Украина  FantomICW
Четверг, 09.01.2014, 00:42 | Сообщение # 15
Проект Смерти Вопреки
Статус:
Опытный:
Сообщений: 2259
Награды: 8
Регистрация: 06.01.2013

Max_Warlock, сам ПДА и метод update - разные вещи. К ПДА подключается через конфиг биндер, у которого есть метод update. Уже на апдейт вешаются функции.
Просто, насколько я понял, может быть вот такая еще штука:
Код
functor  = xr_statistic.pioneer_functor

Это из секции ачивмента pioneer (ЗПшный файл configs/misc/achievments.ltx). Видимо, это тот случай , когда на сам объект повешена функция. Впрочем, наверняка сказать не могу.
Сообщение отредактировал FantomICW - Четверг, 09.01.2014, 00:47
  Злобная реклама
Четверг, 09.01.2014, 00:42
Статус:
Сообщений: 666
Регистрация: 06.01.2013
Форум » S.T.A.L.K.E.R. Модификации » Помощь в моддинге » Скрипты, конфиги, логика, движок » Скрипты (Небольшие уроки для новичков, но с углубленным объяснением.)
  • Страница 1 из 7
  • 1
  • 2
  • 3
  • 6
  • 7
  • »
Поиск: