Показать сообщение отдельно
Старый 06.06.2005, 12:00   #191
Vam

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

По умолчанию Re: Уроки скриптологии

* *5. Пища аддона.

Файл IT_Addon_Food.d

//*************************
// Пища аддона
//*************************

// Белый ром
const int Value_Rum * * * * * * = 30; * * * // стоимость бутылки
const int Mana_Rum * * * * * * *= 10; * * * // бонус маны
// Моряцкий грог
const int Value_Grog * * * * * *= 10; * * * // стоимость бутылки
const int HP_Grog * * * * * * * = 1; * * * *// бонус жизни
// Быстрая селедка
const int Value_SchnellerHering = 30; * * * // стоимость
// Молоток Лу
const int Value_LousHammer * * *= 30; * * * // стоимость
const int Mana_LousHammer * * * = 1; * * * *// бонус маны
// Двойной Молоток Лу
const int Value_SchlafHammer * *= 60; * * * // стоимость
// Feuergeschnetzeltes (Примечание: название не переведено)
const int Value_FireStew * * * *= 180; * * *// стоимость
const int STR_FireStew * * * * *= 1; * * * *// бонус силы
const int HP_FireStew * * * * * = 5; * * * *// бонус жизни
// Мясной суп
const int STR_MeatSoup * * * * *= 1; * * * *// бонус силы
// Устрица
const int Value_Shellflesh * * *= 60; * * * // стоимость
const int HP_Shellflesh * * * * = 20; * * * // бонус жизни

//--------------------------------------
// Устрица
//--------------------------------------
INSTANCE ItFo_Addon_Shellflesh(C_Item)
{
* *name * * * * * *= "Устрица";
* *mainflag * * * *= ITEM_KAT_FOOD; * * * * * * * *// продукт питания
* *flags * * * * * = ITEM_MULTI; * * * * * * * * * // складируемый
* *value * * * * * = Value_Shellflesh; * * * * * * // 60
* *visual * * * * *= "ItAt_Meatbugflesh.3DS";
* *material * * * *= MAT_LEATHER; * * * * * * * * *// кожа
* *scemeName * * * = "FOODHUGE";
* *on_state[0] * * = Use_Shellflesh; * * * * * * * // использовать
* *description * * = name; * * * * * * * * * * * * // "Устрица"
* *TEXT[0] * * * * = "Сочное мясо устриц";
* *TEXT[1] * * * * = NAME_Bonus_HP; * * * * * * * *// "Прибавка к жизни:"
* *COUNT[1] * * * *= HP_Shellflesh; * * * * * * * *// 20
* *TEXT[2] * * * * = "Наслаждение в сыром виде";
* *TEXT[3] * * * * = "";
* *TEXT[5] * * * * = NAME_Value; * * * * * * * * * // "Ценность:"
* *COUNT[5] * * * *= value; * * * * * * * * * * * *// 60
};

// Использовать
func void Use_Shellflesh()
{
* *// увеличить текущую жизнь
* *Npc_ChangeAttribute(self,ATR_HITPOINTS,HP_Shellfl esh);
};

//--------------------------------------
// Ром
//--------------------------------------
INSTANCE ItFo_Addon_Rum(C_Item)
{
* *name * * * * * *= "Ром";
* *mainflag * * * *= ITEM_KAT_FOOD; * * * * * * * *// продукт питания
* *flags * * * * * = ITEM_MULTI; * * * * * * * * * // складируемый
* *value * * * * * = Value_Rum; * * * * * * * * * *// 30
* *visual * * * * *= "ItMi_Rum_02.3ds";
* *material * * * *= MAT_GLAS; * * * * * * * * * * // стекло
* *on_state[0] * * = UseRum; * * * * * * * * * * * // использовать
* *scemeName * * * = "POTIONFAST";
* *description * * = "Белый ром";
* *TEXT[1] * * * * = NAME_Bonus_Mana; * * * * * * *// Прибавка к мане:
* *COUNT[1] * * * *= Mana_Rum; * * * * * * * * * * // 10
* *TEXT[5] * * * * = NAME_Value; * * * * * * * * * // "Ценность:"
* *COUNT[5] * * * *= Value_Rum; * * * * * * * * * *// 30
};

// Использовать
func void UseRum()
{
* *// увеличить текущую ману
* *Npc_ChangeAttribute(self,ATR_MANA,Mana_Rum);
};

//--------------------------------------
// Грог
//--------------------------------------
INSTANCE ItFo_Addon_Grog(C_Item)
{
* *name * * * * * *= "Грог";
* *mainflag * * * *= ITEM_KAT_FOOD; * * * * * * * *// продукт питания
* *flags * * * * * = ITEM_MULTI; * * * * * * * * * // складируемый
* *value * * * * * = Value_Grog; * * * * * * * * * // 10
* *visual * * * * *= "ItMi_Rum_02.3ds";
* *material * * * *= MAT_GLAS; * * * * * * * * * * // стекло
* *on_state[0] * * = UseGrog; * * * * * * * * * * *// использовать
* *scemeName * * * = "POTIONFAST";
* *description * * = "Настоящий моряцкий грог";
* *TEXT[1] * * * * = NAME_Bonus_HP; * * * * * * * *// "Прибавка к жизни:"
* *COUNT[1] * * * *= HP_Grog; * * * * * * * * * * *// 1
* *TEXT[5] * * * * = NAME_Value; * * * * * * * * * // "Ценность:"
* *COUNT[5] * * * *= Value_Grog; * * * * * * * * * // 10
};

// Использовать
func void UseGrog()
{
* *// увеличить текущую жизнь
* *Npc_ChangeAttribute(self,ATR_HITPOINTS,HP_Grog);
}; *

var int Hammer_Once; * *// флаг первого использования Молотка Лу

//--------------------------------------
// Молоток Лу
//--------------------------------------
INSTANCE ItFo_Addon_LousHammer(C_Item)
{
* *name * * * * * *= "Молоток Лу";
* *mainflag * * * *= ITEM_KAT_FOOD; * * * * * * * *// продукт питания
* *flags * * * * * = ITEM_MULTI; * * * * * * * * * // складируемый
* *value * * * * * = Value_LousHammer; * * * * * * // 30
* *visual * * * * *= "ItMi_Rum_01.3ds";
* *material * * * *= MAT_GLAS; * * * * * * * * * * // стекло
* *on_state[0] * * = UseLouHammer; * * * * * * * * // использовать
* *scemeName * * * = "POTIONFAST";
* *description * * = "Молоток Лу";
* *TEXT[1] * * * * = "Действие * * * * ???"; * * * * * * *
* *TEXT[5] * * * * = NAME_Value; * * * * * * * * * // "Ценность:"
* *COUNT[5] * * * *= Value_LousHammer; * * * * * * // 30
};

// Использовать
func void UseLouHammer()
{
* *// если Молоток Лу ранее не использовался
* *if(Hammer_Once == FALSE)
* *{
* * * *// макс. мана += 1
* * * *B_RaiseAttribute(self,ATR_MANA_MAX,Mana_LousHamme r);
* * * *// установить флаг использования
* * * *Hammer_Once = TRUE;
* *}; *
};

//--------------------------------------
// Двойной молоток
//--------------------------------------
INSTANCE ItFo_Addon_SchlafHammer(C_Item)
{
* *name * * * * * *= "Двойной молоток";
* *mainflag * * * *= ITEM_KAT_FOOD; * * * * * * * *// продукт питания
* *flags * * * * * = ITEM_MULTI; * * * * * * * * * // складируемый
* *value * * * * * = Value_SchlafHammer; * * * * * // 60
* *visual * * * * *= "ItMi_Rum_01.3ds";
* *material * * * *= MAT_GLAS; * * * * * * * * * * // стекло
* *on_state[0] * * = UseSchlafHammer; * * * * * * *// использовать
* *scemeName * * * = "POTIONFAST";
* *description * * = "Двойной молоток";
* *TEXT[1] * * * * = "Утомит самого крепкого пьяницу ...";
* *TEXT[5] * * * * = NAME_Value; * * * * * * * * * // "Ценность:"
* *COUNT[5] * * * *= Value_SchlafHammer; * * * * * // 60
};

// Использовать
func void UseSchlafHammer()
{
* *// если жизнь > 2
* *if(self.attribute[ATR_HITPOINTS] > 2)
* *{
* * * *// уменьшить текущую жизнь в два раза
* * * *self.attribute[ATR_HITPOINTS] = (self.attribute[ATR_HITPOINTS]/2);
* *};
};
* *
//--------------------------------------
// Быстрая селедка
//--------------------------------------
INSTANCE ItFo_Addon_SchnellerHering(C_Item)
{
* *name * * * * * *= "Быстрая селедка";
* *mainflag * * * *= ITEM_KAT_FOOD; * * * * * * * *// продукт питания
* *flags * * * * * = ITEM_MULTI; * * * * * * * * * // складируемый
* *value * * * * * = Value_Schnellerhering; * * * *// 30
* *visual * * * * *= "ItMi_Rum_01.3ds";
* *material * * * *= MAT_GLAS; * * * * * * * * * * // стекло
* *on_state[0] * * = UseSchnellerHering; * * * * * // использовать
* *scemeName * * * = "POTIONFAST";
* *description * * = "Выглядит опасно!";
* *TEXT[1] * * * * = "Действие неизвестно"; * * * * * * * *
* *TEXT[2] * * * * = "Возможны побочные эффекты";
* *TEXT[5] * * * * = NAME_Value; * * * * * * * * * // "Ценность:"
* *COUNT[5] * * * *= Value_SchnellerHering; * * * *// 30
};

// Использовать
func void UseSchnellerHering()
{
* *var C_NPC her;
* *// получить ссылку на ГГ
* *her = Hlp_GetNpc(PC_Hero);
* *// если ГГ
* *if(Hlp_GetInstanceID(self) == Hlp_GetInstanceID(her))
* *{
* * * *// ускорение на 2 минуты
* * * *Mdl_ApplyOverlayMDSTimed(self,"HUMANS_SPRINT.MDS" ,120000);
* *};
* *// ГГ узнал действие напитка
* *Player_KnowsSchnellerHering = TRUE;
}; *

//--------------------------------------
// Перечница
//--------------------------------------
INSTANCE ItFo_Addon_Pfeffer_01(C_Item)
{
* *name * * * * * *= "Перечница";
* *mainflag * * * *= ITEM_KAT_NONE; * * * * * * * *// прочее
* *flags * * * * * = ITEM_MULTI; * * * * * * * * * // складируемый
* *value * * * * * = 100; * * * * * * * * * * * * *// 100
* *visual * * * * *= "ItMi_Pocket.3ds";
* *material * * * *= MAT_LEATHER; * * * * * * * * *// кожа
* *description * * = "Красный слезный перец";
* *TEXT[0] * * * * = "из южных островов";
* *TEXT[1] * * * * = "";
* *TEXT[2] * * * * = "";
* *TEXT[3] * * * * = "VORSICHT SCHARF!"; * * * * * // (Примечание: не переведено)
* *TEXT[4] * * * * = "";
* *TEXT[5] * * * * = NAME_Value; * * * * * * * * * // "Ценность:"
* *COUNT[5] * * * *= value; * * * * * * * * * * * *// 100
};

//--------------------------------------
// Feuergeschnetzeltes (не переведено)
//--------------------------------------
INSTANCE ItFo_Addon_FireStew (C_Item)
{ *
* *name * * * * * *= "Feuergeschnetzeltes";
* *mainflag * * * *= ITEM_KAT_FOOD; * * * * * * * *// продукт питания
* *flags * * * * * = ITEM_MULTI; * * * * * * * * * // складируемый
* *value * * * * * = Value_FireStew; * * * * * * * // 180
* *visual * * * * *= "ItFo_Stew.3ds";
* *material * * * *= MAT_WOOD; * * * * * * * * * * // дерево
* *scemeName * * * = "RICE";
* *on_state[0] * * = Use_FireStew; * * * * * * * * // использовать
* *description * * = name; * * * * * * * * * * * * // "Feuergeschnetzeltes"
* *TEXT[1] * * * * = NAME_Bonus_Str; * * * * * * * // "Прибавка к силе:"
* *COUNT[1] * * * *= STR_FireStew; * * * * * * * * // 1
* *TEXT[5] * * * * = NAME_Value; * * * * * * * * * // "Ценность:"
* *COUNT[5] * * * *= Value_FireStew;
};

// Использовать
func void Use_FireStew()
{
* *// сила += 1
* *B_RaiseAttribute(self,ATR_STRENGTH,STR_FireStew);
* *// макс. жизнь += 5
* *Npc_ChangeAttribute(self,ATR_HITPOINTS_MAX,HP_Fir eStew);
* *// вывод на экран
* *PrintScreen("Увеличились сила и жизненная энергия!",-1,34,FONT_ScreenSmall,2);
};

//--------------------------------------
// Мясной суп
//--------------------------------------
INSTANCE ItFo_Addon_Meatsoup (C_Item)
{ *
* *name * * * * * *= "Мясной суп";
* *mainflag * * * *= ITEM_KAT_FOOD; * * * * * * * *// продукт питания
* *flags * * * * * = ITEM_MULTI; * * * * * * * * * // складируемый
* *value * * * * * = Value_FishSoup; * * * * * * * // 20
* *visual * * * * *= "ItFo_FishSoup.3ds";
* *material * * * *= MAT_WOOD; * * * * * * * * * * // дерево
* *scemeName * * * = "RICE";
* *on_state[0] * * = Use_MeatSoup; * * * * * * * * // использовать
* *description * * = "Дымящийся мясной суп";
* *TEXT[1] * * * * = NAME_Bonus_STR; * * * * * * * // "Прибавка к силе:"
* *COUNT[1] * * * *= STR_MeatSoup; * * * * * * * * // 1
* *TEXT[5] * * * * = NAME_Value; * * * * * * * * * // "Ценность:"
* *COUNT[5] * * * *= Value_FishSoup; * * * * * * * // 20
};

// Использовать
func void Use_MeatSoup()
{
* *var string ConcatText;
* *// создать строку "Прибавка к силе:1"
* *ConcatText = ConcatStrings(NAME_Bonus_Str,IntToString(STR_MeatS oup));
* *// сила += 1
* *B_RaiseAttribute(self,ATR_STRENGTH,STR_MeatSoup);
* *// вывод на экран
* *PrintScreen(ConcatText,-1,34,FONT_ScreenSmall,2);
};

Ответить с цитированием