Перейти к содержанию

Рекомендуемые сообщения

Сначала было Сердце Хаоса с его классовой системой и абилками, зависящими от класса ГГ. Затем появились полноценные перки в МФР 1.5. Потом вышел ЧИМ-мод, использующий продвинутую систему перков. И наконец в МФР 3.1 появилась МВСЕ версия перков, использующая новый язык скриптинга.

Именно подобные МВСЕ-скрипты видятся как следующая ступень развития геймплея Морра. В этой теме будет вестись разработка МВСЕ-плагинов, добавляющих как пассивные способности (перковые, классовые, звёздные и другие), так и активные абилки, что гораздо сложнее, но и интереснее.

 

 

 

1) Изменение ГМСТ

 

http://wiki.theassimilationlab.com/mmw/XSetGSfloat

http://wiki.theassimilationlab.com/mmw/XSetGSlong

http://wiki.theassimilationlab.com/mmw/XGetGS

 

Язык МВСЕ присваивает каждой ГМСТ свой номер. Дальше применяется функция:

XSetGSfloat Y Z

Где Y – это номер ГМСТ, а Z – переменная, которой присвоено требуемое числовое значение в настоящий момент. Именно к этому значение и приведётся изменяемая ГМСТ. Также вместо Z можно сразу использовать нужное число.

А вот другая важная функция:

setx Z to xgetGS Y

Она позволяет устанавливать числовое значение введённой переменной на текущее значение требуемой ГМСТ.

 

Используя эти функции, можно раз и навсегда менять нужные вам ГМСТ при наступлении определённого условия – например, при взятии героем перка.

Есть ряд ГМСТ, влияющих только на героя, например iAlchemyMod с номером 1146 влияет на силу создаваемых зелий. И поскольку зелья делает только Нереварин, можно смело использовать эту ГМСТ для изменения его пассивок. Хотя это и весьма сомнительное решение, ведь куда проще было бы вообще не трогать ГМСТ, а менять сам навык алхимии Нереварина, также влияющий на силу его зелий.

Однако есть и более обширный ряд ГМСТ, меняющих правила самой боёвки и других общих игровых механик. Изменение таких ГМСТ повлияет не только на Нереварина, но и на всех неписей и существ в игре. Например, если повысить fDamageStrengthBase чтобы Нереварин наносил больше физического урона, или iBlockMaxChance чтобы он имел больший шанс заблокировать удар щитом, то так оно и будет. Однако тогда и все остальные неписи в мире также начнут сильнее дамажить и лучше блокировать удары. Потому что ГМСТ – не только для Нереварина, они одни на всех. Подобные изменения как раз и являются критическим недостатком существующего плагина перков из последнего МФР.

Есть также небольшой ряд ГМСТ, которые затрагивают механики специально для Нереварина, но с исключениями в виде некоторых неписей. Например, высок соблазн понерфить ГМСТ fEnchantmentMult под номером 1055, а затем задрать её вверх со взятием Нереварином какой-нибудь способности. Это существенно усилит все самодельные зачарования, однако при этом напрочь уничтожит механику сервиса зачарования, ибо все мастера в мире научатся хорошо зачаровывать вещи только со взятием Нереварином этой способности, а до этого будут неумёхами.

Так как же разграничить влияние ГМСТ на Нереварина и всех остальных, и можно ли каким-то хитрым образом использовать эти новые МВСЕ-функции чтобы не сломать игру? Пока не ясно.

 

 

 

2) Изменение заклинаний и зачарований

 

https://mwse.readthedocs.io/en/stable/mwscript/functions/xSetEffectInfo.html

https://mwse.readthedocs.io/en/stable/mwscript/functions/xSetEnchantInfo.html

 

Уже существующие заклинания и зачарования можно менять, используя эти две функции:

xSetEffectInfo 1279610963

xSetEffectInfo 1212370501

Да, цифры должны быть всегда именно такие: 1279610963 для заклинаний и 1212370501 для зачарований. Рассмотрим пример такой функции:

xSetEffectInfo 1279610963 "fireball" 1 14 0 2 5 1 4 30

Элементы функции идут через пробел. Сперва ИД спелла в кавычках, то есть мы меняем существующий спелл огненного шара.

Первая цифра (чёрным) – это место эффекта в заклинании (всего мест 8, у нас файрболл состоит всего из одного эффекта, так что ставим 1)

Вторая и третья цифра (сиреневым) – это номер магического эффекта и субэффекта. Вот их список:

https://mwse.readthedocs.io/en/stable/mwscript/references.html#magic-effects

У нас стоит 14 – это удар огня, у него нет субэффекта, так что следующая цифра 0.

А вот если бы нам надо было увеличить навык например лёгкой брони, то надо ставить 83 21

Следующая цифра (оранжевым) – дальность. 0 – на себя; 1 – касание; 2 – удалённая цель.

Следующая цифра (зелёным) – радиус. У нас 5 метров.

Следующая цифра (синим) – длительность. У нас 1 секунда.

Последние 2 цифры (красным) – минимальная и максимальная сила. У нас 4-30 урона.

А вот это добавит файрболлу вторичный эффект удара холода 1 п. на 10 сек. на 15 метров:

xSetEffectInfo 1279610963 "fireball" 2 16 0 2 15 10 1 1

Применяем эти две функции, и все файрболлы с этим ИДом приобретут именно такие свойства.

 

А вот пример с изменением зачарования на призванной кирасе:

xSetEffectInfo 1212370501 "bound cuirass_effects_en" 1 83 21 0 0 1 20 20

Это придаст ей увеличение лёгких доспехов на себя на 20 п. Но почему время выставлено на 1 секунду? Потому что это постоянный эффект, и для более продвинутого контроля зачарований есть функция xSetEnchantInfo

Допустим, мы взяли зачарование призванного меча и с помощью предыдущей функции изменили его на урон огнём при ударе вместо увеличения навыка длинных клинков на себя на постоянный эффект. Для этого надо обязательно применить ещё и вот эту функцию:

xSetEnchantInfo "bound longsword_effect_en" 1 5 100 0

Сначала через пробел в кавычках идёт ИД зачарования, а затем через пробелы 4 цифры.

Первая цифра. 0 – одноразовый; 1 – при ударе; 2 – при использовании; 4 – постоянный эффект. Нам надо при ударе, так что ставим 1.

Вторая цифра – расход зарядов при использовании. Третья – максимум зарядов. У нас 5 и 100. Хватит на 20 ударов.

Четвёртая цифра – автокалькуляция зарядов. 0 – отключена, 1 – включена. Нам её не надо, ставим 0.

 

В вышеприведённых примерах менялись огненные шары и призванные вещи во всём мире для всех без исключения. Если же мы хотим улучшить спеллы только одного Нереварина, не затрагивая неписей и существ, то необходимо использовать эти функции только на эксклюзивных для Нереварина спеллах и зачарованиях. Предварительно их создав в КС и добавив Нереварину простыми скриптами. Однако возникает вопрос: не проще ли удалять ненужные спеллы и заменять их на усовершенствованные стандартными скриптовыми командами? Если речь идёт о пассивных способностях типа перков, то да. Однако эти продвинутые МВСЕ-функции имеют куда больший потенциал!

Что если применять их не для наделения героя пассивными способностями, а как активный элемент непосредственной боёвки? Задаём некое условие, при наступлении которого активируются функции изменения заклинаний героя. Пока условие выполняется, герой обладает усиленными версиями своих заклинаний с теми же самыми ИДами! Когда же условие перестаёт выполняться, можно теми же самыми командами откатить заклинания героя к своему изначальному состоянию.

Например, пока на Нереварине скастован бафф с определённым ИДом, или пока в его инвентаре лежит определённый артефакт, или пока на нём надета определённая шмотка, ряд боевых заклинаний типа тех же огненных шаров усиливается и обрастает новыми эффектами. Обкастовался баффами – на 30 секунд усилил свою магию. Не просто получил + к какой-нибудь характеристике, а обрёл более могущественные спеллы и раздал с их помощью люлей. 30 секунд истекли – спеллы опять ослабели, надо перекастовывать бафф.

Применение подобных трюков способно шикарно разнообразить геймплей и вывести боёвку на невиданный доселе уровень. Однако стабильность столь сложных в исполнении скриптов под большим вопросом.

 

 

Ссылка на комментарий
Поделиться на другие сайты

А ты не думал - с чего бы НПЦ тоже не могут владеть перками? Или им нельзя?

 

Здорово конечно что ты подождал, чтобы взять скрипты, мне не жалко, без проблем пользуйся, но имей совесть, своим жирным имхо говорить что плагин плох тем то... не играв в него - не уместно что ли? Ты ж в нем тупо ковырялся, а не играл с ним. Не надо так.

 

Со стабильностью кстати все нормально, можешь спокойно апгрейдить свой чим-мод.

Ссылка на комментарий
Поделиться на другие сайты

Неписям можно владеть перками только в одном случае - если им раздать их вручную.

 

Но когда Нереварин качнул разрушение на сотку, предвкушая как будет всех жарить файрболлами, внезапно обнаруживает что каждый вшивый огненный атронах в игре вдруг стал нехило так выжигать пукан своими хиленькми спеллами, то это та ещё подстава автолевелинг  :trololo:

С остальными боевыми скиллами всё аналогично.

 

Кстати, ты тестил вот этот интересный момент с мвсе-вики?

XSetGSfloat sets the value of a float game setting. New values are not stored in savegames and will be lost when you exit the game.

 

 

Ещё у тебя навык красноречия запускает перки от торговли.

Ссылка на комментарий
Поделиться на другие сайты

Неписям можно владеть перками только в одном случае - если им раздать их вручную.

 

Но когда Нереварин качнул разрушение на сотку, предвкушая как будет всех жарить файрболлами, внезапно обнаруживает что каждый вшивый огненный атронах в игре вдруг стал нехило так выжигать пукан своими хиленькми спеллами, то это та ещё подстава автолевелинг  :trololo:

С остальными боевыми скиллами всё аналогично.

 

Кстати, ты тестил вот этот интересный момент с мвсе-вики?

 

Ещё у тебя навык красноречия запускает перки от торговли.

 

1. Нет, не обязательно.

 

2. С чего тя взял что "вшивый" атронах вынесет ГГ своими "хиленькими" спеллами? Ты тестировал?

2.1 Что аналогично?

 

3. Я тестил много интересных моментов, но с человеком, который в открытую обсирает чужие поделки, тогда как свои полностью основаны на чужом "васянском" труде, я не хочу ничего обсуждать.

 

4. И?

Ссылка на комментарий
Поделиться на другие сайты

3. Я тестил много интересных моментов, но с человеком, который в открытую обсирает чужие поделки, тогда как свои полностью основаны на чужом "васянском" труде, я не хочу ничего обсуждать.

 

Только им в своей теме не говори, если вдруг действительно окажется, что новые гмст не сохраняются в сейвах - не порть людям праздник  :trololo:

Изменено пользователем Dagot_Prolaps
Ссылка на комментарий
Поделиться на другие сайты

Ну если там и правда прокачка навыков игрока усиливает неписей или мобов то это более чем странно, это даже не автолевелинг а какое то превозношение игрока как центральную опорную силу мира. Морошнд не та игра в которой это надо, даже если там интересным геймплеем руководствовались... Мне хочется верить что это Даготов поклеп и там нет такого. Но он так убедительно тралякает шо я не могу. :-D

 

не играв в него - не уместно что ли? Ты ж в нем тупо ковырялся, а не играл с ним. Не надо так.

Скорей неуместно говорить не играл в плаг не критикуй, потому что в редакторе гораздо более понятно че там и как, и люди шарящие в скриптах сразу баги найдут. Тем более вроде ридми нет. Могу показаться телепатом, но по моему это от страха что игроки открыв плагин могут увидеть там бурду.

 

С этим МВСЕ, мне одному кажется что это что это обреченная на смерть сущность в связи с развитием опенмв?

Ссылка на комментарий
Поделиться на другие сайты

Типовые скрипты на улучшенную МВСЕ-магию через баффы.

 

 

Есть заклинание огненного шара с ИДом spell_1, которое знает только Нереварин. Оно наносит 5-20 п. огнём на 1 с. на 5 м. + вторичный эффект поджога 0-1 п. на 5 с. на 10 м.

Также Нереварин знает спелл с ИДом buff_1, которое несёт любой эффект на себя на некоторое число секунд, не важно какой, пусть даже самый незначительный.

Герой кастует на себя этот бафф не ради самого эффекта заклинания, а ради МВСЕ-эффекта, который этот бафф даст.

Предположим, мы хотим получить усиление огненного шара spell_1 на 30 секунд. Так чтобы оно наносило 10-30 п. огнём на 1 с. на 15 м. + вторичный эффект поджога 2-3 п. на 10 с. на 25 м.

Что нужно для этого сделать?

 

Создаём скрипт. Глобальный и стартовый.

 

 

Begin Buff_fireball

 

short buff

float timer

 

If ( MenuMode == 1 )

Return

Endif

 

if ( buff == 0 )

if ( Player->GetSpellEffects, "buff_1" == 1 )

xSetEffectInfo 1279610963 "spell_1" 1 14 0 2 15 1 10 30

xSetEffectInfo 1279610963 "spell_1" 2 14 0 2 25 10 2 3

set buff to 1

endif

endif

 

if ( buff == 1 )

set timer to ( timer + GetSecondsPassed )

if timer > 30

xSetEffectInfo 1279610963 "spell_1" 1 14 0 2 5 1 5 20

xSetEffectInfo 1279610963 "spell_1" 2 14 0 2 10 5 0 1

set buff to 0

set timer to 0

endif

endif

 

End

 

Есть одно условие: длительность заклинания-баффа должна быть меньше желаемой длительности самого баффа. То есть если хотим получить усиленную магию на 30 секунд, длительность спелла buff_1 должна быть меньшне 30 секунд.

 

Хотим усиления других заклинаний этим же баффом - добавляем аналогичные функции xSetEffectInfo 1279610963 в этот же скрипт.

Хотим усиления других заклинаний другими баффами - копируем и помещаем дальше обе секции по аналогии с новым таймером и новым баффом, прописав их в начале скрипта, например:

short buff2

float timer2

 

 

Теперь создаём артефактное Кольцо Огненного Шторма. По задумке, пока оно надето на Нереварине, известное ему заклинание огненного шара spell_1 будет усилено уроном молнией на 5-10 п. на 3 с. на 5 м.

Когда же кольцо снимается, заклинание приходит в норму. Из-за ограничений движка третий эффект не полностью исчезает, а должен быть заменён - заменим его на ничтожные 0-1 огня на 1 с.

Чтобы достичь такого эффекта, на кольцо надо поместить этот скрипт:

 

 

Begin Ring_firestorm

 

short OnPCEquip

short buff

 

if ( OnPCEquip == 1 )

if ( buff == 0 )

xSetEffectInfo 1279610963 "spell_1" 3 15 0 2 5 3 5 10

set buff to 1

endif

else

xSetEffectInfo 1279610963 "spell_1" 3 14 0 2 0 1 0 1

set buff to 0

endif

 

End

 

В данном примере меняется именно третий эффект в заклинании специально для совместимости с вышеописанным баффом от кастуемого заклинания. Таким образом огненный шар может быть либо ничего не усилен, либо усилен только первым баффом, либо усилен только баффом от кольца, либо усилен сразу двумя баффами.

Если вы хотите чтобы при одетом кольце усиление получали и другие спеллы - тогда добавляем аналогичные функции xSetEffectInfo 1279610963 в этот же скрипт.

Обратите внимание на то, что зачарование на созданном кольце может быть каким угодно.

Ссылка на комментарий
Поделиться на другие сайты

Если spell_1 - готовое, не созданное игроком заклинание которое знает только игрок, а бафф усиливает только заданные в скрипте заклинания и не сработает для созданных, то почему бы вместо xSetEffectInfo 1279610963 "spell_1" 3 14 0 2 0 1 0 1 не использовать

 

player->removespell "spell_1"

player->addspell "spell_2"

 

где spell_2 - усиленная копия spell_1.

 

Извращение конечно, но за то МВСЕ не нужен. Да и скриптовые баффы на усиление заклинаний - уже сами по себе извращение, когда и так есть возможность создавать произвольные спеллы, есть дебаффы уязвимостей, и есть баффы интеллекта и силы воли?

Изменено пользователем Ao3
Ссылка на комментарий
Поделиться на другие сайты

На то есть 2 причины: во-первых, адд и ремув спелы не поддерживают совместимость различных модификаторов заклинаний как показано на примере баффа вместе с кольцом, во-вторых задолбаешься лезть в меню и выискивать каждый раз новые спеллы, в то время как с модификаторами у тебя всегда один и тот же спелл на горячей клавише.

 

Произвольные спеллы и маны будут жрать немеренно, модификаторы же не меняют затрат. Баффы же инты и воли никак не влияют на силу и качество спеллов.

Ссылка на комментарий
Поделиться на другие сайты

На то есть 2 причины: во-первых, адд и ремув спелы не поддерживают совместимость различных модификаторов заклинаний как показано на примере баффа вместе с кольцом, во-вторых задолбаешься лезть в меню и выискивать каждый раз новые спеллы, в то время как с модификаторами у тебя всегда один и тот же спелл на горячей клавише.

Ну тут да, не поспоришь, с горячей клавиши слетит.

 

 

Произвольные спеллы и маны будут жрать немеренно, модификаторы же не меняют затрат. Баффы же инты и воли никак не влияют на силу и качество спеллов.

Бафф инты - это же по сути бафф на ману, которую жрут произвольные спеллы.

Ссылка на комментарий
Поделиться на другие сайты

if ( Player->GetSpellEffects, "buff_1" == 1 )
xSetEffectInfo 1279610963 "spell_1" 1 14 0 2 15 1 10 30
xSetEffectInfo 1279610963 "spell_1" 2 14 0 2 25 10 2 3
set buff to 1

 

Внутри обычного if команды МВСЕ будут выбивать ошибку. Об этом сказано в мануале по МВСЕ 2.0+

 

Вот пример как обойти это - http://www.fullrest.ru/forum/topic/25384-manual-po-skriptam-pod-mwse/?p=985766

Ссылка на комментарий
Поделиться на другие сайты

  • 2 недели спустя...

Подробно изучить, здесь есть встроенный определитель врагов:

 

 

 
begin _Accuracy
 
float weaponSkill
float weaponSkillOld
float weaponDrawn
float temp
float temp1
float timer
float timer2
 
long Enemy
long EnemyOld
long EnemyRefType
long PCRef
 
float fBaseAB
float fBaseDB
float fAB
float fDB
float fABtot
float fDBtot
 
short doOnce
short weaponType
short bow
short sUpdate
float pAgility
float pLuck
float pAgilityOld
float pLuckOld
float EnAR
 
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; 1. initialization
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 
 
If ( charGenState != -1 )
return
Endif
 
If ( MenuMode == 1 )
return
Endif
 
Set timer to ( timer + GetSecondsPassed )
Set timer2 to ( timer2 + GetSecondsPassed )
 
If ( doOnce == 0 )
 
; 15 sec bootup delay
If ( timer <= 5 )
return
Endif
 
set fBaseAB to Player->GetAttackBonus
set fBaseDB to Player->GetDefendBonus
set pAgility to Player->GetAgility
set pLuck to Player->GetLuck
 
set fAB to 100
set fDB to -50
set fABtot to fAB + fBaseAB
set fDBtot to fDB + fBaseDB
 
Player->SetAttackBonus, fABTot
Player->SetDefendBonus, fDBtot
 
set doOnce to 1
set sUpdate to 0
set Enemy to 0
set EnemyOld to 0
set weaponSkill to 1
set weaponSkillOld to 0
Endif
 
If ( timer <= 0.2 )
return
Endif
 
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; 2. fast timer block
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 
setx pcref to xGetRef, "player"
setx Enemy to pcref->xGetCombat
 
ifx ( Enemy )
else
setx enemy to xGetPCTarget
endif
 
ifx ( Enemy )
else
return
endif
 
setx EnemyRefType to enemy->xreftype
if ( EnemyRefType == 1095062083 )
elseif ( EnemyRefType == 1598246990 )
else
return
endif
 
; if enemy has changed, run UpdateSpells block
 
if ( Enemy != EnemyOld )
if ( Player->GetWeaponDrawn )
set sUpdate to 1
;messagebox, "Enemy updated!"
endif
endif
 
set EnemyOld to Enemy
 
 
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; 3. slow timer block
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 
 
If ( timer2 > 1 ) ; updates combat stats every second
 
if ( Player->GetWeaponDrawn )
 
set weaponDrawn to 1
set weaponType to Player->GetWeaponType
if ( weaponType == -1 )
set bow to 0
set temp1 to 1
set weaponSkill to Player->GetHandToHand
elseif ( weaponType == 0 )
set bow to 0
set temp1 to 1
set weaponSkill to Player->GetShortBlade
elseif ( weaponType < 3 )
set bow to 0
set temp1 to 1
set weaponSkill to Player->GetLongBlade
elseif ( weaponType < 6 )
set bow to 0
set temp1 to 1
set weaponSkill to Player->GetBluntWeapon
elseif ( weaponType == 6 )
set bow to 0
set temp1 to 1
set weaponSkill to Player->GetSpear
elseif ( weaponType < 9 )
set bow to 0
set temp1 to 1
set weaponSkill to Player->GetAxe
else
set bow to 1
set temp1 to 1
set weaponSkill to Player->GetMarksman
endif
 
if ( weaponSkill < 1 )
set weaponskill to 1
endif
 
set pAgility to player->getAgility
if ( pAgility < 1 )
set pAgility to 1
endif
 
set pLuck to Player->GetLuck
if ( pLuck < 1 )
set pLuck to 1
endif
 
if ( weaponSkill != weaponSkillOld )
set sUpdate to 1
elseif( pAgility != pAgilityOld )
set sUpdate to 1
;messagebox, "Skill updated!"
endif
 
set weaponSkillOld to weaponSkill
set pAgilityOld to pAgility
set pLuckOld to pLuck
endif
endif
 
 
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; 4. Update Spells block
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 
 
ifx ( sUpdate ) ; this block is run if enemy or weapon skill has changed
set sUpdate to 0
 
set fBaseAB to Player->GetAttackBonus
set fBaseAB to ( fBaseAB - fAB )
 
set fBaseDB to Player->GetDefendBonus
set fBaseDB to ( fBaseDB - fDB )
 
set fDB to ( -50 - ( 0.2*pAgility + 0.1*pLuck )*( 0.75 ) )
 
set fAB to ( 100 - ( weaponskill + 0.2*pAgility + 0.1*pLuck )*( 0.75 ) )
set fABTot to fAB + fBaseAB
set fDBTot to fDB + fBaseDB
 
Player->SetAttackBonus, fABTot
Player->SetDefendBonus, fDBTot
 
ifx ( temp1 )
set temp to ( 2 + weaponSkill * 0.02 )
XSetGSfloat 1032 temp ; ,fCombatCriticalStrikeMult 4
set temp to ( 0.5 - weaponSkill * 0.004 )
XSetGSfloat 1109 temp ; ,,fWeaponDamageMult 0.1
set temp1 to 0
endif
 
ifx ( bow )
set temp to ( pLuck * 0.4 )
set temp1 to ( player->getmarksman * 0.5 )
set temp to ( temp + temp1 )
XSetGSfloat 1124 temp ; fProjectileThrownStoreChance
set temp1 to 0
set bow to 0
endif
 
set EnAR to ( 500 / weaponskill )
set EnAR to EnAR + ( 200 / ( pAgility + 10 ) )
set EnAR to EnAR - 5
if ( EnAR < 0 )
set EnAR to 0
endif
 
xSetRef Enemy
setarmorbonus EnAR
endif
 
 
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; 5. resets timers
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 
 
set timer to 0
 
If ( timer2 > 1 )
set timer2 to 0
Endif
 
end _Accuracy

Ссылка на комментарий
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...