Ergebnis 1 bis 16 von 16

Thema: RPG-Maker-XP-Sammelthread für Probleme

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Zitat Zitat von Scha Beitrag anzeigen
    [FONT="Arial"]
    4.
    Diese Frage ist schon etwas kniffliger.

    Ich suche nach einer Möglichkeit, mehrere Speicherinstanzen aufzurufen, bevor das Spiel beginnt. Man kann sich das wie mit Profilen vorstellen.
    Man ruft ein Profil auf (worin man Daten speichern kann), und jedes individuelle Profil besitzt dann einen eigenen Satz Speicherstände (so wie man sie normal kennt - siehe Bild).
    Dabei soll noch die Möglichkeit bestehen, wenn in einem Spielstand ein Switch umgelegt wurde (bzw. Variable geändert), das das im Profil wiedergespiegelt wird
    (z.B. man verändert im Profil eine Optionseinstellung wie z.B. Windowsskin und diese Einstellung überträgt sich mit dem des Speicherstands im Spiel, usw.)
    Bevor ich mich näher an dieses Thema heranwage, wüsst ich gern, ob dies überhaupt halbwegs machbar wäre (verschiedene Speicherstände wohl über RGSS), und
    wo die Grenzen/Möglichkeiten liegen. ^^;

    Danke für die Hilfe im Vorraus~[/FONT]
    Und wieso willst du Profile, und benutzt nicht einfach einen Skript der 99 Speicherstände enthält?o_O

  2. #2
    1)
    mach aus der -4 eine 4 un dann gehts doch recht einfach.
    da haste in der 2. variable die zahl 10000 (10^4) und kannst damit die zahlen vor und nach dem komma berechnen.
    36138 / 10000 = 3
    36138 mod 10000 = 6138
    => 3,6138

    allerdings kann man auch gleitkommazahlen in den variablen speichern.
    dazu musst du bei den event commands auf der letzten seite ganz unten den befehl call script verwenden.
    $game_variables[ID] = 3.6138
    ID durch die variablen id ersetzen und darauf achten dass die zahl kein komma sondern einen punkt hat.

    2)
    uff das is doch mal ne frage ._.
    es wurde extra ein eigener synthesizer eingebaut damit die midis auf allen pcs gleich klingen, den jetzt zu deaktivieren ist leider nicht möglich.
    man könnte aber versuchen die datei über die winmm.dll abzuspielen.
    leider weiß ich nicht genau wie...

    3)
    man kann dieses automatische umdrehen ausstellen, aber das gilt dann für alle events.
    Im script Game_Character zeile 196 muss turn_toward_player gelöscht oder ein # davor geschrieben werden.

    4)
    grenzen: keine - möglich: alles!
    bei rgss erweiterungen ist es immer nur eine frage der erfahrung und der performance (niemand mag ein 3d spiel mit 3 fps^^)

  3. #3

    Users Awaiting Email Confirmation

    Zitat Zitat von Arnold Beitrag anzeigen
    Und wieso willst du Profile, und benutzt nicht einfach einen Skript der 99 Speicherstände enthält?o_O
    Es geht um das wie, und nicht um das weshalb. ^^
    Im Grunde ist das Prinzip: Hauptspiel > Profile > Jeweils eigene Speicherstände.
    Aber wenn man Shining Advances Antwort glauben schenken darf, dann ist das alles nur eine Frage der Materie.

    Zu 1.
    Jetzt stellt sich mir noch zusätzlich die Frage, wie man z.B. auf ein Ergebnis 0.5 kommt. Wenn man Variablen dividiert (z.B. 50/100), dann ergibt das immer 0 (und nicht wie im Beispiel 0.5).
    Ich will eigentlich ganz simpel eine Formel anwenden die den kleineren Wert durch den grösseren teilt, und mit einem Prozent Wert multipliziert.
    Dazu bitte auch eine Variablen und eine RGSS Variante (Schulmathematik ist schon eine Weile her). ^^

    Zu 3.
    Funktioniert einwandfrei! (Da hätte ich noch lang mit dem Maker herumprobieren können...)
    Aber was muss ich nun in Zeile 196 angeben, damit ich diese Funktion über Variablen/Switches ein oder ausschalten kann? (attr_reader?)

    Die Fragen sind eigentlich nur da, weil man sich mit dem Thema noch zu wenig auseinander gesetzt hat, oder keine eigene Lösung findet (ich schätz mal, so geht es den meisten). Demnächst werd ich mir RGSS Tutorials durchschaun, und hoffe, das solche Fragen in Zukunft nicht mehr auftauchen werden. ^^

  4. #4
    zu 1
    mit event commands gibts 2 möglichkeiten (wobei die letzte wohl ein wenig mit rgss arbeitet)
    1)
    rechne doch einfach mit ganzzahligen prozent statt dezimalbrüchen.
    2/5 wäre 40%
    also
    2*100/5=40
    wichtig dabei ist, dass vor dem dividieren mit 100 multipliziert wird.
    (ansonsten kommt 0 dabei raus)
    wenn du jetzt 40 prozent von zb 120 haben willst rechnest du
    120*40/100=48
    in diesem fall muss möglichst spät durch 100 geteilt werden.
    (ansonsten kommt 40 raus)

    2)
    wenn eine zahl in der rechnung bereits eine gleitkommazahl ist ist das ergebnis ebenfalls von diesem typ.
    durch
    $game_variables[ID] = $game_variables[ID].to_f
    wird die zahl zu einer gleitkommazahl.
    nun kannst du diese variable ganz normal über event commands durch eine größere zahl teilen etc.
    die zahl wird aber automatisch wieder eine ganze zahl wenn du ihr einen wert zuordnest ("set" müste die operation bei den event commands lauten)


    die komplette rgss lösung wäre
    Code:
    prozent = $game_variables[1].to_f / $game_variables[2]
    $game_variables[3] *= prozent
    var 1 und 2 ergeben hierbei den prozent wert, welcher in "prozent" zwischen gespeichert wird.
    danach wird variable 3 mit dem prozent wert multipliziert.


    zu 3
    das über switches zu regeln wäre nicht so gut da es erneut für alle events gilt.
    es sei denn es soll eh für alle events auf einer karte gelten dann is das ganze kein problem.

    um es über switches/variablen zu machen kannst du hinter turn_toward_player eine if anweisung schreiben
    bsp
    turn_toward_player if $game_switches[ID] == true
    oder
    turn_toward_player if $game_variables[ID] == 1337
    bei den switches ist true => an und false => aus
    wie es mit den variablen funktioniert sollte eigtl klar sein...
    hat die var den wert 1337 dreht sich das event zum helden.

    falls sich dieses drehen aber nur für bestimmte events gelten soll kann ich dir folgende möglichkeit ans herz legen
    turn_toward_player unless @event.name.include?("DIRFIX")
    in diesem fall drehen sich nur die events die NICHT DIRFIX im namen haben (das feld oben links bei den events).
    (im namen haben bedeutet "aBcDIRFIX42dEf" wird ebenfalls akzeptiert - aber daran denken dirfix groß zu schreiben)

  5. #5

    Users Awaiting Email Confirmation

    Danke, das hat mir schon um einiges weitergeholfen. :)

    Zitat Zitat
    falls sich dieses drehen aber nur für bestimmte events gelten soll kann ich dir folgende möglichkeit ans herz legen
    turn_toward_player unless @event.name.include?("DIRFIX")
    in diesem fall drehen sich nur die events die NICHT DIRFIX im namen haben (das feld oben links bei den events).
    (im namen haben bedeutet "aBcDIRFIX42dEf" wird ebenfalls akzeptiert - aber daran denken dirfix groß zu schreiben)
    Das wäre die perfekte Lösung. ^^ Hatte soetwas auch schon in einem Mini-Map Skript entdeckt, wo ein Comment den Typ angibt. Aber ich dachte, das wäre um einiges komplizierter zu gestalten.

    Mfg Scha

  6. #6
    Nur mal so als Einwurf, eigentlich wurde der Thread "Kleine RMXP Faq" schon als Sammelthread für Fragen benutzt.

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •