Войти на сайт Регистрация Лента форума Пользователи Правила сайта Поиск по форуму
Модератор форума: denis2000, FantomICW  
Модостроение. Редактирование и создание скриптов
denis2000Дата: Пн, 10.10.2011, 21:17 | Сообщение # 1
Полевой исследователь
Ученые сталкеры
Сообщений: 2399
Награды: 35
Репутация: [ 1918 ]

Редактирование и создание скриптов

Редактирование и создание скриптов на языке LUA

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


Много интересного материала здесь (wiki), Lua_help.script, Help из SDK 0.7

Сборник модостроения ЗП v10.10.11 (автор: XOBAH): *.CHM, *.HTML
[ Если у вас не открывается файл CHM(Этот текст скрыт от гостей) ]


[ Где найти лог игры после вылета ]
[ Получение более подробной информации о вылете (ХОВАН) ]



Перед тем, как задать вопрос в этой теме, прочтите все предыдущие страницы,
статьи в wiki по ссылке из шапки и соседнюю тему "Курс молодого бойца",
возможно Ваш вопрос уже рассматривался.


Если произошел вылет - выкладываем лог! Вопрос ставим четко, не забываем указывать версию игры, установленные моды их версии, установленные фиксы модов и подробно ваши правки.
Помните чем подробнее вопрос, тем точнее ответ.


"Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..."
(Чугунный всадник)
 
makdmДата: Вт, 27.08.2013, 17:02 | Сообщение # 286
Рожденный в СССР
Разработчики
Сообщений: 1294
Награды: 29
Репутация: [ 1909 ]

denis2000, Спасибо, что откликнулся.
Самое интересно, что функция get_clsid(object) при проверке объекта сквада возвращает число 94.
А у объекта сквад, как выяснилось, нет клиентской части, только серверный объект.
Поэтому решил немного по другому.

http://sigerous.ru/forum/17-3149-1189430-16-1377608146


Терпение......
И все получится!
 
metalistДата: Ср, 28.08.2013, 16:08 | Сообщение # 287
Гражданский
Пользователи
Сообщений: 6
Награды: 0
Репутация: [ 15 ]

Подскажите, пожалуйста, где можно почитать про callback'и. Заранее благодарен.
 
denis2000Дата: Ср, 28.08.2013, 17:04 | Сообщение # 288
Полевой исследователь
Ученые сталкеры
Сообщений: 2399
Награды: 35
Репутация: [ 1918 ]

metalist, Описание класса "callback" есть, например на АМК в контексте описания класса "object_binder"

"Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..."
(Чугунный всадник)
 
NIVДата: Чт, 29.08.2013, 19:36 | Сообщение # 289
Полевой исследователь
Ученые сталкеры
Сообщений: 167
Награды: 4
Репутация: [ 180 ]

Подскажите, пожалуйста по здоровью актора. Написал в функции:
Код
db.actor.health = -1

Вроде как здоровье должно уменьшаться на 100%, но получается не совсем так.
Если у актора было 100% здоровья, то после этой функции здоровье падает до одной полосочки, автоматом включается тяжелое дыхание (тяжелое ранение?). А если у актора здоровье было меньше полного, то оно падает до трёх полосочек и тяжелого дыхания нет. В чем может быть дело?
Можно ли такой функцией уменьшения здоровья убить актора?
Можно ли установить уровень здоровья актору / НПС, аналогично функции set_condition для предмета?


Изменяем реальность S.T.A.L.K.E.R. CoP: "Цена Новых Исследований" / "New Investigations' Value"
 
FantomICWДата: Чт, 29.08.2013, 20:36 | Сообщение # 290
Лидер «Свободы»
Свобода
Сообщений: 4438
Награды: 44
Репутация: [ 1340 ]

NIV, ГГ можно убить оборотом db.actor:kill(db.actor). Кстати, в xr_effects.script даже существует функция kill_actor с таким наполнением:
[ Функция ]

А также ей подобные kill_npc и kill_squad:
[ Функции ]





Сообщение отредактировал FantomICW - Чт, 29.08.2013, 20:36
 
NIVДата: Чт, 29.08.2013, 21:24 | Сообщение # 291
Полевой исследователь
Ученые сталкеры
Сообщений: 167
Награды: 4
Репутация: [ 180 ]

FantomICW, спасибо, это понятно. Я же спрашивал, почему параметр db.actor.health не становится отрицательным. А может и становится, но потом преобразуется в положительный?

Изменяем реальность S.T.A.L.K.E.R. CoP: "Цена Новых Исследований" / "New Investigations' Value"

Сообщение отредактировал NIV - Чт, 29.08.2013, 21:25
 
sergej5500Дата: Чт, 29.08.2013, 21:58 | Сообщение # 292
Полевой Исследователь
Ученые сталкеры
Сообщений: 3793
Награды: 29
Репутация: [ 1355 ]

Добрый Вечер.
В тестовых целях нужно в СГМ 2.1 удалять сквады с конкретным ID и НПС с конкретным ID. Нужно, чтобы функции вызывались через ui_main_menu при нажатии определённой клавиши. Что-то вроде:
elseif db.actor~=nil and dik==DIK_keys.DIK_F5 then
self:mod_options()
elseif db.actor~=nil and dik==DIK_keys.DIK_A then
release_npc("zat_b38_alfa1")
elseif db.actor~=nil and dik==DIK_keys.DIK_S then
remove_squad("zat_b104_zombied_1")


Вопрос, какие СГМ-функции для этой цели можно применить?
 
FantomICWДата: Пт, 30.08.2013, 00:58 | Сообщение # 293
Лидер «Свободы»
Свобода
Сообщений: 4438
Награды: 44
Репутация: [ 1340 ]

Сергей, из СГМ-функций я накопал set_squad_removed из _g.script, которая, фактически, является дочерней от функции remove_squad из xr_effects.script. Это для сквадов, разумеется. А вот для НПС из набора функций СГМ не вижу. Есть все из того же xr_effects.script функция remove_npc, в которой есть СГМ-правки.




Сообщение отредактировал FantomICW - Пт, 30.08.2013, 00:59
 
denis2000Дата: Пт, 30.08.2013, 10:38 | Сообщение # 294
Полевой исследователь
Ученые сталкеры
Сообщений: 2399
Награды: 35
Репутация: [ 1918 ]

NIV, db.actor.health - это не функция, а параметр. К тому-же вы не управляете им на прямую, а передаете величину на которую его нужно изменить.
Цитата (NIV)
Можно ли такой функцией уменьшения здоровья убить актора?

Да:
Код
db.actor.health = -1
db.actor.health = -1
гарантированно убивает.
Цитата (NIV)
Можно ли установить уровень здоровья актору / НПС, аналогично функции set_condition для предмета?

Да, на примере ГГ:
Код
db.actor.health = 0.3 - db.actor.health

Цитата (NIV)
почему параметр db.actor.health не становится отрицательным

ГГ умрет - станет


"Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..."
(Чугунный всадник)
 
9vova8Дата: Пт, 30.08.2013, 18:24 | Сообщение # 295
Новичок
Пользователи
Сообщений: 91
Награды: 2
Репутация: [ 6 ]

Доброго времени суток, у меня вопрос: как телепортировать ГГ по условию в диалоге, сделал функцию в dialogs_zaton.script с ссылкой <action>dialogs_zaton.teleport_to_pripyat</action>
[ Читать далее ]


Игра вообще не реагирует.




Сообщение отредактировал 9vova8 - Пт, 30.08.2013, 18:26
 
sergej5500Дата: Пт, 30.08.2013, 18:29 | Сообщение # 296
Полевой Исследователь
Ученые сталкеры
Сообщений: 3793
Награды: 29
Репутация: [ 1355 ]

9vova8,
Попробуй убрать из функции гейм и левел вертекс. Должны быть 3 координаты точки, на которую переносится ГГ.
 
9vova8Дата: Пт, 30.08.2013, 18:43 | Сообщение # 297
Новичок
Пользователи
Сообщений: 91
Награды: 2
Репутация: [ 6 ]

sergej5500, теперь телепортирует, но вот ошибка
[ Читать далее ]


 
sergej5500Дата: Пт, 30.08.2013, 18:55 | Сообщение # 298
Полевой Исследователь
Ученые сталкеры
Сообщений: 3793
Награды: 29
Репутация: [ 1355 ]

9vova8,
Попробуй убрать строку
level.add_pp_effector ("teleport.ppe", 333, false)
 
9vova8Дата: Пт, 30.08.2013, 18:59 | Сообщение # 299
Новичок
Пользователи
Сообщений: 91
Награды: 2
Репутация: [ 6 ]

sergej5500, не помогло

 
sergej5500Дата: Пт, 30.08.2013, 19:06 | Сообщение # 300
Полевой Исследователь
Ученые сталкеры
Сообщений: 3793
Награды: 29
Репутация: [ 1355 ]

9vova8,
Что, собственно, должно произойти после телепортации ГГ на эту точку?
 
Поиск: