Я извиняюсь, начал играть народную солянку, убил военного с пм и вот пожалуйста, вылет.
Expression : fatal error
Function : CScriptEngine::lua_error
File : E:\stalker\patch_1_0004\xr_3da\xrGame\script_engine.cpp
Line : 73
Description :
Arguments : LUA error: ...blishing\s.t.a.l.k.e.r\gamedata\scripts\amkii.script:93: attempt to index global 'amkII_dynnews' (a nil value)
Что не так? Чё подлатать надо?
Я – хозяин своей судьбы, но только судьба знает, где закончится мой путь.
Gun12
Тоже всегда пытаюсь докопаться до причины, а не 'мазать зеленкой' следствие, но ...
В данном случае сделал все же даже не исключение. Причин не мало.
- долго трассировал различные подобные вылеты и правил ошибки разрабов, Их у ний ой как немало. Особенно когда начинаешь активировать редких или 'вырезанных' неписей.
- в уже упомянутом АМК бала применена довольно непростая и накрученная схема спавна. Однако в ней именно происходило прямое удаления неподходящих неписсей, что требовало или переписывания схемы респавна или заглушки ...
- немало новых различных схем, в которых довольно вольно обращение со стораджами. Пока подобные схемы доведешь до-ума вылеты по стораджу отобьют всю охоту возиться.
- ну и т.п. ...
В общем сделал один раз заглушку-реаниматор и теперь ловлю ошибки или 'до' или 'после', что тоже (ИМХО) неплохо. :-)
TheDoktor
Как ты думаешь, можно ответить что-то конкретное НЕ имея перед глазами кодов и/или не зная их?
Или ты думаешь, что тут у всех давно стоИт неодногигабайтная HC2010?
Почему бы не задать этот вопрос именно в топике по этому моду? Хотя ... и там могут не знать ...
Подсказка: кто-то из соляночников вставил сырые-коды от АМК-2, не потрудившись затереть вызов на несуществующий/ненаписанный модуль динамических новостей.
Artos
Ещё раз извинюсь за слона, сделанного из мухи.
Опять прийдётся заливаться краской стыда, но так сказать в назидание другим...
Смарт "esc_lager" я поставил на кондишн (отключил пока), и как-то умудрился не удалить одного сталкера из этого смарта.
Обязательно использую.
Да и вообще нужно взять за привычку при нахождении подобных моментов не проходить мимо, а не лениться и записать 3-4 строчки кода.
Спасибо за совет.
Завтра (тьфу - сегодня) на работу. Откланиваюсь.
отредактировал(а) Gun12: 17-05-2010 01:11 GMT3 час. Не стань номинантом премии Дарвина.
Начал писать мод чтоб можно было вступить в любую групировку. Вобщем все получается но я столкнулся с такой проблемой.
Когда вступаешь в монолит к бандитам или к военным с ними нельзя разговаривать
cyberlis А чего ты ждал. У большинства НПС групировок враждебных для ГГ диалогов либо просто не прописано или стоит игнор ГГ ну или в лучшем случае "Привет - До встречи". Так что тебе надо прописывать всем НПС новые диалоги. :)
------------------------------------------------------------------------------------------------------ Artos
Посмотри пожалуйста что не так. Вобщем хочу сделать подмену. Объект (артефакт) спавнится на высоте 5 метров, потом падает, потом я его удаляю, а затем на месте где был удален объект 1 должен появится объект 2 (бомба), по которой наношу хит и она взрывается. Проблема в том что в коде приведенном ниже не снимаются и/или не передаются координаты точки спавна обькта 2 (бомбы). Объект 2 (бомба) спавнится на месте спавна объекта 1 (артефакта), т.е. на высоте потом падает и подрывается по хиту.
function update() -- общий апдейт
spawn_tim()
spawn_tim_2()
spawn_tim_3()
end
local tim_af1 = level.get_time_minutes()
local sch_af1 = 0
function spawn_tim()
if tim_af1 ~= level.get_time_minutes() then
if sch_af1 == 5 then -- Спавн через столько минут игрового времени
this.spawn()
sch_af1 = 0
else
sch_af1 = sch_af1 + 1
end
tim_af1 = level.get_time_minutes()
end
end
local tim_af2 = level.get_time_minutes()
local sch_af2 = 0
function spawn_tim_2()
if tim_af2 ~= level.get_time_minutes() then
if sch_af2 == 6 then -- Спавн через столько минут игрового времени
delete_test()
Spawn_My_Bomb()
news_manager.send_tip(db.actor, "Таймер Замены", 0, nil, 5000)
sch_af2 = 0
else
sch_af2 = sch_af2 + 1
end
tim_af2 = level.get_time_minutes()
end
end
local tim_af3 = level.get_time_minutes()
local sch_af3 = 0
function spawn_tim_3()
if tim_af3 ~= level.get_time_minutes() then
if sch_af3 == 7 then -- Спавн через столько минут игрового времени
detonator()
news_manager.send_tip(db.actor, "Таймер Детонации", 0, nil, 5000)
sch_af3 = 0
else
sch_af3 = sch_af3 + 1
end
tim_af3 = level.get_time_minutes()
end
end
local podmena = {}
local ids = {}
local ids2 = {}
local boom_obj = 0
function spawn()
local x = -193
local y = 1
local z = -136
local gv = 57
local lv = 52973
local obj = alife():create("af_cristall_flower",vector():set(x,y,z),lv,gv)
table.insert(ids, obj.id)
news_manager.send_tip(db.actor, "Спавним обьект 1", 0, nil, 5000)
end
function delete_test() -- Удаление обьекта 1 -- Запомним его координаты
for k,v in pairs(ids) do
local obj = alife():object(v)
if obj then
news_manager.send_tip(db.actor, "Запоминаем и удаляем", 0, nil, 5000)
podmena.pos = obj.position
podmena.lv = obj.m_level_vertex_id
podmena.gv = obj.m_game_vertex_id
alife():release(obj , true)
end
end
end
function Spawn_My_Bomb() -- Спавним обьект 2
local obj2 = alife():create("bomb", podmena.pos, podmena.lv, podmena.gv) -- af_cristall_flower
news_manager.send_tip(db.actor, "Спавним обьект 2", 0, nil, 5000)
table.insert(ids2, obj2.id)
end
function detonator()
news_manager.send_tip(db.actor, "Подрываем обьект 2", 0, nil, 5000)
for k,v in pairs(ids2) do
local boom_obj = level.object_by_id(v)
local h = hit()
h.direction = vector():set(0,0,0)
h.impulse = 10
h.draftsman = boom_obj
h.power = 10
h.type = hit.fire_wound
boom_obj:hit(h)
end
end
Еще раз скажу, что проблема в том что обьект 1 не хочет спавнится на месте (туда куда упал артефакт) объекта 2 (бомбы).
З.Ы.: Код форматировал, но под спойлером всё стало в одну колонку. :ye)
strelok 10
Скачай фикс к WAWKE и не парься.... INFERNAL ia
Может хватит везде выкладывать свой мод...
Тем более тема вопросы и тветы причём тут твой мод?
Что-то люди начали друг-друга обсуждать. оффтопим товарисчи. Чем писать десять постов быстрее написать один ответ на вопрос.
Кто знает как избавиться от проблем с шейдерами в моделях ХУДа (например с настройками самосветящегося материала объект либо не светится, либо вообще не виден. А с настройками стекла объект отображается на пол метра от ГГ.) Таковые проблемы только в худах.
добавлено спустя 44 секунд
Если от это не избавиться напишите просто: никак нельзя... Краткость она как известно сестра талланта.
отредактировал(а) blackraven6: 17-05-2010 15:46 GMT3 час.
Журнал
- модель M79
- модель HK SL-8
- модель Milkor m32 WIP
Это объединенная функция из твоих "delete_test()"+"Spawn_My_Bomb[/whit**50016ea8aab1bb10eeba**рез "..tostring(tim_af2).." мин", 0, nil, 5000)
ids[k] --/ подчистили таблицу от о1
end
break --/> прерываем цикл
end
еnd
end
[/code]
Пояснения, если потребуются - потом (работа).
(мда, "грязноватенький" код, требует обработки рашпилем :-) )
P.S. Копи-пасть или под тег "Код" или при форматировании используй НЕПЕРЕНОСИМЫЕ пробелы ([ _ ]) - они xtml-парсером форума НЕ вырезаются, как обячные ...
Я понял чтобы со мной начали говорить монолитовцы, бандиты или военные надо прописать новые диалоги им подскажите какие файлы править куда что прописывать если есть у кого то пример дайте пожалуйста
karavan
Всё равно толком не понял.
Что ты имел в виду под словами, - " Спавн через столько минут игрового времени"?
Эта процедура должна происходить одноразово? Или периодически?
Поправь, если не прав.
Через 5 минут (с какого момента, неизвестно) артефакт спавнится в воздухе -> падает на землю -> (ещё через минуту?)
удаляется -> на его месте (НА ЗЕМЛЕ?) спавнится бомба -> (и ещё через минуту?) взрывается.
Так?
Товарищи есть у кого-нить функция вывода худа на экран, типа как в амк, когда бронь с противогазом одеваеш... можно без блура, просто проверку на бронь + вывод худа. и если можно - что куда вставлять...
МАГАЗИНЧИК Гермеса в моем журнале - оружие на выбор!
Александээр Без лога тебе никто ничего не ответит. (Хотя не факт, что ответят если ты выложишь лог:dry:) Посмотреть лог просто. Сразу после вылета открывай любой текстовый редактор и жми "вставить".
Я – хозяин своей судьбы, но только судьба знает, где закончится мой путь.
Artos Попробовал заменить на твой код с удалением-спавном игра отказывается запускаться. Ругается на фаил функцию общего апдейта. Непойму что не так в коде. :-G
Gun12 Непонял. В твоем варианте надо делать постоянный апдейт или как?
karavan
Писал и не со своего компа и второпях на работе. Допустил пару промашек:
function Spawn_My_Bomb() --/ Спавним обьект 2 и удаляем 1
for k,v in pairs(ids) do
local obj1 = level.object_by_id(v) --/ онлайн объект 1
if obj1 then
local se_obj2 = alife():create("bomb", obj1:position(), obj1:level_vertex_id(), obj1:game_vertex_id())
news_manager.send_tip(db.actor, "Спавним обьект 2", 0, nil, 5000)
table.insert(ids2, se_obj2.id) --/ запомнили о2
local se_obj1 = alife():object(v) --/ серверный объект 1
if se_obj1 then
alife():release(se_obj1, true)
news_manager.send_tip(db.actor, "Удалили обьект 1 через "..tostring(tim_af2).." мин", 0, nil, 5000)
ids[k] = nil--/ подчистили таблицу от о1
end
break --/> прерываем цикл
end end
end
В предпоследнем 'end' - была кириллическая 'е', исправь.
А похорошему - пиши что тебе требуется, т.е. задачу, а не то, как ты что-то пытаешься. сделать. Уже который раз только шараханья в кодах выходят.
Вариант Gun12 ставится на вызов из апдейта биндера сталкера.
XrKamp
В кодах игры и модов немеряно самых разнообразных простых и сложных таймеров. Неужели сам посмотреть/выбрать не можешь?
В этом топике не раз уже задавались вопросы и давались ответы. Лень полистать/почитать?!
TheDoktor
Я бы очень не рекомендовал использовать "читать лог" копи-пастом стека в блокнот.
Именно так начинаются сопли и ахи по ошибкам в '_g.script'.
Для понимания причины ошибки нередко требуются строки перед секцией FATAL ERROR и лучше человеку дать путь к штатному логу, если он до сих пор этого не знает:
Лог следует читать с 2-х - 3-х строк до слов FATAL ERROR (в конце лог-файла),
который можно найти по примерно такому пути:
C:\Documents and Settings\All Users\Документы\STALKER-SHOC\logs\xray_Ваше_Имя.log.
- чем учить пользоваться кастратами ... Именно вот так начинаются: "А мне так говорили ..." :-(
Это я не понял. Ты так и не ответил на мои вопросы, заданные относительно ТВОЕЙ функции
В твоем варианте надо делать постоянный апдейт или как?
там же в первой строчке написано.
Скажу по-другому.
Звичайно.
Gewi&.
Certainly.
А ниже я дописал о возможных расширениях.
Р.S. Да ставь хоть на апдейт дверей.
отредактировал(а) Gun12: 17-05-2010 23:49 GMT3 час. Не стань номинантом премии Дарвина.
Эта тема закрыта, публикация новых сообщений недоступна.
Продолжая пользоваться сайтом, вы соглашаетесь с использованием файлов cookie. Страницы сайта могут содержать информацию, запрещенную для просмотра посетителям младше 18 лет. Авторское право на серию игр «S.T.A.L.K.E.R» и используемые в ней материалы принадлежит GSC Game World.