IPB

Помощь по разделу

Сайт S.T.A.L.K.E.R. Inside / [ЗП] Параметры командной строки / Распаковщик ресурсов

>

Скрипты

 
 Орион
сообщение 13.07.2009, 11:34
Сообщение #121


Навий черны у ношьти
***************

Группа: Забанен
Сообщений: 2210
Регистрация: 11.03.2009
Из: Лиманск
Пользователь №: 10251




FAQ

Lua в X-Ray

Список всех функций, переменных, классов и т.п. что используются в Сталкере находится по адресу:
Код
gamedata/scripts/lua_help.script

Для получения файла надо распаковать игру. Можно скачать, в принципе (IMG:style_emoticons/default/smile.gif) Тут =>>Ссылко<<=
Уроки

Пример создания непися скриптами ЛУА. Автор: меченый(стрелок)
Скриптинг на инсайде



Сообщение отредактировал RayTwitty - 09.06.2018, 20:23
Перейти в начало страницы
 
 
 
Ответов
 сталкероид
сообщение 29.09.2010, 23:07
Сообщение #122


Продвинутый геймер
********

Группа: Участник
Сообщений: 234
Регистрация: 13.05.2010
Пользователь №: 13876



Цитата(bill_gates @ 10.04.2010, 21:23) *
Люди, а что такое нетпакет? И зачем он нужен?

Буквально "сетевой пакет". Небольшая область памяти (8 кбайт), в которую записывается текущее состояние какого-либо объекта (актора, непися и т.д.), т.е. количество лута в инвентаре, список хабара в нычках, выполненные квесты, статистика и пр. Работать с ним можно, только когда объект находится в оффлайне.
Подробнее от нет_пакете и не только здесь
djslavikoz, какой именно вертолет? Если просто валяющийся на земле, то прописать его в алспавне по аналогии с другими трупиками вертолетов, а если прилетающий по какому-то событию, то тогда все гораздо сложнее - надо прописать рестриктор и написать вертолету логику (можно глянуть например тут).
Перейти в начало страницы
 
 
 djslavikoz
сообщение 30.09.2010, 07:23
Сообщение #123


Опытный Игрок
****

Группа: Участник
Сообщений: 53
Регистрация: 19.05.2010
Из: ukraine
Пользователь №: 13937



Сталкероид
В основном я научился спавнить через all.spawn . Ну примерно вот так.

[10001]
; cse_abstract properties
section_name = helicopter
name = esc_heli_55555
position = 57.8794326782227,-0.705963671207428,114.27214050293
direction = 0,-1.47526597976685,0

; cse_alife_object properties
game_vertex_id = 94
distance = 0
level_vertex_id = 345092
object_flags = 0xfffffffa
custom_data = <<END
[logic]
cfg = scripts\vertol.ltx

END

; cse_visual properties
visual_name = physics\vehicles\mi24\veh_mi24_u_01

; cse_motion properties
motion_name = helicopter\aaa.anm

; cse_ph_skeleton properties
skeleton_name = idle

; cse_alife_helicopter properties
cse_alife_helicopter__unk1_sz = idle
engine_sound = alexmx\helicopter
Вопрос так в чём моя проблема????? Проблема в том что я создал новую локацию(военную базу) и когда делаю таким способом как на ескейпе то получаю лог вот такого плана.
FATAL ERROR

[error]Expression : motion_ID.valid()
[error]Function : CKinematicsAnimated::ID_Cycle
[error]File : E:\stalker\patch_1_0004\xr_3da\SkeletonAnimated.cpp
[error]Line : 136
[error]Description : ! MODEL: can't find cycle:
[error]Arguments :


А с логикой и другим проблем нет я в курсе как ето делается.

Сообщение отредактировал djslavikoz - 30.09.2010, 07:25
Перейти в начало страницы
 
 
 Сталкероненавист...
сообщение 30.09.2010, 18:39
Сообщение #124


Игроман
**********

Группа: Забанен
Сообщений: 957
Регистрация: 24.03.2009
Из: Россия
Пользователь №: 10380



Может ты анимацию модели установил не ту?
Перейти в начало страницы
 
 
 сталкероид
сообщение 30.09.2010, 19:02
Сообщение #125


Продвинутый геймер
********

Группа: Участник
Сообщений: 234
Регистрация: 13.05.2010
Пользователь №: 13876



djslavikoz, проблема в логике вертолета. Что ты прописал в файле vertol.ltx?
Для примера вертолёт на блокпосте
[logic]
active = heli_move@idle

[heli_move@idle]
path_move = heli_blockpost_idle_move
engine_sound = false
on_info = {+твой_инфопоршень} heli_move@fly
combat_safe_altitude = -50

[heli_move@fly]
path_move = heli_blockpost_fly
engine_sound = true
combat_enemy = actor
combat_use_rocket = true
combat_use_mgun = true
rocket_delay = 3000
combat_safe_altitude = -70
on_timer = 120000 | heli_move@retreat

[heli_move@retreat]
path_move = heli_blockpost_idle_move
engine_sound = true
combat_use_rocket = false
combat_use_mgun = false
combat_safe_altitude = -50
on_timer = 120000 | heli_move@stop

[heli_move@stop]
path_move = heli_blockpost_idle_move
engine_sound = false

Вообще, ругается на то, что не может найти цикл анимации (есть такой файлик .skl).
Попробуй вообще убрать эту строку в алспавне motion_name = helicopter\aaa.anm . К чему это относится: cse_alife_helicopter__unk1_sz = idle?

Сообщение отредактировал сталкероид - 30.09.2010, 19:13
Перейти в начало страницы
 
 
 djslavikoz
сообщение 05.10.2010, 10:19
Сообщение #126


Опытный Игрок
****

Группа: Участник
Сообщений: 53
Регистрация: 19.05.2010
Из: ukraine
Пользователь №: 13937



Господа скриптологи помогите пожалоста. Лог по вашей теме. Ето спавн вертольота.
Как написал мне на амк форуме один товарищ.... Цытирую

Надо дописать функцию в xr_effects.script, какую я не знаю, сам не делал.




! Unknown command: ERROR:object
* Log file has been saved successfully!

FATAL ERROR

[error]Expression : fatal error
[error]Function : CScriptEngine::lua_error
[error]File : E:\stalker\patch_1_0004\xr_3da\xrGame\script_engine.cpp
[error]Line : 73
[error]Description : <no expression>
[error]Arguments : LUA error: ....r. - shadow of chernobyl\gamedata\scripts\_g.script:20: bad argument #2 to 'format' (string expected, got no value)
Перейти в начало страницы
 
 
 Lekzd
сообщение 05.10.2010, 10:46
Сообщение #127


Я такой разный, но все-таки я вместе
**************

Группа: Участник
Сообщений: 1854
Регистрация: 04.03.2009
Из: Санкт-Петербург
Пользователь №: 10177



djslavikoz, вот нет, чтобы сравнить файлы без изменений и с изменениями (программа для этого специальная есть)
не уповай на экстрасенсов - их тут нет
Перейти в начало страницы
 
 
 nike88
сообщение 05.10.2010, 12:13
Сообщение #128


Продвинутый геймер
********

Группа: Забанен
Сообщений: 206
Регистрация: 16.05.2008
Пользователь №: 8078



djslavikoz допиши что-то типа
Код
function уровень_heli_mapspot(actor, npc, p)
    if p[1] and not level_tasks.is_map_spot_present( p[1], "anomaly_zone_location" ) then
        level_tasks.add_location( p[1], "anomaly_zone_location", "vertolyot!" )
    end
end
Перейти в начало страницы
 
 
 Trollz0r
сообщение 24.10.2010, 17:34
Сообщение #129


Почти Игроман
*********

Группа: Участник
Сообщений: 593
Регистрация: 28.05.2010
Из: Кайфовая республика, Атдушинский район
Пользователь №: 13942



Как можно получить имя текущей погодной секции? Нужно что-то типа level.get_weather_name()
Перейти в начало страницы
 
 
 Сталкероненавист...
сообщение 25.10.2010, 08:53
Сообщение #130


Игроман
**********

Группа: Забанен
Сообщений: 957
Регистрация: 24.03.2009
Из: Россия
Пользователь №: 10380



Поставь ватчдог от АМК и смотри в консоли погодные секции. Проследи работу игры
Перейти в начало страницы
 
 
 Kolmogor
сообщение 25.10.2010, 10:56
Сообщение #131


Опытный Геймер
*******

Группа: Участник
Сообщений: 182
Регистрация: 08.09.2008
Пользователь №: 8878



Цитата(RedPython @ 24.10.2010, 18:34) *
Как можно получить имя текущей погодной секции? Нужно что-то типа level.get_weather_name()

level.get_weather()
Перейти в начало страницы
 
 
 djslavikoz
сообщение 27.02.2011, 10:58
Сообщение #132


Опытный Игрок
****

Группа: Участник
Сообщений: 53
Регистрация: 19.05.2010
Из: ukraine
Пользователь №: 13937



Ребята вот пример спавна через скрипт:

local zombie_types = {"zombie_weak", "zombie_normal", "zombie_strong", "zombie_immortal", "zombie_ghost"}
function spawn_zombies( position, total )
local zombie_index
local new_pos, x_offset, z_offset
for zombie_index=1, total do
x_offset = math.random(5)
z_offset = math.random(5)
new_pos = position
new_pos.x = new_pos.x + x_offset
new_pos.z = new_pos.z + z_offset
alife():create(zombie_types[math.random(5)],new_pos,326087,91)
end
end
function zombie_story_1(actor, npc)
local spawn_point = vector():set(43.21, 2.14, 47.16)
spawn_zombies(spawn_point, 10)
end


Скажите пожалуйста ,а можно в этом скрипте прописать логику ?????
Перейти в начало страницы
 
 
 BelKa Production
сообщение 21.07.2011, 16:46
Сообщение #133


Опытный Игрок
****

Группа: Участник
Сообщений: 54
Регистрация: 15.06.2011
Из: Белая Калитва
Пользователь №: 14377



djslavikoz, У меня вместо слов - черные линии. (IMG:style_emoticons/default/z_crazy.gif)
Я не большой спец. по скриптам. Может я и ошибаюсь, но в скрипте логику приписать нельзя
Перейти в начало страницы
 
 
 Modera
сообщение 21.07.2011, 16:49
Сообщение #134


ням-ням❤️
**********************

Группа: Участник
Сообщений: 6180
Регистрация: 30.07.2010
Пользователь №: 13969



угу её надо писать в конфе т.е. надо создать новый тип зомбей с костюм датой
Перейти в начало страницы
 
 
 K.D.
сообщение 21.07.2011, 19:55
Сообщение #135


Почти Мастер
***********

Группа: Участник
Сообщений: 1090
Регистрация: 01.03.2011
Из: Москва
Пользователь №: 14352



логику вписать можно. Но надо перезаписывать нет-пакет. Скрипт по объему вырастет сурово)

Сообщение отредактировал K.D. - 21.07.2011, 19:56
Перейти в начало страницы
 
 
 alg0r1tm
сообщение 11.10.2011, 14:32
Сообщение #136


Заслуженный Мастер Игры
*************

Группа: Участник
Сообщений: 1540
Регистрация: 30.06.2010
Из: Беларусь-> Менская вобласць-> Маладэчна
Пользователь №: 13959



Помогите плиз разобратся в сне от АМК (IMG:style_emoticons/default/smile.gif)
Цель такова: нужно сделать сон как в билдах через инвентарь (IMG:style_emoticons/default/smile.gif)
Простите за банальность

Зы, не пинайте только) я в скриптах null (IMG:style_emoticons/default/smile.gif)
Перейти в начало страницы
 
 
 Policai
сообщение 23.02.2012, 07:34
Сообщение #137


Почти Игрок
**

Группа: Участник
Сообщений: 24
Регистрация: 23.02.2012
Пользователь №: 14673



Народ!!!!
Нужна помощь гуру!


Анимация - дверь сдвигающаяся всторону, 1 кость, сдвиг вправо на 1.5 метра, 3 секунды пауза и сдвиг обратно на место.(Самодельный обьект, ставлю через спавн, в сдк анимация работает)
Попытался запустить анимацию по анологии лабы х-8 из припяти.
В кустом дата прописана ссылка на логику, с текстом:


Дверь
[collide]
ignore_static

[animated_object]

Пульт взят оттуда же , с родной логикой, я просто изменил на своё название анимации, спейса и смарта:


Пульт
[logic]
active = ph_button@no_card

[ph_button@no_card]
anim = idle
tooltip = tip_no_access_card
on_info = {=actor_has_item(zat_a23_labx8_key)} ph_button@has_card

[ph_button@has_card]
anim = idle
tooltip = tip_need_access_card
on_press = ph_button@unlocked
on_info = {!actor_has_item(zat_a23_labx8_key)} ph_button@no_card

[ph_button@unlocked]
anim = idle
tooltip = st_lx8_button_press_true
on_game_timer = 20 | {-lx8_door_open} %+lx8_door_open =anim_obj_forward(lim_door_laba_hide)%
on_game_timer2 = 10 | {-lx8_green_on} %+lx8_green_on =turn_off(lx8_light_switch_1_red_id) =turn_on(lx8_light_switch_1_green_id)%
on_info = {=actor_in_zone(lim_sr_actor_in_lab) -lim_actor_in_lab} %+lim_actor_in_lab =create_squad(lx8_polter_squad:lim_smart_terrain)%

Всё проходит до запуска анимации, то есть без карты требует карту доступа, с картой появляется сообщение доступ разрешён, потом завис на 3-4 секунды, (в этот момент должна отработать анимация), и вылет с жалобой:

Лог
FATAL ERROR
[error]Expression : !m_error_code
[error]Function : raii_guard::~raii_guard
[error]File : D:\prog_repository\sources\trunk\xrServerEntities\script_storage.cpp
[error]Line : 748
[error]Description : ....r. - Зов Припяти\gamedata\scripts\xr_effects.script:1317: attempt to index field '?' (a nil value)
stack trace:

Понимаю что это всё туфта, просто я в скриптах ноль, и пытаюсь разобраться методом тыка.

xr_effects родной нетронутый. Подскажите куда ткнуться.
Перейти в начало страницы
 
 
 Ким
сообщение 23.02.2012, 08:40
Сообщение #138


В Пальто
**********************

Группа: Участник
Сообщений: 6972
Регистрация: 18.07.2008
Из: Канберра
Пользователь №: 8458



Policai,
xr_effects, строчки с 1314 по 1320:
function anim_obj_forward(actor, npc, p)
for k,v in pairs(p) do
if v ~= nil then
db.anim_obj_by_name[v]:anim_forward() - 1317 строка
end
end
end
твоя логика
[ph_button@unlocked]
anim = idle
tooltip = st_lx8_button_press_true
on_game_timer = 20 | {-lx8_door_open} %+lx8_door_open =anim_obj_forward(lim_door_laba_hide)% - ссылается на 1317 строку
on_game_timer2 = 10 | {-lx8_green_on} %+lx8_green_on =turn_off(lx8_light_switch_1_red_id) =turn_on(lx8_light_switch_1_green_id)%
on_info = {=actor_in_zone(lim_sr_actor_in_lab) -lim_actor_in_lab} %+lim_actor_in_lab =create_squad(lx8_polter_squad:lim_smart_terrain)%

Что-то не так с названием анимки, либо она не подходит.

Кстати, ты на ТЧ это делаешь?)
Если на ТЧ, то надо допилить этот самый эффектс, три функции, как минимум, добавить.
Перейти в начало страницы
 
 
 Policai
сообщение 23.02.2012, 09:07
Сообщение #139


Почти Игрок
**

Группа: Участник
Сообщений: 24
Регистрация: 23.02.2012
Пользователь №: 14673



Цитата
Что-то не так с названием анимки, либо она не подходит.

Кстати, ты на ТЧ это делаешь?)
Если на ТЧ, то надо допилить этот самый эффектс, три функции, как минимум, добавить.


Ким
В этом то и проблема, анимка другая, на родной двери от этого скрипта 9 костей и работает на поворот, но она работает анимацией, и прописана анимацией, моя анимация - одна кость и работает на сдвиг, я просто не знаком со скриптами и попытался методом тыка подсунуть.
Платформа ЗП.
Гугл не помогает, а я не знаю как это делается. Мне нужно просто запустить выбранную анимацию по команде. Такая же проблема у меня и с мостом в рыжем лесу, не хочет он опускаться когда мне надо, попытался проследить скрипты с которыми он работает в оригинале ЧН, заблудился, там их штук 20 задействовано.
Вопрос такой: Как простейшим методом запустить выбранную анимацию по некой команде.

Сообщение отредактировал Policai - 23.02.2012, 09:09
Перейти в начало страницы
 
 
 Ким
сообщение 23.02.2012, 10:47
Сообщение #140


В Пальто
**********************

Группа: Участник
Сообщений: 6972
Регистрация: 18.07.2008
Из: Канберра
Пользователь №: 8458



Policai, вот так и вызывается.
Пример простой логики для теста:
[logic]
active = ph_button@test

[ph_button@test]
anim = idle
tooltip = tip_need_access_card
on_press = ph_button@test1

[ph_button@test1]
anim = idle
tooltip = tip_need_access_card
on_press = ph_button@unlocked
on_info = {+door_open} %=anim_obj_forward(анимация_открытия)%

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



Слушай, вот что, а логику ты привязываешь жэ к кнопке, а не к двери (IMG:style_emoticons/default/biggrin.gif)
логика кнопки
[logic]
active = ph_button@test

[ph_button@test]
anim = idle
tooltip = tip_need_access_card
on_press = %+door_open%

логика двери

[logic]
active = ph_door@test

[ph_door@test]
anim = idle
on_info = {+door_open} %=anim_obj_forward(анимация_открытия)%

Насчёт двери не знаю как привязать анимку, вечером ещё гляну

По идее к двери не привязана анимка, она просто переходит в состояние "открыто" (во всяком случае анимка не указывается в логике, где-то в скриптах может быть)
там просто переход к другой логике, где дверь: "locked = false"

Чисто теоритечески логика для двери:
[logic]
active = ph_door@test

[ph_door@test]
anim = idle
on_info = {+door_open} %=anim_obj_forward(анимация_открытия)%
должна работать, по идее функция указана в xr_effects, а значит должна вызываться для любых объектов (такого типа). Попробуй привзять стандартную анимаку через эту логику, если заработает, значит и твоя анимка будет работать
Перейти в начало страницы
 
 
 Policai
сообщение 23.02.2012, 10:49
Сообщение #141


Почти Игрок
**

Группа: Участник
Сообщений: 24
Регистрация: 23.02.2012
Пользователь №: 14673



Тут вроде понял, возник сразу вопрос, логика двери??? У меня простая анимация, вернее в максе вшил 3 одна просто открытие open, вторая закрытие close, и третья полный цикл: открытие, задержка в открытом состоянии 3 секунды и закрытие idle. Вшил также две контрольные точки, закрытая дверь и открытая дверь.
Теперь можно по подробнее по логике двери? что это? анимация вшитая или писать логику для неё надо?
Цитата
просто я в скриптах ноль, и пытаюсь разобраться методом тыка
Перейти в начало страницы
 
 
 
 

 
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0

 

Текстовая версия Сейчас: 30.10.2020, 05:50