Svoboда 3 Опубликовано 23 Апреля 2009 Поделиться Опубликовано 23 Апреля 2009 Тема для обсуждения скриптов всего и всех в серии игр STALKER. Задавая вопрос (!): 1. Внимательно изучите суть вопроса. Вопрос должен соответствовать выбранной Вами темы. Это поможет сохранить порядок и читабельность темы, а также облегчит поиск и понимание сего; 2. Изучите то, что уже есть в теме (пролистайте "руками", воспользуйтесь поиском на форуме); 3. Изучите информацию которая может вам помочь: Stalkerin. Там есть много хороших статей касательно данной темы.Уроки по модостроению. Есть рабочие примеры готовых скриптов различного назначения. Справочное руководство по языку Lua 5.1https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/ruСправочник по функциям и классам. Собрано много информации по функциям и классам, не всем, но по основные сведения предоставлены. Логика со вступлением и четырьмя частями: ВступлениеЧасть перваяЧасть втораяЧасть третьяЧасть четвертая. Smart_terrain (в простонароде - гулаг)Интересный способ настроики логики для гулаговСкриптовая часть игровой логики 4. Дабы не превращать обсуждение в "кашу" разной информативной направленности, задавайте несколько вопросов по порядку (в разных постах) после того, как получите ответ на предыдущий вопрос; 5. "Спасибо" и тому подобное - будьте так любезны в ПМ. Если не любите писать в ПМ, в конце вопроса напишите фразу: "Заранее спасибо!" - или что-то в этом духе; 6. ПОЖАЛУЙСТА! Указывайте, для какой игры Вам необходима информация (ТЧ, ЧН, ЗП), если стоит мод - укажите название мода; 7. Если Вы что-то сделали и результат не такой, какой Вами задумывался, то, пожалуйста, приводите коды которые Вы изменяли/писали целиком! Это поможет другим правильно ответить на Ваш вопрос, а также оградит Вас от лишней писанины. 8. Оформляйте сообщение. Пользуйтесь тегами для того, чтобы отделить код от текста. Пишите грамотно - ПОЛЬЗУЙТЕСЬ ЗНАКАМИ ПРЕПИНАНИЯ. 9. И помните: «Правильно заданный вопрос – половина ответа». Какие вопросы следует задавать, а какие нет... Задавайте вопросы, которые касаются непосредственно скриптов и их работы, т.е. Вы что-то делаете, а у Вас что-то не получается, при этом у Вас на руках должен быть хотя бы какой-то код, свидетельствующий о Вашей причастности к вопросу. Вопросы которые будут удалятся, следовательно их задавать не нужно:-- Где находится та или иная функция? Для ответа используем поиск по словам среди файлов оригинальной игры или мода, если объект поиска относится к нему, при помощью программы, которая Вам наиболее симпатизирует;-- Как сделать что-то/то-то? С подобными вопросами, либо в "ковырялки", где Вам вероятнее всего так же не ответят, либо выдвигаем мысли, подкреплённые теорией, практикой (идеальный вариант) и здравым рассудком;-- Вопросы со смыслом: "сделайте", "совместите" и подобными глаголами повелительного наклонения.-- К тому же удалению будут подвергаться вопросы, в которых масштабно не используются теги, для отделения кода и цитат от основного текста, а также не вписан в спойлер код размером превышающие семь строк.Ответ на возможно возникший вопрос: В какую тему можно обратиться по поводу логики и спавна объектов? В тему "ковырялок" соответствующей версии игры, для которой Вы задаёте вопрос. И последнее: очень рекомендовано к прочтению Правила форума 1 2 Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/
barmidrol 0 Опубликовано 15 Апреля 2010 Поделиться Опубликовано 15 Апреля 2010 Gektor, открываешь db.script, там есть функция add_actor, в ней и даешь инфопоршн. Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/23/#findComment-423704
raf100 0 Опубликовано 17 Апреля 2010 Поделиться Опубликовано 17 Апреля 2010 как машины через олл спавн заспавнить? Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/23/#findComment-424727
iDreD 5 Опубликовано 18 Апреля 2010 Поделиться Опубликовано 18 Апреля 2010 Скачай xrSpawner последней версии. Это для ТЧ. Там уже все машины описаны как секции для алл.спауна. Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/23/#findComment-425380
raf100 0 Опубликовано 18 Апреля 2010 Поделиться Опубликовано 18 Апреля 2010 Мне на зп надо! Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/23/#findComment-425417
iDreD 5 Опубликовано 18 Апреля 2010 Поделиться Опубликовано 18 Апреля 2010 http://www.amk-team.ru/forum/index.php?showtopic=8355 Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/23/#findComment-425425
raf100 0 Опубликовано 18 Апреля 2010 Поделиться Опубликовано 18 Апреля 2010 Там через скрипт, а мине через олл спавн надо! Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/23/#findComment-425496
DiXares 1 Опубликовано 18 Апреля 2010 Поделиться Опубликовано 18 Апреля 2010 Вот есть скрипт спавна рабочей аномалии. Есть скрипт спавна рестриктора. А есть скрипт спавна источника света(вместе с моделью)? Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/23/#findComment-425568
Влад 9 Опубликовано 21 Апреля 2010 Поделиться Опубликовано 21 Апреля 2010 (изменено) Повесил выполнение ф-ции на кнопку: Expression : fatal error Function : CScriptEngine::lua_error File : E:\stalker\patch_1_0004\xr_3da\xrGame\script_engine.cpp Line : 73 Description : <no expression> Arguments : LUA error: ...s\s.t.a.l.k.e.r\gamedata\scripts\ui_main_menu.script:315: attempt to call method 'kill' (a nil value) ob = alife():create(section,pos,db.actor:level_vertex_id(),db.actor:game_vertex_id()) ob:kill(ob) Кто знает,в чём трабла? malandrinus Спасибо! Изменено 21 Апреля 2010 пользователем Влад Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/23/#findComment-427472
Malandrinus 615 Опубликовано 21 Апреля 2010 Поделиться Опубликовано 21 Апреля 2010 (изменено) Влад, После создания объекта ты получаешь серверный объект, ему ещё надо перейти в онлайн. только после перехода в онлайн появится клиентский. Клиентский ты сможешь найти с помощью функции level.object_by_id(). Вот для него и вызывай kill добавлено. Если задачей стоит заспавнить дохлую тушку, то это можно сделать не дожидаясь перехода в онлайн. Можно вызвать для серверного объекта метод on_death(). Это обсуждалось здесь. Изменено 21 Апреля 2010 пользователем malandrinus Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/23/#findComment-427651
Влад 9 Опубликовано 22 Апреля 2010 Поделиться Опубликовано 22 Апреля 2010 (изменено) Работаю с юи-элементами: Кнопка: self.W = xml:Init3tButton("test", self) self:Register(self.W,"test") self.W:Enable(true) Ф-ция,которая срабатывает при нажатии на эту кнопку: function ui_test:testButton() ... self.W:Enable(false) ... end Только вот при нажатии на кнопку,она не исчезает.Как быть? malandrinus Спасибо!Снова помог) Изменено 22 Апреля 2010 пользователем Влад Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/23/#findComment-428098
Malandrinus 615 Опубликовано 22 Апреля 2010 Поделиться Опубликовано 22 Апреля 2010 Влад, используй метод Show(true/false). Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/23/#findComment-428242
Влад 9 Опубликовано 24 Апреля 2010 Поделиться Опубликовано 24 Апреля 2010 (изменено) Хотел выести текст в мессаг-боксе, local xml = CUIScriptWnd() xml:GetMessageBox("ТЕСТ") но ничего не произошло.. Или такой вариант не катит? Изменено 24 Апреля 2010 пользователем Влад Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/23/#findComment-429356
Kolmogor 5 Опубликовано 24 Апреля 2010 Поделиться Опубликовано 24 Апреля 2010 (изменено) Такой вариант не катит. То что написал ты, используется по-другому local xml = CUIScriptWnd() --... --здесь нужно создать и зарегистрировать MessageBox под именем "TECT" --... -- здесь ты получаешь ранее созданный MessageBox local message_box = xml:GetMessageBox("ТЕСТ") -- и здесь можешь с ним что-нибудь сделать, например, показать Почему бы не посмотреть, как уже сделано в оригинале. MesssageBox`ы, например, выводятся в главном меню. Вот как сделано в ЗП(файл ui_main_menu.script): local message_box = CUIMessageBoxEx() message_box:InitMessageBox("message_box_quit_windows") message_box:ShowDialog(true) Можно найти пример и в ТЧ Изменено 24 Апреля 2010 пользователем Kolmogor Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/23/#findComment-429397
Gektor 0 Опубликовано 24 Апреля 2010 Поделиться Опубликовано 24 Апреля 2010 Народ, такая проблема заспавнил сквад через смарт террайн и задал персонажам логику. Так вот, руководитель группы стоит в той точке в которую я его поставил но смотрит в противоположную точке просмотра сторону. в чем может быть проблема? Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/23/#findComment-429439
Struck 61 Опубликовано 25 Апреля 2010 Поделиться Опубликовано 25 Апреля 2010 А есть где нибудь тутор про динамические диалоги с примерами, вроде всё что есть в скриптовой строке условия ясно, но как именно втыкать и как пользоватся никак не дойдёт... Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/23/#findComment-430158
iDreD 5 Опубликовано 25 Апреля 2010 Поделиться Опубликовано 25 Апреля 2010 (изменено) Эм... Ты про пунктик "Что можешь интересного рассказать"? Эти диалоги ДАЛЕКО, не динамические... Прописаны в gamedata\config\gameplay\character_dialogs.xml. Добавлено через 48 мин.: Возник вопрос: можно ли использовать такую конструкцию? --Локальная переменная содержащая монстров которые спаунятся на локации где попало. local spawned_mutants = { "pseudodog", "bloodsucker", "zombie_strong"} --Функция спаунющая мутантов где попало. function spawn_m() alife():create(spawned_mutants[math.random(3)], vector():set(x,y,z),lv,gv) end local x = { "190" "453" "532"} local y = { "10" "15" "2"} local z = { "867" "564" "345"} local lv = { "100" "143" "200"} local gv = { "432" "564" "246"} Или я в очередной раз извращаюсь как могу? Если да, то как мне сделать рандомный выбор координат из предложенных? Изменено 25 Апреля 2010 пользователем кровоSTALKER Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/23/#findComment-430171
Push85 5 Опубликовано 25 Апреля 2010 Поделиться Опубликовано 25 Апреля 2010 кровоSTALKER, ну во первых: переменные нужно объявлять до их использования, во вторых у тебя нет выбора разных координат, а вместо них берется таблица, вылет будет однако, в третьих, левел вертекс и гейм вертекс лучше вычислять для координат, а лучше вообще брать координаты со случайного левел вертекса, посмотри в AMK как там вычисляли координаты для спавна аномалия, на мой взгляд идеальная реализация, сам ей пользуюсь когда надо. Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/23/#findComment-430228
iDreD 5 Опубликовано 25 Апреля 2010 Поделиться Опубликовано 25 Апреля 2010 (изменено) Ещё создал --Локальная переменная содержащая в себе имена профилей сталкеров подлежащих удалению. local deleted_stalkers = {"gar_seriy", "gar_hellcar", "gar_bandit_leader"} --Функция берущая имена профилей НПС из локальной переменной и удаляющая их. function delete_s() alife():release(deleted_stalkers) end вызываемую level_tasks.add_lchanger_location() self.bCheckStart = false end if level.name() == "l02_garbage" then pioners.delete_s() end end end но вылетает с таким 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: ... publishing\s.t.a.l.k.e.r\gamedata\scripts\_g.script:20: bad argument #2 to 'format' (string expected, got no value) stack trace: В чём проблема? Изменено 25 Апреля 2010 пользователем кровоSTALKER Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/23/#findComment-430235
iDreD 5 Опубликовано 25 Апреля 2010 Поделиться Опубликовано 25 Апреля 2010 Хм... А как id получить? Добавлено через 6 мин.: Тоесть, примерно local deleted_stalkers = {"gar_seriy", "gar_hellcar", "gar_bandit_leader"} function delete_s() local se_obj = alife():object(deleted_stalkers) if se_obj then alife():release(se_obj, true) end end функция? Но и она не работает... Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/23/#findComment-430245
Unnamed Black Wolf 5 Опубликовано 25 Апреля 2010 Поделиться Опубликовано 25 Апреля 2010 Можно так-же удалять по сиду, иду и имени... Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/23/#findComment-430274
Рекомендуемые сообщения
Создайте аккаунт или авторизуйтесь, чтобы оставить комментарий
Комментарии могут оставлять только зарегистрированные пользователи
Создать аккаунт
Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!
Зарегистрировать новый аккаунтВойти
Есть аккаунт? Войти.
Войти