PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Frage zu KS



Check5
20.11.2003, 20:55
Servus.
Hab ma wieder n Prob. und zwar:
Ich bin grad dabei mir n KS zu bauen.
Das funktionierte bis jetzt auch wundaba aber jetzt bin ich grad dabei n Zaubersystem alla Secret of Mana zu bauen und ich weiß nicht wie ich das hinkriegen soll.
Ich wills halt genau so wie in SOM haben und daher z.B auch das man nur die Monster die man sieht angreifen kann.

Kann mir jemand helfen?:(

08|15`DBZ-n00b|SSJ
20.11.2003, 22:13
Du nimmst die X und Y Werte deines Chars.
Danach rechnest du aus, wieviele Felder man auf dem Bildschirm sehen kann, wenn man im Spiel ist.
Wenn mann z.B. 20X und 20Y Felder sehen kann (in der Regel kann man mehr sehen - ist nur theoretisch)rechnst du zu deinen Char X und Y Wert jeweils 10 in jede Richtung (also -10Y +10Y ; -10X +10X)
Nun musst du noch die X und Y Werte deiner Gegner berechnen.
Nun musst du noch abfragen ob deine genger innerhalb des Feldes sichtbar sind.
Das machst du folgender Weise (ich benutze jetzt einen Fantasie syntax, weil er auch für Anfänger verständlich sein sollte und ich den vom maker nicht auswenig weiß)
Die Variable in der die X Position des Spielers genannt wird nennen wir <PlayerX> und die mit Y <PlayerY>
Die Variablen in der wir die Felder um den Player herum (den bildschimr also) berechnen nennen wir <reichweite X-links> <reichweite X-rechts> und <Reichweite Y-runter> <Reichweite Y-hoch>

So dann wollen wir mal:

//zunächst Berechnung der Player Position
[Bestimme Variable] <PlayerX> = <hero position X>
[Bestimme Variable] <PlayerY> = <hero position Y>

//Als nächstes dir Reichweite Felder X
[Ändere Variable] <reichweite X-link> = <PlayerX>
[Ändere Variable] <reichweite X-rechts> = <PlayerX>
[Ändere Variable] <reichweite X-link> - <10>
[Ändere Variable] <reichweite X-rechts> + <10>

//nun die Reichweite Felder Y
[Ändere Variable] <reichweite Y-hoch= <PlayerY>
[Ändere Variable] <reichweite Y-runter> = <PlayerY>
[Ändere Variable] <reichweite Y-hoch> - <10>
[Ändere Variable] <reichweite Y-runter> + <10>

So nun haben wir die Postion des Player und können prüfen ob sich etwas um ihn herum auf dem Bildschirm befindet.
Wir werden allerdings nur ein Monster berechnen.
Die X und Y Variablen des Gegners nennen wir <MonsterX> und <MonsterY>
Falls sich das Monster auf dem Bildschirm befindet setzen wir die Variable <Monster-Bildschirm> auf ON

Zunächst berechnen wir die Position der Monster. Du verwendest bestimmt einen NPC als Monster - in diesem Fall können wir ja einfach einer Variable den X und Y Wert dieses Monster anpassen.
WARNUNG: du solltest die X und Y Position des Monster am besten in dem Monster Event selbst berechnen, da du dann einfach bei change Variable die Möglichkeit wähen kannst <MonsterX> = <This Event X position>

[Bestimme Variable] <MonsterX> = <This event X>
[Bestimme Variable] <MonsterY> = <This event Y>

//nun kommt die Berechnung, ob sich der NPC in Sicht befindet
Die Zeichen > und < zwischen den Variablen stehen natürlich für "größer als" und "kleiner als" ;)
If steht für den Beginn einer Fork.

[If] <MonsterX> > <Reichweite X-links>
[If] <MonsterX> < <Reichweite X-rechts>
[If] <MonsterY> > <Reichweite Y-hoch>
[If] <MonsterY> < <Reichweite Y-runter>
[Ändere SWITCH] <Monster-Bildschirm> = <ON>

Nun musst du nur noch abfragen, ob der Switch <Monster-Bildschirm> auf ON ist und wenn ja machst du es so, dass dein Char auf ihn zaubern kann. (das musst du aber selber hinkriegen ;) )

Falls du das nicht verstanden hast, würde ich empfehlen, dass du dich stärker mit den X und Y Werten im Maker beschäftigst.

Check5
21.11.2003, 22:13
Hat irgendwie nich funktioniert.
Kann mir irgendjemand den genauen Befehl schreiben, weil ich mir vorstellen könnte das ich irgendwo in dem Befehl nen Fehler gemacht habe:D
Ich hab die englische Version des Makers

08|15`DBZ-n00b|SSJ
22.11.2003, 04:44
Folgenden Teil habe ich in einem Common Event:


<>Variable Ch:[0001:Player X]Set, Hero Xpos
<>Variable Ch:[0002:Player Y]Set, Hero Ypos

<>Variable Ch:[0003:Reichweite X-links]Set Var.[0001]val
<>Variable Ch:[0004:Reichweite X-rechts]Set Var.[0001]val
<>Variable Ch:[0003:Reichweite X-links]- ,10
<>Variable Ch:[0004:Reichweite X-rechts]+ ,10

<>Variable Ch:[0005:Reichweite Y-hoch]Set Var.[0002]val
<>Variable Ch:[0006:Reichweite Y-runter]Set Var.[0002]val
<>Variable Ch:[0005:Reichweite Y-hoch]- ,10
<>Variable Ch:[0006:Reichweite Y-runter]+ ,10



Folgenden Teil habe ich dem Event, welches das Monster darstellt.



<>Variable Ch:[0007:MonsterX]Set, this Event Xpos
<>Variable Ch:[0008:MonsterY]Set, this Event Ypos

<>FORK Optn:Varbl[0007:MonsterX]-V[0003]less
<>FORK Optn:Varbl[0007:MonsterX]-V[0004]abov
<>FORK Optn:Varbl[0009:MonsterY]-V[0005]abov
<>FORK Optn:Varbl[0009:MonsterX]-V[0006]less
<>Change Switch:[0001:Monster-Bildschirm]-ON Set
<>
:END Case
<>
:END Case
<>
:END Case
<>
:End Case
<>