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

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

Тема для обсуждения скриптов всего и всех в серии игр STALKER.


Задавая вопрос (!):
1. Внимательно изучите суть вопроса. Вопрос должен соответствовать выбранной Вами темы. Это поможет сохранить порядок и читабельность темы, а также облегчит поиск и понимание сего;
2. Изучите то, что уже есть в теме (пролистайте "руками", воспользуйтесь поиском на форуме);
3. Изучите информацию которая может вам помочь:

 
 

Stalkerin. Там есть много хороших статей касательно данной темы.
Уроки по модостроению. Есть рабочие примеры готовых скриптов различного назначения.

 

Справочное руководство по языку Lua 5.1
https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/ru
Справочник по функциям и классам. Собрано много информации по функциям и классам, не всем, но по основные сведения предоставлены.

4. Дабы не превращать обсуждение в "кашу" разной информативной направленности, задавайте несколько вопросов по порядку (в разных постах) после того, как получите ответ на предыдущий вопрос;
5. "Спасибо" и тому подобное - будьте так любезны в ПМ. Если не любите писать в ПМ, в конце вопроса напишите фразу: "Заранее спасибо!" - или что-то в этом духе;
6. ПОЖАЛУЙСТА! Указывайте, для какой игры Вам необходима информация (ТЧ, ЧН, ЗП), если стоит мод - укажите название мода;
7. Если Вы что-то сделали и результат не такой, какой Вами задумывался, то, пожалуйста, приводите коды которые Вы изменяли/писали целиком! Это поможет другим правильно ответить на Ваш вопрос, а также оградит Вас от лишней писанины.
8. Оформляйте сообщение. Пользуйтесь тегами для того, чтобы отделить код от текста. Пишите грамотно - ПОЛЬЗУЙТЕСЬ ЗНАКАМИ ПРЕПИНАНИЯ.
9. И помните: «Правильно заданный вопрос – половина ответа».

 

Какие вопросы следует задавать, а какие нет...

 

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

 

Вопросы которые будут удалятся, следовательно их задавать не нужно:
-- Где находится та или иная функция?
Для ответа используем поиск по словам среди файлов оригинальной игры или мода, если объект поиска относится к нему, при помощью программы, которая Вам наиболее симпатизирует;
-- Как сделать что-то/то-то?
С подобными вопросами, либо в "ковырялки", где Вам вероятнее всего так же не ответят, либо выдвигаем мысли, подкреплённые теорией, практикой (идеальный вариант) и здравым рассудком;
-- Вопросы со смыслом: "сделайте", "совместите" и подобными глаголами повелительного наклонения.
-- К тому же удалению будут подвергаться вопросы, в которых масштабно не используются теги, для отделения кода и цитат от основного текста, а также не вписан в спойлер код размером превышающие семь строк.
Ответ на возможно возникший вопрос: В какую тему можно обратиться по поводу логики и спавна объектов?
В тему "ковырялок" соответствующей версии игры, для которой Вы задаёте вопрос.

И последнее: очень рекомендовано к прочтению Правила форума
 


  • Спасибо 1
  • Полезно 2
Ссылка на комментарий

Какие у нас есть функции для показа и скрытия элементов интерфейса, подсказок, курсора и тп, кроме level.show_indicators \ level.hide_indicatos?

aka Stalker_AleX333
 
Мои проекты  - ЯндексДиск   |   Я на Gamer-Mods.ru

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

@Kondr48, я понимаю, что их достаточно. Мне нужен список, весь. Не для логики, для скриптов.

aka Stalker_AleX333
 
Мои проекты  - ЯндексДиск   |   Я на Gamer-Mods.ru

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

 

 

курсора и тп

Ну тогда, наверное, еще:

void disable_input() -- блокирует мышь и клавиатуру
void enable_input() -- разблокирует мышь и клавиатуру

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

@nikita_nz1986, ты создаешь объект particles_object, соответственно тебе доступны все методы класса, и там есть два метода для остановки: stop и stop_deffered.

  • Спасибо 1
Ссылка на комментарий

@Kober(BRUC), сохраняй кнопки в разных переменных класса, а потом выключай те, которые надо.

 

self.button1 = xml:InitButton....

...

self.button1:Enable(false)

  • Спасибо 1

Аддон для ОП-2.09.2: Яндекс/Google/GitHub

naxac.gif

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

Доброго времени суток, народ подскажите как скриптом заспавнить машину/бтр ?

 

Мать: ASRock X470 Master SLI. Процессор: AMD Ryzen 9 3900X 12-Core(4200 MHz).
Память: Patriot Memory 3200 C16 Series. DDR4-3200(1600МГц), 16Гбх2(32Гб).
Видео: GeForce GTX 1060 6GB. Блок питания: CoolerMaster 750 Вт. Корпус: Zalman i3 Edge.

Химера конечно сильный хищник, а все держится дома. Чего же ты пришел к ней домой и пытаешься её убить? © Болотный Доктор

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

@Romann, насколько я вижу, вот так это делается в ОП-2:

amk_mod.spawn_military_tech_pack(alife():create("vehicle_btr",vector():set(-163.66780090332,-0.20163251459599,-213.43978881836),73278,554),"vehicle_btr", "scripts\\ohota\\btr.ltx")

Вот сама spawn_military_tech_pack()

 

 

function spawn_military_tech_pack(obj, spawn_item, spawn_item_logic)    
        local packet = net_packet()
        obj:STATE_Write(packet)

        -- свойства cse_alife_object
        local game_vertex_id = packet:r_u16()
        local cse_alife_object__unk1_f32 = packet:r_float()
        local cse_alife_object__unk2_s32 = packet:r_s32()
        local level_vertex_id = packet:r_s32()
        local object_flags = packet:r_s32()
        local custom_data = packet:r_stringZ()
        local story_id = packet:r_s32()
        local cse_alife_object__unk3_s32 = packet:r_s32()

        -- свойства cse_visual
        local model_visual = packet:r_stringZ()
        local cse_visual__unk1_u8 = packet:r_u8()
        local motion_name
        if spawn_item == "helicopter" then
                -- свойства cse_motion
                motion_name = packet:r_stringZ()
        end

        -- свойства cse_ph_skeleton
        local skeleton_name = packet:r_stringZ()
        local cse_ph_skeleton__unk1_u8 = packet:r_u8()
        local cse_ph_skeleton__unk2_u16 = packet:r_u16()
        local health 
        local cse_alife_helicopter__unk1_sz 
        local engine_sound 
                
        if spawn_item == "helicopter" then
                -- свойства cse_alife_helicopter
                cse_alife_helicopter__unk1_sz = packet:r_stringZ()
                engine_sound = packet:r_stringZ()
        elseif  spawn_item == "vehicle_btr" then
                health = packet:r_float()
        end
        
        -- теперь заполняем нужнvе параметрv
        -- свойства cse_alife_object
        packet:w_begin(game_vertex_id)
        packet:w_float(cse_alife_object__unk1_f32)
        packet:w_s32(cse_alife_object__unk2_s32)
        packet:w_s32(level_vertex_id)
        object_flags = bit_not(5)       -- ~5 = 0xfffffffa
        packet:w_s32(object_flags)
        
        packet:w_stringZ("[logic]\ncfg = "..spawn_item_logic)
--[=[   if spawn_item == "helicopter" then
                packet:w_stringZ("[logic]\ncfg = "..spawn_item_logic)
        elseif  spawn_item == "vehicle_btr" then
                packet:w_stringZ("[logic]\ncfg = "..spawn_item_logic)
        end
]=]
        packet:w_s32(-1)
        packet:w_s32(cse_alife_object__unk3_s32)

        -- свойства cse_visual
        packet:w_stringZ(model_visual)
        packet:w_u8(cse_visual__unk1_u8)
        
        if spawn_item == "helicopter" then
                packet:w_stringZ(motion_name)           
        end 
        
        -- свойства cse_ph_skeleton
        skeleton_name = "idle"
        packet:w_stringZ(skeleton_name)
        packet:w_u8(cse_ph_skeleton__unk1_u8)
        packet:w_u16(cse_ph_skeleton__unk2_u16)

        if spawn_item == "helicopter" then
                -- свойства cse_alife_helicopter
                cse_alife_helicopter__unk1_sz = "idle"
                engine_sound = "alexmx\\helicopter"
                packet:w_stringZ(cse_alife_helicopter__unk1_sz)
                packet:w_stringZ(engine_sound)
        elseif  spawn_item == "vehicle_btr" then
                health = 1
                packet:w_float(health)
        end     
        -- считvваем скорректированнvе параметрv
        packet:r_seek(0)
        obj:STATE_Read(packet, packet:w_tell())
        
        return obj
end
 

 

 

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

 

 

скриптом заспавнить машину/бтр ?

 

Для машины(нивы например) хватит alife:create()

А вот для БТР, с логикой,как положено - смотри выше пост.

Не соответствует правилам.

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

Честно говоря, я бы не советовал использовать вот ту spawn_military_tech_pack() в том виде, в каком оно есть. Потому, как <далее вырезано нецензурное>. Я бы посоветовал переписать ее с использованием существующих библиотек для работы с нетпакетами, от Артоса или Экстрим.

 

Хотя, положа руку на сердце, если мне самому вдруг понадобится заспаунить БТР, я воспользуюсь этой хренью. Но пообещаю себе, что позже точно-точно ее перепишу, честное пионерское. :)

Изменено пользователем dsh
  • Нравится 1
Ссылка на комментарий

 

 

Доброго времени суток, народ подскажите как скриптом заспавнить машину/бтр ?

Бтр поддерживает spawner

Что мешает через SDK или acdc поставить БТР на локации, прописать ему логику, и в нужный момент игры по условию перевести его в он-лайн?

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

@makdm, в зависимости от спавнера или спавна, БТР по-разному ведёт себя в логике. Проверено, на себе. Если просто для ГГ покататься, то хоть как, если пострелять самому, то лучше через алспавн, а если для БТР с логикой, то скриптом с полным отдельным пакетом в .конфигах.

 

Насоветовали:

Скрипт с нет-пакетом для новичка, еще и с вертолётом и функциями АМК в придачу - не слишком? :D

 

Для начала пусть алспавн использует, это проще.

 

 

В Зове Припяти я из конфигов, с логикой БТР запускал: % =spawn_object(auto_test_car2:way_car_spawn)%.

 

@Romann, а ты на какой движок цепляешь БТР? ТЧ?

 

Если ЗП, то можешь тут глянуть, авось пригодится.

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

andreyholkin.gif

rod_cccp.gif

 

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

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

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

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

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

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

Войти

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

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

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