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/
abramcumner 1 234 Опубликовано 28 Мая 2015 Поделиться Опубликовано 28 Мая 2015 P.S. Таймеры - не нужны ! ™ На самом деле тот же actor:give_game_news() задержку сам умеет, без всяких таймеров. Так что здесь осталось только по тому, что переносилось когда-то незадумываясь над смыслом переносимого.А give_game_news() с задержкой переживает сейв/лоад? А то так смс "доходить" не будут Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/312/#findComment-939858
Outfater 288 Опубликовано 28 Мая 2015 Поделиться Опубликовано 28 Мая 2015 @svarog2741, как именно правильно? Можно здесь скопировать мои "правильные" строчки и показать? И почему вылетает, если правильно? Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/312/#findComment-939859
svarog2741 83 Опубликовано 28 Мая 2015 Поделиться Опубликовано 28 Мая 2015 @Outfater, пфф. Извини, но моя психика не позволяет мне всё досконально расписывать. 2 1 НС - шлак, солянки - шлак. Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/312/#findComment-939861
Dennis_Chikin 3 665 Опубликовано 28 Мая 2015 Поделиться Опубликовано 28 Мая 2015 2 abramcumner: ну, во-первых, при s/l и с таймером "доходить" не будет, по вполне очевидной причине. Во-вторых, надо проверить, конечно. Ибо голые подозрения к делу не пришьешь. Солянка обезжиренная, диетическая, полезные советы по "солянке", текущий тестовый патч Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/312/#findComment-939865
abramcumner 1 234 Опубликовано 28 Мая 2015 Поделиться Опубликовано 28 Мая 2015 2 abramcumner: ну, во-первых, при s/l и с таймером "доходить" не будет, по вполне очевидной причине.По какой? Амкашные таймеры сохраняются при сейв/лоаде. Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/312/#findComment-939874
Dennis_Chikin 3 665 Опубликовано 28 Мая 2015 Поделиться Опубликовано 28 Мая 2015 (изменено) Сначала начинает идти игровое время, затем отрабатывают таймеры, потом идет загрузка торговли/озвучки для неписей. А на экране - все еще заставка. upd: не совсем представляю, как можно посчитать апдейты, прошедшие "под заставкой", но субъективно - более одного. Изменено 28 Мая 2015 пользователем Dennis_Chikin Солянка обезжиренная, диетическая, полезные советы по "солянке", текущий тестовый патч Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/312/#findComment-939885
abramcumner 1 234 Опубликовано 28 Мая 2015 Поделиться Опубликовано 28 Мая 2015 @Dennis_Chikin, ты так говоришь, как будто за время заставки проходит игровой день, а не один апдейт. Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/312/#findComment-939887
Outfater 288 Опубликовано 28 Мая 2015 Поделиться Опубликовано 28 Мая 2015 @svarog2741, не позволяет психика? А по моему, ты просто не знаешь как правильно расписать - local porsh игра вообще не видит, нет такой команды. Только зря потратил время... Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/312/#findComment-939890
svarog2741 83 Опубликовано 28 Мая 2015 Поделиться Опубликовано 28 Мая 2015 @Outfater,это не команда, а переменная. Её можно назвать как удобно. Я знаю два языка: C++ (ЯП) и Lua(Скриптовый язык). НС - шлак, солянки - шлак. Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/312/#findComment-939908
abramcumner 1 234 Опубликовано 28 Мая 2015 Поделиться Опубликовано 28 Мая 2015 (изменено) upd: не совсем представляю, как можно посчитать апдейты, прошедшие "под заставкой", но субъективно - более одного.Проверять на апдейте if xr_conditions.black_screen() then --заставка end Можно в это время таймеры не обсчитывать. Изменено 28 Мая 2015 пользователем abramcumner Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/312/#findComment-939911
Struck 61 Опубликовано 28 Мая 2015 Поделиться Опубликовано 28 Мая 2015 По поводу фреймов перед стартом игры был занятный баг во многих модах с динамическими новостями, а именно при появлении самой картинки игры сразу валилось несколько сообщений из разных блоков. Подобным кодом это лечилось. @Dennis_Chikin, @abramcumner, мне кажется отклонение времени задержки отправления подобных сообщений не столь критично, как вы тут обсуждаете. @svarog2741, спасибо, но я как-нибудь сам разберусь что мне делать . Кокосячить можешь сколько угодно . Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/312/#findComment-939925
Outfater 288 Опубликовано 28 Мая 2015 Поделиться Опубликовано 28 Мая 2015 (изменено) @Dennis_Chikin, да никто мне ни чем не обязан. @svarog2741, просто если не знаешь точно, то лучше не пытаться. Я уже и без луа разобрался как надо и всё сделал (там вообще по другому надо). Но за то, что пытались помочь - спасибо всем. Изменено 28 Мая 2015 пользователем Outfater Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/312/#findComment-939927
ed_rez 16 113 Опубликовано 28 Мая 2015 Поделиться Опубликовано 28 Мая 2015 Outfater, if has_alife_info ("test1") and has_alife_info ("test2") and has_alife_info ("test3") then smski.poluchil_porshend 1 Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/312/#findComment-939932
Outfater 288 Опубликовано 29 Мая 2015 Поделиться Опубликовано 29 Мая 2015 @ed_rez, у меня немного не так: if has_alife_info ("test1") and has_alife_info ("test2") and has_alife_info ("test3") then self.object:give_info_portion("test123") end если именно для сообщений на экран, то только через поршень. Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/312/#findComment-939944
svarog2741 83 Опубликовано 29 Мая 2015 Поделиться Опубликовано 29 Мая 2015 @Outfater,а знаю, но я другими способами делаю. Аля таблицей. НС - шлак, солянки - шлак. Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/312/#findComment-939955
Неравнодушный сталкер vampirnik77 126 Опубликовано 31 Мая 2015 Неравнодушный сталкер Поделиться Опубликовано 31 Мая 2015 Подскажите пожалуйста, как можно повесить метку на way point? Вернулся получается... Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/312/#findComment-940476
Struck 61 Опубликовано 31 Мая 2015 Поделиться Опубликовано 31 Мая 2015 @vampirnik77, создать в его позиции объект, и на него уже вешать метку, но это выглядит несколько кощунственно. Лучше сразу добавь метод установки метки по координатам. Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/312/#findComment-940477
Неравнодушный сталкер vampirnik77 126 Опубликовано 31 Мая 2015 Неравнодушный сталкер Поделиться Опубликовано 31 Мая 2015 @Struck, А мне так и нужно)) Я в точку вей поинта спавню объект, а вот как на все это дела повещать метку не знаю) Вернулся получается... Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/312/#findComment-940478
UnLoaded 313 Опубликовано 31 Мая 2015 Поделиться Опубликовано 31 Мая 2015 (изменено) спавню объект, а вот как на все это дела повещать метку не знаю Ф-ции пространства имен level: level.map_add_object_spot_ser(...) level.map_add_object_spot(...) Подробности - как всегда в "Справочнике по ф-циям и классам"... Изменено 31 Мая 2015 пользователем UnLoaded Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/312/#findComment-940484
Неравнодушный сталкер vampirnik77 126 Опубликовано 1 Июня 2015 Неравнодушный сталкер Поделиться Опубликовано 1 Июня 2015 (изменено) Возникла такая проблема, не могу удалить два одинаковых предмета из инветаря, пробовал так: xr_effects.remove_item(db.actor, nil, {"section"}) xr_effects.remove_item(db.actor, nil, {"section"}) и так: for i=1, 2 doxr_effects.remove_item(db.actor, nil, {"section"})end Удаляется только один. И это воистину удивительно, что удаляется хотя-бы один. Ибо сколько не искал в xr_effects удаление предметов, но так и не обнаружил. dc Стандартная функция в Зп. --Функция отнятия предмета у игрокаfunction remove_item(actor, npc, p)if (p and p[1]) == nil then abort("Wrong parameters in function 'remove_item'!!!") endlocal item = p[1]local obj = db.actor:object(item)if obj ~= nil thenalife():release(alife():object(obj:id()), true)elseabort("Actor has no such item!")endnews_manager.relocate_item(db.actor, "out", item)end Телепаты, вообще-то, в отпуске. Это во-первых. Во вторых, ну и зачем, если можно сразу написать local obj = db.actor:object( секция );obj = obj and alife():object(obj:id(); if obj then alife():release( obj, true ) end ? В третьих, логично. По тому как actor:object() два раза подряд вернет один и тот же предмет. если надо удалять сразу несколько, то делать через iterate_inventory()/inventory_for_each() - сформировать список подходящих по секции, затем удалять. dc Принято, понято, спасибо) (отблагодарил бы кнопочкой, но сообщение вроде как мое). Изменено 1 Июня 2015 пользователем Dennis_Chikin Вернулся получается... Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/312/#findComment-940954
Рекомендуемые сообщения
Создайте аккаунт или авторизуйтесь, чтобы оставить комментарий
Комментарии могут оставлять только зарегистрированные пользователи
Создать аккаунт
Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!
Зарегистрировать новый аккаунтВойти
Есть аккаунт? Войти.
Войти