AndreySol 215 Опубликовано 21 Декабря 2014 подходишь и толкаешь, он разваливаетсяМогу ошибаться, но чтоб объект в игре разваливался он должен быть на классе P_DSTRBL. А для "physic_object" прописан класс O_PHYS_S(у меня по крайней мере).Визуала такого "physics\decor\stol_sher" у меня нет, не могу потестить. Возьми другой для пробы из physics\stol. Поделиться этим сообщением Ссылка на сообщение
AndreySol 215 Опубликовано 21 Декабря 2014 (изменено) и не работает вот такая А как именно не работает ? Переключатель не становится активным ? Или что там у тебя происходит ? Стол, стул, кровать разваливаютсяНу вообще-то, если я не ошибаюсь, для того чтоб объект в игре мог развалиться, недостаточно ему класс P_DSTRBL прописать. Еще вроде должна быть дополн. папка типа "prt" в которой должны запчасти лежать от этого объекта - движку ведь надо знать что заспавнивать на место разрушенного объекта.А с твоим столом все-же не понятно - если после разрушения на его месте появляются обломки явно подходяшие для него, значит он P_DSTRBL и папка "prt" имеется. Хотя может я не все правильно понимаю... А на счет костей в объектах - так они вроде к разрушаемости\не разрушаемости отношения не имеют ? Изменено 21 Декабря 2014 пользователем AndreySol Поделиться этим сообщением Ссылка на сообщение
AndreySol 215 Опубликовано 23 Декабря 2014 А чем alife():release(alife():object(item:id()), true) не устраивает ? Нужно что-то особенное ? 1 Поделиться этим сообщением Ссылка на сообщение
AndreySol 215 Опубликовано 31 Августа 2017 9 часов назад, Stalker Nest сказал: Теперь я знаю, что вылетает из за какого то НПС, и что это дает? Ты сам писал, что уменьшал радиус он-лайна до 10м - ну так смотри, кто из неписей при приближении к нему на эти 10м дает вылет. И смотри, что у него в секции all.spawn'а прописано. Судя по логу - ошибка чтения секции конфига, скорее всего, какой-то предмет в инвентаре... Поделиться этим сообщением Ссылка на сообщение
AndreySol 215 Опубликовано 27 Сентября 2017 Только что, UriZzz сказал: Я вижу что тут два слова написаны слитно, подскажите как правильно, будте любезны. В файле heal_regen.script должна быть ф-ция weapontimer(). Проверяй... 1 Поделиться этим сообщением Ссылка на сообщение
AndreySol 215 Опубликовано 29 Сентября 2017 @вася5657 Смотри в скрипты со словом "death" в названии. Ну и конфиги, соответственно... Есть класс менеджера смерти мобов, в котором прописано все: подчистка инвентаря мобов от предметов, которых не должно быть после их смерти, изменение состояния предметов после смерти их владельца и тд Поделиться этим сообщением Ссылка на сообщение
AndreySol 215 Опубликовано 3 Ноября 2017 18 минут назад, ComradE_AleX сказал: Хочу вернуть в солянку свою позицию в рангах, а то её от туда убрали зачем то Видимо за тем, что меряться пиписками с ботами - нонсенс крайней степени... 1 3 2 Поделиться этим сообщением Ссылка на сообщение
AndreySol 215 Опубликовано 5 Ноября 2017 1 час назад, Han Sola сказал: Что надо поменять? В спавне менять ничего не надо... Надо смотреть в скрипты - похоже установлен какой-то уборщик трупов. Поделиться этим сообщением Ссылка на сообщение
AndreySol 215 Опубликовано 12 Декабря 2017 1 час назад, Dennis_Chikin сказал: А кто точно знает Наверно движок ? Прошелся поиском по исходникам - кроме вычитывания этого параметра и сейв\лоада в нет-пакет нашел единственное место где этот параметр используется: Скрытый текст void CSE_ALifeAnomalousZone::spawn_artefacts () { VERIFY2 (!m_bOnline,"Cannot spawn artefacts in online!"); float m_min_start_power = pSettings->r_float(name(),"min_start_power"); float m_max_start_power = pSettings->r_float(name(),"max_start_power"); u32 m_min_artefact_count= pSettings->r_u32 (name(),"min_artefact_count");; u32 m_max_artefact_count= pSettings->r_u32 (name(),"max_artefact_count");; u32 m_artefact_count; if (m_min_artefact_count == m_max_artefact_count) m_artefact_count = m_min_artefact_count; else m_artefact_count = randI(m_min_artefact_count,m_max_artefact_count); if (m_min_start_power == m_max_start_power) m_maxPower = m_min_start_power; else m_maxPower = randF(m_min_start_power,m_max_start_power); LPCSTR artefacts = pSettings->r_string(name(),"artefacts"); u32 n = _GetItemCount(artefacts); VERIFY2 (!(n % 2),"Invalid parameters count in line artefacts for anomalous zone"); n >>= 1; typedef std::pair<shared_str,float> ARTEFACT_PAIR; string256 temp0, temp1; ARTEFACT_PAIR *m_weights = (ARTEFACT_PAIR*)_alloca(n*sizeof(ARTEFACT_PAIR)); ARTEFACT_PAIR *I = m_weights; ARTEFACT_PAIR *E = m_weights + n; for (u32 i = 0; I != E; ++I, ++i) { _GetItem (artefacts,2*i,temp0); _GetItem (artefacts,2*i + 1,temp1); new (I) ARTEFACT_PAIR(temp0,(float)atof(temp1)); } for (u32 ii=0; ii<m_artefact_count; ++ii) { float fProbability = randF(1.f); float fSum = 0.f; for (u16 p=0; p<n; ++p) { fSum += m_weights[p].second; if (fSum > fProbability) break; } if (p < n) { CSE_Abstract *l_tpSE_Abstract = alife().spawn_item(*m_weights[p].first,position(),m_tNodeID,m_tGraphID,0xffff); R_ASSERT3 (l_tpSE_Abstract,"Can't spawn artefact ",*m_weights[p].first); CSE_ALifeDynamicObject *i = smart_cast<CSE_ALifeDynamicObject*>(l_tpSE_Abstract); R_ASSERT2 (i,"Non-ALife object in the 'game.spawn'"); i->m_tSpawnID = m_tSpawnID; i->m_bALifeControl = true; ai().alife().spawns().assign_artefact_position(this,i); Fvector t = i->o_Position ; u32 p = i->m_tNodeID ; float q = i->m_fDistance ; alife().graph().change(i,m_tGraphID,i->m_tGraphID); i->o_Position = t; i->m_tNodeID = p; i->m_fDistance = q; CSE_ALifeItemArtefact *l_tpALifeItemArtefact = smart_cast<CSE_ALifeItemArtefact*>(i); R_ASSERT2 (l_tpALifeItemArtefact,"Anomalous zone can't generate non-artefact objects since they don't have an 'anomaly property'!"); l_tpALifeItemArtefact->m_fAnomalyValue = m_maxPower*(1.f - i->o_Position.distance_to(o_Position)/m_offline_interactive_radius); } } Поделиться этим сообщением Ссылка на сообщение
AndreySol 215 Опубликовано 17 Декабря 2017 2 часа назад, nego сказал: Как раз фразы 0, 01, 02 читаются, а после вылет Ну так попробуй заменить другими номерами - вообще-то незначащие ноли не стоит использовать... Поделиться этим сообщением Ссылка на сообщение
AndreySol 215 Опубликовано 13 Января 2018 (изменено) 3 часа назад, nasar75 сказал: stretch="1" - фиксированный размер картинки Вообще-то это указание движку "вписать" картинку по заданным координатам. Изменено 13 Января 2018 пользователем AndreySol Поделиться этим сообщением Ссылка на сообщение
AndreySol 215 Опубликовано 28 Января 2018 для Lanta87 по поводу не правильного отображения меток аномалий - я то-же с этой проблемой столкнулся, но решение нашел только начав ковыряться в исходниках движка. Т.е. поможет только движковая правка этого косяка... 1 Поделиться этим сообщением Ссылка на сообщение
AndreySol 215 Опубликовано 10 Марта 2018 В 08.03.2018 в 19:21, Ring-a-ding сказал: Но по аналогии сделать то же с другими локациями не выходит. Что именно не выходит ? Ты хоть расскажи, что ты пытался делать... Поделиться этим сообщением Ссылка на сообщение
AndreySol 215 Опубликовано 10 Марта 2018 3 часа назад, Ring-a-ding сказал: тот, кто знает, о чём речь, поймёт. Наверное разрабы NLC7 ? На этом сайте есть персональный раздел NLC, ходи туда, спроси там... 1 Поделиться этим сообщением Ссылка на сообщение
AndreySol 215 Опубликовано 30 Марта 2018 22 часа назад, Mutantt сказал: Если делаю так .... то вылетает с логом attempt to call method 'section' (a nil value) А если так .... то объекты не удаляются. В первом фрагменте кода вылет гарантирован, т.к. ф-ция object(...) класса alife_simulator возвращает серверный объект, у которого нет метода section(). Второй фрагмент вполне рабочий, а почему объекты не удаляются - разбирайся. Только ты знаешь, где у тебя это удаление вызывается... Поделиться этим сообщением Ссылка на сообщение
AndreySol 215 Опубликовано 14 Апреля 2018 2 часа назад, BFG сказал: Затем с НИ удалить по номеру и ЭТО уйдёт в оффлайн. Когда надо, можно вывести ЭТО в онлайн по этому же номеру. Эмм..., можно точнее, что означает "удалить... и ЭТО уйдет в оффлайн" ? Если именно удалить(единственной для этого движковой ф-цией release), то никакого оффлайна не будет, т.к. объекта не будет. Может имелась в виду работа с флагами flSwitchOnline\flSwitchOffline ? 1 Поделиться этим сообщением Ссылка на сообщение
AndreySol 215 Опубликовано 14 Апреля 2018 1 час назад, AndrewMor сказал: Полагаю, именно УДАЛИТЬ. А в нужный момент спавнить по story_id. Ну тогда уж проще будет использовать вариант create(...) с указанием номера секции из all.spawn, раз уж все равно используем all.spawn. Поделиться этим сообщением Ссылка на сообщение
AndreySol 215 Опубликовано 19 Мая 2018 3 минуты назад, dPlayer сказал: После закрытия диалога он стоит, пока ГГ не отойдёт от него. Ну так его, похоже, схема диалога с ГГ держит. Надо пробовать добавить сюда on_info = {+info} walker@start2 %=break_dialog% вызов ф-ции, в которой принудительно вырубать диалог. Сама ф-ция: function break_dialog(first_speaker, second_speaker, id) first_speaker:stop_talk() second_speaker:stop_talk() end Поделиться этим сообщением Ссылка на сообщение
AndreySol 215 Опубликовано 19 Мая 2018 52 минуты назад, AndrewMor сказал: Дело в чем-то другом. Тогда может быть какая-нибудь дефолтная схема meet... Поделиться этим сообщением Ссылка на сообщение
AndreySol 215 Опубликовано 24 Мая 2018 6 часов назад, dPlayer сказал: level.map_add_object_spot Эта ф-ция ставит метку на клиентский объект, по этому метка пропадает при сэйв\лоад. Используй level.map_add_object_spot_ser. 1 1 Поделиться этим сообщением Ссылка на сообщение