Edgewise,
I've looked at all your posts regarding changes you'd like to see and how the game isn't doing this or isn't doing that, etc etc. From what I can tell, most of your suggestions/ideas appear to be do-able, in one way or another.
I haven't had the time to tweak anything but if you have a moment you can look in the BASIS/SCRIPTS/AI folder and open up the "table_values" lua with notepad and see the variables that can be adjusted ... but unfortunately the remarks are garbled and cannot be translated however it's almost self explanatory.
If you tweak a few things that change your game play to a more challenging level then please let us know.
Below is a snipet from that file (hard level) :
lvl = LEVEL_HARD,
maxMoveDist = 15, -- ðàññòîÿíèÿ äëÿ ïåðåìåùåíèÿ (øòóðìîâèê)
medMoveDist = 10, --
defMoveDist = 5, --
minMoveDist = 1, --
sniperMaxMoveDist = 5, -- ðàññòîÿíèÿ äëÿ ïåðåìåùåíèÿ (ñíàéïåð)
sniperMedMoveDist = 4, --
sniperDefMoveDist = 3, --
sniperMinMoveDist = 1, --
maxStrategy = 3, -- êîëè÷åñòâî ñòðàòåãèé (TB)
medMoveMistake = 0.3, -- ñðåäíÿÿ îøèáêà ïî íàïðàâëåíèþ ïðè ïåðåìåùåíèè ê öåëè
smallMoveMistake = 0.1, -- ìàëàÿ îøèáêà ïî íàïðàâëåíèþ ïðè ïåðåìåùåíèè ê öåëè
rotateMistake = 80, -- îòêëîíåíèå öåëè îò ëèíèè çðåíèÿ, ïðè êîòîðîì ïîâîðà÷èâàòüñÿ ñ öåëüþ óâèäåòü íå íàäî
hitBreathPenalty = 200, -- ïåíàëüòè íà ýíåðãèþ ïðè ðàíåíèè (äëÿ þíèòîâ èãðîêà òîæå)
boredInterval = 120, -- âðåìÿ, ïîñëå êîòîðîãî íàåìíèêè íà÷èíàþò èçëàãàòü ìóäðûå ìûñëè
useOneGrenadePerTurn = false,
----------------------------------
RTMinBreathForJob = 2000, -- ïîðîã ýíåðãèè, ïðè äîñòèæåíèè êîòîðîãî íóæíî îòäûõàòü (RT)
TBMinBreathForJob = 1000, -- ïîðîã ýíåðãèè, ïðè äîñòèæåíèè êîòîðîãî íóæíî îòäûõàòü (TB)
TBBreathForWalk = 3300,
tooCloseDist = 10, -- ìèíèìàëüíî âîçìîæíîå ðàññòîÿíèå äî âðàãà ïðè ñáëèæåíèè
moraleTresholdPoseUp = 55, -- ïîðîã ìîðàëè âûøå êîòîðîãî þíèò ïîâûøàåò ïîçó
moraleTresholdPoseDown = 40, -- ïîðîã ìîðàëè íèæå êîòîðîãî þíèò ïîíèæàåò ïîçó
moraleTresholdFlee = 50, -- ... ñïàñàåòñÿ áåãñòâîì âìåñòî àòàêè â melee
strafeProb = 0.3, -- âåðîÿòíîñòü ñòðåéôà ïðè îòñóòñòâèè ëèíèè îãíÿ
forcedMeleeDist = 7, -- ðàññòîÿíèå íà êîòîðîì þíèò àòàêóåò â melee
forcedMeleeProb = 0.9, -- âåðîÿòíîñòü àòàêè â melee
turnForVisibleReport = 1, -- êîëè÷åñòâî òóðíîâ, ïîñëå RT, ïîñëå êîòîðûõ þíèò ñîîáùèò î âèäèìûõ âðàãàõ ñîþçíèêàì
visibleReportProb = 0.9, -- âåðîÿòíîñòü ñîîáùåíèÿ î âèäèìûõ âðàãàõ ñîþçíèêàì
soldierMaxMissTries = 2, -- ìàêñèìàëüíîå êîëè÷åñòâî ïðîìàõîâ ïåðåä ñìåíîé ïîçèöèè (øòóðìîâèê)
sniperMaxMissTries = 3, -- ìàêñèìàëüíîå êîëè÷åñòâî ïðîìàõîâ ïåðåä ñìåíîé ïîçèöèè (ñíàéïåð)
sniperMaxAttacks = 5, -- ìàêñèìàëüíîå êîëè÷åñòâî àòàê ñ îäíîãî ìåñòà (ñíàéïåð)
tryWalkAroundProb = 0.5, -- âåðîÿòíîñòü îáõîäà ïðîòèâíèêà (èíà÷å - ïðîñòîå ñáëèæåíèå)
minGrenadeRange = 8, -- ìèíèìàëüíîå ðàññòîÿíèå äëÿ àòàêè ãðàíàòîé
useGrenadeProb = 0.5, -- 1-áàçîâàÿ âåðîÿòíîñòü àòàêè ãðàíàòîé
reloadTreshold = 50, -- ïðîöåíò ïàòðîíîâ â ìàãàçèíå ïðè êîòîðîì ïðîâîäèòñÿ òàêòè÷åñêàÿ ïåðåçàðÿäêà
tryHealAlly = true, -- ïûòàòüñÿ ëå÷èòü óìèðàþùèõ ñîþçíèêîâ?
mayCheckLoot = true, -- øàðèòü ïî ëóòó áåç îñòðîé íåîáõîäèìîñòè?
tryKillDyingEnemy = true, -- äîáèâàòü óìèðàþùèõ âðàãîâ ïðè ïðîâåðêå ëóòà?
attackDyingEnemyProb = 0.4, -- âåðîÿòíîñòü àòàêè óìèðàþùåãî âðàãà
psychoProcessed = 0.15, -- âåðîÿòíîñòü "ïñèõè÷åñêîé" ðåàêöèè ïðè âûñòðåëå (äëÿ ìåðêîâ)
maxGrenadeMistake = 3, -- îøèáêà ïðè áðîñêå ãðàíàòû (ìîäèôèêàòîð çäîðîâüÿ)
healthPercentToBandage = 50,
----------------------------------------
RTKnownStalkers = 3, -- êîëè÷åñòâî ïðåñëåäîâàòåëåé èçâåñòíîé öåëè â RT
TBKnownStalkers = 5, -- êîëè÷åñòâî ïðåñëåäîâàòåëåé èçâåñòíîé öåëè â RT
----------------------------
dangerSoundShotDist = 90, -- ðàññòîÿíèå, íà êîòîðîì çâóê âûñòðåëà ñ÷èòàåòñÿ îïàñíûì
dangerSoundBlastDist = 110, -- ðàññòîÿíèå, íà êîòîðîì çâóê âçðûâà ñ÷èòàåòñÿ îïàñíûì
dangerSoundBulletDist = 5, -- ðàññòîÿíèå, íà êîòîðîì çâóê ïóëè ñ÷èòàåòñÿ îïàñíûì
forgetSoundInterval = 200, -- âðåìÿ â ñåêóíäàõ, ÷åðåç êîòîðîå çâóê áóäåò çàáûò
RTSoundStalkers = 3, -- êîëè÷åñòâî ïðåñëåäîâàòåëåé çâóêà â RT
TBSoundStalkers = 5, -- êîëè÷åñòâî ïðåñëåäîâàòåëåé çâóêà â TB
RTSoundStalkMode = "walk", -- ðåæèì ïåðåäâèæåíèÿ ïðåñëåäîâàòåëåé çâóêà â RT
TBSoundStalkMode = "run", -- ðåæèì ïåðåäâèæåíèÿ ïðåñëåäîâàòåëåé çâóêà â TB
----------------------------------------------------
roamInterval = 90, -- èíòåðâàë âðåìåíè, â òå÷åíèè êîòîðîãî ïðîâîäèòñÿ ïîèñê
roamRadius = 20, -- ðàäèóñ ïîèñêà
lazyRoamInterval = 30, -- èíòåðâàë âðåìåíè, â òå÷åíèè êîòîðîãî ïðîâîäèòñÿ "ëåíèâûé" ïîèñê (ò.å. áåç ÷åòêîé öåëè)
lazyRoamRadius = 15, -- ðàäèóñ "ëåíèâîãî" ïîèñêà
lazyRoamIntensivity = 0.12, -- èíòåíñèâíîñòü "ëåíèâîãî" ïîèñêà
lazyRoamLowTime = 4, -- íèæíèé ïîðîã "íè÷åãîíåäåëàíüÿ" ïðè "ëåíèâîì" ïîèñêå
lazyRoamUpTime = 9, -- âåðõíèé ...
------------------------------
mpAllyCorpseSighted = 0, -- ïåíàëüòè åñëè óâèäåë òðóï ñîþçíèêà
mpAllyHit = -1, -- ïåíàëüòè åñëè ïîïàë ïî ñâîåìó
mpAllyKilled = -2, -- ïåíàëüòè åñëè óáèë ñâîåãî (äîáàâî÷íîå)
mpAllyKilledAll = -1, -- ïåíàëüòè âñåì îäíîïîë÷àíàì åñëè óáèë ñâîåãî (äîáàâî÷íîå)
mpHit = -2, -- ïåíàëüòè åñëè ïîïàëè
mpKilledAll = -6, -- ïåíàëüòè âñåì îäíîïîë÷àíàì åñëè óáèëè
mbEnemyHit = 2, -- áîíóñ åñëè ïîïàë ïî âðàãó
mbEnemyKilled = 5, -- áîíóñ åñëè óáèë âðàãà
mbEnemyKilledAll = 2, -- áîíóñ âñåì îäíîïîë÷àíàì åñëè óáèë âðàãà
-------------------------------------
leaderOptDist = 25, -- îïòèìàëüíàÿ äèñòàíöèÿ áîéöà äî êîìàíäèðà
leaderMaxCmdDist = 30, -- ìàêñèìàëüíàÿ äèñòàíöèÿ, íà êîòîðîé êîìàíäèð óïðàâëÿåò áîéöîì
leaderFarDist = 40, -- äèñòàíöèÿ ïðè ïðèâûøåíèè êîòîðîé êîìàíäèð áóäåò ïîäçûâàòü áîéöà
----------------------------------
leaderAllowDiedProb = 0.33, -- äîïóñòèìûé ïðîöåíò æèâûõ äëÿ ïðîäîëæåíèÿ áåç ïðèíÿòèÿ ñåðüåçíûõ è ðåøèòåëüíûõ ìåð
leaderRetreatProb = 0.4, -- âåðîÿòíîñòü îòäà÷è êîìàíäèðîì ïðèêàçà íà îòñòóïëåíèå ïðè ìîðàëè 100 (èíà÷å - ðåôîðìèðîâàíèå îòäåëåíèÿ)
leaderRetreatTurns = 2, -- êîëè÷åñòâî òóðíîâ îòñòóïëåíèÿ ïåðåä î÷åðåäíîé îöåíêîé ñèòóàöèè
---------------------------------------------
surroundTurns = 2, -- èíòåðâàë ïîñëå êîòîðîãî áóäåò ïðîâåäåíà î÷åðåäíàÿ îöåíêà ñèòóàöèè
surManyEnemiesSoldier = 0.2, -- âåðîÿòíîñòü îòñòóïëåíèÿ ïðè áîëüøîì êîë-âå âðàãîâ (ïðè ìîðàëè 100, øòóðìîâèê)
surBadHealthSoldier = 0.15, -- âåðîÿòíîñòü îòñòóïëåíèÿ ïðè íèçêîì çäîðîâüå (ïðè ìîðàëè 100, øòóðìîâèê)
surManyEnemiesSniper = 0.35, -- âåðîÿòíîñòü îòñòóïëåíèÿ ïðè áîëüøîì êîë-âå âðàãîâ (ïðè ìîðàëè 100, ñíàéïåð, ëèäåð, ïàòðóëü)
surBadHealthSniper = 0.25, -- âåðîÿòíîñòü îòñòóïëåíèÿ ïðè íèçêîì çäîðîâüå (ïðè ìîðàëè 100, ñíàéïåð, ëèäåð, ïàòðóëü)
retreatHealth = 33, -- ïðîöåíò çäîðîâüÿ äëÿ îòñòóïëåíèÿ
retreatEnemies = 7, -- êîëè÷åñòâî âðàãîâ äëÿ îòñòóïëåíèÿ (øòóðìîâèê)
retreatEnemiesSniper = 4, -- êîëè÷åñòâî âðàãîâ äëÿ îòñòóïëåíèÿ (ëèäåð,ñíàéïåð,ïàòðóëü)
table_values =
-- really used
over_head = 1.00, -- ïîêàçûâàòü ðåìàðêó íàä ãîëîâîé
corner = 0.00, -- ïîêàçûâàòü ðåìàðêó â óãëó
-- for compability only
max_move_distance = 15.00, -- íà êàêîå ìàêñèìàëüíîå ðàññòîÿíèå îòäàâàòü ïðèêàç íà äâèæåíèå â ïîøàãîâîì ðåæèìå
med_move_distance = 10.00, -- íà êàêîå ñðåäíåå ðàññòîÿíèå îòäàâàòü ïðèêàç íà äâèæåíèå â ïîøàãîâîì ðåæèìå
default_move_distance = 5.00, -- íà êàêîå ðàññòîÿíèå îòäàâàòü ïðèêàç íà äâèæåíèå â ïîøàãîâîì ðåæèìå ïî óìîë÷àíèþ
min_move_distance = 1.00, -- íà êàêîå ìèíèìàëüíîå ðàññòîÿíèå îòäàâàòü ïðèêàç íà äâèæåíèå â ïîøàãîâîì ðåæèìå
min_grenade_throwing_dist = 8.00, -- ìèíèìàëüíàÿ äèñòàíöèÿ áðîñêà ãðàíàòû (÷òîáû íå ïîôà÷èòüñÿ)
dist_to_not_move_closer = 10.00,
max_danger_dist_of_bullet_sound = 10.00, -- äèñòàíöèÿ, íà êîòîðîé çâóê ïóëè ñ÷èòàåòñÿ îïàñíûì
max_danger_dist_of_grenade_sound = 200.00, -- äèñòàíöèÿ, íà êîòîðîé çâóê óïàâøåé ãðàíàòû ñ÷èòàåòñÿ îïàñíûì
max_danger_dist_of_shot_sound = 100.00, -- äèñòàíöèÿ, íà êîòîðîé çâóê âûñòðåëà ñ÷èòàåòñÿ îïàñíûì
allow_stalkers = 5.00, -- ñêîëüêî ÷åëîâåê ìîæåò ïðåñëåäîâàòü îäíó è òóæå öåëü
retreat_health = 33.00, -- ñêîëüêî ïðîöåíòîâ çäîðîâüÿ äîëæíî áûòü ÷òîáû ñãåíåðèðîâàòü îòñòóïëåíèå
retreat_enemies = 3.00, -- ñêîëüêî îïàñíûõ âðàãîâ íàäî âèäåòü ÷òîáû ñãåíåðèðîâàòü îòñóòïëåíèå
reload_threshold = 50.00, -- ñêîëüêî ïðîöåíòîâ ïàòðîíîâ äîëæíî îñòàòñüÿ â îðóæèè - ÷òîáû ïðèíóäèòåëüíî ïåðåçàðÿäèòü
-- junk below
default_ai_priority = 0.50, -- ïðèîðèòåò äåéñòâèé ÈÈ ïî óìîë÷àíèþ ÍÅ ÐÅÄÀÊÒÈÐÎÂÀÒÜ!
hurt_ai_light_priority = 0.90, -- ïðèîðèòåò äåéñòâèé ÈÈ ïðè ðàíåíèè ÍÅ ÐÅÄÀÊÒÈÐÎÂÀÒÜ!
hurt_ai_medium_priority = 0.91, -- ïðèîðèòåò äåéñòâèé ÈÈ ïðè ðàíåíèè ÍÅ ÐÅÄÀÊÒÈÐÎÂÀÒÜ!
underfire_ai_priority = 0.80, -- ïðèîðèòåò äåéñòâèé ÈÈ ïðè îáñòðåëå ÍÅ ÐÅÄÀÊÒÈÐÎÂÀÒÜ!
shoot_ai_priority = 0.70, -- ïðèîðèòåò äåéñòâèé ÈÈ ïðè âèäå âðàãà ÍÅ ÐÅÄÀÊÒÈÐÎÂÀÒÜ!
remember_ai_priority = 0.10, -- ïðèîðèòåò âñïîìèíàíèÿ ÈÈ çâóêîâ ÍÅ ÐÅÄÀÊÒÈÐÎÂÀÒÜ!
default_trigger_priority = 0.10, -- ïðèîðèòåò ïðèêàçîâ òðèããåðà ïî óìîë÷àíèþ
on_attack_shoot_trigger_finding = 0.50, -- âåðîÿòíîñòü íàõîæäåíèÿ òðèããåðà cover è shoot_position ïðè ïàðàìåòðå initiative=1
on_bullet_orders_canceling = 0.50, -- âåðîÿòíîñòü ïîõåðèòü ïðèêàçû ïðè ïàðàìåòðå persistence=1
only_auto_firing_dist = 20.00, -- äèñòàíöèÿ äî âðàãà, äî êîòîðîé ïåðñ ñòðåëÿåò äëèííîé î÷åðåäüþ (80%) èëè êîðîòêîé î÷åðåäüþ (20%)
max_auto_firing_dist = 25.00, -- äèñòàíöèÿ äî âðàãà, äî êîòîðîé ïåðñ ñòðåëÿåò äëèííîé î÷åðåäüþ (20%) èëè êîðîòêîé î÷åðåäüþ (80%)
max_burst_firing_dist = 50.00, -- äèñòàíöèÿ äî âðàãà, äî êîòîðîé ïåðñ ñòðåëÿåò êîðîòêîé î÷åðåäüþ (60%) èëè îäèíî÷íûì (40%)
mostly_single_firing_dist = 75.00, -- äèñòàíöèÿ äî âðàãà, äî êîòîðîé ïåðñ ñòðåëÿåò êîðîòêîé î÷åðåäüþ (20%) èëè îäèíî÷íûì (80%)
dist_to_run_from_grenade = 10.00, -- äèñòàíöèÿ, íà êîòîðóþ îòáåãàåò ÷åë îò ãðàíàòû
grenade_throwing = 0.15, -- âåðîÿòíîñòü áðîñêà ãðàíàòû ïåðåä ïðèêàçîì ñòðåëÿòü
max_stand_firing_dist = 30.00, -- äèñòàíöèÿ äî âðàãà, äî êîòîðîé ïåðñ ñòðåëÿåò ñòîÿ
max_sit_firing_dist = 75.00, -- äèñòàíöèÿ äî âðàãà, äî êîòîðîé ïåðñ ñòðåëÿåò ñèäÿ
time_between_taking_HMG = 2.00, -- ïðîìåæóòîê âðåìåíè â ñåêóíäàõ, ÷åðåç êîòîðûé ïåðñ ïûòàåòñÿ âçÿòü èëè áðîñèòü HMG
time_trigger_timeout = 10.00, -- âðåìÿ, êîòîðîå HMG òðèããåð æäåò, ïîêà ê íåìó êòî-òî ïðèáåæèò
time_to_remember_sound = 5.00, -- âðåìÿ â ñåêóíäàõ, êîòîðîå ïåðñ ïîìíèò çâóêè
delay_to_remember_sounds = 4.00, -- ìàêñèìàëüíàÿ çàäåðæêà â ñåêóíäàõ íà âñïîìèíàíèå î÷åðåäíîãî çâóêà
delay_to_awake = 60.00, -- çàäåðæêà, ïîñëå êîòîðîé idle-áàíäèò âñòàåò
dist_to_trace_sound_point = 3.00, -- ðàññòîÿíèå, íà êîòîðîå òðàññèðîâàòü ëó÷èê äî èñòî÷íèêà çâóêà
dist_to_trigger_NEAR = 2.00, -- ðàññòîÿíèå, íà êîòîðîì òðèããåð shoot_position ñ÷èòàåòñÿ "áëèçêèì"
fmod_single = 0.00, -- ñòðåëüáà îäèíî÷íûìè
fmod_triple = 1.00, -- ñòðåëüáà êîðîòêîé î÷åðåäüþ
fmod_burst = 2.00, -- ñòðåëüáà î÷åðåäüþ
fmod_grenade = 3.00, -- ñòðåëüáà ãðàíàòàìè
slot_primary = 0.00, -- ñëîò îñíîâíîãî îðóæèÿ (âèíòîâêè)
slot_special = 1.00, -- ñëîò ñïåö. îðóæèÿ (ìèíîìåòû)
slot_secondary = 2.00, -- ñëîò âòîðè÷íîãî îðóæèÿ (ïèñòîëåòû)
slot_grenade = 3.00, -- ñëîò ñ ãðàíàòàìè
slot_medkit = 4.00, -- ñëîò ñ àïòå÷êàìè
slot_melee = 5.00, -- ñëîò ñ îðóæèåì áëèæíåãî áîÿ
max_teammate_hurted_distance = 30.00, -- ðàññòîÿíèå äî ñâîåãî, íà êîòîðîì îáðàáàòûâàåòñÿ ñîáûòèå "Ñâîé ðàíåí"
buttons_ok = 0.00, -- êíîïêè äëÿ messageBox'a: OK
buttons_ok_cancel = 1.00, -- êíîïêè äëÿ messageBox'a: OK & CANCEL
buttons_yes_no = 2.00, -- êíîïêè äëÿ messageBox'a: YES & NO
button_ok = 0.00, -- êíîïêà îò messageBox'a: OK
button_cancel = 3.00, -- êíîïêà îò messageBox'a: CANCEL
button_yes = 4.00, -- êíîïêà îò messageBox'a: YES
button_no = 5.00, -- êíîïêà îò messageBox'a: NO
subpoints_per_point = 25.00, -- for rpg system
----------------------------------