Dott Interface mit Character-Wahl?

Das Mitmach-Projekt aus dem Maniac-Mansion-Universum.

Brauchen wir ein Starterpack mit Charakterwechsel?

Jajajaja - unbedingt!
14
70%
Nein! Bloß nicht!
0
Keine Stimmen
Egal, soll sich doch jeder selber skripten...
6
30%
 
Insgesamt abgegebene Stimmen: 20

Benutzeravatar
Mister L
Rätselmeister
Rätselmeister
Beiträge: 1913
Registriert: 21.03.2005, 01:55
Kontaktdaten:

Dott Interface mit Character-Wahl?

Beitrag von Mister L »

Ich weiß, dass dieses Thema schon öfters behandelt wurde, und es gibt auch gute Tipps im AGS-Forum, wie man GUI-Buttons zum Wechsel der Spielfigur anlegen kann, nur...

...könnte sich evtl. einer unserer AGS Profis dazu überreden lassen, eins der Starterpacks entsprechend umzubauen?

Das würde sicher von vielen Leuten genutzt werden und uns noch abwechlungsreichere Episoden bescheren. :idea:
My MMM-Episodes: #7 "Right said Fred", #32 "Secret of Maniac Mansion", # 33 "Carry on Smiley", H05 "Escape from Maniac Mansion", #45 "Maniac Monday", #54 "CSI:RONVILLE", #58 "The People's Court", #70 "Maniac Mansion Begins", #74 "The Curse of King RootenTooten", #93 "Murder a.t. Moonshine Mansion"
Benutzeravatar
AlWes
Tastatursteuerer
Tastatursteuerer
Beiträge: 667
Registriert: 18.01.2006, 13:51
Wohnort: An den Seen

Beitrag von AlWes »

Das wäre eine super Sache.
Benutzeravatar
Kate
Hobby-Archäologe
Hobby-Archäologe
Beiträge: 173
Registriert: 13.07.2005, 10:52
Wohnort: Springe

Beitrag von Kate »

Aber wie geht das allgemein? Man will ja nur bestimmte Figuren wechseln. Im Starter-Pack von LucasFan sind auch noch Reste eines Charakterwechsels übrig, oder so, weiß jetzt nicht, wie ich das beschreiben soll, aber wenn man einen neuen Button anlegt, ist der irgendwie für den Charakterwechsel gedacht. Sind wohl noch von Maniac Mansion Deluxe übrig. Da ich ja schon mal nen Charakterwechsel gemacht habe, weiß ich, wie man das programmiert. Weiß halt jetzt nur nicht, wie man das allgemein gestalten könnte. Ansonsten könnte ich das machen, aber es gibt glaube ich noch fähigere Scripter als mich.
GRRRRR AAARGGGHH
Benutzeravatar
Mister L
Rätselmeister
Rätselmeister
Beiträge: 1913
Registriert: 21.03.2005, 01:55
Kontaktdaten:

Beitrag von Mister L »

Naja, da ich nicht genau weiß wie es geht, stell ich mir das so vor:

Es gibt ein Starterpack bei dem 3 Figuren fest integriert sind. (Z.B. Dave, Bernard und Razor), wenn man aber eine Episode mit Jeff, Wendy und Syd machen will, müsste man ja nur die Bildchen in der GUI austauschen und im Skript die Namen ändern.

Das würde ich auch AGS-einsteigern zutrauen.

Wenn das jetzt totaler Blödsinn ist, sagt es mir, ich weiß es nicht besser. :wink:
My MMM-Episodes: #7 "Right said Fred", #32 "Secret of Maniac Mansion", # 33 "Carry on Smiley", H05 "Escape from Maniac Mansion", #45 "Maniac Monday", #54 "CSI:RONVILLE", #58 "The People's Court", #70 "Maniac Mansion Begins", #74 "The Curse of King RootenTooten", #93 "Murder a.t. Moonshine Mansion"
Benutzeravatar
Kate
Hobby-Archäologe
Hobby-Archäologe
Beiträge: 173
Registriert: 13.07.2005, 10:52
Wohnort: Springe

Beitrag von Kate »

Ich probier's mal aus.
GRRRRR AAARGGGHH
Benutzeravatar
Mister L
Rätselmeister
Rätselmeister
Beiträge: 1913
Registriert: 21.03.2005, 01:55
Kontaktdaten:

Beitrag von Mister L »

Kate, das wäre echt genial! :D
My MMM-Episodes: #7 "Right said Fred", #32 "Secret of Maniac Mansion", # 33 "Carry on Smiley", H05 "Escape from Maniac Mansion", #45 "Maniac Monday", #54 "CSI:RONVILLE", #58 "The People's Court", #70 "Maniac Mansion Begins", #74 "The Curse of King RootenTooten", #93 "Murder a.t. Moonshine Mansion"
Bòógieman
Süßwasserpirat
Süßwasserpirat
Beiträge: 427
Registriert: 16.01.2006, 19:21
Kontaktdaten:

Beitrag von Bòógieman »

hab zwar jetzt kein AGS zur hand um nachzuschauen, aber ich schätze mal, dass man den wechsel auch über die character-ID machen könnte (oder mit einem character-pointer)
also braucht man ja nur pro figur eine globale variable (int für ID oder halt pointer)

dann könnte man die ganzen wechselfunktionen absolut allgemein halten.
der episoden-bastler bräuchte wirklich nur noch das bild austauschen und halt den variablen die entsprechenden figuren zuweisen :wink:

ungefähr so (das is jetzt rein aus dem stehgreif programmiert um die struktur zu verdeutlichen, der code selbst wird nicht funktionieren):

int playerID1;
int playerID2;
int playerID3;

function setPlayer(int playerID)
{
...
}

bei button für figur 1:
setPlayer(playerID1);

bei button für figur 2:
setPlayer(playerID2);

bei button für figur 3:
setPlayer(playerID3);


der episoden-programmierer müsste dann eigentlich nur noch folgendes machen:
playerID1 = cSyd.ID;
playerID2 = cDave.ID;
playerID3 = cMichael.ID;
_________________________________

Visit Bòógieman's Halls Of Illusions
_________________________________

---- Ende der Kommunikation ----
Benutzeravatar
Kate
Hobby-Archäologe
Hobby-Archäologe
Beiträge: 173
Registriert: 13.07.2005, 10:52
Wohnort: Springe

Beitrag von Kate »

ja, äh, ich gucke mir das mal an. Aber für welches Starter-Pack soll ich das machen, bzw. welche AGS-Version. Gibt doch schon wieder ein neues, oder?
GRRRRR AAARGGGHH
Tribble
Tastatursteuerer
Tastatursteuerer
Beiträge: 593
Registriert: 22.10.2004, 13:15

Beitrag von Tribble »

Welches Staterpack ist wohl egal, denn eigentlich geht es hier ja nur um ein neues GUI. Und welche version... Alle?
Habe MMM-Episoden gemacht. Sag aber nicht welche.
Benutzeravatar
Mister L
Rätselmeister
Rätselmeister
Beiträge: 1913
Registriert: 21.03.2005, 01:55
Kontaktdaten:

Beitrag von Mister L »

Ähm, ich könnte da das "Syd Starterpack" empfehlen :wink: , dass gibt es als einziges für die letzten drei AGS-Versionen.
Wenn du es für AGS 2.62 machst, muss Rocco es wieder für die neuen Verisonen updaten! :twisted: :twisted: :wink:

Tribble hat natürlich Recht. Eine fertige GUI könnte man sicher in alle Versionen importieren.
My MMM-Episodes: #7 "Right said Fred", #32 "Secret of Maniac Mansion", # 33 "Carry on Smiley", H05 "Escape from Maniac Mansion", #45 "Maniac Monday", #54 "CSI:RONVILLE", #58 "The People's Court", #70 "Maniac Mansion Begins", #74 "The Curse of King RootenTooten", #93 "Murder a.t. Moonshine Mansion"
Benutzeravatar
Kate
Hobby-Archäologe
Hobby-Archäologe
Beiträge: 173
Registriert: 13.07.2005, 10:52
Wohnort: Springe

Beitrag von Kate »

Ich glaube nicht, dass das Starter-Pack egal ist. Denn, wenn ein Anfänger zum Beilspiel eine Episode im Wendyhaus spielen will, aber mit drei Charakteren, und das geht nur im Bernard-Haus, dann wird's schwierig. Gut, ich versuch's mal mit Syd
GRRRRR AAARGGGHH
Benutzeravatar
Rocco
Adventure-Treff
Adventure-Treff
Beiträge: 1019
Registriert: 25.11.2003, 16:20
Wohnort: Ronville
Kontaktdaten:

Beitrag von Rocco »

ich würd ein modul vorschlagen, dass kann dann jeder integrieren wenn er es braucht, unabhängig vom starterpäck.
wäre wohl das vernünftigste.
momentan hab ich leider (zum glück) viel arbeit, deswegen hab ich keine zeit dafür, aber wenns nicht so dringend ist schau ich mir das an, sobald ich ein bischen luft habe.
Benutzeravatar
KhrisMUC
Adventure-Gott
Adventure-Gott
Beiträge: 4674
Registriert: 14.03.2005, 00:55
Wohnort: München

Beitrag von KhrisMUC »

So, bin endlich fertig :)

1. MAINGUI auswählen
Inventarfenster anklicken und Width auf 125 setzen.
Daneben zwei Buttons erstellen.
-Nr. 12: Script name cc1, Position 290:10, Größe 30x24, Text löschen, Left Click: Run script, Click anklicken -> OK
-Nr. 13: Script name cc2, Position 290:35, Größe 30x24, Text löschen, Left Click: Run script, Click anklicken -> OK

2. Doppelklick auf den oberen Button, Scriptfenster wieder schließen, Doppelklick auf den unteren Button und Code eintragen
Das sollte dann so aussehen:

Code: Alles auswählen

#sectionstart cc1_Click  // DO NOT EDIT OR REMOVE THIS LINE
function cc1_Click(GUIControl *control, MouseButton button) {
  Character *swap;
  swap=cc_char[1];
  cc_char[1]=player;
  UpdateButtons(null);
  SetPlayer(swap.ID);
}
#sectionend cc1_Click  // DO NOT EDIT OR REMOVE THIS LINE

#sectionstart cc2_Click  // DO NOT EDIT OR REMOVE THIS LINE
function cc2_Click(GUIControl *control, MouseButton button) {
  Character *swap;
  swap=cc_char[2];
  cc_char[2]=player;
  UpdateButtons(null);
  SetPlayer(swap.ID);
}
#sectionend cc2_Click  // DO NOT EDIT OR REMOVE THIS LINE
3. In der game_start z.B. Folgendes einfügen:

Code: Alles auswählen

  cc_busp[cSyd.ID]=874;
  cc_busp[cAchmed.ID]=875;
  cc_busp[cAsh.ID]=876;
Damit werden den Charakteren die Knopf-Sprites zugeordnet.
Bild Bild Bild

4. Die Funktion UpdateActionBar() muss leicht angepasst werden:

Code: Alles auswählen

  if (GlobalCondition (5) == 1)
  {
    // write SWITCH TO CHAR
    action = A_SWITCH_TO;
    if (GetGUIObjectAt (mouse.x, mouse.y) == 12)
    {
      StrCopy (objects, cc_char[1].name);           // <--- bei mir Zeile 411
    }
    else
    {
      StrCopy (objects, cc_char[2].name);           // <--- bzw. Zeile 415
    }
  }
5. Modul importieren

-AddChangePlayer(Character)
Fügt einen Spieler der Auswahl hinzu.

-RemoveChangePlayer(Character)
Nimmt ihn aus der Auswahl wieder weg.

(Fehler werden gehandelt, also keine Sorge ;) Ich hoffe, dass diese Anleitung und das Modul selbst fehlerfrei sind.)

Hier noch ein DEMO. (Achmed Starterpack, Wechsel zu Ash und Syd möglich.)
Zuletzt geändert von KhrisMUC am 13.04.2006, 13:50, insgesamt 2-mal geändert.
Use gopher repellent on funny little man
Benutzeravatar
Termimad
Süßwasserpirat
Süßwasserpirat
Beiträge: 310
Registriert: 04.05.2003, 01:49
Wohnort: Die Vortex

Beitrag von Termimad »

Nette Technik aber leider mit ein Bugs

Ist Syd im Flur unsichtbar
Ash sich merkwürdig verhält wenn man den Fernseher anmachen will

:D
Benutzeravatar
Kate
Hobby-Archäologe
Hobby-Archäologe
Beiträge: 173
Registriert: 13.07.2005, 10:52
Wohnort: Springe

Beitrag von Kate »

Wisst Ihr was, dann macht doch eure Sachen selber. Ich habe gesagt, ich mache das, und verschwende meine Freizeit, nur damit ein Neumalklug schnell mal was hier hinscriptet.
Das macht mir echt keinen Spaß mehr.
GRRRRR AAARGGGHH
Antworten