|
Re: Уроки скриптологии
// ************************************************* // Подсчет абсолютного уровня криминала по локациям // *************************************************
func void B_GrantAbsolution(var int location) { * *// если Миненталь или все локации * *if(location == LOC_OLDCAMP) ¦¦ (location == LOC_ALL) * *{ * * * *// абсолютный уровень по локации++ * * * *ABSOLUTIONLEVEL_OldCamp = ABSOLUTIONLEVEL_OldCamp + 1; * * * *// сброс счетчиков криминала по локации * * * *PETZCOUNTER_OldCamp_Murder * * *= 0; * * * *PETZCOUNTER_OldCamp_Theft * * * = 0; * * * *PETZCOUNTER_OldCamp_Attack * * *= 0; * * * *PETZCOUNTER_OldCamp_Sheepkiller = 0; * *}; * *// если Хоринис или все локации * *if(location == LOC_CITY) ¦¦ (location == LOC_ALL) * *{ * * * *ABSOLUTIONLEVEL_City = ABSOLUTIONLEVEL_City + 1; * * * *PETZCOUNTER_City_Murder * * * * = 0; * * * *PETZCOUNTER_City_Theft * * * * *= 0; * * * *PETZCOUNTER_City_Attack * * * * = 0; * * * *PETZCOUNTER_City_Sheepkiller * *= 0; * *}; * *// если Монастырь или все локации * *if(location == LOC_MONASTERY) ¦¦ (location == LOC_ALL) * *{ * * * *ABSOLUTIONLEVEL_Monastery = ABSOLUTIONLEVEL_Monastery + 1; * * * *PETZCOUNTER_Monastery_Murder * * * *= 0; * * * *PETZCOUNTER_Monastery_Theft * * * * = 0; * * * * * * * *PETZCOUNTER_Monastery_Attack * * * *= 0; * * * *PETZCOUNTER_Monastery_Sheepkiller * = 0; * *}; * *// если Ферма наемников или все локации * *if(location == LOC_FARM) ¦¦ (location == LOC_ALL) * *{ * * * *ABSOLUTIONLEVEL_Farm = ABSOLUTIONLEVEL_Farm + 1; * * * *PETZCOUNTER_Farm_Murder * * * * = 0; * * * *PETZCOUNTER_Farm_Theft * * * * *= 0; * * * *PETZCOUNTER_Farm_Attack * * * * = 0; * * * *PETZCOUNTER_Farm_Sheepkiller * *= 0; * *}; * *// если Лагерь бандитов * *if(location == LOC_BL) * *{ * * * *ABSOLUTIONLEVEL_BL = ABSOLUTIONLEVEL_BL + 1; * * * *PETZCOUNTER_BL_Murder * * * * * = 0; * * * *PETZCOUNTER_BL_Theft * * * * * *= 0; * * * *PETZCOUNTER_BL_Attack * * * * * = 0; * *}; };
... ещё файл
// ************************************************** ********************* // Получить абсолютный уровень криминала для локации // ************************************************** *********************
// ====================================== // Аргументы: // -------------------------------------- // slf - НПС, проживающий в локации // -------------------------------------- // Возвращаемое значение - абсолютный уровень криминала // ======================================
func int B_GetCurrentAbsolutionLevel(var C_NPC slf) { * *// если НПС из Миненталя * *if(C_NpcBelongsToOldCamp(slf)) * *{ * * * *return ABSOLUTIONLEVEL_OldCamp; * * * * * *}; * *// если НПС из Хориниса * *if(C_NpcBelongsToCity(slf)) * *{ * * * *return ABSOLUTIONLEVEL_City; * * * * * * * *}; * *// если НПС из Монастыря * *if(C_NpcBelongsToMonastery(slf)) * *{ * * * *return ABSOLUTIONLEVEL_Monastery; * * * * *}; * *// если НПС с Фермы наемников * *if(C_NpcBelongsToFarm(slf)) * *{ * * * *return ABSOLUTIONLEVEL_Farm; * *}; * *// если НПС из Лагеря бандитов * *if(C_NpcBelongsToBL(slf)) * *{ * * * *return ABSOLUTIONLEVEL_BL; * *}; * *return 0; };
... и ещё
// ************************************************* // Получить суммарный уровень криминала по локациям // *************************************************
// ====================================== // Аргументы: // -------------------------------------- // slf - НПС, проживающий в локации // -------------------------------------- // Возвращаемое значение - суммарный уровень криминала ГГ для локации // ======================================
func int B_GetTotalPetzCounter(var C_NPC slf) { * *// если НПС из Миненталя * *if (C_NpcBelongsToOldCamp(slf)) * *{ * * * *// суммарный уровень криминала для локации * * * *return (PETZCOUNTER_OldCamp_Murder + PETZCOUNTER_OldCamp_Theft + PETZCOUNTER_OldCamp_Attack + PETZCOUNTER_OldCamp_Sheepkiller); * *}; * *// если НПС из Хориниса * *if (C_NpcBelongsToCity(slf)) * *{ * * * *return (PETZCOUNTER_City_Murder + PETZCOUNTER_City_Theft + PETZCOUNTER_City_Attack + PETZCOUNTER_City_Sheepkiller); * *}; * *// если НПС из Монастыря * *if (C_NpcBelongsToMonastery(slf)) * *{ * * * *return (PETZCOUNTER_Monastery_Murder + PETZCOUNTER_Monastery_Theft + PETZCOUNTER_Monastery_Attack + PETZCOUNTER_Monastery_Sheepkiller); * *}; * *// если НПС с Фермы наемников * *if (C_NpcBelongsToFarm(slf)) * *{ * * * *return (PETZCOUNTER_Farm_Murder + PETZCOUNTER_Farm_Theft + PETZCOUNTER_Farm_Attack + PETZCOUNTER_Farm_Sheepkiller); * *}; * *// если НПС из Лагеря бандитов * *if (C_NpcBelongsToBL(slf)) * *{ * * * *return (PETZCOUNTER_BL_Murder + PETZCOUNTER_BL_Theft + PETZCOUNTER_BL_Attack); * *}; * *return 0; };
... и еще
// ************************************************** ******* // Получить криминал ГГ по локациям и в порядке приоритетов // ************************************************** *******
// ====================================== // Аргументы: // -------------------------------------- // slf - НПС, проживающий в локации // -------------------------------------- // Возвращаемое значение - приоритетный криминал для локации // ======================================
func int B_GetGreatestPetzCrime(var C_NPC slf) { * *// если НПС из Миненталя * *if(C_NpcBelongsToOldCamp(slf)) * *{ * * * *// если счетчик убийств > 0 * * * *if(PETZCOUNTER_OldCamp_Murder > 0) * * * *{ * * * * * *// криминал - убийство * * * * * *return CRIME_MURDER; * * * *}; * * * *// если счетчик воровства > 0 * * * *if(PETZCOUNTER_OldCamp_Theft > 0) * * * *{ * * * * * *// криминал - воровство * * * * * *return CRIME_THEFT; * * * *}; * * * *// если счетчик нападений > 0 * * * *if(PETZCOUNTER_OldCamp_Attack > 0) * * * *{ * * * * * *// криминал - нападение * * * * * *return CRIME_ATTACK; * * * *}; * * * *// если счетчик убийств овец > 0 * * * *if(PETZCOUNTER_OldCamp_Sheepkiller > 0) * * * *{ * * * * * *// криминал - убийство овец * * * * * *return CRIME_SHEEPKILLER; * * * *}; * *}; * *// если НПС из Хориниса * *if(C_NpcBelongsToCity(slf)) * *{ * * * *if(PETZCOUNTER_City_Murder > 0) * * * *{ * * * * * *return CRIME_MURDER; * * * *}; * * * *if(PETZCOUNTER_City_Theft > 0) * * * *{ * * * * * *return CRIME_THEFT; * * * *}; * * * *if(PETZCOUNTER_City_Attack > 0) * * * *{ * * * * * *return CRIME_ATTACK; * * * *}; * * * *if(PETZCOUNTER_City_Sheepkiller > 0) * * * *{ * * * * * *return CRIME_SHEEPKILLER; * * * *}; * *}; * *// если НПС из Монастыря * *if(C_NpcBelongsToMonastery(slf)) * *{ * * * *if(PETZCOUNTER_Monastery_Murder > 0) * * * *{ * * * * * *return CRIME_MURDER; * * * *}; * * * *if(PETZCOUNTER_Monastery_Theft > 0) * * * *{ * * * * * *return CRIME_THEFT; * * * *}; * * * *if(PETZCOUNTER_Monastery_Attack > 0) * * * *{ * * * * * *return CRIME_ATTACK; * * * *}; * * * *if(PETZCOUNTER_Monastery_Sheepkiller > 0) * * * *{ * * * * * *return CRIME_SHEEPKILLER; * * * *}; * *}; * *// если НПС с Фермы наемников * *if(C_NpcBelongsToFarm(slf)) * *{ * * * *if(PETZCOUNTER_Farm_Murder > 0) * * * *{ * * * * * *return CRIME_MURDER; * * * *}; * * * *if(PETZCOUNTER_Farm_Theft > 0) * * * *{ * * * * * *return CRIME_THEFT; * * * *}; * * * *if(PETZCOUNTER_Farm_Attack > 0) * * * *{ * * * * * *return CRIME_ATTACK; * * * *}; * * * *if(PETZCOUNTER_Farm_Sheepkiller > 0) * * * *{ * * * * * *return CRIME_SHEEPKILLER; * * * *}; * *}; * *// если НПС из Лагеря бандитов * *if(C_NpcBelongsToBL(slf)) * *{ * * * *if(PETZCOUNTER_BL_Murder > 0) * * * *{ * * * * * *return CRIME_MURDER; * * * *}; * * * *if(PETZCOUNTER_BL_Theft > 0) * * * *{ * * * * * *return CRIME_THEFT; * * * *}; * * * *if(PETZCOUNTER_BL_Attack > 0) * * * *{ * * * * * *return CRIME_ATTACK; * * * *}; * *}; * *return CRIME_NONE; };
|