AndrewMor 527 Опубликовано 16 Декабря 2016 Поделиться Опубликовано 16 Декабря 2016 Правда, какой-нито простой примерчик с give_talk_message посмотреть бы... Сталкер - наше всё! Ссылка на комментарий
Zander_driver 10 334 Опубликовано 17 Декабря 2016 Поделиться Опубликовано 17 Декабря 2016 Совсем обленились... Ну для начала можно было тут прочитать Если мало, вот пример... function Custom_Caption(cap, st, use_icon) --вызов дополнительного сообщения local icon_tip = use_icon or "ui_iconsTotal_esc_blockpost_case_to_trader" local task_texture, task_rect = get_texture_info(icon_tip) local stl = "iconed_trade_info" if st then stl = st end db.actor:give_talk_message(cap, task_texture, task_rect, stl) end Вот такая функция принимает на входе 3 аргумента. 1) текст, что написать 2) (необязательно) шаблон вывода из XML файла "config\ui\talk.xml" или "config\ui\talk_16.xml". Если не указан, ставит iconed_trade_info по умолчанию. 3) (необязательно) выводимая текстура. Если не указано, то берет текстуру ui_iconsTotal_esc_blockpost_case_to_trader 1 1 Мод, где не бывает одинаковых путей - Судьба Зоны. (Лучшее, что у меня получилось на X-Ray) На базе модифицированного движка OGSR Engine. Бывший мододел на X-Ray / Начинающий игродел на Unreal Engine. Программист. AMD Ryzen 9 7950X (16 ядер, 32 потока, 5.75 ГГц); RTX 3080; 128 ГБ DDR5; Arctic Liquid Freezer II-420; 3 ТБ SSD PCIe 4.0; 4ТБ HDD. Ссылка на комментарий
dPlayer 451 Опубликовано 18 Декабря 2016 Поделиться Опубликовано 18 Декабря 2016 (изменено) Как получить текущий параметр итема в слоте в виде числа? Сравнивать этот параметр с числом получается без проблем: function s1_precondition() local item_in_slot_1 = db.actor:item_in_slot(1) if item_in_slot_1:condition() < 0.3 then return true else return false end end А попытка его получить приводить к вылету: function s1_precondition() local item_in_slot_1 = db.actor:item_in_slot(1) if item_in_slot_1:condition() ~= nil then local item_in_slot_cond = item_in_slot_1:condition else return false end end Изменено 18 Декабря 2016 пользователем dPlayer Ссылка на комментарий
Pir@t@s 36 Опубликовано 18 Декабря 2016 Поделиться Опубликовано 18 Декабря 2016 Добавил спальный мешок в Тень Чернобыля 1.0004 ( добавлял так, как написано в этой статье). но теперь ГГ сам по себе время от времени засыпает. Иногда даже во время боя. Как это исправить, подскажите пожалуйста. SoC. Спальный мешок.txt Ссылка на комментарий
naxac 2 445 Опубликовано 19 Декабря 2016 Поделиться Опубликовано 19 Декабря 2016 @KURT2013, урок вполне рабочий. Если все сделать по нему, то ГГ в принципе не сможет сам по себе или случайно засыпать, т.к. сон включается только через GUI. 1 Аддон для ОП-2.09.2: Яндекс/Google/GitHub Ссылка на комментарий
UnLoaded 313 Опубликовано 19 Декабря 2016 Поделиться Опубликовано 19 Декабря 2016 (изменено) @dPlayer local item_in_slot_cond = item_in_slot_1:condition тут тоже скобки нужны, т.е. так: local item_in_slot_cond = item_in_slot_1:condition() Изменено 19 Декабря 2016 пользователем UnLoaded 1 Ссылка на комментарий
Х_и_м_и_к 3 Опубликовано 26 Декабря 2016 Поделиться Опубликовано 26 Декабря 2016 (изменено) Всем привет. Нужна помощь в таком вопросе: - Есть нпс заспавненный через альспавн, его здоровье равно - (upd:health = 0.100000001490116). Есть ли способ его вылечить, не давая ему аптечку через диалог! Например с помощью какой нибудь функции... Игра тч 04 чистая. За ранее благодарен. Изменено 26 Декабря 2016 пользователем Х_и_м_и_к Ссылка на комментарий
HellRatz 2 814 Опубликовано 26 Декабря 2016 Поделиться Опубликовано 26 Декабря 2016 Такой вопрос вот назрел, можно ли сэмулировать нажатие клавиши? То есть якобы нажимать клавиатуру без участия игрока. GTA 3 MAP X-Ray | NFS U:2 MAP X-Ray | RTCW MAP X-Ray | L2D | Раритетные моды на моем облаке — на память о былом. Ссылка на комментарий
Х_и_м_и_к 3 Опубликовано 26 Декабря 2016 Поделиться Опубликовано 26 Декабря 2016 (изменено) Народ может все таки кто нибудь ответит, на пост выше? Как нпс(у) закинуть в рюкзак аптечку(с дальнейшим его исцелением), именно без диалога и выдачи( <action>dialogs.transfer_medkit</action>).. Изменено 26 Декабря 2016 пользователем Х_и_м_и_к Ссылка на комментарий
dsh 3 824 Опубликовано 26 Декабря 2016 Поделиться Опубликовано 26 Декабря 2016 @HellRatz,в x-ray extensions есть функции генерации нажатий кнопок. Названий не помню. 1 1 dsh mod: https://github.com/dsh2dsh/op2ogse Ссылка на комментарий
naxac 2 445 Опубликовано 26 Декабря 2016 Поделиться Опубликовано 26 Декабря 2016 (изменено) @HellRatz, из X-Ray Extensions: level.send_event_key_press(dik) - нажатие level.send_event_key_release(dik) - отпускание level.send_event_key_hold(dik) - удержание dik - код клавиши из DIK_keys. @Х_и_м_и_к, если надо просто прибавить здоровья, то нужно сначала получить game_object непися, а потом добавить ему хп. Например, по story_id. local npc = level_object_by_sid(12345) if npc then npc.health = 1 end Изменено 26 Декабря 2016 пользователем naxac 2 1 Аддон для ОП-2.09.2: Яндекс/Google/GitHub Ссылка на комментарий
TIGER_VLAD 361 Опубликовано 26 Декабря 2016 Поделиться Опубликовано 26 Декабря 2016 Еще есть и level.send_event_mouse_wheel(vol) - имитация вращения колесика мыши Ссылка на комментарий
Х_и_м_и_к 3 Опубликовано 26 Декабря 2016 Поделиться Опубликовано 26 Декабря 2016 если надо просто прибавить здоровьяСпасибо! То что доктор прописал... Именно это я и спрашивал... Ссылка на комментарий
losiara 13 Опубликовано 28 Декабря 2016 Поделиться Опубликовано 28 Декабря 2016 naxacА если не по СИДу, по профильному имени непися возможно произвести какие то действия с ним??? Или только СИД? Жизнь следует измерять поступками, а не временем... Ссылка на комментарий
naxac 2 445 Опубликовано 29 Декабря 2016 Поделиться Опубликовано 29 Декабря 2016 (изменено) @losiara, можно по имени в алл.спавне найти. Если по профилю, то перебирать всех онлайновых нпс и проверять у каждого character_name. Изменено 29 Декабря 2016 пользователем naxac Аддон для ОП-2.09.2: Яндекс/Google/GitHub Ссылка на комментарий
losiara 13 Опубликовано 29 Декабря 2016 Поделиться Опубликовано 29 Декабря 2016 (изменено) naxac, без all.spawn, с использованием скриптового НПС. через "spawn_sections.ltx" по типу: [aes_monolit_1]:stalker $spawn = "respawn\aes_monolit_1" character_profile = aes_monolit_1_master ; профиль сделан именно под этого НПС spec_rank = master community = monolith custom_data = scripts\moy_logic\aes_monolit_1.ltx aes_monolit_1 - получаем его имя, спавним через него скриптом непися с отдельным профилем "aes_monolit_1_master" Вот как то так можно по имени с ним работать??? Изменено 29 Декабря 2016 пользователем losiara Жизнь следует измерять поступками, а не временем... Ссылка на комментарий
MegaStalker 66 Опубликовано 1 Января 2017 Поделиться Опубликовано 1 Января 2017 (изменено) Спасайте! Скриптов вообще не знаю, но хочу адаптировать к моду CoC схему дин.аномалий из мода АМК. Вопрос - надо ли мне создавать отдельный скриптовый файл и копировать в него связанную с аномалиями байду из файла amk.scripts(как я понял, отвечающие за спавн аномалий функции)? И есть ли у кого-то в наличии схема из того же АМК, с помощью которой контроллер превращает нормальных сталкеров в зомбированных? Буду очень благодарен, если скинете ее. Ну и напоследок - ходят по всему интернету слухи, будто в АМК научили сталкеров обходить аномалии. Если скинете мне ее и объясните примерно, как с ней ведут себя сталкеры - век не забуду. Изменено 1 Января 2017 пользователем MegaStalker Все зовут меня Пришедший из Ниоткуда...Почему?Потому что я пришел из ниоткуда и иду в никуда... Ссылка на комментарий
Zander_driver 10 334 Опубликовано 3 Января 2017 Поделиться Опубликовано 3 Января 2017 @losiara, У тебя же написано character_profile = aes_monolit_1_master ; профиль сделан именно под этого НПС Значит, можем делать так: function L(profile_name) local a = 1 while a < 65535 do local obj = level.object_by_id(a) if obj and IsStalker(obj) and obj:alive() and obj:profile_name() == profile_name then --// тут любые действия с найденным объектом end a = a + 1 end end Можно вот так, по профилю. Если надо обязательно по имени, то с этим проблем будет больше. При скриптовом спавне имя объекта - это его секция + его айди, т.е. будет что-то вроде такого "aes_monolit_123685" (после первой единицы любые цифры, какие - заранее неизвестно). Айди заранее неизвестен - его только при спавне можно узнать. Если позаботиться о его сохранении где-то, то в принципе можно, но и то работать будет только до тех пор пока нпс никуда не делся. Скриптов вообще не знаю, но хочу адаптировать к моду CoC схему дин.аномалий из мода АМК Оптимистично... Про контроллера смотреть bind_monster.script, насколько я помню. 1 Мод, где не бывает одинаковых путей - Судьба Зоны. (Лучшее, что у меня получилось на X-Ray) На базе модифицированного движка OGSR Engine. Бывший мододел на X-Ray / Начинающий игродел на Unreal Engine. Программист. AMD Ryzen 9 7950X (16 ядер, 32 потока, 5.75 ГГц); RTX 3080; 128 ГБ DDR5; Arctic Liquid Freezer II-420; 3 ТБ SSD PCIe 4.0; 4ТБ HDD. Ссылка на комментарий
MegaStalker 66 Опубликовано 3 Января 2017 Поделиться Опубликовано 3 Января 2017 (изменено) @Zander_driver, я нашел в этом файле что-то, отвечающее за установление неписю группировки зомбированные, но ничего не понял в коде ни до этого, ни после. Можешь вкратце объяснить, за что отвечает код в указанном тобой файле? Стоп, я кажется слегка разобрался. Вот, видимо, функция, которая отвечает за зомбирование. self.chtime=time_global()+2000 if self.object:clsid()==clsid.controller_s and self.object:alive() thenamk.mylog("zombifying")local npc=self.object:get_enemy()if npc thenif npc:id()~=db.actor:id() and npc:clsid()==clsid.script_stalker and self.object:see(npc) andnpc:character_community()~="zombied" and self.object:position():distance_to(npc:position())<30 thenlocal sobj=alife():object( npc:id() )if sobj and sobj.online thenlocal zomb=amk.load_table("zombies")zomb[sobj.id]={master=self.object:id(),comm=npc:character_community(),gw=npc:goodwill(db.actor)}amk.save_table("zombies",zomb)npc:set_character_community("zombied",0,0)local orgtbl=amk.read_stalker_params(sobj)if (not string.find(orgtbl.profile,"_zombi")) thenorgtbl.profile=orgtbl.profile.."_zombi"endamk.mylog("zombied "..npc:name().." profile "..orgtbl.profile)amk.write_stalker_params(orgtbl,sobj)endendendend Я разобрался с видимостью врага, дистанцией до него и т.д. Но я не понимаю, каким боком к этой функции относится время и куда сохраняется зомбирование непися? Ну и самое главное - что такое amk.mylog? Изменено 3 Января 2017 пользователем MegaStalker Все зовут меня Пришедший из Ниоткуда...Почему?Потому что я пришел из ниоткуда и иду в никуда... Ссылка на комментарий
naxac 2 445 Опубликовано 3 Января 2017 Поделиться Опубликовано 3 Января 2017 (изменено) @MegaStalker, self.chtime=time_global()+2000 это интервал между проверками, чтобы не проверять на каждом апдейте: 2 секунды. Данные о зомбированных хранятся в таблице "zombies", в псторе актера. amk.mylog() - это просто вывод в лог для отладки. Изменено 3 Января 2017 пользователем naxac Аддон для ОП-2.09.2: Яндекс/Google/GitHub Ссылка на комментарий
Рекомендуемые сообщения
Создайте аккаунт или авторизуйтесь, чтобы оставить комментарий
Комментарии могут оставлять только зарегистрированные пользователи
Создать аккаунт
Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!
Зарегистрировать новый аккаунтВойти
Есть аккаунт? Войти.
Войти