Hallo mal wieder
Ich bitte mal wieder um Hilfe und habe 2 Problemchen:
[ERSTES PROBLEM]
Wenn ich das Inventar-Item "iGedicht" anschaue, soll sich ein Bild von einem Blatt papier öffnen, damit der spieler dieses Gedicht lesen kann.
Erst habe ich versucht ein Gui zu erstellen in welches ich ein Textfeld eingefügt habe.
Dann habe ich versucht das Bild von dem Gedicht als "Graphical Overlay" einzublenden.
Hier die zwei Skript-Versuche:
1.
function iGedicht_Look()
{
gtext.visible = true;
}
2.
function iGedicht_Look()
{
Overlay* myOverlay = Overlay.CreateGraphical(100, 100, 63, true);
Wait(80);
myOverlay.Remove()
};
die fehlermeldung meint zu function iGedicht_Look(): nested functions not supported (you may have forgotten a closing brace)
[ZWEITES PROBLEM]
Nun habe ich noch ein weiteres Problem, dass ihr aber auch einfach ignorieren könnt, da es tatsächlich schon
1000x in diesem forum geschildert wurde. Falls trotzdem jemand helfen kann und will, wäre das sehr gut
Und zwar handelt es sich um einen Charakter ("cnichtspieler"), der immer hin und her laufen soll, sobald ich ihm das Item "iGedicht" gegeben habe.
Habe wirklich schon viel gestöbert und gelesen, wurde aber nicht schlauer aus alldem.
Ich habe mir gedacht ich könnte ja einfach einen Hotspot oder eine Region, die über dem ganzen Raum liegt aktivieren,
sobald der spieler dem nichtspieler das gedicht gibt. sobald dieser hotspot/region aktiv ist (und der spieler befindet sich in ihr),
sollte dann der skript laufen, welchen den nichtspieler hin- und her laufen lässt.
das sieht bei mir so aus:
function cnichtspieler_UseInv()
{
if (cspieler.ActiveInventory == iGedicht)
{
cspieler.LoseInventory (iGedicht);
hhotspot2.Enabled = true;
}
}
function hhotspot2_WalkOn()
{
cnichtspieler.LockView (6);
cnichtspieler.Walk (cnichtspieler.x-90, cnichtspieler.y);
cnichtspieler.LockView (7);
cnichtspieler.Walk (cnichtspieler.x+90, cnichtspieler.y);
bisher läuft nichtspieler im gewünschten view nur nach links und bleibt dann stehen.
Nun sollte er aber auch zurücklaufen und all das auch noch wiederholen!
Ich habe auch versucht einen Hotspot links von dem nichtspieler zu erstellen, wo der nichtspieler auch hinläuft,
doch scheitert es daran, dass dieser hotspot den nichtspieler zu dem rechten hotspot zurück schickt.
Die eingemalten Hotspots sind stattdessen nur für den spieler aktiv, was im spiel dann sehr skurill aussieht
Hoffe mir kann jemand helfen und bin für jeden tip sehr dankbar
Item anschauen -> Bild von Item anzeigen + mehr fragen..
-
- Komplettlösungsnutzer
- Beiträge: 15
- Registriert: 09.12.2014, 14:28
- KhrisMUC
- Adventure-Gott
- Beiträge: 4674
- Registriert: 14.03.2005, 00:55
- Wohnort: München
Re: Item anschauen -> Bild von Item anzeigen + mehr fragen..
Zum ersten Problem: der Fehler ist irgendwo über iGedicht_Look(), nicht im Code, den Du uns zeigst. Die Fehlermeldung bedeutet, dass AGS "function" findet, obwohl der vorherige function-Block noch nicht geschlossen wurde (mit "}"). Es sieht aus, als würdest du deinen Code nicht einrücken; das solltest Du Dir schleunigst angewöhnen, dann wird es nicht nur 100x lesbarer und sieht 100x besser aus, man findet auch gerade solche Fehler viel leichter.
Bzgl. der zweiten Sache würde ich Regions nehmen. Hotspots wurden vor etlichen Jahren mal verwendet, um positionsgebundene Ereignisse umzusetzen, das wird aber längst mit Regions gemacht. Allerdings beziehen sich die Ereignisse (sowohl Hotspot_WalkOn) als auch die bei Regions immer auf den Charakter des Spielers, nicht auf NPCs. Man muss also das repeatedly_execute Event des Raums benutzen, und dort folgenden Code verwenden:
Bzgl. der zweiten Sache würde ich Regions nehmen. Hotspots wurden vor etlichen Jahren mal verwendet, um positionsgebundene Ereignisse umzusetzen, das wird aber längst mit Regions gemacht. Allerdings beziehen sich die Ereignisse (sowohl Hotspot_WalkOn) als auch die bei Regions immer auf den Charakter des Spielers, nicht auf NPCs. Man muss also das repeatedly_execute Event des Raums benutzen, und dort folgenden Code verwenden:
Code: Alles auswählen
Region *npc1 = Region.GetAtRoomXY(cnichtspieler.x, cnichtspieler.y);
if (npc1 == region[1]) {
cnichtspieler.Walk (cnichtspieler.x-90, cnichtspieler.y);
// etc.
}
Use gopher repellent on funny little man
-
- Komplettlösungsnutzer
- Beiträge: 15
- Registriert: 09.12.2014, 14:28
Re: Item anschauen -> Bild von Item anzeigen + mehr fragen..
Hattest Recht, es fehlte eine geschweifte Klammer!
Werds mir angewöhnen manche Zeilen einzurücken,danke für den Tip!
An dem zweiten Problem muss ich noch ein bisschen rumprobieren, aber ich denk das bekomme ich hin.
Danke dir, vorallem auch dafür dass du dich der zweiten Frage angenommen hast
Sollte mein Spiel irgendwann mal fertig werden kommste auf jedenfall in die Credits
Werds mir angewöhnen manche Zeilen einzurücken,danke für den Tip!
An dem zweiten Problem muss ich noch ein bisschen rumprobieren, aber ich denk das bekomme ich hin.
Danke dir, vorallem auch dafür dass du dich der zweiten Frage angenommen hast
Sollte mein Spiel irgendwann mal fertig werden kommste auf jedenfall in die Credits