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

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


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

Напишите пожалуйста скрипт на благославляющий алтарь, чтоб при активации вылезало окно "Хотите получить благославление за 40 золота?" "Да" "Нет", при нажатии "да" на player'а накладывается определённый спеллмейк и снимается 40 дрейков. Уверен, скрипт несложный, но я в них полный чайник а мне очень не терпится!
Ссылка на комментарий
Поделиться на другие сайты

  • Ответов 321
  • Создана
  • Последний ответ

Топ авторов темы

Топ авторов темы

А посмотреть в конструкторе? Хех.

Скрипт святилища у дворца -- изменил, но не знаю, как будет работать.

 

Begin *имя скрипта*

 

short questionState

short button

 

if ( OnActivate == 1)

Set questionState to 1

Return

endif

 

if ( questionState == 0 )

Return

endif

 

if ( questionState == 1 )

if ( Player->GetItemCount Gold_001 >= 40 )

MessageBox "Вы хотите оставить подношение в виде 40 дрейков и попросить благословения?" "Да" "Нет"

Set questionState to 2

Return

endif

 

Set questionState to 0

Return

 

endif

 

if ( questionState == 2 )

 

set button to GetButtonPressed

 

if ( button == 0 )

Player->RemoveItem Gold_001 40

Cast *ID заклинания* Player

Set questionState to 0

endif

 

if ( button == 1 )

Set questionState to 0

endif

 

endif

 

End

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

Спасибо огромное!

З.Ы:Какого дворца?

З.З.Ы:Надеюсь, нужно иметь не ровно 40, а 40 или больше в инвентаре. Так?

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

  • 2 недели спустя...

Нужен скрипт:

1)в воздухе 2 обьекта(Активатор и НПС(водитель Активатора))

2)должны летать по "квадратному" кругу

3)и попутно кидаться в игрока фаерболтами(1 раз в 10с).

заранее спаибо

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

траектория полета - квадрат, активатор должен так летать пока в водилу не попадешь!(если сделаешь круглую траекторию, то буду рад!)
Ссылка на комментарий
Поделиться на другие сайты

Напишу (попытаюсь) по кругу.

Begin ID_scripta

float timer

if(GetDeadCount "ID NPC в кавычках" > 1)
return
endif
if(MenuMode=1)
return
endif

if(timer >= 10)
cast, firebloom, player
set timer to 0
endif

ID_активатора -> rotate, z 5;чем больше это число, тем меньше радиус круга.
rotate, z 5;то же самое число
ID_активатора -> move y, 100;это число регулирует скорость движения
set timer to timer + GetSecondsPassed

end

 

У НПЦ должно быть заклинание "Огненный цветок", а у активатора должна стоять галочка "references persists"

 

Выглядеть это будет так:

Активатор движется по кругу.

Советую сделать его такой формы, что НПЦ не сможет из него выбежать.

НПЦ раз в десять секунд кидает в ГГ огненный шар.

Если его убьешь, все останавливается.

 

Если надо по-другому или если не заработает - переделаю.

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

Нужен такой скрипт: повесить на обьект, чтобы он при активации меня телепортировал, затем удалялся и появлялся рядом со мной(типа я на нем приехал). Впринципе я сделал но проблема в том, что он не всегда удаляется, может таймер поможет но не получается воткнуть. Вообщем скинте готовый если можно.
Ссылка на комментарий
Поделиться на другие сайты

Нужен такой скрипт: повесить на обьект, чтобы он при активации меня телепортировал, затем удалялся и появлялся рядом со мной(типа я на нем приехал). Впринципе я сделал но проблема в том, что он не всегда удаляется, может таймер поможет но не получается воткнуть. Вообщем скинте готовый если можно.

Посмотрите часть скриптов из ЛМБ - там статик (база) при нажатии на кнопку вне ячейки с базой (внутри оной) удаляется и плейсится в ужеустановленном месте.

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

Как заскриптовать перса чтобы через неделю после смерти Дагот Ура на него накладывались определенные магические эффекты?
Ссылка на комментарий
Поделиться на другие сайты

Как заскриптовать перса чтобы через неделю после смерти Дагот Ура на него накладывались определенные магические эффекты?

 

глобальный скрипт с проверкой на соответствующую запись в журнале, потом счётчик прошедших дней, и потом Player->addspell. Элементарно, но в 4 часа утра заморачиваться лень)

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

Я в скриптах нуб полный,поэтому напиши его пжалста!

И еще-можно такой скрипт написать чтоб при активации предмета(ящика какого-нибудь) проигрывалась музыка Morrowinda(из главного меню)?

Нужен скрипт! Немогу понять как делать скрипты на появление объектов после выполнения квеста?

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

скрипт на появление обьекта:

if (GetJournalIndex megoquest == 100); необязательно мегоквест и необязательно сто. обьект появится при наличии этой записи в журнале

if (GetDisabled == 1)

enable

endif

else

if (getdisabled == 0)

disable

endif

endif

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

скрипт на появление обьекта:

if (GetJournalIndex megoquest == 100); необязательно мегоквест и необязательно сто. обьект появится при наличии этой записи в журнале

 

лучше так:

 

if (GetJournalIndex megoquest < 100)

return

endif

 

экономим ресурсы.

 

if (GetDisabled == 1)

enable

endif

else

if (getdisabled == 0)

disable

endif

endif

 

не понял.

 

Если итема нет

ставим

или

если стоит

убираем

 

щито??

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

не, ты что?

обновил первый пост:

если в журнале запись есть

а предмета нет

енаблим

[конец а предмета нет]

иначе (если записи нет)

ну ты понял, если айтим есть, дисаблим

альтернатива с ретурном:

short DoOnce

 

if (DoOnce == 0)

disable

set DoOnce to 1

endif

 

if (getjournalindex megoquest < 100)

return

endif

 

if (doonce == 1)

enable

set doonce to 2

endif

 

к слову, ретурн если юзать только этот кусочек не сильно экономит проц

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

Понял, понял. Опять невнимательность моя. Когда без отступа строчки не сразу увидишь что к чему.

 

к слову, ретурн если юзать только этот кусочек не сильно экономит проц

 

а если полторы сотни плагов с парой десятков подобных скриптов в каждом, хех)

 

к слову, GCD например, со своей кучей переменных, просаживает лично уменя фпс порядка 30и. Я в шоке.

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

я знаю, долго пытался таб нажать) запостил пол-скрипта в итоге)

просто мне кажется все идет так (только два этих скрипта): оба варианта выполняется пару раз. в первом он будет проскакивать два пустых условия если ничего не изменилось. а во втором будет проскакивать два раза без записи в журнале и три раза - с ней

в больших скриптах это нужно, а в таких - не очень

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

Тэкс, вот какой скрипт мне нужен:

При заходе в помещение на игрока кастуется заклятие, постепенно отнимающее здоровье. При выходе из помещения заклятие прекращается, при повторном входе -- возобновляется. Если же в журнале имеется определённая запись, то заклятие не кастуется и, если оно действовало в момент получения записи, то прекращается.

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

На дверь на входе в помещение скрипт:

begin Air_scr1

if(OnActivate=1)
if(GetJournalIndex ID_квеста < 50);это индекс записи
player->addspell, "ID_закла"
endif
activate
endif

end

 

На дверь на выход:

 

begin Air_scr2

if(OnActivate=1)
if(player->GetSpellEffects, "ID_закла" = 1)
player->removespell, "ID_закла"
endif
activate
endif

end

 

А там, где добавляется запись, сразу после строчки, добавляющей эту запись, пишешь:

if(player->GetSpellEffects, "ID_закла" = 1)
player->removespell, "ID_закла"

 

Тип закла делаешь ability, чтобы его ничем нельзя было снять.

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

скрипт на появление обьекта:

if (GetJournalIndex megoquest == 100); необязательно мегоквест и необязательно сто. обьект появится при наличии этой записи в журнале

if (GetDisabled == 1)

enable

endif

else

if (getdisabled == 0)

disable

endif

endif

 

а не проще ли:

if ( GetJornalndex megoquest < 100 )
Disable
else 
Enable
enif

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

А без дверей?

А без дверей на активатор, с проверкой на нахождение игрока в данной ячейке

begin Air_scr1

if( GetPCCell "ID_Ячейки" == 1)
if(GetJournalIndex ID_квеста < 50);это индекс записи
	 player->addspell, "ID_закла"
endif
Elseif(GetPCCell "ID_Ячейки"== 0)
 if(player->GetSpellEffects, "ID_закла" == 1)
	  player->removespell, "ID_закла"
 endif
endif

end

Со второй частью скрипта не уверен(не помню в какой момент идет просчет функции GetPCCell в момент выхода(еще в старой ячейке) или в момент входа(уже в новой ячейке) это может существенно повлиять на результат) в случае неработоспособности второй части скрипта создать активатор в той ячейке, в которую выходит игрок со следующим скриптом:

begin Air_Scr2
if(GetPCCell "ID_Ячейки_выхода"== 1)
 if(player->GetSpellEffects, "ID_закла" == 1)
	  player->removespell, "ID_закла"
 endif
endif

end

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

Только перед addspell в первом блоке все равно вставь getspelleffects.

А зачем? :scratch: Если только для полноты и красоты скрипта? Тогда предлагаю и во втором блоке сделать проверку на номер журнальной записи...

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

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

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

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

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

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

Войти

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

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

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