Gehe non-blocking zum Hotspot und mach dann was

Fragen zu "Adventure Game Studio"? Hier rein!
Antworten
danielklotz
Frischling
Frischling
Beiträge: 6
Registriert: 24.07.2007, 23:20

Gehe non-blocking zum Hotspot und mach dann was

Beitrag von danielklotz »

Hi zusammen

Ich möchte, dass mein Charakter wenn ich zum Beispiel "Schau an irgendwas" mache, non-blocking zum WalkToPoint geht und wenn er da ist was sagt.

Ich hab mir schon das NoBlock-Module gezogen, aber ich versteh noch nicht ganz was da in welchen code-abschnitt soll. Wo soll zum Beispiel dieses NoBlock.Do(usw) hin?

hat da jemand schon erfahrungen mit?
Benutzeravatar
Mister L
Rätselmeister
Rätselmeister
Beiträge: 1913
Registriert: 21.03.2005, 01:55
Kontaktdaten:

Beitrag von Mister L »

Ähm, reicht da nicht ein einfaches "MovePlayer" ?
Bzw.

"character[EGO].Walk(155, 122);"

NoBlock ist dann ja autoatisch mit drin.
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"
danielklotz
Frischling
Frischling
Beiträge: 6
Registriert: 24.07.2007, 23:20

Beitrag von danielklotz »

Nein, ich will ja dass der charakter erst dann, wenn er den Hotspot erreicht hat was sagt oder macht. Mit "eBlock" geht das ja auch der Reihenfolge nach, aber ich kann die Aktion nicht abbrechen, sondern bekomme den Wait-Cursor bis der Charakter am Hotspot ist. Wenn ich aber zum Beispiel sage:

player.walk(100, 100, eNoBlock);
player.display("Hallo");

dann wartet er mit der Ausgabe von "Hallo" nicht bis der Charakter an dem Punkt ist.

Im Prinzip brauche ich also ein "abbrechbares eBlock" :D
danielklotz
Frischling
Frischling
Beiträge: 6
Registriert: 24.07.2007, 23:20

Beitrag von danielklotz »

Ahh habs schon... Ich hab das NoBlock.Do(blabla) in die global_script section an die Stelle an der auch das ProcessClick(blabla) ausgeführt wird und mit ner if-Abfrage den Aktionen zugeordnet. Danach noch ne while-Schleife um zum Standard-Curser zurückzuwechseln.

Code: Alles auswählen

if(GetCursorMode()==0){ 

   ProcessClick(mouse.x, mouse.y, mouse.Mode );
} 
else{

   NoBlock.Do(GetCursorMode(), eLocationHotspot, NoBlock.GetHotXY(mouse.x, mouse.y));
}

while(GetCursorMode()!=0) SetNextCursorMode();
jetzt geht's :D
Antworten