Nirn.de

Gast

Thema: Ein eigener Begleiter  (Gelesen 14098 mal)

  • Freund
    • Neuling
Hallo,

das ist mein erstes Tut, also nicht böse sein, falls ich Mist erzähle.
Es geht darum, dass man in Mods ja öfters Begleiter findet (prominentestes Beispiel: Alba). Ich dachte mir, dass es Einige interessieren könnte, selbst so Einen selber zu machen. Da ich mich in letzter Zeit selbst viel damit beschäftigt habe, dachte ich, stell ich das mal rein.
So, jetzt aber genug der Erklärungen. ;)

___________________________________________________________________________


Schritt 1: NPC erstellen

Als Erstes muss ein eigener NPC erstellt werden. (Ich stelle einfach mal meinen Lieblings-Begleiter als Beispiel hier rein.) Bei diesem Begleiter muss man unten auf den Button AI klicken. Dort sollte man erst einmal oben bei den Werten Folgendes einstellen:

Aggression: 5
Confidence: 100
Energy Level: 0
Responsiblility: 50

Danach muss man unten in der Tabelle mit den AI Packages rechtsklicken und dann auf "New" drücken.
Daraufhin öffnet sich ein Fenster.
In diesem Fenster müssen diese Einstellungen vorhanden sein:

1. Im oberen Textfeld ID eingeben (hier z.B. AAAPlayerFolloww)
2. Den Package Type auf "Follow" einstellen.
3. Unten das Feld "Target" anwählen.
4. Im Feld "Target" den "Player" eingeben. (alphabetisch geordnete Liste)
5. Weiter oben bei "Flags" ein Häkchen jeweils bei "Continue if PC near", "Must Reach Location", "Always Run", "Allow Swimming" und bei "Allow Falls".
6. Im AI Package Menu auf "OK" drücken.
7. Im AI Object Name Menu auf "save" drücken.

So, jetzt hat der NPC ein AI Package und dank 0 "Energy Level" noch keine Lust, das auszuführen.
Das hat einen guten Grund: Du willst ja nicht, dass gleich bei Mod-Aktivierung von irgendwo her dein Begleiter gelaufen kommt, sondern dass du ihn an einem Ort "abholst".


Schritt 2: Das NPC Script

Der zweite Schritt ist, deinem NPC einen Befehl zu geben, wann er dir folgen, wann warten und wann sonst was machen soll.
Dazu muss ein Script her. Als Vorarbeit für das Script meines Begleiters sollte allerdings ein XMarkerHeading (unter "WorldObjects/Statics" im "Object Window";) irgendwo im Spiel positioniert werden. Dann auf den XMarkerHeading im Render Window doppelklicken und im obersten Textfeld bei "Ref ID" eine einzigartige ID eingeben (in meinem Fall z.B. "aaamortusmalimarkerref";).
Das Script sieht dann so aus:

Code
scn aaamortusmaliscript

short Button

Begin OnActivate player

set button to -1
MessageBox "Was verlangt ihr von eurem finsteren Diener?", "Folgt mir!" "Bleibt hier!" "Riecht ihr kein Blut?" "Geht mir aus den Augen!" "Waffe raus! Es könnte Ärger geben!"

End

Begin Gamemode

set button to GetButtonPressed
if ( button == 0 )
SetActorValue Energy 75
elseif ( button == 1 )
SetActorValue Energy 0
elseif ( button == 2 )
SetActorValue Aggression 100
elseif ( button == 3 )
movetomarker aaamortusmalimarkerref
elseif ( button == 4 )
SetAlert 1

endif

end

Ich sollte dazu vllt. noch etwas erklären.

- "SetAlert 1" sorgt dafür, dass der Begleiter seine Waffe zieht.
- "SetActorValue Aggression 100" sorgt dafür, dass der Begleiter den Nächstbesten angreift.

Ich habe speziell bei meinem Begleiter noch einen Zusatz eingefügt, der dafür sorgt, dass mein Begleiter bei einem Tod wiederbelebt wird. Dieser Zusatz sieht so aus:

Code
Begin OnDeath

Resurrect 1
MessageBox "Der Tod lässt sich nicht überlisten!"

End
Das gesamte Script dann so:

Code
scn aaamortusmaliscript

short Button

Begin OnActivate player

set button to -1
MessageBox "Was verlangt ihr von eurem finsteren Diener?", "Folgt mir!" "Bleibt hier!" "Riecht ihr kein Blut?" "Geht mir aus den Augen!" "Waffe raus! Es könnte Ärger geben!"

End

Begin Gamemode

set button to GetButtonPressed
if ( button == 0 )
SetActorValue Energy 75
elseif ( button == 1 )
SetActorValue Energy 0
elseif (button == 2 )
SetActorValue Aggression 100
elseif ( button == 3 )
movetomarker aaamortusmalimarkerref
elseif ( button == 4 ) SetAlert 1

endif

end

Begin OnDeath

Resurrect 1
MessageBox "Der Tod lässt sich nicht überlisten!"

End

Schritt 3: Dem NPC das Script zuweisen

Nun musst du nur noch deinem NPC dein Script zuweisen.
Dazu musst du Folgendes tun:

1. Gehe in das Menü deines NPC's.
2. Klicke etwa rechts in der Mitte auf Script.
3. Stelle in der folgenden Liste die ID deines Scripts ein (hier z.B. aaamortusmaliscript)


___________________________________________________________________________


So, das war mein Tut. Was ich noch anmerken möchte, ist generell seine Scripts und alle Referenzen, die in Scripts erwähnt werden, nie mit einer Zahl anfangen zu lassen. Den Fehler hab ich zur Genüge gemacht.

Fehler bitte melden.
Feedback erwünscht.
  13.07.2007, 20:57
  • Offline


  • Abenteurer
    • Neuling
Nett und gut verstädnlich...ABER! Schreib die Scripts nicht in "code" wenn es danach unverständlich ist!

Ich kann mir gut vorstellen, dass Anfänger keinen Durchblick bei dem Buchstabenwirrwar haben... Und das willste ja net^^

MfG RaV
  13.07.2007, 20:59
  • Offline


  • Freund
    • Neuling
Das funzt schon, man muss es nur einmal editieren.
Das hab ich auch getan.
Du warst nur zu schnell für mich. ;):D

Edit: Nochmal was überarbeitet. Einmal hab ich ein paar Begriffe im Script erklärt. Zweitens hatte ich die dritte MessageBox Funktion vergessen. Peinlich :o
  13.07.2007, 21:01
  • Offline


  • Gelehrter
    • Magiergilde
Nett und gut verständlich. Und Quellcode in code tags zu verpacken, ist die beste Möglcihkeit, Quellcode hier als Post darzustellen.  :cool:
Den Sinn, das in Code-tags zu verpacken, erkennt man spätestens dann, wenn der Quellcode auch strukturiert ist, d.h. wenn Blöcke eingerückt werden. (alles zwischen begin und end wird eingerückt, alles zwischen if und endif wird eingerückt usw.)  :lachen:
  13.07.2007, 21:10
  • Offline


  • Abenteurer
    • Neuling
Zur Zeit meiens Posts sah es aber nun auch nicht so aus...

Es war einfach nebeneinander und ohne Zwischenräumen zwischen den Worten.

Nu is aber gut hier :lachen:
  13.07.2007, 21:29
  • Offline


  • Skelett
    • Untot
Wirklich sehr gutes Tutorial! n1 gemacht ...
Code-Tags sind immer di besten Möglichkeiten ein Script zu verdeutlichen.
thx für`s Tut.

mfG
Sagantor
  14.07.2007, 09:09
  • Offline
  • http://www.ngine-portal.de/


  • Freund
    • Neuling
Thx ihr alle! :)
Ich scheine ja keine großartigen Fehler gemacht zu haben... ;)
Vllt. werd ich noch weitere Tuts schreiben, wenn mir ein Thema einfällt. :huh:

PS: Feedback natürlich weiterhin erwünscht.
  14.07.2007, 12:29
  • Offline


  • Bettler
    • Neuling
Funktioniert bei mir nicht.Wenn ich des Script speichern will kommt der Fehlerbericht :
Script 'aaamortusmaliscript', line 20:
Invalid actor value 'Agression' for parameter Actor Value.
Compiled script not saved!
  05.09.2007, 08:36
  • Offline


  • Gelehrter
    • Magiergilde
@Joeso, LordMardianDarkElf
Aggression muss mit Doppel-G geschrieben werden ;)
  05.09.2007, 09:11
  • Offline


  • Bettler
    • Neuling
Danke !!
Habs halt so wie im Tutorial geschrieben  :blink:
  05.09.2007, 11:04
  • Offline


  • Freund
    • Neuling
Oh sry. *ausbesser*
Ich werde vermutlich auch bald ein besseres Tut posten. ;)
  05.09.2007, 11:44
  • Offline


  • Skelett
    • Untot
Zitat
Fehler bitte melden.
Feedback erwünscht.
Mein Begleiter ist nicht ansprechbar und läuft mir sowieso immer nach.

Wozu sollte das...
Zitat
MessageBox "Was verlangt ihr von eurem finsteren Diener?", "Folgt mir!" "Bleibt hier!" "Riecht ihr kein Blut?" "Geht mir aus den Augen!" "Waffe raus! Es könnte Ärger geben!"
...dann gut sein? Ich hab alles genauso gemacht wie in dem Tut. Aber der NPC lässt sich nichtmehr ansprechen.
  01.10.2007, 00:22
  • Offline


  • Neuling
    • Neuling
Also... wenn ich dort hin komme kann  ich ihn  zwar ansprechen, er grüßt mich und erzählt ein paar Gerüchte, aber nirgendwo kann ich die Befehle anwählen wie FOlgt mir oder so. Hab ich da was verpennt oder wo wählt man die Befehle aus??
  22.06.2008, 22:49
  • Offline


  • Neuling
    • Neuling
Zitat
Original von Wikinger
Zitat
Fehler bitte melden.
Feedback erwünscht.
Mein Begleiter ist nicht ansprechbar und läuft mir sowieso immer nach.

Wozu sollte das...
Zitat
MessageBox "Was verlangt ihr von eurem finsteren Diener?", "Folgt mir!" "Bleibt hier!" "Riecht ihr kein Blut?" "Geht mir aus den Augen!" "Waffe raus! Es könnte Ärger geben!"
...dann gut sein? Ich hab alles genauso gemacht wie in dem Tut. Aber der NPC lässt sich nichtmehr ansprechen.

Das könnte vllt daran liegen, dass du den Energielevel nicht auf 0 gestellt hast^^ Weil der Befehl ''Folgt mir'' bewirkt das der Energielevel auf 75 gesetzt wird. Das du ihn nicht ansprechen kannst ist warscheinlich ein Bug. Bei mir war das auch so vllt probierst du es mal mit mdem OBSE-Loader oder so oder lade den Spielstand nochmal neu, dass hat bei mir auch geholfen. Wenigstens kann man dann mit ihm reden^^ Bloß meine Frage ist, wo kann ich diese Befehle auswählen?
  23.06.2008, 11:40
  • Offline


  • Bettler
    • Neuling
Hi
Ich habe Probleme, wo ist der NPC im spiel?????

Bitte sage mir wo er ist, ich habe keinen Menschen sondern ein Goblin genommen. Liegt es daran?

Mfg. Movert
  24.07.2011, 22:16
  • Offline


  • Drachenhüter
    • Nirn.de Team
Movert, hast du deinen Goblin in der Welt platziert? Andernfalls ist er nicht da. :huh:
Einfach eine Cell (am besten ein Interior, das du schnell findest) laden und den Goblin aus der Liste reinziehen.
Die größten Kritiker der Molche
waren früher eben solche
  24.07.2011, 23:05
  • Offline


  • Bettler
    • Neuling
Ja ich habe ihn im Baumgarten bezirk auf die Strasse gestellt
  25.07.2011, 11:13
  • Offline


  • Bettler
    • Neuling
Jetzt ist der Goblin da, und die Befehle gehen.
Aber wie belebe ich ihn wieder?
Keine Cheats

mfg. Movert
  25.07.2011, 12:43
  • Offline


  • Zenturio
    • Legion
Ich weiß jetzt nicht genau ob das mit Kreaturen auch geht aber warum machst du ihn nicht einfach unsterblich dann kann er nur bewusstlos werden. Bei NPCs geht das wenn ich mich nich täusche wenn du in den Eigenschaften den Harken bei "Essential" setzt.
In life, I have no religion,
Beside, the heavy metal Gods!
  25.07.2011, 13:16
  • Offline


  • Bettler
    • Neuling
OK werd ich machen.
Ich habe bemerkt, dass er mir, wenn ich in Baumgarten gehe mir sofort folgt.
Wenn ich den Befehl gebe WARTE HIER folgt er mir trotzdem
wenn Ich sage GEH WEG folgt er mir trotzdem wieder.
HILFEEEE!!!!! Ich habe alles so gemacht, wie es beschrieben war.
  25.07.2011, 17:46
  • Offline