#XMJ{ : почему случаетьяся этот вылет:...
Description : entity not found. id_parent=889 id_entity=891 frame=1312
С подобным вылетом и я сталкивался не раз. Задавал вопросы на разных форумах, насиловал Gооglе. Только выяснил, что похожий вылет случался у многих. Вразумительного ответа я так и не нашел. Некоторые говорили что как-то избавлялись от этого, но как и что они делали сами не понимали. У меня тоже пропали такие вылеты. Что я делал помню, а вот имеет ли это отношение к избавлению от этого бага - не имею ни малейшего понятия. Тем не менее расскажу. Началось всё это после того, как я заспавнил скриптом подкрепление бандитам на АТП и воякам под мост. Бандюг взял под смарт, а вояк не трогал, гуляли где хотели. Когда я выносил бандюг и шмонал, всё проходило ОК, а когда приговорил вояк, то при обыске обязательно в одном из трупов ловил похожий вылет. Судя по логу (подумал так - не найден id, т.к. обнаружено несоответствие id данного НПС вычисленное при обыске с выданным при спавне), я решил что мой спавн вызывает какой-то баг с раздачей id. Спавнил я по статье "Спавн через скрипт", на примере зомби. А выше есть пример спавна долговца. Так вот в нём, помимо обычных значений ("name",pos,level_vertex,game_vertex), есть 5-й параметр - 65535. Я поставил его во все функции спавна. Может я ещё где что делал (вроде нет), но вылеты прекратились. В какой ситуации у тебя это случаются я не знаю. Но знаю точно что дело не здоровое:)
Всем доброго вечера сталкеры.
Кто знает как разрулить проблему со ступором неписей во время боя?
У меня мод Симбион (10) - так я прописал всем персам на кордоне другие стволы - покруче - типа свд/сву/пкм и прочее заместо калашей и макаровых. Игра не вылетает - все ок.
Но - во всех лагерях на кордоне NPC стали "зависать". Иногда только несколько персов, иногда почти все - во время боя. То есть перестают стрелять и тупо стоят.
Лог намекает на конфликт (или что -то еще ) с менеджером выбора оружия.
[error]Arguments : LUA error: ...les2\s.t.a.l.k.e.r\gamedata\scripts\m_wpn_mgr.script:426: attempt to perform arithmetic on field 'change_rest_time' (a nil value
И еще бывает вот такая ошибка
stack trace:
Scheduler tried to update object esc_blokpost_soldier2
Это уже вроде как конфликт с модулем чистки. В общем подскажите какие у вас соображения по этому поводу?
И надо ли что-то делать с файлом mp ranks - в том плане, что например прописать всем рангам неписей все имеющееся в игре стволы?
отредактировал(а) erlik: 27-04-2009 20:25 GMT3 час. Разработки: "Тотализатор","Kill-zone", "Mega-bomba", Mega_gravi",
"Рандомные тайники(а также декодер, мины+диалоговый аддон"), "Выбрасываемый рюкзак", "Аналоговые часики на худ"
Я точно не знаю, но лучше в Чужих Модах не ковыряться....Вот например я В своём разбираюсь как да чё, а вот друг......
Короче я это к тому что это у тебя что-то не-то сделано!
Ты как пушки ставил-то?
У меня например так:
В C:\Games\S.T.A.L.K.E.R. - Shadow of Chernobyl\gamedata\config\gameplay\character_desc_escape.
Вот так:
Николай ФеНиКс
Да все делал как прописано в руководствах по модмейкейрству. (так как у тебя - в геймплей характер деск искейп)
Просто в этом моде персы могут иметь в инвентаре сразу несколько пушек и в зависимости от ситуации использовать ту или иную - это все модуль выбора оружия им подсказывает. Но у меня он что-то тормозить видимо стал (при том что я его не трогал). Пока вот не разобрался как он работает... А у разраба бесполезно спрашивать - в Симбионе своих багов и вылетов достаточно, мод пока еще тестируется. А мне самому стало интересно изменять его под свои "хотелки".
отредактировал(а) erlik: 27-04-2009 20:24 GMT3 час. Разработки: "Тотализатор","Kill-zone", "Mega-bomba", Mega_gravi",
"Рандомные тайники(а также декодер, мины+диалоговый аддон"), "Выбрасываемый рюкзак", "Аналоговые часики на худ"
#erlik :
В общем подскажите какие у вас соображения по этому поводу?
Только соображения, т.к. этого МОD-а нет. Насчет первого лога. Любопытно что записано в 426-строчке файла m_wpn_mgr.script, а ещё лучше посмотреть всю функцию. Но судя по логу, это математическая функция, в которую передается некорректный параметр, возвращающий nil, что в математике недопустимо. Нужно посмотреть откуда берется это значение "change_rest_time", т.е. проследить весь путь. Это должно быть число либо явно, либо, что вероятнее всего, callback какой-то другой функции(так может быть целая цепочка) передающая некорректный параметр в вышестоящую функцию. Попросту говоря, опять же я так думаю, что на Кордоне пока не возможно использовать "элитное" оружие. Что-то вроде - оно нигде не упоминается в файлах, связанных с Кордоном, а явно есть. И функции пытаются обработать его(вроде бы не существующего пока). Отсюда и второй лог. В таблице вещей обновляемого объекта не должно быть этого предмета. В любом случае нужно искать. Попробуй дать одному персу всё, экспериментируй. Повоюй с ним, убей, посмотри как но ведет тебя в разных схемах(ситуациях). Тогда можно будет сказать что-то определённей.
добавлено спустя 8 минут
А насчет разобраться ты правильно сказал. Тут чужой монастырь. Новые скрипты. Вот на них и обрати больше внимания. С выбором оружия явно намудрили.
отредактировал(а) Gun12: 27-04-2009 21:07 GMT3 час. Не стань номинантом премии Дарвина.
Gun12
Спасибо за пояснения, у меня тоже были догадки что я раздал "запрещенное" для кордоновских неписей оружие. Вот только не нашел где прописывается то что можно им раздавать, а что нельзя.
в 426 строчке вот это
if self.last_change and curwpn and curwpn:get_ammo_in_magazine() > 0 and self.last_change+self.modes.change_rest_time > time_global() then
Где начало функции я не знаю - скопировал вот это
function weapon_manager:update_weapon()
if self.disabled or not self.npc or isTrader(self.npc) then return end --/>
-- printf("update_weapon:[%s]", ">") --/#~#
local cnt = self:update_weapon_list() or 0
if cnt == 1 then
for k,v in pairs(self.weapons) do
if v[1] and v[1].sec then
if not level.object_by_id(v[1].id) then
printf("update_weapon:(cnt==1),weapon not exist!:sec=[%s]:<%s>", v[1].sec, "Warning!")
end
self:set_weapon(level.object_by_id(v[1].id))
return
end
end
elseif cnt > 1 then
local types = {}
for k,v in pairs(self.weapons) do
if #v > 0 then
types[k] = true
end
end
local be = self.npc:best_enemy()
local curwpn = level.object_by_id(self.wid)
if not be then
if self.modes.mode2_idle == "1" then
local weapons = {}
for k,v in pairs(self.weapons) do
for i,w in ipairs(v) do
table.insert(weapons,w)
end
end
table.sort(weapons,function(a,b) return a.prm > b.prm end)
self:set_weapon(level.object_by_id(weapons[1].id))
return
elseif self.modes.mode2_idle == "2" then
for k,t in ipairs(self.modes.types) do
if types[t.t] then
if not level.object_by_id(self.weapons[t.t][1].id) then
printf("update_weapon:(cnt>1,not enemy):weapon not exist!,id[%s]:", self.weapons[t.t][1].id)
end
self:set_weapon(level.object_by_id(self.weapons[t.t][1].id))
return
end
end
end
else
if self.modes.mode2 == "2" then
if not curwpn or curwpn:get_ammo_in_magazine() == 0 then
for k,t in ipairs(self.modes.types) do
if types[t.t] then
if self:check_conditions(0) then
for q,w in ipairs(self.weapons[t.t]) do
local wpn = level.object_by_id(w.id)
if wpn:get_ammo_in_magazine() > 0 then
self:set_weapon(wpn)
return
end
end
end
end
end
for k,t in ipairs(self.modes.types) do
if types[t.t] then
if self:check_conditions(2) then
local wpn = level.object_by_id(self.weapons[t.t][1].id)
self:set_weapon(wpn)
return
end
end
end
end
elseif self.modes.mode2 == "1" or self.modes.mode2 == "3" then
if self.last_change and curwpn and curwpn:get_ammo_in_magazine() > 0 and self.last_change+self.modes.change_rest_time > time_global() then
-- printf("update_wpn[%s]:change_rest_time[%s]",curwpn:section())
return --/>
end
Gun12
Только что разархивировал новый фикс от разраба. В редми написано, что подправлен менеджер оружия. И теперь строка 426 выглядит так:
if curwpn and curwpn:get_ammo_in_magazine() > 0 and self.last_change and self.last_change + self.modes.change_rest_time > time_global() then
Насчет прочих изменений сказать трудно.
Завтра поэксперементирую как ты предложил - но только уже на этом фиксе - посмотрим решит ли это проблему...
(...Да, освоить LUA это классно. Сам хочу попробовать. Тока у нас в городе я ни в одном маге ни нашел пока ничего). Так что удачи тебе!
отредактировал(а) erlik: 27-04-2009 22:19 GMT3 час. Разработки: "Тотализатор","Kill-zone", "Mega-bomba", Mega_gravi",
"Рандомные тайники(а также декодер, мины+диалоговый аддон"), "Выбрасываемый рюкзак", "Аналоговые часики на худ"
erlik попробую разобрать функцию.....Так..я с телефона. А на телефоне это плохо читабельно. Поэтому посмотрю когда буду дома. Если в чем разберусь, то обязательно подскажу. Я только начал изучать LUА, поэтому гарантий не даю. Но буду стараться :)
отредактировал(а) Gun12: 27-04-2009 22:04 GMT3 час. Не стань номинантом премии Дарвина.
#ПсевдаСтрелок :Можешь просто ссылку дать а то не выделяется!
Сейчас по РМ отправлю. Заглядывай. Будут вопросы - задавай.
добавлено спустя 39 минут
#erlik :Тока у нас в городе я ни в одном маге ни нашел пока ничего
Если тебе это интересно, то свяжись то мной по РМ. Я из нета нарыл кучу инфы. Для начала тебе хватит. Я до сих пор не могу всё это разложить по полочкам. Хотя ты прав. Хорошая книга лучше всякой компьютерной справки. Как бы то ни было, при определенной доле усидчивости и терпения, даже из того что я нарыл можно извлечь кучу полезной информации. Было бы время.
добавлено спустя 10 минут
#SolderX :
ребят дайте ссылку на мод интересный пожалуйста
Такие вопросы убивают. Тебе дать то, что мне интересно? Или то, что интересно моему брату? Когда же люди научатся задавать конкретные вопросы? Ведь не мы придумали эту поговорку - "Правильно заданный вопрос - это половина ответа". Мужики, я не наезжаю, но давайте не уподоблятся "блондинкам", и будем последовательны в своих действиях, высказываниях и умозаключениях. ОК?
добавлено спустя 51 минут
#singapur22 : ELISEY Чтобы решить проблему нехватки денег у торговцев, нужно...
singapur22 ты всё верно объяснил. Но я добавлю. Каким бы ни был плохим ЧН, но ценовая политика в нём на высшем уровне. Я ещё не слышал, что бы у кого-то (в ЧН) возникал вопрос - , "Куда девать деньги?". Я считаю, что это нужно взять на вооружение. Отчасти чтобы ГГ сильно не борзел со своим арсеналом стволов, отчасти чтобы ремонт костюма обходился в копеечку. Вот тогда можно и посмотреть, насколько ты крут. Хотя, конечно, есть уровень "Мастер", где мало не покажется. Но всё равно, нужда есть нужда. Это великое подспорье в деле самосохранения и рискованного чувства наживы, что несомненно увеличивает азарт игры.
отредактировал(а) Gun12: 28-04-2009 00:36 GMT3 час. Не стань номинантом премии Дарвина.
satiety_v = скорость уменьшения сытости со временем. Выставляем "0.0"
radiation_v = скорость уменьшения радиации. Выставляем "1.0"
radiation_health_v = уменьшение здоровья при воздействии радиации. Выставляем "0.0"
psy_health_v = скорость восстановления psy-здоровья. Выставляем "1.0"
health_hit_part = процент хита, уходящий на отнимание здоровья. Выставляем "0.0"
power_hit_part = процент хита, уходящий на отнимание силы. Выставляем "0.0"
bleeding_v = потеря крови при номинальной ране в секунду. Выставляем "0.0"
wound_incarnation_v = скорость заживления раны. Выставляем "1.0"
Сохраняем файл. И можно смело идти мочить, всё и вся
Ещё можно сделать, чтоб ГГ не уставал:
jump_power = умешьшение силы с прыжком без учета веса ноши.
jump_weight_power = умешьшение силы с прыжком с учетом веса ноши.
overweight_jump_k = коэффициент влияние перегрузки прыжок с весом.
walk_power = умешьшение силы за секнду во время ходьбы без учета веса ноши.
walk_weight_power = умешьшение силы за секнду во время ходьбы с учетом веса ноши.
overweight_walk_k = коэффициент влияние перегрузки ноши.
accel_k = коэффициент на бег.
sprint_k =коэффициент на "sprint" бег.
И выставляем все параметры в "0.0"
добавлено спустя 13 минут
XMJ{ Попрбуй так: function satiety_le(actor, npc, p)
return p[1] and actor.satiety< p[1]
end
Или так:
function satiety_le(actor, npc, p)
return actor ~= nil and actor.satiety< p[1]
end
Вызов функции производится так:
%=satiety_le(0.4)%
Где (0.4) , передача переменной состояния голода. (от 0.0 до 1.0).
отредактировал(а) singapur22: 28-04-2009 12:50 GMT3 час. Проект "Mobile Manager" закрыт, в связи со стечениями неблагоприятных обстоятельств, и последующей потерей всех файлов и справок текущего проекта.
По вопросу с какой мод лудше, ГОСПОДА! Не оффтопте пожалусто тут тема на Как сделать свой а де какой мод уже в другой теме.
Солдерикс, может быть или моды глючат все что нереально, значит замени версию переустанови или поменяй диск с инета скачай это последни раз об этом.
По вопросу замены вооружения, ты дал этим новичкам менять оружие или нет ато без команнды ты просто написал пустую команду, и скрипт... Проверь почему глючит может Инвентори Бокс по идее нету у неписей....
singapur22 кстати отношение с рангу или к сложности игры Новичёк сталкер ветеран и мастер, или у нас игра разницу не имеет когда это мастер или когда новичёк....
XMJ{ Ты меня не понял. А точнее, я не правильно написал. Данная функция, возвращает (true\false), в зависимости от соответствия. Для проверки, работает функция, или нет, пропиши её в файле xr_conditions.script. И поставь вызов её, на проверку условий в какой нибудь логике, или диалоге. Проверка в логике, производится например так:
on_info = {=satiety_le(0.4)} %=aes_earthshake%
Где: если функция "satiety_le" вернёт true, то запустится функция эффекта "землетрясение".
Проект "Mobile Manager" закрыт, в связи со стечениями неблагоприятных обстоятельств, и последующей потерей всех файлов и справок текущего проекта.
Чево тут понимать height переводится как высота!
Просто чё-то у тя намудрёно там!
добавлено спустя 4 минут
А чё для создания костюма чё только надо здесь юзать?
gamedata\config\misc\outfit.ltx
gamedata\config\misc\unique_items.ltx
?
Или ешё где-то?
И как новый ваще создавать?
Можно за основу взять какой-нибудь другой например ну Костюм Сталкера?
И просто поменять пораметры и добавить доргашам?
отредактировал(а) Николай ФеНиКс: 28-04-2009 16:24 GMT3 час.
ПсевдаСтрелок Если ты рост менял у ГГ, то всю билиберду что ты писал свыше едениы, можно закрывать игру и забыть что она заработает... макс рост 1,0 если мне память не отказывает точно также как и имунитет и кровоток и голод.... макс номер 1,0 поетому постав actor.hight 0.9 итд...
добавлено спустя 6 минут
Николай ФеНиКс ващето все так и делают... Берёмс старый костюмчикс нарисоваемс на него новый даём в Аутфитах (outfit.ltx) новый костюм меняем ему Вижуал (visual:)потом в Trader_Trader.ltx добовляемс и вставляемс всё по нужным местам как МЭПЕранкс (Mpranks) итд... Всё ваш костюмчик юзай ЛОГИКУ и Фотошоп дойдёш до безграничных возможностей...
отредактировал(а) Сталкер Серый: 28-04-2009 16:36 GMT3 час. Разработка мода возврата РПГ в сталкер
Эта тема закрыта, публикация новых сообщений недоступна.
Продолжая пользоваться сайтом, вы соглашаетесь с использованием файлов cookie. Страницы сайта могут содержать информацию, запрещенную для просмотра посетителям младше 18 лет. Авторское право на серию игр «S.T.A.L.K.E.R» и используемые в ней материалы принадлежит GSC Game World.