Syd Starterpack für AGS 2.62 und 2.7 und 2.71!

Das Mitmach-Projekt aus dem Maniac-Mansion-Universum.
Benutzeravatar
Rayman
Logik-Lord
Logik-Lord
Beiträge: 1385
Registriert: 07.01.2006, 20:08

Beitrag von Rayman »

Da gibt es noch ein Problem.

Wenn vor dem S-Mart steht (also wenn man das Syd-Starterpack spielt und man verlässt die Mietswohnung) dann sagt Syd, immer "da ist der S-Mart und da drüben ist Woodys Pizza Shack!" und wenn ich diesen Skript bei "First Time player enters screen" lösche, dann entsteht eine Fehlermeldung, dass sofort das Globalskrip-Fenster geöffnet wird.

Das war bei Starterpack 2.71.
Benutzeravatar
Mister L
Rätselmeister
Rätselmeister
Beiträge: 1913
Registriert: 21.03.2005, 01:55
Kontaktdaten:

Beitrag von Mister L »

Ich hab's gerade mal probiert. Wenn ich dieses Script bei mir lösche kommt keine Fehlermeldung, auch nicht bei AGS 2.71.
Da muss bei dir was schief gelaufen sein...
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
Rayman
Logik-Lord
Logik-Lord
Beiträge: 1385
Registriert: 07.01.2006, 20:08

Beitrag von Rayman »

Das verstehe ich nicht. :roll:

Ich habe bei Room 7 "Strasse" das "First time player enters screen" gelöscht diesen Script und dann wenn ich es speichern oder testen will, dann kommt 'ne Fehlermeldung, dass ich beim Script Header was bei Zeile 94 ändern soll. :-k
Bissiger Witzbold
Tastatursteuerer
Tastatursteuerer
Beiträge: 554
Registriert: 28.09.2005, 19:13

Beitrag von Bissiger Witzbold »

Bòógieman hat geschrieben:kann es sein, dass in den starterpacks kleine fiese bugs versteckt sind, die zum absturz des spiels führen können? :shock:

[...] ich hatte gerade einen inventargegenstand angeklickt und dabei aber den mauscursor weiter bewegt
der klick hat die entsprechende funktion für die inventarklicks ausgelöst, aber als dann auf das inventarobjekt unter dem cursor zugegriffen werden sollte, war der cursor anscheinend schon wieder ausserhalb dieses objektes --> scriptfehler wegen ungültiger inventar-ID :o

anders kann ich mir diesen fehler nicht erklären, denn bisher hat dieses inventarobjekt schon ca. 1000mal problemlos funktionier :-k

ist das vielleicht schon bekannt und kann man das irgendwie verhindern :?:
Das Problem hatten wir auch schon (in allen Starterpacks). Das Script des MMM-GUIs schaut offenbar nach, welcher Inventargegenstand sich unter dem Mousecursor befindet, und wenn man die Maus beim klicken zu schnell bewegt, ist dort kein Gegenstand mehr, wenn das Script nachschaut und das Spiel stürzt ab.

Einen schmutzigen Fix haben wir für unsere neuste Folge bereits geschrieben (siehe die markierten Ergänzungen im folgenden Ausschnitt aus dem GlobalScript), hier wird abgefragt ob sich wirklich ein Gegenstand unter der Maus befindet und wenn nicht wird einfach gar nichts gemacht statt das Spiel abstürzen zu lassen.

Ganz fehlerfrei ist allerdings auch das nicht: Wenn man die Maus in der Zwischenzeit auf einen anderen Gegenstand bewegt hat, so wird dieser genommen statt dem ursprünglich ausgewählten (aber das ist ohne den Fix auch so).

--------
// if the mode is useinv and the mouse is over the active inv (like "use knife on knife")
}
else
{
used_action = global_action;
if (GetCursorMode () == 2)
{
if (isAction (A_USE) && IsInventoryInteractionAvailable (GSlocid, MODE_USE) == 1)
{
SetLabelColor (ACTION, 0, ActionLabelColorHighlighted);
RunInventoryInteraction (GSlocid, MODE_USE);
SetAction (A_DEFAULT);
}
else if (GetInvAt (mouse.x, mouse.y) >= 0) SetActiveInventory (GSlocid);
}
else
{
GSagsusedmode = GetCursorMode ();
SetLabelColor (ACTION, 0, ActionLabelColorHighlighted);
if (GetInvAt (mouse.x, mouse.y) >= 0) RunInventoryInteraction (GSlocid, GetCursorMode ());
SetAction (A_DEFAULT);
}
}
}
else if (button == RIGHTINV)
--------

Keine Garantie auf Funktionstüchtigkeit, aber bisher scheint es bei uns zu funktionieren.
"Man sollte wirklich nicht jeden Schwachsinn, den man so nebenbei erstellt, offiziell als 'Special' hier im Forum präsentieren." (Problem)
Bòógieman
Süßwasserpirat
Süßwasserpirat
Beiträge: 427
Registriert: 16.01.2006, 19:21
Kontaktdaten:

Beitrag von Bòógieman »

diese lösung ist völlig ausreichend :D
besten dank!
_________________________________

Visit Bòógieman's Halls Of Illusions
_________________________________

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

Beitrag von Mister L »

Rayman hat geschrieben:...Script Header was bei Zeile 94 ändern soll. :-k
Und was steht in Zeile 94?
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
Rayman
Logik-Lord
Logik-Lord
Beiträge: 1385
Registriert: 07.01.2006, 20:08

Beitrag von Rayman »

Auf Zeile 94 steht:

Code: Alles auswählen

import function SetDoorStrings (const string lookat,const string islocked,const string wrongitem);
Benutzeravatar
Kaktus
Tastatursteuerer
Tastatursteuerer
Beiträge: 658
Registriert: 17.02.2006, 01:45
Wohnort: Wüstä
Kontaktdaten:

Beitrag von Kaktus »

Also ich habe das mal getestet, und bei mir gab es keinen Fehler, als ich das "First time player enter room" gelöscht habe.

Es könnte sich auch um einen AGS-Bug handeln, ist bei mir auch letztens passiert, als ich ein "Run-Script" gelöscht habe.
Als ich AGS dann wieder geschlossen habe und es nochmal gelöscht habe, kam der Fehler nicht mehr.

Vergiss nie: Nobody is perfect, selbst AGS nicht ;)
Bòógieman
Süßwasserpirat
Süßwasserpirat
Beiträge: 427
Registriert: 16.01.2006, 19:21
Kontaktdaten:

Beitrag von Bòógieman »

ich habe da mal wieder ein neues "problem" mit den starterpacks
für manche charaktere (aus MMD) dürfte anscheinend eine globale behandlung für TALK_TO events existieren
dabei läuft der player-charakter gleich zum gesprächspartner
das ist aber nur bei manchen figuren so. die von mir erstellten charaktere machen das nicht.
weiß zufällig jemand, wo das im script zu finden ist?
ich würde gerne selber bestimmen, wo meine figuren vor einem dialog hinlaufen :wink:

ohne script debugger wird man da ganz schön alt beim suchen :lol:
_________________________________

Visit Bòógieman's Halls Of Illusions
_________________________________

---- Ende der Kommunikation ----
Benutzeravatar
KhrisMUC
Adventure-Gott
Adventure-Gott
Beiträge: 4674
Registriert: 14.03.2005, 00:55
Wohnort: München

Beitrag von KhrisMUC »

Habs gefunden, die entsprechende Stelle ist in der on_mouse_click und sieht so aus:

Code: Alles auswählen

    else if ((GSagsusedmode == MODE_TALK) && (IsInteractionAvailable (mouse.x, mouse.y, GSagsusedmode) == 1) && (GetCharacterAt (mouse.x, mouse.y) < 7))
    {
      SetLabelColor (ACTION, 0, ActionLabelColorHighlighted);
      if (GoToCharacter (GSlocid, 0, 1, 2)) RunCharacterInteraction (GSlocid, GSagsusedmode);
      SetAction (A_DEFAULT);
    }
Entscheidend ist hierbei das "< 7" am Ende der ersten Zeile, das bewirkt, dass der Hauptcharakter nur zu den ersten sechs anderen hinläuft.
Um selbst zu bestimmen, wo der Charakter hinläuft, muss der Code so aussehen:

Code: Alles auswählen

    else if ((GSagsusedmode == MODE_TALK) && (IsInteractionAvailable (mouse.x, mouse.y, GSagsusedmode) == 1))
    {
      SetLabelColor (ACTION, 0, ActionLabelColorHighlighted);
      RunCharacterInteraction (GSlocid, GSagsusedmode);
      SetAction (A_DEFAULT);
    }
EDIT: Stimmt, an die rechte Maustaste hab ich nicht gedacht.
Zuletzt geändert von KhrisMUC am 17.08.2006, 16:38, insgesamt 1-mal geändert.
Use gopher repellent on funny little man
Bòógieman
Süßwasserpirat
Süßwasserpirat
Beiträge: 427
Registriert: 16.01.2006, 19:21
Kontaktdaten:

Beitrag von Bòógieman »

besten dank! :D

allerdings gibt es noch eine zweite stelle, die ebenfalls abgeändert werden muss
die von dir beschriebene änderung ist nur für die linke maustaste
für die rechte maustaste (also per default-action) gibt es ebenfalls so einen ähnlichen codeblock
_________________________________

Visit Bòógieman's Halls Of Illusions
_________________________________

---- Ende der Kommunikation ----
Bòógieman
Süßwasserpirat
Süßwasserpirat
Beiträge: 427
Registriert: 16.01.2006, 19:21
Kontaktdaten:

Beitrag von Bòógieman »

Hmm, irgendwie habe ich es geschafft, dass ein Inventargegenstand plötzlich als ein anderer Inventargegenstand behandelt wurde :shock:
in meinem script habe ich den letzten inventargegenstand mit player.loseinventory entfernt und einen neuen mit player.addinventory hinzugefügt.
als ich dann gleich darauf "Schau an" auf den neuen gegenstand ausgeführt habe, kamm komischerweise der text für den entfernten gegenstand
beim zweiten versuch war wieder alles ganz normal

ich habe den ganzen ablauf später nochmal probiert, aber da hat es dann so funktioniert wie es sollte :-k

ist das schonmal jemanden aufgefallen, oder habe ich mir das ganze einfach nur eingebildet? :lol:
_________________________________

Visit Bòógieman's Halls Of Illusions
_________________________________

---- Ende der Kommunikation ----
Antworten