Construction Set Der Scriptthread

Hey Killfetzer,

danke für die schnelle Antwort!!!:D Werde das Script heute Abend mal ausprobieren. Arbeite gerade an einem riesigen Daedra-Mod und brauche Flammen ohne Ende, muuuuuuuuuuahahaaaaaaaaa!!!

Warte mal, da kommt mir eine Idee?! Könnte man das Script noch in so fern erweitern, das die Flamme auch richtig Aua macht?:cry: Vielleicht ne unsichtbare Kontakt-Zone, die sich im gleichen Intervall an -und ausschaltet?

Aber laß Dir diesmal ruhig Zeit mit der Antwort, hab' noch genug anderes zu tun.


@Killfetzer: Hab das mit der Flamme getestet, renne in den Radius, die Flamme geht an und sieht super geil aus. Solange ich im Radius bleibe brennt sie weiter. Wenn ich dann herausgehe, geht sie aus, aber dann nicht wieder an wenn ich den Prozess wiederhole.

Ist bestimmt nur ne Kleinigkeit im Script, die fehlt.

Greets TheDaywalker!!!
 
Zuletzt bearbeitet:
@ DayWalker

Code:
begin my_script

short state

If (state == 0)
If (GetDistance Player < 512)
    Enable
    set state to 1
endif
endif

If (state == 1)
If (GetDistance Player > 512)
    Disable
    set state to 0
endif
endif

HurtCollidingActor x ;x =der Schaden pro Sekunde die der Actor nimmt

end

PS: Killfetzter hat nichts vergessen er dachte nur du willst dass die Flamme nur einmal aufleuchtet^^
der Script hat das nicht sie geht immer wieder aus und an
PPS: Ich heiß Teemperor nicht the emperor, das ist mein Pseudonym ist aber (wie duu vermustest hast) aus the emperor entstanden
 
Zuletzt bearbeitet:
  • Like
Reaktionen: TheDaywalker
ich bräuchte jemanden, der mir ein script schreiben kenn, da ich es nicht kann.^^
ich sage jetzt nichts genaueres,, da ich das script für eine (geheime^^) mod. brauche, meldet euch bei interesse bitte per PM bei mir!^^
 
Hi T(h)eemperor,:lol:

danke erstmal, so wie ich Dein Script verstehe (wahrscheinlich gar nicht!!!), ist es allein für den Schaden zuständig, richtig?!

Wenn ja, wie mache ich aus Deinem Script und dem von Killfetzer ein einziges und wie ändere ich das, dass die Flamme immer wieder funktioniert?

Danke für die Geduld mit mir, verspreche auch das Script-Tutorial zu lesen, sobald ich Zeit habe, hehe!!!:-D
 
Ich verstehe eigentlich auch nichts von Scripten ( jedenfals noch nicht richtig ) aber so wie ich das sehe ist das das komplette Script...Das es an und aus geht is drinnen und den schaden musst du nurnoch einstellen wie viel und das wars dann soweit ich das sehe, kann mich allerdings auch täuschen...
 
@ The Nightwalker: (du heist jetzt so bis du meinen Namen richtig schreibst:-D)

Das war das komplette Script. Ich hab Killfetzters nur überarbeitet und die Zeile mit HurtColliding Actor hinzugefügt.
Den Befehl hab ich ürbigens aus einem Script in der Aktivator leiste geklaut :lol:.

@ Carcharoth:
ka ahung was du meinst :eek:
ich kenn mich mit shader nicht aus
ausserdem sind mir die Scriptbefehle vollkommen unbekannt:huh:
 
  • Like
Reaktionen: TheDaywalker
Moin T(h)eemperor,

kam mir so kurz vor das Script, deshalb meine Verwirrung:huh:

Das mit den Flammen sieht so geil aus in meinem Mod, hab's an verschiedenen Stellen eingbaut. Was in Deinem Script bewirkt jetzt eigentlich das die Flamme immer wieder erscheint und nicht nur einmal wie im Script von Killfetzer, will das verstehen, damit ich das später auch bei anderen Scripts anwenden kann.

Noch ne Frage:
Kann man durch ein auf ein Ojekt gelegtes Script das Ding größer machen als Faktor 2.0 so wie im CS-Kit. Geht mir manchmal tierisch auf den Keks diese Begrenzung!!

Greets TheNight, äh TheDaywalker!!!:lol:
 
  • Like
Reaktionen: Hellchrist
Moin T(h)eemperor,
Noch ne Frage:
Kann man durch ein auf ein Ojekt gelegtes Script das Ding größer machen als Faktor 2.0 so wie im CS-Kit. Geht mir manchmal tierisch auf den Keks diese Begrenzung!!

*Senf dazugeb*

ja kann man. das script ist eines der leichtesten die !!selbst ich!! hinbekomme:D
also:

Begin dinggrößermachenscript

setscale x

end

so das Problem ist aber dass bei einem script wo die größe über 2.0 verändert wird die collision boxen nicht mitmachen, d.h. dass wenn man einen baum auf 1000 vergrößert man durch ihn durchgehen kann und irgendwann auf die collision box vom 2.0er baum stößt. PS: ich habs ausprobiert, nciht zu empfehlen^^
 
Hi Leute,

muss Euch nochmal mit 2 Script-Fragen nerven:

1. zu meinem Flammen-Script, siehe vorherige Seite(n):
Flamme soll nicht von Anfang an brennen, sondern erst angehen, wenn der Spieler den Radius von <512 betritt.

Das Script macht aber folgendes: Flamme brennt bei Ankunft und geht erst nach einmaligem Betreten und wieder Verlassen des Radius an und aus, so wie gewollt. Wo könnte der Fehler im Script sein???

2. Wenn ich das Script auf andere Gegenstände anwende, sind die dann nur unsichtbar, oder besteht auch keine Kollisions-Box?

Greets, TheDaywalker
 
so, ich brauch ein letztes script(eigtl. 2)
ich will auch die schöne disskussion von teemperor usw. nicht stören, aber ich brauch dringend 2 skripts, nähmlich:

eins, mit dem man einen activator durch aktivieren mit WASD vorwärts, rückwärts, rechts drehen und links drehen kann, und mit YX höher und tiefer.
wennn man ihn ein 2tesmal aktiviert, soll man auf ihm wie auf einem static gehen können und ein drittes aktivieren schaltet auf steuermodus um.

dann brach ich noch ein skript für misc items und statics, die genau die gleihce bewegung machen wie das vom ersten(durch den player herforgerufene) und trodzdem begehbar(wie statics sind).

ich weiß das es das skript gibt und es funktioniert. (FA und stormrider)

bitte helft mir!!

und as 2te für doors und doormarker
 
Zuletzt bearbeitet von einem Moderator:
1. zu meinem Flammen-Script, siehe vorherige Seite(n):
Flamme soll nicht von Anfang an brennen, sondern erst angehen, wenn der Spieler den Radius von <512 betritt.

Das Script macht aber folgendes: Flamme brennt bei Ankunft und geht erst nach einmaligem Betreten und wieder Verlassen des Radius an und aus, so wie gewollt. Wo könnte der Fehler im Script sein???

2. Wenn ich das Script auf andere Gegenstände anwende, sind die dann nur unsichtbar, oder besteht auch keine Kollisions-Box?

zu1: welcher fehler?? macht der script denn jetzt, was du willst oder nicht?
(tut mir leid wenn ich auf dem schlauch steh)

zu2:

Code:
begin my_script

short state

If (state == 0)
If (GetDistance Player < 512)
    [COLOR="Red"]Enable[/COLOR]
    set state to 1
endif
endif

If (state == 1)
If (GetDistance Player > 512)
    [COLOR="red"]Disable[/COLOR]
    set state to 0
endif
endif

HurtCollidingActor x

end

*lehrerspiel*:

disable und enable sorgen dafür, dass das objekt mitsamt seiner box verschwindet, egal was es ist (hauptsache, es ist möglich, einen script draufzulegen;))
 
@Luke:

Danke für Deine Geduld , aber das Script macht nicht was es soll, den Rest hab ich jetzt glaub ich verstanden. Nochmal in Kurzform was es machen soll (Wunsch) und was es wirklich macht (Realität).:)

Wunsch: Flamme bei Ankunft aus, Spieler betritt Radius, Flamme an/ Spieler verläßt Radius, Flamme wieder aus

Realität: Flamme bei Ankunft an (soll aber nicht!!!):shock:, der Rest mit an aus läuft prima, wenn man einmal in den Radius rein und raus gelaufen ist.

Irgendwo muss im Script der Wurm drin sein. Frage an alle???


Ps:mad:Carcharoth: Ich spüre Deinen inneren Konflikt, noch ist es nicht zu spät, befreie Dich und komm auf die gute Seite der Macht und modde lieber für Morrowind!!! (Luke, kannst Du mir sagen, wie ich jetzt auf sowas komme, hehe!!!)



Bis morgen, TheDaywalker!!!
 
Zuletzt bearbeitet:
Code:
begin my_script

short state

If (state == 0)
If (GetDistance Player > 512)
    Disable
endif
endif

If (state == 0)
If (GetDistance Player < 512)
    Enable
    set state to 1
endif
endif

If (state == 1)
If (GetDistance Player > 512)
    Disable
    set state to 0
endif
endif

HurtCollidingActor x

end
jetzt funzt es dass es deinem wunsch enspricht TheNightwalker
@Cacharoth: Kein Porblem irren ist menschlich
 
  • Like
Reaktionen: TheDaywalker
@TheNightwalker:

Teeemperors Version ist schon gut, ich würde sie aber noch ein wenig anders machen. Dadurch würde die Anfangsbedingung nicht immer wieder abgefragt (spart einfach Rechenzeit). Außerdem füge ich den Schaden anders zu:

Code:
begin my_script

short state
float timer

if ( state == 0 )
  if ( GetDistance Player > 512 )
    Disable
  endif
set state to 1
endif

if ( state == 1 )
  if ( GetDistance Player < 512) 
    Enable
    set state to 2
  endif
endif

if ( state == 2 )
  set timer to timer + GetSecondsPassed
  if ( timer >= 1 )
    Player->ModCurrentHealth -1
    set timer to 0
  endif
  if ( GetDistance Player > 512 )
    Disable
    set timer to 0
    set state to 1
  endif
endif

end

HurtCollidingActor funktioniert natürlich nur, wenn die Flamme eine Collisionbox besitzt (was sie wahrscheinlich nicht hat). Hier wirst du dann wahrscheinlich eher über ModCurrentHealth machen (siehe oben).

Numidium schrieb:
eins, mit dem man einen activator durch aktivieren mit WASD vorwärts, rückwärts, rechts drehen und links drehen kann, und mit YX höher und tiefer.
wennn man ihn ein 2tesmal aktiviert, soll man auf ihm wie auf einem static gehen können und ein drittes aktivieren schaltet auf steuermodus um.

Nein, das ist nicht möglich, egal was du schreibst. Du kannst mit vielleicht die Bewegungen des Spielers nachmachen, aber du kannst nicht mit irgendwelchen Tasten ein Objekt fernsteuern, da du einfach keine Tastenanschläge abfragen kannst in Morrowindscript.

dann brach ich noch ein skript für misc items und statics, die genau die gleihce bewegung machen wie das vom ersten(durch den player herforgerufene) und trodzdem begehbar(wie statics sind).

ich weiß das es das skript gibt und es funktioniert. (FA und stormrider)

bitte helft mir!!

und as 2te für doors und doormarker

1. Damit ein Gegenstand eine Kollisionsabfrage besitzt (in deinen Worten "begehbar ist"), muss er kein Static sein. Er kann auch ein Activator, ein Container, eine Door, eine Kreatur oder ein NPC sein (ich hoffe ich hab jetzt alle Objekttypen mit Kollisionsabfrage erwischt).

2. Du kannst Doormarker nicht im Spiel bewegen. Wenn du eine Tür mit verschiedenen Zielen haben willst, musst du das über ein Script lösen.

3. Hier ein Script mit dem du die Bewegung des Spielers nachvollziehen kannst:

Code:
begin my_script

short state
float xpos1
float xpos2
float deltax
float ypos1
float ypos2
float deltay
float zpos1
float zpos2
float deltaz
float timer

if ( state == 0 )
  set xpos1 to Player->GetPos X
  set ypos1 to Player->GetPos Y
  set zpos1 to Player->GetPos Z
  set state to 1
endif

if  ( state == 1 )
  set timer to timer + GetSecondsPassed
  if ( timer >= 0.05 )
    set timer to 0
    set state to 2
  endif
endif

if ( state == 2 )
  set xpos2 to Player->GetPos X
  set ypos2 to Player->GetPos Y
  set zpos2 to Player->GetPos Z
  set deltax to xpos2 - xpos1
  set deltay to ypos2 - ypos1
  set deltaz to zpos2 - zpos1

  //Hier kommt dann rein was du mit den Bewegungen des Spielers machen willst. Somit kannst du zum Beispiel deinen Gegenstand steuern, indem er die Bewegungen nachmacht.  

  set state to 0
endif

end
 
  • Like
Reaktionen: TheDaywalker
Leute, ich liebe Euch!!!:D

Ihr werdet später sehen, was ich im Mod aus dem Script gemacht hab, das ist so vielfältig nutzbar, mir kommen da ganz kranke Ideen.

Leider hab' ich schon wieder die nächsten Fragen:

Habe in meiner Zelle das Wetter "Roter Berg" gewählt, weil das am besten zur Stimmung dort paßt, dadurch ergaben sich aber 2 Probleme.

1. Das Cs-Kit hat gleich den Namen der ganzen Zelle in "Roter Berg" geändert

2. Im Spiel werden jetzt für diese Region typische Kreaturen generiert, wie Aschesklaven und so, die natürlich überhaupt nicht in meinen Daedra Mod hereinpassen. Muss ich das Wetter wieder ändern, oder läßt sich das durch ein Script beheben?

@Killfetzer: Dir laß ich das mit der Verunstaltung meines Namens nochmal ausnahmsweise durchgehen. An einen Super-Moderator traue ich mich momentan NOCH nicht ran. hehe!!!

Greets, TheDaywalker!!!
 
Zuletzt bearbeitet:
@ TheNightwalker:
Du hast das Wetter geändert und dann haben sich Objekte (die Aschensklavenusw.) darauf gezeigt :eek:. Das ist mir neu
Wenn du aber einfach nur ein Anderes Wetter haben willst, benutz den Script:

Code:
begin wetterbestimmen

short wetter

If (wetter == 0)
   ModRegion, „Roter Berg“, 0, 0, 0, 0, 100, 0, 0, 0, 0, 0
   set wetter to 1
endif

end

Die Zahlen hinter dem der ID geben die Wahrscheinlichkeit des Wetters an. Die 5te Zahl ist 100 % das entspricht gewitter.
Was die Zahlen sind zeigt dir dass hier:

0 Sonnenschein
1 Bewölkt
2 Neblig
3 Stark bewölkt
4 Regen
5 Gewitter
6 Aschesturm
7 Peststurm
Mit Bloodmoon gibt es zusätzlich noch:
8 Schnee
9 Blizzard

steht alles in Killfetzer´s Befehlsliste drinnen.:p

Leg in einfach auf einen Stein oder etwas ähnliches in dem gewünschten Gebiet

MFG T(h)eemperor ^^
 
  • Like
Reaktionen: TheDaywalker
Habe in meiner Zelle das Wetter "Roter Berg" gewählt, weil das am besten zur Stimmung dort paßt, dadurch ergaben sich aber 2 Probleme.

1. Das Cs-Kit hat gleich den Namen der ganzen Zelle in "Roter Berg" geändert

2. Im Spiel werden jetzt für diese Region typische Kreaturen generiert, wie Aschesklaven und so, die natürlich überhaupt nicht in meinen Daedra Mod hereinpassen. Muss ich das Wetter wieder ändern, oder läßt sich das durch ein Script beheben?

Das hat einen einfachen Grund. Du begehst nämlich einen groben Fehler. Du hast deiner Zelle eine Region zugewiesen, die es schon gibt. In den Regionsdefinitionen werden auch die normalen (also nicht speziellen, wie etwa Balmora) Zellennamen und die Monstersets vorgegeben.

Du willst nur eine Region mit dem Wetter vom Roten Berg. Also erstellst du eine neue Region und stellst dort alles so ein, wie du willst. Dann weißt du deiner Zelle diese Region zu.

Teemperors Befehl hat leider keinerlei Wirkung. Damit änderst du nur das Wetter auf dem Roten Berg. Wenn dieser Befehl schon für deine Zelle gelten soll, muss du bei RegionID auch deine selbstertellte Region eintragen.
 
  • Like
Reaktionen: TheDaywalker
@T(h)eemperor: Hmm, dann muß das mit dem Aschesklaven woanders dran liegen, vielleicht hab ich irgendwas aus versehen verstellt, oder das Ding ist Im CS-Kit unter einer Landmasse verborgen und nur beim Spieltesten sichtbar, werde das mal überprüfen.

@Killfetzer: Ich und "Grobe Fehler", sowas passiert mir doch nicht, immerhin modde ich doch schon seit ner ganzen Woche!!!:lol: Werde Deinen Tip mal umsetzen, hört sich plausibel an.

@T(h)eemperor & Killfetzer: Gibt's von Euch eigentlich eigene Mods oder seid ihr "nur" Scripting-"Freaks";)

Thx, TheDaywalker!!!
 
Zuletzt bearbeitet:
Code:
[B][SIZE=2]
;-------------------------------------------------------------------------------------------------------------------------------------------------------------
; Stormrider Ship Script - Copyright © Nov 2004 by Kellick Stormcrow
; Based on: Ship Script - Copyright © Feb 2003 by (MAD)MAX YUE
;-------------------------------------------------------------------------------------------------------------------------------------------------------------
Begin KS_SR_Ship_Script
;-------------------------------------------------------------------------------------------------------------------------------------------------------------
;GLOBAL PARMATERS
;===============================================================================
;short KS_SR_Ship_Sailmode ; 0=dismounted, 1=sailing
;short KS_SR_Ship_Cellchange ; flag when player change cell
;short KS_SR_Ship_Speed ; sailing speed
;float KS_SR_Ship_Angle ; store object angle before it gets deleted
;float KS_SR_Ship_Xmul ; pre-determined sin/cos multiplier
;float KS_SR_Ship_Ymul ; pre-determined sin/cos multiplier
;short KS_SR_Ship_Freemode ; flag set when in freemode
;-------------------------------------------------------------------------------------------------------------------------------------------------------------
;LOCAL PARAMETERS
;===============================================================================
float xx ; object x coordinates
float yy ; object y coordinates
float zz ; object z coordinates
float oangle ; object z axis angle
float zangle ; player z axis angle
float xxx ; player x coordinates
float yyy ; player y coordinates
float zzz ; player z coordinates
float xxxx ; collision x coordinates
float yyyy ; collision y coordinates
short landed ; parameter set when player landed
float stimer ; timer used to delay delete object
short sscript ; parameter set when cell change
short doOnce ; parameter used to set boat position once immediately after creation
short select ; button used for selecting options
short selectflag1 ; flag set when boat is activated
short selectflag2 ; flag set when FTS or Fast Travel is selected
short selectflag3 ; flag set for boat
short delay ; parameter used to delay Disable/Enable
short pressed ; parameter to determine whether button is pressed
short temp ; temporary parameter
float xdist ; parameter used to calculate x distance
float ydist ; parameter used to calculate y distance
float distance ; parameter used to calculate avg distance
short startflag ; parameter used to check whether boat is docking
short disableflag ; flag used to disable ship script
short repair ; parameter used to calculate repair pts
short fflag
;-------------------------------------------------------------------------------------------------------------------------------------------------------------
; SCRIPT BEGINS
;-------------------------------------------------------------------------------------------------------------------------------------------------------------
if ( MenuMode == 1 )
return
endif
;-------------------------------------------------------------------------------------------------------------------------------------------------------------
; DELETE OBJECT
;-------------------------------------------------------------------------------------------------------------------------------------------------------------
if ( disableflag == 1 )
Disable
set KS_SR_Ship_Flag to 0
if ( CellChanged == 1 )
SetDelete, 1
endif
return
endif
if ( KS_SR_Ship_Speed > 0 )
if ( CellChanged == 1 )
set KS_SR_Ship_Cellchange to 1
endif
endif
;-------------------------------------------------------------------------------------------------------------------------------------------------------------
; Object will warp or remain in previous cell during cell change. To replace the object, 
; a new object is created. Requires global script "KS_SR_Ship_Create" to create new object.
;-------------------------------------------------------------------------------------------------------------------------------------------------------------
if ( KS_SR_Ship_Sailmode == 1 )
if ( KS_SR_Ship_Cellchange == 1 )
set KS_SR_Ship_Flag to 0
startscript, "KS_SR_Ship_Create"
set KS_SR_Ship_Cellchange to 2
set stimer to 0
if ( sscript > 0 )
SetDelete, 1
return
endif
set sscript to 1
endif
endif
if ( sscript == 1 )
if ( KS_SR_Ship_Cellchange == 0 )
Disable
set sscript to 2
endif
endif
if ( sscript == 2 )
set stimer to ( stimer + GetSecondsPassed )
if ( stimer >= 1.5 )
SetDelete, 1
return
else
return
endif
endif
if ( KS_SR_Ship_Speed > 0 )
if ( delay == 0 )
Disable
set delay to 1
endif
endif
;-------------------------------------------------------------------------------------------------------------------------------------------------------------
; Set ship initial coordinates
;-------------------------------------------------------------------------------------------------------------------------------------------------------------
if ( doOnce == 0 )
Disable
if ( KS_SR_Ship_X != 0 )
if ( KS_SR_Ship_Y != 0 )
set xx to KS_SR_Ship_X
set yy to KS_SR_Ship_Y
if ( KS_SR_Ship_Angle >= 0 )
set oangle to ( KS_SR_Ship_Angle - 180 )
else
set oangle to ( 180 + KS_SR_Ship_Angle )
endif
setpos, x, xx
setpos, y, yy
setpos, z, -100
setAngle, z, oangle
endif
endif
Enable
set KS_SR_Ship_Flag to 1
set doOnce to 1
endif
;-------------------------------------------------------------------------------------------------------------------------------------------------------------
; Set coordinates correct ship coordinates immediately after load game
;-------------------------------------------------------------------------------------------------------------------------------------------------------------
if ( KS_SR_Ship_Sailmode == 0 )
set xx to KS_SR_Ship_X
set yy to KS_SR_Ship_Y
if ( KS_SR_Ship_Angle >= 0 )
set oangle to ( KS_SR_Ship_Angle - 180 )
else
set oangle to ( 180 + KS_SR_Ship_Angle )
endif
setpos, x, xx
setpos, y, yy
setpos, z, -100
setAngle, z, oangle
endif
;-------------------------------------------------------------------------------------------------------------------------------------------------------------
; Select Menu Routine
;-------------------------------------------------------------------------------------------------------------------------------------------------------------
if ( selectflag1 == 1 )
set select to GetButtonPressed
if ( select == 0 )
messagebox "FAST TRAVEL", "Azura's Coast", "Bitter Coast", "Ebonheart", "Sheogorad", "Solstheim" "CANCEL"
set KS_SR_Ship_Sailmode to 0
set selectflag2 to 1
set selectflag1 to 0
elseif ( select == 1 )
startscript KS_SR_Boat_Multiplier_03
if ( KS_SR_Ship_Exist == 5 )
if ( GetPCCell "Wilderness" != 1 )
messagebox "Dispatch boat?", "Yes", "No"
set selectflag3 to 1
set selectflag1 to 0
else
messagebox "The seas are too rough to dispatch the boat"
set selectflag1 to 0
set KS_SR_Ship_Speed to temp
endif
else
messagebox "You do not have a boat on the ship!!!"
set selectflag1 to 0
set KS_SR_Ship_Speed to temp
endif
elseif ( select == 2 )
messagebox "Ship is slowly reversing......."
startscript "KS_SR_Ship_Create_Detect_R"
set KS_SR_Ship_Speed to -2
set selectflag1 to 0
elseif ( select == 3 )
messagebox "Ship has stopped and safely anchored........"
set landed to 2
set selectflag1 to 0
elseif ( select == 4 )
if ( KS_SR_Ship_Damage == 500 )
Messagebox "Ship is not damaged!"
elseif ( player->GetItemCount, "KS_SR_misc_ship_repair" > 0 )
playsound "Repair"
player->removeitem "KS_SR_misc_ship_repair", 1
set repair to Random, 100
set KS_SR_Ship_Damage to ( KS_SR_Ship_Damage + repair )
if ( KS_SR_Ship_Damage > 500 )
set KS_SR_Ship_Damage to 500
endif
messagebox "Ship Health = %.0f / 500", KS_SR_Ship_Damage
else
messagebox "You do not have any tools to repair the ship........"
endif
set selectflag1 to 0
elseif ( select == 5 )
EnablePlayerJumping
set KS_SR_Ship_Freemode to 1
set selectflag1 to 0
set KS_SR_Ship_Speed to temp
elseif ( select == 6 )
set selectflag1 to 0
set KS_SR_Ship_Speed to temp
endif
return
endif
;-------------------------------------------------------------------------------------------------------------------------------------------------------------
; FAST TRAVEL ROUTINE
;-------------------------------------------------------------------------------------------------------------------------------------------------------------
if ( selectflag2 == 1 )
set select to GetButtonPressed
if ( select == 0 )
fadeto 100, 0.001
set KS_SR_Ship_Freemode to 0
set KS_SR_Ship_X to 182748
set KS_SR_Ship_Y to 19044
set KS_SR_Ship_Angle to -90
set selectflag2 to 2
set disableflag to 1
set KS_SR_Ship_Doorflag to 1
set KS_SR_Ship_Hatchflag to 1
startscript KS_SR_Ship_FTravel_AZ
elseif ( select == 1 )
fadeto 100, 0.001
set KS_SR_Ship_Freemode to 0
set KS_SR_Ship_X to -78608
set KS_SR_Ship_Y to 30836
set KS_SR_Ship_Angle to 0
set selectflag2 to 2
set disableflag to 1
set KS_SR_Ship_Doorflag to 1
set KS_SR_Ship_Hatchflag to 1
startscript KS_SR_Ship_FTravel_BC
elseif ( select == 2 )
fadeto 100, 0.001
set KS_SR_Ship_Freemode to 0
set KS_SR_Ship_X to 22816
set KS_SR_Ship_Y to -101708
set KS_SR_Ship_Angle to 180
set selectflag2 to 2
set disableflag to 1
set KS_SR_Ship_Doorflag to 1
set KS_SR_Ship_Hatchflag to 1
startscript KS_SR_Ship_FTravel_EH
elseif ( select == 3 )
fadeto 100, 0.001
set KS_SR_Ship_Freemode to 0
set KS_SR_Ship_X to 12786
set KS_SR_Ship_Y to 216832
set KS_SR_Ship_Angle to 180
set selectflag2 to 2
set disableflag to 1
set KS_SR_Ship_Doorflag to 1
set KS_SR_Ship_Hatchflag to 1
startscript KS_SR_Ship_FTravel_SH
elseif ( select == 4 )
fadeto 100, 0.001
set KS_SR_Ship_Freemode to 0
set KS_SR_Ship_X to -168102
set KS_SR_Ship_Y to 137248
set KS_SR_Ship_Angle to 180
set selectflag2 to 2
set disableflag to 1
set KS_SR_Ship_Doorflag to 1
set KS_SR_Ship_Hatchflag to 1
startscript KS_SR_Ship_FTravel_SS
elseif ( select == 5 )
set KS_SR_Ship_Speed to temp
set selectflag2 to 0
set KS_SR_Ship_Sailmode to 1
endif
return
endif
;-------------------------------------------------------------------------------------------------------------------------------------------------------------
; BOAT DISPATCH ROUTINE
;-------------------------------------------------------------------------------------------------------------------------------------------------------------
if ( selectflag3 == 1 )
set select to GetButtonPressed
if ( select == 0 )
set landed to 2
set selectflag3 to 0
set KS_SR_Ship_Sailmode to 1
set KS_SR_Ship_Exist to 10
set KS_SR_Boat_X to ( KS_SR_Ship_X + ( 450 * KS_SR_Boat_Xmul ) )
set KS_SR_Boat_Y to ( KS_SR_Ship_Y + ( 450 * KS_SR_Boat_Ymul ) )
set KS_SR_Boat_Angle to KS_SR_Ship_Angle
startscript KS_SR_Boat_Create
elseif ( select == 1 )
set KS_SR_Ship_Speed to temp
set KS_SR_Ship_Sailmode to 1
set selectflag3 to 0
endif
return
endif
;-------------------------------------------------------------------------------------------------------------------------------------------------------------
; Activate sailing
;-------------------------------------------------------------------------------------------------------------------------------------------------------------
if ( OnActivate = 1 )
if ( KS_SR_Ship_Sailmode == 0 )
Disable
if ( KS_SR_Boat_Sailmode > 0 )
messagebox "You parked your boat onto the ship........"
set KS_SR_Ship_Exist to 2
else
set KS_SR_Ship_Freemode to 0
DisablePlayerJumping
"player"->AddSpell, KS_SR_floatboat
StopScript "TribunalMain"
"player"->DisableLevitation
"player"->DisableTeleporting
messagebox "Make sure you are in RUNNING mode!!"
set startflag to 1
endif
Enable
else
set KS_SR_Ship_Freemode to 0
DisablePlayerJumping
set startflag to 1
elseif ( KS_SR_Ship_Sailmode == 1 )
messagebox "SAIL MODE" 
endif
endif
if ( KS_SR_Ship_Exist == 3 )
set startflag to 1
endif
if ( startflag == 1 )
set xxx to ( KS_SR_Ship_X + ( KS_SR_Ship_Xmul * 500 ) )
set yyy to ( KS_SR_Ship_Y + ( KS_SR_Ship_Ymul * 500 ) )
"player"->setPos, x, xxx
"player"->setPos, y, yyy
"player"->setPos, z, 156.38
startscript "KS_SR_Ship_Multiplier"
startscript "KS_SR_Ship_Doormulti"
startscript "KS_SR_Ship_Hatchmulti"
startscript "KS_SR_Ship_Colmulti_02"
startscript "KS_SR_Ship_Colmulti_03"
startscript "KS_SR_Ship_Colmulti_04"
startscript "KS_SR_Ship_Colmulti_05"
startscript "KS_SR_Ship_Create_Detect_01"
startscript "KS_SR_Ship_Create_Detect_02"
startscript "KS_SR_Ship_Create_Detect_03"
startscript "KS_SR_Ship_Create_Detect_04"
startscript "KS_SR_Ship_Create_Detect_05"
set KS_SR_Ship_Sailmode to 1
set startflag to 0
if ( KS_SR_Ship_Exist == 3 )
set KS_SR_Ship_Exist to 4
endif
endif
;-------------------------------------------------------------------------------------------------------------------------------------------------------------
; Gather object and player coordinates
;-------------------------------------------------------------------------------------------------------------------------------------------------------------
if ( KS_SR_Ship_Sailmode > 0 )
set xx to getPos, x
set yy to getPos, y
if ( xx != KS_SR_Ship_X )
set xx to KS_SR_Ship_X
endif
if ( yy != KS_SR_Ship_Y )
set yy to KS_SR_Ship_Y
endif
set zangle to "player"->getAngle, z
endif
;-------------------------------------------------------------------------------------------------------------------------------------------------------------
; Collision Detection Check
-------------------------------------------------------------------------------------------------------------------------------------------------------------
if ( KS_SR_Ship_Sailmode == 1 )
set KS_SR_Ship_Xdist to ( "player"->getpos, x - xxx )
set KS_SR_Ship_Ydist to ( "player"->getpos, y - yyy )
set xdist to ( KS_SR_Ship_Xdist * KS_SR_Ship_Xdist )
set ydist to ( KS_SR_Ship_Ydist * KS_SR_Ship_Ydist )
set distance to ( xdist + ydist )
set KS_SR_Ship_Distance to GetSquareRoot, distance
endif
if ( KS_SR_Ship_Hitflag == 3 )
if ( KS_SR_Ship_Speed > 0 )
set KS_SR_Ship_Damage to ( KS_SR_Ship_Damage - KS_SR_Ship_Speed )
messagebox "Damage = %.0f, Ship Health = %.0f / 500", KS_SR_Ship_Speed, KS_SR_Ship_Damage
endif
if ( KS_SR_Ship_Damage <= 0 )
Disable
messagebox "Your ship is WRECKED!!"
set KS_SR_Ship_Speed to 0
set KS_SR_Ship_Hitflag to 0
playsound, "KS_SR_Boat_Wreck"
set KS_SR_Ship_Exist to 0
player->removespell, KS_SR_Floatboat
EnablePlayerJumping
"player"->EnableTeleporting
"player"->EnableLevitation
StartScript "TribunalMain"
set KS_SR_Ship_Sailmode to 0
set KS_SR_Ship_Freemode to 0
SetDelete, 1
return
endif
if ( KS_SR_Ship_Speed > 0 )
set xxxx to ( xx - ( KS_SR_Ship_Xmul * 100 ) )
set yyyy to ( yy - ( KS_SR_Ship_Ymul * 100 ) )
else
set xxxx to ( xx + ( KS_SR_Ship_Xmul * 10 ) )
set yyyy to ( yy + ( KS_SR_Ship_Ymul * 10 ) )
endif 
set xx to xxxx
set yy to yyyy
set KS_SR_Ship_Speed to 0
set KS_SR_Ship_Hitflag to 0
endif
if ( KS_SR_Ship_Freemode == 1 )
if ( "player"->getpos, z < 0 )
messagebox "You have fallen off the ship"
set landed to 1
endif
endif
;-------------------------------------------------------------------------------------------------------------------------------------------------------------
; Restore all parameters after landing
;-------------------------------------------------------------------------------------------------------------------------------------------------------------
if ( landed > 0 )
set KS_SR_Ship_Speed to 0
Stopscript "KS_SR_Ship_Multiplier"
Stopscript "KS_SR_Ship_Colmulti_02"
Stopscript "KS_SR_Ship_Colmulti_03"
Stopscript "KS_SR_Ship_Colmulti_04"
Stopscript "KS_SR_Ship_Colmulti_05"
Stopscript "KS_SR_Ship_Doormulti"
Stopscript "KS_SR_Ship_Hatchmulti"
Disable
set landed to 0
player->removespell, KS_SR_floatboat
EnablePlayerJumping
"player"->EnableLevitation
"player"->EnableTeleporting
StartScript "TribunalMain"
Enable
set KS_SR_Ship_Sailmode to 0
set KS_SR_Ship_Freemode to 0
return
endif
;-------------------------------------------------------------------------------------------------------------------------------------------------------------
; Speed Control
;-------------------------------------------------------------------------------------------------------------------------------------------------------------
if ( KS_SR_Ship_Freemode == 0 )
if ( KS_SR_Ship_Sailmode == 1 )
if ( GetPCRunning == 1 )
if ( ScriptRunning, "KS_SR_Ship_Multiplier_02" == 0 )
startscript "KS_SR_Ship_Multiplier_02"
endif
endif
endif
if ( KS_SR_Ship_Sailmode == 1 )
if ( GetPCRunning == 1 )
if ( KS_SR_Ship_Gear == 1 ) 
if ( KS_SR_Ship_Speed < 30 ) ; max speed can be adjusted here ( default = 30 )
set KS_SR_Ship_Speed to ( KS_SR_Ship_Speed + 1 )
if ( KS_SR_Ship_Speed > 30 )
set KS_SR_Ship_Speed to 30
endif
messagebox "Ship Speed : %.0f", KS_SR_Ship_Speed
else
messagebox "Ship Speed : %.0f ( max. )", KS_SR_Ship_Speed
endif
elseif ( KS_SR_Ship_Gear == 2 )
if ( KS_SR_Ship_Speed > 0 )
rotate, z, -40
set oangle to getAngle, z
if ( oangle >= 0 )
set KS_SR_Ship_Angle to ( oangle - 180 )
else
set KS_SR_Ship_Angle to ( 180 + oangle )
endif
endif
elseif ( KS_SR_Ship_Gear == 3 )
if ( KS_SR_Ship_Speed > 0 )
rotate, z, 40
set oangle to getAngle, z
if ( oangle >= 0 )
set KS_SR_Ship_Angle to ( oangle - 180 )
else
set KS_SR_Ship_Angle to ( 180 + oangle )
endif
endif
elseif ( KS_SR_Ship_Gear == 4 )
if ( KS_SR_Ship_Speed > 0 ) ; min speed can be adjusted here ( default = 0 )
set KS_SR_Ship_Speed to ( KS_SR_Ship_Speed - 1 )
messagebox "Ship Speed : %.0f", KS_SR_Ship_Speed
else
set KS_SR_Ship_Speed to 0
messagebox "Ship Speed : 0 ( Stopped )"
endif
endif
else
stopscript "KS_SR_Ship_Multiplier_02"
endif
endif
endif
if ( KS_SR_Ship_Sailmode == 1 )
if ( pressed == 0 )
if ( GetPCSneaking == 1 )
set pressed to 1
endif
else
if ( GetPCSneaking == 0 )
set pressed to 0
messagebox "SELECT OPTIONS", "Fast Travel" "Boat" "Reverse" "Anchor" "Repair Ship" "Free Mode" "CANCEL"
set selectflag1 to 1
set temp to KS_SR_Ship_Speed
set KS_SR_Ship_Speed to 0
Enable
return
endif
endif
endif
;-------------------------------------------------------------------------------------------------------------------------------------------------------------
; Sail direction calculation by using player zrot angle - resolution 1 degree
;-------------------------------------------------------------------------------------------------------------------------------------------------------------
if ( KS_SR_Ship_Sailmode > 0 )
set xx to ( xx + ( KS_SR_Ship_Xmul * KS_SR_Ship_Speed ) )
set yy to ( yy + ( KS_SR_Ship_Ymul * KS_SR_Ship_Speed ) )
if ( KS_SR_Ship_Freemode == 0 ) 
set xxx to ( xx + ( KS_SR_Ship_Xmul * 500 ) )
set yyy to ( yy + ( KS_SR_Ship_Ymul * 500 ) )
else
set xxx to "player"->getpos, x
set yyy to "player"->getpos, y
set xxx to ( xxx + ( KS_SR_Ship_Xmul * KS_SR_Ship_Speed ) )
set yyy to ( yyy + ( KS_SR_Ship_Ymul * KS_SR_Ship_Speed ) )
endif
endif
;-------------------------------------------------------------------------------------------------------------------------------------------------------------
; Set the sailing motion
;-------------------------------------------------------------------------------------------------------------------------------------------------------------
if ( KS_SR_Ship_Sailmode > 0 )
"player"->setPos, x, xxx
"player"->setPos, y, yyy
if ( KS_SR_Ship_Freemode == 0 )
"player"->setPos, z, 156.4
endif
setPos, x, xx
setPos, y, yy
setPos, z, -100
set KS_SR_Ship_X to xx
set KS_SR_Ship_Y to yy
endif
if ( delay == 1 )
Enable
set delay to 0
endif
;-------------------------------------------------------------------------------------------------------------------------------------------------------------
; Sound for ambiance
;-------------------------------------------------------------------------------------------------------------------------------------------------------------
if ( CellChanged == 0 )
if ( GetSoundPlaying "Boat Hull" == 0 )
PlayLoopSound3DVP "Boat Hull" 0.4, 1.0
endif
endif
;-------------------------------------------------------------------------------------------------------------------------------------------------------------
; SCRIPT ENDS
;-------------------------------------------------------------------------------------------------------------------------------------------------------------
End KS_SR_Ship_Script
[/B][/SIZE]



das eben war der falsche code, der hier ist von stormrider..
kann mir jemand den so umändern, dass er mit der DV funzt, und/oder das höhe kontrollierber sind?
 
Wie kann ich einen NPC erst erscheinen lassen wenn die Hauptquest von Morrowind und Tribunal beendet ist?