Brauche Hilfe bei einem Script

Moderator: Moderatoren

8 Beiträge Seite 1 von 1
ZDW
Paladin
Paladin
Beiträge: 122
Registriert: 24.07.2010 13:24
Danksagung erhalten: 1 Mal


Irgendwie komme ich nicht weiter: Der derzeitige Questlevel ist 10, und der Spieler kommt an eine verschlossene Tür (Schlüssel hat er dabei, da Questitem). Ich möchte jetzt, dass zuerst die Tür aufgeschlossen wird, dann der Spieler in die neue Cell transportiert wird und dann der Questlevel auf 20 umspringt, was eine MessageBox auslößt.

Folgendes Script liegt derzeit auf der Tür:
Code: Alles auswählen
scn Haustuerscript

short stagecheck

Begin OnActivate
	Set stagecheck to GetStage 'Questname'
	
	If stagecheck == 10
		SetStage 'Questname' 20
		
	endif
End
Das Problem ist nun, dass die MessageBox sofort erscheint, nicht erst nach durschreiten der Tür. Hinzu kommt, dass die Tür nicht mehr auf den Schlüssel reagiert, sie bleibt einfach zu (das es der richtige Schlüssel ist hab ich geprüft).

Ich vermute ja, dass ich das Skript nicht auf die Tür legen darf, aber wie könnte ich das sonst machen? Gibt es eine Möglichkeit, ein Script auszulösen wenn eine bestimmte Zelle betreten wird?
Prototype3047
Hauptmann
Hauptmann
Beiträge: 84
Registriert: 12.06.2010 13:22


kP, aber du könntest das Problem sicherlich mit einer TrigBox hinter der Tür lösen.
Dazu müsstest du einfach das Script von der Türe wegnehmen und an die Box anfügen.
Ausserdem müsstest du anstatt "Begin OnActivate" mit "Begin OnTriggerActor Player" beginnen.
Das Script wird dann halt immer ausgeführt, wenn man in der Box steht, aber da "Stagecheck"
ja nur einmal 10 ist, sollte das kein Problem sein.

Hoffe konnte irgendwie weiterhelfen.

Greez
ZDW
Paladin
Paladin
Beiträge: 122
Registriert: 24.07.2010 13:24
Danksagung erhalten: 1 Mal


Danke. Wenn du mir noch sagen könntest wie ich eine Triggerbox erstelle sollte das hoffentlich mein Problem lösen.
Hoxyd
SureAI
SureAI
Schwarzer Wächter
Schwarzer Wächter
Beiträge: 4695
Registriert: 02.10.2005 16:09
Hat sich bedankt: 130 Mal
Danksagung erhalten: 228 Mal


Unter Activator:
TrigZonePlayerRESET03 - Zylinder Triggerzone
TrigZonePLAYERRESET01 - Dickes Rechteck Triggerzone
TriggerZoneACTOR01 - Dünnes Rechteck Triggerzone


Für deine Mod eine Triggerbox mit eigenem Namen und Script anlegen.
Arandor
Hoher
Hoher
Beiträge: 1250
Registriert: 12.09.2006 11:50
Hat sich bedankt: 5 Mal


So wäre es ideal:
Code: Alles auswählen
scn HaustuerTrigBoxScript

short state

Begin OnTrigger Player

if ( GetStage 'QuestID' == 10 ) && ( state == 0 )
SetStage 'QuestID' 20
Set state to 1
endif

End
jimmartens
Krieger
Krieger
Beiträge: 40
Registriert: 12.08.2010 12:50


Eine weitere Alternative wäre es zu überprüfen, ob sich der Spieler in der fragwürdigen Zelle aufhält.
Code: Alles auswählen
scn QuestnameSkript

begin Gamemode
  if ( GetStage 'QuestID' == 10)
    if ( player.GetInCell 'CellID' (nur bei Interior) == 1 )
      SetStage 'QuestID' 20
    endif
  endif
end
ZDW
Paladin
Paladin
Beiträge: 122
Registriert: 24.07.2010 13:24
Danksagung erhalten: 1 Mal


Danke, jetzt klappts so wie ich will.
Code: Alles auswählen
scn HaustuerTrigBoxScript

short state

Begin OnTrigger Player

if ( GetStage 'QuestID' == 10 ) && ( state == 0 )
SetStage 'QuestID' 20
Set state to 1
endif

End
Was soll das "state" bewirken? Wenn die Box einmal getriggert wurde ist doch die Queststage ungleich 10.

@jimmartens: Die Version hatte ich mir auch überlegt, aber geht das nicht auf die Perfomance, wenn das Script ständig läuft? (So verstehe ich mal das GameMode)
jimmartens
Krieger
Krieger
Beiträge: 40
Registriert: 12.08.2010 12:50


Naja, da das dann im QuestSkript wäre, würde es keinen Unterschied machen. Denn der QuestSkript läuft sowieso alle 5 Sekunden. Wenn du natürlich keinen Quest hast, dann ist ein Gamemode natürlich unnötige Speicherbelastung.
8 Beiträge Seite 1 von 1

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast