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

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


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

Написал скрипт призыва монстра. Все бы хорошо, но он выводит кучу ошибок в строке 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 пользователей онлайн

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