Maniac Mansion Mania Forum

MMM-Werkzeugkiste => Technik => Newbies => Thema gestartet von: NsMn am 02. März 2008, 07:14:20

Titel: Hilfe für edna_mausi
Beitrag von: NsMn am 02. März 2008, 07:14:20
Hallo,ich dachte ich mache für mich einen Fragenthraed auf.Frage 1:Ich habe ein Problem.Wenn ich bei AGS etwas bei"Use Inventory on Hotspot" reinschreib,passiert im Spiel das auch,aber danach sagt der Charakter"Besser nicht".Wie lässt sich das vermeiden?Gibt es einen Befehl,den man bei "Any Click on..." reinschreiben kann?
Titel: Re: Hilfe für edna_mausi
Beitrag von: Link2005 am 02. März 2008, 07:26:39
Ich glaube da ist ein "unhandeled" zu viel. Schreib hier man den Script für deses Event hin. Vllt weiß ich dann mehr, ich kann aber nicht dafür garantieren.
Titel: Re: Hilfe für edna_mausi
Beitrag von: steve-o-mat am 02. März 2008, 10:36:01
Man sollte eigentlich nur unter "Any click on hotspot" scripten um Fehler jedweder Art zu vermeiden.  ;)

Ein Script könnte zum Beispiel so aussehen:

if (UsedAction (A_USE_INV)) {
  if(player.activeinv==11) {
      player.Say("Ja, so machen wir das.");
      Wait (5);
      LoseInventory(11);
      PlaySound(4);
      AddInventory(22);
  }
}

Dürfte eigentlich soweit korrekt sein. Fröhliches scripten!  ;D
Titel: Re: Hilfe für edna_mausi
Beitrag von: NsMn am 02. März 2008, 12:50:01
Danke,aber ich habs schon vorher herausgefunden*schäm* :-[
Titel: Re: Hilfe für edna_mausi
Beitrag von: NsMn am 15. März 2008, 07:19:05
So,schreib mal wieder in meinen Hilfe Thread.
Wie macht man im Verbengui neue Verben?Ich habe ein neues Gui gemacht und zu den ursprünglichen die Verben"schliess auf" "schalt ein"und schalt aus.Was muss ich tun,das die genauso funktionieren wie die anderen?Und das Inventory und die Pfeile auch?
Titel: Re: Hilfe für edna_mausi
Beitrag von: Mister L am 15. März 2008, 09:00:55
Mit den GUIs kenne ich mich nicht wirklich gut aus, möchte dir aber raten keine neuen (bzw. alten) Verben hinzu zu fügen. Es hatte schon seine Gründe, warum man bei LA die Verbenliste immer mehr augedünnt hat und oftmals brauchen wir drücke / ziehe / und gib bei MMM gar nicht.

Und: Mehr Verben bedeutet auch mehr Arbeit beim Scripten.  :-\  8)
Titel: Re: Hilfe für edna_mausi
Beitrag von: KhrisMUC am 22. März 2008, 10:50:26
Genau, das ist ja "Benutze Schlüssel mit" und "Benutze".
Zusätzliche Verben hinzuzufügen ist schon möglich, allerdings solltest Du Dich ins global script des Starterpacks einarbeiten. Es ist einiges zu beachten, zu viel, um es mal schnell in einen Beitrag zu schreiben.
Auf jeden Fall wäre es wohl am einfachsten, diese Verben zusätzlich zu "Ziehe" und "Drücke" auf Cursor mode 8 zu legen.
Titel: Re: Hilfe für edna_mausi
Beitrag von: NsMn am 24. März 2008, 07:23:15
So,ihr werdet wieder mit Fragen überhäuft!!
1.Wie kriege ich so ein Auswahl-Dingsda wie in Wendys Haus hin?(Also beim Fahrstuhl das so aussieht wie ein Dialog)
2.Gibt es Dialog-externe Befehle,die bei einem Dialog eine Option ein-/auschalten?
Titel: Re: Hilfe für edna_mausi
Beitrag von: Link2005 am 24. März 2008, 07:55:24
1. Ich glaube das ist eigendlich auch ein Dialog, der den Aufzug in eine Andere Etage fahren lässt. Frage mich jetzt aber nicht nach deem Code dafür.
Titel: Re: Hilfe für edna_mausi
Beitrag von: KhrisMUC am 24. März 2008, 09:51:15
2.
http://new.bigbluecup.com/manual/Dialog.SetOptionState.htm
Titel: Re: Hilfe für edna_mausi
Beitrag von: NsMn am 25. März 2008, 13:28:04
Gut.Problem3:Wenn ich eine Tür mache und der Player geht dadurch,ist die Tür im neuen Raum noch zu.woran liegt das? ???
Titel: Re: Hilfe für edna_mausi
Beitrag von: Timer am 25. März 2008, 13:54:22
Hast du beim Türenobjekt der betroffenen Tür ein Häkchen bei "object is initially visible" gemacht?
Titel: Re: Hilfe für edna_mausi
Beitrag von: NsMn am 26. März 2008, 10:04:06
nein,aber das gehört doch so,oder?
Titel: Re: Hilfe für edna_mausi
Beitrag von: Timer am 26. März 2008, 14:05:42
Wenn du willst, dass die Tür, wenn du hineinkommst, offen ist, sollte das "Tür-offen"-Objekt sichtbar sein.
Also: setze das Häkchen, dann müsste es klappen.
Titel: Re: Hilfe für edna_mausi
Beitrag von: NsMn am 01. April 2008, 17:37:17
Gibt es irgendwo eine spielbare MM-Demo?(erlaubt und kostenlos wär natürlich am Besten)Oder zumindest die Original-Version nur für mehrere Computersysteme?(Ist das nicht Abandonware)
Titel: Re: Hilfe für edna_mausi
Beitrag von: Timer am 01. April 2008, 17:46:07
Maniac Mansion Deluxe ist ein 1:1 Remake des original MMs, nur mit verbesserten Grafiken. Das kannst du frei auf der MMM-Homepage herunterladen.
Oder legst du wert auf EGA-Grafiken?
Titel: Re: Hilfe für edna_mausi
Beitrag von: NsMn am 01. April 2008, 17:50:07
Nein,Ich mag MMD nicht,weil da nette Eastereggs und das Original-16-BefehlGui fehlt :'(
Titel: Re: Hilfe für edna_mausi
Beitrag von: Mister L am 01. April 2008, 19:49:07
Eine spielbare Demo gab es (soviel ich weiß) nie, nur eine selbstlaufende.
Das original MM gibt's nicht als Freeware. So "nett" ist LucasArts leider nicht...  :P
Hast du Dott? Da isses mit drin.  :-\

Auf "youtube" findest du auch einige Ingame-Videos von MM.
Titel: Re: Hilfe für edna_mausi
Beitrag von: NsMn am 03. April 2008, 16:46:33
Aha.Nächste Frage(passt aber hier eigentlich nicht hin):Gibt es auch Engines wie AGS für andere Genres?
Titel: Re: Hilfe für edna_mausi
Beitrag von: Mister L am 04. April 2008, 00:27:44
Sicherlich.
Nur kenne ich keine, die so gut wie AGS und völlig kostenfrei sind.  :-\

Hier gibt's was für Jump-n-Run:
http://www.clickteam.com/eng/tgf2.php

Für Rollenspiele soll der RPG-Maker 2000 sehr gut sein:
http://rpg2000.4players.de/

Der ist leider auch nicht mehr umsonst zu haben.  :P
Titel: Re: Hilfe für edna_mausi
Beitrag von: NsMn am 05. April 2008, 20:51:45
Schade.Nächstes ;D
Bei "Maniac Mansion the new Saga"(Rubacant benutzt doch AGS,oder?)habe ich gesehen,das man da eigene Sachen eingeben konnte,die der Character bei einem Dialog sagt.Ist sowas schwierig zu bewerkstelligen?
Titel: Re: Hilfe für edna_mausi
Beitrag von: Bòógieman am 06. April 2008, 16:40:46
hä?!?
was meinst du mit "eigene sachen eingeben"? 
eine texteingabe zur spielzeit, oder wie? ???
Titel: Re: Hilfe für edna_mausi
Beitrag von: fireorange am 06. April 2008, 16:44:09
Er meint Dialogtexte eingeben. Natürlich wäre das möglich, man kann ja auch Passwörter per Texteingabe einbauen. Allerdings wäre das bei Dialogen sicher etwas schwieriger.
Titel: Re: Hilfe für edna_mausi
Beitrag von: NsMn am 06. April 2008, 17:00:26
Und wie geht das bei Passwörtern?
Titel: Re: Hilfe für edna_mausi
Beitrag von: fireorange am 06. April 2008, 17:08:45
Ich kenns nur mit folgendem Skript, dabei würde sich dann so eine Eingabe-Box öffnen:

string eingabe;
InputBox("Passwort:",eingabe);
if(!StrCaseComp("Ednamausi",eingabe)) {
  SetGlobalInt(118, 1);
 // beliebige Aktion hier einsetzen
}
else {
 // beliebige Aktion hier einsetzen


In diesem Fall ist Ednamausi das richtige Passwort. Das klappt soweit ich weiß aber net mit mehreren Eingabgemöglichkeiten, d.h. nach diesem Skript würde jede andere Eingabe zu ein- und derselben Aktion führen.
Titel: Re: Hilfe für edna_mausi
Beitrag von: NsMn am 06. April 2008, 19:49:49
Das geht schon mit anderen Passwörtern,man muss nur ein anderes GI verwenden.
Titel: Re: Hilfe für edna_mausi
Beitrag von: NsMn am 09. April 2008, 18:00:39
Hier noch das Script:
string eingabe;
InputBox("Passwort:",eingabe);
if(!StrCaseComp("Ednamausi",eingabe)) {
  SetGlobalInt(118, 1);
player.Say("Richtig.");
}
if(!StrCaseComp("Kaktus",eingabe)) {
  SetGlobalInt(119, 1);
player.Say("Ein anderes Passwort.");
}
else {
player.Say("Falsch.");
}

Titel: Re: Hilfe für edna_mausi
Beitrag von: Kaktus am 09. April 2008, 18:59:28
string eingabe;
InputBox("Passwort:",eingabe);
if(!StrCaseComp("Ednamausi",eingabe)) {
  SetGlobalInt(118, 1);
player.Say("Richtig.");
}
if(!StrCaseComp("Ednamausi",eingabe)) {
  SetGlobalInt(119, 1);
player.Say("Ein anderes Passwort.");
}
else {
player.Say("Falsch.");
}
Wieso sind die fettmarkierten Zeilen gleich? Ist das so beabsichtigt? Wenn ja, würde eine Schleife doch reichen.
Titel: Re: Hilfe für edna_mausi
Beitrag von: NsMn am 09. April 2008, 19:47:49
Jetzt müsste es stimmen ;)
Titel: Re: Hilfe für edna_mausi
Beitrag von: 1mal_volltanken am 10. April 2008, 02:26:24
Bei Passwörtern oder allgemein, wo nur eine Lösungsform in Frage käme, ist so ein Input durchaus praktisch. Bei Dialogen würde ich dazu nicht unbedingt raten, vor allen Dingen weiss der Spieler dann ja nicht, was er alles eingeben soll und zudem musst Du dann auch sämtliche Möglichkeiten von Dialogeingaben einzeln programmieren...also quasi fast bis ins unendliche.


Was den RPG-Maker anbetrifft hatte ich den vor einiger Zeit auch noch auf meiner Platte gehabt. Allerdings knüpft der Stil schon sehr stark an alte Zelda-Spiele an und für die Gestaltung sind die Möglichkeiten eher begrenzt. Also für echte Rollenspieler ist dies nicht unbedingt der Brüller. Da würd ich eher Neverwinter Nights empfehlen (was allerdings auch erst käuflich zu erwerben ist), da es auch auf einem modernen Rollenspiel basiert und zudem kommt natürlich auch das D&D-Regelsystem zum tragen.
Optimal fänd ich noch so einen RPG-Maker, der von der Bedienoberfläche AGS ähnelt, womit sich zudem auch noch ein eigenes System programmieren lässt. Wär Ideal. Wer weiss, vielleicht kommt sowas ja noch. Wenn ich mich besser mit Programmiersprachen auskennen würde, würd ich mich evtl. sogar selbst daran setzen. Aber allenfalls kenn ich nur ein paar Java-Befehle, ein bisschen CSS und noch die letzten Bruchstücke vom C64-Basic!  ;D


Greetz,
der Volltanker
Titel: Re: Hilfe für edna_mausi
Beitrag von: Link2005 am 10. April 2008, 14:09:05
@Volltankinator: Ich kann auch etwas Basic. Vllt mach ich mal ein Quiz dazu.
Titel: Re: Hilfe für edna_mausi
Beitrag von: NsMn am 21. April 2008, 16:08:52
g
Titel: Re: Hilfe für edna_mausi
Beitrag von: NsMn am 25. April 2008, 14:40:51
Ok,gut.Vielleicht kaufe ich mir mal ein C++-Lernpaket.
Edit:Hey,ich hab herausgefunden wie man in die Starterpacks neue Steuerverben-GUIs erstellt!Meint ihr,dass das einem toturial würdig ist?
Titel: Re: Hilfe für edna_mausi
Beitrag von: NsMn am 25. Mai 2008, 08:06:39
Ich habe ein neues problem:
Ich möchte in einem Dialog eine Option erst später einschalten.also habe ich das häkchen bei "Show"entfernt und habe dann im Script "option on" geschrieben.aber die Option wird nicht eingeschalten!Woran liegt das?
Titel: Re: Hilfe für edna_mausi
Beitrag von: SeltsamMitHut am 25. Mai 2008, 14:09:39
Hast du auch den richtigen Befehl genutzt? Also "option-on 2" im Dialog-Script oder "dialog[4].SetOptionState(2, eOptionOn);" im normalen Script?
Wenn ja, dann könnte es sein, dass du die Option vorher für immer ausgeschaltet hast. Z.B. mit "option-off forever".
Anders kann ich mir das nicht erklären. :P
Titel: Re: Hilfe für edna_mausi
Beitrag von: KhrisMUC am 29. Mai 2008, 22:46:37
Wo ich gerade den thread nochmal durchlese:
Rubacant benutzt "show the text parser with this topic's options".
In der Dialogauswahl ist dann ganz unten ein Eingabefeld, dessen Inhalt über dialog_request und Said() abgefragt werden kann.
Titel: Re: Hilfe für edna_mausi
Beitrag von: NsMn am 13. Juni 2008, 17:09:56
Gut,danke.Könnte man vielleicht als easteregg einbauen.
Nächstes:Gibt es ein modul,PlugIn oder ein paar spezifische Befehle für "Action"-szenen?
ich möchte ein paar Action-Szenen wie Kämpfe oder Jahrmarktspiele(wie in Indy oder SaM)in die epi reinbasteln.
Titel: Re: Hilfe für edna_mausi
Beitrag von: KhrisMUC am 13. Juni 2008, 19:32:27
Soweit ich weiß gibt es tatsächlich ein Modul für Indy-Kämpfe, da müsstest Du mal im AGS-Forum suchen.

"Spezifische Befehle" gibt es nicht, das berühmte Whack-A-Rat z.B. lässt sich relativ einfach mit Timern, Random und on_mouse_click realisieren; auch bei Minigames wird nur mit Wasser gekocht.
Titel: Re: Hilfe für edna_mausi
Beitrag von: NsMn am 13. Juni 2008, 20:03:46
"Spezifische Befehle" gibt es nicht, das berühmte Whack-A-Rat z.B. lässt sich relativ einfach mit Timern, Random und on_mouse_click realisieren; auch bei Minigames wird nur mit Wasser gekocht.
Kannst du mir da mal ein beispiel angeben?
Titel: Re: Hilfe für edna_mausi
Beitrag von: KhrisMUC am 13. Juni 2008, 20:26:57
Joa, äh

int rat;

function repeatedly_execute() {

  if (IsTimerExpired(1)) {
    if (object[rat].Frame==6) {
      object[rat].Animate(...); // zurück ins Loch
      rat=Random(8);
      SetTimer(1, Random(3)*40+40);
    }
    else {
      object[rat].Animate(...);  // raus ausm Loch
      SetTimer(1, Random(3)*40+40);
    }
  }
}

int score;

function on_mouse_click(mouseButton button) {
  if (button==eMouseLeft) {
    int x=mouse.x/70;
    int y=mouse.y/70;
    oHammer.SetPosition(x,y);
    oHammer.Animate(...);
    if (x*3+y == rat) {
      object[rat].Animate(...);
      score+=10;
    }
  }
}

GANZ grob.
Titel: Re: Hilfe für edna_mausi
Beitrag von: NsMn am 25. August 2008, 11:39:40
Wenn ich SetPlayer oder SetasPlayer benutze,wechselt der aktuelle Char zu dem Raum,in dem sich der andere befindet,statt zum NPC zu werden.Wie kann man das reparieren?
Titel: Re: Hilfe für edna_mausi
Beitrag von: KhrisMUC am 25. August 2008, 16:48:33
Gute Frage... Wie hast Du es denn kaputtgemacht?
Titel: Re: Hilfe für edna_mausi
Beitrag von: NsMn am 25. August 2008, 17:29:24
Ach,jetzt weiß ich es.Ich habe es in eine Bedingung gesteckt,in der der Character,der sowieso der Spieler ist,abgefragt wird(also ob er der Spieler ist,das habe ich für eine Char-Switch-Funktion gebraucht)Hat sich erledigt.
Bloß das mit dem Inventory-an-anderen-geben,also das der andere es im Inventar hat,hätte ich gern nochmal erklärt...
Titel: Re: Hilfe für edna_mausi
Beitrag von: NsMn am 20. September 2008, 14:29:51
So,hätt dann mal wieder ne Frage-ist es möglich,die Momentane Richtung,in die der Player schaut(also was mit FaceDirection gesetzt wird)abzufragen bzw. in einer Variablen zu speichern?
Titel: Re: Hilfe für edna_mausi
Beitrag von: Bòógieman am 20. September 2008, 19:11:14
player.Loop
0 = down
1 = left
2 = right
3 = up
Titel: Re: Hilfe für edna_mausi
Beitrag von: NsMn am 20. September 2008, 19:26:12
Supi!Danke!
Titel: Re: Hilfe für edna_mausi
Beitrag von: NsMn am 21. September 2008, 17:30:33
Aber da wäre noch was:Ich würde gerne,wenn man ein Item benutzt,den Cursor ändern.Ich hab schon jede menge probiert,bin aber daran gescheitert,dass es bei Items kein "Any Click on Inventory Item" gibt.
Titel: Re: Hilfe für edna_mausi
Beitrag von: KhrisMUC am 23. September 2008, 01:21:24
Ändere mal den Cursor Nr. 4 (Use inv). Das sollte reichen.
Titel: Re: Hilfe für edna_mausi
Beitrag von: NsMn am 23. September 2008, 15:09:07
Er sollja entsprechend bei jedem Item geändert werden.
Titel: Re: Hilfe für edna_mausi
Beitrag von: LilaQ am 23. September 2008, 15:27:23
Bei jedem Item ein anderer Cursor? Welchen Sinn macht das?

Wenn du nur möchtest dass der Cursor zu der Grafik vom Inventar Item wechselt dann solltest du dir mal die Funktion "Use Inventory Graphics as Cursur" (o.ä.) in den Haupteinstellungen im AGS angucken.

Mfg
LilaQ
Titel: Re: Hilfe für edna_mausi
Beitrag von: NsMn am 23. September 2008, 15:52:10
er soll aber nicht die invetnory-grafik benutzen,sondern eine andere.
Titel: Re: Hilfe für edna_mausi
Beitrag von: LilaQ am 23. September 2008, 15:58:05
Dann wirst du es per

mouse.ChangeModeView(eModeUseinv, iViewID);
machen müssen.


Mfg
LilaQ
Titel: Re: Hilfe für edna_mausi
Beitrag von: NsMn am 23. September 2008, 15:59:40
ABER WO?! ich sags nochmal:Das müsste ich bei einem Click auf ein Item machen,ABER:
Ich hab schon jede menge probiert,bin aber daran gescheitert,dass es bei Items kein "Any Click on Inventory Item" gibt.
Titel: Re: Hilfe für edna_mausi
Beitrag von: LilaQ am 23. September 2008, 17:45:34
Soll er den Cursor nur beim "Benutze" ändern?

Edit:

Such mal im GS nach "// use or give inventory item". Da würde ich es dann per

if (player.activeinv == 123) mouse.ChangeModeView(eModeUseinv, 321);
else if (player.activeinv == 124) mouse.ChangeModeView(eModeUseinv, 322);
...

mal probieren. *ungetestet*

Mfg
LilaQ
Titel: Re: Hilfe für edna_mausi
Beitrag von: KhrisMUC am 24. September 2008, 02:08:50
Was für Grafiken sollen denn als Cursor verwendet werden? Für jeden Inventargegenstand eine andere? Eine Miniaturversion mit Kreuz oder was?
Bissl mehr Info, dann können wir auch besser helfen.
Titel: Re: Hilfe für edna_mausi
Beitrag von: NsMn am 24. September 2008, 13:39:45
Für jeden Inventargegenstand eine andere?

Genau,aber ich dachte,das hätte ich schon erwähnt.
Titel: Re: Hilfe für edna_mausi
Beitrag von: KhrisMUC am 24. September 2008, 14:13:41
Such Dir einen freien Bereich Spriteslotnummern, z.B. 801-840.
Dann änderst Du die Nummer von jedem Inventarspritecursor auf InventarItem-Nr. + 800.

In repeatedly_execute fügst Du ein:
  InventoryItem*ii = player.ActiveInventory;
  if (ii != null) mouse.ChangeModeGraphic(mouse.Mode, ii.ID+800);
Titel: Re: Hilfe für edna_mausi
Beitrag von: NsMn am 24. September 2008, 15:16:01
Danke!Damit hast du mir gleich die Frage vorneweggenommen,wie man eine Abfrage mit "nicht gleich" macht!

PS:Ts,ts,"mouse"muss groß sein.Und so jemand nennt sich AGS-Spezialist ;)
Titel: Re: Hilfe für edna_mausi
Beitrag von: KhrisMUC am 24. September 2008, 15:40:05
Nein, "mouse" muss nicht groß sein. "Mouse" ist der Name der Klasse, "mouse" der Name der Instanz dieser Klasse, die auf den Mauszeiger verweist. Da es nur einen gibt, ist es aber tatsächlich in genau diesem einen Fall egal, ob man "Mouse" oder "mouse" benutzt. Trotzdem ist "mouse" korrekt und funktioniert deswegen auch.
Hast Du denn eine Fehlermeldung bekommen?