Anmelden

Archiv verlassen und diese Seite im Standarddesign anzeigen : Fragen



Satsuma
30.11.2007, 18:21
Hi!
Also ich wurde gerne wissen:
1. eine Funktinsveriabelendingens (Begin.BlaBla; so was wie Begin.OnAble schatz ich)fuers im inventar besitzen, also wenn der Spieler ein Item im Inventar hat soll sich des dann Activiren.
2. wie genau funktioniert des mit dem Plugin-bearbeiten:confused:
3. Suche script fuer Teleport, und wo wir schon mal dabei sind, wie macht man Teleportmarker?

Das wars erst mal...DAnke schon mal im voraushttp://www.multimediaxis.de/images/smilies/old/sm_12.gif

Low Post
30.11.2007, 23:14
1.) bin mir nicht sicher ob ich das richtig verstanden habe, aber ich versuch's trotzdem.

Du hättest einerseitzt die Möglichkeit einen OnAdd (http://cs.elderscrolls.com/constwiki/index.php/OnAdd)-Block zu verwenden, der wird immer gestartet, wenn das Item einem Inventar (welches kann durch eine Parameterangabe genauer bestimmt werden) hinzugefügt wird.
Das Skript muss dafür auf das Objekt um das es geht.

Evtl. musst du das ganze noch in einen OnSell (http://cs.elderscrolls.com/constwiki/index.php/OnSell)- und OnActivate (http://cs.elderscrolls.com/constwiki/index.php/OnActivate)-Block kopieren.


scn CheckObjectScript

Begin OnAdd player
;Skript für's hinzufügen
End

Begin OnActivate
if ( IsActionRef Player )
;Skript für's hinzufügen
endif
Activate
End



Alternativ kannst du auch mit einem Gamemode (http://cs.elderscrolls.com/constwiki/index.php/GameMode)/Menumode (http://cs.elderscrolls.com/constwiki/index.php/MenuMode)-Block arbeiten, in dem du die Anzahl per GetItemCount (http://cs.elderscrolls.com/constwiki/index.php/GetItemCount) abfragst.

Nachteil:
Das Skript läuft ständig

Vorteil:
Man kann mehrere Objekte in ein Skript packen --> imho einfacher zu handeln
Ich bin mir nicht sicher, ob ich oben alle möglichkeiten des hinzufügens erwischt habe


scn CheckObjectScript

short DoOnce
floate fQuestDelayTime
short Count1
ref Object1
short Count2
ref Object2

Begin Gamemode
if ( DoOnce )
if ( Count1 != Player.GetItemCount Object1 )
if ( Count1 < Player.GetItemCount Object1 )
;Skript, falls der Spieler eines/mehrere Exemplare von Object1 hinzubekommen hat
else
;Skript, falls der Spieler eines/mehrere Exemplare von Object1 abgelegt/verkauft/etc. hat
endif
set Count1 to Player.GetItemCount Object1
endif
if ( Count2 != Player.GetItemCount Object2 )
if ( Count2 < Player.GetItemCount Object2 )
;Skript, falls der Spieler eines/mehrere Exemplare von Object2 hinzubekommen hat
else
;Skript, falls der Spieler eines/mehrere Exemplare von Object2 abgelegt/verkauft/etc. hat
endif
set Count2 to Player.GetItemCount Object2
endif
else
set fQuestDelayTime to 2.5 ;kann auch ein geringerer/größerer Wert sein. Bestimmt das Zeitintervall in der das Skript abläuft.
set Object1 to [Object-ID des 1. Objekts]
set Object2 to [Object-ID des 2. Objekts]
set DoOnce to 1
endif
End

Begin Menumode
if ( DoOnce )
if ( Count1 != Player.GetItemCount Object1 )
if ( Count1 < Player.GetItemCount Object1 )
;Skript, falls der Spieler eines/mehrere Exemplare von Object1 hinzubekommen hat
else
;Skript, falls der Spieler eines/mehrere Exemplare von Object1 abgelegt/verkauft/etc. hat
endif
set Count1 to Player.GetItemCount Object1
endif
if ( Count2 != Player.GetItemCount Object2 )
if ( Count2 < Player.GetItemCount Object2 )
;Skript, falls der Spieler eines/mehrere Exemplare von Object2 hinzubekommen hat
else
;Skript, falls der Spieler eines/mehrere Exemplare von Object2 abgelegt/verkauft/etc. hat
endif
set Count2 to Player.GetItemCount Object2
endif
else
set fQuestDelayTime to 2.5 ;kann auch ein geringerer/größerer Wert sein. Bestimmt das Zeitintervall in der das Skript abläuft.
set Object1 to [Object-ID des 1. Objekts]
set Object2 to [Object-ID des 2. Objekts]
set DoOnce to 1
endif
End

Satsuma
14.02.2008, 09:56
Ja...ok, danke. Ich habe aber da an soe etwas wie "OnEquip...OnUnEquip" gedacht. Also wenn der spieler das objekt bei sich trägt wird etwas passieren, und wenn er es sagen wir verkauft, hört der effeckt auf. Z.B.:
Begin OnAdd
set A to A + 1
end

Begin "OnUnAdd"
set A to A - 1
end
Geht sowas? Ist des möglich?:confused:

*Da hätte ich gleich noch eine andere Frage: Wenn im CS objekte setzt, also ich persönlich drücke da immer auf "C" um so eine 30Grad ansicht zu krieen, weil des meinermeinung nach bekqemer ist, und jetzt dei Frage: knnn ich da irgendwie die Kammera sicht wenden?:confused:
Danke schonmal im vorraushttp://www.multimediaxis.de/images/smilies/old/sm_12.gif

Malachit
14.02.2008, 14:48
*Da hätte ich gleich noch eine andere Frage: Wenn im CS objekte setzt, also ich persönlich drücke da immer auf "C" um so eine 30Grad ansicht zu krieen, weil des meinermeinung nach bekqemer ist, und jetzt dei Frage: knnn ich da irgendwie die Kammera sicht wenden?:confused:

Schau mal hier (http://www.avantares.de/tastaturlayout.html). Dort findest Du die Tastaturbefehle für das CS.

Low Post
14.02.2008, 15:57
Ja...ok, danke. Ich habe aber da an soe etwas wie "OnEquip...OnUnEquip" gedacht. Also wenn der spieler das objekt bei sich trägt wird etwas passieren, und wenn er es sagen wir verkauft, hört der effeckt auf. Z.B.:
Begin OnAdd
set A to A + 1
end

Begin "OnUnAdd"
set A to A - 1
end
Geht sowas? Ist des möglich?:confused:
[...]

Such dir hier einen aus:Liste der Begin-Blöcke (http://cs.elderscrolls.com/constwiki/index.php/Begin)

Was du meinst ist wahrscheinlich der OnDrop (http://cs.elderscrolls.com/constwiki/index.php/OnDrop)-Block und evtl. noch ein OnSell-Block.


Für dein Bespiel also:

scn CheckObjectScript

short A

Begin OnAdd player
;Skript für's hinzufügen
set A to A + 1
End

Begin OnActivate
if ( IsActionRef Player )
;Skript für's hinzufügen
set A to A + 1
endif
Activate
End

Begin OnDrop Player
;Skript für's entfernen
set A to A - 1
End

Satsuma
14.02.2008, 17:03
DDDDDAAAAANNNNNNKKKKKKKEEEEEEE!!!!!!!!http://www.multimediaxis.de/images/smilies/old/sm_12.gif