Ich brauche Hilfe beim Scripten, hab mich verrannt!

Fragen zu "Adventure Game Studio"? Hier rein!
Antworten
Benutzeravatar
DieFüchsin
Adventure-Gott
Adventure-Gott
Beiträge: 4406
Registriert: 12.03.2004, 16:55

Beitrag von DieFüchsin »

khrismuc?
Danke, Adventuretreff! <3
Benutzeravatar
KhrisMUC
Adventure-Gott
Adventure-Gott
Beiträge: 4674
Registriert: 14.03.2005, 00:55
Wohnort: München

Beitrag von KhrisMUC »

Sorry, jetzt bin ich da :)

Ohne die Sprites nützt das wahrscheinlich nicht viel. Ich kann auch keinen Fehler im Code entdecken, habs aber noch nicht getestet.

Also die anderen Symbole sind immer gleich? Du meinst, es werden verschiedene Symbole zufällig angeordnet, aber bei jedem Neustart des Spiels sind sie immer an der selben Stelle?

Hm, wie gesagt, die Zufallszahlen, die AGS produziert, sind immer die gleichen. Hast Du mal meine Randomize-Funktion ausprobiert?
Use gopher repellent on funny little man
Benutzeravatar
DieFüchsin
Adventure-Gott
Adventure-Gott
Beiträge: 4406
Registriert: 12.03.2004, 16:55

Beitrag von DieFüchsin »

Das mit den Zufallszahlen war wahrscheinlich nur ;) Zufall, später funktionierte es, wie es sollte, nachdems vielleicht fünfmal immer gleich war.

Beim neu laden des Raums siehts so aus: die Muss-Platte liegt mit zufälligem Bild zufällig herum wie sie soll, aber die anderen Platten haben das gleiche Symbol (beim neuen Laden ist es immer ein anderes, zufällig ausgewähltes, aber alle platten tragen es)
Danke, Adventuretreff! <3
Benutzeravatar
DieFüchsin
Adventure-Gott
Adventure-Gott
Beiträge: 4406
Registriert: 12.03.2004, 16:55

Beitrag von DieFüchsin »

:oops:

hab den "Fehler" gefunden... :oops:
Danke, Adventuretreff! <3
Benutzeravatar
KhrisMUC
Adventure-Gott
Adventure-Gott
Beiträge: 4674
Registriert: 14.03.2005, 00:55
Wohnort: München

Beitrag von KhrisMUC »

Jaaaa? ;)
War's was mit den Views?
Use gopher repellent on funny little man
Benutzeravatar
DieFüchsin
Adventure-Gott
Adventure-Gott
Beiträge: 4406
Registriert: 12.03.2004, 16:55

Beitrag von DieFüchsin »

ich hatte die Zeile nur in einem Block ergänzt, allerdings konnte ich bisher noch nicht testen obs auch wirklich klappt, weil mir immer diese Fehlermeldung

http://www.adventuretreff.de/forum/view ... 9&start=15

dazwischen funkt, seit ich das mit der Arrayanimation eingefügt habe
Danke, Adventuretreff! <3
Benutzeravatar
DieFüchsin
Adventure-Gott
Adventure-Gott
Beiträge: 4406
Registriert: 12.03.2004, 16:55

Beitrag von DieFüchsin »

übrigens funktioniert deine GetPlayerSymbol() funktion nicht, sie gibt 1 bei dem muss-symbol aus und 0 bei den anderen.
Danke, Adventuretreff! <3
Benutzeravatar
KhrisMUC
Adventure-Gott
Adventure-Gott
Beiträge: 4674
Registriert: 14.03.2005, 00:55
Wohnort: München

Beitrag von KhrisMUC »

Verdammt, Du hast recht :)

Code: Alles auswählen

function SetPlate(int plate, int symbol) { // plate 1-6, symbol 1-9 
  abs=10;   // wenn views der platten z.B.: 11-16 
  object[plate].SetView(plate+abs, 0, symbol-1); // Platten sind objects 1-6
  platesymbol[plate]=symbol;  // <-- DAS HIER HAT GEFEHLT 
} 
Use gopher repellent on funny little man
Benutzeravatar
DieFüchsin
Adventure-Gott
Adventure-Gott
Beiträge: 4406
Registriert: 12.03.2004, 16:55

Beitrag von DieFüchsin »

seltsam, manchmal wird der korrekte wert angegeben, manchmal aber 0
Danke, Adventuretreff! <3
Benutzeravatar
DieFüchsin
Adventure-Gott
Adventure-Gott
Beiträge: 4406
Registriert: 12.03.2004, 16:55

Beitrag von DieFüchsin »

wie genau funktioniert die funktion? ich hab ein bisschen rumprobiert, indem ich den charakter auf der platte hab hin und her laufen lassen und die variable gecheckt hab. aber manchmal wird 0 ausgegeben, obwohl der charakter eigentlich mittendrauf steht

und eine Platte gibt nur den wert 0 wieder...

kann man das ganze auch über hotspots regeln? hotspots sind sowieso schon vor ort.
Danke, Adventuretreff! <3
Benutzeravatar
KhrisMUC
Adventure-Gott
Adventure-Gott
Beiträge: 4674
Registriert: 14.03.2005, 00:55
Wohnort: München

Beitrag von KhrisMUC »

Hmm, ich hab keine Ahnung, woran das liegen könnte.

Code: Alles auswählen

function GetPlayerSymbol() { 
  Object*plate=Object.GetAtScreenXY(player.x, player.y); 
  if (plate!=null) { 
    int plid=plate.ID; 
    if (plid>=1 && plid<=6) return platesymbol[plid]; 
  } 
  return 0; 
}
Zuerst wird das Objekt, das sich an der Position des Charakters befindet, in dem Objektpointer plate gespeichert.
Wenn dort kein Objekt ist, bekommt plate den Wert null.

Falls dort ein Objekt ist, wird dessen Nummer in plid gespeichert und dann geschaut, ob die Nummer irgendwas von 1-6 ist. Falls ja, wird anhand des Arrays die Symbolnummer zurückgeliefert.

In jedem anderen Fall wird 0 zurückgeliefert.

Du hast schon die Objekte 1-6 für die Platten benutzt, oder? Und nicht 0-5?
Ansonsten könntest Du statt dem "return 0;" mal "return -1;" ausprobieren. Wenn jetzt noch 0 zurückgeliefert wird, stimmt etwas mit dem Array nicht.
Use gopher repellent on funny little man
Benutzeravatar
DieFüchsin
Adventure-Gott
Adventure-Gott
Beiträge: 4406
Registriert: 12.03.2004, 16:55

Beitrag von DieFüchsin »

Ich hab das ganze noch mal ausgiebig getestet und bin zu folgenden Ergebnissen gekommen:

Die Platten sind auf jeden Fall die Objekte 1-6.

Die Werte werden unregelmäßig wiedergegeben, zuweilen wird der richtige Wert angegeben, steht der Charakter mitten auf der Platte, dann wieder wird 0 ausgegeben. (Ändert sich immer beim Neustart).
Insgesamt wird auf jeden Fall nicht immer der gewünschte Wert ausgegeben, wenn der Charakter eigentlich optisch auf der Platte steht. Lässt sich das ganze nicht irgendwie anders lösen?

Übrigens werden bei der Symbolverteilung ausschließlich die Symbole 1-6 (nicht 7,8,9) verteilt.
Danke, Adventuretreff! <3
Smiley
Hobby-Archäologe
Hobby-Archäologe
Beiträge: 163
Registriert: 28.04.2005, 16:26
Wohnort: Mönchengladbach

Beitrag von Smiley »

Falls das ein scrollender Raum ist:

Ändere das:

Code: Alles auswählen

Object*plate=Object.GetAtScreenXY(player.x, player.y);
in das:

Code: Alles auswählen

Object*plate=Object.GetAtScreenXY(player.x-GetViewportX(),player.y-GetViewportY())
Benutzeravatar
DieFüchsin
Adventure-Gott
Adventure-Gott
Beiträge: 4406
Registriert: 12.03.2004, 16:55

Beitrag von DieFüchsin »

nein, ist kein scrollender raum
Danke, Adventuretreff! <3
Benutzeravatar
DieFüchsin
Adventure-Gott
Adventure-Gott
Beiträge: 4406
Registriert: 12.03.2004, 16:55

Beitrag von DieFüchsin »

so, ich lass mir die Symbolnummer jetzt ganz unspektakulär auf dem Hotspot stehend ausgeben, was auf jeden Fall funktioniert.

Allerdings verteilt es immer noch nur die ersten 6 symbole?!

EDIT: achsoo es werden ja auch nur 6 rausgesucht... alle klarheiten dürften hiermit beseitigt sein...

ein dickes danke nochmal an khrismuc!!!
Danke, Adventuretreff! <3
Antworten