PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Scriptfrage



[ZKC]LP
24.11.2007, 13:54
Hallo Leute,


ScriptName PaperHideOutScript

float button
Begin OnActivate

MessageBox "Wieviel Gold wollt ihr deponieren?", "100", "500", "1000", "2000", "5000", "10000", "50000"
set button to GetButtonPressed
if button == 0
Player.RemoveItem 0000000f 100
ChestHideoutGold.additem 0000000f 100
endif

End



weiß einer von euch, was hier dran nicht stimmt?

Folgenes Problem:

Das Script soll den Spieler per MessageBox fragen, wieviel Gold er ablegen will.
Das soll er aber später auch noch wiederbekommen können, denn der gleiche Betrag soll in einer Truhe abgelegt werden.

Daher die Zeilen
if button == 0
Player.RemoveItem 0000000f 100
ChestHideoutGold.additem 0000000f 100
endif

Nur meckert das CS bei der Reference ChestHideoutGold herum, das es diese nicht gäbe.

Hoffe ihr wisst Rat, ich weiß nämlich keinen:confused: (wie so oft)

Gruß

LP

MODIFIED
24.11.2007, 14:00
Ganz spontan würde ich mal darauf tippen, das es in deinem Plugin keine Truhe gibt, deren Referenzbezeichnung "ChestHideoutGold" ist.

[ZKC]LP
24.11.2007, 15:27
Das ist es ja geradeö.
Es gibt definitiv eine solche Truhe, weil ich eben diese erstellt habe.
Deshalb versteh ich auch nicht was das CS da für Probleme hat.http://www.multimediaxis.de/images/smilies/old/1/nixweiss.gif

Gru0

LP

Malachit
24.11.2007, 15:50
Hast Du die Referenz auch auf persist gesetzt?

[ZKC]LP
24.11.2007, 16:05
Hm was heißt den persist, und wo stellt man das genau ein?

bg2408
24.11.2007, 16:08
Benutzt du die Referenz, und nicht die ItemID? Das sind unterschiedliche Sachen!

Nebenbei wird das Script ohnehin nicht funktionieren.

1. In Scripts EditorIDs, nicht FormIDs verwenden!
2. Soweit ich Messageboxes kenne, wirst du mindestens einen Frame brauchen, um den Knopfdruck zu erfassen. Ich weiß nicht, ob der onActivate Block dann überhaupt noch läuft.

[ZKC]LP
24.11.2007, 16:21
Und wo kann man dann die editor id finden?

Den Frame müsste man doch durch MenuMode bekommen mönnen oder?

MODIFIED
24.11.2007, 17:01
1. neue Kiste erstellen.
2. Kiste im Worldspace setzen (ist dann eine Referenz des Editiorobjektes)
3. Kiste im renderfenster doppelt anklicken.
http://www.mwspace.de/TES/Oblivion/Zwischenablage01x.jpg
4. Den selbsterstellten Referenznamen in deinem Script nutzen, persistent anhakeln
5. Script auf das Editorobjekt binden

[ZKC]LP
24.11.2007, 19:22
ScriptName PaperHideOutScript

float button
Begin OnActivate
MenuMode

MessageBox "Wieviel Gold wollt ihr deponieren?", "100", "500", "1000", "2000", "5000", "10000", "50000"
set button to GetButtonPressed
if button == 0
Player.RemoveItem 0000000f 100
ChestHideoutGoldEditor.AddItem 0000000f 100
Message "100 Gold deponiert"
endif

End


So sieht das Script jetzt aus.

Das Cs meckert jetzt auch nicht, d. h. es compiliert das Script.

Trotz alledem passiert nichts wenn ich dann im Spiel auf den Button "100" drücke.

Die andern Buttons habe ich jetzt noch nicht gescripted, ich will erst einmal das der 1. funktioniert.

Gruß

LP

MODIFIED
24.11.2007, 19:29
Wurde auch schon von BG2408 gesagt.
Scripte können mit ID-Nummern wie 0000000f etc nichts anfangen. Setze da den Editorname ein. Glaube das war Gold001.

Low Post
25.11.2007, 12:01
Außerdem würde ich das Menumode als eigenen Begin-Block verwenden. Ob das so überhaupt funktionieren kann weiß ich gar nicht.
Zusätzlich würde ich noch eine Abfrage einbauen, ob der Spieler überhaupt genug Gold hat. Dafür gibt's die Funktion GetGold (http://www.multimediaxis.de/layouts/tes36/buttons/edit.gif) (mit einem If-Block überprüfen).

bist du dir sicher, dass das ganze im Menumode und nicht im Gamemode abläuft?

btw: es reicht button als short zu definieren, GetButtonPressed gibt immer ganze Zahlenwerte heraus.


ScriptName PaperHideOutScript

short button

Begin OnActivate
MessageBox "Wieviel Gold wollt ihr deponieren?", "100", "500", "1000", "2000", "5000", "10000", "50000"
End

Begin Menumode
set button to GetButtonPressed
if button == 0 && Player.GetGold >= 100
Player.RemoveItem Gold001 100
ChestHideoutGoldEditor.AddItem Gold001 100
Message "100 Gold deponiert"
elseif button == 1 && Player.GetGold >= 500
Player.RemoveItem Gold001 500
ChestHideoutGoldEditor.AddItem Gold001 500
Message "500 Gold deponiert"
endif
End

Begin Gamemode
set button to GetButtonPressed
if button == 0 && Player.GetGold >= 100
Player.RemoveItem Gold001 100
ChestHideoutGoldEditor.AddItem Gold001 100
Message "100 Gold deponiert"
elseif button == 1 && Player.GetGold >= 500
Player.RemoveItem Gold001 500
ChestHideoutGoldEditor.AddItem Gold001 500
Message "500 Gold deponiert"
endif
End

[ZKC]LP
25.11.2007, 19:28
Âlso, Script läuft http://www.multimediaxis.de/images/smilies/old/sm_12.gif http://www.multimediaxis.de/images/smilies/old/sm_12.gif .

Falls es jmd interressieren sollte:

ScriptName PaperHideOutScript

short button

Begin OnActivate
MessageBox "Wieviel Gold wollt ihr deponieren?", "10", "100", "500", "1000", "10000", "100000"
End

Begin Menumode

set button to GetButtonPressed

if button == 0 && Player.GetGold >= 10
Player.RemoveItem Gold001 10
ChestHideoutGoldEditor.AddItem Gold001 10
Message "10 Gold deponiert.", 2

elseif button == 1 && Player.GetGold >= 100
Player.RemoveItem Gold001 100
ChestHideoutGoldEditor.AddItem Gold001 100
Message "100 Gold deponiert.", 2

elseif button == 2 && Player.GetGold >= 500
Player.RemoveItem Gold001 500
ChestHideoutGoldEditor.AddItem Gold001 500
Message "500 Gold deponiert.", 2

elseif button == 3 && Player.GetGold >= 1000
Player.RemoveItem Gold001 1000
ChestHideoutGoldEditor.AddItem Gold001 1000
Message "1000 Gold deponiert.", 2

elseif button == 4 && Player.GetGold >= 10000
Player.RemoveItem Gold001 10000
ChestHideoutGoldEditor.Additem Gold001 10000
Message "10000 Gold deponiert.", 2

elseif button == 5 && Player.GetGold >= 100000
Player.RemoveItem Gold001 100000
ChestHideoutGoldEditor.AddItem Gold001 100000
Message "100000 Gold deponiert.", 2
endif
End

Begin Gamemode

set button to GetButtonPressed

if button == 0 && Player.GetGold >=10
Player.RemoveItem Gold001 10
ChestHideoutGoldEditor.Additem Gold001 10
Message "10 Gold deponiert.", 2

elseif button == 1 && Player.GetGold >= 100
Player.RemoveItem Gold001 100
ChestHideoutGoldEditor.AddItem Gold001 100
Message "100 Gold deponiert.", 2

elseif button == 2 && Player.GetGold >= 500
Player.RemoveItem Gold001 500
ChestHideoutGoldEditor.AddItem Gold001 500
Message "500 Gold deponiert.", 2

elseif button == 3 && Player.GetGold >= 1000
Player.RemoveItem Gold001 1000
ChestHideoutGoldEditor.AddItem Gold001 1000
Message "1000 Gold deponiert.", 2

elseif button == 4 && Player.GetGold >= 10000
Player.RemoveItem Gold001 10000
ChestHideoutGoldEditor.AddItem Gold001 10000
Message "10000 Gold deponiert.", 2

elseif button == 5 && Player.GetGold >= 100000
Player.RemoveItem Gold001 100000
ChestHideoutGoldEditor.AddItem Gold001 100000
Message "100000 Gold deponiert.", 2
endif
End


das ist die Endversion, die läuft.

Vielen Dank

LP