Boot wie im Trailer

Moderator: Moderatoren

38 Beiträge Seite 2 von 4

 

 
Hoxyd
SureAI
SureAI
Schwarzer Wächter
Schwarzer Wächter
Beiträge: 4518
Registriert: 02.10.2005 16:09
Hat sich bedankt: 122 Mal
Danksagung erhalten: 162 Mal


Jo, es ist die Zweitmöglichkeit der Strichpunkt klammert Dinge in Programmiersprachen aus, die werden nicht berücksichtigt.

Set XAchse to XachsePosition +11 ist einfach die Anzahl der Einheiten die sich das Boot jedes Bild/Frame an der XAchse (was genau die Xachse im Spiel ist, musst im Editor nachsehen, bei den Objekteigenschaften) nach vorne bewegt. Je höher der Wert desto schneller. Kannst natürlich auch Minuswerte angeben, dann fährt es in die andere Richtung.

 

 
Andolin
Nehrim Autor
Nehrim Autor
Hauptmann
Hauptmann
Beiträge: 90
Registriert: 22.02.2008 21:29


Nur zum Verständnis:

SCN Boot

Float -18957.0097Position
Float -18957.0097

GameMode

Set -18957.0097Position to GetPos x
Set -18957.0097 to -18957.0097Postition +11
SetPos x -18957.0097

End

Kann mir nicht vorstellen, dass das richtig ist, am Besten wärs natürlich, wenn du das Script direkt aus Nehrim zeigen würdest. :wink:
Das wär exstremst nett, Danke! :wink:

 

 
Hoxyd
SureAI
SureAI
Schwarzer Wächter
Schwarzer Wächter
Beiträge: 4518
Registriert: 02.10.2005 16:09
Hat sich bedankt: 122 Mal
Danksagung erhalten: 162 Mal


Die Float Variablen bleiben wie sie sind. Die speichern die Werte nur, die sich verändern.

Natürlich geht es noch verwirrender, wie du wünscht:
Ist bisschen chaotisch gescriptet :roll: aber es geht.

Code: Alles auswählen
SCN MQ01BootScript

Float XAchsePosition
Float XAchse
Float Timer
Short BootState
Short BootAnkunft
Short BootAnkunft2

Begin OnActivate
	if (Player.IsCurrentFurnitureRef "MQ01BootPlayerStuhl" != 1)		
		Message "Ihr müsst Euch erst auf euren Platz am Heck setzen, damit das Boot ablegen kann."
	endif
End

Begin GameMode
	if (MQ01PorimRef.GetDistance, "MQ01BootPorimStuhlRef" <= 100) && (BootState == 0)
		Set Storyvar to 5
	endif
End

Begin GameMode
	if (Player.IsCurrentFurnitureRef "MQ01BootPlayerStuhl" == 1) && (Storyvar == 5) && (BootState == 0)
		DisablePlayerControls						
		Set Timer to Timer + getSecondsPassed
		if ( Timer >= 5 )
			PlaySound3d DRSMetalOpen01			
			Message "Das Boot legt ab."
			Set BootState to 1
			Set Storyvar to 10								
			Message "Das Boot legt ab."				;Nachricht
		endif
	endif
End

Begin GameMode
	if (BootState == 1)
		Set XAchsePosition to GetPos X
		Set XAchse to XachsePosition +11			
		SetPos X Xachse
	endif
End


Begin GameMode
	if (MQ01BootRef.GetDistance, MQ01BootMarker01 <= 300) && (Storyvar == 10)
		Set Storyvar to 15								
		Set BootAngreifer to 1
	endif
End

Begin GameMode
	if (MQ01BootRef.GetDistance, MQ01BootMarker05 <= 100) && (BootState == 1)
		Set Bootstate to 2								
		Set Storyvar to 20								
		SetStage MQ01Porim 15
		Set BootAnkunft to 1
	endif
End
	
Begin GameMode
	if (Bootstate == 2)
		Set XAchsePosition to GetPos X
		Set XAchse to XachsePosition +0			
		SetPos X Xachse
		Player.EnablePlayerControls				
	endif
End

Begin GameMode
	if (Storyvar == 20) && (BootAnkunft2 == 0)					
		MQ01PorimRef.moveto "MQ01BootMarkerPorim02"			
		Set BootAnkunft2 to 1									
	endif
End

 

 
Andolin
Nehrim Autor
Nehrim Autor
Hauptmann
Hauptmann
Beiträge: 90
Registriert: 22.02.2008 21:29


Danke!

Also muss ich diese ganzen Xachse-Dinger so lassen wie sie sind (?)

Ich geh einfach mal davon aus, dass das Script nicht mit der HQ von Nehrim zu tun hat :wink:
Und das hat es :D Aber die Erläuterung, dass ich Nichts durch "XAchse" ersetzten muss, hätte eig schon gereicht, denn dann hätte ich auch das Script auf der Vorherigen Seite nehmen können.
Apropos, der Script-Editor kann den Begriff "GameMode" nicht interpretieren :?:

 

 
Hoxyd
SureAI
SureAI
Schwarzer Wächter
Schwarzer Wächter
Beiträge: 4518
Registriert: 02.10.2005 16:09
Hat sich bedankt: 122 Mal
Danksagung erhalten: 162 Mal


Genau, und geh auch nicht davon aus, dass irgendjemand das Boot angreifen könnte. :) Nene, wir spoilern nicht.

Begin GameMode
if (MQ01BootRef.GetDistance, MQ01BootMarker01 <= 300) && (Storyvar == 10)
Set Storyvar to 15
Set BootAngreifer to 1
endif
End

GameMode ist ein ganz normaler Blockbefehl.

 

 
Andolin
Nehrim Autor
Nehrim Autor
Hauptmann
Hauptmann
Beiträge: 90
Registriert: 22.02.2008 21:29


Das Script ist der Hammer, allerdings habe ich folgende zwei Probleme:

- das Boot startet, ohne, dass ich es aktiviere (ich glaube der Startbefehl dafür is Begin OnAdd Player)
- es kollidiert nicht mit Objekten (oder dem Erdboden :D )

Tschuldige, dass ich dich so nerve :wink: , aber ich muss noch einmal eine wichtige Frage stellen:
Wie kann ich das Boot nochmals aktivieren, sodass es in die andere Richtung fährt, bzw. anhält?

 

 
Hoxyd
SureAI
SureAI
Schwarzer Wächter
Schwarzer Wächter
Beiträge: 4518
Registriert: 02.10.2005 16:09
Hat sich bedankt: 122 Mal
Danksagung erhalten: 162 Mal


Du brauchst nen Auslöser für das Boot, sonst fährt es die ganze Zeit. Das sind dann aber die Scriptgrundkenntnisse. Schau dich mal Nach Tutorials um.

Das Boot hat keine Kollision mehr wenn es fährt. Wie ein Geist, das geht überall durch.

 

 
Andolin
Nehrim Autor
Nehrim Autor
Hauptmann
Hauptmann
Beiträge: 90
Registriert: 22.02.2008 21:29


Aber es muss sich doch anhalten, bzw. umkehren (in anderer Richtung fahren lassen), indem man es mehrmals aktiviert oder ähnlich?

 

 
V0G3l
Gauner
Gauner
Beiträge: 18
Registriert: 07.11.2007 13:50


hi
wie funktioniert das mit der rotation?

ich habs so probiert:
das ist nicht der ganze script.


Code: Alles auswählen
Begin gamemode
if (bootstate == 1)
set xachserotation to get pos x
set xachse to xachserotation +2
set pos x xachse
player. xachserotation to get pos x
player.xachse to xachserotation +2
player.set pos x xachse
Chair. xachserotation to get pos x
Chair.xachse to xachserotation +2
Chair.set pos x xachse
endif
end

 

 
Hoxyd
SureAI
SureAI
Schwarzer Wächter
Schwarzer Wächter
Beiträge: 4518
Registriert: 02.10.2005 16:09
Hat sich bedankt: 122 Mal
Danksagung erhalten: 162 Mal


Das ist jetzt die einfache Drehung.
Code: Alles auswählen
scn RotateXPlus05

Float XAchse
Float xAchseMoved

Begin GameMode

Set XAchse to GetAngle X
Set XAchseMoved to XAchse + 0.5
SetAngle X XAchseMoved

end
38 Beiträge Seite 2 von 4

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast