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

Скрипт призыва


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

Написал скрипт призыва монстра. Все бы хорошо, но он выводит кучу ошибок в строке 19. Что надо исправить, скажите пожайлуста...

 

begin summon_scrib

 

Short _ll_summon_scrib

Float timer

 

If ( MenuMode == 1 )

Return

Endif

 

If ( Player -> GetSpellEffects, "_ll_summon_scrib" == 1 )

PlaySound "conjuration cast"

FadeIn 1.0

player->PlaceAtPc "_ll_scrib_summon" 6, 6, 1

FadeOut 1.0

endif

 

Set timer to ( timer + GetSecondsPassed )

if timer > 60

"_ll_scrib_summon" -> disable

MessageBox "Призванный вами скриб исчез."

endif

end

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

{зачем "Short _ll_summon_scrib"?}

Выдает еще несколько ошибок. Типа переменная не обьявлена.

 

Так... Посмотрел свойства скриба этого, но там вообще-то нету Referensis Presist. Вообще. Может я тупой, но я не нашел.

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

{зачем "Short _ll_summon_scrib"?}

Выдает еще несколько ошибок. Типа переменная не обьявлена.

 

Так... Посмотрел свойства скриба этого, но там вообще-то нету Referensis Presist. Вообще. Может я тупой, но я не нашел.

Извини-это я ступил(References Presist у животных автоматически включено)

напиши, что именно он пишет

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

Попробуй вот-так:

 

Short _ll_summon_scrib (да, "бегин" надеюсь не забыл поставить?)

If ( MenuMode == 1 )

Return

Endif

If ( Player -> GetSpellEffects, "_ll_summon_scrib" == 1 )

PlaySound "conjuration cast"

;FadeIn 1.0 (для начала без альфазатемнения экрана)

PlaceAtPc "_ll_scrib_summon" 6, 6, 1; (player-> Не нужно)

;FadeOut 1.0

Return

endif

ЕНД

 

; а вот нижний блок повесь на скриба. Вся штука в том, что ДЕЗЭЙБЛЯЩЕЕСЯ существо уже должны быть в мире из начала. Явившееся по скрипту оно не расценивается как РЕФЕРЕНС, что и вызывает ошибку.

Поэтому закончи скрипт на (см. выше) а нижний блок переделай в отдельный скрипт и повесь на скриба.

 

Бегин то-то3

Флоат таймер

иф плеер гет спел фификт такойто == 1

Set timer to ( timer + GetSecondsPassed )

if timer => 60

"_ll_scrib_summon" -> disable

MessageBox "Призванный вами скриб исчез."

endif

end

 

Но лучше используй следующую конструкцию;) Она без таймера, что несколько облегчает загрузку процеесора;)

**************************************************

Вот такой вариант решения:

Глобальный скрипт (помещается в раздел СТАРТ СКРИПТ)

 

Begin Short _ll_summon_scrib2

short Doonce

;**********************************************

if ( MenuMode == 1 )

return

endif

;**********************************************

if ( doOnce == 0 )

if ( Player ->GetSpellEffects, "_ll_summon_scrib" == 1 )

PlaceAtPC "_ll_scrib_summon", 1 , 105, 0

set doOnce to 1

return

endif

endif

if ( doOnce == 1)

if ( Player -> GetSpellEffects, "_ll_summon_scrib" == 0 )

"_ll_scrib_summon"->SetDelete 1

set doOnce to 0

return

endif

endif

end

 

А вот локальный скрипт, для Скриба:)

 

Begin Short _ll_summon_scrib3

if ( OnActivate == 1 )

MessageBox "Выпивший чаю скриб"

If ( onDeath == 1 )

MessageBox "Призванный вами скриб исчез."

disable

return

endif

if ( Player -> GetSpellEffects, "_ll_summon_scrib" == 1 )

return

endif

if ( Player -> GetSpellEffects, "_ll_summon_scrib" == 0 )

MessageBox "Призванный вами скриб исчез."

disable

return

endif

end

 

Да, что еще важно в этой конструкции, ПОСТАВЬ СКРИБА В МИР!!! тоесть создай пустую ячейку (или воспользуйся готовой - например ТОДДТЕСТ, тоесть не использующейся в игре ячейкой) и поставь туда через КС своего скриба (с локальным скриптом вестимо)

Да скрипты содержат русские знаки ", поэтому лучше перепиши их(скрипты) с нуля в редакторе...

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

Хм... Сейчас попробую...

 

Так... Поставил скриптики... Первый компилится без проблем, но во втором, который вешается на скриба, выводит в строке 6 следующие ошибки:

Miss mached quotes

Line 6 function reference object "if" not found

Miss mached quotes

"_ll_scrib_summon disable Could not parse this line

Miss matched if/else/endif starting on line 3

 

От последней ошибки не спасает и вписывание еще одного endif

 

А другой вариант, без таймера, не подходит, ибо таймер нужен...

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

Так. Проблему решил. Дело в кавычках и подчеркивании.

Вот правильный вариант скрипта на скриба:

 

begin _ll_scrib_effect

 

Float timer

 

If ( player -> GetSpellEffects, "_ll_summon_scrib" )

Set timer to ( timer + GetSecondsPassed )

if timer => 60

ll_scrib_summon -> disable

MessageBox "Призванный вами скриб исчез."

endif

endif

end

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

Так... Поставил скриптики... Первый компилится без проблем, но во втором, который вешается на скриба, выводит в строке 6 следующие ошибки:

Miss mached quotes

Line 6 function reference object "if" not found

Miss mached quotes

"_ll_scrib_summon disable Could not parse this line

Miss matched if/else/endif starting on line 3

 

От последней ошибки не спасает и вписывание еще одного endif

 

А другой вариант, без таймера, не подходит, ибо таймер нужен...

 

Не нужен там таймер, вместо таймера у тебя работает заклинание. На сколько ты вызываешь скриба. Скрипт "смотрит" за ниличием закла на игроке, когда заклинание пропадает то скрипт удаляет и скриба. К томуже таймер усложняет скрипт, в случае если заклинаие длится меньше минуты придется делать второй/т. д. скрипт с новыми идешниками скрибов.

 

ПОСТАВЬ СКРИБА В МИР!!!!! выше означенная ошибка указывает на отсутсвие кречести в мире.

Скрипты рабочие, проверенные в ИСНе.

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

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

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

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

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

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

Войти

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

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

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