st-al-ke-rs-ha
Данный вылет происходит, если:
- неправильно написана логика (в твоем случае не похоже на это)
- неправильные вертексы в пути
- неправильно написана сама секция (что на вряд, если копировала)
Может что-то еще...
Лучше всего в этом случае в _g.script временно изменить функцию printf
function printf(fmt,...)
-- log(string.format(fmt,...))
local con = get_console()
con:execute(string.gsub(string.format(fmt,...), " ", "_"))
con:execute("flush")
end
! Не забудьте после выявления причины обратно вернуть все обратно !
Игра будет подлагивать, но зато потом можно будет узнать в чем дело. Запускаешь игру ловишь вылет и в папке с логом, в файле глянуть перед:
Expression : fatal error
Function : CScriptEngine::lua_error
File : E:\stalker\patch_1_0004\xr_3da\xrGame\script_engine.cpp
Line : 73
Description : <no expression>
Arguments : LUA error: ...S.T.A.L.K.E.R.\мод\gamedata\scripts\_g.script:20: bad argument #2 to 'format' (string expected, got no value)
или иногда
Expression : fatal error
Function : CScriptEngine::lua_error
File : E:\stalker\patch_1_0004\xr_3da\xrGame\script_engine.cpp
Line : 73
Description : <no expression>
Arguments : LUA error: ...S.T.A.L.K.E.R.\мод\gamedata\scripts\_g.script:22: bad argument #2 to 'format' (string expected, got no value)
Будет причина.
Если не понятно пиши в личку, поделюсь мыслями как решить данную проблему.
Сообщение было успешно отредактировано Addept (03-07-2012 21:49 GMT3 часа, назад)
--/------------------------------------------------------------------
--/ Functions for Print-Log by Artos
--/------------------------------------------------------------------
--/ конвертер вывода строки лога
function fFormatToString(fmt,...)
--/ локальная функция: перевод аргумента в стринг
local to_str = function(val,typ)
if typ == 'string' then
return val --/>
elseif typ == 'number' then
return tostring(val) --/>
elseif typ == 'boolean' then
return tostring(val) --/>
elseif typ == 'table' or typ == 'userdata' then
if tonumber(val.x) and tonumber(val.y) and tonumber(val.z) then
if typ == 'table' then
return string.format('tbl{x=%.3f:y=%.3f:z=%.3f}',val.x,val.y,val.z) --/>
end
return string.format('vec(x=%.3f:y=%.3f:z=%.3f)',val.x,val.y,val.z) --/>
end
end
return "<"..typ..">" --/>
end
--/ основное тело функции: парсинг исходной строки
if type(fmt) == 'string' then
if fmt:match('%\%[s|d]') then --/ есть патерн(ы)
if next({...}) then --/ есть аргумент(ы)?
local arg,val,typ,i = {...},nil,nil,nil
for i=1,#arg do
val = arg --/ значение текущего аргумента
typ = type(val) --/ тип текущего аргумента
if typ == 'string' then
fmt = fmt:gsub('%\%s',val,1)
elseif typ == 'number' then
if fmt:match('%\%d') then
fmt = fmt:gsub('%\%d',val,1)
else
fmt = fmt:gsub('%\%s',val,1)
end
else
fmt = fmt:gsub('%\%s',to_str(val,typ),1)
end
end
end
fmt = fmt:gsub('%\%[s|d]',"<NOT_arg!>") --/ заглушка от отсутствия аргументов
end
else
fmt = to_str(fmt,type(fmt))
end
--/ с заменой обычных пробелов (sym_space='\032') на печатные ('\160')
return fmt:gsub('%s','\160') --/>
end
--/------------------------------------------------------------------
--/ printf (функция вывода информации в лог игры)
--/------------------------------------------------------------------
local console = get_console()
function printf(fmt, ...)
if not console then console = get_console() end
console:execute("*INFO:"..string.sub(fFormatToString(fmt,...),1,250)) --/ +префикс строки лога (STCS|SCoP: "load ~:")
--console:execute("flush") --/ команда записи буфера лога в файл (в игре можно закомментиировать!)
end
--/------------------------------------------------------------------
--/ Abort (функция принудительного прерывания игры)
--/------------------------------------------------------------------
function abort(fmt, ...)
printf("ВНИМАНИЕ! Ошибка! Информация по ошибке в строках ниже !")
printf(string.gsub("ERROR!: "..string.sub(fFormatToString(fmt,...),1,250),'%s','\160'))
assert(false,"ВНИМАНИЕ! Игра прервана! Информация в строках выше.") --/ прерываем с выводом строки на консоль
exit() --/> прерываем игру при фатальных ошибках
end
--/------------------------------------------------------------------
ShYrka, лучше напиши об этой проблеме в тему, посвященную этому моду. Здесь вряд ли помогут.
st-al-ke-rs-ha, ну во-первых, я это знал и начинаю новую игру всегда, не смотря на то, что изменил. Во-вторых, зачем это начинать новую игру, если я не редактировал all.spawn
Addept, st-al-ke-rs-ha, да вряд ли вы что-нибудь поймете в этом логе.
Ошибка в том, что нужно 1) или просто прописать вторую точку, только не в том же месте; 2) или (так лучше) добавить к его логике path_look. То есть у тебя будет выглядеть так:
Ребята всем привет вот вопрсо а как дать функцию не через диалог и не через рестрик инфопоршнем, а так что бы мы к примеру спаунимся и сразу функция преходит в силу?
Aristst-al-ke-rs-ha косяк не в death_manager.script. в а конфигах в папке misc. Там, как было указано выше, есть три файла, отвечающие за спавн лута в трупах. Так вот каждый новый предмет должен быть указан в каждом файле. То есть если у нас в двух файлах есть строка скажем
Код:
af_medusa = ...
а в одном нету, или не оррестно прописана эта строка в каком-либо из файлов, то игра выдаст вам ошибку именно в death_manager.script так как там данные из тех трёх айлов обрабатываются, а поскольку у вас в них есть косяк. то скрипт запускается с заранее неверными данными, что и приводит к вылету из-за этого скрипта
аутист во-первых ты бы хотябы написал для какого сталкера тебе это всё нужно, во вторых указал бы патч, ато тебе щас скажут как делать для ЗП а тебе надо для ТЧ.
Цитатаесли не сложно кто-нибудь научите сюжет делать ,или покажите не нужный если есть
Листай туторы и читай читай читай, на блюдечке с голубой коёмочкой тебе никто ничего не принесёт.
мне надо к теням Чернобыля , насчёт сюжета я просто знаю ,есть люди у каторых валяются сюжеты не задействаные не где чёб не подилится ,по поваду Mini Games Mod_v0.5 диалог как исправить, и насчёт обгрейда от амк нечё нет ? и амк масок к кастюмам? ( кто чем занет, я дополнение делаю сам месец уже пацанам нравится могу идеями поделится если надо)
привет всем не подскажите ли мне как сделать так чтобы во время дождя у тебя прибавлялась радиация( радиактивный дождь) просто одному моему другу это очень надо
корт, ну это как бы не сложно, вот код, который нужно вставить в bind_stalker.script в функцию update:
Код:
--# определим интенсивность дождя
local intensity_rain = level.rain_factor()
--# а идёт ли дождь в данный момент
if intensity_rain ~= nil and intensity_rain ~= 0 then
--# в зависимости от того на сколько сильный дождь будем увеличивать уровень радиации ГГ
db.actor.radiation = intensity_rain * 0.0007
end
Вот только тут одна мааааленькая проблема - уровень радиации будет подниматься везде, в не зависимости от того находишься ли ты на улице или же под крышей.
Если узнаешь, как отследить где именно находится ГГ - скажи мне, доделаем функцию. А пока только так. :)
ColR_iT, корт как то же игра определяет что ГГ находится под крышей (звук дождя стихает и пр.) значит можно по тому же принципу определять находится ГГ под открытым небом или нет. Вот только как это сделать...
if htime == 1 and level.get_weather("default") then
db.actor:hit(h2)
db.actor:hit(h2a)
end
if htime == 12 and level.get_weather("default") then
db.actor:hit(h1)
end
if htime == 16 and level.get_weather("default") then
db.actor:hit(h1)
end
if htime == 17 and level.get_weather("default") then
db.actor:hit(h2)
db.actor:hit(h2a)
end
end
Затем в скрипте xr_detector.script пишем после function actor_detector:update() вот это Water.intr()
P.S. В Water.script можете настроить всё под себя.
Эта тема закрыта, публикация новых сообщений недоступна.
Продолжая пользоваться сайтом, вы соглашаетесь с использованием файлов cookie. Страницы сайта могут содержать информацию, запрещенную для просмотра посетителям младше 18 лет. Авторское право на серию игр «S.T.A.L.K.E.R» и используемые в ней материалы принадлежит GSC Game World.