Показать сообщение отдельно
Старый 15.07.2005, 15:05   #220
Vam

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

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

// Создать руну Зеленые щупальца (для остальных рун аналогично)
func void PC_PrayShrine_UPGRATEBELIARSWEAPON_GreenTentacle()
{
* *// создать в инвентаре ГГ
* *CreateInvItem(hero,ItRu_GreenTentacle);
* *// визуальный эффект
* *Wld_PlayEffect("spellFX_BeliarsWeapon_Upgrate",se lf,self,0,0,0,F
ALSE);
* *// вывод текста "Белиар дарит тебе другое заклинание"
* *PrintScreen(PRINT_Addon_RuneGiven,-1,45,FONT_ScreenSmall,2);
* *// музычка
* *Snd_Play("CS_Prayer_WaveOfInsanity");
* *// оружие улучшено
* *BeliarsWeaponUpgrated = TRUE;
* *// удвалить этот пункт выбора меню
* *Info_ClearChoices(PC_PrayShrine_UPGRATEBELIARSWEA PON);
};

// Создать руну Украсть энергию
func void PC_PrayShrine_UPGRATEBELIARSWEAPON_SuckEnergy ()
{
* *CreateInvItem(hero,ItRu_SuckEnergy);
* *Wld_PlayEffect("spellFX_BeliarsWeapon_Upgrate",se lf,self,0,0,0,F
ALSE);
* *PrintScreen(PRINT_Addon_RuneGiven,-1,45,FONT_ScreenSmall,2); * * *
* *Snd_Play("CS_Prayer_WaveOfInsanity");
* *BeliarsWeaponUpgrated = TRUE;
* *Info_ClearChoices(PC_PrayShrine_UPGRATEBELIARSWEA PON);
};

// Создать руну Создать стража
func void PC_PrayShrine_UPGRATEBELIARSWEAPON_NAME_SPL_Summon Guardian()
{
* *CreateInvItem(hero,ItRu_SummonGuardian);
* *Wld_PlayEffect("spellFX_BeliarsWeapon_Upgrate",se lf,self,0,0,0,F
ALSE);
* *PrintScreen(PRINT_Addon_RuneGiven,-1,45,FONT_ScreenSmall,2); * * *
* *Snd_Play("CS_Prayer_WaveOfInsanity");
* *BeliarsWeaponUpgrated = TRUE;
* *Info_ClearChoices(PC_PrayShrine_UPGRATEBELIARSWEA PON);
};

// Создать руну Ярость Белиара
func void PC_PrayShrine_UPGRATEBELIARSWEAPON_BeliarsRage()
{
* *CreateInvItem(hero,ItRu_BeliarsRage);
* *Wld_PlayEffect("spellFX_BeliarsWeapon_Upgrate",se lf,self,0,0,0,F
ALSE); *
* *PrintScreen(PRINT_Addon_RuneGiven,-1,45,FONT_ScreenSmall,2);
* *Snd_Play("CS_Prayer_WaveOfInsanity");
* *BeliarsWeaponUpgrated = TRUE;
* *Info_ClearChoices(PC_PrayShrine_UPGRATEBELIARSWEA PON);
};

// Создать руну Рой
func void PC_PrayShrine_UPGRATEBELIARSWEAPON_Swarm()
{
* *CreateInvItem(hero,ItRu_Swarm);
* *Wld_PlayEffect("spellFX_BeliarsWeapon_Upgrate",se lf,self,0,0,0,F
ALSE);
* *PrintScreen(PRINT_Addon_RuneGiven,-1,45,FONT_ScreenSmall,2);
* *Snd_Play("CS_Prayer_WaveOfInsanity");
* *BeliarsWeaponUpgrated = TRUE;
* *Info_ClearChoices(PC_PrayShrine_UPGRATEBELIARSWEA PON);
};

// Создать руну Создать зомби
func void PC_PrayShrine_UPGRATEBELIARSWEAPON_summonZombie()
{
* *CreateInvItem(hero,ItRu_SummonZombie);
* *Wld_PlayEffect("spellFX_BeliarsWeapon_Upgrate",se lf,self,0,0,0,F
ALSE);
* *PrintScreen(PRINT_Addon_RuneGiven,-1,45,FONT_ScreenSmall,2);
* *Snd_Play("CS_Prayer_WaveOfInsanity");
* *BeliarsWeaponUpgrated = TRUE;
* *Info_ClearChoices(PC_PrayShrine_UPGRATEBELIARSWEA PON);
};

// Создать руну Крик мертвых
func void PC_PrayShrine_UPGRATEBELIARSWEAPON_SPL_Skull()
{
* *CreateInvItem(hero,ItRu_Skull);
* *Wld_PlayEffect("spellFX_BeliarsWeapon_Upgrate",se lf,self,0,0,0,F
ALSE);
* *PrintScreen(PRINT_Addon_RuneGiven,-1,45,FONT_ScreenSmall,2);
* *Snd_Play("CS_Prayer_WaveOfInsanity");
* *BeliarsWeaponUpgrated = TRUE;
* *Info_ClearChoices(PC_PrayShrine_UPGRATEBELIARSWEA PON);
};


* *19. Функции, связанные с одержимостью ГГ.

Файл B_ScObsession.d

var int SC_IsObsessed; * * * * *// ГГ страдает одержимостью (TRUE)
var int SC_ObsessionCounter; * *// счетчик кол-ва проклятий ГГ

// Устранить состояние одержимости НПС
// ----------------------------------------------------------------
// Аргумент: heiler - НПС
func void B_ClearSCObsession(var C_NPC heiler) *
{
* *// если НПС не ГГ
* *if(Hlp_GetInstanceID(heiler) != Hlp_GetInstanceID(hero))
* *{
* * * *// закончить диалог
* * * *AI_StopProcessInfos(heiler);
* *};
* *// одержимость снята
* *SC_IsObsessed = FALSE;
* *// сброс счетчика проклятий
* *SC_ObsessionCounter = 0;
* *// вывод текста "Ты чувствуешь себя освобожденным!"
* *PrintScreen(PRINT_ClearSCObsession,-1,-1,FONT_Screen,3);
};

// Установить состояние одержимости НПС
// ----------------------------------------------------------------
// Аргумент: dementor - НПС
func void B_SCIsObsessed(var C_NPC dementor) * *
{
* *// если НПС не ГГ
* *if(Hlp_GetInstanceID(dementor) != Hlp_GetInstanceID(hero))
* *{
* * * *// закончить диалог
* * * *AI_StopProcessInfos(dementor);
* *};
* *// если ГГ не имеет амулета Зов Души
* *if(Npc_HasItems(hero,ItAm_Prot_BlackEye_Mis) == FALSE)
* *{
* * * *// если счетчик проклятий >= 2
* * * *if(SC_ObsessionCounter >= 2)
* * * *{
* * * * * *// установить одержимость
* * * * * *SC_IsObsessed = TRUE;
* * * * * *// вывод текста "Чувство одержимости преследует тебя!"
* * * * * *PrintScreen(PRINT_SCIsObsessed,-1,-1,FONT_Screen,2);
* * * *};
* * * *// счетчик проклятий ++
* * * *SC_ObsessionCounter = SC_ObsessionCounter + 1;
* *};
};


* *20. Функции кладоискателя.

Файл B_ScUsesRake.d

var int RAKEPLACE[50]; * * * * * * * * *// массив флагов клад выкопан (TRUE)
const int Greg_FirstSecret *= 1; * * * *// индекс первого клада
const int RAKE_BUDDEL_DIST_MAX = 300; * // (не используется)
const int RAKE_BUDDEL_DIST_MIN = 200; * // макс. расстояние до клада, на каком можно копать

// ГГ нашел закопанное сокровище
// ----------------------------------------------------------------
// Аргумент: itm - найденный предмет
func void RakeTreasureSuccess(var C_ITEM itm)
{
* *// визуальный эффект на предмете
* *Wld_PlayEffect("spellFX_ItemAusbuddeln",itm,itm,0 ,0,0,FALSE);
* *// ГГ говорит сам себе (SVM фраза) "нашел сокровища"
* *B_Say_Overlay(self,self,"$FOUNDTREASURE");
* *// получить экспу (50 * номер Главы)
* *B_GivePlayerXP(XP_Ambient);
};

// Не используется, можно удалить
func void B_SCUsesRake(var C_NPC slf)
{
};

// Добыть сокровище
// ----------------------------------------------------------------
// Данная функция повешена в Спейсере на объект oCMobInter и вызывается после ударов ГГ киркой по красному кресту
func void B_SCGetTreasure_S1()
{
* *// клад выкопал ГГ
* *if(Hlp_GetInstanceID(self) == Hlp_GetInstanceID(hero))
* *{
* * * *// если ГГ находится не далее 2м от нужной точки и клад в данной точке не выкопан
* * * *if((Npc_GetDistToWP(hero,"NW_BIGFARM_LAKE_CAVE_07 ") < RAKE_BUDDEL_DIST_MIN) && (RAKEPLACE[Greg_FirstSecret] == FALSE))
* * * *{
* * * * * *// выкопать предмет
* * * * * *Wld_InsertItem(ItSe_GoldPocket25,"NW_BIGFARM_LAKE _CAVE_07");
* * * * * *// установить флаг клад выкопан
* * * * * *RAKEPLACE[Greg_FirstSecret] = TRUE;
* * * * * *// получить экспу
* * * * * *RakeTreasureSuccess(ItSe_GoldPocket25);
* * * * * *var C_ITEM GregsArmor;
* * * * * *// получить ссылку на одежду Грега
* * * * * *GregsArmor = Npc_GetEquippedArmor(Greg_NW);
* * * * * *// если это не "Одежда капитана"
* * * * * *if(Hlp_IsItem(GregsArmor,ITAR_PIR_H_Addon) == FALSE)
* * * * * *{
* * * * * * * *// экипировать Грега Одеждой капитана
* * * * * * * *AI_EquipArmor(Greg_NW,ITAR_PIR_H_Addon); * *
* * * * * *};
* * * *}
* * * *// если ГГ находится не далее 2м от нужной точки и клад в данной точке не выкопан
* * * *else if((Npc_GetDistToWP(hero,"NW_LAKE_GREG_TREASURE_01 ") < RAKE_BUDDEL_DIST_MIN) && (RAKEPLACE[2] == FALSE))
* * * *{
* * * * * *// выкопать предмет
* * * * * *Wld_InsertItem(ItSe_GoldPocket100,"NW_LAKE_GREG_T REASURE_01");
* * * * * *// установить флаг клад выкопан
* * * * * *RAKEPLACE[2] = TRUE;
* * * * * *// получить экспу
* * * * * *RakeTreasureSuccess(ItSe_GoldPocket100);
* * * *}
* * * *// для всех остальных кладов аналогично
* * * *else if((Npc_GetDistToWP(hero,"NW_FARM3_GREGTREASURE_01 ") < RAKE_BUDDEL_DIST_MIN) && (RAKEPLACE[3] == FALSE))
* * * *{
* * * * * *Wld_InsertItem(ItMi_GoldCup,"NW_FARM3_GREGTREASUR E_01");
* * * * * *RAKEPLACE[3] = TRUE;
* * * * * *RakeTreasureSuccess(ItMi_GoldCup);
* * * *}
* * * *else if((Npc_GetDistToWP(hero,"NW_FARM3_MOUNTAINLAKE_MO NSTER_01") < RAKE_BUDDEL_DIST_MIN) && (RAKEPLACE[4] == FALSE))
* * * *{ *
* * * * * *Wld_InsertItem(ItMi_SilverChalice,"NW_FARM3_MOUNT AINLAKE_MONSTER_01");
* * * * * *RAKEPLACE[4] = TRUE;
* * * * * *RakeTreasureSuccess(ItMi_SilverChalice);
* * * *}
* * * *else if((Npc_GetDistToWP(hero,"NW_BIGMILL_FARM3_01") < RAKE_BUDDEL_DIST_MIN) && (RAKEPLACE[5] == FALSE))
* * * *{
* * * * * *Wld_InsertItem(ItAm_Prot_Point_01,"NW_BIGMILL_FAR M3_01");
* * * * * *RAKEPLACE[5] = TRUE;
* * * * * *RakeTreasureSuccess(ItAm_Prot_Point_01);
* * * *}
* * * *else if((Npc_GetDistToWP(hero,"ADW_ENTRANCE_RAKEPLACE_0 1") < RAKE_BUDDEL_DIST_MIN) && (RAKEPLACE[12] == FALSE))
* * * *{
* * * * * *Wld_InsertItem(ItWr_StonePlateCommon_Addon,"ADW_E NTRANCE_RAKEPLACE_01");
* * * * * *RAKEPLACE[12] = TRUE;
* * * * * *Wld_InsertItem(ItMi_SilverChalice,"ADW_ENTRANCE_R AKEPLACE_01");
* * * * * *RakeTreasureSuccess(ItMi_SilverChalice);
* * * *}
* * * *else if((Npc_GetDistToWP(hero,"ADW_ENTRANCE_RAKEPLACE_0 2") < RAKE_BUDDEL_DIST_MIN) && (RAKEPLACE[13] == FALSE))
* * * *{
* * * * * *Wld_InsertItem(ItWr_DexStonePlate1_Addon,"ADW_ENT RANCE_RAKEPLACE_02");
* * * * * *RAKEPLACE[13] = TRUE;
* * * * * *Wld_InsertItem(ItMi_GoldCup,"ADW_ENTRANCE_RAKEPLA CE_02"); * * * * * * * * * * * * * * * * * * * *
* * * * * *RakeTreasureSuccess(ItMi_GoldCup);
* * * *}
* * * *else if((Npc_GetDistToWP(hero,"ADW_ENTRANCE_RAKEPLACE_0 3") < RAKE_BUDDEL_DIST_MIN) && (RAKEPLACE[14] == FALSE))
* * * *{
* * * * * *Wld_InsertItem(ItPo_Perm_Health,"ADW_ENTRANCE_RAK EPLACE_03");
* * * * * *RAKEPLACE[14] = TRUE;
* * * * * *Wld_InsertItem(ItSe_GoldPocket100,"ADW_ENTRANCE_R AKEPLACE_03"); * * * * * * * * * * * * * * * * * * * *
* * * * * *RakeTreasureSuccess(ItSe_GoldPocket100);
* * * *}
* * * *else if((Npc_GetDistToWP(hero,"ADW_ENTRANCE_RAKEPLACE_0 4") < RAKE_BUDDEL_DIST_MIN) && (RAKEPLACE[15] == FALSE))
* * * *{
* * * * * *Wld_InsertItem(ItMi_SilverRing,"ADW_ENTRANCE_RAKE PLACE_04");
* * * * * *RAKEPLACE[15] = TRUE;
* * * * * *Wld_InsertItem(ItMw_Schwert4,"ADW_ENTRANCE_RAKEPL ACE_04");
* * * * * *RakeTreasureSuccess(ItMw_Schwert4);
* * * *}
* * * *else if((Npc_GetDistToWP(hero,"ADW_VALLEY_GREGTREASURE_ 01") < RAKE_BUDDEL_DIST_MIN) && (RAKEPLACE[16] == FALSE))
* * * *{
* * * * * *Wld_InsertItem(ItSe_GoldPocket100,"ADW_VALLEY_GRE GTREASURE_01");
* * * * * *RAKEPLACE[16] = TRUE;
* * * * * *Wld_InsertItem(ItPo_Health_02,"ADW_VALLEY_GREGTRE ASURE_01");
* * * * * *Wld_InsertItem(ItPo_Mana_03,"ADW_VALLEY_GREGTREAS URE_01");
* * * * * *RakeTreasureSuccess(ItPo_Mana_03);
* * * *}
* * * *else if((Npc_GetDistToWP(hero,"ADW_VALLEY_RAKEPLACE_01" ) < RAKE_BUDDEL_DIST_MIN) && (RAKEPLACE[17] == FALSE))
* * * *{
* * * * * *Wld_InsertItem(ItPo_Mana_Addon_04,"ADW_VALLEY_RAK EPLACE_01");
* * * * * *RAKEPLACE[17] = TRUE;
* * * * * *Wld_InsertItem(ItPo_Speed,"ADW_VALLEY_RAKEPLACE_0 1");
* * * * * *Wld_InsertItem(ItPo_Mana_02,"ADW_VALLEY_RAKEPLACE _01");
* * * * * *RakeTreasureSuccess(ItPo_Mana_02);
* * * *}
* * * *else if((Npc_GetDistToWP(hero,"ADW_VALLEY_RAKEPLACE_02" ) < RAKE_BUDDEL_DIST_MIN) && (RAKEPLACE[18] == FALSE))
* * * *{
* * * * * *Wld_InsertItem(ItPo_Health_Addon_04,"ADW_VALLEY_R AKEPLACE_02");
* * * * * *RAKEPLACE[18] = TRUE;
* * * * * *Wld_InsertItem(ItWr_StonePlateCommon_Addon,"ADW_V ALLEY_RAKEPLACE_02");
* * * * * *Wld_InsertItem(ItSe_LockpickFisch,"ADW_VALLEY_RAK EPLACE_02");
* * * * * *RakeTreasureSuccess(ItSe_LockpickFisch);
* * * *}
* * * *else if((Npc_GetDistToWP(hero,"ADW_VALLEY_RAKEPLACE_03" ) < RAKE_BUDDEL_DIST_MIN) && (RAKEPLACE[19] == FALSE))
* * * *{
* * * * * *Wld_InsertItem(ItSc_Firerain,"ADW_VALLEY_RAKEPLAC E_03");
* * * * * *RAKEPLACE[19] = TRUE;
* * * * * *Wld_InsertItem(ItSe_GoldPocket50,"ADW_VALLEY_RAKE PLACE_03");
* * * * * *Wld_InsertItem(ItWr_StonePlateCommon_Addon,"ADW_V ALLEY_RAKEPLACE_03");
* * * * * *RakeTreasureSuccess(ItSe_GoldPocket50);
* * * *}
* * * *else if((Npc_GetDistToWP(hero,"ADW_BANDITSCAMP_RAKEPLAC E_01") < RAKE_BUDDEL_DIST_MIN) && (RAKEPLACE[20] == FALSE))
* * * *{
* * * * * *Wld_InsertItem(ItMi_Honigtabak,"ADW_BANDITSCAMP_R AKEPLACE_01");
* * * * * *RAKEPLACE[20] = TRUE;
* * * * * *Wld_InsertItem(ItWr_StonePlateCommon_Addon,"ADW_B ANDITSCAMP_RAKEPLACE_01");
* * * * * *Wld_InsertItem(ItAm_Addon_MANA,"ADW_BANDITSCAMP_R AKEPLACE_01");
* * * * * *RakeTreasureSuccess(ItAm_Addon_MANA);
* * * *}
* * * *else if((Npc_GetDistToWP(hero,"ADW_BANDITSCAMP_RAKEPLAC E_02") < RAKE_BUDDEL_DIST_MIN) && (RAKEPLACE[21] == FALSE))
* * * *{
* * * * * *Wld_InsertItem(ItSc_SumGobSkel,"ADW_BANDITSCAMP_R AKEPLACE_02");
* * * * * *RAKEPLACE[21] = TRUE;
* * * * * *Wld_InsertItem(ItPo_Mana_03,"ADW_BANDITSCAMP_RAKE PLACE_02");
* * * * * *RakeTreasureSuccess(ItPo_Mana_03);
* * * *}
* * * *else if((Npc_GetDistToWP(hero,"ADW_BANDITSCAMP_RAKEPLAC E_03") < RAKE_BUDDEL_DIST_MIN) && (RAKEPLACE[22] == FALSE))
* * * *{
* * * * * *Wld_InsertItem(ItSc_TrfShadowbeast,"ADW_BANDITSCA MP_RAKEPLACE_03");
* * * * * *RAKEPLACE[22] = TRUE;
* * * * * *Wld_InsertItem(ItSc_LightHeal,"ADW_BANDITSCAMP_RA KEPLACE_03");
* * * * * *RakeTreasureSuccess(ItSc_LightHeal);
* * * *}
* * * *else if((Npc_GetDistToWP(hero,"ADW_BANDITSCAMP_RAKEPLAC E_04") < RAKE_BUDDEL_DIST_MIN) && (RAKEPLACE[23] == FALSE))
* * * *{
* * * * * *Wld_InsertItem(ItWr_StonePlateCommon_Addon,"ADW_B ANDITSCAMP_RAKEPLACE_04");
* * * * * *RAKEPLACE[23] = TRUE;
* * * * * *Wld_InsertItem(ItRi_HP_01,"ADW_BANDITSCAMP_RAKEPL ACE_04");
* * * * * *RakeTreasureSuccess(ItRi_HP_01);
* * * *}
* * * *else if((Npc_GetDistToWP(hero,"ADW_CANYON_MINE1_11") < RAKE_BUDDEL_DIST_MIN) && (RAKEPLACE[24] == FALSE))
* * * *{
* * * * * *Wld_InsertItem(ItSE_Addon_FrancisChest,"ADW_CANYO N_MINE1_11");
* * * * * *RAKEPLACE[24] = TRUE;
* * * * * *RakeTreasureSuccess(ItSE_Addon_FrancisChest);
* * * *}
* * * *else if((Npc_GetDistToWP(hero,"ADW_CANYON_RAKEPLACE_01" ) < RAKE_BUDDEL_DIST_MIN) && (RAKEPLACE[25] == FALSE))
* * * *{
* * * * * *Wld_InsertItem(ItMi_RuneBlank,"ADW_CANYON_RAKEPLA CE_01");
* * * * * *RAKEPLACE[25] = TRUE;
* * * * * *Wld_InsertItem(ItSe_GoldPocket25,"ADW_CANYON_RAKE PLACE_01");
* * * * * *RakeTreasureSuccess(ItSe_GoldPocket25);
* * * *}
* * * *else if((Npc_GetDistToWP(hero,"ADW_CANYON_RAKEPLACE_02" ) < RAKE_BUDDEL_DIST_MIN) && (RAKEPLACE[26] == FALSE))
* * * *{
* * * * * *Wld_InsertItem(ItMi_Nugget,"ADW_CANYON_RAKEPLACE_ 02");
* * * * * *RAKEPLACE[26] = TRUE;
* * * * * *Wld_InsertItem(ItSc_LightningFlash,"ADW_CANYON_RA KEPLACE_02");
* * * * * *Wld_InsertItem(ItSc_ChargeFireBall,"ADW_CANYON_RA KEPLACE_02");
* * * * * *RakeTreasureSuccess(ItSc_ChargeFireBall);
* * * *}
* * * *else if((Npc_GetDistToWP(hero,"ADW_CANYON_RAKEPLACE_03" ) < RAKE_BUDDEL_DIST_MIN) && (RAKEPLACE[27] == FALSE))
* * * *{
* * * * * *Wld_InsertItem(ItSe_GoldPocket25,"ADW_CANYON_RAKE PLACE_03");
* * * * * *RAKEPLACE[27] = TRUE;
* * * * * *Wld_InsertItem(ItWr_ManaStonePlate1_Addon,"ADW_CA NYON_RAKEPLACE_03");
* * * * * *Wld_InsertItem(ItMi_Pitch,"ADW_CANYON_RAKEPLACE_0 3");
* * * * * *RakeTreasureSuccess(ItMi_Pitch);
* * * *}
* * * *else if((Npc_GetDistToWP(hero,"ADW_CANYON_RAKEPLACE_04" ) < RAKE_BUDDEL_DIST_MIN) && (RAKEPLACE[28] == FALSE))
* * * *{
* * * * * *Wld_InsertItem(ItMi_SilverRing,"ADW_CANYON_RAKEPL ACE_04");
* * * * * *RAKEPLACE[28] = TRUE;
* * * * * *Wld_InsertItem(ItMi_Sulfur,"ADW_CANYON_RAKEPLACE_ 04");
* * * * * *Wld_InsertItem(ItWr_TwoHStonePlate1_Addon,"ADW_CA NYON_RAKEPLACE_04");
* * * * * *RakeTreasureSuccess(ItWr_TwoHStonePlate1_Addon);
* * * *}
* * * *else if((Npc_GetDistToWP(hero,"ADW_CANYON_RAKEPLACE_05" ) < RAKE_BUDDEL_DIST_MIN) && (RAKEPLACE[29] == FALSE))
* * * *{
* * * * * *Wld_InsertItem(ItMi_GoldRing,"ADW_CANYON_RAKEPLAC E_05");
* * * * * *RAKEPLACE[29] = TRUE;
* * * * * *Wld_InsertItem(ItAt_DragonBlood,"ADW_CANYON_RAKEP LACE_05");
* * * * * *RakeTreasureSuccess(ItAt_DragonBlood);
* * * *}
* * * *else if((Npc_GetDistToWP(hero,"ADW_PIRATECAMP_GREGTREAS URE_KOMPASS") < RAKE_BUDDEL_DIST_MIN) && (RAKEPLACE[30] == FALSE))
* * * *{
* * * * * *Wld_InsertItem(ItMI_Addon_Kompass_Mis,"ADW_PIRATE CAMP_GREGTREASURE_KOMPASS");
* * * * * *RAKEPLACE[30] = TRUE;
* * * * * *RakeTreasureSuccess(ItMI_Addon_Kompass_Mis);
* * * *};
* *}; *
};


* *21. Увеличить нывык по добыче золота.

Файл B_Upgrade_Hero_Hack.d

// ************************************************** **************
// Увеличить нывык по добыче золота
// ************************************************** **************
// Аргумент: Wert - пункты увеличения навыка
func void B_Upgrade_Hero_HackChance(var int Wert)
{
* *var string concatText;
* *// "Повысил знание о добыче золота (+ " *+ Wert
* *concatText = ConcatStrings(PRINT_ADDON_HACKCHANCE,IntToString(W ert));
* *// текст += ")"
* *concatText = ConcatStrings(concatText,")");
* *PrintScreen(concatText,-1,34,FONT_ScreenSmall,2);
* *// увеличить навык по добыче золота
* *Hero_HackChance = (Hero_HackChance + Wert);
* *// музычка
* *Snd_Play("Geldbeutel");
};


* *22. Известен ли один из шнапсов?

Файл B_Addon_Knows_Schnaps.d

// ************************************************** **************
// Известен ли один из шнапсов?
// ************************************************** **************
// Возвращаемое значение: TRUE - да, FALSE - нет
// Примечание: данная функция не используется, можно удалить
func int C_Addon_Knows_Schnaps()
{
* *
* *if (Knows_LousHammer == TRUE)
* *¦¦ (Knows_RuebenSchnaps == TRUE)
* *¦¦ (Knows_VinoSchnaps == TRUE) * * *
* *¦¦ (Knows_PiratenSchnaps == TRUE)
* *¦¦ (Knows_Magierschnaps == TRUE)
* *¦¦ (Knows_Sumpfkrautschnaps == TRUE)
* *{
* * * *return TRUE;
* *}
* *return FALSE;
};


* *23. Функции получения бонусов артефактных предметов.

Файл C_ArtefactValues.d

// Данные функции возвращают бонус одетых предметов в зависимости от одетого набора:
// Амулет, Амулет + Кольцо, два Кольца, Амулет + два Кольца

// Получить бонус к жизни
// ----------------------------------------------------------------
// Возвращаемое значение: бонус
func int C_HP_ArtefaktValue()
{ * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* *var int HP_Artefakt_Value;
* *// бонус = 0
* *HP_Artefakt_Value = 0;
* *// если одет амулет
* *if(HP_Amulett_Equipped == TRUE) * * * *
* *{
* * * *// если одето одно кольцо
* * * *if(HP_Ring_1_Equipped == TRUE) * * * * *
* * * *{
* * * * * *// если одето второе кольцо
* * * * * *if(HP_Ring_2_Equipped == TRUE)
* * * * * *{
* * * * * * * *// если визуальных эффектов не было
* * * * * * * *if(HP_Artefakt_Effekt == FALSE)
* * * * * * * *{
* * * * * * * * * *// выдать эффект
* * * * * * * * * *Wld_PlayEffect("SPELLFX_LIGHTSTAR_WHITE",self,sel f,0,0,0,FALSE);
* * * * * * * * * *// музычка
* * * * * * * * * *Snd_Play("MFX_LIGHT_CAST");
* * * * * * * * * *// установить флаг одноразовости эффекта
* * * * * * * * * *HP_Artefakt_Effekt = TRUE;
* * * * * * * *};
* * * * * * * *// задать бонус = 250
* * * * * * * *HP_Artefakt_Value = HP_Amulett_Artefakt_Bonus;
* * * * * *}
* * * * * *else // амулет + кольцо
* * * * * *{
* * * * * * * *// задать бонус = 150
* * * * * * * *HP_Artefakt_Value = HP_Amulett_EinRing_Bonus;
* * * * * *};
* * * *}
* * * *// если одето второе кольцо
* * * *else if(HP_Ring_2_Equipped == TRUE)
* * * *{
* * * * * *// задать бонус = 150
* * * * * *HP_Artefakt_Value = HP_Amulett_EinRing_Bonus;
* * * *}
* * * *else // амулет
* * * *{
* * * * * *// задать бонус = 50
* * * * * *HP_Artefakt_Value = HP_Amulett_Solo_Bonus;
* * * *};
* *}
* *// если одето одно кольцо
* *else if(HP_Ring_1_Equipped == TRUE)
* *{
* * * *// если одето второе кольцо
* * * *if (HP_Ring_2_Equipped == TRUE)
* * * *{
* * * * * *// задать бонус = 100
* * * * * *HP_Artefakt_Value = HP_Ring_Double_Bonus;
* * * *}
* * * *else // кольцо
* * * *{
* * * * * *// задать бонус = 30
* * * * * *HP_Artefakt_Value = HP_Ring_Solo_Bonus;
* * * *};
* *}
* *// если одето второе кольцо
* *else if(HP_Ring_2_Equipped == TRUE)
* *{
* * * *// задать бонус = 30
* * * *HP_Artefakt_Value = HP_Ring_Solo_Bonus;
* *};
* *return HP_Artefakt_Value;
};

// Получить бонус к магии (аналогично предыдущей)
// ----------------------------------------------------------------
// Возвращаемое значение: бонус
func int C_MA_ArtefaktValue()
{ * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* *var int MA_Artefakt_Value; * * * * * * * * * * * * * * *
* *MA_Artefakt_Value = 0; * * * * * * * * * * * * * * * * *
* *if(MA_Amulett_Equipped == TRUE) * * * *
* *{ * * * * * * * * * * * * * * * * * * *
* * * *if(MA_Ring_1_Equipped == TRUE) * * * * *
* * * *{
* * * * * *if(MA_Ring_2_Equipped == TRUE)
* * * * * *{
* * * * * * * *if(MA_Artefakt_Effekt == FALSE)
* * * * * * * *{
* * * * * * * * * *Wld_PlayEffect("SPELLFX_LIGHTSTAR_WHITE",self,sel f,0,0,0,FALSE);
* * * * * * * * * *Snd_Play("MFX_LIGHT_CAST");
* * * * * * * * * *MA_Artefakt_Effekt = TRUE;
* * * * * * * *};
* * * * * * * *MA_Artefakt_Value = MA_Amulett_Artefakt_Bonus;
* * * * * *}
* * * * * *else
* * * * * *{
* * * * * * * *MA_Artefakt_Value = MA_Amulett_EinRing_Bonus;
* * * * * *};
* * * *}
* * * *else if(MA_Ring_2_Equipped == TRUE)
* * * *{
* * * * * *MA_Artefakt_Value = MA_Amulett_EinRing_Bonus;
* * * *}
* * * *else
* * * *{
* * * * * *MA_Artefakt_Value = MA_Amulett_Solo_Bonus;
* * * *};
* *}
* *else if(MA_Ring_1_Equipped == TRUE)
* *{
* * * *if(MA_Ring_2_Equipped == TRUE)
* * * *{
* * * * * *MA_Artefakt_Value = MA_Ring_Double_Bonus;
* * * *}
* * * *else
* * * *{
* * * * * *MA_Artefakt_Value = MA_Ring_Solo_Bonus;
* * * *};
* *}
* *else if(MA_Ring_2_Equipped == TRUE)
* *{
* * * *MA_Artefakt_Value = MA_Ring_Solo_Bonus;
* *};
* *return MA_Artefakt_Value;
};

// Получить бонус к сиде (аналогично предыдущей)
// ----------------------------------------------------------------
// Возвращаемое значение: бонус
func int C_STR_ArtefaktValue()
{ * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* *var int STR_Artefakt_Value; * * * * * * * * * * * * * * * *
* *STR_Artefakt_Value = 0; * * * * * * * * * * * * * * * * * *
* *if(STR_Amulett_Equipped == TRUE) * * * *
* *{ * * * * * * * * * * * * * * * * * * *
* * * *if(STR_Ring_1_Equipped == TRUE) * * * *
* * * *{
* * * * * *if(STR_Ring_2_Equipped == TRUE)
* * * * * *{
* * * * * * * *if(STR_Artefakt_Effekt == FALSE)
* * * * * * * *{
* * * * * * * * * *Wld_PlayEffect("SPELLFX_LIGHTSTAR_WHITE",self,sel f,0,0,0,FALSE);
* * * * * * * * * *Snd_Play("MFX_LIGHT_CAST");
* * * * * * * * * *STR_Artefakt_Effekt = TRUE;
* * * * * * * *};
* * * * * * * *STR_Artefakt_Value = STR_Amulett_Artefakt_Bonus;
* * * * * *}
* * * * * *else
* * * * * *{
* * * * * * * *STR_Artefakt_Value = STR_Amulett_EinRing_Bonus;
* * * * * *};
* * * *}
* * * *else if(STR_Ring_2_Equipped == TRUE)
* * * *{
* * * * * *STR_Artefakt_Value = STR_Amulett_EinRing_Bonus;
* * * *}
* * * *else
* * * *{
* * * * * *STR_Artefakt_Value = STR_Amulett_Solo_Bonus;
* * * *};
* *}
* *else if(STR_Ring_1_Equipped == TRUE)
* *{
* * * *if(STR_Ring_2_Equipped == TRUE)
* * * *{
* * * * * *STR_Artefakt_Value = STR_Ring_Double_Bonus;
* * * *}
* * * *else
* * * *{
* * * * * *STR_Artefakt_Value = STR_Ring_Solo_Bonus;
* * * *};
* *}
* *else if(STR_Ring_2_Equipped == TRUE)
* *{
* * * *STR_Artefakt_Value = STR_Ring_Solo_Bonus;
* *};
* *return STR_Artefakt_Value;
};

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