Secondary skills manager for TE, function allows change some SS values |
Здравствуйте, гость ( Вход | Регистрация )
Secondary skills manager for TE, function allows change some SS values |
23 Jun 2007, 23:25
(Сообщение отредактировал Demiurg - 03 Aug 2007, 21:12)
Сообщение
#1
|
|
Immortal Сообщений: 670 Спасибо сказали: 14 раз |
качать отсюда
Здесь представлена функция дли установки и получения силы 16 вторичных навыков на уровнях none, basic, advanced, expert. Синтаксис: Код !!FU27512:P<skill_number>/<mastery>/<integer value>/<mode>/<index of float variable>; skill_number: must be from {1, 2, 3, 4, 6, 8, 9, 11, 12, 13, 21, 22, 23, 24, 25 ,26} mastery: none - 0, basic - 1, advanced - 2, expert - 3 integer value: optional parameter, variable or value(if write) mode: 0 - read, 1 - write(0 by default) index of float variable: optional parametr, index of (e-)-variable if need convert (in this case must be less than 0) Сначала проверяется 5ый параметр. Если он меньше нуля, то идет чтение(запись) переменной с плавающей запятой. Иначе идет чтение(запись) 3его параметра. Вот тестовый пример работы функции: Код ;После выполнения этого кода базовая логистика будет увеличивать ходы героя на две трети. !?PI; !!VRe-7:S2:3;//устанавливаем число с плавающей точкой !!FU27512:P2/1//1/-7;//устанавливаем силой базовой логистики значение переменной e-7 !!FU27512:P2/1///-1;//получаем в переменную e-1 силу базовой логистики !!VRy-1:S100*e-1;//домножаем на 100, чтобы получить проценты !!IF:M^basic logistics increase movementpoints by %Y-1%%^;//выводим на экран Еще примеры: Код ;при отсутствии интеллекта герои получают 5 маны за знание !?PI; !!VRe-3:S-1:2; !!FU27512:P24/0//1/-3; Код ;герой с экспертным имуществом приносит в казну 830 золота в день !?PI; !!FU27512:P13/3/830/1; Код ;получаем процент, на который продвинутая стрельба увеличивает урон стрелков !?PI; !!FU27512:P1/2///-3; !!VRy6:S100*e-3; !!IF:M^advanced archery skill increase distant damage by %Y6%%^; Код ;Реализация класса Снайпер(герой с баллистикой и стрельбой получает дополнительные бонусы к стрельбе: +10/+20/+30%) из ТЕ с помощью функции. ;new style of Sniper class !#VRv2085:S1; !?BA52&v2085=1; !!VRv2084:S-1; !!BA:H0/?y-1 H1/?y-2; !!HEy-1:S10/?y-3 S1/?y-4; !!VRv2080&y-3<y-4:Sy-3; !!VRv2080&y-3>=y-4:Sy-4; !!VRv2082:Sy-4; !!FU&y-2<0:E; !!HEy-2:S10/?y-3 S1/?y-4; !!VRv2081&y-3<y-4:Sy-3; !!VRv2081&y-3>=y-4:Sy-4; !!VRv2083:Sy-4; !?MM&v2085=1; !!BG:Q?y-1; !!FU&y-1=v2084:E; !!VRv2084:Sy-1; !!VRy1:S2080+y-1; !!VRy2:S2082+y-1; !!VRy3:Svy2*2-1+vy1; !!VRy3&vy2=0:S0; !!VRe-1:S1:10*y3; !!FU27512:P1/vy2//1/-1; !?BG0&v2085=1;//just in case and AI !!BG:Q?y-1; !!FU&y-1=v2084:E; !!VRv2084:Sy-1; !!VRy1:S2080+y-1; !!VRy2:S2082+y-1; !!VRy3:Svy2*2-1+vy1; !!VRy3&vy2=0:S0; !!VRe-1:S1:10*y3; !!FU27512:P1/vy2//1/-1; Вот и сама функция Код ;real - necromancy, archery, attack, armorer, eagle eye, dimplomacy, resistance, learning, logistics, sorcery, intelligence ;for real needs convert ;integer - luck, leadership, mysticism, scouting, estate ;for integer does not need convert !?FU27512;//set power of some SS ;x1 - secondary skill ;x2 - mastery ;x3 - value for write or read ;x4 - mode: 0 - read 1 - write ;x5 - index of (e-)-variable if need convert (in this case must be less than 0) !!FU|x4<0/x4>1:E;//wrong mode (must be 0..1) !!FU|x1<1/x1=5/x1=7/x1=10/x1>26:E;//skills aren't supported !!FU&x1>13/x1<21:E;//skills aren't supported !!FU|x2<0/x2>3:E;//wrong mastery (must be 0..3) !!VRy1&x1=1:S6547944;//archery !!VRy1&x1=2:S6548072;//logistics !!VRy1&x1=3:S6547928;//scouting !!VRy1&x1=4:S6548024;//dyplomacy !!VRy1&x1=6:S6547880;//leadership !!VRy1&x1=8:S6547912;//mysticism !!VRy1&x1=9:S6547864;//luck !!VRy1&x1=11:S6548008;//eagle eye !!VRy1&x1=12:S6547896;//necromancy !!VRy1&x1=13:S6547992;//estate !!VRy1&x1=21:S6548056;//learning !!VRy1&x1=22:S6547960;//attack !!VRy1&x1=23:S6547976;//armorer !!VRy1&x1=24:S6548104;//intelligence !!VRy1&x1=25:S6548088;//sorcery !!VRy1&x1=26:S6548040;//resistance !!VRx2:*4; !!VRy1:+x2; !!if&x4=0:; !!UN:Cy1/4/?x3; !!UN:C10784536/4/x3;//10784536 - address of e1 !!VRex5&x5<0:Se1; !!el:; !!VRe1&x5<0:Sex5; !!UN&x5<0:C10784536/4/?x3;//10784536 - address of e1 !!UN:Cy1/4/x3; !!en:; Замечания: 1) Нужно учитывать, что часть навыков хранится в типе integer, а часть в float. В integer хранятся следующие навыки: leadership, luck, mysticism, scouting, estates. 2) Для некоторых навыков позволены отрицательные значения. Например для интеллекта в одном из примеров устанавливается -0,5. 3) Не забывайте, что функция работает только под ТЕ по следующей причине: "В WOG 3.58f запрещена запись с помощью !!UN:C в область памяти, отвечающей за вторичные скиллы". 4) Описание работы конвертеров: Конвертер из действительного числа в его машинное целочисленное представление записывает по адресу переменной e1 значение и считывает оттуда с помощью !!UN:C его машинное представление. Конвертер из машинного целочисленного представления в действительное число записывает с помощью !!UN:C по адресу переменной e1 машинное представление и копирует переменную e1 в переменную ex2, где x2(<0) - выделенный пользователем индекс для получения значения. -------------------- |
|
|
Текстовая версия | Сейчас: 25 April 2024 - 22:34 |
Copyright by Алексей Крючков
Programming by Degtyarev Dmitry |