Menorra Попробуй по другому. В патче измени скрипт KO_Bath_Tub_Scripts так чтобы он запускал скрипт с выбором мыла из Вонючек. Вот коды:
begin KO_Bath_Tub_Scripts
Short controlvar
Short button
Short activate_menu
Short increments
Short angle_increments
Short lockit
float currxangle
float curryangle
float currzangle
float currxpos
float currypos
float startxangle
float startyangle
float startzangle
float currzpos
float startxpos
float startypos
float startzpos
short counter
;########################################################
; If we're outside, there's no need for this script at all; commented for outside furniture
;########################################################
;If (GetInterior == 0)
; return
;endif
;########################################################
; This code makes sure that the object acts like a regular item
; that you can pick up and place in your inventory while
; in menu mode
;########################################################
if ( menumode == 1 )
if (OnActivate == 1)
Activate
set lockit to 0
endif
return
endif
;########################################################
; If controlvar = -1 means the player selected the "Take" option
; in the menu and lets you pick up the item
;########################################################
if (controlvar == -1)
Activate
set controlvar to 0
set lockit to 0
return
endif
;#######################################################
;Locks the painting position back in place
;Fixes a problem with the positioned object going back to where
;you dropped it after you load a savegame
;There's no way to know when the game is loaded that I know.
;I set the variable "lockit" to 1 whenever the painting is positioned
;When it is set to 1 this piece of code checks
;to see if the object is out of place and puts it back where it's
;supposed to be.
;#######################################################
if (lockit == 1)
if ( GetPos, z != currzpos)
SetPos, x, currxpos
SetPos, y, currypos
SetPos, z, currzpos
return
elseif ( GetPos, y != currypos)
SetPos, x, currxpos
SetPos, y, currypos
SetPos, z, currzpos
return
elseif ( GetPos, x != currxpos)
SetPos, x, currxpos
SetPos, y, currypos
SetPos, z, currzpos
return
endif
endif
;################################################################
; End of Lock check
;################################################################
;######################### Starting Menu ############################
if ( OnActivate == 1 )
;if (GetInterior == 0)
; Activate
; set lockit to 0
; return
;endif
set increments to 1
set angle_increments to 1
set activate_menu to 1
set controlvar to 1
set startxpos to GetPos, x
set startypos to GetPos, y
set startzpos to GetPos, z
set startxangle to GetAngle, x
set startyangle to GetAngle, y
set startzangle to GetAngle, z
set currxpos to GetPos, x
set currypos to GetPos, y
set currzpos to GetPos, z
elseif (controlvar ==0)
return
set lockit to 0
endif
if (activate_menu == 1)
MessageBox "Выберите действие:", "Взять", "Вращать", "Двигать", "Купаться", "Готово"
set activate_menu to 0
set lockit to 0
endif
if (controlvar ==1)
set button to GetButtonPressed
if ( button == -1 )
return
elseif ( button == 0)
set controlvar to -1
set activate_menu to 0
return
elseif ( button == 1)
set controlvar to 2
set activate_menu to 2
elseif ( button == 2)
set controlvar to 3
set activate_menu to 3
elseif ( button == 3 )
StartScript, "_EG_bathuse"
;Messagebox "Вы окунаетесь в горячую воду и смываете с себя грязь. У вас ощущение, будто вы родились заново."
Cast "KO_Bathing_Spell" Player
set controlvar to 0
set lockit to 1
return
else
set controlvar to 0
set activate_menu to 0
set lockit to 1
return
endif
endif
;######################## Rotation Menu ###################################
if (activate_menu ==2)
if (angle_increments == 1)
MessageBox "Меню вращения", "Вращать на 1 градус", "Вращать по оси X", "Вращать по оси Y", "Вращать по оси Z", "Сбросить на 0", "Отменить", "Назад"
elseif (angle_increments == 5)
MessageBox "Меню вращения", "Вращать на 5 градусов", "Вращать по оси X", "Вращать по оси Y", "Вращать по оси Z", "Сбросить на 0", "Отменить", "Назад"
elseif (angle_increments == 45)
MessageBox "Меню вращения", "Вращать на 45 градусов", "Вращать по оси X", "Вращать по оси Y", "Вращать по оси Z", "Сбросить на 0", "Отменить", "Назад"
else
MessageBox "Меню вращения", "Вращать на 90 градусов", "Вращать по оси X", "Вращать по оси Y", "Вращать по оси Z", "Сбросить на 0", "Отменить", "Назад"
endif
set activate_menu to 0
endif
if (controlvar == 2)
set currxangle to GetAngle, x
set curryangle to GetAngle, y
set currzangle to GetAngle, z
set button to GetButtonPressed
if (button == -1)
return
elseif (button == 0)
if (angle_increments == 1)
set angle_increments to 5
elseif (angle_increments == 5)
set angle_increments to 45
elseif (angle_increments == 45)
set angle_increments to 90
else
set angle_increments to 1
endif
set activate_menu to 2
return
elseif (button == 1)
set currxangle to (currxangle + angle_increments)
if (currxangle >= 360)
set currxangle to (currxangle - 360)
endif
SetAngle, x, currxangle
set activate_menu to 2
return
elseif (button == 2)
set curryangle to (curryangle + angle_increments)
if (curryangle >= 360)
set curryangle to (curryangle - 360)
endif
SetAngle, y, curryangle
set activate_menu to 2
return
elseif (button == 3)
set currzangle to (currzangle + angle_increments)
if (currzangle >= 360)
set currzangle to (currzangle - 360)
endif
SetAngle, z, currzangle
set activate_menu to 2
return
elseif (button == 4)
SetAngle, x, 0
SetAngle, y, 0
SetAngle, z, 0
set activate_menu to 2
return
elseif (button == 5)
SetAngle, x, startxangle
SetAngle, y, startyangle
SetAngle, z, startzangle
set activate_menu to 2
return
else
set activate_menu to 1
set controlvar to 1
return
endif
endif
if (lockit == 1)
if ( counter < 20 )
Set counter to ( counter + 1 )
else
Set counter to 0
if ( GetPos, z == currzpos )
if ( GetPos, y == currypos )
if ( GetPos, x == currxpos )
if ( GetAngle, z == currzangle )
if ( GetAngle, y == curryangle )
if ( GetAngle, x == currxangle )
return
endif
endif
endif
endif
endif
endif
SetPos, x, currxpos
SetPos, y, currypos
SetPos, z, currzpos
SetAngle, x, currxangle
SetAngle, y, curryangle
SetAngle, z, currzangle
endif
endif
;##################### Position Menu #######################
if (activate_menu ==3)
if (increments == 1)
MessageBox "Меню движения", "Двигать на 1 пункт", "+X", "-X", "+Y", "-Y", "+Z", "-Z", "Отменить", "Назад"
elseif (increments == 5)
MessageBox "Меню движения", "Двигать на 5 пунктов", "+X", "-X", "+Y", "-Y", "+Z", "-Z", "Отменить", "Назад"
else
MessageBox "Меню движения", "Двигать на 10 пунктов", "+X", "-X", "+Y", "-Y", "+Z", "-Z", "Отменить", "Назад"
endif
set activate_menu to 0
endif
if (controlvar == 3)
set button to GetButtonPressed
if (button == -1)
return
elseif (button == 0)
if (increments == 1)
set increments to 5
elseif (increments == 5)
set increments to 10
else
set increments to 1
endif
set activate_menu to 3
return
elseif (button == 1)
set currxpos to (currxpos + increments)
SetPos, x, currxpos
set activate_menu to 3
return
elseif (button == 2)
set currxpos to (currxpos - increments)
SetPos, x, currxpos
set activate_menu to 3
return
elseif (button == 3)
set currypos to (currypos + increments)
SetPos, y, currypos
set activate_menu to 3
return
elseif (button == 4)
set currypos to (currypos - increments)
SetPos, y, currypos
set activate_menu to 3
return
elseif (button == 5)
set currzpos to (currzpos + increments)
SetPos, z, currzpos
set activate_menu to 3
return
elseif (button == 6)
set currzpos to (currzpos - increments)
SetPos, z, currzpos
set activate_menu to 3
return
elseif (button == 7)
SetPos, x, startxpos
SetPos, y, startypos
SetPos, z, startzpos
set currxpos to startxpos
set currypos to startypos
set currzpos to startzpos
set activate_menu to 3
return
else
set activate_menu to 1
set controlvar to 1
return
endif
endif
End KO_Bath_Tub_Scripts И скрипт _EG_bathuse Begin _EG_bathuse
short button
short EG_tag
if (OnActivate == 0)
return
else
set bathuse_var to 1
if (EG_bathon==1)
MessageBox "Хотите помыться?" "Нет" "Использовать Бархатные ручки" "Использовать Звездный лед" "Использовать Луноцвет" "Использовать Морской бриз" "Использовать Божественное мыло" "Использовать Океанскую глубь" "Использовать Полуночный мускус" "Использовать Решимость"
endif
endif
if ( bathuse_var==1 )
set button to GetButtonPressed
if (button==0)
Set bathuse_var to 0
Activate
endif
if (button==1)
Set EG_tag to 1
endif
if (button==2)
Set EG_tag to 2
endif
if (button==3)
Set EG_tag to 3
endif
if (button==4)
Set EG_tag to 4
endif
if (button==5)
Set EG_tag to 5
endif
if (button==6)
Set EG_tag to 6
endif
if (button==7)
Set EG_tag to 7
endif
if (button==8)
Set EG_tag to 8
endif
if (EG_tag==1)
if ( Player->GetItemCount, "_EG_soapinv_01" == 0 )
MessageBox "У вас нет этого мыла."
Set EG_tag to 0
set bathuse_var to 0
return
endif
StartScript Remove_Bath_Effects
Player->removeitem "_EG_soapinv_01" 1
player->AddSpell, "EG_soap_01"
MessageBox, "Вы окунаетесь в горячую воду и смываете с себя грязь. У вас ощущение, будто вы родились заново."
set bathuse_var to 0
return
endif
if (EG_tag==2)
if ( Player->GetItemCount, "_EG_soapinv_02" == 0 )
MessageBox "У вас нет этого мыла."
Set EG_tag to 0
set bathuse_var to 0
return
endif
StartScript Remove_Bath_Effects
Player->removeitem "_EG_soapinv_02" 1
player->AddSpell, "EG_soap_02"
MessageBox, "Вы окунаетесь в горячую воду и смываете с себя грязь. У вас ощущение, будто вы родились заново."
set bathuse_var to 0
return
endif
if(EG_tag==3)
if ( Player->GetItemCount, "_EG_soapinv_03" == 0 )
MessageBox "У вас нет этого мыла."
Set EG_tag to 0
set bathuse_var to 0
return
endif
StartScript Remove_Bath_Effects
Player->removeitem "_EG_soapinv_03" 1
player->AddSpell, "EG_soap_03"
MessageBox, "Вы окунаетесь в горячую воду и смываете с себя грязь. У вас ощущение, будто вы родились заново."
set bathuse_var to 0
return
endif
if(EG_tag==4)
if ( Player->GetItemCount, "_EG_soapinv_04" == 0 )
MessageBox "У вас нет этого мыла."
Set EG_tag to 0
set bathuse_var to 0
return
endif
StartScript Remove_Bath_Effects
Player->removeitem "_EG_soapinv_04" 1
player->AddSpell, "EG_soap_04"
MessageBox, "Вы окунаетесь в горячую воду и смываете с себя грязь. У вас ощущение, будто вы родились заново."
set bathuse_var to 0
return
endif
if(EG_tag==5)
if ( Player->GetItemCount, "_EG_soapinv_05" == 0 )
MessageBox "У вас нет этого мыла."
Set EG_tag to 0
set bathuse_var to 0
return
endif
StartScript Remove_Bath_Effects
Player->removeitem "_EG_soapinv_05" 1
player->AddSpell, "EG_soap_05"
MessageBox, "Вы окунаетесь в горячую воду и смываете с себя грязь. У вас ощущение, будто вы родились заново."
set bathuse_var to 0
return
endif
if(EG_tag==6)
if ( Player->GetItemCount, "_EG_soapinv_06" == 0 )
MessageBox "У вас нет этого мыла."
Set EG_tag to 0
set bathuse_var to 0
return
endif
StartScript Remove_Bath_Effects
Player->removeitem "_EG_soapinv_06" 1
player->AddSpell, "EG_soap_06"
MessageBox, "Вы окунаетесь в горячую воду и смываете с себя грязь. У вас ощущение, будто вы родились заново."
set bathuse_var to 0
return
endif
if(EG_tag==7)
if ( Player->GetItemCount, "_EG_soapinv_07" == 0 )
MessageBox "У вас нет этого мыла."
Set EG_tag to 0
set bathuse_var to 0
return
endif
StartScript Remove_Bath_Effects
Player->removeitem "_EG_soapinv_07" 1
player->AddSpell, "EG_soap_07"
MessageBox, "Вы окунаетесь в горячую воду и смываете с себя грязь. У вас ощущение, будто вы родились заново."
set bathuse_var to 0
return
endif
if(EG_tag==8)
if ( Player->GetItemCount, "_EG_soapinv_08" == 0 )
MessageBox "У вас нет этого мыла."
Set EG_tag to 0
set bathuse_var to 0
return
endif
StartScript Remove_Bath_Effects
Player->removeitem "_EG_soapinv_08" 1
player->AddSpell, "EG_soap_08"
MessageBox, "Вы окунаетесь в горячую воду и смываете с себя грязь. У вас ощущение, будто вы родились заново."
set bathuse_var to 0
return
endif
endif
StopScript, "_EG_bathuse"
end Вроде так, если не ошибаюсь.