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

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


Svoboда

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

использую мод выброса от DEXXX (из огсма)

проблема в том, что созданные МНОЙ нпсы при выбросе прячутся в укрытия, а обратно возвращаться не хотят! сделал штуку - чтобы их всегда тянуло в точку спавна - через path_walk. но при возвращении они всегда застревают на полпути и начинают тупить.

помогите!

Строгое предупреждение от модератора n6260
Юзаем заглавные буквы.

Поделиться этим сообщением


Ссылка на сообщение

такая проблема. делаю мод на базе огсма. а там есть выброс...

доавбил своего нпс без гулага. по логике он должен всегда стоять на месте. для этого прописал ему path_walk с одной точкой равной его координатам спавна.

но - из боя или после выброса он начинает идти на свою точку,.... и ровно на середине останавливается и тупо стоит.

 

в чём проблема?

пробовал на разных локациях и т.п.

Строгое предупреждение от администратора n6260
Соблюдайте правила русского языка.

Поделиться этим сообщением


Ссылка на сообщение

ещё вопрос. заспавнил нпс - он заспавнился, но не там где надо (хотя координаты точные). проблема скорее всего в отсутствии в нужном мне месте аи-сетки. можно это как-то исправить без рекомпиляции и т.п. локаций?

 

ещё вопрос:

делал нпс, сидящего на стуле. нпс нужную анимацию выполняет. стал с горем пополам делать подбор соотношения нпс и стула и заметил интересуню штуку:

вижу что нпс сидит левее стула. изменяю координаты СТУЛА как надо, запускаю игру. стул переместился куда надо - но и нпс переместился туда же на столько же. в чём проблема? координаты нпс не меняю вообще!!!

Поделиться этим сообщением


Ссылка на сообщение

перепроверил про стул - безрезультатно

 

Добавлено:

перепроверил про стул - безрезультатно

Строгое предупреждение от администратора n6260
Не безрезультатно. ;) Еще одно сообщение без заглавных букв и знаков препинания - и тогда уж не обессудьте...

Поделиться этим сообщением


Ссылка на сообщение

прописал нпсу такую логику:

 

[logic]
active = remark1
trade = misc\trade_generic.ltx
on_death = death
danger_ignore = danger_ignore

[remark1]
on_info = {+sidor_client_run} walker
meet = meet

[walker]
path_walk = sidor_client_path
def_state_moving1 = sprint
def_state_moving2 = sprint
def_state_moving3 = sprint
meet = meet
anim = sit_sleep
target = actor

[meet]
use = false
use_wpn = false
meet_talk_enabled = false

[danger_ignore]
ignore_distance = 999999999

 

при получении поршна нпс бежит куда надо и тупо стоит там повернувшись неясно куда. а по логике надо чтобы там он пожизненно после этого выполнял анимку сит-слип и смотрел на гг. в чём недоработка?

Поделиться этим сообщением


Ссылка на сообщение

Обычный непись. Анимация "chistit ruje_1" работает нормально. Пытаюсь заспавнить под него стул - последствия уже сообщил.

 

Добавлю - непися сам создавал.

 

--------------------------------------------------------------------

 

и ещё вопрос сразу:

изменил место старта игры, но идти надо всё-равно к сидору. нужно, чтобы свой монолог он начинал, как только игрок проходит в дверь к нему. однако в оригинале сделано так, что спейс-рестриктор слишком большой - и монолог начинается ещё на лестнице. как исправить?

 

// Даблпостинг на форуме запрещен, на 1-ый раз объединил посты, потом буду просто удалять. Министр.

Изменено пользователем Министр

Поделиться этим сообщением


Ссылка на сообщение

ещё вопрос.

как назначить точке пути (way point) выдачу инфопоршня? (когда нпс прошёл по заданной точке - выдача)?

Поделиться этим сообщением


Ссылка на сообщение

а можно поподробнее как соордуить такую функцию? просто неясно откуда и какие аргументы ставить

Строгое предупреждение от администратора n6260
Пункт 2.6. Трое суток режима чтения.

Поделиться этим сообщением


Ссылка на сообщение

все мы знаем, что в почти всех модах есть детекторы - на пояс одел и при приближении к аномалии пищит. но там это реализовано через конфиг

мне сейчас по некоторым причинам очень надо это же реализовать через скрипт. как это сделать?

Поделиться этим сообщением


Ссылка на сообщение

подскажите, как можно сделать такую проверку:

если у игрока в руках что-то есть (сейчас худ видно), и это оружие XXX - тогда вернём true

Поделиться этим сообщением


Ссылка на сообщение

в инвентаре у игрока есть предмет XXX, который можно одеть в слот 1, но он не одет

как скриптом одеть предмет в слот? как заставить одетый предмет автоматически взяться в руки?

Поделиться этим сообщением


Ссылка на сообщение

Как можно наиболее рационально скриптом сосчитать количество всех предметов в инвентаре у игрока, название которых начинается с "af_" ???

Поделиться этим сообщением


Ссылка на сообщение

Есть скрипт. Игра нещадно вылетает при попытке его чтения с логом типа "нет такого файла", то есть, как я понял, тут ошибка синтаксиса... Сам найти не могу. В чём проблема?

 

local nano = 0
local outfit = db.actor:item_in_slot(6)

function update()
    if not outfit then
        nano=0
    end
    if outfit and (outfit="novice_outfit" or outfit="bandit_outfit" or outfit="killer_blue_exoskeleton" or outfit="svoboda_exoskeleton" or outfit="monolit_exoskeleton" or outfit="broken_exoskeleton" or outfit="monolit_scientific_outfit" or outfit="bandit_master_outfit" or outfit="soldier_outfit" or outfit="bandit_veteran_outfit") then
        nano=0
    end
    if outfit and (outfit="killer_outfit" or outfit="monolit_outfit" or outfit="svoboda_light_outfit" or outfit="dolg_outfit" or outfit="dolg_black_exoskeleton" or outfit="merc_scientific_outfit" or outfit="neytral_exo_antigas_outfit" or outfit="military_outfit" or outfit="military_stalker_commander_outfit") then
        nano=1
    end
    if outfit and (outfit="specops_outfit" or outfit="stalker_outfit" or outfit="exo_outfit" or outfit="svoboda_heavy_outfit" or outfit="dolg_scientific_outfit" or outfit="freedom_scientific_outfit" or outfit="vstalker_outfit") then
        nano=3
    end
    if outfit and (outfit="scientific_outfit" or outfit="ecolog_outfit" or outfit="protection_outfit") then
        nano=5
    end
    update_container()
end

function update_af_num()
    local cnt = db.actor:object_count()
    local d = 0
        for i=0, cnt-1 do
        local Item = db.actor:object(i)
            if string.find(Item:section(), "af_") then
                d = d + 1
            end
        end
    return d
end

function update_container()
local af_num = update_af_num()
    local psy_hit = hit()
    psy_hit.direction = vector():set(0,0,0)
    psy_hit.impulse = 0
    psy_hit.draftsman = db.actor

    if nano < af_num then
        psy_hit.power = 0.0005
        psy_hit.type = hit.radiation
        db.actor:hit(psy_hit)
    end
    if nano >= af_num then
        psy_hit.power = 0
        psy_hit.type = hit.radiation
        db.actor:hit(psy_hit)
    end
end

 

Поделиться этим сообщением


Ссылка на сообщение
Expression    : fatal error
Function      : CScriptEngine::lua_error
File          : E:\stalker\sources\trunk\xr_3da\xrGame\script_engine.cpp
Line          : 73
Description   : <no expression>
Arguments     : LUA error: ....e.r.-1-1\gamedata\scripts\my_updating.script:21: attempt to index global 'my_container' (a nil value)

Поделиться этим сообщением


Ссылка на сообщение

Имеется таблица "belt = {}", которая с ходом игры наполняется и постоянно изменяется. Помогите составить скрипт, который проверяет, есть ли в таблице секция "XXX" и, если это так, выполняет действие.

Поделиться этим сообщением


Ссылка на сообщение

Помогите написать скрипт:

- если любой NPC (если можно, ещё добавить условие чтобы он был врагом) от игрока не дальше, чем в 50 метрах, то добавим ему отметку на радар (текстурой "XXX"), если расстояние будет больше 50, отметку удаляем.

Поделиться этим сообщением


Ссылка на сообщение

Как сделать, чтобы красные метки врагов можно было отключать\включать инфопоршнями?

Поделиться этим сообщением


Ссылка на сообщение

Попробовал, вылет:

 

Expression    : fatal error
Function      : CScriptEngine::lua_error
File          : E:\stalker\sources\trunk\xr_3da\xrGame\script_engine.cpp
Line          : 73
Description   : <no expression>
Arguments     : LUA error: No such operator defined

Поделиться этим сообщением


Ссылка на сообщение

Вот так у меня на апдейт поставлено:

 

function update()
    for a=1,65534 do
    local obj = alife():object(a)
        if obj and IsStalker(obj) then
            if obj:position():distance_to(db.actor:position()) < 50 then
                db.actor:give_info_portion("iba")
            end
        end
end

Поделиться этим сообщением


Ссылка на сообщение
  • Недавно просматривали   0 пользователей

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