ПредишенСледващото

Тази страница описва често срещаните грешки при работа с папирус и начини за диагностициране и отстраняване на проблема.

Привикване към папирусът може да бъде сложен процес - тази страница е предназначена да улесни този процес! Целта на тази страница е да се съберат най-често срещаните пречки и бариери, които всички сме изправени, когато се опитваме да работим с папирус в ранните етапи.

Разберете за себе си - кажете на другите! Ако сте намерили начин да заобиколят някои трудности, моля да ги добавите към този често задаван въпрос. Препоръчително е да се предоставят връзки и кодови фрагменти, които да демонстрират своите решения.

Общи въпроси

Моят сценарий се компилира, но не работи! Как да го отстраняване на грешки?

Преди да започнете работа с папирус, можете да активирате грешки скрипт система за влизане. По подразбиране тази функция е изключена - повечето потребители нямат нужда от нея, и малко сеч намалява производителността на компютъра ви, за да играят.

Разрешаването на сеч се извършва в INI файл. Open (или създайте) си SkyrimCustom.ini файл в папката. / Моите документи / Моите игри / Skyrim. Добавете следните редове. Ако някои от тях са вече там, уверете се, че стойностите на тези параметри са зададени на "1", в противен случай се промени "0" до "1".

  • bEnableLogging превръща за включване / изключване на системата за влизане скриптове;
  • bEnableTrace включва Debug.Trace и свързаните с тях функции,
  • bLoadDebugInformation ще се зареди информацията за линия номер, в който е възникнала грешката, така че да можете лесно да се определи мястото на произхода му.

Ако играта открие грешка в скрипта, той отпечатва в следния формат:

0 функция - функция, която е предизвикала съобщението за грешка. Функция 1 е функцията, наречена 0. Функция извиквания на функции Функция 1 2 и т.н. Това ще ви помогне да следите на това, което може да бъде причина за всички грешки, които сте подали сигнал.

Но може би вие не виждате никакви грешки. Какво тогава да правим? Можете да използвате различни функции, като например отстраняване на грешки Трейс и TraceStack, за да видите как скрипт, който променливи и свойства има. Например, погледнете следната функция:

След добавяне следи изявления във вашата функция, можете да преглеждате записи в дневника, за да се опита да се определи точно какво се е объркало. The не виждате "Моята функция, наречена!" В дневника? Това означава, че не работи и трябва да продължи да търси причината. Ще видите първото съобщение, но не виждам втората ( "Cool стойност е 20!")? След това трябва да разберете защо стойността на показаната функция е различен от очаквания. И вие ще забележите, че в примера, ние наблюдаваме стойността на един прост "сдружение" с "+" оператор.

Не мога да премахнете обект от характера играч

  • Фокус на мисия за отрицателни стойности за функцията AddItem се извършва само в конзолата, но скриптове не работят. Използвайте тази функция, на място - правилно - RemoveItem.

Моят сценарий не се компилира, а аз не мога да използвам ID на редактора!

Моят плъгин работи за мен и не работи за другите!

Това звучи като сложен проблем. Помислете за това в части:

  • Забравихте ли да се прикрепят към необходимите плъгини окото файлове (мрежи) и / или консистенцията (текстури)? Малко вероятно е, че текстурата може да доведе до разпадането на играта, но отсъствието им точно да развали изгледа (например обектите ще бъдат розови или лилави). Изгубени меша (меша) може да доведе до аномалии графични и дори до срив в играта. Уверете се, че графиките са относителни, а не абсолютни начин, в противен случай те обикновено не се зарежда от дадена папка, пътят към който са различни от определения.
  • Можете да използвате потребителски скриптове, които се простират на други потребителски скриптове? Има грешка [1] в .bsa опаковчика обвивка, където, ако родител по поръчка скрипт всъщност не е налично в основна форма в играта, а след това няма да бъдат включени в инструмента за избор на файл за пакетиране. Решението е да се създаде сляпо мрежа, която има основен скрипт прикрепени, или ръчно да го включва в .bsa на строителство.

Този материал трябва да бъде преведен или doperevode. ,
Вие можете да помогнете го преведе. Не забравяйте да добавите предварително низ

>> към материалите по които се работи, а не да се създаде конфликт на редакции.
Моля, отстранете шаблона на съобщението, когато материалът трябва да се проверят.

Създаване на обекти

Не мога да се създаде нов обект

  • Проблем: Не мога да се създаде нов обект.
  • Обяснение: Papyrus в момента не поддържа инстанциирането на обекти в рамките сценарий; новата ключова дума работи само за масиви, а не обекти (за разлика от Java, например), и конструктори изглежда да не работят.
  • Решение: За временно решение можете да опитате хвърляйки PlaceAtMe ObjectReference като предпочитан обект. Разбира се вашият обект трябва да се простира ObjectReference за тази работа.

Не може да се хвърли един обект като дете му

  • Проблем: Не мога да хвърля един обект като дете му. Например, хвърляйки ObjectReference като TestReference когато TestReference простира ObjectReference.
  • Обяснение: Кастинг ще работи само ако позоваването излят всъщност е прикрепен своя писменост. Например, TestReference база обекта трябва да има TestReference сценария приложената в прозореца на редактора форма, за да бъде отлята от от ObjectReference да TestReference.
  • Решение: Използвайте редактор и приложете сценария на обекта, което всъщност леене. Например, ако TestReference се предполага, че се отнасят за една книга, ще се отвори книга, която искате да се хвърли в прозореца на редактора, Отидох раздела за скриптове и закрепете TestReference сценария от там.

Не мога да си псевдоним, за да говорят за справка

Не мога да добавя имот до фрагмент скрипт!

Свързани статии

Подкрепете проекта - споделете линка, благодаря!