Construction Set Skriptthread zum Construction Set

Ein Danke :-D, Nein im Ernst, Back to Topic :)

Gibts es wirklick keinen Befehl? Ich wollte meinem Char evtl. einen Neuanfang ermöglichen, ohne nochmal neu anzufangen. :-D
 
Schöner Neuanfang. :lol:

Aber so einen Befehl gibt es wirklich nicht. Tut mir leid. ;)

@ DarkRuler:

Toller Pokal. Stelle ich mir in die Vitrine. :-D

Aber nun ist gut mit OT. ;)
 
Habe gerade einen Skript-Befehl gefunden, mit dem man die Werte ändern kann. Musst also ein Skript schreiben, aber das kannst du ja. ;)

Übrigens solltest du vorher einen 2. Spielstand von deinem jetztigen Spielstand machen, da der Befehl evtl. nicht richtig funktioniert, wie in dem Artikel oben steht.

mfg
Kahmul
 
  • Like
Reaktionen: Meister von Cyrodiil
Code:
scn MECompassScript

short button
float Finding
float skill
float Finding2
short pressed
float random
float random2
float finding3
short equiped


begin onEquip
set equiped to 1
end

begin Gamemode

if equiped == 1
messagebox "What do you want to do?" "Find north" "Nothing"
set pressed to 1
set equiped to 0
set button to getbuttonpressed
endif

if button == 0 && pressed == 1

set skill to 100-player.getav destruction
set finding to skill/100
set random to rand 1 100
set random2 to rand 1 100
set finding2 to finding * random
	if random2 >=50
		set finding3 to 360-finding2
	else
		set finding3 to finding2 
	endif


player.setangle Z finding3
set pressed to 0
set button to 0
endif
end


Hallo alle zusammen.

Ich habe diesen Script geschrieben, aber er funktioniert nicht.
Der Script soll den Spieler abhängig von seiner Zerstörungsfähigkeit mehr oder weniger genau nach norden ausrichten. Weiß nicht, warum das nicht geht.

Hilfe bitte.

thx
 
Das Skript kann nicht funktionieren, da "GameMode" nicht im Inventar ausgeführt werden kann, aber "OnEquip" heist ja, dass du einen Gegenstand im Inventar ausrüstest.
Damit das Skript funktioniert, musst du "Begin MenuMode" wählen. ;)
 
Daran kann es nicht liegen.

Denn OnEquip wird ja nur eine Variable gesetzt die im GAMEMODE abgefragt wird. Die Messagebox erscheint auch. Der Spieler wird nur nicht gedreht
 
Hättest du ja gleich sagen können. :roll:
Ich schaus mir noch einmal genauer an. Wenn ich einen Fehler finde, editiere ich ihn hier rein.
 
Ich glaube, Kahmul meinte eher, dass der Gegenstand sich im Inventar des Spielers befindet und nicht in der Spielwelt und dass deswegen kein "GameMode"-Block ausgeführt werden kann.

Edit: @Unbekannter:
Du benutzt ja ganz schön viele Variablen... ;)
Versuch sonst mal, die Werte der Variablen herauszukriegen und anhand dieser Werte den Rechenweg für den Winkel zu rekonstruieren, vielleicht werden sie ja falsch gesetzt.
Andere Möglichkeit: Du befindest dich in einem Interior mit einem NorthMarker, sodass der Winkel zwar richtig gesetzt wird, der Kompass sich aber am Marker orientiert und deswegen in eine andere Richtung zeigt.
 
Zuletzt bearbeitet:
  • Like
Reaktionen: Kahmul
Schreibe den Teil mal so:

Code:
if button == 0

set skill to 100-player.getav destruction
set finding to skill/100
set random to rand 1 100
set random2 to rand 1 100
set finding2 to finding * random
set pressed to 2

If Pressed == 2
    If random2 >=50
        set finding3 to 360-finding2
    Else
        set finding3 to finding2 
    endif

Vielleicht funktionierts ja jetzt. :? :roll:
 
*auf mein Edit aufmerksam mach*

Edit: @Unbekannter:
Du benutzt ja ganz schön viele Variablen... ;)
Versuch sonst mal, die Werte der Variablen herauszukriegen und anhand dieser Werte den Rechenweg für den Winkel zu rekonstruieren, vielleicht werden sie ja falsch gesetzt.
Andere Möglichkeit: Du befindest dich in einem Interior mit einem NorthMarker, sodass der Winkel zwar richtig gesetzt wird, der Kompass sich aber am Marker orientiert und deswegen in eine andere Richtung zeigt.
 
Also der Norden ist Ingame immer die Z Angle bei 180 Grad. Also um ihn ungefähr nach Norden auszurichten, musst du 180 Grad - eine Zufallszahl nehmen.

Zum rest kann ich nix sagen, habs mir nur flüchtig durchgelesen.
 
Hallo

Ich würde für Oblivion gerne einen Timer Script machen (für eine Vampirismus Mod), allerdingssoll eine Messagebox erscheinen, die erst 20 Sekunden nach Aussaugen erscheinen soll. Sie erscheint aber alle 20 Sekunden beliebig.
Ich poste den Script mal:

SCN 000VampireFeedingScript


float timer
float fQuestDelayTime


Begin gamemode

if player.hasvampirefed == 1
player.addspell 000Extras
player.removespell 000sundamage
player.additem 01006F1B 1
messagebox "Ihr Fühlt Euch wohlgesättigt und könnt nun in der Sonne wandeln...Für den Augenblick..."
endif
set fQuestDelayTime to 0.001
if ( timer < 20 )
set timer to timer + getSecondsPassed
else
player.removespell 000extras
player.addspell 000sundamage
messagebox "Ihr habt Hunger nach Blut! Sucht nach neuem Blut und gebt Acht vor der Sonne, sie wird Euch verbrennen!"
endif
end

Was muss ich ändern, damit die Messagebox nicht alle 20 Sekunden beliebig erscheint?

 
Bin mir jetzt nicht sicher, aber ich würde gegebenfalls noch eine Sicherung einbauen. Also mit DoOnce.

Die Variable setzt du in Teil 1 (das Aussaugen) hoch und dann beim Teil 2 (schwach werden) wieder runter. Zusätzlich würde ich sagen, dass du noch eine Bedingung einbauen solltest, welche dann Teil 2 nur startet, wenn DoOnce einen bestimmten Wert hat.



Also so etwa ...

Code:
[/COLOR][COLOR=Black]SCN 000VampireFeedingScript

[B]short DoOnce[/B]
float timer
float fQuestDelayTime


Begin gamemode


if player.hasvampirefed == 1
player.addspell 000Extras
player.removespell 000sundamage
player.additem 01006F1B 1
messagebox "Ihr Fühlt Euch wohlgesättigt und könnt nun in der Sonne  wandeln...Für den Augenblick..."
[B]set DoOnce to 1[/B]
endif

set fQuestDelayTime to 0.001
[B]If (DoOnce == 1)[/B]
if ( timer < 20 )
set timer to timer + getSecondsPassed
else                                                                
player.removespell 000extras
player.addspell 000sundamage

messagebox "Ihr habt Hunger nach Blut! Sucht nach neuem Blut und gebt  Acht vor der Sonne, sie wird Euch verbrennen!"
[B]set DoOnce to 0[/B]
endif
[B]endif[/B]
end
 
  • Like
Reaktionen: 1 Person
Machs mal so:

Code:
SCN ...

Short Loop

Float Timer
FLoat fQuestDelayTime


Begin GameMode

If fQuestDelayTime
        set fQuestDelayTime to 0.001

    Endif


If Player.HasVampireFed
         set Timer to 0
         Player.AddSpell <Zauber> 1
         Player.RemoveSpell <Zauber> 1
         Player.AddItem <ItemID[B]>[/B] 1
         set Loop to 1
         MessageBox "Bla"

    Endif

If Loop == 1
        set Timer to 20
        set Timer to Timer - GetSecondsPassed

    Endif

If Timer > 19 && <= 20
        Player.RemoveSpell <Zauber> 1
        Player.AddSpell <Zauber> 1
        MessageBox "Bla"
        set Loop to 2

    Endif

If Loop == 2
        set Timer to 0
        set Loop to 0

    Endif


End
mfg
Kahmul
 
  • Like
Reaktionen: 1 Person