Уважаемые гости и новички, приветствуем Вас на нашем форуме
Здесь вы можете найти ответы практически на все свои вопросы о серии игр «Готика» (в том числе различных модах на нее), «Ведьмак», «Ризен», «Древние свитки», «Эра дракона» и о многих других играх. Можете также узнать свежие новости о разработке новых проектов, восхититься творчеством наших форумчан, либо самим показать, что вы умеете. Ну и наконец, можете обсудить общие увлечения или просто весело пообщаться с посетителями «Таверны».
Чтобы получить возможность писать на форуме, оставьте сообщение в этой теме.
Удачи!
Друзья, доброго времени суток! Спешите принять участие в обсуждении работ на конкурсе квент 2025!
Ждем именно вас!
Вы используете устаревший браузер. Этот и другие сайты могут отображаться в нём некорректно. Вам необходимо обновить браузер или попробовать использовать другой.
Не, это неправильно. Правильную схему посмотри у сундука или наковальни, например. Там должны присутствовать анимки T_XXX_Stand_2_S0, S_XXX_S0, T_XXX_S0_2_S1, S_XXX_S1, T_XXX_S1_2_S0 и T_XXX_S0_2_Stand.
Не, это неправильно. Правильную схему посмотри у сундука или наковальни, например. Там должны присутствовать анимки T_XXX_Stand_2_S0, S_XXX_S0, T_XXX_S0_2_S1, S_XXX_S1, T_XXX_S1_2_S0 и T_XXX_S0_2_Stand.
Не, это неправильно. Правильную схему посмотри у сундука или наковальни, например. Там должны присутствовать анимки T_XXX_Stand_2_S0, S_XXX_S0, T_XXX_S0_2_S1, S_XXX_S1, T_XXX_S1_2_S0 и T_XXX_S0_2_Stand.
Можно поподробнее, как это работает?
1) test(PC_Hero)
test - это специальное (обязательное) имя функции, или можно создавать с любым именем?
Для чего именно PC_Hero в качестве аргумента?
2) instance PC_Hero(Npc_Default)
Я так понимаю здесь происходит переопределение шаблона PC_Hero?
3) PC_Hero_Old();
Я так понимаю эта строка вызывает все содержимое оригинальной instance PC_Hero(Npc_Default)?
Почему именно такая запись, без аргумента и с приставкой _Old?
test(X) проверяет, существует ли X (может быть объектом, переменной или константой) и останавливает выполнение, если не существует.
Можно не использовать и ничего не проверять, но я всегда проверяю (причина далее по тексту).
Да, и таким образом создает копию. Затем можно точечно что-то поменять: в данном случае attribute 1 и 0.
Если X не существует, то вызов X_Old приведет к вылету.
Если не использовать X_Old, то X будет пустым (или только с теми свойствами, которые будут указаны).
//оригинальный PC_Hero, у которого изменено имя
instance PC_Hero(Npc_Default)
{
PC_Hero_Old();
name[0] = "Вася";
};
//пустой PC_Hero, у которого будет только имя Вася
instance PC_Hero(Npc_Default)
{
name[0] = "Вася";
};
//PC_Hero со всеми свойствами Бладвина
instance PC_Hero(Npc_Default)
{
BDT_1085_Addon_Bloodwyn();
};
//вылет, потому что BDT_666_Vasya не существует
instance PC_Hero(Npc_Default)
{
BDT_666_Vasya();
};
//вылет, потому что PC_MyCoolHero не существует
instance PC_MyCoolHero(Npc_Default)
{
PC_MyCoolHero_Old();
name[0] = "Вася";
};
D36, Спасибо за развернутый ответ.
Хотел уточнить: PC_Hero, как и все, что начинается с приставки instance, - это все-же объект?
Вопрос от того, что в игре существует множество объектов с одинаковой инстанцией. Например Волк, или Какая-то-трава.
Так что конструкцию instance воспринимал как описание класса, но не сам объект.
Ну и пусть. Все они являются уникальными объектами.
Daedalus:
class C_NPC
{
//класс
};
prototype Npc_Default(C_NPC)
{
//прототип класса C_NPC (ещё не объект)
};
instance PC_Hero(Npc_Default)
{
//объект класса C_NPC со свойствами прототипа
};
Daedalus:
class C_ITEM
{
//класс
};
instance ItMi_Flask(C_ITEM)
{
//объект класса C_ITEM
};
Путаете друг друга. Слово "объект" тут просто часть контекста. В данном случае речь про структуру текста скрипта, где под объектом она понимает все, что может иметь собственное имя (уникальный идентификатор). Это: const, var, func, prototype, instance, class.
К тому, что ты видишь и можешь "пощупать" в игре (волки травы), это не имеет никакого отношения. Это тоже объекты, но часть игровой системы, например.
На данном сайте используются файлы cookie, чтобы персонализировать контент и сохранить Ваш вход в систему, если Вы зарегистрируетесь.
Продолжая использовать этот сайт, Вы соглашаетесь на использование наших файлов cookie.