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

Рекомендуемые сообщения

Тема для обсуждения скриптов всего и всех в серии игр STALKER.


Задавая вопрос (!):
1. Внимательно изучите суть вопроса. Вопрос должен соответствовать выбранной Вами темы. Это поможет сохранить порядок и читабельность темы, а также облегчит поиск и понимание сего;
2. Изучите то, что уже есть в теме (пролистайте "руками", воспользуйтесь поиском на форуме);
3. Изучите информацию которая может вам помочь:

 
 

Stalkerin. Там есть много хороших статей касательно данной темы.
Уроки по модостроению. Есть рабочие примеры готовых скриптов различного назначения.

 

Справочное руководство по языку Lua 5.1
https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/ru
Справочник по функциям и классам. Собрано много информации по функциям и классам, не всем, но по основные сведения предоставлены.

4. Дабы не превращать обсуждение в "кашу" разной информативной направленности, задавайте несколько вопросов по порядку (в разных постах) после того, как получите ответ на предыдущий вопрос;
5. "Спасибо" и тому подобное - будьте так любезны в ПМ. Если не любите писать в ПМ, в конце вопроса напишите фразу: "Заранее спасибо!" - или что-то в этом духе;
6. ПОЖАЛУЙСТА! Указывайте, для какой игры Вам необходима информация (ТЧ, ЧН, ЗП), если стоит мод - укажите название мода;
7. Если Вы что-то сделали и результат не такой, какой Вами задумывался, то, пожалуйста, приводите коды которые Вы изменяли/писали целиком! Это поможет другим правильно ответить на Ваш вопрос, а также оградит Вас от лишней писанины.
8. Оформляйте сообщение. Пользуйтесь тегами для того, чтобы отделить код от текста. Пишите грамотно - ПОЛЬЗУЙТЕСЬ ЗНАКАМИ ПРЕПИНАНИЯ.
9. И помните: «Правильно заданный вопрос – половина ответа».

 

Какие вопросы следует задавать, а какие нет...

 

Задавайте вопросы, которые касаются непосредственно скриптов и их работы, т.е. Вы что-то делаете, а у Вас что-то не получается, при этом у Вас на руках должен быть хотя бы какой-то код, свидетельствующий о Вашей причастности к вопросу.

 

Вопросы которые будут удалятся, следовательно их задавать не нужно:
-- Где находится та или иная функция?
Для ответа используем поиск по словам среди файлов оригинальной игры или мода, если объект поиска относится к нему, при помощью программы, которая Вам наиболее симпатизирует;
-- Как сделать что-то/то-то?
С подобными вопросами, либо в "ковырялки", где Вам вероятнее всего так же не ответят, либо выдвигаем мысли, подкреплённые теорией, практикой (идеальный вариант) и здравым рассудком;
-- Вопросы со смыслом: "сделайте", "совместите" и подобными глаголами повелительного наклонения.
-- К тому же удалению будут подвергаться вопросы, в которых масштабно не используются теги, для отделения кода и цитат от основного текста, а также не вписан в спойлер код размером превышающие семь строк.
Ответ на возможно возникший вопрос: В какую тему можно обратиться по поводу логики и спавна объектов?
В тему "ковырялок" соответствующей версии игры, для которой Вы задаёте вопрос.

И последнее: очень рекомендовано к прочтению Правила форума
 


  • Спасибо 1
  • Полезно 2
Ссылка на комментарий
Только что, qwertyuiop сказал:

cannot find clsid for class buddy_psevdopup

Нет ассоциации класса серверного с клсидом, нужно настраивать... Папку config от мода в папку acdc скопируйте.

Ссылка на комментарий
6 часов назад, qwertyuiop сказал:

распаковщик для Солянки-2016

https://www.amk-team.ru/forum/topic/13511-dieticheskaya-solyanka-2016/?do=findComment&comment=1145839

AMD Athlon II X2 250, NVIDIA GTS 450, RAM 8.0 GB, WIN 7/64  правки Золотой Шар

Ссылка на комментарий

Всем Ку! Такая проблема. У одного камрада поломался НС+DMX. Умер квестовый НПС, труп уборщик не прибирает, а при приближении к трупу происходит вылет:

Expression : e_parent
Function : xrServer::Process_event_reject
File : E:\stalker\patch_1_0004\xr_3da\xrGame\xrServer_process_event_reject.cpp
Line : 11
Description : parent not found. id_parent=64529 id_entity=64522 frame=38558

По этому поводу такие вопросы:

1 Как можно удалить этот труп?

2 Как узнать какие квестовые предметы могут заспавниться в рюкзаке этого трупа?

3 Подойдет ли для НС этот метод спавна через ui_main_menu.script

elseif db.actor~=nil and dik==DIK_keys.DIK_F6 then
              alife():create("Предмет",db.actor:position(),db.actor:level_vertex_id(),db.actor:game_vertex_id(),db.actor:id())
            

Ссылка на комментарий

Спасибо,распаковалось.
 

Quote

 

[1303]

; cse_abstract properties
section_name = stalker
name = bar_zastava_commander_1
position = 227.857559204102, -0.0100178448483348, -2.56606030464172
direction = 3.13111279126588e-008, -3.04658879233307e-014, 1.20878965503834e-007
version = 118
script_version = 6
spawn_id = 3174


 

 

Так как его спавнить, чтобы он стал Киценко, если у него секция - stalker?
alife():create принимает координаты, уровень и секцию.

 

Прошел Солянку, иду в NLC

Ссылка на комментарий

Спавнить 3174. Не забыть удалить дохлый труп (bar_zastava_commander_1). Подробнее тут:

https://www.amk-team.ru/forum/topic/12839-kovyryaem-op-2/?do=findComment&comment=868701

https://www.amk-team.ru/forum/topic/12839-kovyryaem-op-2/?do=findComment&comment=891393

AMD Athlon II X2 250, NVIDIA GTS 450, RAM 8.0 GB, WIN 7/64  правки Золотой Шар

Ссылка на комментарий
Quote

 

function perespawn(name,spawn_id)
    local obj
        for i=1,65534 do
          obj = alife():object(i)
          if obj then
        --dist_to_stalker(obj)
        if obj:name() == name then
             printf("nps deleted %s",name)
            alife():release(obj)
            break
           end
      end
       end
 alife():create(spawn_id)
end

perespawn("Киценко",3174)


 

Не находит Киценко и спавнит рядового без квеста и со случайным именем. Вместо "Киценко" пробовал разные варианты - тоже не работает.
 

Quote

 

function dist_to_stalker(obj)     
    if IAmAStalker[obj:clsid()] then
          local pos = obj:position()
        local dist = math.sqrt(pos.x*pos.x+pos.z*pos.z)            
        if dist < 10 and pos.y < -0.1 then
            printf("stalker horizontal distance  %s %f",obj:name(),dist)
        end
    end
end


 

Пробовал найти имя трупа Киценко перечислением сталкеров, которые близко ко мне - вылетает на obj:position().

Прошел Солянку, иду в NLC

Ссылка на комментарий

@qwertyuiop 

function perespawn() 
 local obj 
        for i=1,65534 do 
          obj = alife():object(i) 
            if obj and obj:name() == "bar_zastava_commander_1" then -- имя секции из аll.spawn 
              alife():release(obj) 
          break 
            end 
        end 
 alife():create(3174) -- номер секции из аll.spawn 
 end

 

AMD Athlon II X2 250, NVIDIA GTS 450, RAM 8.0 GB, WIN 7/64  правки Золотой Шар

Ссылка на комментарий
Quote

 

perespawn("bar_zastava_guard_3",3173)

 

 

А он, оказывается, не командир,замаскировался.Перечислил трупы, используя фильтры перебором подходящих,, и нашел его.В файл писать нельзя, потому длинный список нельзя весь посмотреть.Или у меня сломалась игра, потому что в config\gameplay\character_desc_bar.xml:

 

Quote

 

  <specific_character id="bar_zastava_commander_1" team_default = "1">
    <name>bar_kicenko_name</name>


 

Quote

function name_dead_stalker(obj)     

    if IAmAStalker[obj:clsid()] and not obj:alive() then
        local name = obj:name()
        if name
            and string.find(name,"zastava")
            --[[and string.find(name,"dolg")
            and not string.find(name,"ammo")
            and not string.find(name,"wpn")
            and not string.find(name,"respawn")
            and not string.find(name,"bunker")
            and not string.find(name,"regular")
            and not string.find(name,"blokpost") ]]--
            then
                printf("dead stalker  %s",name)
            end
    end
end

Теперь вопрос, как его переименовать и всучить диалог "Киценко убили, я вместо него", а то некрасиво получается.Скриптами без патчения all.spawn.

Изменено пользователем qwertyuiop

Прошел Солянку, иду в NLC

Ссылка на комментарий
Только что, qwertyuiop сказал:

Теперь вопрос, как его переименовать и всучить диалог "Киценко убили, я вместо него", а то некрасиво получается.Скриптами без патчения all.spawn.

Что вы мучаетесь! В spawn_sections.ltx создайте секцию Криценко на основе данных из олл.спавна, если надо логику в отдельный файл скопируйте и в поле custom_data ссылку на файл поставте, и спавните скриптом этого Криценко сколько угодно.

Изменено пользователем Graff46
  • Согласен 1
Ссылка на комментарий

Пытаюсь изменить отношение группировки к ГГ
 

Quote

 

function set_friend(community)
    local obj
        for i=1,65534 do
        obj = alife():object(i)
        if obj and IAmAStalker[obj:clsid()] and obj:alive() then
            if obj.community ~= nil and obj:community() == community then
                printf("stalker  %s",obj:name())
                rel = obj:relation(db.actor)
                s = "????"
                if rel == game_object.neutral then s =  "neutral"
                elseif rel == game_object.friend then s =  "friend"
                elseif rel == game_object.enemy then s = "enemy"
                end
                printf("relation %s",s)
                end
        end
       end
end

 

 

 

Вылетает по relation== nil. Это как сталкер есть, живой, в группировке, а relation() не существует? set_relation тоже у всех nil.

Изменено пользователем qwertyuiop

Прошел Солянку, иду в NLC

Ссылка на комментарий

Перезарядку оружия у актора, как я понимаю, отследить невозможно ? В смысле, что анимка выполняется ? Только факт, что патроны появились ?

Ссылка на комментарий

@Dennis_Chikin в x-ray extensions возможно. Там можно получить текущее состояние худовой модели. Одно из них - перезарядка.

 

Ссылка на комментарий

Да как бы и черт бы с ним, кривизну моделей скриптами лечить...

Ссылка на комментарий
В 03.02.2018 в 00:29, Graff46 сказал:

В ТЧ свободовцам монстры друзья... Есть ли лечение?

 

Может ты хотел сказать "монолитовцам"? Монстры за обе щеки уплетают "анархистов". 

Работы butcher_512. Все ссылки пропали, поэтому ложу свои сюда, чтобы никогда не потерять:

Customization Pack 0.83 [Beta4] - SoC - Тема модификации.

Customization Pack CoP [Beta]   - CoP - Тема модификации.

Ссылка на комментарий

Есть ли способ получить из коллбека  сохранения имя сейва, или другим способом, но при условии, что сейв делается через консоль, т. е. имя сейва не в какие поля не вводилось?

Изменено пользователем Graff46
Ссылка на комментарий

@Graff46 можно взять список сейвов, отсортировать их по дате и первый, всегда будет самый свежий. В диалоге загрузки сейва так делается. А вот в какой момент так делать, уже тебе решать. Например, из bind_stalker.save.

Ссылка на комментарий

Кстати, о птичках - напомните, как отлавливается квик-сэйв/квик-лоад ?

То есть, перехатить попытку, и успеть что-нибудь сделать, "пока не началочась" ? Коллбэк актора - это уже поздно.

Ссылка на комментарий

Создайте аккаунт или авторизуйтесь, чтобы оставить комментарий

Комментарии могут оставлять только зарегистрированные пользователи

Создать аккаунт

Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!

Зарегистрировать новый аккаунт

Войти

Есть аккаунт? Войти.

Войти
  • Недавно просматривали   0 пользователей

    • Ни один зарегистрированный пользователь не просматривает эту страницу.
×
×
  • Создать...