PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : 999.999



Dereknor
02.06.2004, 22:27
Hi,

Kennt jemand einen weg, die Variablen größer zu kriegen als 999.999 ? Das is furchbar, meine sinus und cosinusscripte kommen dauernt über die 999.999 rüber und dann geht nix mehr, weil minuszahlen an anderen stellen rauskommen usw.

Kann mir da irgendjemand helfen ? Würde ja schon reichen wenn es bis 9.999.999 gehen würde
Hab es schon mit dem Resourcehacker probiert, aber leider nix gefunden

Aurae
02.06.2004, 22:32
Ressource Hacker.
Kennst du den?
In der letzten Makersmind-Ausgabe war ein Tutorial dazu drin.

Dereknor
02.06.2004, 22:37
Ja, hab den. Aber finde nix dazu wie man die variablengröße ändern kann.

Aurae
02.06.2004, 22:56
Pass auf.

Öffne die RPG_2000.exe mim Ressource Hacker.
Dann suchst du nach folgenden Einträgen:

Change Variable
Max Data Num.

Jetzt solltest du ein paar Zeilen darunter den Eintrag 'MaxValue' finden. Änder die Zahl auf eine beliebige, die du willst.


EDIT: Warte mal ... ich glaub ich hab dich falsch verstanden ... du willst, dass eine Variable einen größeren Wert als 999.999 bekommt? Oh, dann bringt dir das ja gar nichts.

Blackadder
02.06.2004, 22:57
eine variable hat max. 999'999 und min. -999'999.

999'999 + 999'999 + 1 (da 0 auch ein wert ist) = 1'999'999

mit einer variablen kannst du also maximal 1'999'999 werte definieren. nur musst du dann auf negative werte verzichten.

damit dann -999'999 auch den anfangswert 0 hat, musst du die varaiablen immer mit "change var. + 999'999" anpassen.
edit: ach ne, das geht gar nich... die anpassung an 0. verdammt. ;_;

Dereknor
02.06.2004, 23:42
bin am verzweifeln :(

Hab zwar ne anleitung gefunden wie man angeblich 99.999.999 kriegen kann mit dem resource hacker, hat aber nicht funktioniert

Und im moment scheitert mein program leider an der aufgabe 1500x900

kann diese zahlen aber leider nicht kürzen, da sie schon um 1000 gekürzt sind und später dann wieder mit 1000 multipliziert werden müssen. Auch kann es vorkommen, daß die zahlen dann mal 15x9 sind, und dann würden diese zahlen im nix verschwinden

Habe schon sehr viel getrickst, aber an vielen stellen komme ich einfach nicht drumrum, da die zahlen über 1.000.000 gehen

Aurae
02.06.2004, 23:46
Aber würde es nicht so gehen...?:

du hast 1500 und 900 ... die willst du malnehmen.

Und du sagst, es sei schon mit 1000 gekürzt worden.
dann kürz sie doch noch weiter, auf 15*9, und nehm sie später nicht mit 1000, sondern mit 100000 mal. Geht das denn nicht? ó_ò

Blackadder
02.06.2004, 23:48
warum müssen die zahlen mit 1000 multipliziert werden? ist die genauigkeit der zahl so wichtig?
hab keine ahnung was sinus ist. zeig mal deine berechnungen auf, vielleicht könnt ich das umstrukturieren.


@Aurae:
das problem ist, dass die zahl den wert von 999'999 (resp 1999999)beim multiplizieren überschreitet. oder die genauigkeit würde daran leiden, da der maker keine nach-komma-stellen berechnet.

S!r !ronh@nd
02.06.2004, 23:54
warum müssen die zahlen mit 1000 multipliziert werden? ist die genauigkeit der zahl so wichtig?

ja, weil man bei einem halbwegs genauem Sinus mit mehreren Nachkommastellen arbeiten muss, die der Maker ja leider nicht unterstützt. Wenn man den Sinus dann noch (auf dem Maker gezwungenermaßen) durch Polynome approximieren muss, wirds nochmal heftiger.

Mir würd außer dem Ressource Hacker auch nichts einfallen und der is nicht grad mein Fachgebiet... :\

Blackadder
02.06.2004, 23:55
gibt es keine alternative zum sinus? wozu braucht man den sinus, bitte erklären. ^^
wozu benötigst du den sinus in deinem spiel?

da lässt sich doch bestimmt ne andere lösung finden.

Malice
03.06.2004, 00:03
Original geschrieben von S!r !ronh@nd
Mir würd außer dem Ressource Hacker auch nichts einfallen und der is nicht grad mein Fachgebiet... :\


Ohne im Maker selbst umzuprogrammieren wird das überhaupt nicht gehen, der lässt nur sechsstellige Werte zu und setzt sie falls sie mehr Stellen haben entsprechend herauf/herunter. Aber es lässt sich sicher -wie bereits erwähnt- eine Alternative finden.

MagicMagor
03.06.2004, 00:16
Mit dem RH scheint es nicht zu gehen. Die Begrenzung ist vermutlich direkt im Code eingebaut.

Eine Alternative wäre es natürlich auf den 2k3er zu wechseln. Die ganzen Skripte werden 1 zu 1 übernommen und der 2k3 kann 7stellige Variablen.

CapSeb
03.06.2004, 01:00
Nimm doch einfach zwei Variablen. Wenn die erste auf 999.999 ist, geht die zweite auf 1 und die erste wird so zurück verrechnet, dass der Wert wieder stimmt. Man müsste dann nur ein Zurückrechnungsverfahren entwickeln.

Fallst du meinst, dass es nicht klappt, kannst du ja einfach mal ein konkretes Rechenbeispiel nennen.

Blackadder
03.06.2004, 01:51
Original geschrieben von CapSeb
Nimm doch einfach zwei Variablen. Wenn die erste auf 999.999 ist, geht die zweite auf 1 und die erste wird so zurück verrechnet, dass der Wert wieder stimmt. Man müsste dann nur ein Zurückrechnungsverfahren entwickeln.

Fallst du meinst, dass es nicht klappt, kannst du ja einfach mal ein konkretes Rechenbeispiel nennen. das ergebnis des makers kann den wert von 999'999 nicht überschreiten, d.h. wenn ich dem maker z.b. die operation 100'000 * 100'000 angebe, wird das ergebnis 999'999 sein.
das problem ist, dass man nun nicht weiss, wieviel der neuen variablen dazugezählt wird, da der maker den rest nicht "im gedächtnis" behält.
glaub ich zumindest.


daher würde ich raten, die sinus-methode zu umgehen.

Dhan
03.06.2004, 02:58
@trickster:
dann rechnet man das Ergebniss eben mehrmals, einmal durch 10 hoch irgendwas geteilt was dann der höheren Zahl dazugezählt wird
oder man macht die Rechnungen als eigene Funktion bzw CE

CapSeb
03.06.2004, 03:57
Genau das meine ich mit Zurückrechnungverfahren:
(das => -Zeichen soll den Wert, den der RPG Maker ausspuckt, zeigen)

100.000 * 100.000 => 999.999 // 0 (Var.1=999.999 // Var.2=0)
100.000 * 100.000 - 999.999 => 999.999 // 1
100.000 * 100.000 - 2 * 999.999 => 999.999 // 2
100.000 * 100.000 - 3 * 999.999 => 999.999 // 3
.
.
.
100.000 * 100.000 - 10.000 * 999.999 => 10.000 // 10.000

10.000 // 10.000 = 10.000.000.000 = 100.000 * 100.000

------------------------------------------------------------

Das ist der mathematische Teil. Da der RPG Maker aber beispielsweise
100000*100000-10000*999999 nicht in einem Durchgang rechnen kann, kommt null raus (eigentlich: 10000).
Aus diesem Grund muss es über Schleifen geregelt werden, was allerdings etwas länger dauert.
Die Zahl 100.000 (x) wird in unserem Beispiel 100.000(y) mal zu null addiert. Immer wenn das Ergebnis 999.999 ist, wird eine zweite um eins erhöht. Die erste Variable wird:
Durch x geteilt,
mit x mal genommen,
999999 subtrahiert,
x hinzu addiert.

Dereknor
03.06.2004, 04:51
Ich kann den Sinus Leider nicht umgehen, da ich kreisberechnungen machen muß. Verwende auch den Cosinus.
Aber anders geht es leider nicht.
In den meisten fällen läuft es ja auch. Aber das problem ist, daß ich oft werte habe, die ich selber schon dividieren mußte damit sie nicht zu groß werden und die genauigkeit am ende zu kurz komen würde wenn ich nochmal dividieren würde. Schon jetzt hat der Winkel 89 einen höheren Sinuswert als 90 durch rundungsungenauigkeiten.
Dann werden die Sinuswerte aber auch noch weiter verwendet für weitere rechnungen usw.
Am ende komme ich einfach nicht mehr weiter mit dividieren, weil es sonst einfach zu ungenau wird.

Habe nun aber eh vor, das spiel dann ein wenig unkomplizierter zu machen. Die Planeten bewegen sich dann einfach nurnoch auf festen bahnen und nicht mehr frei, außer ich finde vielleicht morgen noch einen weg

NPC Fighter
05.06.2004, 01:01
Wozu braucht man Sinus oder Cosinis im Maker? Was kann man denn damit anfangen?

Dereknor
05.06.2004, 01:50
Kreisberechnungen

Also z.B. kannst du sagen, daß ein Raumschiff sich um 360 grad drehen kann. Du sagst einfach, daß rechts z.B. grad 0 ist und links dann 180 grad währe. Nun kannst du sagen, daß das schiff in richtung 35,3 Grad fliegt und anhand von Sinus und Cosinus kannst du dann errechnen, um wieviele Felder es sich auf der X und Y achse bewegt. Da aber die normalen felder dafür zu grob währen, habe ich jedes feld nochmal in 1000 einzelfelder eingeteilt. Dadurch können sich nun Planeten z.B. auch im Kreis drehen um einen Schwerpunkt usw.
Es befreit die objekte sozusagen aus dem Koordinatensystem, daß nun nurnoch zum anzeigen benutzt wird. Bewegen tun sich aber die objekte jetzt alle in alle richtungen anstatt nur nach links, rechts, oben und unten

NPC Fighter
05.06.2004, 02:46
Cool! Wird das ein Script oder ein Spiel?

BOG

Dhan
05.06.2004, 03:39
Wenn Sinus net klappt, mach einfach, dass es nur ganze Winkel gibt und benutz eine Tabelle

Dereknor
05.06.2004, 16:09
Doch, der sinus und cosinus klappen ganz gut. Leider kann ich davon schlecht ne Demo zeigen, denn die planetenberechnung dauert immer etwa 60 Sekunden. Und da ist nicht viel mit zeigen hehe

Das merkt man erst im spiel, nach einiger zeit spielen, daß die monde und planeten ein wenig woanders sind.

Die Raumschiffe bewegen sich aber auch so, davon könnte ich später mal ne kleine demo machen damit ihr euch das angucken könnt. Aber ein script wird es eigentlich nicht. Theoretisch könnte man es sich aber rauskopieren. Es ist nur ein common event. Man legt die variable "sinuswinkel" fest und startet diese funktion. Die berechnet dann den Wert dieser Variabel und gibt ihn in der Variabel "Sinuswert" wieder, der dann von dem event danach ausgelesen werden kann, der den sinusevent gestartet hat. Das selbe hab ich eben auch für Cosinus und wurzelberechnung gemacht. Theoretisch könnte die jemand als Script benutzen.