|
|||||||
|
Скрипт из МСФД 8.1
|
Скрипт из МСФД 9.0
|
|
Begin script_placePC
;Global Long Start_PCX
;Global Long Start_PCY
;Global Long Start_PCZ
Float xpos
Float ypos
Float zpos
Long higher
Long lower
Short step
If ( step == 0 )
Player->COE 0 0
Set step to 1
Return
Endif
Set xpos to ( Player->GetPos x )
Set ypos to ( Player->GetPos y )
If ( step == 1 )
Set higher to ( Start_PCX + 8192 )
Set lower to ( Start_PCX - 8192 )
If ( xpos > higher )
Set xpos to ( xpos - 8192 )
Player->SetPos x xpos
Elseif ( xpos < lower )
Set xpos to ( xpos + 8192 )
Player->SetPos x xpos
Else
Set step to 2
Endif
Return
Elseif ( step == 2 )
Set higher to ( Start_PCY + 8192 )
Set lower to ( Start_PCY - 8192 )
If ( ypos > higher )
Set ypos to ( ypos - 8192 )
Player->SetPos y ypos
Elseif ( ypos < lower )
Set ypos to ( ypos + 8192 )
Player->SetPos y ypos
Else
Set step to 3
Endif
Return
Elseif ( step == 3 )
Set xpos to Start_PCX
Set ypos to Start_PCY
Set zpos to Start_PCZ
Player->SetPos x xpos
Player->SetPos y ypos
Player->SetPos z zpos
Set step to 0
StopScript script_placePC
Endif
End
|
Begin script_PlacePC
;Global Float Start_PCX
;Global Float Start_PCY
;Global Float Start_PCZ
Float xpos
Float ypos
Float zpos
Float timer
Short step
If ( OnActivate )
Set step to 1
Endif
If ( step == 1 )
FadeOut 0.1
ToggleMenus
Set step to 2
Return
Elseif ( step == 2 )
Set timer to ( timer + GetSecondsPassed )
If ( timer > 0.2 )
Set timer to 0
Set step to 3
Endif
Return
Elseif ( step == 3 )
Set step to 0
Player->COE 0 0
Set xpos to Start_PCX
Set ypos to Start_PCY
Set zpos to Start_PCZ
ToggleMenus
MenuTest
MenuTest
Player->SetPos x xpos
Player->SetPos y ypos
Player->SetPos z zpos
FixMe
Player->SetPos x xpos
Player->SetPos y ypos
Player->SetPos z zpos
FadeIn 0.1
Endif
End
|
|
Похоже в МСФД 8 вошла не правильная версия скрипта, т.е. автор фактически объяснял версию которую не привел в тексте!
Покрайней мере, в РУ версии такая "пьянка".
|
|
|
Этот скрипт повешен на некий Амулет и при одевании, предлагает телепортацию. Но! "Амулет не совершенен" и может случайным образом, закинуть не в ту ячейку куда предлагает.
|
А это второй скрипт который стартует из первого скрипта, собственно он и определяет рандомность.
|
|
Begin AAAA5_controlC
short button
short messageOn
short reset
short OnPcEquip
;************************************************************
if ( MenuMode == 1 ) ;скрипт запускается после выходы из меню!
Return
endif
if ( OnPCEquip == 0 )
set reset to 0
endif
if ( reset == 1 )
return
endif
if ( OnPCEquip == 1 )
if ( reset == 0 )
Set OnPCEquip to 0
MessageBox "Вы желаете снова попасть в Забытый Храм?" "Да." "Нет."
set messageOn to 1
endif
endif
if ( messageOn == 1)
set button to GetButtonPressed
if ( button >= 0 )
set messageOn to 0
endif
if ( button == 0 )
StartScript "AAAA5_controlZZtime" ;это запуск второго скрипта.
;Player->PositionCell -32926.172, 48409.191, 271.703, 270, "(The Forgotten Temple)" ;как видно, скрипт можно "исправить" и он будет работать только на целевую локацию. И да, здесь указаны точные координаты точки выхода
;что гарантирует правильный выход в реальный космос!(С)
PlaySound, "mysticism hit"
set reset to 1
elseif ( button == 1 )
PlaySound, "Item Armor Light Up" ;любой другой звук по вкусу.
set reset to 1
return
endif
endif
End
|
begin AAAA5_controlZZtime
;случайный телепорт амулетом.
;***********************************
short RandomPG ;это "рандом" где устанавливается в некое значение. Здесь 17.
;***********************************
set RandomPG to Random 17 ;можно установить в любое другое и делать (например) сбой телепортации, так чтобы амулет вовсе никуда не переносил.
;но, здесь, телепортация происходит всегда, хотя и не в ту ячейку куда предлагает амулет при использовании.
;***********************************
if ( RandomPG == 0 )
Player->PositionCell -32693.000, 48425.000, 271.000, 16200, "(The Forgotten Temple)"
MessageBox "Вы успешно переместились в забытый храм Древней Славы!"
elseif ( RandomPG == 1 )
Player->PositionCell -32693.000, 48425.000, 271.000, 16200, "(The Forgotten Temple)"
MessageBox "Вы успешно переместились в забытый храм Древней Славы!"
elseif ( RandomPG == 2 )
Player->PositionCell -32693.000, 48425.000, 271.000, 16200, "(The Forgotten Temple)"
MessageBox "Вы успешно переместились в забытый храм Древней Славы!"
elseif ( RandomPG == 3 )
Player->PositionCell -32693.000, 48425.000, 271.000, 16200, "(The Forgotten Temple)"
MessageBox "Вы успешно переместились в забытый храм Древней Славы!"
elseif ( RandomPG == 4 )
Player->PositionCell, 3996.000, 3920.000, 14408.000, 180, "Tower of Tel Fyr, Hall of Fyr"
MessageBox "Кажется, Вас занесло в Тель Фир!"
elseif ( RandomPG == 5 )
Player->PositionCell 12, 219, -501, 0 "Vivec, High Fane"
MessageBox "Похоже вы попали в Вивек!"
elseif ( RandomPG == 6 )
Player->PositionCell 302.738, 504.307, -368.000, 180 "Falasmaryon, Propylon Chamber"
MessageBox "Вас занесло в какой-то Пропильон! Похоже амулет иногда сбоит..."
elseif ( RandomPG == 7 )
Player->PositionCell 12189.465, 3446.914, 2244.715, 270 "(Halls of Remembering)"
MessageBox "Странно... Вроде бы это тот Храм, но одновоременно и другой... Какое загадочное место!"
elseif ( RandomPG == 8 )
Player->PositionCell 288.000, 2816.000, -48.000, 260 "Gnisis, Temple"
MessageBox "Прекрасно! вы в Гнисисе!!! Что за ненадежный амулет!"
elseif ( RandomPG == 9 )
Player->PositionCell -32693.000, 48425.000, 271.000, 16200, "(The Forgotten Temple)"
MessageBox "Вы успешно переместились в забытый храм Древней Славы!"
elseif ( RandomPG == 10 )
Player->PositionCell, 2077.101, -785.586, -752, 270, "Druscashti, Upper Level"
MessageBox "Замечательно! Вас занесло в вампирское Капище!"
elseif ( RandomPG == 11 )
Player->PositionCell -32693.000, 48425.000, 271.000, 16200, "(The Forgotten Temple)"
MessageBox "Вы успешно переместились в забытый храм Древней Славы!"
elseif ( RandomPG == 12 )
Player->PositionCell -1020.140, -1274.823, 208.000, 270 "Alas Ancestral Tomb"
MessageBox "Достойно, вы в Гробнице!"
elseif ( RandomPG == 13 )
Player->PositionCell -32693.000, 48425.000, 271.000, 16200, "(The Forgotten Temple)"
MessageBox "Вы успешно переместились в забытый храм Древней Славы!"
elseif ( RandomPG == 14 )
Player->PositionCell -253.348, 4301.19, -688.000, 200, "Ebernanit, Shrine"
MessageBox "Вас занесло куда-то не туда, опять!"
elseif ( RandomPG >= 15 )
Player->PositionCell -2.323, -11.847, 89.543, 200, "Ebonheart, Imperial Chapels"
MessageBox "Кажется это Эбенгард!"
return
endif
;*************************************************************
StopScript "AAAA5_controlZZtime"
end
|