Construction Set Skriptthread zum Construction Set

@DerMächtigeMeister
Wie denn genau? Ne Leerzeile und dann ne 1? Die 1 direkt dahinter? Oder wie?

@Knochenkeule
DAS ist es! ich hatte die ID in der Objektliste genommen. Danke, ich probiere es gleich aus, sobald ich das mit der 1 weiß.
 
Weiß da niemand was?
Krüge und zerspringen, das ist so eine Sache, es geht ja leider Havok wegen nicht "normal" und unkompliziert. Jedoch geht es doch mit einem Trigger, welcher, wenn der Gegenstand den Boden berührt ein "Decal", also eine zerbrochene Mesh übriglässt. Vielleicht fällt das Objekt noch in einer Staubwolke auf den Boden und der Zauber ist perfekt! Geht das? Wenn ja, was für ein Skript brauche ich, um eine Mesh zu replacen, wenn sie den Boden erreicht? Kann ich den Trigger an die Mesh binden, damit der Trigger sich mitbewegt? Lässt sich das auf alle Gegenstände einer Art übertragen?
 
EDIT: Hab gerade gesehn, dass dus gelöst hast. Nur ne Frage dazu. Hebt sich das nicht auf? Wenn man vor start des Scripts bei Skill 50 ist, wird der dann nicht auf 51 und dann auf 10 gesetzt?
@Knochenkeule: Ja, aber durch die Erhöhung(hier auf 51) wird der Fortschrittsbalken auf 0 gesetzt, so wie ich es will.
Andersrum würde zwar der Wert verändert, der Balken bleibt aber, wie er ist.
Und ich wollte ihn ja auf 0.
 
Meine letzte Frage ist hier etwas untergegangen, deshalb wiederhole ich sie mal, vielleicht kann mir jemand helfen:

Ich möchte, dass ein Skript aller 10 InGame-Minuten (oder mehr) abgearbeitet wird. Dazu habe ich bisher folgendes gemacht:

Code:
float currentTimer
float lastTimer

Begin GameMode

set currentTimer to (GetCurrentTime * 60)
if (currentTimer - lastTimer) < 10
	return
endif

MessageEX "Timer: %3.4f" currentTimer
:
set lastTimer to currentTimer

End

Das Ergebnis ist, dass die Message ständig angezeigt wird und nur sehr sehr langsam hochzählt. Was habe ich da falsch gemachet? :huh:
 
Meine letzte Frage ist hier etwas untergegangen, deshalb wiederhole ich sie mal, vielleicht kann mir jemand helfen:

Ich möchte, dass ein Skript aller 10 InGame-Minuten (oder mehr) abgearbeitet wird. Dazu habe ich bisher folgendes gemacht:

Code:
float currentTimer
float lastTimer

Begin GameMode

set currentTimer to (GetCurrentTime * 60)
if (currentTimer - lastTimer) < 10
	return
endif

MessageEX "Timer: %3.4f" currentTimer
:
set lastTimer to currentTimer

End

Das Ergebnis ist, dass die Message ständig angezeigt wird und nur sehr sehr langsam hochzählt. Was habe ich da falsch gemachet? :huh:


HalloHallo,

Die Funktion GetCurrentTime liefert keine Sekunden zurück, sondern die Aktuelle Uhrzeit in einer verquerer Art Dezimalformat.
Beispiele
18Uhr30 --> 18.5
07Uhr15 --> 7.25
12Uhr00 --> 12.0

Du mußt dein Skript also wie folgt anpassen :

Da die Datentypen der einzelnen Vars sehr wichtig sind,
habe ich sie der Übersicht halber in ungarischer Notation (i->integer /f->float) deklariert.


Code:
float fNextTime
float fCurrentTime
short iInitDone
short iStunde
short iMinute


begin GameMode

set fCurrentTime to GetCurrentTime
if (iInitDone == 0) || ((fCurrentTime > fNextTime) && (fCurrentTime < (fNextTime + 1)))
    set iInitDone to 1
    set fNextTime to fCurrentTime + (1.0/60 * 10) ; --> 10 Minuten
    if fNextTime >= 24
        set fNextTime to fNextTime - 24 ; --> 24Stundenumschlag
    endif

    set iStunde to fCurrentTime ; Vorkommaanteil entspricht den Studen
    set iMinute to (fCurrentTime - iStunde) * 60 + 0.5 ; Nachkommaanteil in Minuten wandlen und runden
    if iMinute == 60 ; Falls der Floatwert nach oben gerundet wird, einen Stundenumschlag durchführen
        set iMinute to 0
        set iStunde to iStunde + 1
    endif
    MessageEX "Es ist jetzt genau : %gUhr%g" iStunde iMinute
endif
end

Hab das Skript zwar nicht getestet, aber mathematisch müsste es eigenlich so funktionieren.
Vom Initialzeitpunkt an wir die Aktuelle Uhrzeit dann alle 10 Minuten aktualisiert ausgegeben.
Wenn man nur gerade 10Minuten-Werte haben will, kann man die Weiterschaltung wie folgt manipulieren:
Code:
....
short iMinute
[COLOR="DarkOrange"]short iTagesminuten[/COLOR]

begin GameMode

set fCurrentTime to GetCurrentTime
if (iInitDone == 0) || ((fCurrentTime > fNextTime) && (fCurrentTime < (fNextTime + 1)))
    set iInitDone to 1
[COLOR="darkorange"]    set iTagesminuten to fCurrentTime * 60 + 0.5 ; --> korrekt gerundete Tagesminuten
    set fNextTime to ((iTagesminuten + 10) / 10) / 6.0 ; Mit/Ohne Kommaangabe ist hier für die korrekte Rundung sehr wichtig[/COLOR]
    if fNextTime >= 24
        set fNextTime to fNextTime - 24 ; --> 24Stundenumschlag
    endif
......

Die Teilung der Tagesminuten durch 10 führt die Ausrichtung der Zeitfenster an geraden 10Minuten aus.

Da sieht man es mal wieder : Ganz Easy ;)

Es grüßt die Yolanda 8)
 
  • Like
Reaktionen: Klehron
werde ich mal ausprobieren. Danke. ;)
Ich möchte eigentlich nicht die Uhrzeit ausgeben, sondern nur aller 10 Minuten (oder länger, z.B. jede Stunde) mein Skript laufen lassen.
 
Abend,

sagt mal ist es möglich, sich mit einem Script (von mir aus auch OBSE) in das Handelsmenü einzuklinken oder ist das zu fest in der Engine?
Ich habe vor, das, was ich kaufe, rückgängig zu machen (Also auch das Geld zurückzuzahlen). Dafür soll der NPC XYZ das, was ich gekauft habe, equippen.

Möglich oder nicht? cswiki hat mir leider nicht viel geholfen

Kann mir hier jemand was sagen? Ich will doch nur ein "Ja, und zwar so..." oder ein "nein" -.-
 
Hey ich bins mal wieder mit einer neuen Frage: Wie erstelle ich einen neuen Spawnpoint für eine Mod? Also wo der Spieler startet sobald er "neues Spiel" anklickt. Und wie ist die ID des Gefängnis?
 
Anfrage an alle.
ist es möglich einem Mesh 2 Texturen zu zuweisen?

Wenn ja,
so könnte bei Berührung des Meshes die Textur sich ändern.

Das würde ganz neue Wege eröffnen.

Sollte das der falsche Thread sein, bitte ich um entsprechenden Link.
Schon mal danke

grüße
robin
 
  • Like
Reaktionen: robinH
Ist es per Script möglich, ein Pferd auf Befehl auf und abzusatteln? Ich dachte mir das so:

Man hat 2 Zauber zum auf und absatteln

Nimmt man den zum aufsatteln werden Zügel und Sattel hinzugefügt

Nimmt man den zum absatteln werden Zügel und Sattel wieder entfernt


Nun meine Frage: Geht das? (müssen auch nicht unbedingt Zauber sein, das ist egal)
ah ok, das über mir ist schon mal recht hilfreich, aber welche Befehle brauch ich genau?
 
Hallo,

mein Cs zickt mal wieder (Oder ich zickee rum, ka), ich habe einen Script geschrieben, der als Verzauberung auf eine Waffe soll, damit diese sofort Tödlich ist, wenn man sich anschleicht,

dazu jetzt zwei Sachen:

1. Geht "IsSneaking" auch beim Spieler?

2. Mein Script lässt sich nicht speichern, bzw. lässt er sich schon, allerdings bekomm ich dann beim schließen des Scriptfenster die Frage "Save Current Script = ?
Yes, No"

Bei Yes kehrt er wieder ins Scriptfenster zurück und nichts passiert, bei No schließt er ohne den Script zu speichern, was läuft hier falsch?

mfg
 
Hast du zwischendurch gespeichert? Wenn dir da nämlich ne Fehlermeldung kommt und du berichtigst den Fehler nicht, dann kommt das, was du bei 2. beschrieben hast.

Zum ersten müsste ich mal nachgucken.
 
Ne ich hab nicht gespeichert zwischendurch, hab den Script auch schon in ein neues Fenster kopiert und es versucht ging net.
Code:
scn AjBack

ref target
short notarget

Begin ScriptEffectStart
         set target to GetSelf
               if ( Player.IsSneaking == 1 ) && ( target.GetAlarmed == 0 ) && ( notarget == 0 )
                       target.kill
                   
               elseif 
                       set notarget to 1
         endif
end

Begin ScriptEffectUpdate
              if notarget == 0

                 target.kill

          endif
end

Begin ScriptEffectFinish
               if notarget == 0
                   target.PlaceAtMe BloodDecal02, 1, 0, 1
               endif
end

des ist der Script
 
Änder mal dein ElseIf in ein Else um.
Wenn keine neue Bedingung hinzugefügt wird ist das Besser und das ist der einzige Syntax-Fehler der mir jetzt aufgefallen ist.
 
  • Like
Reaktionen: AjAeXx