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

Скрипты СХ


mortuus

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

Приведу пример скрипта с комментариямию Это скрипт книги имперской школы магии.

Приведу пример скрипта с комментариямию Это скрипт книги имперской школы магии.

 

Begin ImpDestr_MB3_Script

 

short OnPCEquip

short PCSkipEquip

short Flag ; не используется в скрипте

short FlagIndex ; не используется в скрипте

short MagicSpell

 

if ( MagicSpell == 1 )

 

if ( Player->GetIntelligence < 90 )

MessageBox "Уровень Интеллекта недостаточен для изучения новых магических возможностей."

Set MagicSpell to 2

endif

if ( Player->GetWillpower < 0 )

MessageBox "Уровень Силы Воли недостаточен для изучения новых магических возможностей."

Set MagicSpell to 2

endif

if ( MagicSpell == 2 )

Set MagicSpell to 0

Return

endif

if ( PLayer->GetSpell "_ch_chaos_blast_1L_2R" == 1 ) ; вместо проверки на знания заклинаний я бы предложил ввести глобальную переменную для каждой школы магии, это скрипт облегчит. Да и логичности добавит. Сейчас ситуация такая - выучил закл - апнул его до 3 последнего уровня, удалил. (((( Случайно. Далее ищи этот закл опять, покупай все градации книг имперской школы по новой

 

Player->addSpell "_ch_chaos_blast_1L_3R"

Set MagicSpell to 3

Player->removeSpell "_ch_chaos_blast_1L_2R"

endif

if ( PLayer->GetSpell "_ch_chaos_bloom_4L_2R" == 1 )

Player->addSpell "_ch_chaos_bloom_4L_3R"

Set MagicSpell to 3

Player->removeSpell "_ch_chaos_bloom_4L_2R"

endif

if ( PLayer->GetSpell "_ch_chaos_dezintegr_4L_2R" == 1 )

Player->addSpell "_ch_chaos_dezintegr_4L_3R"

Set MagicSpell to 3

Player->removeSpell "_ch_chaos_dezintegr_4L_2R"

endif

if ( PLayer->GetSpell "_ch_chaos_distroyA_1L_2R" == 1 )

Player->addSpell "_ch_chaos_distroyA_1L_3R"

Set MagicSpell to 3

Player->removeSpell "_ch_chaos_distroyA_1L_2R"

endif

if ( PLayer->GetSpell "_ch_chaos_distroyAll_3L_2R" == 1 )

Player->addSpell "_ch_chaos_distroyAll_3L_3R"

Set MagicSpell to 3

Player->removeSpell "_ch_chaos_distroyAll_3L_2R"

endif

if ( PLayer->GetSpell "_ch_chaos_distroyW_2L_2R" == 1 )

Player->addSpell "_ch_chaos_distroyW_2L_3R"

Set MagicSpell to 3

Player->removeSpell "_ch_chaos_distroyW_2L_2R"

endif

if ( PLayer->GetSpell "_ch_chaos_health_2L_2R" == 1 )

Player->addSpell "_ch_chaos_health_2L_3R"

Set MagicSpell to 3

Player->removeSpell "_ch_chaos_health_2L_2R"

endif

if ( PLayer->GetSpell "_ch_chaos_srike_3L_2R" == 1 )

Player->addSpell "_ch_chaos_srike_3L_3R"

Set MagicSpell to 3

Player->removeSpell "_ch_chaos_srike_3L_2R"

endif

if ( PLayer->GetSpell "_ch_daedra_strike_1L_2R" == 1 )

Player->addSpell "_ch_daedra_strike_1L_3R"

Set MagicSpell to 3

Player->removeSpell "_ch_daedra_strike_1L_2R"

endif

if ( PLayer->GetSpell "_ch_el_coldflame_3L_2R" == 1 )

Player->addSpell "_ch_el_coldflame_3L_3R"

Set MagicSpell to 3

Player->removeSpell "_ch_el_coldflame_3L_2R"

endif

if ( PLayer->GetSpell "_ch_el_fireball_2L_2R" == 1 )

Player->addSpell "_ch_el_fireball_2L_3R"

Set MagicSpell to 3

Player->removeSpell "_ch_el_fireball_2L_2R"

endif

if ( PLayer->GetSpell "_ch_el_firelighting_4L_2R" == 1 )

Player->addSpell "_ch_el_firelighting_4L_3R"

Set MagicSpell to 3

Player->removeSpell "_ch_el_firelighting_4L_2R"

endif

if ( PLayer->GetSpell "_ch_el_icebolt_1L_2R" == 1 )

Player->addSpell "_ch_el_icebolt_1L_3R"

Set MagicSpell to 3

Player->removeSpell "_ch_el_icebolt_1L_2R"

endif

if ( PLayer->GetSpell "_ch_el_lightning_2L_2R" == 1 )

Player->addSpell "_ch_el_lightning_2L_3R"

Set MagicSpell to 3

Player->removeSpell "_ch_el_lightning_2L_2R"

endif

if ( PLayer->GetSpell "_ch_necro_weak_2L_2R" == 1 )

Player->addSpell "_ch_necro_weak_2L_3R"

Set MagicSpell to 3

Player->removeSpell "_ch_necro_weak_2L_2R"

endif

if ( PLayer->GetSpell "_ch_old_damed_2L_2R" == 1 )

Player->addSpell "_ch_old_damed_2L_3R"

Set MagicSpell to 3

Player->removeSpell "_ch_old_damed_2L_2R"

endif

if ( PLayer->GetSpell "_ch_old_poison_1L_2R" == 1 )

Player->addSpell "_ch_old_poison_1L_3R"

Set MagicSpell to 3

Player->removeSpell "_ch_old_poison_1L_2R"

endif

if ( PLayer->GetSpell "_ch_old_poisonbloom_3L_2R" == 1 )

Player->addSpell "_ch_old_poisonbloom_3L_3R"

Set MagicSpell to 3

Player->removeSpell "_ch_old_poisonbloom_3L_2R"

endif

if ( MagicSpell == 3 )

MessageBox "Вы усовершенствовали свои познания в магии."

else

MessageBox "У Вас нет заклинаний, которые способен улучшить этот том."

endif

 

Set MagicSpell to 0

 

endif

 

if ( PCSkipEquip == 1 ) ; эта функция может быть использована для сокращения проигрывания скрипта, если ее поставить в начало скрипта

Set PCSkipEquip to 0

Set MagicSpell to 1

Return

endif

 

if ( MenuMode == 1 ) ; эта вообще бесполезна секция, тут наоборот надо вводить, if ( MenuMode == 0 ) -> Return и ставить самым первым этот блок.

Return

endif

 

if ( OnActivate == 1 ) ; полагаю этот блок для того, чтобы можно было воровать книги, но не уверен нужен ли он вообще.

Activate

endif

 

END ImpDestr_MB3_Script

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

Кхмм... А что вообще скрипт делает? Можно описание? И еще в шапке темы задублировано первое сообщение.
Ссылка на комментарий
Поделиться на другие сайты

Проверяет, открыл ли игрок книгу, на которой висит скрипт (там все довольно сложно; см. МСФД), потом проверяет, достаточно ли у игрока интеллекта и силы воли, потом проверяет, есть ли у игрока какие-нибудь заклинания из первого набора (постфикс 2R), и если они есть - заменяет на таковые из второго (3R).
Ссылка на комментарий
Поделиться на другие сайты

bi всё верно сказал, это я к тому, что какой скрипт не возьми из СХ его можно смело вполовину урезать. Т.е. сам по себе отдельно взятый скрипт этот тормозов давать не будет, но когда в игре 1500+ скриптов, многие из которых локальные и дублируются на предметах, вот тут то и заметное падение фпс.
Ссылка на комментарий
Поделиться на другие сайты

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

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

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

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

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

Войти

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

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

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