Помогите со скриптом
#1
Првиетствую всех. Суть проблемы в следующем. Расковырял я моб файл zonemainmenunew.mob. Добавил туда в объектную область объект Огра, прописал туда свой скрипт (ниже), но этот скрипт почему-то отказывается работать. Не пойму в чем проблема. Если просто в консоли в меню набрать ту же команду эффекта, то эффект отрендерится, а через МОБ не хочет. Где я напортачил?

Код:
GlobalVars (
 NULL : object,
 VSS#i#val : object,
 i : object,
 Ogr : object
)

DeclareScript VTriger#0#2 (  this : object )
DeclareScript #OnBriefingComplete (  nPlayer : float,  szComplete : string )

Script VTriger#0#2
(
 if
 (
 )
 then
 (
   KillScript(  )
   Sleep( 60 )
   CreateParticleSource( 15 , GetX( Ogr ) , GetY( Ogr ) , 0 , 4 , "Mushroom" )
 )
)

Script #OnBriefingComplete
(
 if
 (
 )
 then
 (
   KillScript(  )
 )
)

WorldScript
(
 Sleep( 2 )
 Ogr = GetObjectByID( "187" )
 VTriger#0#2( NULL )
)

В объектную область добавил огра (см. скриншот).
Я так подозреваю, что просто его Parent я неправильно указал. По сути в мобе вообще нету никакого объекта (группы) с идентификатором -4100.


Файлы вложений Эскизы(ов)
   
Duty is everything, the greatest of joys, the deepest of sorrows.
Ответ
#2
Не очень понял, ты этот скрипт в zonemainmenunew.mob менял ? если да, то могу сказать только одно, в zonemainmenunew.mob скрипты не работают.
Кто не согласен – пусть первый кинет в свой монитор камнем!
Ответ
#3
Ты правильно понял. Пакость. А почему так?
Duty is everything, the greatest of joys, the deepest of sorrows.
Ответ
#4
Вобще я думаю так , если в консоли работают , то и в мобе должны работать.
Сам я проверял , они точно не работают в зоне меню.Но , нивал ведь туда скрипт поместил зачем то ?А скрипт то у тебя похоже что не совсем правильный.Ты ведь огра добавил в глобальные переменные.
Ogr = GetObjectByID( "187" )
Не знаю можно ли так делать но такого я еще в скриптах не встречал(хотя может я и не все скрипты изучил).
Если посмотреть на скрипт то CreateParticleSource( 15 , GetX( Ogr ) , GetY( Ogr ) , 0 , 4 , "Mushroom" ) идет до того как ты пресвоил переменной значения огра из меню(опять таки я не знаю можно ли так присваивать в пз).

У меня есть предположения почему в зоне меню не работают скрипты.
Есть же у нас квест на зоне меню ?Есть а следовательно можно отвергнуть то что на зоне меню нельзя использовать скрипты.Однако чего на зоне нету так это триггера когда перс входит в зону.Я полагаю что делается некоторые проверки в екзешнике.Например что то вроде того : пока перс не выйдет на зону , скрипт не загружается.Хотя господа программисты , это всего лиш предположения и все это еще надо подтвердить на практике.
"{}•••®/A//P][R[$®•••{}"
Ответ
#5
Цитата:А скрипт то у тебя похоже что не совсем правильный.Ты ведь огра добавил в глобальные переменные.
Ogr = GetObjectByID( "187" )
Не знаю можно ли так делать но такого я еще в скриптах не встречал(хотя может я и не все скрипты изучил).
Хм.. Я делал так же, как и на зоне с проклятьем. Программки-декодера у меня нету, так что пока обхожусь малым. Может быть его и по-другому объявить надо. :/


Цитата:Если посмотреть на скрипт то CreateParticleSource( 15 , GetX( Ogr ) , GetY( Ogr ) , 0 , 4 , "Mushroom" ) идет до того как ты пресвоил переменной значения огра из меню(опять таки я не знаю можно ли так присваивать в пз).
Почему же ДО??? Ведь первым делом выполняется WorldScript. А вызов VTriger#0#2 происходит после объявления переменной Ogr.
Duty is everything, the greatest of joys, the deepest of sorrows.
Ответ
#6
WorldScript это кажись всего лиш точка входа в скрипт , не обязательно что он выполняется первее.У тебя есть подтверждения что он выполняется первым ?

Цитата:Хм.. Я делал так же, как и на зоне с проклятьем. Программки-декодера у меня нету, так что пока обхожусь малым. Может быть его и по-другому объявить надо. :/

Думаю что обычным декодером тут не отделаться.Там шрифт какой то другой вроде.Точнее другого типа.
"{}•••®/A//P][R[$®•••{}"
Ответ
#7
Еще возникает вопрос , есть ли где нибудь в интернете декриптор которым можно расшифровать скрипт в мобе ?Или в мобе полностью шифрование происходит по определенно составленному алгоритму а не из разных бибилиотек.
"{}•••®/A//P][R[$®•••{}"
Ответ
#8
Шифрование скорее всего свое. А шрифт тут при чем? :blink: Там же обычный текст.

WorldScript - я так подозреваю, что это как функция main в Сях. Типа основная исполняемая функция, которая, собсна, вызывает остальные скрипты.
Duty is everything, the greatest of joys, the deepest of sorrows.
Ответ
#9
Может это и так, что WorldScript это как в си++ функция маин.
Но в некоторых скриптах WorldScript может быть использован несколько раз.
Тогда как он определяет что из неих главное ?
Кстати DeclareScript #OnBriefingComplete ( nPlayer : float, szComplete : string

похоже на функции (может это они и есть).Тогда при вызове этого триггера ты исрользуеш не все аргументы.
"{}•••®/A//P][R[$®•••{}"
Ответ
#10
Хмм. Что-то я не пойму, зачем WorldScript несколько раз запускать. :blink:
а #OnBriefingComplete я не менял, оставил как было. Насколько я понимаю, в последующем указывании "функции" (читай триггера) указывать ее переменняе не надо. Они указываются только в самом начале и передаются ей, при вызове.
Duty is everything, the greatest of joys, the deepest of sorrows.
Ответ


Перейти к форуму:


Пользователи, просматривающие эту тему: 1 Гость(ей)