Seite 3 von 4
Verfasst: 13.04.2006, 20:56
von Rocco
ok, habs auf der MMM seite dazuverlinkt, jetzt brauchen wir bald eine eigene seite, allein für die sydstarterpacks und deren mutationen
Verfasst: 14.04.2006, 17:50
von KhrisMUC
Wow, mit dieser ernormen Resonanz hätt' ich garnicht gerechnet...
Im Ernst, wär schön, wenn Leute, die es ausprobiert haben, hier ein kurzes Statement ablassen, ob sie Schwierigkeiten hatten oder nicht oder ob sie Fehler gefunden haben.
Verfasst: 14.04.2006, 17:56
von Mister L
Ich werde wohl erst am Wochenende dazu kommen, mir alles genau anzusehen. Einigen Anderen dürfte es ähnlich gehen.
Das Feedback kommt sicher noch.
Ein wenig Geduld bitte.
Vielleicht könnte Rocco den Download-Link noch auf der "news"-Seite eintragen, dann werden noch mehr Leute darauf aufmerksam.
Verfasst: 14.04.2006, 19:11
von Darth Conan
Rocco hat geschrieben:jetzt brauchen wir bald eine eigene seite, allein für die sydstarterpacks und deren mutationen
Ja genau! Demnächst gibts dann wohl noch meine Syd+Achmed+Sakura+ATM-Bank-Sydstarterpackmutation.
Danach wohl noch Syd+Achmed+Sakura+ATM+PizzaShack+InspectorWohnung.
Und was weis ich noch.
Hat jemand noch Ideen?
Verfasst: 16.04.2006, 14:37
von Mister L
So, ich habe mir die einzelnen Funktionen jetzt mal näher angesehen. Das ganze ist wirklich sehr flexibel und umfangreich. Gute Arbeit, Khrismuc!
2 Fragen hätte ich allerdings noch:
1.Wenn ich nach dem Intro mit dem Mauszeiger auf die charakter-Schaltfläche komme stürtz das Spiel ab. Wie kann man das verhindern, wenn man z.B. im ersten Teil des Spiel nur eine Figur steuern will?
2. Wie kann man am Besten beim Interagieren mit Objekten oder Personen, unterschiedliche Kommentare abrufen, je nachdem welche Figur man steuert?
Verfasst: 16.04.2006, 14:55
von KhrisMUC
Danke, hat mich auch ein paar Stunden gekostet.
1. Fehlermeldung?
2. if (player==cSyd) { ... } else if (player==cDave) { ... } usw.
Wenn es nur um beschreibende Sätze geht, könnte man z.B. Folgendes benutzen:
Code: Alles auswählen
//global script
function playersay(String text) {
String pl=text.Truncate(2);
String te=text.Substring(2, text.Length-3);
if (pl=="D:" && player==cDave) player.Say(te);
else if (pl=="S:" && player==cSyd) player.Say(te);
else if (pl!="D:" && pl!="S:") player.Say(text);
}
// LOOK_AT Gegenstand
playersay("S:Das ist mein Keyboard.");
playersay("D:Das ist Syd's Keyboard.");
playersay("Das ist ein Keyboard.");
Jetzt sagen Dave und Syd jeweils ihre Sätze, jeder andere den dritten.
Verfasst: 16.04.2006, 15:06
von Mister L
Ja, jetzt wo ich es mir genau angeshen habe, kann ich mir in etwa vorstellen, wieviel Arbeit da drin steckt.
Die Fehlermeldung kommt bei mir direkt nach Syds Anfangstext.
Wenn man das Starterpack anspielt ohne was verändert zu haben. Wenn man den Mauszeiger auf die Stelle zieht, wo später die Character-icons erscheinen, stürzt das Spiel ab.
EDIT: Habe ich jetzt aber mit "SetPlayer (cSyd)" in den Griff bekommmen.
Jetzt fehlt mir noch der Code, um den GIVE_TO Befehl einsetzen zu können...
Verfasst: 16.04.2006, 16:08
von KhrisMUC
Ja, Mist, ganz zu Anfang sind die Buttons Visible, obwohl noch keine Charaktere drauf sind, deswegen ruft UpdateActionBar() character[-1] auf -> array out of bounds-Fehler.
Korrekt, ein SetPlayer() behebt das.
Das korrigierte Starterpack ist
hier.
Wie man GIVE_TO benutzt, habe ich
hier gepostet.
Es geht nicht direkt in
any click on character, sondern (IMO wesentlich eleganter) über
use inv on char.
Wie woanders schonmal beschrieben, muss man für die ursprüngliche MM-Funktionalität (kommentarloses Übergeben des Gegenstandes) lediglich im betreffenden Code die 6 erhöhen bzw. durch >=0 ersetzen, sonst kann man nur zwischen den Charakteren 0-5 Gegenstände austauschen. Allerdings kann man dann jedem Charakter jeden Gegenstand geben, d.h. dieser verschwindet, wenn der Char nicht steuerbar ist.
Verfasst: 16.04.2006, 17:17
von Mister L
Ich habe jetzt mal deine "GIVE_TO"-Lösung ausprobiert. Klappt auch sehr gut, nur gibt es dann ein Problem mit der "Benutze"-Funktion, wenn man die Gegenstände mit der Figur benutzt und nicht gibt.
Ich habe das jetzt so gelöst:
Code: Alles auswählen
if (ItemGiven==1) {
player.Say("Hier, nimm den Luckenöffner(TM).");
LoseInventory(ItemGiven);
AddInventoryToCharacter(SANDY, ItemGiven);
cSandy.Say("Gib' her.");
}
else if (character [GetPlayerCharacter ()].activeinv == 1) {
player.Say("Ich sollte ihn ihr geben.");
}
else {
player.Say("Kannst du das gebrauchen?");
cSandy.Say("Nö.");
}
Oder gibt es da eine elegantere Lösung?
Verfasst: 17.04.2006, 02:13
von KhrisMUC
Der Sinn des Ganzen war ja unter Anderen, zwischen Geben und Benutzen explizit zu unterscheiden.
Schließlich sollte "Gib Vorschlaghammer an PaCDK-Fan" etwas anderes bewirken als "Benutze Vorschlaghammer mit PaCDK-Fan".
Wegen dieser Zeile:
Code: Alles auswählen
ItemGiven = character [GetPlayerCharacter ()].activeinv;
dürfte Dein else-Statement nie aufgerufen werden.
Verfasst: 17.04.2006, 02:47
von Mister L
Ja, bei "GIVE_TO" erscheint meine "Else" ja auch nicht.
Wenn ich aber im Spiel einen Inventargegenstand mit einem Spielcharacter "benutzte" und nicht "gebe" kommt auch der Dialog (Willst du das haben - nö).
Dann wäre es im Spiel so, dass z.B. Sandy bei "benutzte Gegenstand" sagt, dass sie ihn nicht will...
...aber bei "gib Gegenstand" sagt, dass sie ihn gerne nimmt.
Das macht ja dann auch keinen Sinn, oder stimmt dann mein Code im GlobalScript nicht?
Liegt's evtl. daran, dass ((GSagsusedmode == 4) im GlobalScript an 2 Stellen auftaucht?
Ich wüsste aber nicht wie und was man da noch ändern müsste.
Wir müssen das alles wohl noch idiotensicherer machen...
Verfasst: 17.04.2006, 11:44
von Guybrush Marley
Ich fände es nicht schlecht wenn man bei einigen Episoden den Charakter wie beim Orginal MM selber am Anfang wählen könnte. Das ist aber natürlich nur bei Episoden sinnvoll, die sich nicht auf eine Person konzentriert. Zb die MMM Clicke fährt Campen und der Spieler kann aussuchen wer mitfährt, da würde es was bringen. Auch nicht schlecht wäre, wenn ein Charakter Hilfe braucht und man per Telfon einen oder 2 Charkter seiner Wahl anrufen könnte um sie anzufordern.
Verfasst: 17.04.2006, 11:57
von lord.of.destruction
Wäre schon 'ne coole Idee. Ich kenne mich nicht nicht mit AGS aus, aber würde sofort eine Episode mit dieser Möglichkeit downloaden.
Verfasst: 17.04.2006, 13:52
von Mister L
Genau das ist mit diesem Starterpack kein Problem. Man kann hier praktisch jede Figur als Spielcharakter auswählen bzw. erstellen.
Einen Auswahlscreen müsste man dann noch basteln.
Allerdings wäre eine solche Episode seeeehr anspruchsvoll.
Schließlich erwartet die MMM-Gemeinde dann zu jedem Charakter auch entsprechende Kommentare und Aktionen.
Bei einer Episode a la MMD, die man durchspielen kann ohne überhaupt alle wählbaren Figuren zu benutzen, steht der Aufwand kaum im Verhältnis zum Nutzen.
Sobald ich alle Funktioen drauf habe, mache ich evtl. mal eine Demo oder Mini-Episode mit Auswahlscreen. Mal sehen...
Verfasst: 17.04.2006, 19:29
von KhrisMUC
Mister L hat geschrieben:Ja, bei "GIVE_TO" erscheint meine "Else" ja auch nicht.
Stimmt, sorry. Habs mir angeschaut. Bei Benutze
und Gib wird die
inv on char-I aufgerufen, und dann noch die
any click on char-I hinterher.
Außerdem verursacht ein
unhandled_event in letzterer, dass das Spiel abstürzt, wenn die Maus nicht mehr über dem angeklickten Char ist.
Mister L hat geschrieben:Liegt's evtl. daran, dass ((GSagsusedmode == 4) im GlobalScript an 2 Stellen auftaucht?
Teilweise, es taucht zum zweiten Mal eben in der unhandled_event auf.
Meine GIVE_TO-Anleitung muss somit gründlich überarbeitet werden, würde ich sagen
Ich schau's mir heute noch an.