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

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

Помогите с функцией, пожалуйста!

 

function some_spawn()

local shit = {"wpn_ak74", "wpn_abakan", "kolbasa", "bread", "vodka", "medkit", "bandage"}

alife():create([math.random(table.getn(shit))],  -- здесь я хочу, чтобы актору заспавнилось что-то из "shit"
db.actor:position(), 
db.actor:level_vertex_id(), 
db.actor:game_vertex_id(), 
db.actor:id())

end

 

В общем, поставил пока функцию в диалог с неписем, но в инвентарь абсолютно ничего не спавнится. Какая здесь ошибка?

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

Вот скрипт.

lite_treshold = 0.05    --'насколько должно уменьшиться здоровье с предыдущего обновления, чтобы экран окрасился в красный
crit_treshold = 0.30    --'насколько должно уменьшиться здоровье с предыдущего обновления, чтобы ГГ начало шатать
drop_item_on_crit_prob = 0.20    --'вероятность того, что ГГ выронит оружие
effector_power_coeff = 0.7
prev_health = -1
chk_h_t = 0

function wounded_pp_update()
  if (chk_h_t or 0) < time_global() then
    chk_h_t = time_global()+1000
    if prev_health > (db.actor.health + lite_treshold) then
      level.add_pp_effector("fire_hit.ppe", 2011, false)
      local effector_power = (prev_health - db.actor.health)*100*effector_power_coeff
      level.set_pp_effector_factor(2011, effector_power)
      if prev_health > db.actor.health + crit_treshold then
        level.add_cam_effector("camera_effects\\fusker.anm", 999, false, "")    
        local snd_obj = xr_sound.get_safe_sound_object([[actor\pain_3]])
        snd_obj:play_no_feedback(db.actor, sound_object.s2d, 0, vector(), 1.0)
        if math.random() < drop_item_on_crit_prob then
          local active_item = db.actor:active_item()
          if active_item and active_item:section() ~= "bolt" and active_item:section()~= "wpn_knife" then
            db.actor:drop_item(active_item)
          end
        end
      end
    end
    prev_health = db.actor.health
  end
end

 

 

Ну по такому случаю, тебе можно и не создавать новый скрипт, а подправить и этот, вот только как именно ты представляешь экран в крови, постэфектом или текстурой. Постэфект, если такой и есть делаеться аналогично, я думаю ты уже догадался, но вот есть ли он? Текстурой... грубовато будет, текстура будет резко появляться и так же резко изчезать. А вот про какой конфиг ты говорил - загадка. Куфзук

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

function some_spawn()

local shit = {"wpn_ak74", "wpn_abakan", "kolbasa", "bread", "vodka", "medkit", "bandage"}

alife():create(shit[math.random(7)],  
db.actor:position(), 
db.actor:level_vertex_id(), 
db.actor:game_vertex_id(), 
db.actor:id())
end

А вот так?

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

Такой вопрос, надеюсь, в нужной теме спрашиваю. Если что, пост под снос. Есть АМК 1.4.1 и новые локации. Для спавна динамических аномалий на новых локах вписать их в amk/anoms/anoms.ltx по точкам спавна, это вроде понятно, а вот как указывать вертексы в amk_anoms.script? Заранее спасибо.

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

Вот так :):

function some_spawn(first_speaker, second_speaker)

local shit =
{"wpn_ak74",
"wpn_abakan",
"kolbasa", "bread",
"vodka",
"medkit",
"bandage"}

local item = shit[math.random(table.getn(shit))]

alife():create(item,db.actor:position(),db.actor:level_vertex_id(),db.actor:game_vertex_id(),db.actor:id())
end

Капрал Хикс, в amk/anoms/anoms.ltx прописываются "противоаномальные" зоны - то есть места, где динамические аномалии спониться не будут.

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

Делаю смарт на ЗП для новой локации.Получаю следущее:

Expression    : !m_error_code
Function      : raii_guard::~raii_guard
File          : D:\prog_repository\sources\trunk\xrServerEntities\script_storage.cpp
Line          : 748
Description   : ...l.k.e.r. - Зов Припяти\gamedata\scripts\utils.script:469: bad argument #1 to 'gsub' (string expected, got nil)

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

у тебя смарт с логикой. Но игра не может или найти прописанный файл с логикой или не может найти в этом файле саму секцию логики, или не прописана актив = логика

Freedom

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

Люди, вот такая у меня проблема, при старте игры на Кордоне такой вылет

[error]Expression : fatal error

[error]Function : CScriptEngine::lua_error

[error]File : E:\stalker\patch_1_0004\xr_3da\xrGame\script_engine.cpp

[error]Line : 73

[error]Description : <no expression>

[error]Arguments : LUA error: ...game$\s.t.a.l.k.e.r\gamedata\scripts\xr_logic.script:126: attempt to index local 'st' (a nil value)

.

Скажите как исправить, если надо могу залить свои скрипты.

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

Подскажите как мне зделать чтоб група НПС перешла из одного смарта в другой(он на другой локации), но чтоб они туда бежали и были группой, а не разбегались?

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

Не подскажете, как заставить вызвать окно диалога между мутантом и ГГ? Хотя бы как в диалоге с О-Сознанием?

Или же сделать сталкера на модели мутанта?

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

Ссылка на комментарий
возможно ли как-то изменить отношение непися к игроку в оффлайне?

Можно сделать, чтобы его отношение изменилось при ближайшем переходе в онлайн - в его биндере сделать строку с условиями и результатами их выполнения (которая condlist). Но смысла нет - из оффлайна он игрока всё равно не подстрелит.

 

В крайнем случае, в оффлайне можно сделать примерно то же самое, только перегрузить функцию community() в se_stalker и подставлять ей принудительные значения. Не знаю правда, как это понравится движку. Можно через net_packet'ы, в amk.script есть соотв. функции.

 

Вообще непонятно, зачем разрабы сделали такие параметры, как health, community и т.п. в виде функций - проще же сделать в виде переменной, и менять её удобнее.

 

xr_logic.script:126: attempt to index local 'st'

Это бывает, когда для какого-то npc не создана таблица db.storage. Бороться с этим бесполезно, надо искать изменения, повлёкшие эти последствия.

Изменено пользователем Полтергейст
Ссылка на комментарий
Полтергейст, кто ищет, тот найдёт :). Для одной локации я уже всё решил и написал. А вот если непись находится на другой - тут по-моему уже ничего не поделать. Дело не в стрельбе, а в изменении отношений по условию, в другом месте. Именно для того, чтобы не париться с нетспоном - переходом в онлайн и обратно. Зачем весь этот геморрой? Вот есть же очень удобные функции для изменения отношений группировок, хоть онлайн, хоть оффлайн - без разницы... А с отдельными неписями, независимо от того, в какой он группировке, вот так мудрить приходится :(...
Ссылка на комментарий

Может глупый вопрос но:

local tbl = {13, 95, 14, 96, 15, 97, 16, 98, 28, 99, 17, 100, 19, 22, 103, 23, 24, 104, 105, 29, 30, 107,  26, 108, 21, 20, 101, 102, 31, 109, 36, 110, 37, 111}

Значения таблицы будут k или v?

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

Полтергейст

Разве не применимы? Хм. По идее в k будет находится порядковый номер, а в v значение. Но можно как ты сказал перебрать такие таблицы так:

for num = startn, endn do
if tbl[num] == clsid.script_stalker then
printf("This is stalker clsid")
end
end

 

Но тогда уж лучше написать так:

for num = startn, #tbl do
if tbl[num] == clsid.script_stalker then
printf("This is stalker clsid")
end
end

верь часто не знаешь сколько значений в таблице

Freedom

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

TRAMP14,

А где можно получить полную таблицу clsid?

Это не таблица, а userdata. Проще говоря, это такой же класс, как и все остальные экспортированные из движка классы, только содержащий одни константы. Нет способа узнать скриптом, сколько там полей. С другой стороны, там только те константы, которые зарегистрированы движком (и их там фиксированное количество) и те, которые добавлены туда скриптом class_registrator.script. Так что можно составить их список вручную.

 

Полтергейст,

Циклы "for k,v in pairs(tbl) do" неприменимы к одномерным таблицам (вместо k и v можно написать всё, что угодно).

Признаться, не понял, что такое "одномерные таблицы". Функция pairs применима к абсолютно любой таблице.

 

TRAMP14,

что значит next(название таблицы)?

это основы Lua. Значит надо смотреть здесь www.lua.ru

 

Плагины Total Commander для работы с игровыми архивами:

Архиваторный плагин (для работы с одиночным архивом): link1 link2

Системный плагин (для распаковки установленной игры): link1 link2

 

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

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

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

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

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

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

Войти

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

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

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