mortuus Опубликовано 20 июля, 2013 Жалоба Поделиться Опубликовано 20 июля, 2013 Приведу пример скрипта с комментариямию Это скрипт книги имперской школы магии.Приведу пример скрипта с комментариямию Это скрипт книги имперской школы магии. Begin ImpDestr_MB3_Script short OnPCEquipshort PCSkipEquipshort 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 Returnendif if ( MenuMode == 1 ) ; эта вообще бесполезна секция, тут наоборот надо вводить, if ( MenuMode == 0 ) -> Return и ставить самым первым этот блок. Returnendif if ( OnActivate == 1 ) ; полагаю этот блок для того, чтобы можно было воровать книги, но не уверен нужен ли он вообще. Activateendif END ImpDestr_MB3_Script Ссылка на комментарий Поделиться на другие сайты Поделиться
aL☢ Опубликовано 21 июля, 2013 Жалоба Поделиться Опубликовано 21 июля, 2013 Кхмм... А что вообще скрипт делает? Можно описание? И еще в шапке темы задублировано первое сообщение. Ссылка на комментарий Поделиться на другие сайты Поделиться
bi-666 Опубликовано 21 июля, 2013 Жалоба Поделиться Опубликовано 21 июля, 2013 Проверяет, открыл ли игрок книгу, на которой висит скрипт (там все довольно сложно; см. МСФД), потом проверяет, достаточно ли у игрока интеллекта и силы воли, потом проверяет, есть ли у игрока какие-нибудь заклинания из первого набора (постфикс 2R), и если они есть - заменяет на таковые из второго (3R). Ссылка на комментарий Поделиться на другие сайты Поделиться
aL☢ Опубликовано 21 июля, 2013 Жалоба Поделиться Опубликовано 21 июля, 2013 Ага, понял, спасибо БИ! Ссылка на комментарий Поделиться на другие сайты Поделиться
mortuus Опубликовано 23 июля, 2013 Автор Жалоба Поделиться Опубликовано 23 июля, 2013 bi всё верно сказал, это я к тому, что какой скрипт не возьми из СХ его можно смело вполовину урезать. Т.е. сам по себе отдельно взятый скрипт этот тормозов давать не будет, но когда в игре 1500+ скриптов, многие из которых локальные и дублируются на предметах, вот тут то и заметное падение фпс. Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения
Для публикации сообщений создайте учётную запись или авторизуйтесь
Вы должны быть пользователем, чтобы оставить комментарий
Создать учетную запись
Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!
Регистрация нового пользователяВойти
Уже есть аккаунт? Войти в систему.
Войти