Seite 1 von 3 123 LetzteLetzte
Ergebnis 1 bis 20 von 52

Thema: [XP/ Ruby] Fragensammelthread (1.12.)

  1. #1

    [XP/ Ruby] Fragensammelthread (1.12.)

    Da ich ungern für jede kleine Frage einen neuen Thread eröffne, mach ich einfach einen Sammelthread hier draus. Das Datum im Titel soll angeben wann die letzte Frage gepostet wurde falls es irgendjemandem was bringt

    Alte Fragen:

    Geändert von Fatalis (01.12.2012 um 17:21 Uhr)

  2. #2
    ich bin mir nicht 100%ig sicher, ob das hilft, aber änder die größe deines bildes mal auf 17x20 pixel
    im moment ist die mitte deines bildes nämlich zwischen der 8. und der 9. pixelspalte. durch rundungsfehler springt dein bild nun zwischen diesen beiden spalten hin und her.
    wenn du 17 pixel breite bilder benutzt, liegt die mitte genau auf der 9. spalte (es liegen dann nämlich 8 spalten links und 8 spalten rechts davon -> 8 + 1 + 8 = 17)

    vermutlich bringt das aber nix weil sich die breite des bildes ohnehin durch den zoom ständig verändert.
    da wird aus der ungeraden zahl an spalten schnell eine gerade :/

  3. #3
    Gute Idee, ändert leider in der Tat nichts

  4. #4
    Hast du verschieden-Breite Animation-Schritte? liegts evtl. daran? Ich bezweifel es, aber ist das einzige, was mir um die Zeit einfällt^^.

  5. #5
    Nein, die einzigen Aufrufe sind show picture mit zoomx=20, move picture zu zoomx=100 und nach kurzer Verzögerung (nachdem das erste move picture abgeschlossen ist) move picture zu zoomx=125, das Ruckeln tritt ja schon beim ersten move picture auf.
    Ich hab mir auch testweise von move picture alle aufrufe mit den Parametern ausgeben lasse, da ist auch alles so, wie es sein sollte.

  6. #6
    Ich hab mich mal dafür entschlossen hier raus nen Sammelthread zu machen um das Forum nicht mit Fragethreads zu überspammen. Alte Frage ist noch offen und im 1. Post einsehbar wenn vielleicht doch noch jemand eine Idee dazu hat

    Neue Frage:
    Der XP verwendet ja eine anscheinend recht alte Version von Ruby. Einige Methoden, die ich gerne benutzen würde, sind nicht vorhanden. Es ist zwar möglich, diese selbst nachzudefinieren, aber auf Dauer kann da doch einiges zusammenkommen an unnötiger zusätzlicher Arbeit.
    Das Problem ist, dass ich nicht wüsste, wo ich mir den Code besorgen könnte für die ganzen neuen Methoden. Auf der ruby-doc ist zwar ein Kasten mit Source, der Inhalt sieht aber für mein bisheriges Ruby-Verständnis noch recht kryptisch aus und wenn ich ihn in den XP reinkopiere, krieg ich nur eine Fehlermeldung.
    Frage ist also, gibt es irgendwo den Code von Ruby Methoden aus neueren Versionen frei zugänglich, sodass man ihn in den RPGXP Skript Bereich kopieren könnte? Oder zumindest eine Sammlung von viel verwendeten Methoden?

  7. #7
    Methoden der Core-Library sind in C geschrieben und lassen sich nicht in den Maker einbinden. Bei der Standardlibrary sind die meisten Klassen in Ruby geschrieben. Deren Sourcecode ließe sich also in den Maker einfügen.

    Wenn dich interessiert, wie die Methoden der Core-Library als Rubycode aussehen würden, kannst du dir ja mal Rubinius anschauen: https://github.com/rubinius/rubinius...kernel/common/
    Das ist eine Ruby-Implementation, die zum größten Teil in Ruby selbst geschrieben ist. Auch die Kernklassen wie Array, Enumerable etc. sind in Ruby geschrieben. Aber auch da kannst du oftmals den Code nicht 1:1 rüberkopieren, da Rubinius auch ein paar interne Klassen und Methoden hat, die der Maker nicht kennt.

    Ich denke die beste Lösung ist, auf diese zusätzlichen Methoden einfach zu verzichten. So viele wichtige sind ja imo nicht dabei.

  8. #8
    Mmhm am schemrzlichsten hab ich bisher min_by / max_by vermisst, die ließen sich zum Glück recht einfach implementieren.
    Danke jedenfalls für den Link, wenn ich mal was dringend brauche sollte mir der Code zumindest einen Denkanstoß zur Implementation geben wenn ich auf dem Schlauch stehe

  9. #9
    Zwei Fragen, einmal technischer und einmal mathematischer Natur

    Technisch: Ich würde gerne zur besseren Übersicht ein paar mehr Ordner bei den Grafiken anlegen. Das Problem ist, dass ich über die Materialbase im Maker ja nur die Standardordner sehe und darüber nicht Inhalte weiterer Ordner verwalten kann. Aus meiner Erinnerung zum Rm2k konnte es da verschiedene Probleme geben, wenn man Dateien einfach reinkopiert hat statt sie über den Maker zu importieren. Frage ist, kann ich beim XP bedenklos Grafiken in die Ordner kopieren oder muss ich mit irgendwelchen Nebeneffekten rechnen?

    Mathe: Wahrscheinlichkeitsrechnung, ugh. Es geht um Techniken, die zB die Treffergenauigkeit erhöhen. Also beispielsweise, man hat normalerweise eine Treffwahrscheinlichkeit von 90% und eine Technik, die die Trefferwahrscheinlichkeit um 50% erhöht. Rein logisch sollte da ja irgendwas zwischen 91 und 99 % rauskommen. Mit naiven Ansätzen, wie die Trefferwahrscheinlichkeit mit dem Modifikator zu multipliziere,n kommt man nicht weit (90% * 1.5 = 135%).
    Ich denke, die Rechnung wäre in etwa so richtig: Wenn man zu den 90% nicht trifft, hat man nochmal einmal die halbe Chance (45%), doch noch zu treffen, also 0.9 + 0.1 * (0.9*0.5) = 90.045. Bei einer Ausgangschance von 50% käme man immerhin auf 62.5%
    Formel, die sich soweit daraus ergibt, wäre x + ((1-x) * (m-1)*x) mit x als Trefferquote und m als Mod (In dem 1. Beispiel wäre x = 0.9 und m = 1.5). Funktioniert aber auch nur für Werte von m zwischen 1 und 2.
    Das Problem ist, das Ganze in eine anständige Formel zu packen, die auch funktioniert, wenn der Mod unter 1 oder über 2 ist. Ich mag Mathe eigentlich normalerweise, aber Wahrscheinlichkeitsrechnung ist wirklich nicht meins - Für irgendwelche Ideen zu einer anständigen Formel wäre ich dankbar.

  10. #10
    Ordnerstruktur: Ich hab nur mittelmässige Erfahrung auf dem Gebiet, es gibt einige Dinge zu bedenken.
    * Du kannst die Graphiken dann soweit ich das sehe aus den entsprechenden Ordner nicht mehr aus RPG:ache ziehen - imo ist der Unterschied bei Festplattenzugriff nur unwesentlich langsamer und macht sich eher auf langsameren Rechnern oder wenn viel Auslastung besteht bemerken.
    * Wenn du mit einem entsprechenden Grafikprogramm es hinbekommst, halbtransparenz und transparenz zu setzen oder simulieren und Bilder benutzt, die eh nicht soviele Vorgaben haben (wobei das auch mit Tilesets und Charsets funktionieren könnte, aber da würd ich mich nicht drauf verlassen) sollte es kaum Probleme geben wenn du die Grafiken einfach in den Ordner ziehst
    Waren jetzt nur 2, ich fürchte ich hab welche die ich erwähnen wollte während des Schreibens vergessen.
    Alternative dazu wäre übrigens Prefixe vor Bildnamen - Subordner also Praktisch mit Prefixen simulieren. So bring ich bei mir Ordnung rein.

    Mathematisch: Ich würd den Ansatz anders wählen. 1,5-fache Trefferchance heisst, 1,5 mal so selten verfehlen (vor Ausweichen, aber im Grune ist das vor und nach Ausweichen-Modifikation nutzbar). Also Teilen wir die Verfehlchance mit 1,5 und addieren das zur Trefferchance.
    t - Trefferchance neu
    f - faktor
    b - Basistrefferchance

    t=100-(100-b)/f

    für b=90 f=1,5
    100-(100-90)/1,5=100-10/1,5=100-6,66=93,33=t
    für b=50 f=2
    100-(100-50)/2=100-25=75=t
    für b=50 f=1,5
    t=66,66

  11. #11
    Zitat Zitat von Todu Beitrag anzeigen
    Ordnerstruktur: Ich hab nur mittelmässige Erfahrung auf dem Gebiet, es gibt einige Dinge zu bedenken.
    * Du kannst die Graphiken dann soweit ich das sehe aus den entsprechenden Ordner nicht mehr aus RPG:ache ziehen - imo ist der Unterschied bei Festplattenzugriff nur unwesentlich langsamer und macht sich eher auf langsameren Rechnern oder wenn viel Auslastung besteht bemerken.
    * Wenn du mit einem entsprechenden Grafikprogramm es hinbekommst, halbtransparenz und transparenz zu setzen oder simulieren und Bilder benutzt, die eh nicht soviele Vorgaben haben (wobei das auch mit Tilesets und Charsets funktionieren könnte, aber da würd ich mich nicht drauf verlassen) sollte es kaum Probleme geben wenn du die Grafiken einfach in den Ordner ziehst
    Waren jetzt nur 2, ich fürchte ich hab welche die ich erwähnen wollte während des Schreibens vergessen.
    Alternative dazu wäre übrigens Prefixe vor Bildnamen - Subordner also Praktisch mit Prefixen simulieren. So bring ich bei mir Ordnung rein.
    Präfixe hatte ich bisher auch, aber ich hab die Befürchtung, dass das auf Dauer auch unübersichtlich wird, wenn es zB irgendwann 100 Monster geben sollte, findet man auch nicht mehr schnell, was man sucht.
    Danke jedenfalls für die Antwort dazu.

    Zitat Zitat von Todu Beitrag anzeigen
    Mathematisch: Ich würd den Ansatz anders wählen. 1,5-fache Trefferchance heisst, 1,5 mal so selten verfehlen (vor Ausweichen, aber im Grune ist das vor und nach Ausweichen-Modifikation nutzbar). Also Teilen wir die Verfehlchance mit 1,5 und addieren das zur Trefferchance.
    t - Trefferchance neu
    f - faktor
    b - Basistrefferchance

    t=100-(100-b)/f

    für b=90 f=1,5
    100-(100-90)/1,5=100-10/1,5=100-6,66=93,33=t
    für b=50 f=2
    100-(100-50)/2=100-25=75=t
    für b=50 f=1,5
    t=66,66
    Die Idee hatte ich auch, wenn man aber kleinere Ausgangswahrscheinlichkeiten nimmt, sieht man, dass es damit leider auch nicht aufgeht - Wird am eindeutigsten, wenn man eine Basistrefferchance von 0% hat, nach deiner Formel käme 33% raus - Sollte sinnvollerweise bei 0 bleiben

  12. #12
    Du kannst bedenkenlos so viele Ordner mit dem RPG-Maker XP und VX verwenden wie du willst und denen Namen geben wie dir lieb ist.
    Du kannst die Ordner auch irgendwo halten, wo immer du willst. Sogar auf deinem Desktop wenn du es so magst.
    Du kannst die Bilddateien auch so wie sie sind einfach in den Spieleordner packen ohne sie in irgendein Unterverzeichnis zu setzen.
    Macht alles keinen Unterschied.

    Bei dem RPG-Maker XP wirst du dann nichtmehr über RPG:ache arbeiten können um die Bilddateien zu holen, aber das ist sowieso vollkommen unnötig. Zumindest solange du weist was du tust.
    Geschwindigkeitsunterschied ist kaum vorhanden, wenn aber dann eher schneller als wenn du den Cache benutzt da du damit einen Funktionsaufruf sparst.

    Als Code brauchst du lediglich folgendes um ein Bild zu laden:
    Code:
    some_bitmap = Bitmap.new(<PATH>)
    wobei du <PATH> mit dem Pfad der Bilddatei angibst. Hier ein paar Beispiele:
    "einBild" würde die Bilddatei mit Namen "einBild" direkt aus dem Hauptordner des Spieles laden.
    "Graphics/einBild" würde die Bilddatei aus dem Ordner "Graphics" laden.
    "Graphics/Battler-Animations/einBild" würde die Datei aus dem Ordner "Battler-Animations" aus dem Ordner "Graphics" laden.
    "C:/Dokumente und Einstellungen/Neuer Ordner/einBild" würde die Datei aus [...]
    Ich glaube du verstehst inzwischen wie das geht.
    Funktioniert für jegliche Arten von Audio-Dateien äquivalent.

    Um auf deine Wahrscheinlichkeitsrechnungsfrage einzugehen (schau dir einmal dieses Wort an):
    So wie es mir scheint willst du nicht die Trefferwahrscheinlichkeit von 90% um 50% erhöhen, denn das wäre tatsächlich 135% sondern eher die Chance daneben zu schlagen, also 10% um 50% verringern um die Trefferchance damit auf 95% zu erhöhen.
    Versuch einmal damit zu arbeiten und sag uns auf welche Ergebnisse du gekommen bist.

    Geändert von Cornix (21.12.2011 um 23:18 Uhr)

  13. #13
    @Ordner: Ordner sind ja auch okay, schreib ich ja^^. Das umgehen von neuen Orner mit Prefixen stellt nur eine Alternative dar.

    Zitat Zitat von Cornix Beitrag anzeigen
    Um auf deine Wahrscheinlichkeitsrechnungsfrage einzugehen (schau dir einmal dieses Wort an):
    So wie es mir scheint willst du nicht die Trefferwahrscheinlichkeit von 90% um 50% erhöhen, denn das wäre tatsächlich 135% sondern eher die Chance daneben zu schlagen, also 10% um 50% verringern um die Trefferchance damit auf 95% zu erhöhen.
    Versuch einmal damit zu arbeiten und sag uns auf welche Ergebnisse du gekommen bist.
    Ihr habt parallel gepostet oder?
    Ich bezweifel, dass sich da ein Ansatz finden lässt. Alternativ könnte man auch von allem was größer als 67% ist auf 100% springen - oder gar wirklich 135%, vor Ausweichen. Praktisch gesehen hast du damit deine 50%. Vllt gibt es andere Lösungen, aber ehrlich gesagt bin ich der Meinung, dass es dann in einer Art und Weise nicht mehr intuitiv genug ist, dass es für den Spieler nachvollziehbar ist. Wenn der Spieler liesst, erhöhung um 50%, erwartet er eine der beide Lösung.

    Du hast aber recht, für besoners kleine Werte geht das schief. Am Intuitivsten find ich einfach mit dem Faktor zu multiplizieren und werte über 100% entweder zu cutten oder für Ausweichen-Modifikation drin zu lassen. Aber vllt hat jemand eine bessere Idee

  14. #14
    Danke zur Antwort mit den Ordnern, so ausführlich braucht ichs gar nicht - Meine Sorge war nur, dass irgendwas dadurch kaputt gehen könnte, vor langer Zeit beim Rm2k hab ich alle Dateien in die Verzeichnisse kopiert und irgendwann war das Projekt für den Maker nicht mehr lesbar. Kann zwar auch an was anderem gelegen haben, aber seitdem bin ich da lieber vorsichtig.

    Bei der Wahrscheinlichkeit dachte ich, dass es da eine passende Formel gibt aus der Wahrscheinlichkeitsrechnung (Trefferwahrscheinlichkeit x verändert sich um Faktor m) gibt, Wahrscheinlichkeitsrechnung ist ja ein recht großes Gebiet- Aber die Frage ist halt streng mathematisch und vielleicht ist hier nicht das ideale Forum, um für sowas eine Antwort zu finden. Danke dennoch für die Ansätze.

  15. #15
    Dein Problem hat allerdings in etwa 0 mit Wahrscheinlichkeitsrechnung zu tun. Es ist nicht mehr als reine Arithmetik. Wahrscheinlichkeitsrechnung würde jetzt vllt soweit gehn, wie hoch die Wahrscheinlichkeit ist, von 3 Attacken mindestens 2 zu Treffen. Du willst einen Erhöhung des Wertes. Vllt mag das in der Theorie auch eine Instannz von Wahrscheinlichkeitsrechnung sein, aber in einem Trivialfall, der nicht viel mit eigentlicher Wahrscheinlichkeitsrechnung gemein hat.
    Da mir nicht ganz klar ist, wie genau du es haben willst, schreib bitte deine Erwarteten Werte mal auf. Gib uns ein paar Beispiele, wie genau bei Trefferchance und modifikator das Ergebnis aussehen soll, weil offenbar scheitern wir daran, nicht zu wissen, wo genau du hinwillst.

  16. #16
    Den RPG:ache kannst du immer noch benutzen. Schreib einfach das Unterverzeichnis vor den Dateinamen:
    Code:
    mein_bitmap = RPG::Cache.picture("facesets/foo")
    Das Problem ist eher, dass du diese Pictures nicht über die normalen Event-Befehle verwenden kannst. Von der Rubyseite aus gibts da aber keine Probleme. Es kann außerdem noch sein, dass beim Verschlüsseln des Projekts (falls du das denn vor hast) die Unterordner nicht mit verschlüsselt werden. Zudem wird beim Importieren bei alpha-channel freien Bildern die Transparenz vom Maker gesetzt. Das kannst du aber auch mit einem geeignetem Grafikprogramm manuell machen.

    Zur Wahrscheinlichkeitsrechnung: Cornix hat es imo richtig erklärt. Eine Steigerung der Trefferchance um 50% ist dasselbe wie eine Verringerung der gegnerischen Ausweichsrate um 50%. Lässt sich einfach über 1.0 - (1.0 - Trefferrate) * 0.5 berechnen und liefert imo auch ein sinnvolles Ergebnis.

  17. #17
    Zitat Zitat von -KD- Beitrag anzeigen
    Den RPG:ache kannst du immer noch benutzen. Schreib einfach das Unterverzeichnis vor den Dateinamen:
    Code:
    mein_bitmap = RPG::Cache.picture("facesets/foo")
    Gut, bei Unterordnern geht das. Was nicht geht ist extra-Ordner via RPG:ache abrufen, ist was ich meinte. Ala Graphics/NeuerOrdner/

  18. #18
    Zitat Zitat von Todu Beitrag anzeigen
    Gut, bei Unterordnern geht das. Was nicht geht ist extra-Ordner via RPG:ache abrufen, ist was ich meinte. Ala Graphics/NeuerOrdner/
    Das geht auch, du müsstest nur die Cache-Klasse ein wenig umschreiben.
    Diese ist im RPG-Maker XP zwar versteckt aber du kannst sie auch aus dem RPG-Maker VX kopieren da diese dort beinahe identisch realisiert worden ist.

  19. #19
    In der Hilfedatei vom XP ist auch der Quellcode, aber da hast du recht.

  20. #20
    So, kleines Problem mit den Window-Klassen:
    Ich hätte gerne Fensterinhalt, der nicht mitscrollt. also quasi ein Headerbereich, der immer stehen bleibt, und darunter ein Bereich, der normal über ox/oy scrollen kann.
    Ich würde am ehesten die Funktionsweise von content ändern und content2 hinzufügen, sodass ich einmal scrollenden und einmal stehenden content habe. Problem ist, dass ich keinerlei Code der Klasse Window habe und aus der Dokumentation ich keinen Ansatz finde, wie ich da was ändern könnte. Ich wäre schon glücklich, wenn ich Position vom content ändern könnte, sodass dieser nicht immer 16 Pixel Abstand zum Rand hat.
    Alternative Lösung wäre natürlich, zwei Windows übereinander zu legen, eins für den statischen und eins für den scrollenden Bereich, aber wenn ich die Funktionsweise vom Window content ändern könnte, fände ich das schöner.

Berechtigungen

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