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

[SoC] Ковыряемся в файлах


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

ЭЭтот блок срабатывает один раз при старте игры, а далее, при следующих апдейтах, он просто игнорируется,....

Да все это так, НО... Прочти внимательно то что я написал, апдейт игрока крайне нежелательно трогать без видимой причины, и если есть возможность выполнить код вне его, то этот участок скрипта переносят в процедуру net_spawn или более подходящее место, можешь спросить скриптёров НЛС, как они относятся к добавлению кода в апдейтер ;)

Изменено пользователем Gonarh
118 101 110 105 44 32 118 105 100 105 44 32 118 105 99 105
Ссылка на комментарий

Всем привет. Если не трудно, помогите написать скрипт для спавна нпс. Знаю что вопрос тупой и легко найти описание, но поймите правильно, я захожу с мобильного и не очень удобно найти нужную информацию. Заранее спасибо

Если ты знаешь, что сможешь чего-то добиться, то ты прав. Нет границ для самосовершенства.

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

Объясните,как работает таймер выброса на ЧАЭС.all.spawn я распаковал,но из Оригинала.

alife_l12_stancia.ltx ,есть секция:

[7256]

; cse_abstract properties

section_name = space_restrictor

name = aes_space_restrictor_timer

position = 1010.24639892578,-0.097564697265625,-201.021408081055

direction = 0,0,0

 

; cse_alife_object properties

game_vertex_id = 2273

distance = 0

level_vertex_id = 405033

object_flags = 0xffffff3e

custom_data = <<END

[logic]

active = sr_idle

 

[sr_idle]

on_info = {+aes_actor_road} sr_timer1

 

[sr_timer1]

type = dec

start_value = 360000

argb = 255,255,255,255

on_value = 0 | %+aes_activate_zone% | 180000 | %+aes_timer_180000% | 120000 | %+aes_timer_120000% | 60000 | %aes_timer_60000% | 20000 | %+aes_timer_20000 +aes_activate_zone% | 5000 | %+aes_timer_5000%

string = st_time_till_surge

END

 

 

 

В Солянке добавлено ,судя по всему, добавлено

on_info2 = {+strelok_pda_have} nil,

то есть отключение секции ,когда приходит сообщение strelok_pda_have.

Вопрос,что есть aes_activate_zone, и откуда видно,что секция - это таймер.

 

Далее, в sr_timer.script (в распакованной gamedata),есть class "action_timer".Как он связан с данной секцией?

 

 

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

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

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

Lebedev

Функция спавна выглядит так:

function spawn()

alife():create("объект",vector():set(x, y, z), level_vertex, game_vertex)

end

 

Вызываешь любым удобным для тебя способом. Как координаты получать думаю знаешь.

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

Спасибо, а как приписать к функции инфопорщень, и сделать так, чтобы нпс стоял на месте?

Если ты знаешь, что сможешь чего-то добиться, то ты прав. Нет границ для самосовершенства.

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

Lebedev

db.actor:give_info_portion("info") -- метод выдачи поршня актору. Пишется прямо в ф-ю.

 

Для НПС нужно в all.spawn, в файле way_level.ltx прописать path_look и walk_look.

Ссылка на комментарий
Darien, он говорит что бы на месте стоял а не бегал, тут достаточно один вейпоинт прописать и combat_ignore = always если память не изменяет, тогда он если даже с точки тронется то потом возвратится
Ссылка на комментарий
Согласен. Вот поэтому я и написал "неэстетично", но не невозможно.

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

118 101 110 105 44 32 118 105 100 105 44 32 118 105 99 105
Ссылка на комментарий

Gonarh

Всё, я полностью признАю свою неправоту, если вас не затруднит рассказать мне, как(?) неработающий код, вернее отработанный один раз за всю игру, может привести "к вылетам или битию сейвов"

Ссылка на комментарий
_Призрак_, попробуй написать таблицу с поршнями и выдавать их актору рандомно методом give_info_portion(тут перебор), может прокатит, либо бери функцию рандома и прикрепляй к выдачи поршня
Ссылка на комментарий

в смысле?, я же описал принцип, или ты вообще в скриптах не рубишь?..тогда читай всякую литературу и вникай :) сейчас напишу по памяти функцию рандома, это как условие

local rnd 
local s
function blabla()
rnd = math.random(1,5) -- тут выбирай как тебе надо
end
function blabla1()
if rnd == s then
return false
elseif rnd == 4  then -- тут тоже как надо регулируй
return
end
end

 

может где ошибся :)

 

Думаю выдать поршни сам сможешь

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

Всё, я полностью признАю свою неправоту, если вас не затруднит рассказать мне, как(?) неработающий код, вернее отработанный один раз за всю игру, может привести "к вылетам или битию сейвов"

Блин, мужики, да не про эту одну строчку речь, а в концептуальном подходе в целом, я могу, конечно сделать и так, что этот "один раз" окажется последним, дело не в этом. Просто вы показываете новичкам как надо делать, и они учатся как делать не надо. Я на этом погорел полтора года назад, когда начинал постигать азы скриптования и логикописания. Спустя год когда мод был почти готов, я наткнулся на очень интересную статью, после которой хотелось выть волком, потому что перепроверять тысячи строк кода - УГ еще то. Потому щяс и заостряю внимание на то как лучше, а не как можно

118 101 110 105 44 32 118 105 100 105 44 32 118 105 99 105
Ссылка на комментарий
Как сделать так что-бы выдавались РАНДОМНЫЕ инфопоршни

tab_info = {'info_1','info_2','info_3','info_4','info_5'}

function rnd_info()
    math.randomseed(time_global())
    math.random()
    local rnd_pos = math.random(#tab_info)
    db.actor:give_info_portion(tab_info[rnd_pos])
    table.remove(tab_info,rnd_pos)
end

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

Может кто из знающих подскажет,при любом добавлении в bind_stalker.script выдаёт каждый раз вот такую ошибку

 

! Cannot find saved game ~~~ save file is corrupt tushkano_normal20142

* Log file has been saved successfully!

 

FATAL ERROR

 

[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: e:\games\s.t.a.l.k.e.r\gamedata\scripts\_g.script:1139: bad argument #2 to 'format' (string expected, got no value)

 

 

stack trace:

 

 

Эт так сказать своя солянка:АМК+Новые локи+Арсенал с IMM SSR4+куча своих правок,всё работает и вот попробовал добавить динамические костры(всё совместил и партиклы в том числе)такой вылет,ладно,откатил назад,добавил ammo_on_belt_amk_1.4.1.2 и опять вылет и имено такой,возвращаю родной bind_stalker.script всё работает

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

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

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

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

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

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

Войти

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

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

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