Construction Set player.additem

FlawlezZ

Reisender
Nun also die Frage, wie das geht ...

klar .. player.additem 00000000f oder so ..

aber nun will ich das per Dialog das Item kommt, im CS eingestellt das die ID (vom CS) benutzt wird, soweit so gut, aber im Spiel bekomme ich dann ein anderes Item..
:eek:
ist ein bisschen wirr.. sry

amal
 
im CS musst du, anders als in der Konsole, die Editor-ID verwenden. Wenn du jetzt also z.B. dem Spieler 200 Gold hinzufügen willst lautet der Befehl:
Code:
Player.Additem Gold001 200

Wenn du jetzt noch die Nachricht "200 Gold hinzugefügt" ausblenden willst musst du entweder noch ein
Code:
Message " "
Message " "
davorsetzten (Nachteil: blendet alle Nachrichten aus), oder folgendes Skript verwenden (per StartQuest starten):
Code:
scn 200GoldHinzufügScript

short Count
ref ItemRef

Begin Gamemode
 if Count < 200
  set ItemRef to PlaceAtMe Gold001 1 0 0
  ItemRef.Activate Player
  set Count to Count + 1
 endif
End
 
  • Like
Reaktionen: FlawlezZ
Ich habe eine ähnliche Frage.

Ich will, dass wenn der Spieler das Objekt X aufnimmt, dass dann eine Gruppe von Gegnern der gleichen Art (also alle mit der gleichen Editor ID) das gleiche Item bekommen. Wie kann ich das per Script umschreiben?

Wenn ich das mit AddItem machen will, verlangt es eine eigene Referenz.
 
Code:
SCN ...

; Skript kommt auf das Item.

Short i
Ref Self

Begin OnAdd

if(i == 0)
  set self to getself
  <Gegner1Ref>.additem self 1
  ; usw...
  set i to 1
endif

End
Du musst eben die ganzen Referenzen noch angeben.
 
du kannst auch jedem npc in dieser gruppe ein script zuweisen, das überprüft, ob der player das item hat und dementsprechend das item hinzufügt.
 
Ok, danke. Aber es will nicht ganz funktionieren. Was mache ich falsch? Hier das Script und meine Referenzen:

Balifleisch = Baliwogfleisch
Item = Jagdmesser
SECreatureBaliwog1Young = junger Baliwog.

SCN Fleisch

; Skript kommt auf das Item.

Short i
Ref self
ref SECreatureBaliwog1Young

Begin OnAdd player

if(i == 0)
set self to getself
SECreatureBaliwog1Young.additem Balifleisch 2
; usw...
set i to 1
endif

End
 
Du musst nur bei "<Gegner1Ref>" Deine Referenz eintragen. Bei mehreren eben diesselbe Zeile mehrmals hinschreiben mit den jeweiligen Referenzen.
 
Zum einen funktioniert "getSelf" auf ein Item nicht wie es soll, da Gegenstände im Inventar keine richtige Referenz haben.
Zum anderen ist "Balifleisch" ganz sicher nicht die richtige ID, welche du stattdessen verwenden solltest.
Außerdem musst du keine Referenz-Variablen deklarieren ("ref SECreatureBaliwog1Young"), wenn du eine "richtige" Referenz-ID verwendest, also eine Referenz-ID, die du dem Objekt speziell zuweist. Wenn du trotzdem mit Variablen arbeiten willst, musst du diese natürlich auch irgendwo auf einen Wert setzen.
 
Ok, aus dem Balifleisch habe ich ein eigenes item mit dieser ID versehen.

Aber eben, ich will nicht jedem einzelnen Vieh eine eigene ID zuweisen, sondern das eben alle in dieser Gruppe mit der Gleichen Editor ID das Item bekommt. Geht das etwa nicht?
 
Zuletzt bearbeitet:
Das Fleisch wird ja erwähnt. Nur nicht über den Anzeigenamen, sondern über die Objekt-ID. Ich weiß jetzt nicht, wie diese lautet, aber "Balifleisch" ist es ganz sicher nicht.

Edit: Es sei denn natürlich, du hast das Fleisch selbst eingefügt und diese ID vergeben... :ugly: Dann liegt es an einem der anderen Punkte. Was bekommst du denn für eine Fehlermeldung?

Edit2: Das geht nicht mit einem Skript auf dem Messer. Dafür müsstest du sämtliche betroffene Baliwogs skripten (bzw. würde ja ein Skript auf dem Objekt reichen). Das wäre dann eine entsprechende Abfrage, wie XMaster sie beschrieben hat:
Code:
if player.getItemCount <Messer> >= 1
 addItem "Balifleisch" x
endif
 
Zuletzt bearbeitet:
Das Fleisch wird ja erwähnt. Nur nicht über den Anzeigenamen, sondern über die Objekt-ID. Ich weiß jetzt nicht, wie diese lautet, aber "Balifleisch" ist es ganz sicher nicht.

Edit: Es sei denn natürlich, du hast das Fleisch selbst eingefügt und diese ID vergeben... :ugly: Dann liegt es an einem der anderen Punkte. Was bekommst du denn für eine Fehlermeldung?

Edit2: Das geht nicht mit einem Skript auf dem Messer. Dafür müsstest du sämtliche betroffene Baliwogs skripten (bzw. würde ja ein Skript auf dem Objekt reichen). Das wäre dann eine entsprechende Abfrage, wie XMaster sie beschrieben hat:
Code:
if player.getItemCount <Messer> >= 1
 addItem "Balifleisch" x
endif

Ja, genau so hab ich das gemacht. Ich versuch das jetzt mal mit diesem Script.


Ach verdammt, es will nicht funktionieren. Also eine Fehlermeldung kommt nicht, aber wenn ich einen toten Baliwog durchsuche, hat er kein Fleisch dabei (Mit Messer im Inventar)
 
Zuletzt bearbeitet: