Anmelden

Archiv verlassen und diese Seite im Standarddesign anzeigen : Hilfe bei eigenem PlugIn



~~MAINFRAIME²~~
21.07.2007, 16:44
Nachdem ich nun endlich weiß wie ich mehrere Beschwörungen hinbekomme dachte ich mir es wäre eine gute Idee die Zauber nicht einfache einem normalen Händler anzuvertrauen sondern gleich eine Quest zu machen.

Ich dachte da an einen Geheimbund von Beschwörern die in einem Höhlensystem (vielleicht auch eine Ruine die in den Höhlen zu finden ist) leben und den ganzen Tag nichts besseres zu tun haben als ihre Fertigkeiten zu trainieren,
naja vielleicht nicht den ganzen Tag ;).
Der Spieler soll dann einige der Zauber als Questbelohnung bekommen und die anderen bei den verschiedenen Bewohnern kaufen können.

Also um die Quest zu bekommen könnte ich in einem Buchladen ein altes Buch oder eine Notiz hinterlassen oder hat jemand eine bessere Idee?

Da ich aber kaum Erfahrung mit dem CS habe brauche ich etwas Hilfe damit auch alles richtig läuft, ich habe gestern schon einmal mit dem Dungeon angefangen und nun würde ich gern ein Objekt(ein Altar oder so was) haben das automatisch Monster nach einer bestimmten Wartezeit beschwört sobald sie tot sind, ich will es dem Spieler ja nicht zu leicht machen ;).
Das Objekt sollet der Spieler dann aber auch abschalten können wenn er es erreichen kann und er soll dann auch einen Gegenstand erhalten und die Möglichkeit haben das Teil wieder einzuschalten mit dem Gegenstand.
Die Monster sollen dann von dem Objekt aus zum Spieler laufen nachdem er zum ersten mahl entdeck wurde, wurde der Spieler nicht entdeckt sollen sie in der Höhle umherwandern und natürlich sollen die Monster je nach Level des Spielers andere sein.

Unter anderem würde ich auch gerne die ein oder andere Falle einbauen(herab fallende Steine oder vielleicht eine explosive Truhe) wie mache ich dass am besten?

Kann ich im "RenderWindow" auch einstellen dass ich alles sehen kann damit sich nicht immer die Teile ausblenden, "Clipping Distance" ist schon auf Maximum.
http://www.fileden.com/files/2006/6/21/81902/images/oblivion_tmp/00101.jpg

Rung
22.07.2007, 11:22
Klingt nach einer interessanten Idee. Beschwörer, die sich im Untergrund verkriechen ... hört sich ganz nach meinem Charakter an.

@Fallen
Die schaust Du am Besten bei Bethesda ab. Wenn Du die Standardfallen setzen kannst, kannst Du mit Experimentieren anfangen. Für explodierende Kisten brauchst Du ein eigenes Script, herunterfallende Steine dagegen sind komplett im CS enthalten und müssen nur ins Spiel eingefügt werden, was Du (wie gesagt) bei Bethesda abschauen kannst.

@Sichtweite im CS
Nein, ich denke, das geht nicht. Aber ich habe es auch noch nie probiert. In Außenzellen wäre eine zu hohe Sichtweite sehr unangenehm (zu wenig Ram->Absturz), in Innenzellen dagegen ist sie nicht nötig (mMn).

@Beschwörungssache
Das ist mächtig viel Arbeit. Ich bezweifle, dass sich hier jemand die Zeit nehmen wird, Dir das zu schreiben. Ich würde Dir empfehlen, Dich ins Scripting einzuarbeiten und Dich dann selbst daran versuchen. Und wieder mit dem Seitenblick auf Originalscripte von Bethesda, die sind wirklich der beste Lehrmeister.
Ich verlinke Dir hier nochmal die Tutorials, falls Du die nicht schon kennst.
Tutorials I (http://www.multimediaxis.net/showthread.php?t=78996)
Tutorials II (http://theelderscrolls.info/?go=4editorasection)
CS-Wiki (http://cs.elderscrolls.com/constwiki/index.php/Main_Page)

~~MAINFRAIME²~~
23.07.2007, 19:41
So habe jetzt ein kleines Skript geschrieben nur leider will es nicht wie ich will :(

Hier ist das Skript dass ich an einen Activator gehängt habe,
es soll die Monster je nach Level auswählen und nach bedarf auch Beschwören wird aber nicht gemacht warum auch immer :confused:
Was ich im GameMode block schreibe wird doch einmal jeden Frame aufgerufen oder muss ich das Skript erst starten, wenn ja wie?

Und OnActivate sollte ausgeführt werden wenn ich den "Activator" benutzte nur da passiert auch nichts.



scn zzzSummonDefMonsterMenu01
scn zzzSummonDefMonsterMenu01

short InitDone
short Active

short Timer1
short Timer2

ref Monster1
ref Monster2
ref Monster3

Begin GameMode
if Active == 0
set Timer1 to Timer1 +1
set Timer2 to Timer2 +1

if Timer2 > 60
set Timer2 to 0
if Player.GetLevel > 20
set Monster1 to zzzDungeonSummonMonster021
set Monster2 to zzzDungeonSummonMonster022
set Monster3 to zzzDungeonSummonMonster023
elseif Player.GetLevel > 16
set Monster1 to zzzDungeonSummonMonster021
set Monster2 to zzzDungeonSummonMonster012
set Monster3 to zzzDungeonSummonMonster023
elseif Player.GetLevel > 13
set Monster1 to zzzDungeonSummonMonster011
set Monster2 to zzzDungeonSummonMonster012
set Monster3 to zzzDungeonSummonMonster023
elseif Player.GetLevel > 10
set Monster1 to zzzDungeonSummonMonster011
set Monster2 to zzzDungeonSummonMonster012
set Monster3 to zzzDungeonSummonMonster013
elseif Player.GetLevel > 7
set Monster1 to zzzDungeonSummonMonster011
set Monster2 to zzzDungeonSummonMonster002
set Monster3 to zzzDungeonSummonMonster013
elseif Player.GetLevel > 4
set Monster1 to zzzDungeonSummonMonster001
set Monster2 to zzzDungeonSummonMonster012
set Monster3 to zzzDungeonSummonMonster003
else
set Monster1 to zzzDungeonSummonMonster001
set Monster2 to zzzDungeonSummonMonster002
set Monster3 to zzzDungeonSummonMonster003
endif
if InitDone <> 1
Monster1.resurrect
Monster1.MoveTo zzzDungeonSummonMarker01
Monster2.resurrect
Monster2.MoveTo zzzDungeonSummonMarker02
Monster3.resurrect
Monster3.MoveTo zzzDungeonSummonMarker03
Set InitDone to 1
endif
endif

if Timer1 > 600
set Timer1 to 0
if Monster1.GetDead == 1
Monster1.resurrect
Monster1.MoveTo zzzDungeonSummonMarker01
endif

if Monster2.GetDead == 1
Monster2.resurrect
Monster2.MoveTo zzzDungeonSummonMarker02
endif

if Monster3.GetDead == 1
Monster3.resurrect
Monster3.MoveTo zzzDungeonSummonMarker03
endif
endif
endif
end

Begin OnActivate

if Active == 0

MessageBox "Es sieht so aus als könnte ich diesen Welkyd-Stein mitnehmen.", "Mitnehmen", "Finger weg"

if GetButtonPressed == 0
player.AddItem zzzGreatWelkydStone, 1
set Active to 1
zzzSummonDefStone01.MoveTo zzzStoneHolder01 0,0,2560
endif

else
if player.GetItemCount zzzGreatWelkydStone > 0
MessageBox "Soll ich den Beschwörungsapparat wieder aktivieren?", "Aktivieren", "Lieber nicht"

if GetButtonPressed == 0
player.RemoveItem zzzGreatWelkydStone, 1
set Active to 0
zzzSummonDefStone01.MoveTo zzzStoneHolder01 0,0,62
endif
else
Message "Ich habe leider keinen großen Welkyd-Stein."
endif

endif

end


Und dieses Skript habe ich an die Monster gehängt, es soll die Monster nach ihrem tot wieder entfernen.
Hab ich aber noch nicht getestet da ich erst die Monster zu meinen Markern bringen will.


scn zzzSummonDefMonsterMonsterScrip

short MonsterDead

Begin GameMode

if MonsterDead == 0

if GetDead == 1
MoveTo zzzMySummonDungeonHiddenMarker
set MonsterDead to 1
endif

elseif GetDead == 0
set MonsterDead to 0
endif

end


Noch ein paar Kleinigkeiten

Wenn ich ein Skript an ein Objekt hänge wird dieses Skript dann für jedes Objekt erstellt oder teilen sie sich das Skript?
Ist es normal dass ein "Activator" der keinen Namen hat nicht aktivierbar ist?
Wenn ich einer Variable noch keinen Wert zugewiesen habe hat sie dann 0 oder muss ich ihr erst einen Wert zuweisen?
Was ich vermisse sind Arrays.
Die Steuerung im RenderWindow kann ich wohl auch nicht umstellen oder,
am besten wie im UnrealED :)