PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Energiezellen Script



Wulfy301
27.11.2013, 20:06
Das Problem hier, wenn die Energiezelle aufgebraucht ist dauert es ewig bis eine neue geladen wird, wie auch immer das gemacht wird.
Kann man das irgendwie ändern, indem man das nachladen einer E-zelle selber steuern kann, oder das die E-zelle nachgeladen wird, wenn man die Brille abnimmt und wieder aufsetzt.



scn nightvisionftquestscript

float timer

begin gamemode

if (nightvisionftequipped==1)
if timer < 9
set timer to timer + getsecondspassed
else
set timer to 0
set nightvisionftenergy to nightvisionftenergy - 1
if (nightvisionftenergy<=0)
rimod nightvisionft
set nightvisionftenergy to 0
endif
endif
else
if timer < 3
set timer to timer + getsecondspassed
else
set timer to 0
if (getcurrenttime>=5&&getcurrenttime<=20&&nightvisionftenergy<100)
set nightvisionftenergy to nightvisionftenergy + 1
endif
endif
endif
end

Boïndil
28.11.2013, 04:19
So wie es aussieht, wird das Gerät nur am Tag aufgeladen. Im Prinzip ist die Funktion völlig sinnlos, wenn du sie durch abnehmen und aufsetzen wieder aufladen willst. Dann reicht ein Script völlig aus, wie du sie auf meiner neuen Nachtsicht-Brillen findest.

Wulfy301
28.11.2013, 17:22
Aber um das gehts ja, es sollen Energiezellen benötigt werden, wenn man die Nachtsichtbrille benutzt. Nur ohne dem warten eben, leere E-zelle raus, neue rein, weiter gehts.

Wenn ich das dann richtig verstehe, ist das eigentlich nur ein Timer der da runtergezählt wird und nur am Tag wird der wieder zurückgesetzt. Es werden also gar keine "echten" E-zellen benutzt.

Boïndil
02.12.2013, 06:29
Sorry, wieder mal verspätet bemerkt.
Nur Waffen können nachgeladen werden, das Ding nutzt keine wirkliche Energie-Zelle, nur Werte, die bei Gebrauch runtergerechnet werden und am Tag wieder rauf.
Theoretisch könnte man schon festlegen, dass alle X Minuten eine neue Energiezelle abgezogen wird und die Funktion blocken, wenn man keine hat. Aber mehr liegt wohl kaum drin, eine sichtbare Nachladeanimationen hast du sowieso nicht.
Habe mir überlegt, ob man den Effekt auf eine spezielle Waffe setzen könnte, könnte theoretisch möglich sein, dass ein Schuss damit einen Nachtsicht-Effekt startet, der eine gewisse Zeit anhält, dann hätte man sogar sichtbare Nachladeanimationen. Dafür bräuchte man eine Waffe, ein Projektil, eine Explosion und einen Aktivator mit Script. Ein Projektil löst immer eine Explosion aus, wenn es auf irgendwas trifft. Als Explosions-Fragment käme ein Aktivator zum Einsatz, der eine Quest-Funktion startet, die die Dauer des Effekts überwacht.
Nichts, um es ohne Erfahrung kurz rasch zu coden, aber auf jeden Fall eine gute Übung, um solche zu sammeln. Man lernt am meisten, wenn man die Flinte nicht ins Korn wirft, wenn die ersten Widerstände auftauchen.

Vielleicht könnten wir das zusammen in diesem Thread machen, dann haben alle was davon, das betrifft ja einige Bereiche des GECK und ihr Zusammenspiel.

Wulfy301
02.12.2013, 20:06
Hallo Boïndil

kein Problem, hab momentan eh sehr wenig Zeit dafür!
Die erste Lösung hört sich doch gut an, wenn der Zähler im original Script runtergezählt ist, macht ein Infofenster auf "Energiezelle aufgebraucht, neue nachgeladen" , eine E-zelle wird aus dem Inventar entfernt
und der Zähler wird wieder auf voll gesetzt.
Vielleicht noch verbunden mit E-zelle leer Brille runter, Brille wieder aufsetzen E-zelle nachgeladen. Oder mit der Nachladen-Taste?

Wär das ohne großen Aufwand möglich?

Boïndil
03.12.2013, 09:25
Wenn du das mit der Waffe machen würdest, könnte es zur Immersion beitragen, während ich es für reine Aktionitis halte, wenn es nur darum geht, Energiezellen abzuziehen, die kaum was kosten und eine Messagebox einzublenden. Nachladen geht entweder nicht oder nur mit FOSE aber das andere lässt sich mit relativ geringem Aufwand umsetzen.

Wulfy301
03.12.2013, 18:13
Aktionitis, vielleicht? Es soll halt was kosten, wenn man ein Nachtsichtgerät benutzt. In echt würde man auch darauf achten, sparsam mit der Batterie zu sein.

Boïndil
04.12.2013, 05:04
Wie wäre es dann mit speziellen Energiezellen oder Kernspaltungsbatterien, die mehr kosten? Vielleicht lïegt es dran, dass ich nie Energiezellen nutze und deshalb habe ich selbst im Überlebensmodus soviele davon, dass das Verkaufen bereits mühsam ist.

Wulfy301
04.12.2013, 16:40
Nö,nö die original Energiezellen sind perfekt, Kernspaltungsbatterien wären zu groß.
Bin gespannt wie man das ins Script einbaut, hab keine Ahnung wo anfangen. Oder braucht man ein komplett neues Script?

Boïndil
05.12.2013, 06:00
Könnte so funktionieren, habe es noch nicht ausgetestet oder kompiliert, ist nur ein erster Entwurf. Würde dazu gleich per New ein neues Script erstellen.


scn wlwEffectNightvisionScript

short EffectOn
short CellCount
short IsEquipped
short OutMsgOnce
float Timer

Begin OnEquip Player
Set Timer To 0
Set OutMsgOnce To 0
Set EffectOn To 0
Set IsEquipped To 1
End

Begin GameMode
If IsEquipped == 1
If Timer < 0
Set Timer To 20 ; Konfigurierbare Anzahl Sekunden
Set CellCount To Player.GetItemCount AmmoSmallEnergyCell
If EffectOn == 0
If CellCount > 0
Imod nightvisionft
Set OutMsgOnceTo 0
Set EffectOn To 1
Else
If OutMsgOnce == 0
ShowMessage NightvisionCellNeeded ; Info Zellen benoetigt
Set OutMsgOnceTo 1
EndIf
EndIf
Else
If CellCount > 0
Player.RemoveItem AmmoSmallEnergyCell 1 1
ShowMessage NightvisionCellRemoved ; Info Zelle verbraucht
Else
Rimod nightvisionft
Set Timer To 1
Set EffectOn To 0
EndIf
EndIf
Else
Set Timer To Timer - GetSecondsPassed
EndIf
EndIf
End

Begin OnUnequip Player
Rimod nightvisionft
Set IsEquipped To 0
Set EffectOn To 0
End


Du brauchst die Quest nicht mehr, du kannst einfach mein Script einer Brille oder so zuweisen. Du musst noch die zwei Info-Boxen erstellen, die sollten keine Messagebox sein, sondern oben links erscheinen.

Könnte das bei meinen Brillen auch nachrüsten, wenn ich das Script schon geschrieben habe.

Wulfy301
05.12.2013, 12:55
Äh, Infoboxen erstellen?

Bei Zeile 6 Fehlermeldung -> invalid variable name 'OutMsgOnce' , muss ich da eine Global-variable erstellen?

Boïndil
05.12.2013, 13:53
War ein Schreibfehler von mir, habe das Script vorhin speichern können, nur mit eigenen Filtern:


scn wlwEffectNightVisionGogglesScript

short EffectOn
short CellCount
short IsEquipped
short OutMsgOnce
float Timer

Begin OnEquip Player
Set Timer To 0
Set OutMsgOnce To 0
Set EffectOn To 0
Set IsEquipped To 1
End

Begin GameMode
If IsEquipped == 1
If Timer < 0
Set Timer To 20 ; Konfigurierbare Anzahl Sekunden
Set CellCount To Player.GetItemCount AmmoSmallEnergyCell
If EffectOn == 0
If CellCount > 0
Imod nightvisionft
Set OutMsgOnce To 0
Set EffectOn To 1
Else
If OutMsgOnce == 0
ShowMessage NightvisionCellNeeded ; Info Zellen benoetigt
Set OutMsgOnce To 1
EndIf
EndIf
Else
If CellCount > 0
Player.RemoveItem AmmoSmallEnergyCell 1 1
ShowMessage NightvisionCellRemoved ; Info Zelle verbraucht
Else
Rimod nightvisionft
Set Timer To 1
Set EffectOn To 0
EndIf
EndIf
Else
Set Timer To Timer - GetSecondsPassed
EndIf
EndIf
End

Begin OnUnequip Player
Rimod nightvisionft
Set IsEquipped To 0
Set EffectOn To 0
End

Die Messageboxen sind die Benachrichtigungen, die oben links oder in der Mitte auf dem HUD auftauchen, findet man im GECK unter Miscellaneous > Message.
Dann musst du zwei neue Messages erstellen, mit den Namen NightvisionCellNeeded(Zellen ausgegangen) und NightvisionCellRemoved(Zelle entfernt). Du kannst das Scriupt nicht speichern, solange es diese Messages nicht gibt, deshalb vor dem Script erstellen.
Unter Miscellaneous > Scripts machst du New und kopierst den obigen Code rein und speicherst es. Dieses Script musst du dann einer Brille oder ähnlichem zuweisen.

Wulfy301
05.12.2013, 19:28
Hab jetzt alles so gemacht, keine Fehlermeldung mehr, nur wird das Script bei den Items (Armor) nicht in der Script-Liste angezeigt?
Script Type ist auf "effect".

Boïndil
06.12.2013, 04:47
Es ist eigentlich ein Object-Script, Effect gilt ausschliesslich für jene, die an Basis-Effekte angehängt werden.

Wulfy301
06.12.2013, 14:27
Eigenartig, hab ich zuerst ausprobiert und ging nicht, jetzt nochmal gemacht und geht.:eek:

Könnte man das Script noch ein wenig erweitern?
Wenn man die Brille abnimmt, wäre eine Infobox nett die einem sagt wie voll/leer die E-zelle jetzt ist. So in etwa, wie das hier->



scn nightvisiongogglesftscript

begin onequip
imod nightvisionft
set nightvisionftequipped to 1
showmessage nightvisionftmessage, nightvisionftenergy
end

begin onunequip
rimod nightvisionft
set nightvisionftequipped to 0
showmessage nightvisionftmessage, nightvisionftenergy
end

Kann man das nachladen einer E-zelle mit einer Taste verbinden, oder mit dem ab und aufsetzten der Brille? Ich meine E-zelle leer, Nachtsicht aus, Brille runter,
Brille wieder aufsetzen, E-zelle gewechselt (falls noch eine im Inventar ist), Nachtsicht an.

Boïndil
07.12.2013, 04:48
Ich finde, dass das bereits ein relativ elegantes Script ist, das Energiezellen verbraucht. Meinst du nicht, dass Energiezellen zu billig sind, um auch noch ein Mikromanagement notwendig zu machen?

Ich habe auch Erfahrungen gesammelt, indem ich einfach nur damit experimentierte, verschiedene Code-Schnipsel so zu verändern und neu zu kombinieren., wie ich es brauchte.
Und dazu musste ich nachlesen, welche Funktionen für ein Problem in Frage kommen könnten und was sie genau bewirken. Und heute habe ich das gute Gefühl, dass es für fast jede Anforderung eine Lösung gibt, z.B. eine Funktion mit einer eigenen Taste zu verbinden.
Diese Seite ist bei mir selbst heute noch permanent offen, solltest vielleicht mal ein wenig schmökern:
http://geck.bethsoft.com/index.php?title=Category:Functions
Ich helfe dir gerne mit Tipps weiter, aber ich kann dir auch ncht jeden Code schreiben :)

Wulfy301
07.12.2013, 14:18
Natürlich ist das Script elegant!
Aber damit sich die Nachtsichtbrille „echt“ anfühlt muss halt, wenn die Batterie leer ist, erst mal das Licht ausgehen, toll wenn das gerade in einen hektischen Kampf im dunklen passiert. Darum wäre es halt schön, wenn man das nachladen einer Batterie manuell machen muss, auch wenn es nur ein Tastendruck ist.
Keine Ahnung ob man dafür einen nachladen -sound Scripten kann und erst wenn der abgespielt ist darf wieder die Nachtsicht angehen. So würde ich mir das Script machen, wenn ich es könnte!

Aber so wird es nicht kommen, weil ich keine Zeit dafür habe mich in die Materie einzuarbeiten. Kann aus beruflichen gründen die Zeit dafür nicht aufbringen (Winterdienst, kennst du in der Schweiz nur zu gut), hab alleine gestern und heute 8 Überstunden gemacht. Die wenige Zeit die mir in den nächsten Monaten übrig bleibt, versuche ich mit meiner Familie zu verbringen und wenn es geht, mal eine halbe Stunde Fallout zu spielen.
So, das soll aber keine Entschuldigung sein, ich will auch kein Mitleid (weil ich gerne Schneepflug fahre), oder sonst was sein!
Es macht mir auch keinen Spaß, das ich dich ständig um Hilfe bitten muss, es gibt nur keinen anderen der so Fitt mit dieser Materie ist wie du!
Ich bin dir jetzt nicht böse, ganz im Gegenteil! Ich bin dir dankbar für jede Minute die du für mich inzwischen geopfert hast und weit wichtiger ist, das du an WLW weiter machst!:right