PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : ich hab da ma ne frage (echtzeitkampf)



Tingles
08.09.2009, 21:39
wie bekomme ich es hin, das wenn mein held schlägt, dem gegner auch schaden angerechnet wird? und wie bekomme ich es hin das der schlag auf 2-3 feldern wirksam ist?

das wars erstma wieder von mir^^
mfg tobe

Stummboy
08.09.2009, 23:11
Aus deinen letzten Threads schliess ich jetz mal das du ein AKS hast.;)
kann dir aber nur die erste Frage beantworten.
Du musst dafür Variablen benutzen. Du hast z.B. die Variable xxxx Gegner Leben und willst das davon Schaden abgezogen wird. Wir nehmen also eine weiter Variable die wir yyyy Schaden nennen und noch eine die zzzz Held Stärke heißt (welche der Stärke des Helden entspricht.) dann setzt du die Variable yyyy Schaden mit der Variable zzzz Held Stärke gleich. Jetzt kannst du beim Schlag diese Schadensvariable verändern.(du kannst die Verteidigung des Gegners davon abziehen, oder den Schaden mal 2 nehmen u.s.w....)Am Ende ziehst du einfach von der Variable xxxx Gegner Leben die Variable yyyy Schaden ab.

Du solltest dir echt mal das e-book AKS ansehen damit du wenigstens von den Grunddingen ne Ahnung hast.;)

uninspired
05.10.2009, 17:21
wie bekomme ich es hin, das wenn mein held schlägt, dem gegner auch schaden angerechnet wird? und wie bekomme ich es hin das der schlag auf 2-3 feldern wirksam ist?

das wars erstma wieder von mir^^
mfg tobe


Das ist glaub ich ziemlich kompliziert.
Ich hab mal sowas gemacht, aber da hab ich kein normales AKS gebastelt, sondern einfach ein normales Map-Event.
Hier, wie ich das gemacht hab:
Das als parallelen Prozess. Dann hast du ein Map-Event "Monster", das dir folgt.
So. Nun fängt die Variablen-Arbeit an.
Jetzt brauchst du 4 Variablen:
Hero X
Hero Y
Monster X
Monster Y
Die setzt du jeweils gleich mit den Map-Positionen X und Y von Hero und Monster, also dem Helden und dem Gegner. Nun wird ein Zyklus gestartet.
Innerhalb des Zyklus kommt nun die "PAssworteingabe", sprich, also du hast die Variable "Eingabe" und die wird durch Druck auf Enter gleich 5 gesetzt.
Nun stellst du eine Bedingungen auf:
Variable "Eingabe" = 5
DANN:
Bedingung:
Hero X = Monster X
Als Folge dann: Variable Hero Y Minus Monster Y
Und dann Variable "Abstand" gleich dem Ergebnis setzen.
Wieder eine Bedingung:
Variable "Abstand" (je nach wunsch) gleich 3,2,1 wieviel Reichweite dein Chara eben hat bzw. -3,-2,-1 jeweils ob der Chara drüber oder drunter ist.
Wenn das alles richtig ist, dann noch eine Bedingung Hero Face nach oben bzw unten und dann als Folge die Kampfani und dem Gegner HP abziehen.
Das gleiche machst du dann bei der "Ansonsten" Oder "Else" jeweils nochmal für Y.
Ans Ende kommt dann noch eine Bedingung Variable "Gegner HP"=0, dann als Folge den Zyklus unterbrechen und hinter den Zyklus nen Switch oder so anmachen, der ein Event einleitet, bei dem das Monster stirbt.

Ich hoffe, dass war so verständlich, ist relativ hohes Maker-isch, obwohl ich auch kein Profi bin ^^
Wenn du es nicht verstehst, mach ich das Event nochmal und stell nen Screenshot rein ;)
LG
cenny

dasDull
06.10.2009, 16:10
Mit dem von Cenedy gepostetem Script ist es schonmal möglich, einen Schlag zu machen, der 2 Felder waagrecht oder senkrecht in eine Richtung geht.
Also:
P=Spieler, X=treffbare felder N=nicht treffbare Felder
NNXNN
NNXNN
XXPXX
NNXNN
NNXNN

Wenn du willst, das man auch innerhalb der Reichweite diagonal schlagen kann, musst du die Summe des X und des Y-Abstands berechnen, also die Anzahl der Felder, die du laufen müsstest, um die gleiche Position wie der Gegner zu haben.

Das geht am einfachsten, indem du wie in Cenedys Script die Koordinaten bestimmst, anschließend:
Abstand1=X-Held-XGegner
Wenn Abstand 1 kleiner null ist, dann Abstand 1 mal (-1).
Das Gleiche mit Abstand 2 für Y machen, dann die beiden Werte addieren.
Dann geht es weiter wie bei Cenedy: Liegt der Gegner in Reichweite, wird der Angriff ausgeführt.

Dann sieht das Ganze so aus:
NNXNN
NXXXN
XXPXX
NXXXN
NNXNN

Edit: Oh. Ich seh grad, dass das Thema ja uralt ist.

Tingles
17.10.2009, 22:09
ich habs grade aufgegeben, dass ist wirklich noch zu komplex für mich^^
aber wenn ich schonma hier bin, gibt es den ein einfaches KS mit Runden, was auch ich verstehen würde? *als einsteiger*

Arnold
17.10.2009, 22:25
du weißt schon das es bei einem AKS keine Runden gibt, oder?

Tingles
18.10.2009, 12:04
ja^^
ich bin zum schliss gekommen das ein AKS nicht wirklich in mein projekt passt, darum will ich jetzt ein rundenbasiertes KS machen.

Arnold
18.10.2009, 12:09
Und du weißt bestimmt auch das ein SKS viel schwieriger zu machen ist?

dasDull
18.10.2009, 12:10
Ein rundenbasiertes Ks ist genauso schwer zu erstellen, aber noch viiiiiel aufwendiger als ein Aks! Du musst ja noch ein ganzes Menü für Skills, Items und so machen, elementattribute und Zustände einbauen, ein Interface mit Lebensbalken erstellen und scripten und und und...
Im e-book gibt es eine detaillierte Schritt für Schritt-Beschreibung, aber am besten ist immer, man macht sowas selber, dann findet man sich besser zurecht und kann Zusatzinhalte einbauen.
Aber was ist denn mit dem Standart-Ks vom 2000er?
Das ist doch rundenbasiert.

Tingles
26.10.2009, 18:51
richtig, und genau das kampfsystem vom rpg maker benutze ich auch ab jetzt^^

kann also geschlossen werden hier

Corti
26.10.2009, 19:27
Und du weißt bestimmt auch das ein SKS viel schwieriger zu machen ist?
Blödsinn, ganz übler Blödsinn.

Rundenbasiert hat man völlige Kontrolle über die Reihefolge der Ereignisse.
Rundenbasiert hat man keinen 2D-Raum in dem rumkoordiniert werden muss.

Siccles
26.10.2009, 23:46
Blödsinn, ganz übler Blödsinn.

Rundenbasiert hat man völlige Kontrolle über die Reihefolge der Ereignisse.
Rundenbasiert hat man keinen 2D-Raum in dem rumkoordiniert werden muss.


ich würde sagen ein Rundenbasiertes ist aufwändiger (vom Zeitverbrauch und der Scriptlänge), ein Echtzeit2d-Kampfsystem hingegen komplizierter im Script an sich (vorallem weil man eine Echtzeit Gegner-Ki haben sollte, move to hero eignet sich nicht immer so toll :rolleyes:)