AGS will nicht - weiß nicht wo Fehler liegt

Fragen zu "Adventure Game Studio"? Hier rein!
Antworten
Rexxar
Verpackungs-Wegwerfer
Verpackungs-Wegwerfer
Beiträge: 68
Registriert: 02.08.2012, 11:27

AGS will nicht - weiß nicht wo Fehler liegt

Beitrag von Rexxar »

Hallo Leute,
ich weiß, vielleicht ist der Betreff ein bisschen unpräzise aber leider geht es nicht anders.
Also:
Ich möchte ein Rollenspiel programmieren. Dabei ist es so, das wenn man auf eine Region läuft, ein Timer los läuft und wenn der zu Ende gelaufen ist der Gegner Leben verliert und man selber auch. Dabei soll die Kraft, die in der Variable "Croft" drin ist, von den Leben des Gegners abgezogen werden und von einem selber die Kraft des Gegners, wofür ich keine Variable verwende. Es wäre schön, wenn AGS wenigstens Leben des Gegners wegnehmen würde aber es passiert nichts, wenn man über die Region läuft.

Code: Alles auswählen

[function room_RepExec()
{
if (kampf == true) {
  
  if (IsTimerExpired(1)) {
    gegner -=  Croft;
// gegner sind die Leben des Gegners
    SetTimer(1, 30);
  }
}

if (gegner == 0) {
  kampf = false;
}
}


function region1_WalksOnto()
{
SetTimer(1, 30);
kampf = true;
}
] 
Ich weiß nicht was falsch ist ich habe es auch mit Randoms probiert die dann bestimmen ob man selber oder der Gegner Leben verliert, abe es geht nicht.  :cry:  #-o 
Irgendwie will AGS nicht...  :shock:
Rexxar
Verpackungs-Wegwerfer
Verpackungs-Wegwerfer
Beiträge: 68
Registriert: 02.08.2012, 11:27

Re: AGS will nicht - weiß nicht wo Fehler liegt

Beitrag von Rexxar »

Kann mir denn keiner helfen? :cry:
Mfg Rexxar
Benutzeravatar
Rocco
Adventure-Treff
Adventure-Treff
Beiträge: 1019
Registriert: 25.11.2003, 16:20
Wohnort: Ronville
Kontaktdaten:

Re: AGS will nicht - weiß nicht wo Fehler liegt

Beitrag von Rocco »

schwer zu sagen, kann keinen wirklichen fehler erkennen.
überprüf nochmal deine variablenwerte Croft und gegner.

das einzige was mir auffällt ist, wenn Croft zB. 5 ist und gegner 3.
Dann wäre gegner auf -2 und deine abfrage
if(gegner == 0) nicht zutreffend,
da ist vielleicht
if(gegner <= 0)
besser.
Rexxar
Verpackungs-Wegwerfer
Verpackungs-Wegwerfer
Beiträge: 68
Registriert: 02.08.2012, 11:27

Re: AGS will nicht - weiß nicht wo Fehler liegt

Beitrag von Rexxar »

Danke Rocco! :D
Wenn ich wieder Zuhause bin, werde ich es mal ausprobieren. Hoffe das es geht. Ich bin froh, noch eine Antwort bekommen zu haben und mir sicher sein zu können, dass es ein Lösung gibt. Da kann man sich ja manchmal bei PC's nicht so sicher sein... :mrgreen:
Mfg Rexxar
Rexxar
Verpackungs-Wegwerfer
Verpackungs-Wegwerfer
Beiträge: 68
Registriert: 02.08.2012, 11:27

Re: AGS will nicht - weiß nicht wo Fehler liegt

Beitrag von Rexxar »

Geht leider nicht. :cry: :shock: Trotzdem Danke. Wenn einer noch was weiß - Einfach antworten.
Mfg Rexxar
Benutzeravatar
KhrisMUC
Adventure-Gott
Adventure-Gott
Beiträge: 4674
Registriert: 14.03.2005, 00:55
Wohnort: München

Re: AGS will nicht - weiß nicht wo Fehler liegt

Beitrag von KhrisMUC »

Also, eins mal vorneweg: wenn dergleichen nicht funktioniert, dann liegt das weder an AGS noch am PC. Beide machen exakt das, was ihnen aufgetragen wird; sie haben keinen eigenen Willen, mit dem sie den User ärgern. Es gibt nur zwei Möglichkeiten: ein tatsächlicher bug und pebkac.
So.

Das Problem hier ist, dass ich mich frage, woher Du überhaupt weißt, dass der Code nicht funktioniert.
Nichts im Code hat irgendeine Auswirkung; es gibt keine Mitteilung an den Spieler, keine Animation, etc.
Was genau ist der Sinn dieser Zeilen? Soll das ein automatisierter Kampf werden?
Ich würde außerdem empfehlen, den Code vernünftig einzurücken. AGS macht das bei jedem Enter sogar automatisch...
Use gopher repellent on funny little man
Rexxar
Verpackungs-Wegwerfer
Verpackungs-Wegwerfer
Beiträge: 68
Registriert: 02.08.2012, 11:27

Re: AGS will nicht - weiß nicht wo Fehler liegt

Beitrag von Rexxar »

Khris Muc, erstmal danke für deine Antwort.
Wenn du wissen willst, was der Code bringen soll, lies nochmal meinen 1. Post durch, und zwar besonders den Anfang.
Dass jener Code nicht geht, weiß ich, weil es 2 Labels gibt die sowohl die Leben des Gegner als auch die Eigenen anzeigen, kaputt sind diese eigentlich nicht. Denn die Zahlen verändern sich nicht, wenn ich aber den normalen Standard - Wert verstell, ändern sich auch die Labels. Im reapetly excute vom Global Script steht für beide Variablen:
Label.Text = String.Format("%d",leben); oder halt gegnerleben oder MAna.


Und ob ich den Code einrücke ist erstmal meine Sache und ich habe ja nicht gefragt, ob ich meinen Code einrücken soll. :wink: :mrgreen: :P

Falls du Warcraft 3 kennst, ungefähr so ähnlich. Warcraft 3 hat nichts mit WoW zutun.

Rexxar
Mfg Rexxar
Benutzeravatar
KhrisMUC
Adventure-Gott
Adventure-Gott
Beiträge: 4674
Registriert: 14.03.2005, 00:55
Wohnort: München

Re: AGS will nicht - weiß nicht wo Fehler liegt

Beitrag von KhrisMUC »

Natürlich hast Du nicht gefragt, ob Du den Code einrücken sollst. :roll:
Da Du es aber a) nicht tust, es b) den Code aber wesentlich leserlicher und übersichtlicher macht und Du c) unsere Hilfe möchtest, solltest Du Deinen Standpunkt vielleicht noch einmal überdenken.
Ich weiß, vernünftiges Einrücken ist furchtbar anstrengend und eigentlich total überflüssig, es geht ja auch ohne, usw. bla bla.

Deine "Erklärung", was der Code tun soll, habe ich sehr wohl gelesen. Trotzdem ist mir der Sinn nicht klar. Der Timer läuft jeweils nach einer dreiviertelten Sekunde ab, und wir kennen die Werte von gegner und Croft nicht.

Da Du sagst, dass bei Laufen auf die Region nichts passiert, fangen wir vielleicht besser mal bei 0 an: ist es eine Region und nicht versehentlich ein Walkbehind? Ist die Funktion korrekt mit dem event verlinkt?
Wenn Du ein Display("Test"); reinsetzt, wird das angezeigt?
Use gopher repellent on funny little man
Rexxar
Verpackungs-Wegwerfer
Verpackungs-Wegwerfer
Beiträge: 68
Registriert: 02.08.2012, 11:27

Re: AGS will nicht - weiß nicht wo Fehler liegt

Beitrag von Rexxar »

Ob der Code übersichtlich ist, ist Geschmackssache, ich komme damit gut klar.Ich werde mal gucken, bei Codeposting es übersichtlicher zu machen, nur: Rocco hat es nicht gestört. #-o

Nun, es ist eine Region.
Croft ist 5 und gegner 50. Wenn der Timer nach einer dreiviertelsekunde abläuft, würde es weniger als 10 Sekunden dauern, bis der Gegner tot ist. Denn allzulange will man ja auch nicht warten. Bei Warcraft 3 oder Diabolo 3 sind manche Gegner ganz schnell weg vom Fenster und andere nicht, dieser 1. Gegner soll zu ersteren gehören.
Nun, ein Test wird nicht angezeigt. Mit der Raumgröße hat das ja nichts zu tun, mein Raum ist groß und scrollt ggf. immer, es könnte natürlich ein Bug sein, bei genau dieser Raumgröße (2000x2000). Denn bei anderen Spielentwickelungsversuchen passierte das nicht. Die Region ist über Walks-Onto verlinkt. :| #-o
Mfg Rexxar
Benutzeravatar
KhrisMUC
Adventure-Gott
Adventure-Gott
Beiträge: 4674
Registriert: 14.03.2005, 00:55
Wohnort: München

Re: AGS will nicht - weiß nicht wo Fehler liegt

Beitrag von KhrisMUC »

Wenn die beiden Optionen ein Fehler deinerseits und ein Bug in AGS bei Raumgröße 2000x2000 sind, was wird dann wohl der Fall sein...? :roll:
Bleib mal auf'm Teppich.

Wenn "Test" nicht angezeigt wird, sollten wir da vielleicht ansetzen. Hat wenig Sinn, uns über Variablen und Timer den Kopf zu zerbrechen, solange ein simples Display() nicht aufgerufen wird.

Poste bitte mal Deinen aktuellen Code, vollständig.
Use gopher repellent on funny little man
Antworten