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/
Kondr48 314 Опубликовано 28 Февраля 2016 Поделиться Опубликовано 28 Февраля 2016 CRAZY_STALKER666, так такого и нет) это движковые функции. 1 Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/354/#findComment-996370
Sla-Sla 43 Опубликовано 28 Февраля 2016 Поделиться Опубликовано 28 Февраля 2016 @CRAZY_STALKER666, проще кат-сцену в сдк сделать с анимацией камеры. Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/354/#findComment-996371
Overfirst 637 Опубликовано 28 Февраля 2016 Поделиться Опубликовано 28 Февраля 2016 У меня на компьютере нет level.script, может кто скинет? Это пространство имён. Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/354/#findComment-996374
kmsk 2 Опубликовано 28 Февраля 2016 Поделиться Опубликовано 28 Февраля 2016 Приветствую товарищи, объясните мне недалекому человеку: Есть две одинаковые секции в рюкзаке ГГ. ---это в апдейте local slot_1local slot_2local full_slots local tab = { --- таблица с секциями "...",} if slot_1 ~= nil and slot_2 ~= nil thenfull_slots = trueelsefull_slots = falseend----- раздаем id for _, section in pairs (tab) do local item = db.actor:object(section) if item then if full_slots == false then if slot_1 == nil then slot_1 = item:id() db.actor:give_game_news("Слот 1 занят", "ui\\ui_pda_news", Frect():set(0,300,180,100), 0, 10000) end if slot_2 == nil and item:id() ~= slot_1 then -- ПОЧЕМУ ПРИ НАЛИЧИИ ОДНОГО ПРЕДМЕТА СРАБАТЫВАЕТ И ЭТО??? slot_2 = item:id() db.actor:give_game_news("Слот 2 занят", "ui\\ui_pda_news", Frect():set(0,300,180,100), 0, 10000) end else if item:id() ~= slot_1 and item:id() ~= slot_2 then alife():release(alife():object(item:id()), true) end end end end Мне нужно чтобы если при нахождении у гг третьего предмета с одинаковой секцией, удолялся именно последний а не хрен пойми какой... Спасибо за понимание... Вообще, можно ли присвоить предмету индивидуальный номер, и по этому номеру удалить предмет??? Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/354/#findComment-996400
Kondr48 314 Опубликовано 28 Февраля 2016 Поделиться Опубликовано 28 Февраля 2016 (изменено) kmsk, ничего не нужно присваивать, ID это и есть уникальный номер) Изменено 28 Февраля 2016 пользователем Kondr48 Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/354/#findComment-996410
hi_flyer 75 Опубликовано 28 Февраля 2016 Поделиться Опубликовано 28 Февраля 2016 Подскажите, как можно скриптово закрыть окно ПДА? Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/354/#findComment-996414
Kondr48 314 Опубликовано 28 Февраля 2016 Поделиться Опубликовано 28 Февраля 2016 level.start_stop_menu(self, true) У меня кнопка выключения закрывает так) Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/354/#findComment-996416
kmsk 2 Опубликовано 28 Февраля 2016 Поделиться Опубликовано 28 Февраля 2016 Kondr48,тогда почему при нахождении одного предмета, срабатывает как два? Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/354/#findComment-996428
Kondr48 314 Опубликовано 28 Февраля 2016 Поделиться Опубликовано 28 Февраля 2016 (изменено) kmsk, if slot_2 == nil and item:id() ~= slot_1 then Потому что item:id() будет давать одно и то же число, при выполнении цикла для каждого отдельного элемента вашей таблицы, то есть: 1 item - item:id() = постоянное id что бы вы там не присваивали 2 item - аналогично, только id уже другой. Изменено 28 Февраля 2016 пользователем Kondr48 Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/354/#findComment-996437
CRAZY_STALKER666 36 Опубликовано 28 Февраля 2016 Поделиться Опубликовано 28 Февраля 2016 @Sla-Sla, не имею возможности и навыков) Ну ладно, будем пробовать. Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/354/#findComment-996441
FonSwong 33 Опубликовано 28 Февраля 2016 Поделиться Опубликовано 28 Февраля 2016 (изменено) Как можно сделать динамическм указание [[путь\]], то есть к [[]] добавить окончание из переменной со строковым значением perem_string = "дин.окончание пути"? Изменено 28 Февраля 2016 пользователем FonSwong Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/354/#findComment-996482
naxac 2 578 Опубликовано 29 Февраля 2016 Поделиться Опубликовано 29 Февраля 2016 (изменено) к [[]] добавить окончание из переменной со строковым значениемТак же, как и к любой другой строке:[[string1]]..'string2' почему при нахождении одного предмета, срабатывает как два?Потому что ты пытаешься получить объект из инвентаря по секции и функция возвращает один и тот же объект.Используй либо iterate_inventory, либо цикл "for i=0, db.actor:object_count()-1 do...". Изменено 29 Февраля 2016 пользователем naxac Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/354/#findComment-996534
FonSwong 33 Опубликовано 29 Февраля 2016 Поделиться Опубликовано 29 Февраля 2016 (изменено) Извиняюсь за глупый вопрос, просто первый раз к звукам притронулся. Так вот, а зачем пути к звукам используют как [[abc/def]] ? А не просто строкой "abc/def" ? И ещё один вопрос в догонку, реально ли сделать так, чтобы при прокрутке игрового времени, допустим во время сна, чтобы вокруг(на тек. левеле) все действия ускорялись- то есть нпс быстрее бегали, физика ускоряла движения объектов и т.д и т.п., чтобы после того же сна, мы видели что было реальное увеличение скорости течения времени(а не как сейчас- всего лишь прокрутка циферок времени) Понятное дело, что для этого придётся изменять двиг+ такое кратковременное ускорение течения времени повлечёт в такие моменты колоссальную нагрузку Изменено 29 Февраля 2016 пользователем FonSwong Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/354/#findComment-996721
Malandrinus 615 Опубликовано 1 Марта 2016 Поделиться Опубликовано 1 Марта 2016 @FonSwong, обычно так пишут, когда в пути имеется "бэкслэш", т.е. символ "\". Этот символ специальный, в комбинации со следующим за ним он имеет определённый эффект. Например "\n" - это перевод строки, "\t" - символ табуляции и т.д. Набери в гугле "escape последовательности" и узнаешь больше. Так вот эти специальные комбинации в Lua работают только если строка заключена в кавычки. Чтобы не использовать эти специальные комбинации, а трактовать каждый символ строго как он есть в Lua можно заключить строку в двойные квадратные скобки. Для путей, где обратные слэши встречаются постоянно, это особенно удобно. По второму вопросу. Нет, как ты хочешь не сделать. Кстати, и обратное тоже не сделать, т.е. замедлить все процессы, физику, анимацию, партиклы и т.п., тоже не получится. Т.е. сломо, буллеттайм и т.п. на текущем движке не выйдет. Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/354/#findComment-996785
Dennis_Chikin 3 665 Опубликовано 1 Марта 2016 Поделиться Опубликовано 1 Марта 2016 Уточню: офлайн-события вполне можно ускорить. То есть, неписи, которые куда-то бегут в офлайне - добегут, стэйты гулагов изменятся, и т.д. В онлайне - отработают те события, которые привязаны к game_time. Передвижения неписей в онлайне и бои между ними - нет. Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/354/#findComment-996791
Space.Marine 466 Опубликовано 1 Марта 2016 Поделиться Опубликовано 1 Марта 2016 Приветствую уважаемых специалистов. Сам ни разу не скриптёр\программер. Поэтому прошу помощи. Есть мод на ТЧ - "Ремкомплект" - там три скрипта: https://cloud.mail.ru/public/EzpC/A5f3UbsKV Хотел уменьшить количество деталей после "разборки" стволов, но не смог. Я так понял, что кол-во деталей зависит от кондиции ствола. Но не нашёл ту дельту которую нужно уменьшать. Буду очень признателен за помощь. Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/354/#findComment-996793
Charsi 441 Опубликовано 1 Марта 2016 Поделиться Опубликовано 1 Марта 2016 @Space.Marine, расчет количества деталей смотри в строке 449 в repair.script. 1 Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/354/#findComment-996795
Eugen81 1 008 Опубликовано 1 Марта 2016 Поделиться Опубликовано 1 Марта 2016 @FonSwong, так же можно использовать и путь в кавычках, только экранируя спец. символ "бэкслэш" еще одним "бэкслэшем": строки из sound_theme.script ph_snd_themes["prapor_music"] = {"characters_voice\\scenario\\prapor\\prapor_music_1", "characters_voice\\scenario\\prapor\\prapor_music_2", ...} ph_snd_themes["dolg_speech"] = {[[characters_voice\scenario\bar\barman_megafon\megaphone_barman_1]], [[characters_voice\scenario\megafon\megafon_music_1]], ... Т.е. "characters_voice\\scenario..." идентичен [[characters_voice\scenario...]] 1 Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/354/#findComment-996851
Kondr48 314 Опубликовано 1 Марта 2016 Поделиться Опубликовано 1 Марта 2016 Как постоянно обновлять статик в скриптовом окне? Время например? Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/354/#findComment-996945
Charsi 441 Опубликовано 1 Марта 2016 Поделиться Опубликовано 1 Марта 2016 @Kondr48, можно добавить в класс окна метод обновления. function class_name:Update() CUIScriptWnd.Update(self) local h = level.get_time_hours() local m = level.get_time_minutes() self.st_time:SetText(string.format("%02d:%02d", h, m)) end 1 1 Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/354/#findComment-996979
Рекомендуемые сообщения
Создайте аккаунт или авторизуйтесь, чтобы оставить комментарий
Комментарии могут оставлять только зарегистрированные пользователи
Создать аккаунт
Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!
Зарегистрировать новый аккаунтВойти
Есть аккаунт? Войти.
Войти