Character soll eine längere Strecke ablaufen
- Lak
- Rätselmeister
- Beiträge: 1586
- Registriert: 27.02.2005, 10:43
- Wohnort: London (England)
Character soll eine längere Strecke ablaufen
Ich bin am verzweifeln. Zwei, nagut drei Wochen rühr ich das Programm nicht an und schon komm ich garnicht mehr zurecht. Schlimm ist das.
Mein Problem:
Mein Character (nicht der Spielercharacter) soll eine längere Strecke gehen. Also nicht nur von a nach b sondern erst von a nach b dann nach c dann nach d kurz stehenbleiben und so weiter. Normal funktioniert das mit MoveCharacter und Wait, ich weiß. Soweit krieg ich das ja locker hin, schafft ja jeder Anfänger. Aber ich will nen Zusatz: Dieser Character soll die Strecken ablaufen und dabei stehen bleiben WÄHREND ich mit dem Spielercharacter etwas ganz anderes machen kann. Also ich kann mit dem EGO auch grad in nem ganz anderen Raum sein und der macht trotzdem weiter, nur seh ich ihn halt nicht.
Ich hatte das schonmal hinbekommen mit ner halben Stunde pruckeln oder so, da das aber nur n Versuch war gelöscht und jetzt bin ich schon den halben Tag am verzweifel, sage mir die ganze Zeit, dass ich das selbst rausfinden will, aber ich schaff es nicht.
Jemand ne Idee?
Mit freundlichem Gruß,
the Lak.
Mein Problem:
Mein Character (nicht der Spielercharacter) soll eine längere Strecke gehen. Also nicht nur von a nach b sondern erst von a nach b dann nach c dann nach d kurz stehenbleiben und so weiter. Normal funktioniert das mit MoveCharacter und Wait, ich weiß. Soweit krieg ich das ja locker hin, schafft ja jeder Anfänger. Aber ich will nen Zusatz: Dieser Character soll die Strecken ablaufen und dabei stehen bleiben WÄHREND ich mit dem Spielercharacter etwas ganz anderes machen kann. Also ich kann mit dem EGO auch grad in nem ganz anderen Raum sein und der macht trotzdem weiter, nur seh ich ihn halt nicht.
Ich hatte das schonmal hinbekommen mit ner halben Stunde pruckeln oder so, da das aber nur n Versuch war gelöscht und jetzt bin ich schon den halben Tag am verzweifel, sage mir die ganze Zeit, dass ich das selbst rausfinden will, aber ich schaff es nicht.
Jemand ne Idee?
Mit freundlichem Gruß,
the Lak.
...
- Rocco
- Adventure-Treff
- Beiträge: 1019
- Registriert: 25.11.2003, 16:20
- Wohnort: Ronville
- Kontaktdaten:
- Lak
- Rätselmeister
- Beiträge: 1586
- Registriert: 27.02.2005, 10:43
- Wohnort: London (England)
-
- Adventure-Gott
- Beiträge: 4575
- Registriert: 13.07.2004, 14:04
- Wohnort: Da wo muss
- Kontaktdaten:
Auch mal diese Funktion probiert?
cTyp.AddWaypoint
Das Anhalten müsste mit Timern machbar sein.
cTyp.AddWaypoint
Das Anhalten müsste mit Timern machbar sein.
Es heißt, Leute mit den originellsten Nicknames schreiben die besten Beiträge
Ausnahmen bestätigen die Regel
_________________
<Problem> Weil du denken kannst.
Zuletzt bearbeitet von [ZENSIERT] am 16.07.1759, 16:19, insgesamt 54743869-mal bearbeitet
Ausnahmen bestätigen die Regel
_________________
<Problem> Weil du denken kannst.
Zuletzt bearbeitet von [ZENSIERT] am 16.07.1759, 16:19, insgesamt 54743869-mal bearbeitet
- Floyd
- Logik-Lord
- Beiträge: 1088
- Registriert: 14.03.2004, 19:59
Ich glaube, das Problem an der Sache ist, dass man Charaktere, die sich nicht im "aktiven" Raum befinden, wohl generell nicht bewegen kann (Abgesehen vom Teleportieren).
In diesem Fall müsstest du über einen Zähler abfragen, wie lange sich der Spieler im anderen Raum aufgehalten hat und was für eine Strecke der andere Charakter in dieser Zeit zurückgelegt hätte, wenn er sich hätte bewegen können, abhängig vom Startpunkt natürlich.
Einfacher wäre es aber natürlich, wenn du ungefähr wüsstest, wo sich die Figur nach dem Raumwechsel befinden müsste, dann könntest du die Koordinaten einfach manuell verändern.
In diesem Fall müsstest du über einen Zähler abfragen, wie lange sich der Spieler im anderen Raum aufgehalten hat und was für eine Strecke der andere Charakter in dieser Zeit zurückgelegt hätte, wenn er sich hätte bewegen können, abhängig vom Startpunkt natürlich.
Einfacher wäre es aber natürlich, wenn du ungefähr wüsstest, wo sich die Figur nach dem Raumwechsel befinden müsste, dann könntest du die Koordinaten einfach manuell verändern.
Der verschwundene Husky - ein 2D Point&Click Adventure
Einen schönen Orbit, Bürger!
Einen schönen Orbit, Bürger!
- KhrisMUC
- Adventure-Gott
- Beiträge: 4674
- Registriert: 14.03.2005, 00:55
- Wohnort: München
Room script:
Alle Zeilen mit #### drin müssen angepasst werden.
Die Wegpunkte bzw. Pausen sollten beliebig festlegbar sein nach dem angegebenen Schema. (x,y: wegpunkt, x,0: x/40 Sek. warten)
Das Ganze ist hoffentlich fehlerfrei, ich war zu faul, es zu testen
Das sich der Charakter auch in der Abwesenheit des Spielers bewegt, habe ich durch einen Zufallseinstieg in den "Rundgang" des Charakters eingebaut.
Normalerweise sollte es ja nicht nötig sein, dass das Timing exakt stimmt, bzw. dass sich der Charakter während der Abwesenheit tatsächlich bewegt. Hauptsache, dieser Eindruck entsteht.
EDIT: Code korrigiert.
Code: Alles auswählen
int state;
int states=5; // anzahl####
int x[6]; // entsprechend miterhöhen####
int y[6]; // ####
Character*wanderer;
function nextstate(int s) {
if (s==states) return 1;
else return s+1;
}
function prevstate(int s) {
if (s==1) return states;
else return s-1;
}
function dostate() {
if (y[state]==0) SetTimer(1, x[state]);
else wanderer.Walk(x[state], y[state]); // default: eNoBlock, eWalkableAreas
}
function ... {
// before fadein
x[1]=?; y[1]=?; // hier die Wegpunkte festlegen####
x[2]=?; y[2]=?; //####
x[3]=?; y[3]=?; //####
x[4]=?; y[4]=?; // ####
x[5]=80; y[5]=0; // y=0 -> x frames warten statt####
// neuem Wegpunkt
wanderer=cBernhard; // hier den "Wanderer" festlegen####
state=Random(states-1)+1; // zufälliger Anfang
int prev=prevstate(state);
while (y[prev]==0) prev=prevstate(prev); // vorherigen Weppunkt
wanderer.x=x[prev]; // finden für Startposition
wanderer.y=y[prev];
dostate();
}
function ... {
// room's rep ex
if (y[state]!=0 && wanderer.Moving==false) {
state=nextstate(state);
dostate();
return;
}
if (y[state]==0 && IsTimerExpired(1)) {
state=nextstate(state);
dostate();
}
}
Die Wegpunkte bzw. Pausen sollten beliebig festlegbar sein nach dem angegebenen Schema. (x,y: wegpunkt, x,0: x/40 Sek. warten)
Das Ganze ist hoffentlich fehlerfrei, ich war zu faul, es zu testen
Das sich der Charakter auch in der Abwesenheit des Spielers bewegt, habe ich durch einen Zufallseinstieg in den "Rundgang" des Charakters eingebaut.
Normalerweise sollte es ja nicht nötig sein, dass das Timing exakt stimmt, bzw. dass sich der Charakter während der Abwesenheit tatsächlich bewegt. Hauptsache, dieser Eindruck entsteht.
EDIT: Code korrigiert.
Zuletzt geändert von KhrisMUC am 06.06.2006, 20:00, insgesamt 1-mal geändert.
- Rocco
- Adventure-Treff
- Beiträge: 1019
- Registriert: 25.11.2003, 16:20
- Wohnort: Ronville
- Kontaktdaten:
character control module von strazer:
http://www.bigbluecup.com/yabb/index.php?topic=24489.0
imo genau das was du brauchst.
http://www.bigbluecup.com/yabb/index.php?topic=24489.0
imo genau das was du brauchst.
- Lak
- Rätselmeister
- Beiträge: 1586
- Registriert: 27.02.2005, 10:43
- Wohnort: London (England)
- KhrisMUC
- Adventure-Gott
- Beiträge: 4674
- Registriert: 14.03.2005, 00:55
- Wohnort: München
Also erstmal ist es 2.71 und nicht 27.1
Ich hab meinen Code ins Syd-Pack reinkopiert (AGS 2.7!).
Da kommen genau zwei Fehlermeldungen:
1. cBernard ist ein unbekannter Charakter (er heißt im Pack immer noch BernHard)
2. "variable state is already defined", da musste das "int" davor weg.
Beide Fehler sind auch für Laien locker selbst korrigierbar, IMO.
Danach hat der Code perfekt funktioniert, abgesehen davon, dass Bernard an einem Wegpunkt ohne Pause stehengeblieben ist, wenn Syd gerade geredet hat.
Bevor Du also ein banales "funzt nicht" loslässt, solltest Du vielleicht selber Dein Hirn kurz anstrengen.
Ich hab meinen Code ins Syd-Pack reinkopiert (AGS 2.7!).
Da kommen genau zwei Fehlermeldungen:
1. cBernard ist ein unbekannter Charakter (er heißt im Pack immer noch BernHard)
2. "variable state is already defined", da musste das "int" davor weg.
Beide Fehler sind auch für Laien locker selbst korrigierbar, IMO.
Danach hat der Code perfekt funktioniert, abgesehen davon, dass Bernard an einem Wegpunkt ohne Pause stehengeblieben ist, wenn Syd gerade geredet hat.
Bevor Du also ein banales "funzt nicht" loslässt, solltest Du vielleicht selber Dein Hirn kurz anstrengen.
- Lak
- Rätselmeister
- Beiträge: 1586
- Registriert: 27.02.2005, 10:43
- Wohnort: London (England)
- KhrisMUC
- Adventure-Gott
- Beiträge: 4674
- Registriert: 14.03.2005, 00:55
- Wohnort: München