PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : SkriptProblem!



DeadRiver
20.06.2006, 08:15
Hi Leute,
ich möchte ein Skript schreiben dass für einen gegenstand bestimmt ist.
Nur hab ich einfach ne menge probleme damit.
es ist an sich kein allzu anspruchsvolles skript es soll nur das aufheben dieses gegenstandes von gewissen werten wie stärke usw abhängig machen.und natürlich soll eben wenn die werte erfüllt werden ein questeintrag kommen(der auch schon soweit fertig ist)und der gegenstand im inventar sein.wenn aber eben nicht die werte erfüllt werden soll eine andere questmeldung(die auch schon fertig ist) kommen!
Weiss zufällig jemand Rat oder kennt n gutes Tut wo etwas in der Richtung behandelt wird???
mfG
DR

Lexius
20.06.2006, 09:40
dein script sollte ungefähr so aussehen:

scn gegenstandscript

begin OnAdd Player

If Player.GetActorValue Strength > 60 (wenn die Stärke des Spielers kleiner als 60 ist)
SetStage gegenstandquest 20 (soll die Stage auf 20 gesetzt werden)
Player.RemoveItem gegenstand 1 (entfernt den Gegenstand aus dem Inventar des Spielers)
Endif

if Player.GetActorValue Strength <= 60
SetStage gegnstandquest 30
Endif

End


So sollte es gehen. Wo ich mir unsicher bin, ist die Zeile RemoveItem
der Gegenstand verschwindet aus dem Inventar, ich weiß aber nicht ob er an seinem ursprünglichen Platz wieder auftaucht. Ich denke eher nicht.

Escalbryt
20.06.2006, 09:54
nein der Gegenstand verschwindet im Datennirvana...
man könnte es allerdings mit einem Schalter versuchen, den man aktivieren muss... da wird dann mit dem Script geprüft, ob der Spieler dann das item afheben kann oder nicht.

müsste dann in etwas so aussehen:
begin OnActivate
If Player.GetActorValue Strength > 60 (wenn die Stärke des Spielers kleiner als 60 ist)
SetStage gegenstandquest 20 (soll die Stage auf 20 gesetzt werden)
Endif

if Player.GetActorValue Strength <= 60
SetStage gegnstandquest 30
Player.AddItem gegenstand 1 (fügt den Gegenstand in das Inventar des Spielers ein)

Endif

End

Wie gesagt ein solches Script müsste auf einen Schalter und keinesfalls auf ein item gelegt werden...
Ich würde z.B. einen neuen Schalter erschaffen, dar die meshes des Gewünschten items besitzt und dem dann das script zuweisen

MfG Fetter Hobbit

DeadRiver
20.06.2006, 09:56
Lexius du bist genial!:D
ich bin ja auch kein OBER-noob und ich denke das sollte klappen sieht zumindest perfekt aus! Ich werds gleich mal testen:D!
ok mal schauen evtl hat fetter hobbit recht...aber das mit dem knopf ist vll uncool!
ich werd erstma Lexius tipp nachgehen aber dennoch danke @Fetter Hobbit!

Escalbryt
20.06.2006, 09:59
wieso knopf bitteschön...
Du lässt den Schalter einfach wie den Gegenstand aussehen. Der Begriff Schalter bezog sich nur auf seine Funktion... Ich würd auch keinen Knopf drücken wollen und dann einen Gegenstand bekommen

der fehler bei lexius ist, dass der Gegenstand wenn du nicht die Skills hast weg ist und damit auch nicht mehr verfügbar, wenn der Spieler dann die Anforderungen erfüllen kann, weil der Gegenstand nicht mehr existiert.

MfG Fetter Hobbit

DeadRiver
20.06.2006, 10:10
achso ok das hab ich dann falsch verstanden!
ja ok hab jetzt deine auf methode gemacht und noch ne frage ich will es von mehreren tributen abhängig machen und @mom siehts so aus:

Scriptname 00FXBlade1Skript

Begin OnActivate

If (Player.GetActorValue Strength > 75) && (Player.GetActorValue Schwertkampf > 100)
Setstage 00BladeQuest 40
Endif

If (Player.GetActorValue Strength <= 75) && (Player.GetActorValue Schwertkampf <=100)
SetStage 00BladeQuest 30
Player.AddItem 00FXBlade
Endif

End

natürlich ist das jetzt nur die Bedingung um das aufzunehmen und klappt das so mit dem schwertkampf skill wie ich mir das vorstelle oder nicht! ach und speichern kann ich nicht da der code für den schwertkampfskill auf jeden fall falsch ist!!!:D

DeadRiver
20.06.2006, 10:25
Ja ok super zu aller letzt aber noch zwei fragen:
1.also das mit dem schalter hab ich abgesehen davon muss dann doch noch ein befehl dazu der den schalter veschwinden lässt sofern man die werte erfüllt!
2.wie ist der richtige begriff für schwertkampfattribut und hab ich das sonst alles am skript richtig gemacht! auch dieses mit den klammern und dem && usw :D bin halt noch n anfänger!!!ach ja und müssen die klammern( nicht diese() sondern diese >< ) nicht andersrum???:Dich meine das hier strength <= 50 heisst doch kleiner oder gleich es soll doch aber grösser oder gleich heissen!!!???
vielen danke für eure hilfe...nein es kommt keine hilfe mehr !!!:(

Gorkon
20.06.2006, 12:16
1. Was soll der Krampf mit dem Schalter? Es läßt sich afaik wunderbar ein OnActivate-Block auf eine Waffe packen. Wenn die Bedingungen erfüllt sind, wird einfach ein normales Activate gefeuert und gut is. (Ok, setzt voraus, daß das Item auf dem Boden liegt.)
2. Das muß sich jetzt der Fette Hobbit gefallen lassen: Welches der Zeichen "<" und ">" bedeutet "größer", und welches "kleiner"? Naaaaaaa? ;)

Die Version "heb mich vom Boden auf, wenn du es schaffst" sähe demnach so aus:

Scriptname 00FXBlade1Skript

Begin OnActivate

; Spieler zu schwach - Stärke oder Blade-Skill zu niedrig
; Merke: Bei Oder-Verknüpfung "||" benutzen!
If (Player.GetActorValue Strength < 75) || (Player.GetActorValue Blade < 100)
; Questmeldung "Geh Trainieren!"
Setstage 00BladeQuest 40

; wenn wir ihm Else-Zweig landen, hat der Spieler die erforderlichen Werte!
Else
; Questmeldung "Du bist mein Held!"
SetStage 00BladeQuest 30
; Acivate feuert Standardverhalten bei Items, hier Aufheben
Activate
Endif

End

DeadRiver
20.06.2006, 12:40
ok soweit super, vielen dank Gorkon!
aber nochmal zum thema worldobjekt:
ich habe in der wildnis zwei dinge platziert aber die sind einfach nicht da wo sie sein sollen!!!