*Shoker* 322 Опубликовано 7 Января 2012 death_generic не используется для монстров. Пропадает любая вещь, пришлось сперва спавнить её на земле а потом в инвентарь переносить, тогда уже нормально. Можно просто Shoker, форум АМК съел моё старое имя и не хочет отдавать о_О Мастер аномалий на свою заднюю точку. Поделиться этим сообщением Ссылка на сообщение
*Shoker* 322 Опубликовано 8 Января 2012 > ! Unknown command: Обозначает что введенеа неверная консольная команда (у тебя ж в лог выводится, вот игра и воспринимает каждый текст как команду коносли, ничего страшного) > nil говорит о том, что сообщение, которое ты выводил в консоль = nil, тоесть его попросту нету. Можно просто Shoker, форум АМК съел моё старое имя и не хочет отдавать о_О Мастер аномалий на свою заднюю точку. Поделиться этим сообщением Ссылка на сообщение
*Shoker* 322 Опубликовано 9 Января 2012 (изменено) KD87 Возможно мои данные устарели, т.к конкретно с присовением story_id через нет-пакет я ещё в 2008 что то делать пытался, но если мне не изменяет память, если создать объект и приписать ему story_id, то потребуется операция save\load чтобы игра его правильно засчитала. Возможно я ошибаюсь, т.к тогда мало что по этому поводу знал. А что именно делал тогда уже не помню. ziStam Смысл тебе вообще создавать свой класс? Все серьёзные классы игровых объектов описаны в движке, и создав свой класс CDemon ты по сути получишь старый класс с другим именем (в данном случае ты просто скопируешь все свойства класса CCat). Максимум что ты можешь попробовать сделать это расширить функционал класса через скрипты. Но набор методов там довольно скудный и их можно реализовать без всяких классов и прочего. Тоесть твоя затея не несёт никакого смысла кроме как просто дать твоему монстру другой класс который по сути будет отличаться от старого одним лишь именем. Изменено 9 Января 2012 пользователем *Shoker* Можно просто Shoker, форум АМК съел моё старое имя и не хочет отдавать о_О Мастер аномалий на свою заднюю точку. Поделиться этим сообщением Ссылка на сообщение
*Shoker* 322 Опубликовано 10 Января 2012 (изменено) Artos Я конечно понимаю что это может дать определённые преимущества. Но зная ziSteam могу сказать что ему пока надо совсем не это, и уровень у него ещё совсем не тот, чтобы такими тонкостями заниматься, ему сейчас класс нужен совсем не для этого. Он хочет создать летающего монстра создав свой класс, но проблема в том, что, как я уже сказал, классы монстров зашиты в движок, и все освновные функции (их движение, анимации, атаки) зашиты в движке. (я утирую, так что не надо к словам придираться) ziStam Тоесть создав новый класс ты лишь можешь взять за основу существующий. В движке CDemon-а НЕ СУЩЕСТВУЕТ. И в движок ты его НЕ ДОБАВИШЬ. Ты можешь лишь сделать свой класс на основе существующего, что для тебя никакой выгоды в данный момент не несёт. А в движке из летающих монстров разве что Ворона, а она кроме как летать ничего не умеет. Единственное что я тебе могу посоветовать - делать Демона на классе Снорка. Он умеет прыгать, что можно анимацией переделать на полёт. И будет твой демон (из Метро я полагаю) как бэ по земле ползать да "летать" (делать большие прыжки) при виже противника. Это лучшее что ты сможешь сделать со своей идеей. Всё что тебе надо, это подстроить модель Демона на кости и снорка (я тут тонкостей уже не знаю, это в другую тему) И никакой новый класс не нужен. Artos: Если экспериментируешь с новым классом то, совет: не добавлять свой clsid напрямую в таблицы, а добавлять после проверки наличия его, т.е. типа: Совет полезный, но ты так можешь его запутать, создаст что нить, вылета не будет но и работать не будет, вот и будет гадать. По крайнем мере такое (имхо) стоит делать уже после тестирования объекта. Подредактировал пост. В дальнейшем, адресуя слова одному - не забывай переключаться в посте на другого ... --/Artos Изменено 10 Января 2012 пользователем Artos Можно просто Shoker, форум АМК съел моё старое имя и не хочет отдавать о_О Мастер аномалий на свою заднюю точку. Поделиться этим сообщением Ссылка на сообщение
*Shoker* 322 Опубликовано 13 Января 2012 (изменено) Кстати говоря. В ЗП по умолчанию аномалии никак не реагируют на сталкеров, это движково или как то регулируется в конфигах\скриптах? И если да, можно ли скриптово включать\выключать эту реакцию? (ЗП\ЧН) Artos Хотел спросить тебя по поводу твоей схемы net-пакетов. У меня возможно не самая новая версия (как раз та, где ты первый раз ввёл универсальную функцию, которая сама определяет тип объекта) но там ты в пакетах объектов помимо зашитых свойств также читаешь\записываешь св-ва объекта из скриптов (где функции save\load во всяких se_stalker.script и тому подобных) Это вызывает свои трудности если например в скрипт (se_stalker) добавляется новое св-во которое тоже записывается в пакет объекта (если помнишь я ещё с тобой это обсуждал, у меня как раз из за этого св-ва пакеты не разбирались корректно), то приходится менять и скрипт разбора net-пакета. Можно ли (и как правильно) заменить чтение вот таких скриптовых кусков пакета на просто запись\чтение остатка или типа того? Ведь доступ к этим данным можно получить напрямую в св-вах объекта, не трогая его net-пакет. Изменено 13 Января 2012 пользователем *Shoker* Можно просто Shoker, форум АМК съел моё старое имя и не хочет отдавать о_О Мастер аномалий на свою заднюю точку. Поделиться этим сообщением Ссылка на сообщение
*Shoker* 322 Опубликовано 15 Января 2012 (изменено) Как узнать под какой скриптовой схемой сейчас находится НПС? И как расшифровать полученную информация. Ленимся листать топик? #3637 --/Artos Изменено 15 Января 2012 пользователем Artos Можно просто Shoker, форум АМК съел моё старое имя и не хочет отдавать о_О Мастер аномалий на свою заднюю точку. Поделиться этим сообщением Ссылка на сообщение
*Shoker* 322 Опубликовано 18 Января 2012 (изменено) rusMAFIA Здесь всё зависет от твоих целей, если тебе надо просто заспавнить НПС, то спавн скриптами никак не будет отличаться от спавна через all.spawn. Тебе надо будет просто один раз вызвать функцию, которая создаст твоего НПС. Главное выбрать правильное для этого место в скриптах,чтобы не пришлось делать лишние проверки. Как вариант в скрипте bind_stalker.script есть функция function actor_binder:net_spawn(data) Которая вызывается каждый раз при загрузке сохранения, достаточно где нить в самом конце функции (это важно) вставить проверку вида: if not db.actor:has_info("mod_new_game") then -- спавнишь своих нпс -- ------------------------------ db.actor:give_info_portion("mod_new_game") end Другое дело что all.spawn представляет больше возможностей для тонкой настройки НПС, в частности можно укзаать им направление взгляда, story_id, name и прочие параметры, которые тебе могут пригодится в частности если решишь делать квесты. Это всё тоже можно обойти через скрипты, но тебе это явно пока не по зубам. Написанное выше актуально для ЧН/ТЧ. В ЗП НПС и так скриптами появляются. Изменено 18 Января 2012 пользователем *Shoker* Можно просто Shoker, форум АМК съел моё старое имя и не хочет отдавать о_О Мастер аномалий на свою заднюю точку. Поделиться этим сообщением Ссылка на сообщение
*Shoker* 322 Опубликовано 24 Января 2012 ferrari314 1) Тут в коде опечатка, после actor_position не точка а запятая. 2) actor_position, actor_leve_id, actor_global_id и actor_id это переменные, которых у тебя наверно нету, замени каждую alife() строчку на: alife():create("kolbasa", db.actor:position(), db.actor:level_vertex_id(), db.actor:game_vertex_id(), db.actor:id()) С водкой точно также. 3) Колбек на юзанье предмета по аналогии надо ещё выключать из net_destroy(), но думаю на текущую ошибку это не влияет. Попробуй сперва это, а потом если что продолжим. И удаление болта, как посоветовал Unnamed Black Wolf будет происходить только при загрузке игры (и сохранений), так что тоже учти это. Можно просто Shoker, форум АМК съел моё старое имя и не хочет отдавать о_О Мастер аномалий на свою заднюю точку. Поделиться этим сообщением Ссылка на сообщение
*Shoker* 322 Опубликовано 29 Января 2012 (изменено) ХЕМУЛЬ36RUS Гляннул bind_stalker от ЗП и не нашёл там такого кода. Более того, sleep_manager там не существует. За сон отвечает совсем другой скрипт. (разве что ты адаптируешь мод, который переносит сон из ЗП на ТЧ, тогда это другое дело) Что касается твоей ошибки то Artos уже ответил. Дополню только то, что лучше будет не просто где то выше ставить, а открыть скрипт, откуда ты это копировал и посмотреть где находится post_time и туда же его вставить у себя. Изменено 29 Января 2012 пользователем *Shoker* Можно просто Shoker, форум АМК съел моё старое имя и не хочет отдавать о_О Мастер аномалий на свою заднюю точку. Поделиться этим сообщением Ссылка на сообщение
*Shoker* 322 Опубликовано 2 Февраля 2012 Существует ли способ скриптово поменять предмету из ивненторя его name или description? Ну вообщем имя и описание. Можно просто Shoker, форум АМК съел моё старое имя и не хочет отдавать о_О Мастер аномалий на свою заднюю точку. Поделиться этим сообщением Ссылка на сообщение
*Shoker* 322 Опубликовано 2 Февраля 2012 Капрал Хикс Тогда мне придётся продублировать в игре всё оружие и всю броню Можно просто Shoker, форум АМК съел моё старое имя и не хочет отдавать о_О Мастер аномалий на свою заднюю точку. Поделиться этим сообщением Ссылка на сообщение
*Shoker* 322 Опубликовано 2 Февраля 2012 (изменено) Artos Может мне ещё скриншоты прикладывать и выделять там красным для непонятливых? Стоит простой вопрос - можно ли изменить инвентарному предмету его имя и описание. А ты тут какие то статьи не пойми про что пишешь. Специально для этого дописал name и descriotion в своём посте, какой description у имени персонажа или профиля может быть? malandrinus К сожалению цель не стоит таких усилий. Раз нет штатного способа значит нет, спс. за разьяснение. Изменено 2 Февраля 2012 пользователем *Shoker* Можно просто Shoker, форум АМК съел моё старое имя и не хочет отдавать о_О Мастер аномалий на свою заднюю точку. Поделиться этим сообщением Ссылка на сообщение
*Shoker* 322 Опубликовано 3 Февраля 2012 (изменено) Мне всего то надо помечать определённые предметы каким либо образом, чтобы игрок знал что этот предмет отличается от другого такого же. Для этого хотел как вариант дописывать в имя предмета какой то знак, имя соответственно везде отображалось бы по другому, и это не тока к оружию относится. Вариант с правкой движка этого не стоит, тем более я работаю под ЧН. Тогда уж попробую через нет-пакеты дописывать предмету апгрейд с нужным мне текстом, всё лучше чем ничего. У меня правда есть перехватчик от alpet-а но я не разобрался пока как там работать с памятью. Изменено 3 Февраля 2012 пользователем *Shoker* Можно просто Shoker, форум АМК съел моё старое имя и не хочет отдавать о_О Мастер аномалий на свою заднюю точку. Поделиться этим сообщением Ссылка на сообщение
*Shoker* 322 Опубликовано 3 Февраля 2012 Ты пишешь 100500 там где должна стоят "in" Думаю что 100500 должна стоять после "in", и то это тока в ЗП по моему работает (ЗЫ - 100500 предметов по моему это слишком) Можно просто Shoker, форум АМК съел моё старое имя и не хочет отдавать о_О Мастер аномалий на свою заднюю точку. Поделиться этим сообщением Ссылка на сообщение
*Shoker* 322 Опубликовано 4 Февраля 2012 Поменяй местами "in" и 100500 В ЗП вроде сработает. Можно просто Shoker, форум АМК съел моё старое имя и не хочет отдавать о_О Мастер аномалий на свою заднюю точку. Поделиться этим сообщением Ссылка на сообщение
*Shoker* 322 Опубликовано 6 Февраля 2012 (изменено) Есть ли в игре штатная функция, которая отправляла бы НПС в оффлайн, но при этом, если он находился в зоне действия онлайн-элайфа - он возвращался обратно без посторонних действий скриптера (без таймеров, проверок на расстояние и прочее, только движковые методы). Тоесть это должен быть не принудительный флаг перевода в оффлайн\онлайн. Мне просто надо симулировать движковые (не ручные) вызовы switch_online\offline из se_stalker.script Если такой функции нету, то как правильно собрать её самому. У меня у НПС стоит принудительный флаг нахождения в онлайне, и когда он отключается, мне надо чтобы у этого НПС вызвался либо switch_offline метод (с ним проблем нету, если НПС был за радиусом действия онлайна, он и так перейдёт в оффлайн), либо switch_online (а вот с ним у меня проблема, ибо НПС уже в онлайне, а мне необходимо вызвать эту функцию) Зарание спасибо. ___ sim:set_switch_online (id, true) sim:set_switch_offline (id, true) Если я так сделаю, то тогда НПС будет сам переходить в онлайн\оффлайн в зависимости от расстояния от игрока как по дефолту? Вопрос наверно глупый, просто раньше не работал с этим. Я тогда буду его принудительно в оффлайн тащить, а дальше его движок вытаскивать обратно при необходимости будет, если я правильно значения этих функций понял. Изменено 6 Февраля 2012 пользователем *Shoker* Можно просто Shoker, форум АМК съел моё старое имя и не хочет отдавать о_О Мастер аномалий на свою заднюю точку. Поделиться этим сообщением Ссылка на сообщение
*Shoker* 322 Опубликовано 6 Февраля 2012 (изменено) Спасибо, проглядел, выручил.. Ещё и add_call используется, хоть буду знать как с ним работать, совсем забыл про него. Вот только если объект находится вне зоны радиуса онлайна, но в данный момент принудительно онлайн, как тогда поведёт себя скрипт? Я так понял его кинет в оффлайн, потом в онлайн, а потом его игра обратно в оффлайн затащит? Изменено 6 Февраля 2012 пользователем *Shoker* Можно просто Shoker, форум АМК съел моё старое имя и не хочет отдавать о_О Мастер аномалий на свою заднюю точку. Поделиться этим сообщением Ссылка на сообщение
*Shoker* 322 Опубликовано 8 Февраля 2012 (изменено) В alife.ltx помима параметра switch_distance есть параметр switch_factor, как правильно, используя два этих параметра, узнать находится ли НПС в зоне переключения оффлайн\онлайн или нет. Или может быть есть готовая функция определения, нужно ли НПС переключится. И вот ещё, можно ли перевести НПС принудительно в оффлайн, но чтобы он сам вернулся в онлайн, если попадал под радиус действия switch_zone, скрипт что дал Artos мне не совсем подошёл, т.к он возвращает НПС обратно в онлайн. Проблема в том, что я работаю не с одним НПС, а со сквадом, и в ЧН, а там они в оригинале вообще в оффлайн до смены локации не уходят, если хоть раз были в онлайне. Я это частично пофиксил, но осталась проблема с флагом того, что сквад онлайн\оффлайн. Он ставится только из колбеков на switch_online\offline Мне сейчас надо либо научить их переходу в оффлайн, и самостоятельно в онлайн при необходимости, либо зарание делать проверку на расстояние, и вручную менять флаги. _____ Нашёл в se_stalker методы can_switch_offline\can_switch_online, странно что раньше не заметил, попробую их. _____ Кажется управился. Изменено 8 Февраля 2012 пользователем *Shoker* Можно просто Shoker, форум АМК съел моё старое имя и не хочет отдавать о_О Мастер аномалий на свою заднюю точку. Поделиться этим сообщением Ссылка на сообщение
*Shoker* 322 Опубликовано 9 Февраля 2012 Оказалось can_switch_-ы не делают проверку на расстояние =\ Немного покапавшись подсчитал что переход происходит так: Offline: > SD + (SD * SF) Online: < SD - (SD * SF) Тоесть если SD = 10, а SF = 0.2, то в оффлайн персонаж перейдёт на расстоянии 12 метров от игрока, а в онлайн около 8 метров. Можно просто Shoker, форум АМК съел моё старое имя и не хочет отдавать о_О Мастер аномалий на свою заднюю точку. Поделиться этим сообщением Ссылка на сообщение
*Shoker* 322 Опубликовано 9 Февраля 2012 (изменено) Так в том то и дело, что мне надо чтобы неписи сами в онлайн возвращались, потому что он у меня изначально находится под флагом "всегда онлайн", и в момент использования твоей функции он может быть как в зоне действия онлайна, так и в зоне действия оффлайна (switch_distance) Ежели я использую твою функцию, непись всегда в онлайн возвращается, а дальше из за особенностей ЧН-овской войны группировок, ему опять ставится флаг "только онлайн" И кстати, если судить логически, разве: alife():set_switch_online(id, true) alife():set_switch_offline(id, true) Не должен делать примерно то, о чём я говорю? Тоесть делать так, чтобы НПС переходил в онлайн\оффлайн в зависимости от расстояния между ним и игроком. Пока проблему решил подсчётом расстояния от игрока до НПС по формуле выше. Но в идеале конечно хочется 100%-ый вариант. Изменено 9 Февраля 2012 пользователем *Shoker* Можно просто Shoker, форум АМК съел моё старое имя и не хочет отдавать о_О Мастер аномалий на свою заднюю точку. Поделиться этим сообщением Ссылка на сообщение