Перейти в начало страницы

Здравствуйте, гость ( Авторизация | Регистрация )

Gameru.net останавливает работу в связи с вторжением армии РФ в Украину. Следите за дальнейшими анонсами.
Support Gameru!

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

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

> Скрипты
Орион
сообщение 13.07.2009, 11:34
Сообщение #121


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

Репутация:   377  
Группа: Забанен
Сообщений: 2210
Регистрация: 11.03.2009




Вставить ник Цитировать выделенное в форуму быстрого ответа



FAQ

Lua в X-Ray

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

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

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



Сообщение отредактировал RayTwitty - 09.06.2018, 20:23


--------------------
нарушение правил п. 7.2
Перейти в начало страницы
 
15 страниц V  « < 5 6 7 8 9 > »   
Начать новую тему
Ответов
сталкероид
сообщение 29.09.2010, 23:07
Сообщение #122


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

Репутация:   46  
Группа: Участник
Сообщений: 279
Награды: 3
Регистрация: 13.05.2010




Вставить ник Цитировать выделенное в форуму быстрого ответа


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

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


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

Репутация:   12  
Группа: Участник
Сообщений: 53
Награды: 1
Регистрация: 19.05.2010




Вставить ник Цитировать выделенное в форуму быстрого ответа


Сталкероид
В основном я научился спавнить через 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


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

Репутация:   405  
Группа: Забанен
Сообщений: 957
Регистрация: 24.03.2009




Вставить ник Цитировать выделенное в форуму быстрого ответа


Может ты анимацию модели установил не ту?


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


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

Репутация:   46  
Группа: Участник
Сообщений: 279
Награды: 3
Регистрация: 13.05.2010




Вставить ник Цитировать выделенное в форуму быстрого ответа


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


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

Репутация:   12  
Группа: Участник
Сообщений: 53
Награды: 1
Регистрация: 19.05.2010




Вставить ник Цитировать выделенное в форуму быстрого ответа


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

Надо дописать функцию в 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


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

Репутация:   497  
Группа: Участник
Сообщений: 1854
Награды: 2
Регистрация: 04.03.2009




Вставить ник Цитировать выделенное в форуму быстрого ответа


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


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

Репутация:   51  
Группа: Забанен
Сообщений: 206
Регистрация: 16.05.2008




Вставить ник Цитировать выделенное в форуму быстрого ответа


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


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

Репутация:   1357  
Группа: Участник
Сообщений: 1155
Награды: 5
Регистрация: 28.05.2010




Вставить ник Цитировать выделенное в форуму быстрого ответа


Как можно получить имя текущей погодной секции? Нужно что-то типа level.get_weather_name()


--------------------
Сверхнарод, не желающий кормить своего уицраора шаввой, будет кормить чужого гаввахом!
---------------
------------
----------
--------
------
----
--
Перейти в начало страницы
 
Сталкероненавист...
сообщение 25.10.2010, 08:53
Сообщение #130


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

Репутация:   405  
Группа: Забанен
Сообщений: 957
Регистрация: 24.03.2009




Вставить ник Цитировать выделенное в форуму быстрого ответа


Поставь ватчдог от АМК и смотри в консоли погодные секции. Проследи работу игры


--------------------
Забанен по собственному желанию
Перейти в начало страницы
 
Kolmogor
сообщение 25.10.2010, 10:56
Сообщение #131


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

Репутация:   147  
Группа: Участник
Сообщений: 182
Регистрация: 08.09.2008




Вставить ник Цитировать выделенное в форуму быстрого ответа


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

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


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

Репутация:   12  
Группа: Участник
Сообщений: 53
Награды: 1
Регистрация: 19.05.2010




Вставить ник Цитировать выделенное в форуму быстрого ответа


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

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


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

Репутация:   8  
Группа: Участник
Сообщений: 54
Награды: 1
Регистрация: 15.06.2011




Вставить ник Цитировать выделенное в форуму быстрого ответа


djslavikoz, У меня вместо слов - черные линии. z_crazy.gif
Я не большой спец. по скриптам. Может я и ошибаюсь, но в скрипте логику приписать нельзя


--------------------
Создаю мод на S.T.A.L.K.E.R. Тень Чернобыля - S.T.A.L.K.E.R. СверхАртефакт
А также "Хомяк МОД"=D Другу на День Рождения
Перейти в начало страницы
 
Modera
сообщение 21.07.2011, 16:49
Сообщение #134


.
**********************

Репутация:   750  
Группа: Участник
Сообщений: 7072
Награды: 4
Регистрация: 30.07.2010




Вставить ник Цитировать выделенное в форуму быстрого ответа


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


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

Репутация:   311  
Группа: Участник
Сообщений: 1092
Награды: 5
Регистрация: 01.03.2011




Вставить ник Цитировать выделенное в форуму быстрого ответа


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

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


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

Репутация:   279  
Группа: Участник
Сообщений: 1564
Награды: 4
Регистрация: 30.06.2010




Вставить ник Цитировать выделенное в форуму быстрого ответа


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

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


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

Репутация:   2  
Группа: Участник
Сообщений: 24
Регистрация: 23.02.2012




Вставить ник Цитировать выделенное в форуму быстрого ответа


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


Анимация - дверь сдвигающаяся всторону, 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


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

Репутация:   930  
Группа: Участник
Сообщений: 6980
Награды: 8
Регистрация: 18.07.2008




Вставить ник Цитировать выделенное в форуму быстрого ответа


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


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

Репутация:   2  
Группа: Участник
Сообщений: 24
Регистрация: 23.02.2012




Вставить ник Цитировать выделенное в форуму быстрого ответа


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

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


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

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


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

Репутация:   930  
Группа: Участник
Сообщений: 6980
Награды: 8
Регистрация: 18.07.2008




Вставить ник Цитировать выделенное в форуму быстрого ответа


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), котоаря будет выдавать нужный инфопоршень и логика двери даст команду на открытие.



Слушай, вот что, а логику ты привязываешь жэ к кнопке, а не к двери 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


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

Репутация:   2  
Группа: Участник
Сообщений: 24
Регистрация: 23.02.2012




Вставить ник Цитировать выделенное в форуму быстрого ответа


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

15 страниц V  « < 5 6 7 8 9 > » 
Ответить в данную темуНачать новую тему
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



Текстовая версия Сейчас: 28.03.2024, 15:26