Dott Interface mit Character-Wahl?
- Mister L
- Rätselmeister
- Beiträge: 1913
- Registriert: 21.03.2005, 01:55
- Kontaktdaten:
Dott Interface mit Character-Wahl?
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.
...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.
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"
- Kate
- Hobby-Archäologe
- Beiträge: 173
- Registriert: 13.07.2005, 10:52
- Wohnort: Springe
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
- Mister L
- Rätselmeister
- Beiträge: 1913
- Registriert: 21.03.2005, 01:55
- Kontaktdaten:
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.
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.
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"
- Mister L
- Rätselmeister
- Beiträge: 1913
- Registriert: 21.03.2005, 01:55
- Kontaktdaten:
Kate, das wäre echt genial!
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"
-
- Süßwasserpirat
- Beiträge: 427
- Registriert: 16.01.2006, 19:21
- Kontaktdaten:
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
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;
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
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 ----
Visit Bòógieman's Halls Of Illusions
_________________________________
---- Ende der Kommunikation ----
- Mister L
- Rätselmeister
- Beiträge: 1913
- Registriert: 21.03.2005, 01:55
- Kontaktdaten:
Ähm, ich könnte da das "Syd Starterpack" empfehlen , 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!
Tribble hat natürlich Recht. Eine fertige GUI könnte man sicher in alle Versionen importieren.
Wenn du es für AGS 2.62 machst, muss Rocco es wieder für die neuen Verisonen updaten!
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"
- Kate
- Hobby-Archäologe
- Beiträge: 173
- Registriert: 13.07.2005, 10:52
- Wohnort: Springe
- Rocco
- Adventure-Treff
- Beiträge: 1019
- Registriert: 25.11.2003, 16:20
- Wohnort: Ronville
- Kontaktdaten:
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.
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.
- KhrisMUC
- Adventure-Gott
- Beiträge: 4674
- Registriert: 14.03.2005, 00:55
- Wohnort: München
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:
3. In der game_start z.B. Folgendes einfügen:
Damit werden den Charakteren die Knopf-Sprites zugeordnet.
4. Die Funktion UpdateActionBar() muss leicht angepasst werden:
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.)
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
Code: Alles auswählen
cc_busp[cSyd.ID]=874;
cc_busp[cAchmed.ID]=875;
cc_busp[cAsh.ID]=876;
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
}
}
-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
- Kate
- Hobby-Archäologe
- Beiträge: 173
- Registriert: 13.07.2005, 10:52
- Wohnort: Springe