Construction Set Der Scriptthread

hallo leute .. ich hab n problem und zwar:

ich will eine creatur mit der man sprechen oder handeln kann ... brauch ich da ein script? .. ich hab erst ein dremora hingestellt und bewegung auf null gesetzt usw .. aber der is dann starr dagestaden und hatt den kopf wie ein tornado gedreht x) .. danach den flederschatten .. der stand wenigstens normal da und hab dann bei dem hald handeln eingestellt .. aber ich kann die nich ansprechen . warum?
 
Damit du mit Kreaturen sprechen kannst, musst du ihnen per Hand eine Begrüßung zuweisen. Öffne dazu das Dialogfenster und gehe auf Greeting. Wähle da zum Beispiel Greeting 5 und erstelle eine neue Zeile. Bei dieser gibst du dann bei ID die ID deiner Kreatur ein.
 
Falls ich noch etwas dazufügen dürfte:
Vergiss nicht im AI menü "hello" auch ein paar punkte zuzuteilen .
Sonst wird er trotzdem nicht auf dich reagieren. ;)

Mfg
Heartflame
 
das geht bei mir nich .. wenn ich dialog bei der creatur öffne dann steht da ganix drinn .. und wenn ich auf new gehe passiert nix .. wenn ich versuche ein anderes zu kopieren dann kommt "you cannot add topic infos while dialoge is filtred" .. =(

bei hello sind 30 drin ^^
 
%Name = der name des NPCs
%PCName = der spielername
%Race = rasse npc
%PCRace = rasse player
%Class = klasse NPC
%PCClass = Sielerklasse
%Faction = Fraktion des NPCs
%Rank = rang des NPCs
%PCRank = Rang des Spielers in der Fraktion des NPCs
%NextPCRank = nächster Rang des Spielers in der Fraktion des NPCs
%Cell = aktuelle Zelle

Mfg

Heartflame
 
  • Like
Reaktionen: Nemesis1990
hallo leute .. ich brauch ein script und zwar für einen aufzug also .. unten ist ein schalter wenn man den betätigt fährt der aufzug (besteht aus einer sklavebzelle also gitter + schale) und wenn er oben ist dann oben einen schalter der den aufzug wieder runter bringt.
 
Wenn du einen Script suchst, der eine art Aufzug aus einem Objekt macht, musst du mal ein paar Seiten vorher schauen. Da steht ein Script für einen solchen. Denn eine solche Frage wurde schon vorher gestellt. Der Script der hier glaube ich geposted wurde, hat glaube ich 3 oder 4 Koordinaten, damit ein Block zB. hoch, runter, links und rechts gehen kann. Wenn du ihn findest und nicht so viele Koordianten brauchst kannst du ihn hier ja noch mal Posten und ne anfrage stellen, ob einer ihn so verändern kann, damit er nur 2 benötigt, falls du es nicht selbst kannst.

EDIT:
Hier wurde es schon besprochen: http://www.scharesoft.de/joomla/forum/showthread.php?t=1323&page=70

Gruß: TakoTatsujin
 
Zuletzt bearbeitet:
kann mir jemand mal das script so schreiben wie ichs eintragen kann oder macht des nix wenn da so sätze dabei stehn? ich kenn mich null aus:


orginal von reneminer



begin LiftPlatScript

short Richtung
; die Richtung in die die Liftplatte unterwegs ist
; positiv=aufwärts, negativ=abwärts, 0=Stillstand
short verlassen
; hat der Spieler die Liftplatte verlassen ( damit sie nicht ununterbrochen rauf und runter fährt)

float ganzOben
float ganzUnten

if ( GanzOben == GanzUnten )
; kann nur im allerersten Script-Durchlauf so sein...
; drum legen wir hier die Werte für die Hubhöhe fest
set GanzUnten to Getpos Z
set GanzOben to GanzUnten + 512
endif

if ( GetStandingPC == 0 )
; steht der Spieler nicht auf der Platte dann hat er sie also verlassen:
set verlassen to 1

else
; steht er wohl drauf,
; die Platte soll entweder durch Betreten oder einen Rufknopf
; ausgelösst werden können, das durch betreten ausgelöste passiert hier:

if ( Richtung == 0 )
; die Platte steht noch oder wieder still
if ( verlassen == 0 )
; wenn die Liftplatte grade oben oder unten angekommen ist soll sie warten
; bis der Spieler sie verlassen hat und nicht sofort wieder umkehren
; also raus hier:
return
endif
;hier steht die Platte also immer noch still...

if ( GetPos Z < GanzOben )
; und die Platte ist nicht oben, also setzen wir die Richtung aufwärts:
set Richtung to 1
elseif ( GetPos Z > GanzUnten )
; umgedreht- ist die Platte nicht unten dann soll sie nun runterfahren
set Richtung to -1
endif

endif
;platte in Bewegung und Spieler steht auch drauf, also merken wir uns das:
set verlassen to 0
endif

if ( Richtung == 0 )
; die Platte soll sich nicht bewegen, also wird das Script hier verlassen:
return
endif

; die Platte soll sich also bewegen:

moveworld Z Richtung
if ( Richtung > 0 )
; hier aufwärts

if ( Getpos Z >= GanzOben )
; hat die Platte den obersten Punkt erreicht halten wir an
set Richtung to 0
; und um sicher zu gehen stellen wir sie an die "richtige" Stelle
Setpos Z GanzOben
endif

elseif ( Richtung < 0 )
; hier abwärts das gleiche

if ( GetPos Z <= GanzUnten )
set Richtung to 0
Setpos Z GanzUnten
endif

endif

end

die Schalter, natürlich Aktivator sollten in der selben Zelle oder im gleichen Exterior-Bereich aufgebaut sein- um an beiden Rufknöpfen das gleiche Script und somit den gleichen Rufknopf für oben und unten verwenden zu können musst Du dir "merken" an welcher Z-Position Du den oberen Knopf aufstellst. Dabei unbedingt SnapToGrid verwenden oder die Z-Position manuell setzen damit es eine glatte Zahl für die Z-Position des oberen Knopfes wird.

Und dann ( erst nachdem die Liftplatte bereits aufgestellt, als persistent markiert ist und ihr Script trägt kannst Du das Rufknopf-Script speichern ) etwa so

begin RufknopfScript

short WelcherKnopf
; der Knopf mit der -1 ist der untere, der Knopf mit der 1 der obere

if ( WelcherKnopf == 0 )
; passiert nur beim ersten Durchlauf
if ( Getpos Z == hier gemerkteZ-Position des oberen Rufknopfes einsetzen)
; dann bin ich der obere Knopf und rufe die Platte nach oben
set WelcherKnopf to 1
else
; bin ich der untere Knopf...
set WelcherKnopf to -1
; für 1 und -1 musst Du dann wie im anderen Script den Wert der Hubgeschwindigkeit verwenden
endif
endif

if ( OnActivate )
set Liftplatte.Richtung to WelcherKnopf
endif

end


ps:

warum muss ich : "hier gemerkteZ-Position des oberen Rufknopfes einsetzen"
welche werte muss ich sonst noch eintragen?
 
Zuletzt bearbeitet:
Ein Semikolon leitet einen Kommentar ein, die entsprechende Zeile wird vom Programm ignoriert, du kannst die Scripte also beinahe so verwenden, nur das hier muss noch geändert werden:
hier gemerkteZ-Position des oberen Rufknopfes einsetzen
Soweit ich das sehe, wird der Aufzug unten platziert, aber damit MW weiß, wie hoch der Aufzug fahren soll, musst du ihn entweder kurz auf die entsprechende Höhe bringen, die Z-Position rausschreiben und statt des Zitates ins Script einfügen oder du nimmst einfach die Höhe des Knopfes, dann sollte der Aufzug bis auf Höhe des Knopfes fahren.
Ferdisch.

Alle Angaben wie immer ohne Gewähr.
 
ich hab des jez eingetragen sieht so aus ..


begin RufknopfScript

short WelcherKnopf
; der Knopf mit der -1 ist der untere, der Knopf mit der 1 der obere

if ( WelcherKnopf == 0 )
; passiert nur beim ersten Durchlauf
if ( Getpos Z == 810)
; dann bin ich der obere Knopf und rufe die Platte nach oben
set WelcherKnopf to 1
else
; bin ich der untere Knopf...
set WelcherKnopf to -1
; für 1 und -1 musst Du dann wie im anderen Script den Wert der Hubgeschwindigkeit verwenden
endif
endif

if ( OnActivate )
set Liftplatte.Richtung to WelcherKnopf
endif

end

es geht aber nich ... also der schalter ... muss die platte oben oder unten sein?

der zeigt beim start übrignes an dass irgendwas mit dem script nich stimmt .. nich komplett oder so
 
Die Aufzugplatte muss meinem Verständnis nach erst nach unten. Ich muss mich übrigens geringfügig korrigieren, beim erwähnten Zitat muss es die Z-Position des Knopfes sein, er darf danach auch nicht mehr in der Höhe verändert werden, ansonsten muss die Z-Pos korrigiert werden.
Ansonsten poste doch mal die Fehlermeldung.
 
mit dem script stimmt was nich glaub ich ...

begin RufknopfScript

short WelcherKnopf

if ( WelcherKnopf == 0 )
if ( Getpos Z == 1082.901)
set WelcherKnopf to 1
else
set WelcherKnopf to -1
endif
endif

if ( OnActivate )
set Liftplatte.Richtung to WelcherKnopf
endif

end



der sagt:
objekt "liftplatte" is not persistent. ist persence is not guaranteed in game.
continue running executable? ja nein
 

Anhänge

  • Morrowind 2009-08-20 21-47-16-10.GIF
    Morrowind 2009-08-20 21-47-16-10.GIF
    137,4 KB · Aufrufe: 149
Zuletzt bearbeitet:
der sagt:
objekt "liftplatte" is not persistent. ist persence is not guaranteed in game.
continue running executable? ja nein
lies dir doch einfach noch einmal die Anleitung durch, der Einfachheit halber mal hier die Stelle:
Und dann ( erst nachdem die Liftplatte bereits aufgestellt, als persistent markiert ist und ihr Script trägt kannst Du das Rufknopf-Script speichern ) etwa so
musst also bei der Liftplatte mal noch ein Häkchen setzen
 
hab ich gemacht .. muss ich das beim schalter auch machen? das mit dem speichern stimmt .. aber gehn tuts immer noch net .. script für die schalter sieht so aus:

begin RufknopfScript

short WelcherKnopf

if ( WelcherKnopf == 0 )
if ( Getpos Z == 1082.901)
set WelcherKnopf to 1
else
set WelcherKnopf to -1
endif
endif

if ( OnActivate )
set Liftplatte.Richtung to WelcherKnopf
endif

end

und für kiste so:


begin LiftPlatScript

short Richtung
short verlassen

float ganzOben
float ganzUnten

if ( GanzOben == GanzUnten )
set GanzUnten to Getpos Z
set GanzOben to GanzUnten + 512
endif

if ( GetStandingPC == 0 )
set verlassen to 1

else

if ( Richtung == 0 )
if ( verlassen == 0 )

return
endif

if ( GetPos Z < GanzOben )
set Richtung to 1
elseif ( GetPos Z > GanzUnten )
set Richtung to -1
endif

endif
set verlassen to 0
endif

if ( Richtung == 0 )
return
endif



moveworld Z Richtung
if ( Richtung > 0 )


if ( Getpos Z >= GanzOben )
set Richtung to 0
Setpos Z GanzOben
endif

elseif ( Richtung < 0 )


if ( GetPos Z <= GanzUnten )
set Richtung to 0
Setpos Z GanzUnten
endif

endif

end

was stimmt hier nich?
 
Hallo,
Ich brauche einige Scripts, für eine Quest-reihe, die in etwa so aufgbaut ist wie die von Assasinscreet. Eigendlich benötige ich nur welche für die ersten Quests.

Viele werden es zwar kennen, aber für die, die es noch nicht gespielt haben hier was passieren soll:

Am Anfang soll man einen Gegenstand holen, der auslöser für einen Script sein soll, der folgendes bewirkt: Sobald man den Gegenstand abgegeben hat, schließt sich vorne an der Burg ein Burgtor, das wäre Script #1.
Zur gleichen Zeit sollen vor der Burg eine kleine Armee stehen, also ein Script, der bewirkt, dass die Leute da Stehen und einige, zumindest die in der unteren Stadt die Leute angreifen, Script #2.
Als nächstes benötige ich eine Script, der wie eine Falle wirkt. Nicht so wie im Spiel mit den Baumstämmen, ich möchte mehr so was wie die Säulen in Gramfeste, die die anwisierten Gegener mit Blitzen etc. angreift, sobald ich oben auf einem Turm einen Hebel betätigt habe, hier also Script #3. und #4.
Alles andere lässt sich übers Quest-menü machen.Hier noch mal die Aufzählung der Scripts:

#1. : Einen Script für ein Burgtor, was runter geht wenn ich einen bestimmten Gegenstand abgeliefert habe.

#2. : Einen Script, der Leute erscheinen lässt und einige die angreifen sollen.

#3. : Einen Script für eine angreifende Säule, für die oben genannten Leute.

#4. : Einen zur Falle gehörigem Schalter zum auslösen.

Danke schonmal im Vorraus.

Gruß: TakoTatsujin
 
Also:
Ich werde das jetzt mal über Journaleinträge versuchen, erscheint mir am einfachsten:

#1: auf's Tor
Code:
Begin torscript
 
short count
float myZ
 
if (GetJournalIndex bla1 >= [indexnummer])
  if (count < [COLOR=blue]100[/COLOR])
    set myZ to ( GetPos z )
    set myZ to myZ - [COLOR=red]5[/COLOR]
    setPos, z, myZ
  endif
endif
 
end

Das rote ist für die Sinkgeschwindigkeit zuständig, das blaue dafür, wieoft das Tor um in diesem Falle 5 gesenkt wird. Einfach mal verschiedene Werte ausprobieren.

#2: Hierzu musst du einige NPCs erstellen. Jeder bekommt folgendes Script:
Code:
Begin npc_name_script
 
short dis
 
if (dis == 0)
  disable
  set dis to 1
endif
 
if (GetJournalIndex bla2 >= [indexnummer])
  if (dis == 1)
    enable
    startcombat [COLOR=red]gegner-ID[/COLOR]
[COLOR=black]   set dis to 2[/COLOR]
  endif
endif
 
end

Das rote muss die ID des NPCs sein, den der Scriptträger angreifen soll. das "name" im Scriptname kannst du einfach durch irgendwas ersetzten, dann kannst du mehrere Scripte dieser Art machen und auf verschiedene NPCs legen.

#4: auf den Schalter:
Code:
Begin schalterscript
 
short zahl
 
if (OnActivate == 1)
  if (zahl == 0)
    Journal schalterjournal, 5
    set zahl to 1
  endif
endif
 
end

#3: Auf die Säule:

Damit die säule Journalgesteuert aufhört
Code:
Begin saeulenscript
 
if ( GetJournalIndex schalterjournal == 5 )
  if ( GetJournalIndex schalterjournal < 10 )
    castspell "[COLOR=blue]spellname[/COLOR]" [COLOR=red]gegner-ID[/COLOR]
  endif
endif
 
end

Damit die säule nach einer bestimmten Anzahl an Angriffen aufhört:
Code:
Begin saeulenscript
 
short count
 
if ( GetJournalIndex schalterjournal == 5 )
  if ( count < [COLOR=green]100[/COLOR] )
    castspell "[COLOR=blue]spellname[/COLOR]" [COLOR=red]gegner-ID[/COLOR]
  endif
endif
 
end

Für rot siehe #2, das blaue muss die ID des Zaubers sein, den die Säule wirken soll (musst du gegebenenfalls vorher selbst anlegen). Das grüne gibt die (Anzahl an Schüssen - 1) an, die die Säule abfeuern kann.

Bei irgendwelchen Fragen, frag ruhig.
 
  • Like
Reaktionen: TakoTatsujin
Hallo Scharesoft!
Ich suche ein Script Für eine Giftwolke.
Sie soll so bald man in die Wolke kommt Lebensenergie abziehen aber nur langsam. Ich will eine Höhle machen in der es Giftpilze gibt die Giftige Sporren
in der Höhle verteilen.