FonSwong 33 Опубликовано 21 Марта 2016 Поделиться Опубликовано 21 Марта 2016 (изменено) @dsh, ноу, вообще платформа ЗП, там изменённый двиг. в огсе вижу: actor_hit_callback(obj, amount, local_direction, who, bone_index) Что означает amount? Где можно, кроме СДК, увидеть какой индекс кости что именно обозначает?Как узнать мощность хита, который был сделан ГГ(чтобы не высчитывать все коэфициенты, а точнее общее кол-во отнимаемого ХП)? Изменено 21 Марта 2016 пользователем FonSwong Ссылка на комментарий
dsh 3 824 Опубликовано 21 Марта 2016 Поделиться Опубликовано 21 Марта 2016 вообще платформа ЗП Про ЗП ничего не могу сказать. Что означает amount? Величина полученного хита. dsh mod: https://github.com/dsh2dsh/op2ogse Ссылка на комментарий
losiara 13 Опубликовано 21 Марта 2016 Поделиться Опубликовано 21 Марта 2016 Добрый день! Кто нибудь знает как реализована возможность может поршнями или скриптом на заставе долга на свалке, когда просят помочь отстрелять мутантов идущих со стороны темной долины, а потом говорят 1 из 3-х фраз или "отлично...", либо "молодец, но особой прытью не отличился...", либо совсем "плохо поэтому нужно платить за проход...". В каких файлах сие глянуть можно? Вопрос не в том как ветки диалогов построить это трудностей не представляет, а в том, как реализована сама возможность? Жизнь следует измерять поступками, а не временем... Ссылка на комментарий
naxac 2 445 Опубликовано 21 Марта 2016 Поделиться Опубликовано 21 Марта 2016 @losiara, из логики при смерти мутанта вызывается функция в xr_effects, которая считает убитых кабанов, записывая количество в пстор. А в диалоге в прекондишенах проверяется это количество. 1 Аддон для ОП-2.09.2: Яндекс/Google/GitHub Ссылка на комментарий
FonSwong 33 Опубликовано 24 Марта 2016 Поделиться Опубликовано 24 Марта 2016 Повесил на худ своё окно, оно скрывается через неск. секунд Если, пока окно не скрылось, загрузить сохранение- то происходит вылет stack trace: [error][ 87] : Параметр задан неверно. Платформа ЗП Ссылка на комментарий
Anonim 680 Опубликовано 24 Марта 2016 Поделиться Опубликовано 24 Марта 2016 Где-то видел урок по созданию переписки между сталкерами через интервалы времени, короче, помогите Ссылка на комментарий
Zander_driver 10 333 Опубликовано 25 Марта 2016 Поделиться Опубликовано 25 Марта 2016 Про ЗП ничего не могу сказать. Если мне память не изменяет, в ЗП хит-колбек актора и так есть. Мод, где не бывает одинаковых путей - Судьба Зоны. (Лучшее, что у меня получилось на 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. Ссылка на комментарий
dsh 3 824 Опубликовано 25 Марта 2016 Поделиться Опубликовано 25 Марта 2016 @Zander_driver, речь шла не про хит колбек, а про колбек, который вызывается перед ним и из которого можно поменять свойства хита. dsh mod: https://github.com/dsh2dsh/op2ogse Ссылка на комментарий
HellRatz 2 851 Опубликовано 25 Марта 2016 Поделиться Опубликовано 25 Марта 2016 А есть вариант заспавнить предмет учитывая его направление (dir)? То есть с определенным наклоном, поворотом.. Не нашел ничего такого, только для НПС. А в стандартных функциях спавна предмета только XYZ, lv, gv. ЗЫ: как узнать максимальные значения LV и GV на локации? Не нашел информации. Раньше вроде скриптовая функция попадалась на глаза, а сейчас не найду. 1 GTA 3 MAP X-Ray | NFS U:2 MAP X-Ray | RTCW MAP X-Ray | L2D | Раритетные моды на моем облаке — на память о былом. Ссылка на комментарий
naxac 2 445 Опубликовано 25 Марта 2016 Поделиться Опубликовано 25 Марта 2016 А есть вариант заспавнить предмет учитывая его направление (dir)? То есть с определенным наклоном, поворотом.. В m_netpk есть такая возможность - почитай про работу с абстрактной частью нет-пакета. 1 1 Аддон для ОП-2.09.2: Яндекс/Google/GitHub Ссылка на комментарий
hi_flyer 75 Опубликовано 25 Марта 2016 Поделиться Опубликовано 25 Марта 2016 ЗЫ: как узнать максимальные значения LV и GV на локации? Не нашел информации. Тоже интересует данный вопрос. Ссылка на комментарий
dsh 3 824 Опубликовано 25 Марта 2016 Поделиться Опубликовано 25 Марта 2016 @HellRatz, @hi_flyer, вот, взято откуда-то отсюда: -- http://www.amk-team.ru/forum/index.php?showtopic=6458&p=937442 --[=[ local lname = level.name() local lvtab = GetLevelVertexes( lname ) local lvx = math.max( unpack( lvtab ) ) local lv = math_random( 1, lvx ) local gvtab = GetGameVertexes( lname ) local gv_min = math.min( unpack( gvtab ) ) local gv_max = math.max( unpack( gvtab ) ) --]=] function GetLevelVertexes( level ) local lvtab ={} local i = 0 while game_graph():valid_vertex_id( i ) do local lv = game_graph():vertex( i ):level_vertex_id() local ln = alife():level_name( game_graph():vertex( i ):level_id() ) if not lvtab[ ln ] then lvtab[ ln ] = {} end table.insert( lvtab[ ln ], lv ) i = i + 1 end return lvtab[ level ] end function GetGameVertexes( level ) local gvtab ={} local i = 0 while game_graph():valid_vertex_id( i ) do local ln = alife():level_name( game_graph():vertex( i ):level_id() ) if not gvtab[ ln ] then gvtab[ ln ] = {} end table.insert( gvtab[ ln ], i ) i = i + 1 end return gvtab[ level ] end 2 1 dsh mod: https://github.com/dsh2dsh/op2ogse Ссылка на комментарий
нерон 0 Опубликовано 30 Марта 2016 Поделиться Опубликовано 30 Марта 2016 Всем привет. Возникла задача прописать скрипт в котором после получения инфопоршня или после того как гг подобрал определенный предмет выполняется другой скрипт. Но как это прописать я не знаю. вот нашел функцию function actor_binder:on_item_take (obj) (что гг взял) и function actor_binder:on_item_drop (obj) (что гг выкинул) - и пропишы после этих строк функцию или ссылку на функцию. но реализовать ее не получается. Может кто поможет? Заранее спасибо. Ссылка на комментарий
=VENOM= 50 Опубликовано 30 Марта 2016 Поделиться Опубликовано 30 Марта 2016 Проверка инфопоршна в простейшем случае, ("infoportion" - это имя инфопоршна): if has_alife_info("infoportion") then --твой скрипт end Что касается подобранного ГГ предмета. Если идти тем путём, как написано у тебя, то в файле bind_stalker.script найди функцию: function actor_binder:on_item_take (obj) level_tasks.proceed(self.object) --game_stats.update_take_item (obj, self.object) end Так она выглядит в оригинальной ТЧ, у меня, по крайней мере. И замени её на что-то вроде: function actor_binder:on_item_take (obj) level_tasks.proceed(self.object) --game_stats.update_take_item (obj, self.object) if myscripts then myscripts.take_item(obj) end end Этим ты добавишь ссылку на свою функцию-обработчик взятия предмета. Можно, конечно, и прямо здесь вписать обработчик, но лучше хранить свои скрипты отдельно - потом проще будет найти, где чьи лапы и хвосты. Для этого нужно будет создать файл myscripts.script в папке с остальными скриптами, а уже в этом файле написать обработчик, примерно так: function take_item(item) if item:section() == "section_name" then --твой скрипт end end Здесь функция будет срабатывать на взятие ГГ предмета с определённым названием (section_name). 1 1 Ссылка на комментарий
нерон 0 Опубликовано 31 Марта 2016 Поделиться Опубликовано 31 Марта 2016 Если я правильно понял, то мне необходимо создать новый сккриптовый файл и вписать туда function имя функции () if has_alife_info("vzial") then имя скрипта. имя функции end так? Ссылка на комментарий
FonSwong 33 Опубликовано 31 Марта 2016 Поделиться Опубликовано 31 Марта 2016 (изменено) ТЧ Не пойму в чём проблема, вешаю на худ статик, а оно виснет и затем вылетает: info = CUIStatic() info :InitTexture([[ui\medikal_statics\info]]) info : SetStretchTexture(true) info : SetWndPos(774, 50) info : SetWndSize(200, 300) get_hud() : AddDialogToRender(info) Если эти строчки: info : SetWndPos(774, 50) info : SetWndSize(200, 300) Заменить на эту строчку: info :Init(774,50,200,300) То всё нормально, но мне нужно именно тот вариант, который у меня вылетает, в чём проблема?В ЗП работает по 1 варианту спокойно. Изменено 31 Марта 2016 пользователем FonSwong Ссылка на комментарий
Zander_driver 10 333 Опубликовано 31 Марта 2016 Поделиться Опубликовано 31 Марта 2016 но мне нужно именно тот вариант, А чем они по смыслу отличаются? И эмм... возможно я ошибаюсь и плохо искал/не видел и т.д., но я в ТЧ не встречал примеров успешного использования статика без метода Init(x,y, w,h) где-то около его создания. И вообще-то думал что он обязателен. Еще может быть проблема в другом месте. ссылка на созданный статик сохраняется где-нибудь? Если этого не делать то не удивительно что вылетает. имя скрипта. имя функции Да, так, только чтоб эту функци вызвать, надо будет еще скобки добавить. () - вот такие. И может быть, что-то между них поместить, если хотите в свою функцию что-то передать. А может быть ничего не нужно передавать и тогда ничего не нужно между скобок оставлять. Мод, где не бывает одинаковых путей - Судьба Зоны. (Лучшее, что у меня получилось на 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. Ссылка на комментарий
=VENOM= 50 Опубликовано 31 Марта 2016 Поделиться Опубликовано 31 Марта 2016 так? Если проверку на взятие предмета в инвентарь ГГ тебе нужно проверять только после получения инфопоршна "vzial", так. Ссылка на комментарий
FonSwong 33 Опубликовано 31 Марта 2016 Поделиться Опубликовано 31 Марта 2016 (изменено) Zander_driver, ссылка сохраняется, думал в тч можно как и в зп без init задавать сразу отдельно координаты и отдельно ширину с высотой, видимо в этом трабла Хмм.. странно. Именно SetWndSize крашит игру или статик просто исчезает при попытке изменения размера, хоть даже Init(x,y, w,h) использовать. Почему? Непонятно Однако методами info : SetWidth(20) info : SetHeight(30) изменяет нормально Изменено 31 Марта 2016 пользователем FonSwong Ссылка на комментарий
dukekan 5 Опубликовано 31 Марта 2016 Поделиться Опубликовано 31 Марта 2016 (изменено) А если так: (Упс, не заметил, что ТЧ, да не вижу, как удалить) self.back = CUIStatic() self.back:SetWndRect(Frect():set(200,150,500,550)) self.back:InitTexture("ui\\computer\\text_window_note") self.back:SetWndPos(vector2():set(200,150)) self.back:SetWndSize(vector2():set(500,550)) self.back:SetStretchTexture(true) self:AttachChild(self.back) Изменено 31 Марта 2016 пользователем dukekan Ссылка на комментарий
Рекомендуемые сообщения
Создайте аккаунт или авторизуйтесь, чтобы оставить комментарий
Комментарии могут оставлять только зарегистрированные пользователи
Создать аккаунт
Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!
Зарегистрировать новый аккаунтВойти
Есть аккаунт? Войти.
Войти