PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Ein Herausforderung für jeden Profi oder Fortgeschrittenen!



Majin-Vegeta2
02.08.2003, 16:47
Also ich brauche hilfe weil ich sowas noch nie gemacht habe.
Ich wollte einen Event machen der bestimmt wie der Held bzw. Marionetten (also andere Events) sich bewegen.
Die anzahl der Schritte wird Zufallsgemäß durch die Variable gewählt zum beispiel 23 Schritte so nun kommt das Problem nachdem der Held 10 Schritte geht geht es nach oben dann nach links nach unten und dann wieder nach rechts. Ich möchte das man dort auf der Karte nur mit zufallzahlen selbstlaufen gehen kann. z. B. 23,12,30 und nachdem der Schritte gelaufen ist bleibt er automatisch stehen und kan sich nicht bewegen. Danach soll aber die Marionetten ran und gehen irgendwie wie bei Suikoden 2 bei den Schlachten könnte mir einer so ein Skript bauen brauche es umbedingt für mein Rollenspiel bitte !
Achtung:
Es sollen keine Fragen zu meinem Spiel gestellt werden weil dies ein WIRKLICH geheimes projekt ist Was ich dann später bei RPGMAKER.COM präsentiere werde es ist mal was wirklich GANZ NEUES!

Simon
02.08.2003, 17:45
... aha. Klingt echt kompliziert, aber ich bezweifle, ob das so leicht zu machen ist, da es ja x-Möglichkeiten gibt, den Helden laufen zu lassen. Das die Marionette hinterherläuft könnte man theoretisch mit einem Switch lösen, aber das mit den Schritten: ich weiß ja nicht...

DJ n*grübel*

Majin-Vegeta2
02.08.2003, 19:20
Ich sagte ja nicht einfach aber die Marionetten laufen nicht dem Helden hinterher sonder sie haben auch Zufallszahlen damit man selber wählen kann wo sie hinlaufen! Sie sollen dem Helden nicht hinterlaufen sondern (wie blöd) ihr eigenleben haben es wäre ja dämlich da ja mein Spiel ein 1-4 Spieler wird. DEswegen brauche ich das ja! weiß fast alles ausser diesem Schitt ich kann bzw. habs noch nie gesehen/gemacht sonst hätte ich die Elemente darausgesucht und mein Spiel damit verbessert.
Brauche jemanden der sowas kann?
Was dafür rausspringt muss ich überlegen????
Auf jedenfall etwas genials!

TheBiber
02.08.2003, 19:59
Wenn du dein Problem so beschreiben würdest, dass man verstehen würde, was du meinst, könnte ich dir vielleicht helfen.

Majin-Vegeta2
02.08.2003, 20:18
°sind Felder okay?
okay das Feld sieht zum Beispiel so aus:
A° °°°°°° °°°°°Z
° ° ° °
°°° °°°°°°°°°°°°

Der Rest des Felders ist Lavabesipeilsweise also kann der Held ja nur den Weg gehen!
A= ANFANG
Z= ZIEL

DAs ist blöd das es sich verschiebt egal stellt es euch einfach vor!
Jetzt kommt der Würfel zum Einsatz
Man würfelt eine Zahl beispiel 12 so jetzt kommt das erste problem geh zwölf Felder auf dem Spielbrett erst geht der Held nach 4 rechts danach nach unten wieder rechts nach oben FERTIG.
Ich möchte jetzt das der Held nur 15 Schritte gehen darf da der Würfel dieses Zahl angezeigt hat und keinen Mehr oder weniger. (Problem 1 ich brauche das einmal wo der Held nach vorne und hinten gehen darf und einmal nur nach vorne gehen darf!) 2 ich kenne mich nicht damit aus wie das bestimmt wird wieviel der Held gehen darf.
Jetzt ist der nächste dran der ebenfalls seine Route selbst bestimmen kann aber in dem Fall geht es eh nur grade aus. Man kann dann zu 4,3oder zu 2 Spiel! Es ist wie ein Gesellschaftsspiel wie Spiel des Lebens, Monopoli usw. war das verständlich?
Leider siht durch die Verschiebung das Feld sehr schlecht aus, aber man kann es sich hoffentlich auch so vorstellen!

TheBiber
02.08.2003, 20:41
Original geschrieben von Majin-Vegeta2
Man würfelt eine Zahl beispiel 12 so jetzt kommt das erste problem geh zwölf Felder auf dem Spielbrett erst geht der Held nach 4 rechts danach nach unten wieder rechts nach oben FERTIG.

Vergiss es, deine Formulierungen versteht ja nun echt kein Schwein. http://www.multimediaxis.de/images/smilies/old/s_010.gif
Kannst wiederkommen, wenn du dich klar und verständlich ausdrücken kannst und vor allem erklärst, um was es überhaupt geht.

Majin-Vegeta2
02.08.2003, 21:24
Wenn du es so nicht verstehst könnte ich dir ja ein Skript schicken??
Wie wär´s? Und alle die das auch nicht verstehen können es auch haben, aber auch nur die die das machen würden! ....

Silencer
02.08.2003, 23:22
Las mich zusammenfassen du willst also eine Art Brettspiel machen indem man zu mehreren Personen an einem Computer spielen kann dafür baust du irgendeine beliebige Map. Auf der Manche Felder blockiert sind also nicht so wie in Monopoly das man nur eine möglichkeit hat weiterzugehen, sondern mehrere. Jetzt willst du eine Erklärung wie man es schaft das der momentan am Zug seiende Spieler genau so viele Schritte läuft wie durch eine Art Würfel zufällig bestimmt wurde ?

Das könnte man theoretisch mit vielen auf dem Boden verteilten Events machen. Die beim Betreten eine Var. um einen Punkt höher stellen und mit einem 2. Event wird dann der "Spielzug" an den 2. Spieler (Kann dieser Spieler auch vom Computer gesteuert sein ?) übergeben sobald diese Var. den gewürfelten Wert erreicht hat...

Oder meinst du etwas anderes (will ich nicht hoffen) dann erkläre es bitte deutlicher...

Hoffe ich konnte dir helfen

Evil Twin
03.08.2003, 03:11
Kannst du mir mal das Skript dazu schicken und nochmal eine Beschreibung, was du genau machen möchtest?

Adresse:eviltwin86@lycos.de

Majin-Vegeta2
03.08.2003, 04:55
Du hattes recht Silencer ich habe keine Wahl und muss diese Armseligearbeit auf mich nehmen .............(die ganzen Variablen Felder) EGAL......das macht ein gutes Spiel aus.......

Neue Fragen:
Ich würde gerne mal wissen wofür die die Zyklen stehen und das Kommentar?

TheBiber
03.08.2003, 05:07
Die Zyklen sind Schleifen. Alles was zwischen "Cycle" und "End Cycle" steht, wiederholt sich die ganze Zeit, bis ein "Break"-Befehl kommt. Verwendet werden Schleifen, um immer wiederkehrende Aktionen mehrmals auszuführen. Meist wird dabei auf eine Aktion des Spielers gewartet oder aber auch eine Zähler-Variable verwendet, um zu steuern, wann die Schleife abbricht. Eine Schleife, bei der kein "Break"-Befehl ausgeführt wird, nennt man Endlosschleife und diese sind verantwortlich dafür dafür, dass Programme hängen bleiben.

Schleifen sind gut dafür geeignet, um z.B. mit einigen wenigen Befehlen mehrere, hintereinanderfolgende Variablen auf einen bestimmten Wert zu setzen. Aber auch ein Befehlsmenü braucht eine Schleife, die solange wiederholt wird, bis ein Punkt angewählt wird. Schleifen sind ein grundlegendes Element jeglicher Programmierung und ohne sie würde es kein brauchbares Programm heute geben.


Die Kommentare dagegen bewirken eigentlich überhaupt nichts, sondern sind einfach dafür da, um das Script oder der Programmcode zu kommentieren, damit man einfacher versteht, was gemeint ist. Wenn man z.B. lange nicht mehr gearbeitet hat, vergisst man noch schnell, wie das ganze funktioniert hat und Kommentare erleichtern somit den Wiedereinstieg. Ausserdem sind Kommentare unerlässlich, wenn man ein Script an andere weitergeben möchte.

Majin-Vegeta2
03.08.2003, 13:31
Danke für deinen Ausführlichen Bericht (TheBiber)!

Neue Fragen was ich immer noch nicht begreife?

Wie funktioniert das Tastenbelegungssystem ?
Also z.B. wenn ich Leertaste drücke das er dann springt ...?
Was kann man noch alles mit diesen Tasten machen ??? Kann man sie immer wieder ändern?

Wenn ich noch Fragen darf?
Wofür werden Zyklen generell benutzt?
Bei Menü´s, aber warum, da muss sich doch nichts wiederholen oder?

GoodTwin
03.08.2003, 16:10
Original geschrieben von Majin-Vegeta2

Wenn ich noch Fragen darf?
Wofür werden Zyklen generell benutzt?
Bei Menü´s, aber warum, da muss sich doch nichts wiederholen oder?

Doch die Abfrage, welche Taste der Spieler gedrückt hat mußt du ständig wiederholen. Genauso funktionierts bei einem KS mit der Zielauswahl. Sonst fällt mir eigentlich nichts wieteres dazu ein.

TheBiber
03.08.2003, 18:58
Original geschrieben von Majin-Vegeta2
Danke für deinen Ausführlichen Bericht (TheBiber)!

Neue Fragen was ich immer noch nicht begreife?

Wie funktioniert das Tastenbelegungssystem ?
Also z.B. wenn ich Leertaste drücke das er dann springt ...?
Was kann man noch alles mit diesen Tasten machen ??? Kann man sie immer wieder ändern?

Mit "Enter Password" kann man festlegen, welche Taste das gedrückt wurde und diese dann in eine Variable speichern. Durch Überprüfung dieser Variable lassen sich dann Aktionen ausführen, die passieren, wenn die Taste gedrückt wurde.


Wenn ich noch Fragen darf?
Wofür werden Zyklen generell benutzt?
Bei Menü´s, aber warum, da muss sich doch nichts wiederholen oder?

Doch, die Abfrage muss z.B. solange wiederholt werden, bis man das Menü wieder verlässt. Oder wie gesagt, wenn du mehrere hintereinanderstehende Variable setzen musst, sind Schleifen ganz hilfreich, um dir eine Menge Schreibarbeit zu ersparen (Stichwort: Pointer, ist aber mehr was für Profis :rolleyes: ).

Silencer
03.08.2003, 20:28
wegen dem Schachbrett Würfel Zahl Lauf System nochmal: mir is da noch was eingefallen...! :
Und zwar könntest du das mit jener besagten Tastenselbst belegung machen. Also das du (als common event) enter password=rechts das dann der momentane Spieler ein Move event nach rechts hat aber ! auch die Var mit der Schritt Anzahl hochgestellt wird... So würdest du dir auf jeden Fall die Arbeit ersparen das Boden Event überall hinzu kopieren...

Versteht'e was ich mein ?

GoodTwin
03.08.2003, 23:55
Mal noch was zu dem "Enterpasswort"-Befehl. Ich hab mal rausgesucht welche Zahl in der Variable für welche gedrückte Taste steht.
1- Cursortaste unten
2- Cursortaste links
3- Cursortaste rechts
4- Cursortaste oben

@TheBiber:
Das hört sich ja alles ziemlich nach einem Profi an. Beschäfstigst du dich etwa mit Programmierung? Ich finde nämlich, dass sich Schleifen im Maker nur selten einsetzen lassen. In der "richtigen" Programmierung kann man damit viel mehr anfangen. Der Maker wäre sehr viel komfortabler, wenn man z.B. Zählschleifen zur Verfügung hätte.

TheBiber
04.08.2003, 02:36
Original geschrieben von GoodTwin
@TheBiber:
Das hört sich ja alles ziemlich nach einem Profi an. Beschäfstigst du dich etwa mit Programmierung?

Ich kann etwas Basic, Turbo Pascal und bin gerade am Lernen von C++, soviel dazu.


Ich finde nämlich, dass sich Schleifen im Maker nur selten einsetzen lassen. In der "richtigen" Programmierung kann man damit viel mehr anfangen. Der Maker wäre sehr viel komfortabler, wenn man z.B. Zählschleifen zur Verfügung hätte.

Naja, Zählschleifen lassen sich doch problemlos durch einfache Schleifen konstruieren. In der Programmierung wurden Zählschleifen schliesslich auch nur aus Faulheit eingeführt IMO. :D

Und wie gesagt, wenn es beim Maker um Variablen-Spielchen mit Pointern geht oder selbsgebastelte Menüs, dann sind Schleifen immer noch unerlässlich.

GoodTwin
04.08.2003, 03:03
Ich hab das Thema Programmierung, ..oh..sorry das heißt ja bei uns Informatisches Modellieren, in der Schule. Wir haben vor ungefähr einem halben Jahr damit angefangen, auch mit Turbo Pascal und nächstes Schuljahr gehts mit Delphi weiter.


Original geschrieben von TheBiber

Und wie gesagt, wenn es beim Maker um Variablen-Spielchen mit Pointern geht oder selbsgebastelte Menüs, dann sind Schleifen immer noch unerlässlich.

Was meinst du eigentlich mit "Variablen-Spielchen mit Pointern":confused:? Der Begriff Pointer sollte mir eigentlich was sagen, tuts aber im Moment leider aber nicht

MfG GoodTwin

TheBiber
04.08.2003, 03:39
Original geschrieben von GoodTwin
Was meinst du eigentlich mit "Variablen-Spielchen mit Pointern":confused:? Der Begriff Pointer sollte mir eigentlich was sagen, tuts aber im Moment leider aber nicht

Pointer sind im Grunde Variablen, welche die Adresse von anderen Variablen abspeichern. Ein Beispiel: Du möchtest 100 hintereinanderstehende Variablen auf den Wert 2 setzen. Natürlich könntest du jetzt 100 mal einen "Change Variable"-Befehl setzen, was aber etwas mühsam ist. Deshalb setzt du eine Variable (ich nenne sie jetzt "Pointer") auf den Adress-Wert der ersten Variable, die du auf 2 setzen willst und startest danach eine Schleife. Anschliessend machst du einen "Change Variable"-Befehl, allerdings wählst du nicht explizit eine Variable an, sondern nimmst die 3. Option: "Variable no." und wählst dort die Pointer-Variable und wählst weiter "set" und 2. Damit wird nicht der Pointer selbst, sondern die Variable mit dem Adress-Wert, der in der Pointer-Variable gespeichert ist, auf 2 gesetzt. Anschliessend musst du den Pointer noch um 1 erhöhen, damit bei jedem Schleifen-Durchgang die nächsthöhere Variable auf 2 gesetzt wird. Schliesslich baust du noch eine Fork ein, mit der Bedingung, dass die Pointer-Variable einen höheren Wert hat als der Adress-Wert der letzten Variable, die du auf 2 setzen möchtest. In der Fork machst du dann den Break-Befehl, damit die Schleife nach 100 Durchgängen ordnungsgemäss verlassen wird.

Ich hoffe, das war einigermassen verständlich. ;)

GoodTwin
04.08.2003, 04:11
@TheBiber:
Oh ja jetzt fällt mirs wieder ein.(Alles recht verständlich :) geschrieben.) Danke das du mir auf die Sprünge geholfen hast. Ich hab garnicht gewußt, dass man sowas mit dem Maker hinbekommt. Die Pointer werd ich bestimmt bei meinem KS noch brauchen. Also danke noch mal.http://www.multimediaxis.de/images/smilies/old/sm_12.gif

MfG GoodTwin

Trevor_Clim
04.08.2003, 04:54
Original geschrieben von TheBiber
Pointer sind im Grunde Variablen, welche die Adresse von anderen Variablen abspeichern. Ein Beispiel: Du möchtest 100 hintereinanderstehende Variablen auf den Wert 2 setzen. Natürlich könntest du jetzt 100 mal einen "Change Variable"-Befehl setzen, was aber etwas mühsam ist. Deshalb setzt du eine Variable (ich nenne sie jetzt "Pointer") auf den Adress-Wert der ersten Variable, die du auf 2 setzen willst und startest danach eine Schleife. Anschliessend machst du einen "Change Variable"-Befehl, allerdings wählst du nicht explizit eine Variable an, sondern nimmst die 3. Option: "Variable no." und wählst dort die Pointer-Variable und wählst weiter "set" und 2. Damit wird nicht der Pointer selbst, sondern die Variable mit dem Adress-Wert, der in der Pointer-Variable gespeichert ist, auf 2 gesetzt. Anschliessend musst du den Pointer noch um 1 erhöhen, damit bei jedem Schleifen-Durchgang die nächsthöhere Variable auf 2 gesetzt wird. Schliesslich baust du noch eine Fork ein, mit der Bedingung, dass die Pointer-Variable einen höheren Wert hat als der Adress-Wert der letzten Variable, die du auf 2 setzen möchtest. In der Fork machst du dann den Break-Befehl, damit die Schleife nach 100 Durchgängen ordnungsgemäss verlassen wird.

Ich hoffe, das war einigermassen verständlich. ;)
schlechtes beispiel ;)
wenn man 100 aufeinanderfolgende variablen einen bestimmten wert zuordnen will, geht am allereinfachsten die normale Change Variable-Funktion mit der RANGE FROM... TO... option ^^

TheBiber
04.08.2003, 07:08
Original geschrieben von Trevor_Clim
schlechtes beispiel ;)
wenn man 100 aufeinanderfolgende variablen einen bestimmten wert zuordnen will, geht am allereinfachsten die normale Change Variable-Funktion mit der RANGE FROM... TO... option ^^

lol, und ich dachte, diese Funktion gibt es nur bei den Switches. XD

Naja, dann halt: was ist, wenn man z.B. nur jeder 20. Variablen denselben Wert zuordnen möchte? Sowas gibt es bei meinem KS noch relativ oft, da ich die Variablen für die Helden- bzw. Monster-Werte nach 20er Gruppen sortiert habe.

Übrigens, was ich gerade erst bemerkt habe und mich wirklich stört ist, dass man bei den Forks nicht mit Hilfe von Zeigern abfragen kann. Bei den Variablen kann man dieses Problem zwar umgehen, indem man eine Hilfsvariable verwendet, bei den Switches allerdings gibt es keine Möglichkeit und so war ich unter anderem gezwungen, sämtliche Switches "manuell" abzufragen, was zu ca 14 Forks hintereinander führte. Manchmal können einem die Einschränkungen des Makers echt auf den Senkel gehen, vor allem, wenn man immer wieder weitere entdeckt. :rolleyes:

GoodTwin
06.08.2003, 02:14
Original geschrieben von TheBiber


Übrigens, was ich gerade erst bemerkt habe und mich wirklich stört ist, dass man bei den Forks nicht mit Hilfe von Zeigern abfragen kann. Bei den Variablen kann man dieses Problem zwar umgehen, indem man eine Hilfsvariable verwendet, bei den Switches allerdings ...

Tschuldigung wenn ich schion wieder ne Frage hab, aber wie kann man das bei den Variablen den Umgehen, ich hatte heute nämlich auch so eine Stelle in meinem KS, wo ich 16 Variablen abfragen musste und hab keinen einfacheren Weg gefunden.

MfG GoodTwin

TheBiber
06.08.2003, 03:40
Original geschrieben von GoodTwin
Tschuldigung wenn ich schion wieder ne Frage hab, aber wie kann man das bei den Variablen den Umgehen, ich hatte heute nämlich auch so eine Stelle in meinem KS, wo ich 16 Variablen abfragen musste und hab keinen einfacheren Weg gefunden.

MfG GoodTwin

Du benutzt den Befehl "Change Variable" und setzt eine Hilfsvariable auf den Wert einer Variablen, dessen Adresse in der Pointer-Variable gespeichert ist. Dies machst du mit der dritten Operand-Funktion "Variable ... Variable No.". In der Hilfsvariable ist nun der Wert gespeichert und kann per Fork abgefragt werden.

GoodTwin
06.08.2003, 03:56
Wieso bin ich da nicht selber drauf gekommen? :confused:
Aber danke nochmal für deine Hilfe. Ich glaub jetzt kann ich das KS an der ein oder anderen Stelle nochmal abkürzen,...naja wenn ich Lust hab.

Sorry 4 Spam, aber Höfflichkeit muss sein.:D

MfG GoodTwin

desred
17.08.2003, 09:21
tach

ich habe verstanden was du haben willst! allerdings habe ich nicht alle antworten gelesen, deswegen brauche ich jetzt noch eine klare antwort, ob du noch so ein skript brauchst oder nicht!

schreib mir am besten eine e-mail: desperadosRed@aol.com+

mfg

desred

Majin-Vegeta2
25.08.2003, 19:42
Ich habe mal so eine Frage an euch Profi ´s wofür sind die SzeneY oder X bei den Variabeln gut?

Und dann nach die X und Y Koordinate und ausser Sicht

Allgemein was bedeutet bei Variable das Ereignis ???

Dann noch was soll den jetzt der Unterschied zwischen Variable Nr. und der normalen Variable sein???

Das wären meine Fragen für heute ich bitte um einen verständlichen Text mit Beispiel.

Vielen Dank!

:)