Syd Starterpack für AGS 2.62 und 2.7 und 2.71!
- Rayman
- Logik-Lord
- Beiträge: 1388
- Registriert: 07.01.2006, 20:08
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.
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.
- Mister L
- Rätselmeister
- Beiträge: 1913
- Registriert: 21.03.2005, 01:55
- Kontaktdaten:
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...
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"
- Rayman
- Logik-Lord
- Beiträge: 1388
- Registriert: 07.01.2006, 20:08
-
- Tastatursteuerer
- Beiträge: 554
- Registriert: 28.09.2005, 19:13
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.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?
[...] 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
anders kann ich mir diesen fehler nicht erklären, denn bisher hat dieses inventarobjekt schon ca. 1000mal problemlos funktionier
ist das vielleicht schon bekannt und kann man das irgendwie verhindern
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)
-
- Süßwasserpirat
- Beiträge: 427
- Registriert: 16.01.2006, 19:21
- Kontaktdaten:
diese lösung ist völlig ausreichend
besten dank!
besten dank!
_________________________________
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:
Und was steht in Zeile 94?Rayman hat geschrieben:...Script Header was bei Zeile 94 ändern soll.
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"
- Rayman
- Logik-Lord
- Beiträge: 1388
- Registriert: 07.01.2006, 20:08
Auf Zeile 94 steht:
Code: Alles auswählen
import function SetDoorStrings (const string lookat,const string islocked,const string wrongitem);
- Kaktus
- Tastatursteuerer
- Beiträge: 658
- Registriert: 17.02.2006, 01:45
- Wohnort: Wüstä
- Kontaktdaten:
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
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
-
- Süßwasserpirat
- Beiträge: 427
- Registriert: 16.01.2006, 19:21
- Kontaktdaten:
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
ohne script debugger wird man da ganz schön alt beim suchen
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
ohne script debugger wird man da ganz schön alt beim suchen
_________________________________
Visit Bòógieman's Halls Of Illusions
_________________________________
---- Ende der Kommunikation ----
Visit Bòógieman's Halls Of Illusions
_________________________________
---- Ende der Kommunikation ----
- KhrisMUC
- Adventure-Gott
- Beiträge: 4674
- Registriert: 14.03.2005, 00:55
- Wohnort: München
Habs gefunden, die entsprechende Stelle ist in der on_mouse_click und sieht so aus:
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:
EDIT: Stimmt, an die rechte Maustaste hab ich nicht gedacht.
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);
}
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);
}
Zuletzt geändert von KhrisMUC am 17.08.2006, 16:38, insgesamt 1-mal geändert.
Use gopher repellent on funny little man
-
- Süßwasserpirat
- Beiträge: 427
- Registriert: 16.01.2006, 19:21
- Kontaktdaten:
besten dank!
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
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 ----
Visit Bòógieman's Halls Of Illusions
_________________________________
---- Ende der Kommunikation ----
-
- Süßwasserpirat
- Beiträge: 427
- Registriert: 16.01.2006, 19:21
- Kontaktdaten:
Hmm, irgendwie habe ich es geschafft, dass ein Inventargegenstand plötzlich als ein anderer Inventargegenstand behandelt wurde
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
ist das schonmal jemanden aufgefallen, oder habe ich mir das ganze einfach nur eingebildet?
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
ist das schonmal jemanden aufgefallen, oder habe ich mir das ganze einfach nur eingebildet?
_________________________________
Visit Bòógieman's Halls Of Illusions
_________________________________
---- Ende der Kommunikation ----
Visit Bòógieman's Halls Of Illusions
_________________________________
---- Ende der Kommunikation ----