PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : TESCS Script Problem



Phelic
01.03.2005, 21:05
Ich hab ma ein bissel was gescriptet:
if ( OnActivate == 1 )
if ( Player->GetItemCount, "TH_dagonfel_tele" > 0 )
PlaySound "frgtLeft"
Player->RemoveItem, "TH_dagonfel_tele", 1
endif
endifProblem: das Item "TH_dagonfel_tele" wird nicht aus dem Inventar entfernt,
sondern an den Namen des Items werden irgendwelche Zahlen angehängt. :confused:
hab jetz schon ne Stunde rumprobiert....
die Lösung ist sicher ganz einfach, aber ich komm net drauf :(

freu mich über jede Antwort!!!111

€: die beiden IF-Abfragen werden eindeutig mit JA beantwortet, hab ich grad getestet.

imported_DWS
02.03.2005, 07:59
Wenn sugarlips habisi den vintagebrandy aus dem player-inventar holt, sieht es so aus (zeile kopiert) :

Player->RemoveItem P_VintageComberryBrandy1 1

Hast Du mal versucht, Anführungszeichen und Kommata wegzulassen?

Phelic
02.03.2005, 17:00
mhhh, ich glaub, das hab ich schon probiert, werds aber nochma versuchen.
€: geht auch net, habs gleichzeitig dann noch disabled, aber es ändert wieder den Namen und verschwindet dann aber erst beim Benutzen eines Schlickschreiters/Schiffes aus dem Inventar.....

Gorkon
03.03.2005, 01:46
Wo/an wem pappt das Skript dran?

Phelic
03.03.2005, 13:20
Das hängt an so einem Dwemer-licht-apparat-dingsbums dran.
hat aber ne eigene id, d.h. benutzt nur das Model davon.

imported_DWS
03.03.2005, 13:44
könnte es sein, daß dabei eine unmöglich-schleife entsteht? ich meine, innerhalb der if-klammer wird der item-count auf null gesetzt während gleichzeitig aber die bedingung dafür >0 ist. wie sehen eigentlich die scripts für das trinken von flaschen aus, vielleicht könnte das weiterhelfen...

Phelic
03.03.2005, 14:33
Das glaub ich nicht, da die IF abfrage ja am Anfang gestellt wird.
Das, was später passiert is unerheblich.

The Flo
03.03.2005, 15:23
probiers mal mit ner anderen item-id bei removeitem und bei itemcount
wenns da auch nich funkt kanns ja vielleicht am itemcount liegen. der hat bei mir auch nie richtig funktioniert

edit: kommt irgndwelche meldung wenn du das dwemerdings benutzen willst?

Phelic
03.03.2005, 16:18
ne, da kommt keine Meldung, funzt alles bis auf das removen.

€: werd die zwei versionen mal austesten
€²: wenn ichs mit nem original Item aus MW mach, gehts seltsamerweise

The Flo
03.03.2005, 16:30
ich weiss nich ob das hilft aber schreib doch mal am ein

if ( MenuMode == 1 )
Return
endif

oder ein

if ( Player->GetItemCount, "TH_dagonfel_tele" == 0 )
Return
endif


wenn das auch nicht hilft dann probier mal das:

if ( OnActivate == 1 )
if ( Player->GetItemCount, "TH_dagonfel_tele" > 0 )
set status to 1
endif
endif

if ( status == 1 )
PlaySound "frgtLeft"
Player->RemoveItem, "TH_dagonfel_tele", 1
set status to 0
endif

aber ich bin halt auch nich das scriptgenie und dadurch ein bisl überfragt

Phelic
03.03.2005, 19:12
if ( Player->GetItemCount, "TH_dagonfel_tele" == 0 )
Return
endifVielen herzlichen Dank!!! :) :) :)
ES FUNZT!!!!!!!!
lag wohl doch an der IF-abfrage und dem Entfernen des Items darin.

The Flo
04.03.2005, 15:24
da ich diese frage mit bravour gemeistert habe (eingebildetes schwein :D ), meine eigenen scripts aber allesamt nicht wirklich funtkionieren (eigentlich sinds nur zwei) stelle ich mal diesen script rein.
ich hoffe jemand kann mir helfen.
genauere beschreibung folgt unten


Begin fth_soundanlage

Short status
Short button
short OnActivate

if ( MenuMode == 1 )
Return
endif

If ( OnActivate == 1 )
MessageBox "Play", "Track 01", "Track 02", "Track 03", "Track 04", "Nix" ;hier wird nach titel gefragt der gespielt werden soll
Set Status to 1
Set OnActivate to 0
endif

if ( Status == 1)
set button to GetButtonPressed
if ( button == -1 )
return

elseif ( button == 0 ) ;button 0-4 starten eine wave-datei. wenn button 5 gewählt wird,wird der laufende sound gestopt oder die frage auf 0 gestellt falls kein sound läuft
PlaySound, "fth_sound_01"
set status to 0

elseif ( button == 1 )
PlaySound, "fth_sound_02"
set status to 0

Elseif ( button == 2 )
PlaySound, "fth_sound_03"
set status to 0

Elseif ( button == 3 )
PlaySound, "fth_sound_04"
set status to 0

Elseif ( button == 4 )
PlaySound, "fth_sound_05"
set status to 0

Elseif ( button == 5 )
StopSound "fth_sound_01";alle anderen sounds werden gestoppt
StopSound "fth_sound_02"
StopSound "fth_sound_03"
StopSound "fth_sound_04"
set status to 0
endif
endif

End


dieser script ist auf eine stereoanlage gerichtet ( zur zeit gleicht sie aber eher einem radio aus dem 2. weltkrieg, ist halt von mir texturiert)
wenn die stereo angewählt wird, wird die frage nach einem lied gestellt das angewählt werden soll. ist die antwort "Nix" wird nichts gespielt oder der laufende sound gestoppt.

das problem: durch irgendnen fehler reagiert die stereoanlage nicht wenn ich sie aktivieren will, die frage wird dann gar nicht gestellt.
bei einem anderen script der auf eine statue gerichtet war hat ich das problem auch.
ich vermute mal es liegt an dem OnActivate

würd mich freun wenn mir jemand hilft

Phelic
04.03.2005, 20:05
das OnActivate nicht als SHORT deklariern (gar net deklariern!!!)
dann müsstes funzen :)

The Flo
05.03.2005, 09:37
dann kommt aber meistens ein "right eval" aber ich probiers mal, danke ;)

The Flo
07.03.2005, 14:42
danke http://www.multimediaxis.de/images/smilies/old/sm_12.gif , war wirklich nur wegen der überflüssigen deklarierung. funzt jetzt perfekt :D

sry für doppelpost