Здесь задают вопросы и получают на них ответы. Прежде чем задать вопрос, воспользуйтесь поиском по разделу, ответ на него, вероятно, уже есть.
Если у вас произошёл вылет, проверьте лог и поищите информацию об ошибке в справочнике. Также будет полезно посмотреть справочник ошибок. Если у Вас вылетает какой-то мод, то следует написать в тему этого мода.
Грамотно оформляйте свой пост, чётко доносите суть своего вопроса (ответа).
Благодарность выражаем в личке или же ставим плюсик в историю репутации. Подобные посты будут удаляться.
Вот я не могу понять... начинаю новую игру. новая лока. всё нормально работает. сделал что нужно и перехожу на другую. а там не стартуют смарты. нет нпс, бегу дальше а на следующих локах все нормально всё работает.... вот в чём загвозка. явно не в этом скрипте... я написал просто как пример 3 локи. лок больше. но смарты не запускаются только на одной. при этом если запускаю эту же локу просто с отдельным спавном этой локи всё нормально.
Добавлено (12.06.2018, 16:42) --------------------------------------------- buffy, Если с отдельным спавном всё работает значит там всё нонрмальнор. иначе бы и с отдельным спавном не работало бы... собрано всё в сдк. и весь спавн вшит и в левел спавн тоже... отличия только в том что в общем олспавне с локи убран актор. так как он на стартовой локации...
Сообщение отредактировал Policai - Вторник, 12.06.2018, 16:44
denis2000, кстати, в том уроке, который ты привёл в пример, я нашёл огрешность: зачем вот эта проверка, ведь она не имеет смысла:
Код
if n~=0 then
т.к. если n<=0, то промежуток будет равен (0;[<=]-1), а это нелогичный промежуток -> цикл ни разу не сработает.
Добавлено (12.06.2018, 16:54) --------------------------------------------- Policai, тогда я не знаю в чём проблема, может когда вы собираете весь спавн, то в него не прописываете ту локу хотя тогда был бы вылет. Перепроверьте всё ещё раз или напишите denis2000 в личку.
Сообщение отредактировал buffy - Вторник, 12.06.2018, 16:56
Да всё перепроверил уже по многу раз, и сравнивал с другими локами, ничего не могут понять. Счас докомпилится лока ещё одна, исправлял геометрию, попробую войти на неё с другова входа не трогая первый, может это что даст... или закоментить автосейв на ней, мне что то кажется в нём косяк....
function sim_board:fill_start_position() if self.start_position_filled == true then return end --printf("FILL START POSITION [%s]", self.player_name) self.start_position_filled = true for level in game_graph():levels() do local section_name = "start_position_" .. alife():level_name(level.id)
if not setting_ini:section_exist(section_name) then return end
local n = setting_ini:line_count(section_name) for i=0,n-1 do local result, id, value = setting_ini:r_line(section_name,i,"","") local smrt_names = utils.parse_names(value) for k,v in pairs(smrt_names) do local smart = self.smarts_by_names[v] if smart == nil then abort("Wrong smart name [%s] in start position", tostring(v)) end local squad = self:create_squad(smart, id) self:enter_smart(squad, smart.id) --squad:update() end end end end
Цитатаdenis2000 ()
А функция line_count возвращает число меньше нуля?
Да не учёл этот момент, но ведь ноль она может вернуть тем более функция предполагает, что в секции стартового положения будет что-то написано
Вы внимательно прочитали то, что я вам выше написал? В оригинале той проверки нет, ведь она там не нужна т.к. будет нелогичный промежуток (0;-1) и цикл не запустится(возможно, я какие-то детали упускаю, но про это ещё на уроках информатики говорили ). Если что, вот логичный промежуток: (-1;0)
ведь она там не нужна т.к. будет нелогичный промежуток (0;-1) и цикл не запустится
Это точно? Я могу ошибаться но некорректный интервал скорее приведет к вылету нежели к незапуску цикла. Если правы вы, то это, всего лишь, дополнительная проверка для устойчивости кода к кривым рукам заселяющего, которая в итоге ничего не решает, если прав, я то эта проверка уменьшает количество возможных вылетов ровно на 1. В обоих случаях эта проверка не ухудшает работоспособность кода.
Сообщение отредактировал denis2000 - Вторник, 12.06.2018, 17:53
denis2000, buffy, Ситуация такая, перепробовал всё что знал, не запускается работа смартов на локах которые не относятся к оригиналу сталкера. На данный момент это тёмная лощина, очистные и мёртвый город, с отдельным олспавном на каждую из этих лок всё работает а в общем олспавне ни вкакую.... на остальных локах нет проблем, всё работает на ура... Какие варианты? куда копать? Учитывайте плиз что я чайник, и куда надо ставить запятую а где убирать я просто не знаю.... все познания на общих основаниях и на логической интуиции.... сидеть и изучать просто нет времени...