Войти на сайт Регистрация Лента форума Пользователи Правила сайта Поиск по форуму
Модератор форума: 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 по ссылке из шапки и соседнюю тему "Курс молодого бойца",
возможно Ваш вопрос уже рассматривался.


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


"Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..."
(Чугунный всадник)
 
strelok200Дата: Пн, 09.06.2014, 11:34 | Сообщение # 496
Бывалый
Свобода
Сообщений: 126
Награды: 0
Репутация: [ 33 ]

Приветствую, народ!
Подскажите пожалуйста с чем связана такая проблема
[ Ф-ция ]

Предмет выдается, однако почему-то сразу не используется
 
denis2000Дата: Пн, 09.06.2014, 12:33 | Сообщение # 497
Полевой исследователь
Ученые сталкеры
Сообщений: 2399
Награды: 35
Репутация: [ 1918 ]

strelok200, Может, как раз, причина в том что: "Предмет не сразу выдается", а уж потом "почему-то сразу не используется".

"Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..."
(Чугунный всадник)
 
strelok200Дата: Пн, 09.06.2014, 13:50 | Сообщение # 498
Бывалый
Свобода
Сообщений: 126
Награды: 0
Репутация: [ 33 ]

denis2000, Однако если у ГГ в инвентаре уже есть предмет, то ф-ция нормально сработает

Добавлено (09.06.2014, 13:50)
---------------------------------------------
Т.е. старый предмет используется и новый появится

 
denis2000Дата: Пн, 09.06.2014, 14:25 | Сообщение # 499
Полевой исследователь
Ученые сталкеры
Сообщений: 2399
Награды: 35
Репутация: [ 1918 ]

strelok200, То есть спавнить предмет нужно в функции hit_hud(), а периодически проверять его наличие и задействовать при появлении нужно например в функции bind_stalker.update()

"Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..."
(Чугунный всадник)
 
strelok200Дата: Пн, 09.06.2014, 19:59 | Сообщение # 500
Бывалый
Свобода
Сообщений: 126
Награды: 0
Репутация: [ 33 ]

denis2000, Проверять нужно здоровье у ГГ, если коэф. ниже 30%, то сразу же выдавать и использовать предмет

Проверяйте, выдавайте и используйте - кто-же против. Только учитывайте, что между выдачей и использованием нужно время, а у вас происходит попытка использования предмета который еще не появился в инвентаре. Или можете попробовать спавнить под ноги ГГ, затем перенос в инвентарь и затем использование предмета. denis2000

Добавлено (09.06.2014, 19:59)
---------------------------------------------
denis2000, Спасибо, немного переделаю систему.
У меня ещё такой вопрос- как рандомно выводить текстуру на худ? Рандомно должно выбираться положение на экране

 
denis2000Дата: Пн, 09.06.2014, 20:05 | Сообщение # 501
Полевой исследователь
Ученые сталкеры
Сообщений: 2399
Награды: 35
Репутация: [ 1918 ]

Цитата strelok200 ()
как рандомно выводить текстуру на худ?

Объект(CustomStatic):SetWndRect(Frect():set(X1coord,Y1coord,X2coord,Y2coord)),
где X1coord,Y1coord - координаты левого верхнего угла, X2coord,Y2coord - координаты правого нижнего угла элемента.


"Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..."
(Чугунный всадник)
 
KoshaДата: Чт, 19.06.2014, 22:50 | Сообщение # 502
Отмычка
Пользователи
Сообщений: 32
Награды: 0
Репутация: [ 0 ]

Скажите можно ли скрипт респавна в чн сделать не по смарт_террайну а по координатам?
И условием спавна сделать вход ГГ на локацию?
 
FantomICWДата: Чт, 19.06.2014, 22:54 | Сообщение # 503
Лидер «Свободы»
Свобода
Сообщений: 4438
Награды: 44
Репутация: [ 1340 ]

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


 
KoshaДата: Чт, 19.06.2014, 22:59 | Сообщение # 504
Отмычка
Пользователи
Сообщений: 32
Награды: 0
Репутация: [ 0 ]

Может и удобнее... Но я так на спортивный интерес хочу попробовать через скрипт)

Хорошо. Тогда прошу задать условие респавна. К примеру, сойдет ли респавн каждый день в 12:00?
FantomICW


И условием спавна сделать вход ГГ на локацию? - писал же выше)


Сообщение отредактировал Kosha - Пт, 20.06.2014, 00:40
 
NIVДата: Пт, 20.06.2014, 10:59 | Сообщение # 505
Полевой исследователь
Ученые сталкеры
Сообщений: 167
Награды: 4
Репутация: [ 180 ]

Здравствуйте! Я опять про определение нажатия кнопок мыши. С огнестрельным оружием понятно - схема сделана еще в Солянке. А как определять нажатия кнопок мыши для холодного оружия? Ему ведь тоже патроны прописаны, но предыдущая схема, кажется, не работает.

Изменяем реальность S.T.A.L.K.E.R. CoP: "Цена Новых Исследований" / "New Investigations' Value"
 
denis2000Дата: Пт, 20.06.2014, 11:49 | Сообщение # 506
Полевой исследователь
Ученые сталкеры
Сообщений: 2399
Награды: 35
Репутация: [ 1918 ]

Цитата NIV ()
предыдущая схема, кажется, не работает

Не напомните, какая именно предыдущая схема?


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

Цитата denis2000 ()
предыдущая схема
В смысле, Соляночная.

Тогда можно попробовать использовать колбэк weapon_no_ammo, как это я делал здесь, для взрывчатки. denis2000


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

FantomICW, не хочу в этом случае использовать апдейт актера, так что задействуем немного другие методы.
Сначала создаем свой скрипт с таким наполнением:
Код
level_respawn_enabled = false

function level_respawn()
     if level_respawn_enabled == true and level.name() == "название_уровня" then
         действие_для_респавна
         level_respawn_enabled = false
     end
end    

Дальше проводим работу в bind_stalker.script.
В конец метода net_destroy добавляем:
Код
название_нового_скрипта.level_respawn_enabled = true

В конец метода reinit (хотя, честно, я не уверен, может, стоит прописать не в reinit, а в net_spawn) пишем:
Код
название_нового_скрипта.level_respawn()



 
a4927860Дата: Сб, 21.06.2014, 10:50 | Сообщение # 509
Новичок
Пользователи
Сообщений: 81
Награды: 0
Репутация: [ 22 ]

Добрый день!

Возникли следующие вопросы:
1) можно ли скриптом менять отношение нпс? (цель - сделать нпс френдли на 30 сек)
2) как правильно будет выглядеть цикл-таймер к которому могут обращаться скрипты из других функций (файлов)
Нужно для проверки истечения времени для 9 функций у которых разное время окончания.
[ Сейчас я использую проверку в мотиваторе ]


[ PS to denis2000, (Этот текст скрыт от гостей) ]


Сообщение отредактировал a4927860 - Сб, 21.06.2014, 10:52
 
FantomICWДата: Сб, 21.06.2014, 11:23 | Сообщение # 510
Лидер «Свободы»
Свобода
Сообщений: 4438
Награды: 44
Репутация: [ 1340 ]

a4927860, приветствую.
Во-первых, есть целый набор game_relations.script. Во-вторых, движковые функции в роде:
Код
local npc = get_story_object_id("sid")
npc:set_relation(game_object.friend, db.actor)



 
Поиск: