Показать сообщение отдельно
Старый 28.01.2005, 00:17   #129
B_Wolf

AGFC
Гость
 
Сообщений: n/a

По умолчанию Re: Скриптинг в Готике

Vam, еще раз великий респект тебе, за "Уроки скриптологии", в особенности за статью "Уроки скриптологии (Ответ #115)" - Тема первая: Глобальные константы.

Итак просмотрев данный урок, я заметил очень интересные...
// Индексы атрибутов НПС
const int ATR_HITPOINTS * * * * * * * * *= 0; //Текущая жизнь
const int ATR_HITPOINTS_MAX * * * * * *= 1; //Макс. жизнь
const int ATR_MANA * * * * * * * * * * * *= 2; //Текущая мана
const int ATR_MANA_MAX * * * * * * * * *= 3; //Макс. мана
const int ATR_STRENGTH * * * * * * * * *= 4; //Сила
const int ATR_DEXTERITY * * * * * * * * *= 5; //Ловкость
const int ATR_REGENERATEHP * * * * * *= 6; //Регенерация жизни в секунду
const int ATR_REGENERATEMANA * * *= 7; //Регенерация маны в секунду

И тут на меня нашло озарение! Оказывается все совершенное просто!

Через пол часа я изготовил следующий предмет:

instance ITAM_HEALTHBRINGER(C_Item)
{
* * *name = "Милость Аданоса";
* * *mainflag = ITEM_KAT_MAGIC;
* * *flags = ITEM_MISSION | ITEM_AMULET;
* * *value = 0;
* * *visual = "ItAm_Hp_01.3ds";
* * *material = MAT_STONE;
* * *
* * *on_equip * * *= * * *Equip_ITMI_HEALTHBRINGER;
* * *on_unequip * * *= * * *UnEquip_ITMI_HEALTHBRINGER;
* * *
* * *wear = WEAR_EFFECT;
* * *effect = "SPELLFX_ITEMGLIMMER";
* * *description = name;
* * *text[0] = "Милость Аданоса";
* * *text[1] = "будет оберегать тебя в бою.";
* * *inv_zbias = INVCAM_ENTF_AMULETTE_STANDARD;
};

func void Equip_ITMI_HEALTHBRINGER ()
{
* * *self.attribute[ATR_REGENERATEHP] = 1;
};

func void UnEquip_ITMI_HEALTHBRINGER ()
{
* * *self.attribute[ATR_REGENERATEHP] = 0;
};

Амулет регенерации жизни...
И не нужно никаких громоздкий скриптов с летающим подзарядником, или проверки присутствия амулета у НПЦ (http://forums.gothic.ag/showthread.php?&s=35&t=1105030050&start=75) :)

Амулет просто работает :)

Далее вставляем код амулета в IT_Amulette.d, компилируем...
И вызываем любыми доступными средствами, например через MARVIN.
Insert ITAM_HEALTHBRINGER
Ответить с цитированием