Перейти к контенту

*Shoker*

Жители
  • Число публикаций

    926
  • Регистрация

  • Последнее посещение

  • Дней в топе

    15
  • AMKoin

    107 [Подарить AMKoin]

Весь контент пользователя *Shoker*

  1. *Shoker*

    Скриптование

    function give_wounded_flash(first_speaker, second_speaker) dialogs.relocate_item_section(second_speaker, "esc_wounded_flash", "out") dialogs.relocate_money(second_speaker, 1500, "in") esc_chemodan_npc.esc_chemodan_npc end Это что за чудо? Допиши () в конце. esc_chemodan_npc.esc_chemodan_npc()
  2. *Shoker*

    GUNSLINGER mod [S.T.A.L.K.E.R. CoP]

    Анимации ножа действительно очень понравились, как по мне так ты точно добился того, чтобы это выглядело живо, да ещё и анимации по моему рэндомно идут. Вообщем радует глаза. Экзоскелет вроде теперь тоже особо не бросается в глаза. Я так понял ты просто кисть руки от КоДа взял? Думаю так лучше с каждым костюмом поступить. Вот тока сама анимация удара мне как то не очень показалось, м.б в реальности так и бьют но здесь это было больше похоже на что угодно, но только не на удар.
  3. *Shoker*

    Скриптование

    Понятно... спасибо. Да вот не знал, небыло как то в этом необходимости, вот и не сталкивался. А тут случайно заметил. Да и название колбека тоже в заблуждение вводит. Из за таких вот "подводных камней" потом и вываливаются самые разные глюки...
  4. *Shoker*

    Old Good Stalker Mod - Clear Sky

    Shadows Спасибо, действительно всё работает Я сам как то хотел таким же методом сделать, да и с головы вылетело. Да и тут попроще сделано, я ещё апдейт подключил, а тут оказывается даже броню можно не выкидывать. Тока корректней для ЧН будет сделать так: --\\ Колбек на взятие предмета function on_item_take(obj) local sec = obj:section() local class = ltx:r_string(sec, "class") if class == "E_STLK" then --\\ подобрали броню local actor_outfit = db.actor:get_current_outfit() if actor_outfit and actor_outfit:id() ~= obj:id() then db.actor:transfer_item(actor_outfit, db.actor) end end end Как подключать думаю понятно. Ещё раз спасибо. Единственный баг - при взятии брони на мгновение визуал рук сбрасывается на стандартный, но если об этом не знать, можно и не заметить.
  5. *Shoker*

    Скриптование

    Это нормально, что в ЧН колбек на взятие предмета в инвентарь при каждой загрузке игры вызывается для всех предметов инвенторя? Не пойму толи так надо, толи я накосячил где то.
  6. *Shoker*

    Скриптование

    Кто хорошо работал со скриптами ЧН, не в курсе где там стоит затычка, чтобы сквады не сражались друг с другом, если они не в схеме комбат? Сейчас ситуация такова, что если два враждебных сквада вдруг окажутся рядом каким то образом, то они не будут реагировать друг на друга (это касается и сталкеров, и монстров). Помнится bak вроде делал мини-мод который это исправляет, но и название мода, и сам мод я найти не смог. Буду благодарен если кто нибудь подскажет. _Призрак_ Например в ОГСМ ЧН, в энциклопедии для этого используется list box. Грубо говоря текст разбивается на строчки, которые в этот лист заносятся. Это конечно не прямая работа с текстом статика, но как вариант думаю тоже можно рассмотреть. Сам list box можно будет разместить поверх статика.
  7. *Shoker*

    Скриптование

    Если твой сквад возвращается на Скадовск и вообще ходит по зоне, значит он уже под симуляцией, и он уже должен делать то, что другие сквады, тоесть стоять ус тоек, сидеть на ящиках и прочее.
  8. *Shoker*

    Old Good Stalker Mod - Clear Sky

    Баг игры, не лечится. Выше где то уже писали.
  9. Спасибище тебе за помощь и советы :)

  10. Я так и знал что ты о нём [bloodsucker_night_king]:bloodsucker_normal $spawn = "monsters\bloodsuckers\bloodsucker_night_king" Spawn_Inventory_Item_Section = af_night_star Spawn_Inventory_Item_Probability = 100.0 Но это с оригинала. К тому же в моде я это на компас заменял.
  11. Возможно Надеюсь что оно уже экспортировано в ЧН/ЗП (как я понял твоя библитоека тока для ТЧ годится) А вообще я lUA на сталкере учил, поэтому многих спец. функций его даже не знаю, с load-ами никогда не работал, хотя на lua-help читал что то давно про них, но все эти чанки и прочее, я даже не пойму что это.
  12. Знаю что это из ряда фантастики, но штатными методами LUA можно ли "выключить" весь скрипт или функцию? Тоесть допустим у меня скрипт с рядом функций, которые из разных мест вызываются переодически. Могу ли я тупо "остановить" их. Тоесть чтобы если функцию вызовет какой то скрипт, игра не вылетела, но и функция не выполнилась? Насколько я понял, все скрипты при компиляции заносятся в некую таблицу, к которой можно получить доступ из _G. Все функции из этого скрипта я вызываю с проверкой вида if _G[script] and _G[script][funct] then, если я обнилю _G[script] = nil, это будет критично для движка? Ну и раз так, то обратный вопрос, можно ли прямо во время игры "собрать" свой собственный скрипт через _G? А вообще возможно составить функцию на лету? Тоесть скриптво в формате string сделать функцию и скормить компилятору, чтобы он её превротил в нормальную?
  13. ? Я вроде бы ничего не давал. В другом моём моде у 1 кровососа за игру был тока артефакт и всё, было это давно. А тут я конфиги кровососов не менял. Если у них где то арт, значит так задумали разрабы.
  14. *Shoker*

    Скриптование

    Artos, причём здесь способ указать логику персонажу (что я у тебя не спрашивал) и то, что она ему в сейв записывается и не меняется без респавна этого непися?
  15. *Shoker*

    Скриптование

    Скриптовый, имеешь ввиду нет-пакеты? Тоесть если я заспавню непися и пропишу ему ссылку на файл с логикой. Я в дальнеишем смогу менять логику у уже заспавненного непися или нет? А вообще не совсем понимаю причину записывать логику объекта в сейв. Это ж приличный кусок информации, да и данные там статичны вроде как ... Разве что если логика динамически меняется, и в ней удаляются "ненужные" секции но я что то сомневаюсь по этому поводу.
  16. *Shoker*

    Скриптование

    Кстати, я вот что хотел спросить по кустом дате. Как то в ЧН делал логику как вещам так и неписям. И обратил внимание что она работает тока с новой игрой (проверял на болотах, возможно не тока с новой а в момент спавна НПС но не суть), хотя сама логика вынесена в отдельный файл. Отчего это может быть? Неужели игра сохраняет всю логику в сейв, зачем это нужно? Хочу уточнить, что логика уже была. Я её просто менял, но новую игру не начинал. И она из за этого оставалась старая, хотя в конфиге была уже переделанная.
  17. *Shoker*

    Скриптование

    > чет нет у меня в _G.script такой ф-ции. В ЧН точно есть. В ЗП должна быть. Про ТЧ не помню. Если уберёшь проверку, то игра у тебя не будет вылетать, но если ты превысишь лимит, то у тебя тупо начнут биться сейвы. Да и вообще чтобы превысить лимит нужно постараться и сохранять в сейв какие то большие объёмы информации. Вполне возможно что тебе такое пока не грозит, тогда зачем париться. А вообще если не хочешь возится с пстором, можешь например напрямую в текстовые файлы всё записывать и считывать от туда при загрузке. Тут конечно свои тонкости, зато переполнения никогда не будет да и вся информация видна будет. В ЧН\ЗП есть импортированная область io для работы с файлами. в ТЧ тока с расширением движка от RvP В любом случае я сказал как это делают в GSC. Кстати сами они, по моим наблюдением, почти ничего в pstor не пишут. В ЧН я помню тока что он активно в схеме раненного используется, и в принципе всё.
  18. *Shoker*

    Скриптование

    AndreySol У GSC есть проверка на размер pstor-а. Она происходит в момент записи, и возможно, загрузки. Искать толи в xr_logic толи скорее в _g скрипте, где сейв проверяется (там есть такая функция, на слово save ищи) Вот тока тебе это зачем надо? Там стоит стандартная проверка на превышение лимита. Игра вылетит сама. если такое случится. Вот: _G.script function set_save_marker(p, mode, check, prefix) ... if mode == "save" then local dif = p:w_tell() - save_markers[result] printf(result..": SAVE DIF: %s", dif) if dif >= 8000 then printf("WARNING! may be this is problem save point") end if dif >= 10240 then abort("You are saving too much") end
  19. *Shoker*

    Скриптование

    Ммм не совсем понял что ты хочешь, но насколько я знаю, анимация "шевеления" губами сама подстраивается под звуковой фаил. Ежели ты сделал какую то "особую" анимация для рта персонажа (что мало вероятно) её ты уже должен сам будешь подогнать. Ну а если ты во время разговора врубаешь просто какую то левую анимацию (ну там задницу почесать), то она будет выполнятся отдельно и паралельно с анимацией разговора. Тоесть не будет с ней связана, и непись будет шевелить губами столько, сколько идёт звук, а чесать будет ровно столько, сколько идёт анимка. А вообще лучше сам проверь, может там у схемы есть свои особенности.
  20. Как можно отрегулировать дальность стрельбы из оружия для НПС? Сделал огнемёт на основе автомата. Менял и fire_distance и min\max_radius, всё бестолку, стоит и жгёт из него в воздух по направлению к цели.
  21. *Shoker*

    Скриптование

    SibireaStalker 1) db.actor:sit() 2) А ты уверен что такая функция sit() вообще в движке существует? Её там нету. Да и вообще как мне кажется, нету способа определить состояние тела ГГ. 3) Ну и с таким уровнем познаний в скриптах ты просто не напишешь желаемое. Это довольно не лёгкое дело, нужно знать массу тонкостей. Кстати, а может через класс move() можно как то вернуть состояние тела ГГ, никто не пробовал?
  22. В принципе можно и так, но хорошо бы найти решение не тока для "конкретного" случая, ибо уже пару раз сталкивался с такой необходимостью, и приходилось через if-ы действовать... Как я понял, в LUA похожего интервального решения не предусмотрено. Может помимо if-ов есть ещё какие то варианты. ЗЫ: Случайно ошибся в функции, после and не написал num, но на суть вопроса не влияет.
  23. xStream Спасибо за ценную информацию _____ Кто знает, возможно ли в луа делать таблицы из интервалов? Допустим у меня есть число от 1 до 100 и 10 каких то значений. Я хочу составить таблицу так, чтобы в зависимости от числа, выбиралось определённое значение. Тоесть если чсло равно от 1 до 10, то берётся значение 1 и так дале... Делать через if не очень хочется. Вот такой код нужно упростить: local num = math.random(1,100) if num <= 10 then return -2000 end if num > 10 and <= 20 then return -1500 end if num > 20 and <= 30 then return -1000 end if num > 30 and <= 40 then return -500 end if num > 40 and <= 50 then return 0 end if num > 50 and <= 60 then return 500 end if num > 60 and <= 70 then return 1000 end if num > 70 and <= 80 then return 1500 end if num > 80 and <= 90 then return 2000 end if num > 90 then return 2500 end return 0
  24. *Shoker*

    Подарки

    Спасибо Нашёл. В идеале конечно хорошо бы в ЛС выписывать их, как было с репутацией.
  25. *Shoker*

    Подарки

    Комментарии к подаркам не работают как мне кажется. В разделе подарки их нету, в ЛС по моему тоже не приходит коментарии. Также очень неудобно сделан доступ к ним, чтобы просмотреть свои (и чужие) подарки, приходится искать любой свой\их пост на форуме, и там тыкать на цифру под аватаром. Хорошо бы добавить кнопку в профиль.
×
×
  • Создать...