Hallöchen!
Vor kurzem habe ich in meinem Spiel das AKS aus dem eBook umgesetzt. Dieses Funktioniert auch sehr gut, allerdings würde ich es gerne einwenig erweitern.
1. Ich möchte nicht, dass der Held jederzeit kämpfen kann, sondern nur wenn er sein Schwert in der Hand hat! Wenn ich also auf eine bestimmte Taste drücke soll sich das Charset von "normal" auf "mit Schwert" ändern. Meine Frage hierbei wäre also: Kann ich eine entsprechende Funkion einfach eibauen, oder muss ich mir dafür den Tastenpatch intallieren?
2. Ich möchte, dass der verursachte Schaden in Zahlen über dem Helden bzw. über dem Gegner angezeigt werden. Wie genau stelle ich das an? Ich muss wohl die X und Y Position des Hleden/Monsters abfragen, aber wie zeige ich dann die Zahlen an? Hätte da vielleicht jemand ein kleines Codebeispiel für mich?
Wenn du eine Taste außer Pfeiltasten, Enter und Escape belegen willst, brauchst du wohl den Tastenpatch, es sei denn du benutzt rm2k3, der hat auch eine Abfrage für Shift und 1-10, soweit ich weiß...
ansonsten kannst du das, denke ich, einfach einbauen...
Hm, also du kannst den angerichteten Schaden ja mit Ani oder mit Bildern anzeigen. Mit einer Animation ist das denke ich klar, mit Bildern:
fragst du einfach die X-Y Koordinaten des jeweiligen Events ab (Monster/Spieler) jedoch nicht als Koordinate sondern als Pixel (im Englischen X Scene bzw Y Scene) Dann kannst du von der Y-Variable zum Beispiel 10 abziehen und dann das Bild für den Schaden mit den Koordinaten X=X, Y=Y-10 anzeigen lassen.
Also Monster ist auf Pixel 20/40
Also X=20
Y=40 (das erledigt der Maker für dich)
dann Y-10 (=30)
Pic: x=X (=20)
y=Y (=30)
LG
Hallöchen!
1. Ich möchte nicht, dass der Held jederzeit kämpfen kann, sondern nur wenn er sein Schwert in der Hand hat! Wenn ich also auf eine bestimmte Taste drücke soll sich das Charset von "normal" auf "mit Schwert" ändern. Meine Frage hierbei wäre also: Kann ich eine entsprechende Funkion einfach eibauen, oder muss ich mir dafür den Tastenpatch intallieren?
...
Die Funktion von "Der gelbe Adler" war nett, da konnte man das über Technicken machen:
Also man konnte das Schwert immer ziehen und wieder weglegen, schau es dir am besten mal an, ansonsten schließe ich mich cenny an
Danke Arnold, das werd ich mir morgen mal ansehen.
Habe aber ein weiteres Problem:
Ich will den Schaden nun mit Bildern anzeigen, dass das Bild zum richtigen Zeitpunkt angezeigt wird, funktioniert schon mal.
Aber wie schaffte man es, dass die richtigen Zahlen angezeigt werden, wenn der Schaden eine Zufallszahl ist und dann noch mehrstellig?
Danke Arnold, das werd ich mir morgen mal ansehen.
Habe aber ein weiteres Problem:
Ich will den Schaden nun mit Bildern anzeigen, dass das Bild zum richtigen Zeitpunkt angezeigt wird, funktioniert schon mal.
Aber wie schaffte man es, dass die richtigen Zahlen angezeigt werden, wenn der Schaden eine Zufallszahl ist und dann noch mehrstellig?
mfg und Gute Nacht
...
Habe ich gern gemacht.
@Problem
Wie genau muss es denn sein?
Wie viel HP hat dein Charakter auf dem MAX-Level?
Bevor du mir das nicht sagst kann ich dir nicht helfen.
Ich verstehe nicht ganz möchtest du das die HP-Anzeige durch Zahlen verändert wird oder das wenn der Gegner den Held verletzt angezeigt wird, wie viel Schaden der Held verloren hat?
Am besten du teilst die mehrstellige Zahl auf, damit du nicht Hunderte Pictures und Abfragen machen musst.
Beispiel: maximaler Schaden ist 999:
Variable Schaden Zehner = Schaden mod 100
Variable Schaden Einer = Schaden mod 10
=> Nehmen wir an, der Schaden ist 347, dann hat Schaden Zehner danach den Wert 47, und Schaden Einer den Wert 7. Es wird jeweils eine Stelle "abgeschnitten".
Für die Hunderterstelle:
Wenn schaden größer 900:
Bild anzeigen: Ziffer 9
Ansonsten: wenn schaden größer 800
Bild anzeigen: Ziffer 8
Usw.
Für die Zehnerstelle:
Wenn Schaden Zehner größer 90
Bild anzeigen: Ziffer 9
Ansonsten: Wenn Schaden Zehner größer 80
Bild anzeigen: Ziffer 8
Usw.
Das ganze dann noch für die Einerstelle.
Die Pictures musst du natürlich nebeneinander anzeigen lassen.
Hoffe es war verständlich, ansonsten einfach nachfragen!
Edit: Ach ja, das Ganze lässt sich natürlich beliebig für größere Schadensmengen erweitern, aber sechsstellige Schadenszahlen würden ziemlich doof aussehen.
Was genau geht nicht?
Mir fallen 2 Dinge auf:
1. Du hast die 0 vergessen. z.B. bei 100 Schaden soll da ja 1 0 0 und nicht nur 1 angezeigt werden.
2. Du musst nach jeder Stelle Variable 21 erhöhen, sonst werden die Bilder überlappend angezeigt. Sind das Lachsens Zahlen? Da sind glaub ich 10 Pixel ganz gut als Abstand.
Tschuldigung, war schon spät gestern:
Der oben angegebene Code steht in einem Common Event und wird immer dann aufgerufen, wenn der Held Schaden nimmt im Kampf. Problem ist aber, ich sehe keine Zahlen, habe auch schon an mehreren Stellen einen Wait-Befehl eingebaut, sah aber auch damit keine Zahlen.
@Buno:
Ja, wie gesagt, Du musst erstmal die X Variable um den Betrag erhöhen, dass die zweite Zahl hinter dieser angzeigt werden kann, und das jedes Mal, wenn Du eine neue Zahl anzeigen willst. Ich selber mache das der Übersichtlichkeit halber etwas anders:
Allerdings werden so die Nullen mit angezeigt, wenn der Schaden nur 34 ist, die Ausgabe wäre dann also '034'. Um das zu ändern, müsstest Du noch eine extra Abfrage einbauen, welche überprüft, wie groß die Zahl überhaupt ist und ob diese Null mit angezeigt werden muss.
Wie die X und Y Position zu erreichen ist, weiß Du ja schon. Das habe ich jetzt mal nicht mit reingenommen.
Wenn die Zahlen wirklich garnicht angezeigt werden solltest du erstmal folgende Tests machen:
1. Schau mal nach ob du vielleicht versehentlich bei "Transparency" 100 stehen hast (da sollte 0 stehen), und ob bei Magnication eventuell 0 steht (sollte eigendlich 100 sein).
2. Wenn beides passt dann probier mal an den Anfang des Events eine Textmessage zu packen. wenn sie nicht angezeigt wird, wird das Event garnicht gestartet, am besten auch mit dem Text "\v[0012]", damit lässt du die Variable 12, also die Schadenszahl anzeigen.
Also ich hab den Code jetzt so umgesetzt wie Cilence geschrieben hat, die Bilder sehe ich noch immer nicht...mal mit Wait-Befehlen herumspielen.
Wenn ich am Anfang des Events eine Message mit \V[0012] ausgebe, wird mir eine Nachricht mit dem Wert der Variable angezeigt, das Event an sich funktioniert also.
Also ich hab den Code jetzt so umgesetzt wie Cilence geschrieben hat, die Bilder sehe ich noch immer nicht
...
Hm, der Fehler kann dann eigentlich doch nur noch bei den Show Pictures liegen, oder?
(Was auch noch sein könnte: Die Variablen haben aus irgendwelchen Gründen falsche Werte. Vielleicht ausversehen irgendwo zu X-Koordinate statt X-Pixel gesetzt? )
Ansonsten lad das Projekt doch mal hoch, per Ferndiagnose fällt mir sonst nüx mehr ein.
Das is mir jetzt aber peinlich.
Also, es funktioniert jetzt!
Fehler war: Durch das viele rumprobieren habe ich die Zeilen wo den Variablen KSHeldX und KSHeldY die Werte zugewiesen werden gelöscht habe, so konnten die Bilder keine Koordinaten haben.
Sodale, eine kleine Frage habe ich noch:
Am Ende der eBook-Anleitung für das AKS wird noch ein Event beschrieben welches die Switches "Feind1 = Tot", "Feind2 = Tot" und so weiter wieder auf off setzt. Das wird gemacht um die Gegner auf anderen Maps "wieder zu beleben" und Variablen zu sparen.
Setzte ich dieses Event auf Auto Start, funktioniert es nicht! Setzt ich es auf Push Key, funktioniert es. Hat jemand eine Ahnung?
Und: Kann ich dieses Event so umgestalten, dass die Gegner nicht immer wieder respawnen, ich haber trotzdem keine Variablen verschwende? Ich möchte nämlich verhindern, dass der Spieler die Gegner abfarmen kann.
Wenn Du das Event auf autostart hast, funzt es in jedem Fall. Du kannst ja mal einen Sound am Ende dieses Events abspielen lassen, dann weißt Du genau, ob es durchgelaufen ist oder nicht. Fall es wirklich nicht geht, versuche es mal mit der Bedingung parallel process, das ist, zumindest für den Fall, das Gleiche.
Zum zweiteren, eher nicht. Es gibt schon eine Möglichkeit, nämlich Variablen wie folgt auszustatten:
111111 (als komplette Zahl)
Jede der Einsen ist ein Gegner, 1 steht für tot, steht da eine 0, ist er noch am Leben. Rausziehen für eine Abfrage müsstest Du mit / und mod.