Construction Set OnHitWith Fehler?

Babarix

Neuankömmling
Ich wollte einen Baum machen den man mit einer bestimmten Waffe 10 mal treffen muss damit er verschwindet und beim Quest eine Variable erhöht wird.
Da man Bäume nicht mit Script belegen kann hab ich einen Activator gemacht den ich dann den Baum nif geben will. Nun ist die frage warum keine anzeige kommt wen ich mit der Waffe den Aktivator treffe? :huh:
Hier mal der Code:
Code:
scn atownbaums
short count
ref me

begin OnHitWith atownw1 ;hier ligt der Fehler
set me to GetSelf

MessageBox "Count %.2f", count ;zur kontrolle

set count to count + 1

if count == 10
set atown.baum to atown.baum + 1 ; für das Quest
me.Disable
endif

end
Hoffe ihr köntmir helfen.
 
:oops: oh na dan ist das klar , Danke. Aber hätte einer eine Idee wie ich das problem sonst lösen könte den der baum mus ja nach 10 schlägen verschwinden und im Questscript muss eine varieable erhöht werden?
 
:oops: oh na dan ist das klar , Danke. Aber hätte einer eine Idee wie ich das problem sonst lösen könte den der baum mus ja nach 10 schlägen verschwinden und im Questscript muss eine varieable erhöht werden?
Ich weiss zwar nicht, ob das mit normalen Statikobjekten klappt (vermutlich ja), aber ich würde das als erstes mit einer Kopie von einem Objekt wie ARAltar01 (unter static und dann in der Liste scrollen bzw "ara" eintippen, um direkt in der Sortierung an die richtige Stelle zu springen) oder ähnlichem testen.

Erst wenn das geklappt hat - ich also weiss, dass mein Script funzt - würde ich eine andere NIF nehmen, weil den NIF´s ja auch unterschiedliche Eigenschaften anhaften.

zum Script

Die Benennung deiner Objekte und Scripte ist ungünstig. Wenn dass z.B. dein erstes PI ist, lass alle Bezeichnungen von allem, was Du machst mit XB1 anfangen.
Also z.B.
ScriptName
XB1atownbaums
OnHitWith
XB1atownw1

...es sei denn, Du machst das schon so, in dem Du alles mit anfangen atown lässt.

---

Selbst wenn das nur eine Debug-Message ist, sollte
Code:
 MessageBox "Count %.2f", count
hinter
Code:
set count to count + 1
stehen und nicht davor.

---

Abfragen wie
Code:
 if count == 10
sind unzuverlässig, weil Oblivion selbst unzuverlässig ist. Die Logik ist zwar richtig, aber Oblivion ist deine Logik egal und es kommt gerne mal vor, dass Variablen "komische" bzw. unerwartete Werte annehmen.

Deshalb ist es besser, etwas wie
Code:
 if count >= 10
zu benutzen - auch wenn count bei korrekter Abarbeitung des Scriptes nie ein Wert über 10 erreichen kann. Aber auch das ist Oblivion egal.


... dass das Erbsenzählerei ist, weiss ich übrigens selber. Ist mir eben nur so aufgefallen.
 
Zuletzt bearbeitet:
  • Like
Reaktionen: Babarix
Also das mit den testen hab ich ja gemacht. Ich hab auf Grundlage des Altars eine neue Objekt erstellt das anders his und mein Script hatte aber es ging nicht und deshalb hab ich ja gepostet :) . Und in diesen PI fängt alles mit atown an. Aber auf einen Statik Objekt kann man doch kein Script legen oder? Naja vielleicht hab ich da was übersehen. Aber hat jemand vielleicht noch ne Idee wie man das sonst lösen oder ein Script auf ein Statik Objekt legen kann.
 
Ich glaub Fehler sind ansteckend den mir fiel gerade ein das ich mal nachschauen sollte wie man die Baum Textur auf ein Objekt legt. Und dann merkte ich das die pflanzen ja gar keine nif Datei sonder spt und dds Datei sind von den her geht meine ganze Idee nicht also muss ich komplett neu anfangen. Naja jetzt muss ich mir weniges keine Gedanke mehr über das Script machen :lol: . Jetzt brauch ich nur ne neu Idee wie man den Spieler Holzhacken schicken kann. Ich probier es mal so das ich einen Aktivator machen der irgendwie aussieht wie holz und auf denn ich dann eine zuschlage Aktion laufen lasse.
 
Dann mach es als Misc item, und schreib am Anfang vom script :
Code:
Begin OnActivate
End

Damit der spieler den Baum nicht einsammeln kann :)

Edit, oh es gibt einen Lumberjack mod, da kann ma alle baüme umhacken, vll wär ein blick in diese Scripts nützlich.
 
Zuletzt bearbeitet:
Jetzt brauch ich nur ne neu Idee wie man den Spieler Holzhacken schicken kann. Ich probier es mal so das ich einen Aktivator machen der irgendwie aussieht wie holz und auf denn ich dann eine zuschlage Aktion laufen lasse.
Es gibt verbrannte Bäume und sowas wie Baumstümpfe als NIF´s. Damit teste ich das gerade und stelle fest, dass OnHitWith NUR auf NPC richtig zu laufen scheint.

Ich teste gerade weiter und hangele mich so von Idee zu Idee.
 
Vielen dank ^^ wende willst kannst für deine Hilfe auch gerne den platz eines Gründungsmitglied einnehmen den in meinen PI gründet man ne stadt8) . kannst du mir vielleicht mal den speicher Pfad der nif geben?
 
soooo... wenn das mein PI wäre, wäre ich jetzt einigermaßen unglücklich und würde vom Holzhacken zur großflächigen Brandrodung übergehen.

Ich nehme an, Sinn der Sache ist es, einen Bauplatz für die neue Stadt von Bäumen zu befreien.

Der beste Ansatz, den ich gefunden habe: Ein Baum und um den Baum eine runde TriggerBox. Wenn die Box x mal getriggert worden ist, verschwindet der Baum. Aber so, dass das alles schlüssig aussieht und gut funktioniert, habe ich das nicht hinbekommen.

Alle anderen Versuche - sei es mit Türen, Kisten oder sonstwas für Objekten (jeweils mit NIF von einem Baumdings), sind in die Hose gegangen. Ich wollte irgend ein Objekt finden, auf dem OnHitWith mit einer Nahkampfwaffe funzt... Pustekuchen.

Wir können uns also hinsetzen und zusammen singen "1000 mal berührt - 1000 mal ist nix passiert"...
 
  • Like
Reaktionen: Babarix
*sing*
1000 mal berührt - 1000 mal ist nix passiert
999 mal berührt - 999 mal ist nix passiert
998 mal berührt - 998 mal ist nix passiert
997 mal berührt - 997 mal ist nix passiert
996 mal berührt - 996 mal ist nix passiert
995 mal berührt - 995 mal ist nix passiert
*sing*
So nachdem meine Kehle nun trocken und ich heiser bin, bin ich froh das wir nicht telefoniren:lol: . Aber nun mal spas beiseite dan nehme ich halt ne silberader und las den spiler die öffnen und steine rausnehmen gibt es halt stein stadt holzhäuser. Dan wil ich mal sehen was ich hinbekomme.
 
Es gibt die Mod Lockbash, mit der tatsächlich das Schlagen auf Sachen (Wie Türen) abgefragt wird. Das Skript ist allerdings unheimlich schwer.
 
Warum eigentlich "OnHitWith" und nich "OnHit"??? Wenn das macht, dass man ne spezielle Waffe brauch, mach doch noch ne extra Abfrage, die prüft, ob die Waffe angelegt is...
 
Edit, oh es gibt einen Lumberjack mod, da kann ma alle baüme umhacken, vll wär ein blick in diese Scripts nützlich.

Das ist doch genau das was du suchst.

Oder du machst es so mit der Branntrodung , das du eine Triggerzone um die Bäume machst , und wenn du mit einem bestimmtem Pfeil draufschießt,(Branntpfeil oderso),dann enablest du ein großes Feuer um den Baum , das es halt logisch aussieht, und dann issa weg .

Der Trigger mit
Code:
Begin OnTriggerMob
set TrigRef to getactionref
if Trigref.GetIsID [ Brandtpfeil]
set triggered to 1
endif

Begin GameMode

If triggered
blabla irgendwas mit feuer halt 
endif

:)

Nur sone Überlegung
 
  • Like
Reaktionen: Babarix
Das klingt gut ich werde es mal ausprobieren auch wen ich das Holz hacken eigentlich zur Beschaffung von Bauholz verwenden wollte aber nun rodet man halt ne Bau Fläche.:p

also die aufgaben hab ich mir bis jetzt so aus:
- erstmal die gefährlichen Tiere auf der Insel erledigen damit die Leute gefahrlos dort leben können
- dann die Baufläche roden
- Felder anpflanzen für die Ernährung
- Stein anbauen für die Häuser

Die Insel ist auch schon fertig.
Nun hab ich noch eine Frage und zwar hab ich Samenkörner die wen man sie fallen läst ( begin OnDrop player ) verschwinden und an der selben Stelle soll nun eine Maispflanze stehen bloß wie erzeugt man so eine Maispflanze aus den nichts?:huh:
 
So nach viel Probiererei habe ich das Problem gelöst :-D :D :-D man bekommt nun Brandpfeile mit den man den Baumstamm treffen muss worauf der 5 sec brennt (siehe Bild) und dann verschwindet. Nochmal danke für die idee mit der Triggerzone. So nun mach ich mich an das abbauen der Steinem.8)
ScreenShot20.bmp
 
Der brennende Weihnachtsbaum sieht ziemlich cool aus.

wie erzeugt man so eine Maispflanze aus den nichts?
SamenkornRef.PlaceAtMe MaispflanzeID, 1

oder

Player.PlaceAtMe MaispflanzeID, 1
wenn die Teile einfach an der Position des Spielers erscheinen soll.

Vielleicht wäre es aber auch gut, ein Maisfeld im Editor anzulegen und das dann nach dem Einsähen zu enablen, sobald der Player das nicht sehen kann. Dadurch hätte man die Kontrolle, wo das Zeugs wirklich wächst und wie das am Ende aussieht ... und ausserdem ... richtigem Mais kann man ja auch nicht beim Wachsen zusehen (ausser vielleicht in Tschernobyl)
 
Zuletzt bearbeitet: