Уважаемые гости и новички, приветствуем Вас на нашем форуме
Здесь вы можете найти ответы практически на все свои вопросы о серии игр «Готика» (в том числе различных модах на нее), «Ведьмак», «Ризен», «Древние свитки», «Эра дракона» и о многих других играх. Можете также узнать свежие новости о разработке новых проектов, восхититься творчеством наших форумчан, либо самим показать, что вы умеете. Ну и наконец, можете обсудить общие увлечения или просто весело пообщаться с посетителями «Таверны».
Чтобы получить возможность писать на форуме, оставьте сообщение в этой теме.
Удачи!
Друзья, доброго времени суток! Спешите принять участие в конкурсе "Таинственные миры" 2025!
Ждем именно вас!
Вы используете устаревший браузер. Этот и другие сайты могут отображаться в нём некорректно. Вам необходимо обновить браузер или попробовать использовать другой.
для описание любого итема можно использовать штатные функции.
Npc_GetInvItem(self,ItRu_Icebolt);
Hlp_PrintConsole(Str_Format("item desc: %s", item.description));
тут речь шла о замене штатной информации, которая выводится на экран, при активации спела.
Xeдин, нето :)
Slavemaster, спасибо! как раз то, что доктор прописал! :)
func string Spell_GetName(var int spellID, var C_ITEM spellItem)
{
var string msg;
if spellItem.FLAGS & ITEM_MULTI // это свиток
{
msg = Str_Format("%s (%s)",spellItem.description,Name_MageScroll)...
заклинания вызова
в прототипе я использую поле ID для "маркировки" всех новых заклинаний вызова.
в инстанции свитка прописываем кого вызывать и в каком кол-ве
const string NAME_SPL_SumWolfPack = "Вызов стаи волков";
instance ItSc_SumWolfPack(PRT_ItSc_Sum)
{
description =...
заклинание скорости
использование Npc_GetSpellItem так же позволяет повесить и новые "бафы" / "дебафы" на имеющиеся спелы. Например заклинание "скорость". Нового тут ничего нет, всё тоже самое. Пример кода:
INSTANCE ItRu_Speed(C_Item)
{
ItRu_Fear();
cond_atr[2] =...
Slavemaster есть еще такой нюанс: в данный момент "название спелла"(текстовое сообщение при активации спела) берётся из массива TXT_SPELLS. Можно ли сделать так что бы "название спела" бралось из item.description?
а еще лучше что бы вызывалась какая то func string s_txt_spells_name и я мог...
руны телепортации
в начале делаем прототип руны телепортации. в прототипе я использую поле ID для "маркировки" всех новых рун телепортации. так же я добавляю требование к мане cond_atr[2] для руны. разработчики часто забывают про этот нюанс.
в инстанции руны указываем мир и waypoint куда...
свитки трансформации
перед созданием новых свитков трансформации необходимо создать для них прототип. в этот прототип я добавлю id = ItSc_ID_Trf что бы их "сгруппировать" для будущих проверок.
сама инстанция свитка будет содержать информацию о кол-ве маны необходимой для каста, цене...
В игре существует несколько типов заклинания которые фактически являясь одинаковыми используют разные спеллы:
заклинания лечения
заклинания телепортации
заклинания превращения
заклинания вызова
func c_item Npc_GetSpellItem (var c_npc self) позволит получить данные напрямую из руны/свитка...
в hp для теста записал.
// ------ TrfAll ------
func int Spell_Logic_TrfAll (var int manaInvested)
{
var c_item itm; itm = Npc_GetSpellItem(self);
if manaInvested == 0
{
if (self.attribute[ATR_MANA] < itm.cond_value[2])
{
return SPL_SENDSTOP;
}...
Slavemaster, спасибо! работает
func int SPELL_PROCESSMANA(var int MANAINVESTED)
{
var c_item itm; itm = Npc_GetSpellItem(SELF);
Hlp_PrintConsole(Str_Format("SPELL_PROCESSMANA itm.name = %s",itm.name));
пойду осмыслять глубину, глубин :-D
а вот пришло время воспользоваться советом...
у меня есть чёткое ощущение что когда речь идёт о движке, наши с тобой суммарные знания стремятся к нулю. а поиском я тоже умею пользоваться ;-)
это уже пройденный этап :) герой выбрал руну, а юзать её будет потом.
***
думаю надо просто просить Slavemaster сделать патч на юнион который...
на скриптах я могу получить все руны с флагом активный и проверить спелл прописанный в них с тем спелом что сейчас использует герой. но это будет работать корректно только тогда, когда у героя есть одна активная руна. если же у героя несколько "активных" рун с одним и тем же спелом, то среди...
к чему это? мой вопрос чётко сформулирован ;-) и он в топики про вопросы по скриптингу.
вот что то похожее
0x00680270 public: class oCItem * __thiscall oCNpc::GetSpellItem(int)
например. используем одни спелл для трансформации. прописываем общий спелл логик и так далее. а информацию в кого превращаться герою , берем напрямую из инстанции руны.
тоже самое с телепортами. мир и место куда телепортироваться можно хранить в самой руне.
На данном сайте используются файлы cookie, чтобы персонализировать контент и сохранить Ваш вход в систему, если Вы зарегистрируетесь.
Продолжая использовать этот сайт, Вы соглашаетесь на использование наших файлов cookie.