ZVSE _WARNING_#1=IMPORTANT! This file is not in a plain text format. NEVER use any editor except ERM_S for making any kind of changes! ERMS_PoweredBy=ERM Scripter v. 2004.10.5.945 ERMS_ScriptDate=29.11(November).2009 свойство Дипломатии: при нападении на нейтралов или на противника (любого цвета) - уменьшается количество монстров на 10/15/25% в зависимости от уровня навыка, минимум на 1 шт. После битвы - если поражение, то испуганные монстры возвращаются обратно. Used: FU28888-28889 VRz850 z851 не должны изменяться в течение боя z852-z854 хранят новое описание Временно: v1-v2, y1-y7, y50, y60, y98-y99 **Описание навыка. !#VRz852:S^{Дипломатия {на {основном {уровне} Уменьшает численность вражеских войск на 10%^; !#VRz853:S^{Дипломатия {на {продвинутом {уровне} Уменьшает численность вражеских войск на 15%^; !#VRz854:S^{Дипломатия {на {экспертном {уровне} Уменьшает численность вражеских войск на 25%^; !#UN:G0/4/1/852 G0/4/2/853 G0/4/3/854; **Функционал !?BA52; в начале битвы... !!BA:H1/?y2; номер защищающегося записываем в y2 !!HE-10:S4/?y99; записываем дипломатию (4) у атакущего в (y99) !!FU&y99=0/y2<0:E; выходим, если у него ее нет, а защищающегося героя тоже нет !!VRz850:S^^; чистим переменную для записи испугавшихся монстров у защитника !!DO28888/0/6/1&y99>0:P1/y99/850;пускаем функцию на 7 слотов в бою для защищающегося (1), y99 - степень дипломатии, 850 - номер переменной для сохранения результа !!HEy2&y2>-1:S4/?y98; проверяем на дипломатию (4) защитника (если имеется) в (y98) !!FU|y98=0/y2<0:E; выходим, если защитника нет или навык равен 0 !!VRz851:S^^;чистим переменную для записи испугавшихся монстров у атакера !!DO28888/0/6/1:P0/y98/851;пускаем функцию на 7 слотов в бою для атакера (0), y98 - степень дипломатии, 851 - номер переменной для сохранения результа !?FU28888; функция уменьшения числа монстров !!BA:Mx1/x16/?y1/?y2; находим тип существ у атакующего/зашитника (x1=0..1 соотв) в слоте x16=0..6 и записываем тип в y1 и число в y2 !!VRy-1&x2=1:S10; процентное уменьшение числа: при основной дипломатии на 10 % !!VRy-1&x2=2:S15; процентное уменьшение числа: при продвинутой дипломатии на 15 % !!VRy-1&x2=3:S25; процентное уменьшение числа: при экпертной дипломатии на 25 % !!VRy3&y2>1:Sy2 *y-1 :100; считаем нужное число !!VRy3&y2>1/y3=0:S1; если получается меньше 1 сбежавшего, но число монстров больше в стеке больще чем 1, установить на 1 сбежавшего !!VRy3&y2<=1:S0; если монстров в отряде меньше 2, не уменьшаем их !!VRzx3:+^%Y1 %Y3 ^; записываем в zx3 (z850-z851) испугавшихся монстров (их номер и количество) !!VRy2:-y3; находим, что останется от отряда !!BA:Mx1/x16/y1/y2; и устанавливаем его на этот остаток !?BA53; в конце боя !!HE-10:O?y60 S4/?y3; хозяина атакера в y60, уровень дипломатии в у3 !!BA:H1/?y2; получаем номер героя защитника !!HEy2&y2>-1:S4/?y4 O?y70; если таковой существует, получаем его уровень дипломатии в y3, а хозяина в y70 !!DO28889/1/13/2&y4>0/y60>-1:P0/851; если победил атакующий (y60>-1), а у защищаюшего была дипломатия (y4>0), запустить функцию для атакующего (0) чтобы восстановить всех существ, заисанных в 851 !!DO28889/1/13/2&y3>0/y70>-1:P1/850; наоборот - победил деф (y70>-1), у атак была дипломатия (y3>0), запустить функцию для защищающегося (1) чтобы восстановить всех существ, заисанных в 850 !?FU28889; функция восстановления потерянных существ !!VRz2:M2/zx2/x16; находим подстроку - количество монстров (оно в 1,3,5...13 словах переменной zx2) !!VRv1:Vz2; переводим ее вв цифры !*!IF&v1>0:M^%V1^; отладочное сообщение !!VRy4:Sx16 -1; отнимаем единицу от x16 для получения позиции слова с типом монстра !!VRy5:Sx16 :2; делим x16 на 2 для получения номера слота !!BA:Mx1/y5/?y6/d; в слоте y5 у x1 (0 - атакующего, 1 - защ) проверяем, кто так остался в y6 !!VRz2:M2/zx2/y4; читаем, кто там был в момент вычитания !!VRv2:Vz2; переводим в число !!BA|y6=v2/y6=-1:Mx1/y5/v2/dv1; если типы монстров до и после совпадают, или если после битвы их всех убили (тип = -1),