Closed Kor-Angar closed 3 years ago
Вынесла все молитвы в одну функцию для удобства под возможные изменения и для чистоты кода. Все бонусы правильные?
func void B_Pray(var int gold)
{
var int zufall;
zufall = Hlp_Random(100);
if(C_PrayedToday())
{
PrintScreen(Print_BlessNone,-1,-1,FONT_Screen,2);
}
else if(gold == 0)
{
if(zufall < 5)
{
B_BlessAttribute(hero,ATR_HITPOINTS_MAX,1);
}
else
{
PrintScreen(Print_BlessNone,-1,-1,FONT_Screen,2);
};
}
else if(gold == PrayAmountSmall)
{
B_BlessAttribute(hero,ATR_HITPOINTS_MAX,1);
}
else if(gold == PrayAmountMedium)
{
B_BlessAttribute(hero,ATR_HITPOINTS_MAX,2);
}
else if(gold == PrayAmountBig)
{
if((Stats_Blessings_Str < 10) && (hero.guild != GIL_KDF) && (hero.guild != GIL_NOV) && (zufall < 50))
{
B_BlessAttribute(hero,ATR_STRENGTH,1);
}
else if((Stats_Blessings_Dex < 10) && (hero.guild != GIL_KDF) && (hero.guild != GIL_NOV) && (zufall >= 50))
{
B_BlessAttribute(hero,ATR_DEXTERITY,1);
}
else if((Stats_Blessings_MaxMana < 20) && (hero.guild != GIL_SLD) && (hero.guild != GIL_DJG))
{
B_BlessAttribute(hero,ATR_MANA_MAX,1);
}
else
{
B_BlessAttribute(hero,ATR_HITPOINTS_MAX,3);
};
};
PrayDay = Wld_GetDay();
if(PrayDay == 0)
{
PrayDayOne = TRUE;
};
if(gold > 0)
{
Npc_RemoveInvItems(hero,ItMi_Gold,gold);
Stats_Blessings_GoldGiven += gold;
AI_PrintScreen(ConcatStrings(IntToString(gold),PRINT_GoldGiven),-1,YPOS_GoldGiven,FONT_ScreenSmall,2);
};
};
вроде правильно. на всякий случай я вот тут выписывал бонусы https://steamcommunity.com/sharedfiles/filedetails/?id=2361240610
може сразу заложить возможность что то в дальнейшем менять? так по моему удобнее читать
else if(gold == PrayAmountBig)
{
if((Shrine_STR_Bonus < 10) && (zufall < 50))
{
if НовыеМолитвы == false
&& hero.guild != GIL_KDF
&& hero.guild != GIL_NOV
{
B_BlessAttribute(hero,ATR_STRENGTH,1);
Shrine_STR_Bonus += 1;
}
else if hero.guild != GIL_KDF
{
B_BlessAttribute(hero,ATR_STRENGTH,1);
Shrine_STR_Bonus += 1;
};
}
else if((Shrine_DEX_Bonus < 10) && (zufall >= 50))
{
if НовыеМолитвы == false
&& hero.guild != GIL_KDF
&& hero.guild != GIL_NOV
{
B_BlessAttribute(hero,ATR_DEXTERITY,1);
Shrine_DEX_Bonus += 1;
}
else if hero.guild != GIL_KDF
{
B_BlessAttribute(hero,ATR_DEXTERITY,1);
Shrine_DEX_Bonus += 1;
};
}
else if((Shrine_MANA_Bonus < 20)
{
if НовыеМолитвы == false
&& hero.guild != GIL_SLD
&& hero.guild != GIL_DJG
{
B_BlessAttribute(hero,ATR_MANA_MAX,1);
Shrine_MANA_Bonus += 1;
}
else if hero.guild == GIL_KDF
|| hero.guild == GIL_PAL
{
B_BlessAttribute(hero,ATR_MANA_MAX,1);
Shrine_MANA_Bonus += 1;
};
}
else
{
B_BlessAttribute(hero,ATR_HITPOINTS_MAX,3);
};
};
ещё оригинальная механика не даёт возможность паладину сразу получать ману. Хотя мана по ЛОРу идёт в приоритете и является самым ценным бонусом :-)
else if(gold == PrayAmountBig)
{
if НовыеМолитвы == true
&& Shrine_MANA_Bonus < 20
{
if hero.guild == GIL_KDF
|| hero.guild == GIL_PAL
{
B_BlessAttribute(hero,ATR_MANA_MAX,1);
Shrine_MANA_Bonus += 1;
};
}
else if((Shrine_STR_Bonus < 10) && (zufall < 50))
{
if НовыеМолитвы == false
&& hero.guild != GIL_KDF
&& hero.guild != GIL_NOV
{
B_BlessAttribute(hero,ATR_STRENGTH,1);
Shrine_STR_Bonus += 1;
}
else if hero.guild != GIL_KDF
{
B_BlessAttribute(hero,ATR_STRENGTH,1);
Shrine_STR_Bonus += 1;
};
}
else if((Shrine_DEX_Bonus < 10) && (zufall >= 50))
{
if НовыеМолитвы == false
&& hero.guild != GIL_KDF
&& hero.guild != GIL_NOV
{
B_BlessAttribute(hero,ATR_DEXTERITY,1);
Shrine_DEX_Bonus += 1;
}
else if hero.guild != GIL_KDF
{
B_BlessAttribute(hero,ATR_DEXTERITY,1);
Shrine_DEX_Bonus += 1;
};
}
else if((Shrine_MANA_Bonus < 20)
{
if НовыеМолитвы == false
&& hero.guild != GIL_SLD
&& hero.guild != GIL_DJG
{
B_BlessAttribute(hero,ATR_MANA_MAX,1);
Shrine_MANA_Bonus += 1;
};
}
else
{
B_BlessAttribute(hero,ATR_HITPOINTS_MAX,3);
};
};
може сразу заложить возможность что то в дальнейшем менять?
Сама возможность - это как раз эта отдельная функция, в которой находится вся логика. Кому надо - тот легко её поменяет. А если сейчас таких изменений нет и не планируются, то перегружать код не стоит.
не очень понятно. но видимо так задумано.
давай я уйду от игры в слова. а напишу ответ по существу твоего вопроса: "Все бонусы правильные?" - перманентные бонусы правильные. но ввиду того что код был переписан, надо потестить в игре так как возможны при пожертвованиях не в 100 золотых приятные сюрпризы ;-)
Протестируй на досуге, это уже в релизе 26 версии.
Так же хотел предложить(попросить) опционально поправить молитвы Инносу для нейтрала и послушника. сейчас нейтрал получает манну (мент и наём не получают), а послушник не получает силу.
Хотелось бы прировнять гильдии нейтрал=послушник=мент=наём=онд в плане бонусов от Инноса. так как Белиар штрафует только Пала и Мага :-)