Случайная подборка модов
Clear Sky - Remake
3.8
Долина Шорохов
4.5
Arsenal Mod
4.0
Oblivion Lost Remake
4.1
SWTC
4.1
Sins of the past. Пролог
3.3
Последние обновленные темы Прямой эфир Самые популярные темы Последние новости
Модератор форума: FanG, Аdmin, FantomICW, Overfirst  
Скрипты
Украина  stalker-MiX
Четверг, 16.01.2014, 01:40 | Сообщение # 31
Статус:
Неопытный:
Сообщений: 534
Награды: 2
Регистрация: 20.02.2013

Цитата LaRento ()
А кто все? в ЗП было множество мест для костров, и сталкеры сидели там. Схема рабочая абсолютно.

Нет, ты не прав, та схема используется только в ТЧ и ЧН. Для этого нужны пути (чего в ЗП нет) :
Код
smart_terrain_**_kamp_1_task
smart_terrain_**_kamp


То, что они сидят у костра - это просто каверы:
animpoint_sit_low
animpoint_sit_normal
animpoint_sit_high


aleksn09,
Цитата aleksn09 ()
посиделки, как я помню, как раз через аним поинты и делаются. Но чтобы эта схема заработала, в логике нужно поставить чтобы аним поинт использовал схему посиделок. И если НПС попадает в камп зону, то у него срабатывает эта схема и он рассказывает анекдоты и играет на гитаре.

Это я знаю. Дело не поседелках, а чтобы саму схему xr_kamp воскресить у ЗП, и чтобы работало аналогично как в предыдущих частях (ЧН та ТЧ). Именно это меня интересует.
Сообщение отредактировал stalker-MiX - Четверг, 16.01.2014, 01:52
  Злобная реклама
Четверг, 16.01.2014, 01:40
Статус:
Сообщений: 666
Регистрация: 20.02.2013
Российская Федерация  DukeKAn
Четверг, 16.01.2014, 18:47 | Сообщение # 32
Статус:
Неопытный:
Сообщений: 491
Награды: 8
Регистрация: 25.11.2012

Ещё немного дополнил урок про биндер, про то, как включать/выключать свои функции в апдейт биндера
  Злобная реклама
Четверг, 16.01.2014, 18:47
Статус:
Сообщений: 666
Регистрация: 25.11.2012
Российская Федерация  Scouser
Четверг, 16.01.2014, 22:20 | Сообщение # 33
Статус:
Опытный:
Сообщений: 1614
Награды: 16
Регистрация: 21.10.2012

stalker-MiX, Ну хорошо, спасибо, что поправил. Однако схема рабочая всё-равно, я неоднократно сажал кампов у костра через эту схему. :)
Сообщение отредактировал LaRento - Четверг, 16.01.2014, 23:38
  Злобная реклама
Четверг, 16.01.2014, 22:20
Статус:
Сообщений: 666
Регистрация: 21.10.2012
Украина  BozKurt
Четверг, 16.01.2014, 23:35 | Сообщение # 34
Статус:
Опытный:
Сообщений: 1753
Награды: 3
Регистрация: 25.05.2012

Есть не только готовый мод где используется динамическое подключение функций, но и, на мой взгляд, достаточно подробное описание работы файла xr_s.script: >>ClicK Me<<.
  Злобная реклама
Четверг, 16.01.2014, 23:35
Статус:
Сообщений: 666
Регистрация: 25.05.2012
Украина  stalker-MiX
Пятница, 17.01.2014, 00:16 | Сообщение # 35
Статус:
Неопытный:
Сообщений: 534
Награды: 2
Регистрация: 20.02.2013

LaRento, я почему-то никогда не проверял ее. Раз не используют - значит могли удалить, или отключить за ненадобностью, как например схему Сидоровича. Ну, если работает - то хорошо, спс за инфу!!! :)
Сообщение отредактировал stalker-MiX - Пятница, 17.01.2014, 00:20
  Злобная реклама
Пятница, 17.01.2014, 00:16
Статус:
Сообщений: 666
Регистрация: 20.02.2013
Украина  Viнt@rь
Пятница, 17.01.2014, 01:21 | Сообщение # 36
Spectrum project
Статус:
Новичок:
Сообщений: 381
Награды: 2
Регистрация: 10.10.2010

stalker-MiX, и LaRento, на анимпоинты(они же каверы) перешли сами ПЫС из за того, что нпс усаживались не корректно у костра, иногда даже друг на друге, но основной проблемой этой схемы - то, что при перезагрузке игры или при переходе из локи на локу, нпс под такой схемой спавнятся в центре костра и потому мрут, именно по этому мы могли наблюдать картину множества смертей в кострах, в ЗП это пропало благодаря расставленым анимпоинтам под смартами, и как говорил Artos(мы с ним уже вели разговор по поводу этих двух схем) в идеале объединить бы эти обе схемы camp и kamp, это было бы именно то, что нужно, но что у меня, что у него(как я понял) руки до этого не доходят...

Добавлено (17.01.2014, 01:21)
---------------------------------------------
DukeKAn, по поводу первой статьи: в Lua классов, как таковых, нет, это все чудеса Lua bind(на АМК форуме есть его(ну почти оригинальная) реализация от xStream) сами же "классы" являются метатаблицами с метаметодами и не более. class("foo") идентичность function class("foo"), а методы идентичны этому
foo = {}
foo.print = function (msg)
print(msg.." from foo")
end
foo.print("test msg")

ЗЫ
Говорить что в Lua классы, это все равно, что говорить о Lua, как о ООП языке программирования, которым он не является...

ЗЫЫ
Я как-то раз используя код реализации Lua bind от xStream в Intellij IDEA реализовал вполне рабочий функционал подобный тому, что есть в Сталкере, "классы" создавались точно так же, с легкостью прикрутилась своя песочница(за основу взята песочница от Artos) регистрировались и отрабатывались коллбэки

помимо Lua bind нашел еще множество реализаций создания подобия классов для чистого Lua...

ЗЫЫЫ
Это было адресовано не столько что бы исправить тебя, сколько что бы внести уточнение, и мб кому то это интересно было бы, а вообще подобная тема уже давненько существует на АМК форуме(а даже две) "Скриптование" и "Язык Lua. Общие вопросы программирования."
Сообщение отредактировал Viнt@rь - Пятница, 17.01.2014, 01:23
  Злобная реклама
Пятница, 17.01.2014, 01:21
Статус:
Сообщений: 666
Регистрация: 10.10.2010
Украина  stalker-MiX
Пятница, 17.01.2014, 02:39 | Сообщение # 37
Статус:
Неопытный:
Сообщений: 534
Награды: 2
Регистрация: 20.02.2013

Viнt@rь, это является весомой причиной, чтобы ее не использовать. Даже здесь проблема в том, что под нее попадает любой нпс с противогазом (шлемом) и использует колбасу, водку, хлеб - что является не правильным.

Плюсом я вижу то, что всем хватает работы, благодаря большому количеству нпс вокруг костра.
  Злобная реклама
Пятница, 17.01.2014, 02:39
Статус:
Сообщений: 666
Регистрация: 20.02.2013
Российская Федерация  DukeKAn
Воскресенье, 02.02.2014, 13:55 | Сообщение # 38
Статус:
Неопытный:
Сообщений: 491
Награды: 8
Регистрация: 25.11.2012

Цитата Viнt@rь ()
Говорить что в Lua классы, это все равно, что говорить о Lua, как о ООП языке программирования, которым он не является...

Да, чисто ОО-языком он не является, но всё-же даёт возможности для написания скриптов в ОО-стиле. Всё-таки и сама игра написана разработчиками в объектном стиле (хотя временами и грязноватом). Поэтому я решил для простоты назвать их классами и сосредоточиться на игровой теории, а не синтаксисе и строении языка.
Цитата Viнt@rь ()
а вообще подобная тема уже давненько существует на АМК форуме

Да-да, возможно, большую часть знаний я оттуда и почерпнул. Там же и интересная тема про Lua. Но здесь я решил ещё и подкреплять теорию небольшими, но (желательно) интересными маленькими модами, что для новичков, я считаю, будет некоторым стимулом к изучению.

Добавлено (31.01.2014, 17:16)
---------------------------------------------
Урок по созданию GUI элементов (окон).

Этот урок не будет содержать теории (а чтобы с ней ознакомиться, настоятельно рекомендую прочитать этот топик : АМК ), разберём мы сегодня создание окон. Конкретнее, разберём мы целых 3 разных применения создания окон в ТЧ – скриптовая эмуляция слота, вывод окна с кнопками и вывод статика на экран во время игры. Ну и создадим мод, в котором все 3 эти возможности применены.

Давайте сделаем так, что у ГГ есть специальный слот, или «карман» для аптечки. Чтобы каждый раз не открывать инвентарь, для того, чтобы узнать, лежит ли там аптечка, мы будем выводить на экран изображение аптечки, если она в кармане.
Для создания мода нам понадобится написать 2 класса. Первый – класс для эмуляции слота, второй – для окошка меню взаимодействия с аптечкой в слоте.

Скриншоты



Создаём слот


Создание окна взаимодействия с аптечкой



Статик аптечки в слоте


Скачать готовый мод для разбора можно здесь Яндекс_диск.

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

Добавлено (02.02.2014, 13:55)
---------------------------------------------
Урок по использованию перехватчика клавиатуры.

Сообщение отредактировал DukeKAn - Воскресенье, 02.02.2014, 12:57
  Злобная реклама
Воскресенье, 02.02.2014, 13:55
Статус:
Сообщений: 666
Регистрация: 25.11.2012
Украина  BozKurt
Воскресенье, 02.02.2014, 15:45 | Сообщение # 39
Статус:
Опытный:
Сообщений: 1753
Награды: 3
Регистрация: 25.05.2012

Перехватчик клавиш можно сделать и стандартными функциями игры, без каких-либо сторонних утилит.
>>ClicK Me<<
  Злобная реклама
Воскресенье, 02.02.2014, 15:45
Статус:
Сообщений: 666
Регистрация: 25.05.2012
Российская Федерация  DukeKAn
Воскресенье, 02.02.2014, 16:06 | Сообщение # 40
Статус:
Неопытный:
Сообщений: 491
Награды: 8
Регистрация: 25.11.2012

ColR_iT, Красиво) Спасибо, не знал о таком способе.
  Злобная реклама
Воскресенье, 02.02.2014, 16:06
Статус:
Сообщений: 666
Регистрация: 25.11.2012
Казахстан  Max_Warlock
Вторник, 18.02.2014, 12:55 | Сообщение # 41
Clear Sky - Remake
Статус:
Опытный:
Сообщений: 1552
Награды: 4
Регистрация: 18.01.2013

Требуется помощь. Мне нужно получить из файла actor параметр и сопоставить его с переменной.
Проблема в том, что распространенные в модах функции:
get_ltx
get_ltx_new
и
read_from_ini
в данном случае не подходят, так как секция actor происходит от секции common_ph_friction_params_on_npc_death
Все функции жалуются на отсутствие данной секции в конфигах.
Мне нужна функция, которая получала бы значение параметра не из секции, а просто из файла.
Например, параметр max_weight все равно лишь один в файле и оглядываться на секцию мне нафик не сдалось.

Зачем нужно? Делаю античит-систему, При запуске игра проверяет некоторые параметры, и сели они правились выводит окошко с предупреждением, после чего закрывает игру. Всё готово, кроме способа получить значение из actor.ltx
  Злобная реклама
Вторник, 18.02.2014, 12:55
Статус:
Сообщений: 666
Регистрация: 18.01.2013
Украина  BozKurt
Вторник, 18.02.2014, 13:33 | Сообщение # 42
Статус:
Опытный:
Сообщений: 1753
Награды: 3
Регистрация: 25.05.2012

Max_Warlock, а как ты собираешься свою систему "анти-школоло" защитить? Ведь никто не мешает изменить значение в конфиге и твою проверку на значение, а то и вовсе от неё избавится.

Но раз нужно - могу подсказать.
Получить значение можно не привязываясь к какому либо файлу, но один параметр может повторятся в нескольких секциях, поэтому в любом случае нужно указывать в какой именно секции находится нужный тебе параметр - это раз. Два - чтобы получить значение из конфига, нужно определится какого именно типа значение тебе нужно: число (целое, дробное), строка, вектор или логическое значение, т.к. от этого зависит выбор метода для того, чтобы "вытащить" значение из ltx.
В качестве универсальной функции могу предложить вот такую:
Код
function GetParamFromConfig (fileName, sectionName, paramName)
    local ini = ini_file(fileName)
    local paramValue = ini:section_exist(sectionName) and ini:line_exist(sectionName, paramName) and ini:r_string(sectionName, paramName) or ""
    return paramValue    
end

fileName - это полный путь до файла, относительно папки config;
sectionName - секция, в которой находится нужный тебе параметр;
paramName - собственно название нужного тебе параметра.
Возвращает всегда строку(!), поэтому сравнить нужно со строкой.
Например, для параметра max_walk_weight проверка будет выглядеть так:
Код
if GetParamFromConfig([[creatures\actor.ltx]], "actor_condition", "max_walk_weight") ~= "60" then
    --# значение в конфиге отличается от оригинального.
end
Сообщение отредактировал ColR_iT - Вторник, 18.02.2014, 14:31
  Злобная реклама
Вторник, 18.02.2014, 13:33
Статус:
Сообщений: 666
Регистрация: 25.05.2012
Казахстан  Max_Warlock
Вторник, 18.02.2014, 13:57 | Сообщение # 43
Clear Sky - Remake
Статус:
Опытный:
Сообщений: 1552
Награды: 4
Регистрация: 18.01.2013

Цитата ColR_iT ()
Max_Warlock, а как ты собираешься свою систему "анти-школоло" защитить? Ведь никто не мешает изменить значение в конфиге и твою проверку на значение, а то и вовсе от неё избавится.

Поставить проверку на присутствие самой системы. Запаковать в архив .db
75% школоты, да и не только отсеиваются автоматически smile

Добавлено (18.02.2014, 13:57)
---------------------------------------------

Цитата ColR_iT ()
но один параметр может повторятся в нескольких секциях, поэтому в любом случае нужно указывать в какой именно секции находится нужный тебе параметр

Не в моём случае...

Цитата ColR_iT ()
нужно определится какого именно типа значение тебе нужно

Число.

Отлично! Спасибо, сейчас проверю и отпишусь.
  Злобная реклама
Вторник, 18.02.2014, 13:57
Статус:
Сообщений: 666
Регистрация: 18.01.2013
Украина  BozKurt
Вторник, 18.02.2014, 14:18 | Сообщение # 44
Статус:
Опытный:
Сообщений: 1753
Награды: 3
Регистрация: 25.05.2012

Цитата Max_Warlock ()
Не в моём случае...
Скажи это ПЫС. Указывать имя секции, в которой находится нужный тебе параметр, придётся в любом случае - этого требуют скрипты.
Сообщение отредактировал ColR_iT - Вторник, 18.02.2014, 14:18
  Злобная реклама
Вторник, 18.02.2014, 14:18
Статус:
Сообщений: 666
Регистрация: 25.05.2012
Казахстан  Max_Warlock
Вторник, 18.02.2014, 14:23 | Сообщение # 45
Clear Sky - Remake
Статус:
Опытный:
Сообщений: 1552
Награды: 4
Регистрация: 18.01.2013

ColR_iT, Скажу, как увижу biggrin

Добавлено (18.02.2014, 14:23)
---------------------------------------------
А чем "<>" лучше "~="?

  Злобная реклама
Вторник, 18.02.2014, 14:23
Статус:
Сообщений: 666
Регистрация: 18.01.2013
Поиск: