Construction Set Skriptthread zum Construction Set

Zu welcher Uhrzeit kommst du denn dort an? Ansonsten probiere mal "forceWeather" statt "setWeather" aus oder benutze "releaseWeatherOverride".
 
Ich habe ein Problem: Ich habe via GetGold in den Conditions eines Topics geklärt, welcher Eintrag benutzt werden soll (>=300 und bei dem anderen <300).
Ingame kommt aber im Normalzustand die Antwort des <300, auch, wenn ich mir Geld gecheatet habe und über 300 habe.
Woran könnte das liegen? Fragt GetGold vielleicht garnicht das Gold des Spielers ab?

Könnte mir jemand helfen?

Vielleicht könnte das helfen: Wenn ich die Zeichen umdrehe (also <=300 und >300) ist das Problem andersrum: Egal, wie viel Geld ich habe, es erscheint der Text, der bei der alten Situation nicht kam.
 
@Gartenzwerg Mir ist gerade eingefallen daß es ja Dein Gold ist. Setz als ein Häkchen bei „Run on Target“. In den Conditions sollte sich dann „Target No“ zu „Target Yes“ ändern.
 
  • Like
Reaktionen: Gartenzwerg
Hatte ich einmal gemacht, danach war das Topic weg...
Aber ich teste es nochmal.
EDIT: Klappt doch, hatte damals wohl an was anderem gelegen!
Vielen Dank!
 
Zuletzt bearbeitet:
Run on Target darf natürlich nur bei der Condition aktiviert sein bei der das Gold abgefragt wird. Bei der anderen Condition mit GetIsID muss es natürlich deaktiviert sein. Denn diese betrifft ja den NPC der den Dialog benutzen soll.

Immer wenn die Condition den Gesprächspartner, also in dem Fall den Spieler, betrifft muss Run on Target aktiviert sein.
 
Zuletzt bearbeitet:
  • Like
Reaktionen: Gartenzwerg
Ja, das hatte ich mir schon gedacht, aber vermutlich hatte ich das andere auch versehentlich on das Target runnen lassen.
Also, vielen Dank nochmal.
 
Danke. Im CS-Wiki steht, das bei der Anwendung des Befehls setLevel auf einen NPC mit Bögen im Inventar ein CTD entsteht. Leider verstehe ich die Hilfe nicht, wie ich die Bögen aus dem Inventar entfernen und nach Anwendung des Befehls wieder reintuen kann :oops:
 
Das ist schon klar, aber ich weiß vorher die ID ja nicht. Die Levelerhöhung soll ja bei beliebigen NPC's funktionieren. Das Script muss also erstmal abfragen, ob Bögen im Inventar sind, dann die Bögen entfernen, das Level erhöhen und dann die Bögen wieder hinzufügen.
 
Mit "GetWeaponType" kannst Du abfragen, ob es sich um einen Bogen handelt. Die Skripte auf der Seite gehen ja das Inventar durch und Du kannst dann mit dem entsprechenden Item etwas machen.
 
  • Like
Reaktionen: bjoernret
Der Artikel ist doch direkt verlinkt: http://cs.elderscrolls.com/constwiki/index.php/Walking_through_Items_in_an_Inventory

In deinem Fall würde es so gehen:
Code:
short InvPos
ref pInvObj

;...

set InvPos to 0
Label
set pInvObj to (player.GetInventoryObject InvPos)
if pInvObj
  set InvPos to (InvPos + 1)
  if GetWeaponType pInvObj == 5
    removeme [containerref]
  endif
  Goto
endif
[URL="http://cs.elderscrolls.com/constwiki/index.php/AdvancePCLevel"]advancePClevel[/URL]
[containerref].removeallitems player

;...

Das musst du in deinen Script rein basteln. Der Teil sollte in einem GameMode-block (oder Menumode/ScriptEffectUpdate, halt etwas das öfters ausgeführt wird) laufen und mit einer Variable gestoppt werden (à la doonce-Prinzip).

Grüße,
Gildur
 
Zuletzt bearbeitet:
  • Like
Reaktionen: bjoernret
Hallo ich bin neu unter den Moddern und bräuchte für meinen ersten Mod dringend 2 Scripte.

1. Einen damit ein Gegenstand nach einer bestimmten Quest in einen Behälter kommt.
2. Einen um durch Knopfdruck eine Keatur aus einer Liste zu beschwören als Arenagegner.

Ich hoffe ihr könnt mir helfen.:?

Lg Brom1994
 
Kann mir einer sagen wie einen Skriptbefehl aussieht womit man nach 2 Tagen nachdem die Bedingung erfüllt etwas geschieht. Und Diarrhoe könntest du diesen Script vielleicht noch mal überarbeiten, da di zweite messagebox nicht klappt?

SCN zzMarkusScriptzz
short gold
short init

Begin onActivate
if init == 0
set init to 1
Messagebox "Ah, ihr wollt meine Wohnung kaufen. Sie kostet nur 3000 Gold. Wenn ihr die Wohnung wirklich wollt sprecht mich einfach nochmal an."
elseif init == 1
if player.getItemCount Gold001 >= 3000
player.removeItem Gold001 3000
player.addItem OstianWohnungSchluessel 1
zzNehrimSignOstianWohnhauszz.disable
zzBewohnteWohnungzz.enable
zzUnbewohnteWohnungzz.disable
set init to 2
messagebox "Hier habt ihr den Schlüssel."
else
messagebox "Ihr habt nicht genug Gold."
endif
endif
if init == 2
messagebox "Ihr wollt euch doch nicht mein neustes Angebot entgehen lassen oder? Da ich weiß das diese Wohnung sehr verkümmert ist schicke euch für 500 Gold jemanden vorbei der für euch alles aufräumt. Also wenn ihr es wollt sprecht mich einfach noch mal an."
set init to 3
elseif init == 3
if player.getItemCount Gold001 >= 500
player.removeItem Gold001 500
messagebox "Ok. Ich schicke ihn euch."
zzBasdurSpeakzz.enable
set init to 4
else
messagebox "Ihr habt nicht genug Gold."
endif
endif
end
 
Zuletzt bearbeitet:
Kann mir einer sagen wie einen Skriptbefehl aussieht womit man nach 2 Tagen nachdem die Bedingung erfüllt etwas geschieht. Und Diarrhoe könntest du diesen Script vielleicht noch mal überarbeiten, da di zweite messagebox nicht klappt?

SCN zzMarkusScriptzz
short gold
short init

Begin onActivate
if init == 0
set init to 1
Messagebox "Ah, ihr wollt meine Wohnung kaufen. Sie kostet nur 3000 Gold. Wenn ihr die Wohnung wirklich wollt sprecht mich einfach nochmal an."
elseif init == 1
if player.getItemCount Gold001 >= 3000
player.removeItem Gold001 3000
player.addItem OstianWohnungSchluessel 1
zzNehrimSignOstianWohnhauszz.disable
zzBewohnteWohnungzz.enable
zzUnbewohnteWohnungzz.disable
set init to 2
messagebox "Hier habt ihr den Schlüssel."
else
messagebox "Ihr habt nicht genug Gold."
endif
endif
if init == 2
messagebox "Ihr wollt euch doch nicht mein neustes Angebot entgehen lassen oder? Da ich weiß das diese Wohnung sehr verkümmert ist schicke euch für 500 Gold jemanden vorbei der für euch alles aufräumt. Also wenn ihr es wollt sprecht mich einfach noch mal an."
set init to 3
elseif init == 3
if player.getItemCount Gold001 >= 500
player.removeItem Gold001 500
messagebox "Ok. Ich schicke ihn euch."
zzBasdurSpeakzz.enable
set init to 4
else
messagebox "Ihr habt nicht genug Gold."
endif
endif
end
Hey,
versuche mal anstatt if player.getItemCount Gold001 >= 3000 versuche folgendes if player.getgold >= 3000

Wie du das mit der wartezeit machst weiß ich leider nicht
 
Hey,
versuche mal anstatt if player.getItemCount Gold001 >= 3000 versuche folgendes if player.getgold >= 3000

Wie du das mit der wartezeit machst weiß ich leider nicht

Ne darum gehts nicht das mit dem Gold klappt ja. Nur die zweite messagebox wird übersprungen und es kommt dierkt die dritte.

BITTE ANTWORTET AUCH AUF DIE FRAGE VON Brom1994!!!
 
Zuletzt bearbeitet: