TIGER_VLAD 361 Опубликовано 27 Октября 2016 (изменено) @AndrewMor, У меня сайт вообще не работает. Можно. ххахах... очень полезный и детальный ответ. Изменено 27 Октября 2016 пользователем TIGER_VLAD 1 Поделиться этим сообщением Ссылка на сообщение
TIGER_VLAD 361 Опубликовано 11 Ноября 2016 @CRAZY_STALKER666, создай глобальную переменную, просто : test = 0 Поделиться этим сообщением Ссылка на сообщение
TIGER_VLAD 361 Опубликовано 26 Декабря 2016 Еще есть и level.send_event_mouse_wheel(vol) - имитация вращения колесика мыши Поделиться этим сообщением Ссылка на сообщение
TIGER_VLAD 361 Опубликовано 4 Января 2017 Всем привет. Есть какие-то варианты отключения звука шагов в определенный момент? Ну или как-то заменять звук шагов на свой звук(пустой) ? Поделиться этим сообщением Ссылка на сообщение
TIGER_VLAD 361 Опубликовано 4 Января 2017 @dsh, да знаю, этот момент( как-то раз неправильно настроил костюм в SDK и звук шагов пропал). Такой вариант не хочу использовать и так костылей хватает у меня)) Поделиться этим сообщением Ссылка на сообщение
TIGER_VLAD 361 Опубликовано 26 Января 2017 @MJRamon, создай файл dik_hot_key.script . В нем напиши: local con = nil -- переменная для объекта консоли local con_command = "mm_net_player_name" -- консольная команда local def_value = "_" -- значение по умолчанию - символ подчеркивания function update() if not con then -- инициализируем схему con = get_console() -- кешируем консоль con:execute( con_command .." ".. def_value ) -- инициализируем дефотлным значением, т.к. кнопка не нажата for k,v in pairs(_G[script_name()]) do -- перебираем функции в текущем файле -- v это функция и её имя является кодом клавиши if type(v)=='function' and DIK_keys[string.upper(k)] then local key = "k"..string.gsub(k,"dik_","") -- формируем ключ и con:execute("bind_console "..con_command.." "..k.." "..key) -- биндим кнопку на него end end else -- получаем из консоли значение параметра для нашей команды local str = con:get_string(con_command) -- если оно не является значением по умолчанию -- и в этом файле есть функция с таким именем, то выполняем её if str~=def_value and this[str] then this[str]() con:execute(con_command.." "..def_value) -- записываем значение по умолчанию end end end function dik_numpad0() news_manager.send_tip(db.actor,"нажали кнопку numpad0") end function dik_numpad1() news_manager.send_tip(db.actor,"нажали кнопку numpad1") end function dik_numpad2() news_manager.send_tip(db.actor,"нажали кнопку numpad2") end Далее зайди в bind_stalker.script и найди строчку "function actor_binder:update(delta)". Внутри этой функции вызови твою функцию dik_hot_key.update() Поделиться этим сообщением Ссылка на сообщение
TIGER_VLAD 361 Опубликовано 26 Января 2017 (изменено) @MJRamon, Достаточно положить файл dik_hot_key.script в папку gamedata\scripts и вызвать его в bind_stalker.script. Полный список(из lua_help.script): const DIK_0 = 11; const DIK_1 = 2; const DIK_2 = 3; const DIK_3 = 4; const DIK_4 = 5; const DIK_5 = 6; const DIK_6 = 7; const DIK_7 = 8; const DIK_8 = 9; const DIK_9 = 10; const DIK_A = 30; const DIK_ADD = 78; const DIK_APOSTROPHE = 40; const DIK_APPS = 221; const DIK_AT = 145; const DIK_AX = 150; const DIK_B = 48; const DIK_BACK = 14; const DIK_BACKSLASH = 43; const DIK_C = 46; const DIK_CAPITAL = 58; const DIK_CIRCUMFLEX = 144; const DIK_COLON = 146; const DIK_COMMA = 51; const DIK_CONVERT = 121; const DIK_D = 32; const DIK_DECIMAL = 83; const DIK_DELETE = 211; const DIK_DIVIDE = 181; const DIK_DOWN = 208; const DIK_E = 18; const DIK_END = 207; const DIK_EQUALS = 13; const DIK_ESCAPE = 1; const DIK_F = 33; const DIK_F1 = 59; const DIK_F10 = 68; const DIK_F11 = 87; const DIK_F12 = 88; const DIK_F13 = 100; const DIK_F14 = 101; const DIK_F15 = 102; const DIK_F2 = 60; const DIK_F3 = 61; const DIK_F4 = 62; const DIK_F5 = 63; const DIK_F6 = 64; const DIK_F7 = 65; const DIK_F8 = 66; const DIK_F9 = 67; const DIK_G = 34; const DIK_GRAVE = 41; const DIK_H = 35; const DIK_HOME = 199; const DIK_I = 23; const DIK_INSERT = 210; const DIK_J = 36; const DIK_K = 37; const DIK_KANA = 112; const DIK_KANJI = 148; const DIK_L = 38; const DIK_LBRACKET = 26; const DIK_LCONTROL = 29; const DIK_LEFT = 203; const DIK_LMENU = 56; const DIK_LSHIFT = 42; const DIK_LWIN = 219; const DIK_M = 50; const DIK_MINUS = 12; const DIK_MULTIPLY = 55; const DIK_N = 49; const DIK_NEXT = 209; const DIK_NOCONVERT = 123; const DIK_NUMLOCK = 69; const DIK_NUMPAD0 = 82; const DIK_NUMPAD1 = 79; const DIK_NUMPAD2 = 80; const DIK_NUMPAD3 = 81; const DIK_NUMPAD4 = 75; const DIK_NUMPAD5 = 76; const DIK_NUMPAD6 = 77; const DIK_NUMPAD7 = 71; const DIK_NUMPAD8 = 72; const DIK_NUMPAD9 = 73; const DIK_NUMPADCOMMA = 179; const DIK_NUMPADENTER = 156; const DIK_NUMPADEQUALS = 141; const DIK_O = 24; const DIK_P = 25; const DIK_PAUSE = 197; const DIK_PERIOD = 52; const DIK_PRIOR = 201; const DIK_Q = 16; const DIK_R = 19; const DIK_RBRACKET = 27; const DIK_RCONTROL = 157; const DIK_RETURN = 28; const DIK_RIGHT = 205; const DIK_RMENU = 184; const DIK_RSHIFT = 54; const DIK_RWIN = 220; const DIK_S = 31; const DIK_SCROLL = 70; const DIK_SEMICOLON = 39; const DIK_SLASH = 53; const DIK_SPACE = 57; const DIK_STOP = 149; const DIK_SUBTRACT = 74; const DIK_SYSRQ = 183; const DIK_T = 20; const DIK_TAB = 15; const DIK_U = 22; const DIK_UNDERLINE = 147; const DIK_UNLABELED = 151; const DIK_UP = 200; const DIK_V = 47; const DIK_W = 17; const DIK_X = 45; const DIK_Y = 21; const DIK_YEN = 125; const DIK_Z = 44; const MOUSE_1 = 256; const MOUSE_2 = 512; const MOUSE_3 = 1024; Изменено 26 Января 2017 пользователем TIGER_VLAD Поделиться этим сообщением Ссылка на сообщение
TIGER_VLAD 361 Опубликовано 27 Января 2017 @Карлан, Тоже интересует этот вопрос. Пробовал когда-то отследить хит от радиации возле этого грузовика и ничего не получилось. Хита походу от радиации нет, просто отнимается жизнь. Поделиться этим сообщением Ссылка на сообщение
TIGER_VLAD 361 Опубликовано 20 Марта 2017 @vampirnik77, Вот статья есть. Метод старый, но рабочий. 1 Поделиться этим сообщением Ссылка на сообщение
TIGER_VLAD 361 Опубликовано 2 Мая 2017 (изменено) Всем привет. Словил себя на том, что много трачу времени на перемещение по локации тестируя что-то. Решил сделать что-то похожее на Noclip режим(режим свободного полета). Код: function noclip_upd() local position = db.actor:position() local direction = device().cam_dir if noclip_active == true then local v = vector() v.x = position.x + direction.x --или просто v= position:add(direction) v.y = position.y + direction.y v.z = position.z + direction.z db.actor:set_actor_position(v) end end Вроде бы все работает, . Но мне так и не удалось изменить скорость полета и еще заметил, что скорость зависит от фпс ( на краях карты скорость больше). Пробовал вектор умножать/делить на delta - получаю очень большую скорость. На delta * 0.001 - получаю Также пробовал изменять длину вектора или сделать длину единичной с помощью методов vector:set_length(n) и vector:normalize() , вот Что подскажете сделать, как решить проблему? Изменено 2 Мая 2017 пользователем TIGER_VLAD 1 Поделиться этим сообщением Ссылка на сообщение
TIGER_VLAD 361 Опубликовано 3 Мая 2017 (изменено) @naxac, Да пробовал уже так. Вот так этот код работает . Получается, что ГГ летит не по направлению взгляда ( То есть я например повернул камеру влево/вправо где-то на 20-30 градусов, а направление не меняется, стоит мне повернуть больше и только тогда направление меняется). Думаю сам телепорт(db.actor:set_actor_position) актора нужно как то привязать к аргументу delta метода update, так как скорость телепорта зависит от фпс. На видео видно, что скорость на краях локации сильно увеличивается. local delta = 0.05 -- подобрать опытным путём: чем больше, тем быстрее пробовал от 0.5 - 0.00005 все равно скорость большая Изменено 3 Мая 2017 пользователем TIGER_VLAD Поделиться этим сообщением Ссылка на сообщение
TIGER_VLAD 361 Опубликовано 5 Мая 2017 (изменено) @Shkiper2012, Только что попробовал твой код, нажимаю T - cкорость уменьшается, но все равно большая. Я бы хотел добиться скорости приблизительную к скорости ходьбы. Пробовал изменять значение переменной на local distant_step = 0.1 и получаю , когда ГГ летит не по направлению взгляда. Видать не получится у меня ничего, ну и на том всем спасибо. Изменено 5 Мая 2017 пользователем TIGER_VLAD Поделиться этим сообщением Ссылка на сообщение
TIGER_VLAD 361 Опубликовано 13 Июня 2017 Всем привет. Пытаюсь заставить актора зависнуть в воздухе. По нажатию клавиши получаю координаты позиции и телепортирую на апдейте в это тучку с помощью db.actor:set_actor_position. Актора начинает трясти, как в воздухе так и на земле. Пробовал вместо апдейта использовать fastcall, но его еще больше начинает трясти и даже раздваивает. Видео . Почему так происходит ? Поделиться этим сообщением Ссылка на сообщение
TIGER_VLAD 361 Опубликовано 21 Июля 2017 @Gomez Покажи лог вылета. Поделиться этим сообщением Ссылка на сообщение
TIGER_VLAD 361 Опубликовано 19 Августа 2017 @Lebedev30 Как вариант: перед переходом поставить большой рестриктор и в логике вызывать функцию, когда ГГ будет внутри. А в функции телепортировать (например 2 метра назад) и развернуть ГГ и написать сообщение на экран типа "Переход заблокирован". После выполнения квеста, рестриктор удаляем. 1 Поделиться этим сообщением Ссылка на сообщение
TIGER_VLAD 361 Опубликовано 19 Августа 2017 5 часов назад, Graff46 сказал: Можно спавнить переход по условию, до определённого события перехода просто не будет. Вот только тогда игрок сможет выйти за пределы локации и упасть например) Поделиться этим сообщением Ссылка на сообщение
TIGER_VLAD 361 Опубликовано 31 Октября 2017 Всем привет. Есть какие-то способы спрятать оружие актору не считая bind_stalker.hide_weapon() ? bind_stalker.hide_weapon() - прячет оружие слишком резко, отключается худ модели и анимация holster не наблюдается, слышен только звук. А вот restore_weapon() работает нормально. Поделиться этим сообщением Ссылка на сообщение
TIGER_VLAD 361 Опубликовано 1 Ноября 2017 22 минуты назад, Shkiper2012 сказал: Можно попробовать, через имитацию нажатия клавиши Только этот вариант и был на уме. Думал может есть попроще вариант. Поделиться этим сообщением Ссылка на сообщение
TIGER_VLAD 361 Опубликовано 18 Ноября 2017 (изменено) 3 часа назад, Shkiper2012 сказал: Можно ли скриптом "повесить" актора в пространстве? Чтоб он завис в воздухе. Пробовал делать через "db.actor:set_actor_position( ... точка в пространстве ... )" set_actor_position не точно устанавливает позицию актора. Если ЗП, можешь раз установить позицию(не на апдейте) и выключить гравитацию : level.physics_world():set_gravity(0). Если ТЧ(исходники), можешь перенести метод set_gravity из ЗП. А я для ТЧ xray extensions, с помощью m_netpk спавнил под актором невидимую плоскость и фиксировал. Вот : Скрытый текст https://www.youtube.com/watch?v=x1kV10IP1oQ Изменено 18 Ноября 2017 пользователем TIGER_VLAD 1 1 Поделиться этим сообщением Ссылка на сообщение
TIGER_VLAD 361 Опубликовано 27 Ноября 2017 @DaSTi002 В оригинальном ТЧ, если убьешь сталкера в деревне новичков с одного выстрела попаданием в голову, то НПСы не будут на тебя обижаться, а перейдут в схему опасности. Поделиться этим сообщением Ссылка на сообщение