Construction Set Skriptthread zum Construction Set

Ändermal die BasicOBjectId dieser Coins in AAIvellonCoin um, wenn bei einer BaseObjectId oder einer ReferenceID eine Zahl am Anfang steht, kann das Cs damit nicht umgehen und überliest es.
 
Ist mir zwar etwas rätselhaft, weil es bei Lazarus ja auch funktioniert hat, aber na gut, dann änder ich das mal. So, Änderung vorgenommen, jetzt erscheint wieder der andere Fehler mit diesem SyntaxError und der Reference.

Edit: Vielen Dank für die Hilfe (über PN).
 
Zuletzt bearbeitet von einem Moderator:
ok noch eine scriptfrage:

ist es möglich items aus dem inventar des spielers zu entfernen bis ein bestimmter Wert erreicht ist?

angenommen ich habe 20 Silberschwerter mit einem wert von je 200g im Inv sollen soviele verschwinden bis ich einen gesammtwert von 1000g erreiche...

geht sowas?^^
 
Code:
scn removeswords
short count

begin onactivate
set count to player.getitemcount silversword
if count > 5
set count to count - 5
player.removeitem silversword count
endif
end
wenn du das script wo drauflegst und das ingame aktivierst, sollten dir genau soviel schwerter entnommen werden, bis du noch 5 hast (was dann 1000 gold entspricht)
 
  • Like
Reaktionen: }{ellFíre
ok ist ja nicht soschwer ^^

aber was ist wenn ich verschiedene sachen aus dem inv verschwinden lassen will damit ich auf einen gesamt wert von 1000 komme?

das script sollte so funktionieren dass es versucht immer das nächst mögliche zu nehmen

angenomm ich habe 2x silberschwert(200g) und 5x silberbogen(120) 1x silberdolch(150g) und 100 Silberpfeile(2g)

das also erst beide schwerter für 400 aus dem inv. verschwinden dann der Silberdolch für 150 dann 3x Silberbogen für 360 und dann 45 Pfeile =1000g....

nun soll man für die 1000g ein Spezielles Item bekommen ....etc

funktioniert sowas auch?^^
ich weis dumme frage.....:roll:
 
Ich bräuchte mal wieder ein Script: Das Script soll folgendes bewirken:

Wenn man eine Schatztruhe öffnet, erscheint eine Messagebox:
"Wer seid ihr?" "Ein Magier", "Ein Krieger", "Ein Meuchler", "Niemand"

Wenn man "Ein Magier", "Ein Krieger" oder "Ein Meuchler" drückt, soll man einige Items zum Inventar hinzugefügt bekommen, immer andere je nach Wahl.

Wenn man "Niemand" drückt, ist das ganze zu Ende, man hat aber die Möglichkeit, die Schatztruhe nochmal zu öffnen, um doch noch etwas zu wählen.

Wenn man eine der Sachen ausgewählt hat, kann man danach natürlich nicht nochmal die Thruhe anklicken. :)

Danke schonmal im Vorraus.

MfG, Blacklands
 
Code:
scn Name

short once
short choice

Begin OnActivate
if once == 0
MessageBox "Wer seit ihr", "Magi", "Kriegi", "Meuchi", "niemi"
Set once to 1
endif
end

Begin GameMode
If once == 1
set choice to GetButtonPressed
endif

if choice == -1
set choice to GetButtonPressed

elseif
choice == 0 
Player.Additem...
Set once to 10

elseif
choice == 1 
Player.Additem...
Set once to 10

elseif
choice == 2 
Player.Additem...
Set once to 10

elseif
choice == 3 
Set once to 0
endif
end

@Hell, da muss ich nochmal drüber Nachdenken, ohne OBSE geht's aber Wahrscheinlich net.
 
Nein kann man nicht, du könntest aber, in dem einen Skript, dem ersten, an der Stelle wo das andere Starten soll, eine GlobalVariable festlegen, der 2te Script läuft über GameMode und startet dann, wenn die GlobalVariabel geändert wird.
 
Ich brauche ein Script, dass einen Sound so lange hintereinander abspielt, bis eine bestimmte Bedingung erfüllt wird. Muss da irgendetwas mit einem Timer gemacht werden oder wie? :oops:
 
Ja, du könntest es auch ohne Timer machen, aber dann würde in jedem Frame der Sound gestartet, und du würdest Schmerzensgeld wegen geplatzten Trommelfellen zahlen müssen.

Was sollen denn die Conditions sein?
 
Der Sound soll anfangen, wenn ein bestimmter Gegner den Kampf gegen den Palyerstartet. Ist ja soweit einfach. Dann soll der Sound solange wiederholt werden, bis alle Gegner im Umfeld tot sind.

MAn kann ja eine Extra Editor-ID für diesen Gegner machen und das Script auf diese Gegner legen. Wenn dann einer dieser Gegner den Combat startet, spielt der Sound. Wenn der alle Gegner mit dieser ID (weil auf denen liegt ja auch das Script) tot sind, soll die Musik aufhören.

Code:
scn KampfMusik   [Objekt Script]

Begin OnStartCombat Player
        Playsound KampfMusik1
        endif
End

Bis dahin ist es ja noch einfach. Aber wie mache ich das mit den Wiederholungen und das der Sound wieder aufhört, wenn alle Gegner tot sind?
 
1. Wir brauchen eine Global, nenn sie, KampfMusikläuft

Code:
scn KampfMusik   [Objekt Script]

Begin OnStartCombat Player
 if ( KampfMusikläuft == 0 ) && ( timer <= 0 )
        Playsound KampfMusik1
        Set timer to LängedesMusikFiles
        Set Kampfmusikläuft to 1
 endif
end

Begin GameMode

If ( timer > 0 )
      Set timer to timer - GetSecondsPassed

elseif ( timer <= 0 ) ( KampfMusikläuft == 1 )
      Playsound KampfMusik1
      Set Timer to  LängedesMusikFiles   
endif

If ( IDGegner1.GetDead == 1 ) && ( IDGegner2.GetDead == 1 ) && ( IDGegner3.GetDead == 1 ) && ( IDGegner4.GetDead == 1 )
         Set KampfMusikläuft to 3
End
 
  • Like
Reaktionen: Blacklands
Code:
Scn Tuere

Begin ScriptEffectStart
If ( Player.GetInCell [CellID] == 1 ) || ( Player.GetInCell [CellID2] == )
   [TuerID].Enable
endif

If ( [TürId].GetDistance Player > [AnzahlderUnits] )
      [TürId].disbale
endif
End

Begin ScriptEffectUpdate
If ( Player.GetInCell [CellID] == 1 ) || ( Player.GetInCell [CellID2] == ) && ( [TürId].GetDistance < [AnzahlderUnits] )
Message "Das Tor ist offen"
endif
end
 
Begin ScriptEffectFinish
If ( Player.GetInCell [CellID] == 1 ) || ( Player.GetInCell [CellID2] == )
   [TuerID].Enable
endif

If ( [TürId].GetDistance Player > [AnzahlderUnits] )
      [TürId].disbale
endif
End

Den Teil bei ScriptEffectUpdate brauch man nicht unbedingt, ist aber auch nicht überflüssig. ;)


Vielen Dank, aber ich weiß nicht genau welche ID ich bei dem CellID2 eingeben soll. Und bei dem Befehl [TuerID].Enable kommt eine Nachricht, dass dies kein Commando sei.
 
hoi

wie würde denn das script ungefähr aussehen wenn ich mir z.b. 20 pfeile craften will aber das material nicht im inv. habe?

oder gibts nen befehl der das inv des spielers überprüft ob der benötigte gegenstand vorhanden ist oder nicht?
 
Player.GetItemCount Objekt, anzahl

Vielen Dank, aber ich weiß nicht genau welche ID ich bei dem CellID2 eingeben soll. Und bei dem Befehl [TuerID].Enable kommt eine Nachricht, dass dies kein Commando sei.

Bei CellId1 muss die Zelle hin, von wo aus man dein Tor in das Land öffnen kann, bei CellID2, muss der ZellName des landes hin, wo man hingeportet wird, heißt dein Oblivion Reich.

Bei [TürId] muss die ReferenceId der Tür hin aber ohne die []
 
Zuletzt bearbeitet: