jimmartens
Neuankömmling
Ich glaube für das SetStage ist kein player. nötig. Schließlich hat es ja direkt gesehen nichts mit dem Spielercharakter zu tun.
scn SotANFollowerScript
short act1
short act2
short buttonMenu
short button
short dead
short timerdead
begin OnActivate player
set buttonMenu to -1
set button to -1
set act1 to 1
MessageBox "Was wollt ihr befehlen?", "Bewegung" "Verhalten" "Kampfstil" "Beenden"
end
begin GameMode
set button to GetButtonPressed
end
begin GameMode
if (act1 == 1)
if ( button == 0 )
set buttonMenu to 1
set act2 to 1
MessageBox "Was verlangt ihr von eurem treuen Gehilfen?", "Folgt mir" "Bleibt hier" "Vergießt Blut" "Seid vorsichtig" "Geht mir aus den Augen" "Beenden"
elseif (button == 1 )
set buttonMenu to 2
set act2 to 1
MessageBox "Wie soll ich mich verhalten?", "Gehen" "Rennen" "Schleichen" "Beenden"
elseif ( button == 2 )
set buttonMenu to 3
set act2 to 1
MessageBox "Womit soll ich an eurer Seite kämpfen?", "Klinge" "Bogen" "Magie" "Beenden"
endif
set act1 to 0
endif
if (act2 == 1)
if (buttonMenu == 1)
if ( button == 0 )
SetActorValue Energy 75
elseif ( button == 1 )
SetActorValue Energy 0
elseif (button == 2 )
SetActorValue Aggression 100
elseif ( button == 3 )
SetAlert 1
elseif ( button == 4 )
movetomarker SotANFollowStartMarker
endif
elseif (buttonMenu == 2)
if ( button == 0 )
Message "Gehen"
elseif ( button == 1 )
Message "Rennen"
elseif (button == 2 )
Message "Schleichen"
endif
elseif (buttonMenu == 3)
if ( button == 0 )
Message "Kinge"
elseif ( button == 1 )
Message "Bogen"
elseif (button == 2 )
Message "Magie"
endif
set act2 to 0
endif
endif
end
begin GameMode
if dead == 1
set timerdead to 6
set timerdead to (timerdead - GetSecondsPassed)
set dead to 0
endif
if timerdead == 5
PlayMagicShaderVisuals creatureEffectUndeadBlade
elseif timerdead == 3
Resurrect 1
elseif timerdead == 2
StopMagicShaderVisuals creatureEffectUndeadBlade
elseif timerdead == 1
Message "Der Begleiter hat sich geheilt und steht nun wieder zu euren Diensten"
set timerdead to 0
endif
end
begin OnDeath
set dead to 1
end
Das ist mein Script.Code:scn SotANFollowerScript short act1 short act2 short buttonMenu short button short dead short timerdead begin OnActivate player set buttonMenu to -1 set button to -1 set act1 to 1 MessageBox "Was wollt ihr befehlen?", "Bewegung" "Verhalten" "Kampfstil" "Beenden" end
Immer, wenn ich den Begleiter ansprechen soll, kommt zwar die 1. MessageBox, aber danach nicht mehr.
Weiß jamand, woran es liegt?
begin OnActivate player
set buttonMenu to -1
set button to -1
set act1 to 1
MessageBox "Was wollt ihr befehlen?", "Bewegung" "Verhalten" "Kampfstil" "Beenden"
end
begin GameMode
[COLOR="Red"]set button to GetButtonPressed[/COLOR] --- Ab hier ist "button" nicht mehr -1
end
scn SotANFollowerScript
short button
short boxlevel
short dead
float timerdead
begin OnActivate player
set boxlevel to 1
set button to -1
end
begin GameMode
set button to GetButtonPressed
if (boxlevel == 1)
MessageBox "Was wollt ihr befehlen?", "Bewegung" "Verhalten" "Kampfstil" "Beenden"
elseif (boxlevel == 2)
MessageBox "Was verlangt ihr von eurem treuen Gehilfen?", "Folgt mir" "Bleibt hier" "Vergießt Blut" "Seid vorsichtig" "Geht mir aus den Augen" "Beenden"
elseif (boxlevel == 3)
MessageBox "Wie soll ich mich verhalten?", "Gehen" "Rennen" "Schleichen" "Beenden"
elseif (boxlevel == 4)
MessageBox "Womit soll ich an eurer Seite kämpfen?", "Klinge" "Bogen" "Magie" "Beenden"
endif
if (boxlevel == 1) && (button == 0)
set boxlevel to 2
elseif (boxlevel == 1) && (button == 1)
set boxlevel to 3
elseif (boxlevel == 1) && (button == 2)
set boxlevel to 4
endif
if (boxlevel == 2) && (button == 0)
SetActorValue Energy 75
elseif (boxlevel == 2) && (button == 1)
SetActorValue Energy 0
elseif (boxlevel == 2) && (button == 2)
SetActorValue Aggression 100
elseif (boxlevel == 2) && (button == 3)
SetAlert 1
elseif (boxlevel == 2) && (button == 4)
movetomarker SotANFollowStartMarker
endif
if (boxlevel == 3) && (button == 0)
Message "Gehen"
elseif (boxlevel == 3) && (button == 1)
Message "Rennen"
elseif (boxlevel == 3) && (button == 2)
Message "Schleichen"
endif
if (boxlevel == 4) && (button == 0)
Message "Klinge"
elseif (boxlevel == 4) && (button == 1)
Message "Bogen"
elseif (boxlevel == 4) && (button == 2)
Message "Magie"
endif
if (dead == 1)
set timerdead to 6
set timerdead to (timerdead - GetSecondsPassed)
set dead to 0
endif
if timerdead == 5
PlayMagicShaderVisuals creatureEffectUndeadBlade
elseif timerdead == 3
Resurrect 1
elseif timerdead == 2
StopMagicShaderVisuals creatureEffectUndeadBlade
elseif timerdead == 1
Message "Der Begleiter hat sich geheilt und steht nun wieder zu euren Diensten"
set timerdead to 0
endif
end
begin OnDeath
set dead to 1
end
scn Toolsscrollscript
ref Scroll
short done
short button
begin OnEquip
Toolsscrollcontainer1.removeallitems
if done == 0
messagebox "Wollt ihr eine Rolle Kopieren?","Ja","Nein"
set done to 1
endif
end
begin Gamemode
if done == 1
set button to getbuttonpressed
if button == 0
if player.getitemcount Inkwell01 >= 1 && player.getitemcount BlankSheet >= 1
set done to 2
else
set done to 0
message "Ihr braucht Tinte und Pergament"
endif
elseif button == 1
set done to 0
endif
endif
if done == 2
Toolsscrollcontainer1.activate player
message "Deponiert NUR die zu Kopierende Rolle" 10
set scroll to Toolsscrollcontainer1.getinventoryobject 0
if scroll != 0
SET DONE TO 3
endif
endif
if done == 3
if scroll.getbookisscroll == 1 && Scroll != 0
Toolsscrollcontainer1.additem Scroll 1
player.removeitem Inkwell01 1
player.removeitem Blanksheet 1
Toolsscrollcontainer1.activate player
Message "Entnehmt eure Kopie"
set done to 0
elseif Scroll.getbookisscroll == 0 && Scroll != 0
message "Ihr habt keine Rolle deponiert. Entnehmt allen Inhalt"
set done to 0
Toolsscrollcontainer1.activate player
elseif scroll == 0
message "BUUUUUUUUUUGGGGG"
endif
endif
end
scn SotANFollowerScript
short button
short boxlevel
short boxclass
short dead
float timerdead
begin OnActivate player
set boxlevel to 1
set boxclass to 1
set button to -1
end
begin GameMode
set button to GetButtonPressed
if (boxclass == 4)
set boxclass to 0
if (boxlevel == 2) && (button == 0)
SetActorValue Energy 75
elseif (boxlevel == 2) && (button == 1)
SetActorValue Energy 0
elseif (boxlevel == 2) && (button == 2)
SetActorValue Aggression 100
elseif (boxlevel == 2) && (button == 3)
SetAlert 1
elseif (boxlevel == 2) && (button == 4)
movetomarker SotANFollowStartMarker
elseif (boxlevel == 3) && (button == 0)
Message "Gehen"
elseif (boxlevel == 3) && (button == 1)
Message "Rennen"
elseif (boxlevel == 3) && (button == 2)
Message "Schleichen"
elseif (boxlevel == 4) && (button == 0)
Message "Klinge"
elseif (boxlevel == 4) && (button == 1)
Message "Bogen"
elseif (boxlevel == 4) && (button == 2)
Message "Magie"
endif
elseif (boxclass == 3)
set boxclass to 4
if (boxlevel == 2)
MessageBox "Was verlangt ihr von eurem treuen Gehilfen?", "Folgt mir" "Bleibt hier" "Vergießt Blut" "Seid vorsichtig" "Geht mir aus den Augen" "Beenden"
elseif (boxlevel == 3)
MessageBox "Wie soll ich mich verhalten?", "Gehen" "Rennen" "Schleichen" "Beenden"
elseif (boxlevel == 4)
MessageBox "Womit soll ich an eurer Seite kämpfen?", "Klinge" "Bogen" "Magie" "Beenden"
endif
elseif (boxclass == 2)
set boxclass to 3
if (button == 0)
set boxlevel to 2
elseif (button == 1)
set boxlevel to 3
elseif (button == 2)
set boxlevel to 4
endif
elseif (boxclass == 1)
set boxclass to 2
MessageBox "Was wollt ihr befehlen?", "Bewegung" "Verhalten" "Kampfstil" "Beenden"
endif
end
[SPOILER="Tod"]begin GameMode
if (dead == 1)
set timerdead to 6
set timerdead to (timerdead - GetSecondsPassed)
set dead to 0
endif
if timerdead == 5
PlayMagicShaderVisuals creatureEffectUndeadBlade
elseif timerdead == 3
Resurrect 1
elseif timerdead == 2
StopMagicShaderVisuals creatureEffectUndeadBlade
elseif timerdead == 1
Message "Der Begleiter hat sich geheilt und steht nun wieder zu euren Diensten"
set timerdead to 0
endif
end
begin OnDeath
set dead to 1
end[/SPOILER]
Ich hab das Script mal umgeschrieben, vielleicht klappt es so:
Code:scn SotANFollowerScript short button short boxlevel short dead float timerdead begin OnActivate player set boxlevel to 1 set button to -1 end begin GameMode if (boxlevel == 1) MessageBox "Was wollt ihr befehlen?", "Bewegung" "Verhalten" "Kampfstil" "Beenden" set button to GetButtonPressed elseif (boxlevel == 2) MessageBox "Was verlangt ihr von eurem treuen Gehilfen?", "Folgt mir" "Bleibt hier" "Vergießt Blut" "Seid vorsichtig" "Geht mir aus den Augen" "Beenden" set button to GetButtonPressed elseif (boxlevel == 3) MessageBox "Wie soll ich mich verhalten?", "Gehen" "Rennen" "Schleichen" "Beenden" set button to GetButtonPressed elseif (boxlevel == 4) MessageBox "Womit soll ich an eurer Seite kämpfen?", "Klinge" "Bogen" "Magie" "Beenden" set button to GetButtonPressed endif if (boxlevel == 1) && (button == 0) set boxlevel to 2 elseif (boxlevel == 1) && (button == 1) set boxlevel to 3 elseif (boxlevel == 1) && (button == 2) set boxlevel to 4 endif if (boxlevel == 2) && (button == 0) SetActorValue Energy 75 elseif (boxlevel == 2) && (button == 1) SetActorValue Energy 0 elseif (boxlevel == 2) && (button == 2) SetActorValue Aggression 100 elseif (boxlevel == 2) && (button == 3) SetAlert 1 elseif (boxlevel == 2) && (button == 4) movetomarker SotANFollowStartMarker endif if (boxlevel == 3) && (button == 0) Message "Gehen" elseif (boxlevel == 3) && (button == 1) Message "Rennen" elseif (boxlevel == 3) && (button == 2) Message "Schleichen" endif if (boxlevel == 4) && (button == 0) Message "Klinge" elseif (boxlevel == 4) && (button == 1) Message "Bogen" elseif (boxlevel == 4) && (button == 2) Message "Magie" endif if (dead == 1) set timerdead to 6 set timerdead to (timerdead - GetSecondsPassed) set dead to 0 endif if timerdead == 5 PlayMagicShaderVisuals creatureEffectUndeadBlade elseif timerdead == 3 Resurrect 1 elseif timerdead == 2 StopMagicShaderVisuals creatureEffectUndeadBlade elseif timerdead == 1 Message "Der Begleiter hat sich geheilt und steht nun wieder zu euren Diensten" set timerdead to 0 endif end begin OnDeath set dead to 1 end
Die erste MessageBox erscheint dauerhaft, weil das boxlevel auf 1 gesetzt wird, aber nach dem Klick auf eine Schaltfläche wird es nicht geändert, sodass Box 1 dauerhaft erscheint. Es wird nicht geändert, weil button vor allen Message Boxen auf den geklickten Button wechselt. Da da aber noch gar nichts geklickt werden kann, versuch es mal so, wie ich es im obigen Skript gemacht habe.
if (boxlevel == 1) && (button == 0)
[COLOR="Red"]set boxlevel to 2[/COLOR]
elseif (boxlevel == 1) && (button == 1)
[COLOR="red"]set boxlevel to 3[/COLOR]
elseif (boxlevel == 1) && (button == 2)
[COLOR="red"]set boxlevel to 4[/COLOR]
endif
if (boxlevel == 1)
MessageBox "Was wollt ihr befehlen?", "Bewegung" "Verhalten" "Kampfstil" "Beenden"
elseif (boxlevel == 2)
MessageBox "Was verlangt ihr von eurem treuen Gehilfen?", "Folgt mir" "Bleibt hier" "Vergießt Blut" "Seid vorsichtig" "Geht mir aus den Augen" "Beenden"
elseif (boxlevel == 3)
MessageBox "Wie soll ich mich verhalten?", "Gehen" "Rennen" "Schleichen" "Beenden"
elseif (boxlevel == 4)
MessageBox "Womit soll ich an eurer Seite kämpfen?", "Klinge" "Bogen" "Magie" "Beenden"
endif
Natürlich wird das boxlevel beim Klick auf einen Knopf verändert
"set button to GetButtonPressed" wird vor allem gemacht, das gilt also für den ganzen GameMode-Block. In Kombination mit boxlevel werden die einzelnen Messageboxen differenziert.
Hier z.B. für das erste boxlevel (= 1. Messagebox)
In diesem Teil werden einfach nur den einzelnen boxleveln die Messageboxen zugewiesen, da ist noch nichts mit drücken.Code:if (boxlevel == 1) && (button == 0) [COLOR=Red]set boxlevel to 2[/COLOR] elseif (boxlevel == 1) && (button == 1) [COLOR=red]set boxlevel to 3[/COLOR] elseif (boxlevel == 1) && (button == 2) [COLOR=red]set boxlevel to 4[/COLOR] endif
Code:if (boxlevel == 1) MessageBox "Was wollt ihr befehlen?", "Bewegung" "Verhalten" "Kampfstil" "Beenden" elseif (boxlevel == 2) MessageBox "Was verlangt ihr von eurem treuen Gehilfen?", "Folgt mir" "Bleibt hier" "Vergießt Blut" "Seid vorsichtig" "Geht mir aus den Augen" "Beenden" elseif (boxlevel == 3) MessageBox "Wie soll ich mich verhalten?", "Gehen" "Rennen" "Schleichen" "Beenden" elseif (boxlevel == 4) MessageBox "Womit soll ich an eurer Seite kämpfen?", "Klinge" "Bogen" "Magie" "Beenden" endif
SCN (Ein beliebiger freier Name)
short done
Begin OnTrigger player
if done == 0
player.setstage (Questid) (Stufe)
set done to 1
end