|
Re: Уроки скриптологии
* *11. Секретные книги аддона.
Файл IT_Addon_SecretBooks.d
//************************* // Секретные книги аддона //*************************
// коэффициенты стоимости "Книг знаний" const int BookLp2 * * * = 2; * * * * * * * * * *// книга 1 const int BookLp3 * * * = 3; * * * * * * * * * *// книга 2 const int BookLp5 * * * = 5; * * * * * * * * * *// книга 3 const int BookLp8 * * * = 8; * * * * * * * * * *// книга 4 // коэффициенты стоимости книг "Собранный опыт" const int BookXP250 * * = 250; * * * * * * * * *// книга 1 const int BookXP500 * * = 500; * * * * * * * * *// книга 2 const int BookXP1000 * *= 1000; * * * * * * * * // книга 3 // базовый коэффициент стоимости "Книг знаний" const int LPMultiplier *= 1000; // базовый коэффициент стоимости книг "Собранный опыт" const int XPMultiplier *= 5;
//-------------------------------------- // Функция использования "Книг знаний" //-------------------------------------- // Аргумент: constanze - приобретаемые очки обучения func void UseLPBook(var int constanze) { * *// Примечание: первые две строки можно удалить, не используются * *var int Wert; * *Wert = constanze; * *// если НПС ГГ * *if(Npc_IsPlayer(self)) * *{ * * * *// ГГ говорит сам себе (SVM фраза) "Понимаю." * * * *B_Say_Overlay(self,self,"$VERSTEHE"); * * * *// музыка повышения уровня * * * *Snd_Play("Levelup"); * * * *// увеличить очки обучения * * * *self.lp = self.lp + constanze; * * * *var string ConcatText; * * * *// создать строку "Оч. обучения + " + constanze * * * *ConcatText = ConcatStrings(PRINT_LearnLP,IntToString(constanze) ); * * * *// вывести на экран * * * *Print(ConcatText); * *}; };
//-------------------------------------- // Функция использования книг "Собранный опыт" //-------------------------------------- // Аргумент: constanze - приобретаемая экспа func void UseXPBook(var int constanze) { * *// Примечание: первые две строки можно удалить, не используются * *var int Wert; * *Wert = constanze; * *// если НПС ГГ * *if(Npc_IsPlayer(self)) * *{ * * * *// ГГ говорит сам себе (SVM фраза) "Понимаю." * * * *B_Say_Overlay(self,self,"$VERSTEHE"); * * * *// музыка повышения уровня * * * *Snd_Play("Levelup"); * * * *// увеличить експу * * * *self.exp = self.exp + constanze; * * * *var string ConcatText; * * * *// создать строку "Опыт + " + constanze * * * *ConcatText = ConcatStrings(PRINT_XPGained,IntToString(constanze )); * * * *// вывести на экран * * * *Print(ConcatText); * *}; }; * * //-------------------------------------- // Прототип книг "Собранный опыт" //-------------------------------------- PROTOTYPE ItWr_Addon_XPBook(C_ITEM) { * *name * * * * * * * *= * "Собранный опыт"; * *mainflag * * * * * *= * ITEM_KAT_DOCS; * * * * * * *// документ * *flags * * * * * * * = * ITEM_MISSION; * *visual * * * * * * *= * "ItWr_Book_02_01.3ds"; * * * * * * * * * * * * *material * * * * * *= * MAT_LEATHER; * * * * * * * *// кожа * *scemeName * * * * * = * "MAPSEALED"; * *description * * * * = * name; * * * * * * * * * * * // "Собранный опыт" * *TEXT[0] * * * * * * = * PRINT_XPGained; * * * * * * // "Опыт + " * *TEXT[5] * * * * * * = * NAME_Value; * * * * * * * * // "Ценность:" }; *
//-------------------------------------- // Собранный опыт (книга 1) //-------------------------------------- INSTANCE ItWr_Addon_BookXP250(ItWr_Addon_XPBook) { * *value * * * * * * * = * (BookXP250 * XPMultiplier); // 1250 * *on_state[0] * * * * = * UseBookXP250; * * * * * * * // использовать * *COUNT[0] * * * * * *= * BookXP250; * * * * * * * * *// 250 * *COUNT[5] * * * * * *= * value; * * * * * * * * * * *// 1250 };
// Получить за прочтение 250 экспы func void UseBookXP250() { * *UseXPBook(BookXP250); };
//-------------------------------------- // Собранный опыт (книга 2) //-------------------------------------- INSTANCE ItWr_Addon_BookXP500(ItWr_Addon_XPBook) { * *value * * * * * * * = * (BookXP500 * XPMultiplier); // 2500 * *on_state[0] * * * * = * UseBookXP500; * * * * * * * // использовать * *COUNT[0] * * * * * *= * BookXP500; * * * * * * * * *// 500 * *COUNT[5] * * * * * *= * value; * * * * * * * * * * *// 2500 };
// Получить за прочтение 500 экспы func void UseBookXP500() { * *UseXPBook(BookXP500); };
//-------------------------------------- // Собранный опыт (книга 3) //-------------------------------------- INSTANCE ItWr_Addon_BookXP1000(ItWr_Addon_XPBook) { * *value * * * * * * * = * (BookXP1000 * XPMultiplier);// 5000 * *on_state[0] * * * * = * UseBookXP1000; * * * * * * *// использовать * *COUNT[0] * * * * * *= * BookXP1000; * * * * * * * * // 1000 * *COUNT[5] * * * * * *= * value; * * * * * * * * * * *// 5000 };
// Получить за прочтение 1000 экспы func void UseBookXP1000() { * *UseXPBook(BookXP1000); };
//-------------------------------------- // Прототип "Книг знаний" //-------------------------------------- PROTOTYPE ItWr_Addon_LPBook(C_ITEM) { * *name * * * * * * * *= * "Книга знаний"; * *mainflag * * * * * *= * ITEM_KAT_DOCS; * * * * * * *// документ * *flags * * * * * * * = * ITEM_MISSION; * *visual * * * * * * *= * "ItWr_Book_02_02.3ds"; * * * * * * * * * * * * *material * * * * * *= * MAT_LEATHER; * * * * * * * *// кожа * *scemeName * * * * * = * "MAPSEALED"; * *description * * * * = * name; * * * * * * * * * * * // "Книга знаний" * *TEXT[0] * * * * * * = * PRINT_LearnLP; * * * * * * *// "Оч. обучения + " * *TEXT[5] * * * * * * = * NAME_Value; * * * * * * * * // "Ценность:" };
//-------------------------------------- // Книга знаний (1) //-------------------------------------- INSTANCE ItWr_Addon_BookLP2(ItWr_Addon_LPBook) { * *value * * * * * * * = * (BookLp2 * LPMultiplier); * // 2000 * *on_state[0] * * * * = * UseBookLp2; * * * * * * * * // использовать * *COUNT[0] * * * * * *= * BookLp2; * * * * * * * * * *// 2 * *COUNT[5] * * * * * *= * value; * * * * * * * * * * *// 2000 };
// Получить за прочтение 2 очка обучения func void UseBookLp2() { * *UseLPBook(BookLp2); };
//-------------------------------------- // Книга знаний (2) //-------------------------------------- INSTANCE ItWr_Addon_BookLP3(ItWr_Addon_LPBook) { * *value * * * * * * * = * (BookLp3 * LPMultiplier); * // 3000 * *on_state[0] * * * * = * UseBookLp3; * * * * * * * * // использовать * *COUNT[0] * * * * * *= * BookLp3; * * * * * * * * * *// 3 * *COUNT[5] * * * * * *= * value; * * * * * * * * * * *// 3000 };
// Получить за прочтение 3 очка обучения func void UseBookLp3() { * *UseLPBook(BookLp3); };
//-------------------------------------- // Книга знаний (3) //-------------------------------------- INSTANCE ItWr_Addon_BookLP5(ItWr_Addon_LPBook) { * *value * * * * * * * = * (BookLp5 * LPMultiplier); * // 5000 * *on_state[0] * * * * = * UseBookLp5; * * * * * * * * // использовать * *COUNT[0] * * * * * *= * BookLp5; * * * * * * * * * *// 5 * *COUNT[5] * * * * * *= * value; * * * * * * * * * * *// 5000 };
// Получить за прочтение 5 очков обучения func void UseBookLp5() { * *UseLPBook(BookLp5); };
//-------------------------------------- // Книга знаний (4) //-------------------------------------- INSTANCE ItWr_Addon_BookLP8(ItWr_Addon_LPBook) { * *value * * * * * * * = * (BookLp8 * LPMultiplier); * // 8000 * *on_state[0] * * * * = * UseBookLp8; * * * * * * * * // использовать * *COUNT[0] * * * * * *= * BookLp8; * * * * * * * * * *// 8 * *COUNT[5] * * * * * *= * value; * * * * * * * * * * *// 8000 };
// Получить за прочтение 8 очков обучения func void UseBookLp8() { * *UseLPBook(BookLp8 ); };
* *12. Моллюски аддона.
Файл IT_Addon_Shells.d
//************************* // Моллюски аддона //*************************
// стоимость const int Value_Shell_01 * * * * * *= *30; * * *// Гребешок const int Value_Shell_02 * * * * * *= *60; * * *// Креветка // кол-во вскрытых моллюсков var int Shell_Opener;
// Функция вскрытия моллюска func void B_OpenShell() { * *var int shellomizer; * *// случайное число * *shellomizer = Hlp_Random(100); * *// кол-во открытых моллюсков++ * *Shell_Opener = (Shell_Opener + 1); * *// если открыт 1 моллюск * *if(Shell_Opener == 1) * *{ * * * *// найти Жемчужину * * * *B_PlayerFindItem(ItMi_Addon_WhitePearl,1); * *} * *// если открыт 25 моллюск * *else if(Shell_Opener == 25) * *{ * * * *// найти Черный жемчуг * * * *B_PlayerFindItem(ItMi_DarkPearl,1); * * * * * *} * *else // обнаружить с определенной вероятностью * *{ * * * *if(shellomizer >= 80) * * * *{ * * * * * *// найти Жемчужину * * * * * *B_PlayerFindItem(ItMi_Addon_WhitePearl,1); * * * *} * * * *else if(shellomizer >= 55) * * * *{ * * * * * *// найти Устрицу * * * * * *B_PlayerFindItem(ItFo_Addon_Shellflesh,1); * * * *} * * * *else if(shellomizer >= 50) * * * *{ * * * * * *// найти Аквамарин * * * * * *B_PlayerFindItem(ItMi_Aquamarine,1); * * * *} * * * *else if(shellomizer >= 40) * * * *{ * * * * * *// найти Кварц * * * * * *B_PlayerFindItem(ItMi_Quartz,1); * * * *} * * * *else if(shellomizer >= 35) * * * *{ * * * * * *// найти Горный хрусталь * * * * * *B_PlayerFindItem(ItMi_Rockcrystal,1); * * * *} * * * *else if(shellomizer >= 25) * * * *{ * * * * * *// найти Серу * * * * * *B_PlayerFindItem(ItMi_Sulfur,1); * * * *} * * * *else // с вероятностью 0.25 * * * *{ * * * * * *// произнести SVM фразу "нечего унести ..." * * * * * *B_Say_Overlay(self,self,"$NOTHINGTOGET02"); * * * * * *// вывести на экран текст "Нечего унести..." * * * * * *AI_PrintScreen(PRINT_NOTHINGTOGET02,-1,YPOS_ItemGiven,FONT_ScreenSmall,2); * * * *}; * *}; };
//-------------------------------------- // Гребешок //-------------------------------------- INSTANCE ItMi_Addon_Shell_01(C_Item) { * *name * * * *= * "Гребешок"; * *mainflag * *= * ITEM_KAT_NONE; * * * * * * *// прочее * *flags * * * = * ITEM_MULTI; * *value * * * = * Value_Shell_01; * * * * * * // 30 * *visual * * *= * "ItMi_Shell_01.3ds"; * *material * *= * MAT_STONE; * * * * * * * * *// камень * *scemeName * = * "MAPSEALED"; * *on_state[0] = * Use_Shell_01; * * * * * * * // использовать * *description = * name; * * * * * * * * * * * // "Гребешок" * *TEXT[5] * * = * NAME_Value; * * * * * * * * // "Ценность:" * *COUNT[5] * *= * value; * * * * * * * * * * *// 30 * *INV_ZBIAS * = INVCAM_ENTF_MISC2_STANDARD; * };
// Открыть Гребешок func void Use_Shell_01() { * *B_OpenShell(); };
//-------------------------------------- // Креветка //-------------------------------------- INSTANCE ItMi_Addon_Shell_02(C_Item) { * *name * * * *= * "Креветка"; * *mainflag * *= * ITEM_KAT_NONE; * * * * * * *// прочее * *flags * * * = * ITEM_MULTI; * *value * * * = * Value_Shell_02; * * * * * * // 60 * *visual * * *= * "ItMi_Shell_02.3ds"; * *material * *= * MAT_STONE; * * * * * * * * *// камень * *scemeName * = * "MAPSEALED"; * *on_state[0] = * Use_Shell_02; * * * * * * * // использовать * *description = * name; * * * * * * * * * * * // "Креветка" * *TEXT[5] * * = * NAME_Value; * * * * * * * * // "Ценность:" * *COUNT[5] * *= * value; * * * * * * * * * * *// 60 * *INV_ZBIAS * = INVCAM_ENTF_MISC2_STANDARD; * };
// Открыть Креветку func void Use_Shell_02() { * *B_OpenShell(); };
|