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

Скрипты и их шлифовка


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

Добрый день ! Пожалуйста, помогите отшлифовать скрипт | Суть :

______________________________________________________________

ScriptName MyItemA

 

short countMyItemA

short countMyItemB

short diff

 

begin OnAdd player

 

set countMyItemA to player.GetItemCount MyItemA

set countMyItemB to player.GetItemCount MyItemB

 

if ( countMyItemA > countMyItemB )

set diff to countMyItemA - countMyItemB

player.AddItem MyItemB diff

endif

 

end

 

begin OnDrop player

 

set countMyItemA to player.GetItemCount MyItemA

set countMyItemB to player.GetItemCount MyItemB

 

if ( countMyItemA < countMyItemB )

set diff to countMyItemB - countMyItemA

player.RemoveItem MyItemB diff

endif

 

end

______________________________________________________________

Данный скрипт, почему-то, как я понимаю выполняется каждый фрейм, т. к. чем больше объектов добавляется в инвентарь, тем сильнее тормозит Обливион... Получается, скрипт работает непрерывно да еще и скаждым следующим добавляемым объектом дублируется... В конце концов их работает тысяча наверное, т.к набрав в инвентаре 1000 предметов все практически намертво виснет...

-

Необходимо как-то отладить скрипт:

Либо принудительно останавливая скрипт после каждого добавленного объекта.

Либо приостанавливая на время выполнение скрипта в определенное время.

Иное....

Как быть ? ? !

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

Вообще, у меня два скрипта, контролирующих объекты...

Тот что выше для MyItemA, висит на первом объекте.

---

А для MyItemB, - второй объект, на нем висит такой скрипт:

___________________________________________________________________

ScriptName MyItemB

 

short countMyItemA

short countMyItemB

short diff

 

begin OnAdd player

 

set countMyItemA to player.GetItemCount MyItemA

set countMyItemB to player.GetItemCount MyItemB

 

if ( countMyItemA < countMyItemB )

set diff to countMyItemB - countMyItemA

player.AddItem MyItemA diff

endif

 

if ( countMyItemA > countMyItemB )

set diff to countMyItemA - countMyItemB

player.RemoveItem MyItemA diff

endif

 

end

_________________________________________________________________

Может из-за этого такие проблемы...

ТЕМ НЕ МЕНИЕ, ОТЛАДИТЬ МОЖНО НАВЕРНЯКА! ПОДСОБИТЕ!

 

Эти скрипты рыботают взаимосвязанно !

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

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

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

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

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

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

Войти

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

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

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