Случайная подборка модов
Я - Призрак
2.8
Белый отряд
3.7
Народная Солянка 2016
4.1
Обречённый город
4.2
Lost World Condemned
3.5
Начало. Пролог Проекта Отступник
3.2
Последние обновленные темы Прямой эфир Самые популярные темы Последние новости
Модератор форума: FanG, Аdmin, FantomICW, Overfirst  
Скрипты
Украина  BozKurt
Вторник, 18.02.2014, 14:30 | Сообщение # 46
Статус:
Опытный:
Сообщений: 1753
Награды: 3
Регистрация: 25.05.2012

Цитата Max_Warlock ()
А чем "<>" лучше "~="?
Ничем, даже более того - это не правильно. Просто я сейчас на работе над VBScript чахну, а в нём "не равно" пишется именно так "<>". В Lua, конечно же это не прокатит - нужно поставить "~=".
  Злобная реклама
Вторник, 18.02.2014, 14:30
Статус:
Сообщений: 666
Регистрация: 25.05.2012
Казахстан  Max_Warlock
Вторник, 18.02.2014, 14:32 | Сообщение # 47
Clear Sky - Remake
Статус:
Опытный:
Сообщений: 1552
Награды: 4
Регистрация: 18.01.2013

От этой функции в результате никакого толку - она делает то же самое тем же методом. Мне нужно считывать строку без учёта секций.
  Злобная реклама
Вторник, 18.02.2014, 14:32
Статус:
Сообщений: 666
Регистрация: 18.01.2013
Украина  BozKurt
Вторник, 18.02.2014, 14:35 | Сообщение # 48
Статус:
Опытный:
Сообщений: 1753
Награды: 3
Регистрация: 25.05.2012

В таком случае - на ТЧ (и кажется ЧН) это невозможно.
Сообщение отредактировал ColR_iT - Вторник, 18.02.2014, 14:35
  Злобная реклама
Вторник, 18.02.2014, 14:35
Статус:
Сообщений: 666
Регистрация: 25.05.2012
Российская Федерация  DukeKAn
Вторник, 18.02.2014, 16:44 | Сообщение # 49
Статус:
Неопытный:
Сообщений: 491
Награды: 8
Регистрация: 25.11.2012

Честно говоря, я не знаю способа, как работать с файлами в тч (про другие ничего сказать не могу) без учёта секций. Можно было бы попробовать "внешним" способом - в любом языке программирования проверять корректность нужных вам данных, а потом запускать сам сталкер (вроде бы, так сделано в NLC). Но тогда надо как-то запретить сам запуск игры напрямую, через XR_3DA.exe. Или позволять запускать, но отрубать все клавиши.

Способ совсем уж бредовый, но если совсем уж очень требуется...
Создаём exe-шник, к примеру, на C++, который и проверяет корректность всех нужных вам данных (его и будет запускать пользователь). Этот exe-шник ещё и изменяет какое-то из значений в user.ltx и запускает игру. В главном меню (скрипт ui_main_menu.script) проверяем то самое значение из user.ltx. Если игру запускал exe-шник, а не пользователь, то всё путём, все кнопки работают. А если юзер запустил XR_3DA.exe, т.е. значение в user.ltx не изменилось, то блокировать все кнопки загрузки и пр.
В общем, трудностей можно создать для "нехорошего" пользователя очень много, другой вопрос, нужно ли это, и стоит ли потраченного времени. Потому что почти любую защиту можно обойти. Даже здесь - пользователю можно будет просто загружаться через консоль
  Злобная реклама
Вторник, 18.02.2014, 16:44
Статус:
Сообщений: 666
Регистрация: 25.11.2012
Казахстан  Max_Warlock
Вторник, 18.02.2014, 17:01 | Сообщение # 50
Clear Sky - Remake
Статус:
Опытный:
Сообщений: 1552
Награды: 4
Регистрация: 18.01.2013

DukeKAn, напрямую у меня игру и так не запустить. Любой выход в главное меню обернётся полным фейлом. А разберётся там далеко не каждый, сложная система им. камрада Шокера. Но игра уже и так запускается через лаунчер, исходника которого у меня нет, к сожалению.
Ладно, хотя бы вес в систем.лтх проверяет без проблем, с актёром только фигня такая.
  Злобная реклама
Вторник, 18.02.2014, 17:01
Статус:
Сообщений: 666
Регистрация: 18.01.2013
Российская Федерация  DukeKAn
Вторник, 18.02.2014, 17:29 | Сообщение # 51
Статус:
Неопытный:
Сообщений: 491
Награды: 8
Регистрация: 25.11.2012

Max_Warlock, попроси у авторов исходники. Есть исходники - есть всё)
  Злобная реклама
Вторник, 18.02.2014, 17:29
Статус:
Сообщений: 666
Регистрация: 25.11.2012
Российская Федерация  Pro100The-Best
Понедельник, 06.10.2014, 22:47 | Сообщение # 52
Статус:
Зевака:
Сообщений: 7
Награды: 0
Регистрация: 06.10.2014

Спасибо за статью конечно но я почти перестал создавать скрипты
Кстати кому надо разборы секций в bind_stalker.scripts смотрите в спойлере


Скрипты дверей(всё ясно и понятно)

Скрипт спавна трупа без использования функции AMK
  Злобная реклама
Понедельник, 06.10.2014, 22:47
Статус:
Сообщений: 666
Регистрация: 06.10.2014
Украина  BozKurt
Вторник, 07.10.2014, 11:53 | Сообщение # 53
Статус:
Опытный:
Сообщений: 1753
Награды: 3
Регистрация: 25.05.2012

Цитата Pro100The-Best ()
local obj=alife():create("секция_обьекта",vector():set(-81.4560,-0.2423,157.2334),186914,163) --спавнит обьект и приравнивает его к локальной obj
--тоесть после спавна с обьектом можно проделать какие либо действия(нанести хит, изменить группировку, заспавнить ему оружие\предмет, изменить состояние(кондицию)
Ну-ну. Интересно посмотреть, как ты будешь серверному объекту изменять состояние или изменять группировку. create возвращает серверный объект, поэтому пример ниже с фиксацией кости работать не будет. Причина таже get_phisycs_shell - это метод клиентского объекта.

Цитата Pro100The-Best ()
local string = tostring(string) --конвертируем string в строку string
Зачёт! biggrin Строку в строку конвертировать...

P.S. Оформление в край отвратительное.
Сообщение отредактировал BozKurt - Вторник, 07.10.2014, 11:53
  Злобная реклама
Вторник, 07.10.2014, 11:53
Статус:
Сообщений: 666
Регистрация: 25.05.2012
Российская Федерация  DukeKAn
Среда, 24.12.2014, 15:23 | Сообщение # 54
Статус:
Неопытный:
Сообщений: 491
Награды: 8
Регистрация: 25.11.2012

Ребзя, может стрим перед новым годом провести?

Я так посмотрел, уроки получились мягко говоря не для новичков. А в стриме можно прямо с основ начать - создание файла скрипта, значение переменных, функций, таблиц в Lua и тут же запускать сталк., показывать. А уж к концу, можно показать, как связаны скрипты с конфигами, с логикой, а то часто бывает непонимание, чем же вообще скриптеры занимаются.

Добавлено (24.12.2014, 15:23)
---------------------------------------------
Pro100The-Best,
Есть у меня этот файлик-шпаргалка, да ещё и сильно расширенный. Вот только, как заметил BozKurt, ошибок там навалом, и рекомендовать кому-то я его не стал бы, только если знаешь как делать, но забыл самую мелочь - точное имя метода, или порядок аргументов.

  Злобная реклама
Среда, 24.12.2014, 15:23
Статус:
Сообщений: 666
Регистрация: 25.11.2012
Российская Федерация  DaaGuda
Среда, 31.12.2014, 02:25 | Сообщение # 55
Статус:
Неопытный:
Сообщений: 479
Награды: 4
Регистрация: 09.03.2014

DukeKAn, ++++
  Злобная реклама
Среда, 31.12.2014, 02:25
Статус:
Сообщений: 666
Регистрация: 09.03.2014
Российская Федерация  ScriptMaker
Пятница, 02.01.2015, 23:12 | Сообщение # 56
Статус:
Зевака:
Сообщений: 7
Награды: 0
Регистрация: 02.01.2015

Лучше возьмите литературу по Lua, C, C++, почитайте месяц-другой, и разберетесь как и что устроено.

Цитата BozKurt ()
Интересно посмотреть, как ты будешь серверному объекту изменять состояние или изменять группировку.

Если будем спавнить вблизи ГГ, то есть коллбек на выход в онлайн, с помощью него можно без нет пакетов изменить группировку.
  Злобная реклама
Пятница, 02.01.2015, 23:12
Статус:
Сообщений: 666
Регистрация: 02.01.2015
Российская Федерация  DukeKAn
Суббота, 03.01.2015, 13:58 | Сообщение # 57
Статус:
Неопытный:
Сообщений: 491
Награды: 8
Регистрация: 25.11.2012

Цитата ScriptMaker ()
Лучше возьмите литературу по Lua, C, C++, почитайте месяц-другой, и разберетесь как и что устроено.

Вообще-то человеку, который хочет разобраться со скриптами, вовсе не нужно лезть в такие дебри, как С и С++. Исключение - необходимость править движок. Но за пару месяцев с этими языками никак не разберёшься до такого уровня. А заходить в тему, чтобы показать, как вы хорошо разбираетесь в языках, и как их надо учить - не надо. Есть чем поделиться - делитесь, нужно спросить - спрашивайте. Нет - проходите мимо.

Цитата ScriptMaker ()
Если будем спавнить вблизи ГГ, то есть коллбек на выход в онлайн, с помощью него можно без нет пакетов изменить группировку.

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

sobj = alife():create(...)
obj = level.object_by_id(sobj.id)
obj: set_character_community("freedom", 0, 0)
  Злобная реклама
Суббота, 03.01.2015, 13:58
Статус:
Сообщений: 666
Регистрация: 25.11.2012
Молдова  6poHR777
Суббота, 03.01.2015, 14:57 | Сообщение # 58
Статус:
Опытный:
Сообщений: 1480
Награды: 0
Регистрация: 05.01.2012

Камрады.
Тут вопрос возник, где можно скачать прогу-дебаг для LUA?
  Злобная реклама
Суббота, 03.01.2015, 14:57
Статус:
Сообщений: 666
Регистрация: 05.01.2012
Украина  BozKurt
Суббота, 03.01.2015, 15:00 | Сообщение # 59
Статус:
Опытный:
Сообщений: 1753
Награды: 3
Регистрация: 25.05.2012

ScriptMaker, речь шла именно про серверный объект, который возвращает метод create, а не о способе изменить группировку онлайновому объекту, да ещё и нет-пакетами.

DukeKAn, способ хорош тем, что не заставляет выдумывать велосипеды с поимкой онлайнового объекта. Метод create возвращает серверный объект, а клиентский становится доступен только на следующем апдейте. Колбек client_spawn_manager срабатывает как раз тогда, когда клиентский объект становится доступен. Пример очень простой:
Код
local object = alife():create("wpn_ak74u", vector(), 0, 0, db.actor:id())
level.client_spawn_manager:add(object.id, -1, OnObjectExitOnline)

local OnObjectExitOnline = function (objectId, gameObject)
   gameObject:set_condition(0.8)
end
Где в функции OnObjectExitOnline, objectId - id переданного объекта, gameObject - уже клиентский объект.

Добавлено (03.01.2015, 15:00)
---------------------------------------------
6poHR777, для чистого Lua 5.1 - вот: https://yadi.sk/d/nkygbzVLdm928 . С вопросами о проблемах установки и запуска - в лс.
Сообщение отредактировал BozKurt - Суббота, 03.01.2015, 15:01
  Злобная реклама
Суббота, 03.01.2015, 15:00
Статус:
Сообщений: 666
Регистрация: 25.05.2012
Российская Федерация  ScriptMaker
Суббота, 03.01.2015, 22:24 | Сообщение # 60
Статус:
Зевака:
Сообщений: 7
Награды: 0
Регистрация: 02.01.2015

DukeKAn, я в таком случае не вижу смысла вообще человеку лезть в скрипты. Метод тыка - плохой метод. Куда мне заходить, и что мне делать - я решу сам, хорошо? Я тебе пока не мешаю писать статьи по типу 52 поста.

Цитата DukeKAn ()
Почему этот подход лучше, чем просто (если в онлайне) получить клиентский объект с помощью функции

Выше читай.

BozKurt, ладно, я подумал, что не помешает указать и на коллбек выхода в онлайн, т.к. видно о нем немногие знают, а применение (даже не повсеместное) я редко где видел.
  Злобная реклама
Суббота, 03.01.2015, 22:24
Статус:
Сообщений: 666
Регистрация: 02.01.2015
Поиск: