Autor Thema: Privates Fragethread  (Gelesen 10924 mal)

Endres

  • Midlife Crisis Tentakel
  • ******
  • Beiträge: 1264
  • Geschlecht: Männlich
  • En|dres, der
    • ICQ Messenger - 230191486
    • MSN Messenger - enni_puschner@hotmail.de
    • Profil anzeigen
    • e7p.de
    • E-Mail
Re: Privates Fragethread
« Antwort #30 am: 21. Mai 2012, 00:21:49 »
Nun, weil durch int transo; die Variable transo den Wert 0 zugewiesen bekommt. Du willst aber von 100 auf 0 herunterzählen, darum musst du der Variable auch erstmal wieder 100 zuweisen. Also:
[ags]int transo = 100;
while (transo > 0) { ... }[/ags]


Domi:"irc hab ich mir viren geholt.. icq hab ich nimmer"

Private

  • kleiner Tentakelsaugknopf
  • **
  • Beiträge: 22
    • Profil anzeigen
    • E-Mail
Re: Privates Fragethread
« Antwort #31 am: 21. Mai 2012, 00:34:25 »
sauber, hat geklappt. jetzt kann ich den prolog fertig stellen und irgendwo hochladen und hier im forum posten und dann erstmal pausieren. habe noch andere dinge zu erledigen, die mir nicht als sinnlose zeitverschwendung vorgeworfen werden. in etwa einem monat mache ich dann weiter und habe bestimmt weitere fragen.

Rocco

  • Administrator
  • alter Tentakel
  • *****
  • Beiträge: 2352
  • Geschlecht: Männlich
    • Profil anzeigen
    • Maniac Mansion Mania
    • E-Mail
Re: Privates Fragethread
« Antwort #32 am: 21. Mai 2012, 09:28:33 »
weil du die variable transo nicht definiert hast.

du kannst nicht schreiben:
[ags]
int transo;   // transo hat keinen wert und ist somit null
 while (transo > 0) {   // Bedingung ist nie erfüllt, deswegen wird die Schleife nie durchlaufen
    transo--;
    player.Transparency = transo;
    Wait(1);
    aSound28.Play();     // das hier ist auch nicht ratsam, damit startest du den Sound, wenn die Schleife läuft alle paar millisekunden neu.
  }
[/ags]

So hätte es wahrscheinlich funktioniert:
[ags]
int transo = 100;

while (transo > 0) {  
    transo--;
    player.Transparency = transo;
    Wait(1);

    if(!Game.IsAudioPlaying(eAudioTypeSound))
       aSound28.Play();
  }

[/ags]


oha, hat endres schon lange beantwortet, egal doppelt hält besser....
« Letzte Änderung: 21. Mai 2012, 09:29:37 von Rocco »

KhrisMUC

  • Moderator
  • volljähriger Tentakel
  • *****
  • Beiträge: 988
    • Profil anzeigen
Re: Privates Fragethread
« Antwort #33 am: 21. Mai 2012, 11:51:26 »
Bezüglich erst Dialog, dann andere Befehle:

Dialog.Start() wird, wie auch in der Hilfedatei beschrieben, nicht sofort ausgeführt, sondern erst am Ende der Funktion.
Wenn Du also nach Ende des Dialoges Befehle ausführen willst, schreib sie direkt ins Dialogskript, vor den "stop"-Befehl. Man kann nämlich in Dialogen auch herkömmliche Skriptbefehle verwenden, man muss nur mindestens ein Leerzeichen an den Anfang der Zeile setzen.

Falls die Befehle an mehreren Stellen ausgeführt werden sollen, schreib sie in eine Funktion im GlobalScript und ruf die vom Dialog aus auf:

[ags]// in GlobalScript.asc

function Dialog1_Ende() {
  player.Walk(240, 176);
  player.Say("bla");
  object[3].Visible = false;
}


// Dialogskript

...
@2
player: Alles klar.
 Dialog1_Ende();
stop
@3
player: Na gut, dann werd ich das tun.
 Dialog1_Ende();
stop[/ags]

Private

  • kleiner Tentakelsaugknopf
  • **
  • Beiträge: 22
    • Profil anzeigen
    • E-Mail
Re: Privates Fragethread
« Antwort #34 am: 15. Dezember 2012, 17:29:58 »
Hallo,

ist es möglich, ein kompiliertes Spiel wieder zu dekompilieren? Wenn das nicht möglich ist, dürfte mein Projekt gestorben sein. Mein Computer ist vor einigen Monaten abgeraucht und meine Sicherungskopie von AGS war ziemlich alt.

Gruß
Priv

Cone Arex

  • Mod
  • alter Tentakel
  • **
  • Beiträge: 2302
  • Geschlecht: Männlich
  • Skandal-Entwickler und Idiot
    • Profil anzeigen
    • Conequest
Re: Privates Fragethread
« Antwort #35 am: 15. Dezember 2012, 18:10:25 »
Nein, das ist leider nicht möglich.


Folge mir auf X und itch.io