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

Изящный скрипт


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

Короче,нужен хитрый скрипт.

 

Есть некая дверь с замком(сам замок на самом деле генератор случайных чисел)

 

 

№1

Дверь

№2

Замок( генератор случайных чисел)

№3

Кнопки(5 штук)

 

 

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

 

Скрипт нужен именно такой...

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

То есть, шанс открыть равен 20%? А для чего такой хитрый замок, который в итоге всё равно взламывается в среднем с пятого нажатия?
Ссылка на комментарий
Поделиться на другие сайты

То есть, шанс открыть равен 20%? А для чего такой хитрый замок, который в итоге всё равно взламывается в среднем с пятого нажатия?

 

Кто первым выложит скрипт попадает в авторы плагина,для плагина

 

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

ну боже скрипт же простейщий ну.

Писать мне его правда лень, но опишу что надо.

Дверь делаешь активатором, замок располагаешь отдельно. На замок вешаешь скрипт с двумя глобальными переменными, например "unlocked" и "button pressed"

Дальше делаешь условия,

если "button pressed" = 0 то massege box "выбери кнопку"

если "button pressed" = 1 то

если "unlocked" = 0 то massege box "Подумай еще!"

else "Id двери"rotateworld z -90

и еще надо ввести одноразовое использование через локальную переменную doonce

все

На правильную кнопку вешаешь скрипт с условием, если нажата то set "unlocked" 1, playsound "щелк" и set "button pressed" 1

на неправильную нопку вешаешь просто: если нажата то playsound "щелк" и set "button pressed" 1

 

удачи в сборке скрипта :jokingly:

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

На правильную кнопку вешаешь скрипт с условием, если нажата то set "unlocked" 1, playsound "щелк" и set "button pressed" 1

на неправильную нопку вешаешь просто: если нажата то playsound "щелк" и set "button pressed" 1

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

То есть нужна еще одна глобальная переменная, каждый раз (при активации занка и "button pressed" == 0 ) устанавливаемая в рандомное число от одного до пяти. И в скрипт каждой кнопки записать условие проверки соответствия заданной цифры - номера кнопки - этой глобальной переменной.

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

begin blablabla

 

short chance

 

set chance to random (11)

 

if ( OnActivate == 1 )

 

if ( chance < 3 )

 

Activate

 

else

 

messagebox "blabla"

 

return

 

endif

 

endif

 

end

 

вот шаблон скрипта от wierdoman. С ним можно поизвращаться

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

Поправка,я в скриптах нуб,выложите пжалуйста скрипт полностью как в первом посте написано.
Ссылка на комментарий
Поделиться на другие сайты

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

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

Begin 1_Lost_Door_Locked1Act
;Скрипт написан lost81 для одинокий странник
;Скрипт вешается на дверь
;Для проверки случайного значения, которе было сгенегировано необходимо убрать ";"
;во втором блоке if/endif перед MessageBox верная кнопка будет та, № которой = показанному значению + 1

short LTDone
short LTButton
short LTEquality
short LTRandom

if ( OnActivate == 1 )
if ( LTDone == 0 )
	MessageBox "Для открытия замка вам нужно нажать одну из 5 кнопок, в случае удачного исхода дверь откроется, в случае ошибки код сменится" "Кнопка 1" "Кнопка 2" "Кнопка 3" "Кнопка 4" "Кнопка 5"
	Set LTDone to 1
endif
endif

if ( LTDone == 1 )
Set LTRandom to Random, 5
;	MessageBox "LTRandom присвоено значение %g", LTRandom
Set LTDone to 2
endif

if (LTDone == 3)
if ( LTEquality == LTRandom )
	MessageBox "Получилось!"
	Activate
	Set LTDone to 0
else
	MessageBox "Попробуй еще раз"
	Set LTDone to 0
endif
endif

if ( LTDone == 2 )
Set LTButton to GetButtonPressed
	if ( LTButton == -1 )
		Return
	elseif ( LTButton == 0 )
		PlaySound, "Item Ring Up"
		Set LTEquality to 0
		Set LTDone to 3
	elseif ( LTButton == 1 )
		PlaySound, "Item Ring Up"
		Set LTEquality to 1
		Set LTDone to 3
	elseif ( LTButton == 2 )
		PlaySound, "Item Ring Up"
		Set LTEquality to 2
		Set LTDone to 3
	elseif ( LTButton == 3 )
		PlaySound, "Item Ring Up"
		Set LTEquality to 3
		Set LTDone to 3
	elseif ( LTButton == 4 )
		PlaySound, "Item Ring Up"
		Set LTEquality to 4
		Set LTDone to 3
	endif
endif

End

Если же использовать несколько объектов(я, кстати, не вижу никакого смысла так усложнять плагин! И, на твоем бы месте, воспользовался бы первым вариантом.) То одним скриптом не обойдешься! Думаю кто-то может предложить варианты и поизящней, но, я сделал так( комментарии что куда цеплять и тд написаны в самих скриптах):

Begin 1_Lost_Door_Locked7Act_Glob
;Скрипт написан lost81 для одинокий странник
;Глобальный скрипт. Перед написанием всех скриптов необходимо объявить глобальные 
;переменные в Gameplay->Globals...->New Затем задать значения этим переменным.

;LTDoorStasus - глобальная переменная типа short с начальный значением 0
;LTDoorRandom - глобальная переменная типа short с начальным значением -1

;Для проверки случайного значения, которе было сгенегировано необходимо убрать ";"
;в первом блоке if/endif перед MessageBox верная кнопка будет та, № которой = показанному значению + 1

short LTDoorEquality

if ( LTDoorStasus == 1 )
Set LTDoorEquality to Random, 5
;	MessageBox "Значение LTDoorEquality %g", LTDoorEquality
Set LTDoorStasus to 2
endif

if ( LTDoorStasus == 3 )
if ( LTDoorRandom == LTDoorEquality )
	MessageBox "Верная кнопка, дверь открыта!"
	Set LTDoorStasus to 4
elseIf ( LTDoorRandom != LTDoorEquality )
	MessageBox "Неверная кнопка, код будет изменен! Попробуйте еще раз воспользоваться замком."
	Set LTDoorRandom to -1
	Set LTDoorStasus to 0
endif
endif

End

 

Begin 1_Lost_Door_Locked7Act_2
;Скрипт написан lost81 для одинокий странник
;Скрипт вешается на дверь

;LTDoorStasus - глобальная переменная типа short с начальный значением 0
;LTDoorRandom - глобальная переменная типа short с начальным значением -1

if ( OnActivate == 1 )
if ( LTDoorStasus == 4 )
	Activate
	Set LTDoorRandom to -1
	StopScript 1_Lost_Door_Locked7Act_Glob
	Set LTDoorStasus to 0
else
	MessageBox "Дверь закрыта, воспользуйтесь замком"
endif
endif

End

 

Begin 1_Lost_Door_Locked7Act_1
;Скрипт написан lost81 для одинокий странник
;Скрипт вешается на замок (или любой другой активатор)

;LTDoorStasus - глобальная переменная типа short с начальный значением 0

if ( OnActivate == 1 )
if ( LTDoorStasus == 0 )
		MessageBox "Для открытия замка вам нужно нажать одну из 5 кнопок, в случае удачного исхода дверь откроется, в случае ошибки код сменится" "Закрыть сообщение"
		StartScript 1_Lost_Door_Locked7Act_Glob
		Set LTDoorStasus to 1
endif
endif

End

 

 

Begin 1_Lost_Door_Locked7Act_B1
;Скрипт написан lost81 для одинокий странник
;Скрипт вешается на кнопку №1 с уникальным ID, кнопка жолжна быт активатором.

;LTDoorStasus - глобальная переменная типа short с начальный значением 0
;LTDoorRandom - глобальная переменная типа short с начальным значением -1

if ( OnActivate == 1 )
if ( LTDoorStasus == 2 )
	PlaySound, "Item Ring Up"
	Set LTDoorRandom to 0
	Set LTDoorStasus to 3
endif
endif

end

 

Begin 1_Lost_Door_Locked7Act_B2
;Скрипт написан lost81 для одинокий странник
;Скрипт вешается на кнопку №2 с уникальным ID, кнопка жолжна быт активатором.

;LTDoorStasus - глобальная переменная типа short с начальный значением 0
;LTDoorRandom - глобальная переменная типа short с начальным значением -1

if ( OnActivate == 1 )
if ( LTDoorStasus == 2 )
	PlaySound, "Item Ring Up"
	Set LTDoorRandom to 1
	Set LTDoorStasus to 3
endif
endif

end

 

Begin 1_Lost_Door_Locked7Act_B3
;Скрипт написан lost81 для одинокий странник
;Скрипт вешается на кнопку №3 с уникальным ID, кнопка жолжна быт активатором.

;LTDoorStasus - глобальная переменная типа short с начальный значением 0
;LTDoorRandom - глобальная переменная типа short с начальным значением -1

if ( OnActivate == 1 )
if ( LTDoorStasus == 2 )
	PlaySound, "Item Ring Up"
	Set LTDoorRandom to 2
	Set LTDoorStasus to 3
endif
endif

end

 

Begin 1_Lost_Door_Locked7Act_B4
;Скрипт написан lost81 для одинокий странник
;Скрипт вешается на кнопку №4 с уникальным ID, кнопка жолжна быт активатором.

;LTDoorStasus - глобальная переменная типа short с начальный значением 0
;LTDoorRandom - глобальная переменная типа short с начальным значением -1

if ( OnActivate == 1 )
if ( LTDoorStasus == 2 )
	PlaySound, "Item Ring Up"
	Set LTDoorRandom to 3
	Set LTDoorStasus to 3
endif
endif

end

 

Begin 1_Lost_Door_Locked7Act_B5
;Скрипт написан lost81 для одинокий странник
;Скрипт вешается на кнопку №5 с уникальным ID, кнопка жолжна быт активатором.

;LTDoorStasus - глобальная переменная типа short с начальный значением 0
;LTDoorRandom - глобальная переменная типа short с начальным значением -1

if ( OnActivate == 1 )
if ( LTDoorStasus == 2 )
	PlaySound, "Item Ring Up"
	Set LTDoorRandom to 4
	Set LTDoorStasus to 3
endif
endif

end

 

НАСЛАЖДАЙСЯ! http://fullrest.ru/forum/public/style_emoticons/default/38.gif

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

НАСЛАЖДАЙСЯ! http://fullrest.ru/forum/public/style_emoticons/default/38.gif

 

 

 

 

Спасибо!Большое!ГИГАНТСКОЕ!

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

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

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

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

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

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

Войти

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

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

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