• Anmelden

Evrey

Oberschurke im Ruhestand

Motto: "Satzzeichen sind keine Rudeltiere." - Chesra

  • Nachricht senden

61

Montag, 12. Januar 2009, 22:51

Oh, Rechtschreibung ist halt so 'ne Sache xD
Amsonsten würde ich dennoch zu Alias greifen, damit sich Ruby-Neulinge nicht mit "Kopieren-Einfügen" ärgern müssen^^
  • :medal: Werbung

    Bild

    Cpp Quellcode

    1
    
    #define TRUE FALSE //Happy debugging suckers
    (Einfach nur wundervoll.)
  • :palette: 1plus3 :cake:

    Bild
  • :fires: Nuuuhminaaah

    Bild
  • :medal: compétences

    mes compétences
    :heart_full: :heart_full: :heart_full: :heart_full: :heart_full: max.
    :ruler-triangle: Maps machen :heart_full: :heart-empty: :heart-empty: :heart-empty: :heart-empty:
    :media-player: Musik machen :heart_full: :heart-half: :heart-empty: :heart-empty: :heart-empty:
    :cup: Scripts machen :heart_full: :heart_full: :heart_full: :heart_full: :heart-break:
    :paper: Story ausdenken :heart_full: :heart_full: :heart_full: :heart-empty: :heart-empty:
    :cut: Pixeln und so :heart-empty: :heart-empty: :heart-empty: :heart-empty: :heart-empty:
    :game: Events proggen :heart_full: :heart_full: :heart_full: :heart_full: :heart_full:
    (Dieser Tab ist rein satirisch.)
  • :folder-open: mes projets

    • :addressbook: Silentium
      :book: Name: Silentium
      :rmxp: Maker: Eigenbau (C++, x86-SSE/AVX-Assembly, Ruby/Lua)

      :paper: Story
      :game: NPCs
      :cup: Scripts
      :drill: Ressis
      :ruler-triangle: Maps
      :compile: Gesamt
      (3+4)% 42 69% 0815 -17.438 103.38% ± 6.3mm²

      (Die Tabelle erfüllt lediglich satirische Zwecke.)
    • :compile: Onyx
      Eine in C++ implementierte, modulare, plattformunabhängige, virtuelle Maschine. Die Test-Version ist bereits halb fertig. Ab dann gibt es vielleicht mehr Infos. Sie soll die auf dem ersten Blick LISP-artige und eigens dafür konstruierte Sprache Obsidian ausführen können. Experimentell wird auch ein Lua-Compiler für Onyx gebaut. Ziel ist eine leistungsfähige, virtuelle Maschine für beliebige Scriptsprachen. Theoretisch gesehen müsste man bloß noch einen kompatiblen Compiler schreiben, der Quellcode jener Sprache in Onyx-Assembly, oder direkt in Onyx-Bytecode übersetzt. Ob die jemand nutzen wird, ist eine andere Frage und nur ein sekundäres... nein, eher tertiäres Ziel dieser VM. Primär dient es mir lediglich dazu, mein Verständnis von Hardware, ISA, und Assembly zu vertiefen, sowie eigene Grenzen auszutesten.

      :exclamation: Warnung!
      Das Entwickeln einer virtuellen Maschine oder Programmiersprache (im wahnsinnigsten Fall beides) ist eine höchst komplizierte Tätigkeit, aus der viel Frust und Hirnmatsche hervor gehen. Sollte sich dennoch ein ähnlich wahnsinniger finden, der sowas zusammen schustern will, so lege ich ihm/ihr die folgenden Bücher ans Herz:
      • Compiler - Das Drachenbuch [978-3-8273-7097-6]
        Dieses Buch schlachtet ausführlich und leicht verständlich die Grundlagen bis hoch zu den Experten-Techniken des Compilerbaus aus. Es fängt mit der Automaten-Theorie und formalen Sprachen an, arbeitet sich durch Analysetechniken vor, und landet schließlich bei Techniken wie Optimierung und Register-Zuweisung. Das Buch wiegt 3Kg oder 4Kg. Hab's mal gewogen. Ist also nicht gerade die Lektüre für unterwegs.

      • Computerarchitektur [3-8273-7016-7]
        Hier werden leicht verständlich die wichtigsten Entwicklungen der Rechnerarchitekturen erklärt (Gut, das Buch ist in die Jahre gekommen, aber der Weg zu heute ist ein winziger Schritt, den man sich nach diesem Buch selbst erdenken kann). Hauptbestandteil des Buchs ist eine relativ umfassende Betrachtung der Funktionsweise dreier gänzlich unterschiedlicher, aber dominierender Prozessor-Typen am Beispiel des Pentium II, UltraSPARC II, sowie picoJava. Die meisten Elemente dieses Buchs sind zwar für die Konstruktion einer virtuellen Maschine irrelevant, oder aufgrund der Tatsache, dass die VM Software ist und z.B. Byte-Grenzen hat, sogar zu Leistungseinbußen führen kann, doch ist ein hinreichendes Verständnis dieser Maschinen, mit denen wir arbeiten, äußerst hilfreich für die Überlegungen, wie die VM arbeiten soll.

      Es kann sehr hilfreich und inspirierend sein, den Code quelloffener, virtueller Maschinen anderer Sprachen zu überfliegen. Meine Lieblings-Quelle war und ist stets die VM von Lua. Sie ist schlank, verständlich, in C implementiert, und basiert im Gegensatz zu vielen anderen Scriptsprachen-VMs auf einer Register-Maschine statt einer Stapelmaschine. Es wäre natürlich vorteilhaft, die entsprechende Sprache zu verstehen, in der man auch die eigene VM implementieren will. Weiterhin ist es äußerst vorteilhaft, eine leistungsstarke und bequeme Sprache wie C++ zu beherrschen, um die VM zu implementieren. Und bevor irgendwer auf die Idee kommt: Assembly ist NICHT als dominierende Sprache für den Bau einer VM geeignet. Wer die Frage des "Warum?" nicht beantworten kann, sollte zunächst die gewählte Sprache und Assembly hinreichend verstehen lernen, und es dann erneut mit der Frage versuchen. Es lohnt sich dennoch, Assembly zu lernen. Allein schon, um erneut das Verständnis zu vertiefen, zumal ihr mehr oder weniger gezwungen seid, auch für eure VM eine Assembler-Sprache zu entwickeln (Außer natürlich ihr schreibt eure Test-Programme Bit für Bit ;3).
  • :locale: enfin

    Je ne peux pas parler français.
    C'est tout ce que Goodle et les restes de cours de français.
Signaturstand: 24.07.2013

Reborn

hat beim Stromkonzern schon Rabatt

Motto: Wer noch was vom Wochenende weis, hat es nie erlebt!

  • Nachricht senden

62

Montag, 12. Januar 2009, 23:05

Ich versuchs mal auf Evreys art.
Mehr als a Allgäuer ka a Mensch it wera.


Wie soll ich wissen was ich denke, bevor ich nicht höre was ich sage?


Spoiler: OpenSource-Projects
NES-Emulator - a simple NES-Emulator
ERDL - a embedded Ruby Interpreter with the abilltiy to render images with DirectX ERDL shall be 100% compatible to RPGXP-Ruby Scripts
zum Lesen den Text mit der Maus markieren

Mustamakkara

Blutwurst der Verdammnis

  • »Mustamakkara« ist der Autor dieses Themas

Motto: Zuhause ist da, wo du deine Schuhe ausziehen kannst.

  • Nachricht senden

63

Dienstag, 13. Januar 2009, 16:22

Es ist soweit, ich komme ohne viel Worte zur Siegerehrung...
Spoiler: Platz 4
Dieses Script wurde rechtzeitig abgegeben, tut aber nicht ganz, was es soll. Das Suchevent geht einen Schritt auf die Kiste zu, dann aber sofort wieder zum Player. Wenn man direkt neben der Kiste steht, wird sie jedoch auch aktiviert. Bei Kisten ganz am rechten Bildschirmrand funktioniert das Script jedoch nicht...
Und dieses Script war...
Kistenfindedings by Saverion. Nächstes mal klappts bestimmt!
zum Lesen den Text mit der Maus markieren

Spoiler: Platz 3
Ein wunderbares und vielseitiges Script, es kann viel mehr, als es eigentlich können sollte... aber es hat die Version 2.1 gebraucht, bis es endlich funktioniert hat. Es werden für die volle Funktion 2 Scripts benötigt. Zudem besitzt dieses Script den kompliziertesten Aufrufbefehl. Naja, die Tatsache, dass es perfekt funktioniert, hat es vor Platz 4 erspart.
Und dieses Script war...
CCB_EMS by Evrey. Du musst dich leider geschlagen geben, aber vielleicht benutze ich dein Script ja für ein anderes Projekt, das die ganzen Nebenfunktionen auch nötig hat...
zum Lesen den Text mit der Maus markieren

Spoiler: Platz 2
Dieses Script hat mich sehr überrascht. Man benötigt zwar 3 Scripts für die Funktion und es hat auch einer Version 2.X bedarft, bis es endlich perfekt funktioniert hat, aber der Autor konnte mir immer sagen, was ich denn genau falsch gemacht habe. Zudem besitzt es einen sehr einfachen und anfängerfreundlichen Aufrufbefehl.
Und dieses Script war...
Kistenfinder by Hindi. Für sein erstes Script war das Ding wirklich genial^^ Auf den Erfolg kann man auf jeden Fall aufbauen!
zum Lesen den Text mit der Maus markieren

Spoiler: Platz 1
Hierzu möchte ich nicht mehr viele Worte verlieren... Version 1.0, es wird nur ein Script benötigt, funzt einwandfrei, Methode muss nur einmal aufgerufen werden... kurzum: Perfekt!
Und dieses Script war...
Find & Seek by Hüpfende Kokosnuss. Meinen Glückwunsch, Credits sind dir sicher^^
zum Lesen den Text mit der Maus markieren

Der Sieger kann sich mit mir wegen der Gastrolle in Verbindung setzen. Die Autoren dürfen ihre Scripts gerne veröffentlichen, wobei zwei davon sowieso schon öffentlich sind. Ansonsten bedanke ich mich für die Teilnahme. Es ist im Grunde schon viel, wir haben 4 Anmeldungen und 4 Abgaben^^ Ich bin stolz auf euch!
:musta:

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Mustamakkara« (13. Januar 2009, 16:29)


Evrey

Oberschurke im Ruhestand

Motto: "Satzzeichen sind keine Rudeltiere." - Chesra

  • Nachricht senden

64

Dienstag, 13. Januar 2009, 16:31

Wow, dritter^^ Immerhin weiß ich, was ich zu beachten habe^^ Es war mir eine Ehre, teilgenommen haben zu dürfen^^
@Hindi: Dicken Applaus, sagte ich ja, du packst das locker ;) Glückwunsch^^
@Hüpfende Kokusnuss: Den ersten haste dir dann ja ehrenhaft verdient ;) Bin gespannt, ob du's veröffentlichst, der Code würde mich int'ressieren^^ Natürlich nicht zum Klauen, sondern aus reinem Interesse, was es zu dem gemacht hat, das es ist^^
@Saverion: Ich bin mir sicher, dass dein Script mit mühe gemacht wurde, von daher greife ich wiedermal einen alten Japanischen und Mongolischen brauch auf: Die Ehrung des Letzten! Du kannst stolz sein, teilgenommen zu haben, und auch ehrenhaft abgegeben zu haben ;)

Schlusswort: Wenn alle Ruby-Scripter so fleißig sind, wäre es nur noch ein Fingerknick zu 'nem offiziellen Contest ;) Denn dieser hier war tatsächlich sehr vorbildlich^^

@Mustamakkara: Viel Spaß mit dem Siegerscript ;)
  • :medal: Werbung

    Bild

    Cpp Quellcode

    1
    
    #define TRUE FALSE //Happy debugging suckers
    (Einfach nur wundervoll.)
  • :palette: 1plus3 :cake:

    Bild
  • :fires: Nuuuhminaaah

    Bild
  • :medal: compétences

    mes compétences
    :heart_full: :heart_full: :heart_full: :heart_full: :heart_full: max.
    :ruler-triangle: Maps machen :heart_full: :heart-empty: :heart-empty: :heart-empty: :heart-empty:
    :media-player: Musik machen :heart_full: :heart-half: :heart-empty: :heart-empty: :heart-empty:
    :cup: Scripts machen :heart_full: :heart_full: :heart_full: :heart_full: :heart-break:
    :paper: Story ausdenken :heart_full: :heart_full: :heart_full: :heart-empty: :heart-empty:
    :cut: Pixeln und so :heart-empty: :heart-empty: :heart-empty: :heart-empty: :heart-empty:
    :game: Events proggen :heart_full: :heart_full: :heart_full: :heart_full: :heart_full:
    (Dieser Tab ist rein satirisch.)
  • :folder-open: mes projets

    • :addressbook: Silentium
      :book: Name: Silentium
      :rmxp: Maker: Eigenbau (C++, x86-SSE/AVX-Assembly, Ruby/Lua)

      :paper: Story
      :game: NPCs
      :cup: Scripts
      :drill: Ressis
      :ruler-triangle: Maps
      :compile: Gesamt
      (3+4)% 42 69% 0815 -17.438 103.38% ± 6.3mm²

      (Die Tabelle erfüllt lediglich satirische Zwecke.)
    • :compile: Onyx
      Eine in C++ implementierte, modulare, plattformunabhängige, virtuelle Maschine. Die Test-Version ist bereits halb fertig. Ab dann gibt es vielleicht mehr Infos. Sie soll die auf dem ersten Blick LISP-artige und eigens dafür konstruierte Sprache Obsidian ausführen können. Experimentell wird auch ein Lua-Compiler für Onyx gebaut. Ziel ist eine leistungsfähige, virtuelle Maschine für beliebige Scriptsprachen. Theoretisch gesehen müsste man bloß noch einen kompatiblen Compiler schreiben, der Quellcode jener Sprache in Onyx-Assembly, oder direkt in Onyx-Bytecode übersetzt. Ob die jemand nutzen wird, ist eine andere Frage und nur ein sekundäres... nein, eher tertiäres Ziel dieser VM. Primär dient es mir lediglich dazu, mein Verständnis von Hardware, ISA, und Assembly zu vertiefen, sowie eigene Grenzen auszutesten.

      :exclamation: Warnung!
      Das Entwickeln einer virtuellen Maschine oder Programmiersprache (im wahnsinnigsten Fall beides) ist eine höchst komplizierte Tätigkeit, aus der viel Frust und Hirnmatsche hervor gehen. Sollte sich dennoch ein ähnlich wahnsinniger finden, der sowas zusammen schustern will, so lege ich ihm/ihr die folgenden Bücher ans Herz:
      • Compiler - Das Drachenbuch [978-3-8273-7097-6]
        Dieses Buch schlachtet ausführlich und leicht verständlich die Grundlagen bis hoch zu den Experten-Techniken des Compilerbaus aus. Es fängt mit der Automaten-Theorie und formalen Sprachen an, arbeitet sich durch Analysetechniken vor, und landet schließlich bei Techniken wie Optimierung und Register-Zuweisung. Das Buch wiegt 3Kg oder 4Kg. Hab's mal gewogen. Ist also nicht gerade die Lektüre für unterwegs.

      • Computerarchitektur [3-8273-7016-7]
        Hier werden leicht verständlich die wichtigsten Entwicklungen der Rechnerarchitekturen erklärt (Gut, das Buch ist in die Jahre gekommen, aber der Weg zu heute ist ein winziger Schritt, den man sich nach diesem Buch selbst erdenken kann). Hauptbestandteil des Buchs ist eine relativ umfassende Betrachtung der Funktionsweise dreier gänzlich unterschiedlicher, aber dominierender Prozessor-Typen am Beispiel des Pentium II, UltraSPARC II, sowie picoJava. Die meisten Elemente dieses Buchs sind zwar für die Konstruktion einer virtuellen Maschine irrelevant, oder aufgrund der Tatsache, dass die VM Software ist und z.B. Byte-Grenzen hat, sogar zu Leistungseinbußen führen kann, doch ist ein hinreichendes Verständnis dieser Maschinen, mit denen wir arbeiten, äußerst hilfreich für die Überlegungen, wie die VM arbeiten soll.

      Es kann sehr hilfreich und inspirierend sein, den Code quelloffener, virtueller Maschinen anderer Sprachen zu überfliegen. Meine Lieblings-Quelle war und ist stets die VM von Lua. Sie ist schlank, verständlich, in C implementiert, und basiert im Gegensatz zu vielen anderen Scriptsprachen-VMs auf einer Register-Maschine statt einer Stapelmaschine. Es wäre natürlich vorteilhaft, die entsprechende Sprache zu verstehen, in der man auch die eigene VM implementieren will. Weiterhin ist es äußerst vorteilhaft, eine leistungsstarke und bequeme Sprache wie C++ zu beherrschen, um die VM zu implementieren. Und bevor irgendwer auf die Idee kommt: Assembly ist NICHT als dominierende Sprache für den Bau einer VM geeignet. Wer die Frage des "Warum?" nicht beantworten kann, sollte zunächst die gewählte Sprache und Assembly hinreichend verstehen lernen, und es dann erneut mit der Frage versuchen. Es lohnt sich dennoch, Assembly zu lernen. Allein schon, um erneut das Verständnis zu vertiefen, zumal ihr mehr oder weniger gezwungen seid, auch für eure VM eine Assembler-Sprache zu entwickeln (Außer natürlich ihr schreibt eure Test-Programme Bit für Bit ;3).
  • :locale: enfin

    Je ne peux pas parler français.
    C'est tout ce que Goodle et les restes de cours de français.
Signaturstand: 24.07.2013

Reborn

hat beim Stromkonzern schon Rabatt

Motto: Wer noch was vom Wochenende weis, hat es nie erlebt!

  • Nachricht senden

65

Dienstag, 13. Januar 2009, 17:26

WOW, 2. Platz^^, ich fühle mich geehrt und sogar besser als mein Lehrer^^, wer hätte das gedacht, aber eins muss ich dazu sagen, ohne Evreys hilfe hätte ich es nie so weit gebracht.
Und Ja, währe schön wenn wir öfters mal solche Events machen könnten, hat echt Spaß gemacht.
Ein THX an alle das es so toll geklappt hat.

Und das Script vom 1. möchte ich auch mal gerne sehen^^
Mehr als a Allgäuer ka a Mensch it wera.


Wie soll ich wissen was ich denke, bevor ich nicht höre was ich sage?


Spoiler: OpenSource-Projects
NES-Emulator - a simple NES-Emulator
ERDL - a embedded Ruby Interpreter with the abilltiy to render images with DirectX ERDL shall be 100% compatible to RPGXP-Ruby Scripts
zum Lesen den Text mit der Maus markieren

66

Dienstag, 13. Januar 2009, 17:44

Also ich hab meine Platzierung absolut verdient.
In diese Liste gehöre ich sowieso nur rein, weil ich das Skript (theoretisch) funktionsfähig gemacht hab.
Der Grundteil war nämlich der zu Beginn erwähnte Versuch von Neo-Bahamut.
Aus diesem Grund hab ich mich dann doch etwas zurückgehalten, war schon kurz davor mich wieder vom Contest abzumelden, der Fairniss halber, aber da ich wusste, dass ihr alle besser seid und mein Ergebnis eh nicht funktioniert hab ichs gelassen.
War ne gute Übung, schön um wieder in RGSS und die Community reinzukommen und außerdem ist es auch was Wert, an einem Contest teilgenommen zu haben, bei dem ALLE Angemeldeten abgegeben haben xD

Auf dass es sowas öfter gibt und noch einen Glückwunsch an unsere Hüpfende Kokosnuss, hast du gut gemacht ;)


Sämtliche inhaltlichen und grammatikalischen Fehler dürfen behalten werden, ist ziemlich viel und ich bin müde, irgendein Schmodder wird bestimmt drin sein...
  • Forentreffen :dance:

    NOOOOIIINN, unser schöner Forentreffen 2009 "Gruppe Wenzel" Banner ist weg, noooooiiiin!! ;(

    Bild
  • Déjà-vù

    Bild
    © by Ryouko
  • Tipp ;)

    Lesen, denken, posten.
    Gebt Schritt 2 eine Chance!
  • Schreibweise

    Wer Standard mit "t" schreibt ist ein Idiod!
  • Zombies!

    Bild

    :D
  • Shoutbox :D

    Thema war aktuell das Forentreffen bzw. dass Nariakei doch nächstes mal kommen würde.
    Da plötzlich:

    Zitat


    (00:50:33) (19): was intressierts mich wie flach ein flachbildfernseher is
    (00:50:41) (19): wenn der nur 3 centimeter dick is
    (00:50:42) GreyHat: 19, du laggst
    (00:50:50) (19): dann kann man den platz trotzdem net ausnutzen
    (00:50:59) GreyHat: dein ping ist sozusagen 30 minuten
    (00:51:02) Nariakei: lool
    (00:51:05) Saverion: LOL


Watch your fire! - Beobachtet euer Feuer!

Evrey

Oberschurke im Ruhestand

Motto: "Satzzeichen sind keine Rudeltiere." - Chesra

  • Nachricht senden

67

Dienstag, 13. Januar 2009, 18:14

Zitat

aber eins muss ich dazu sagen, ohne Evreys hilfe hätte ich es nie so weit gebracht.
Hui...^^" Naja, was ich dir beigebra-... ach vergisses, danke xD


Zitat

Der Grundteil war nämlich der zu Beginn erwähnte Versuch von Neo-Bahamut.
Aus diesem Grund hab ich mich dann doch etwas zurückgehalten, war schon kurz davor mich wieder vom Contest abzumelden
Konkurrenz?^^ Naja, von Neo-Bahamut muss man sich nicht abschrecken lassen, aber trotzdem Lobenswert, dass du dennoch teilgenommen hast, find' ich klasse^^

Edit: Ich vermisse den Edit-Button...

Zitat

CCB_EMS by Evrey. Du musst dich leider geschlagen geben, aber vielleicht benutze ich dein Script ja für ein anderes Projekt, das die ganzen Nebenfunktionen auch nötig hat...
ESM eg xD Wegen Event-Steuer-Modul, aber egal ;) Und mir macht das nichts aus, allein die Tatsache, dass es sauber läuft macht mich stolz^^ Und hey, auch wenn ich vierter wäre, ich hab' immerhin in Ehre teilgenommen ;)
  • :medal: Werbung

    Bild

    Cpp Quellcode

    1
    
    #define TRUE FALSE //Happy debugging suckers
    (Einfach nur wundervoll.)
  • :palette: 1plus3 :cake:

    Bild
  • :fires: Nuuuhminaaah

    Bild
  • :medal: compétences

    mes compétences
    :heart_full: :heart_full: :heart_full: :heart_full: :heart_full: max.
    :ruler-triangle: Maps machen :heart_full: :heart-empty: :heart-empty: :heart-empty: :heart-empty:
    :media-player: Musik machen :heart_full: :heart-half: :heart-empty: :heart-empty: :heart-empty:
    :cup: Scripts machen :heart_full: :heart_full: :heart_full: :heart_full: :heart-break:
    :paper: Story ausdenken :heart_full: :heart_full: :heart_full: :heart-empty: :heart-empty:
    :cut: Pixeln und so :heart-empty: :heart-empty: :heart-empty: :heart-empty: :heart-empty:
    :game: Events proggen :heart_full: :heart_full: :heart_full: :heart_full: :heart_full:
    (Dieser Tab ist rein satirisch.)
  • :folder-open: mes projets

    • :addressbook: Silentium
      :book: Name: Silentium
      :rmxp: Maker: Eigenbau (C++, x86-SSE/AVX-Assembly, Ruby/Lua)

      :paper: Story
      :game: NPCs
      :cup: Scripts
      :drill: Ressis
      :ruler-triangle: Maps
      :compile: Gesamt
      (3+4)% 42 69% 0815 -17.438 103.38% ± 6.3mm²

      (Die Tabelle erfüllt lediglich satirische Zwecke.)
    • :compile: Onyx
      Eine in C++ implementierte, modulare, plattformunabhängige, virtuelle Maschine. Die Test-Version ist bereits halb fertig. Ab dann gibt es vielleicht mehr Infos. Sie soll die auf dem ersten Blick LISP-artige und eigens dafür konstruierte Sprache Obsidian ausführen können. Experimentell wird auch ein Lua-Compiler für Onyx gebaut. Ziel ist eine leistungsfähige, virtuelle Maschine für beliebige Scriptsprachen. Theoretisch gesehen müsste man bloß noch einen kompatiblen Compiler schreiben, der Quellcode jener Sprache in Onyx-Assembly, oder direkt in Onyx-Bytecode übersetzt. Ob die jemand nutzen wird, ist eine andere Frage und nur ein sekundäres... nein, eher tertiäres Ziel dieser VM. Primär dient es mir lediglich dazu, mein Verständnis von Hardware, ISA, und Assembly zu vertiefen, sowie eigene Grenzen auszutesten.

      :exclamation: Warnung!
      Das Entwickeln einer virtuellen Maschine oder Programmiersprache (im wahnsinnigsten Fall beides) ist eine höchst komplizierte Tätigkeit, aus der viel Frust und Hirnmatsche hervor gehen. Sollte sich dennoch ein ähnlich wahnsinniger finden, der sowas zusammen schustern will, so lege ich ihm/ihr die folgenden Bücher ans Herz:
      • Compiler - Das Drachenbuch [978-3-8273-7097-6]
        Dieses Buch schlachtet ausführlich und leicht verständlich die Grundlagen bis hoch zu den Experten-Techniken des Compilerbaus aus. Es fängt mit der Automaten-Theorie und formalen Sprachen an, arbeitet sich durch Analysetechniken vor, und landet schließlich bei Techniken wie Optimierung und Register-Zuweisung. Das Buch wiegt 3Kg oder 4Kg. Hab's mal gewogen. Ist also nicht gerade die Lektüre für unterwegs.

      • Computerarchitektur [3-8273-7016-7]
        Hier werden leicht verständlich die wichtigsten Entwicklungen der Rechnerarchitekturen erklärt (Gut, das Buch ist in die Jahre gekommen, aber der Weg zu heute ist ein winziger Schritt, den man sich nach diesem Buch selbst erdenken kann). Hauptbestandteil des Buchs ist eine relativ umfassende Betrachtung der Funktionsweise dreier gänzlich unterschiedlicher, aber dominierender Prozessor-Typen am Beispiel des Pentium II, UltraSPARC II, sowie picoJava. Die meisten Elemente dieses Buchs sind zwar für die Konstruktion einer virtuellen Maschine irrelevant, oder aufgrund der Tatsache, dass die VM Software ist und z.B. Byte-Grenzen hat, sogar zu Leistungseinbußen führen kann, doch ist ein hinreichendes Verständnis dieser Maschinen, mit denen wir arbeiten, äußerst hilfreich für die Überlegungen, wie die VM arbeiten soll.

      Es kann sehr hilfreich und inspirierend sein, den Code quelloffener, virtueller Maschinen anderer Sprachen zu überfliegen. Meine Lieblings-Quelle war und ist stets die VM von Lua. Sie ist schlank, verständlich, in C implementiert, und basiert im Gegensatz zu vielen anderen Scriptsprachen-VMs auf einer Register-Maschine statt einer Stapelmaschine. Es wäre natürlich vorteilhaft, die entsprechende Sprache zu verstehen, in der man auch die eigene VM implementieren will. Weiterhin ist es äußerst vorteilhaft, eine leistungsstarke und bequeme Sprache wie C++ zu beherrschen, um die VM zu implementieren. Und bevor irgendwer auf die Idee kommt: Assembly ist NICHT als dominierende Sprache für den Bau einer VM geeignet. Wer die Frage des "Warum?" nicht beantworten kann, sollte zunächst die gewählte Sprache und Assembly hinreichend verstehen lernen, und es dann erneut mit der Frage versuchen. Es lohnt sich dennoch, Assembly zu lernen. Allein schon, um erneut das Verständnis zu vertiefen, zumal ihr mehr oder weniger gezwungen seid, auch für eure VM eine Assembler-Sprache zu entwickeln (Außer natürlich ihr schreibt eure Test-Programme Bit für Bit ;3).
  • :locale: enfin

    Je ne peux pas parler français.
    C'est tout ce que Goodle et les restes de cours de français.
Signaturstand: 24.07.2013

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Evrey« (13. Januar 2009, 18:20)


Mustamakkara

Blutwurst der Verdammnis

  • »Mustamakkara« ist der Autor dieses Themas

Motto: Zuhause ist da, wo du deine Schuhe ausziehen kannst.

  • Nachricht senden

68

Dienstag, 13. Januar 2009, 18:34

Achso, ich dachte an ein Event-Irgendwas-System xD Bin jetz grad zu faul, das zu korrigieren^^
Und ich poste jetz das Siegerscript. Kokosnuss hätte das sowieso selbst gemacht, kommt aber immer nur am Wochenende online... also, hier HK's "Find & Seek":
Spoiler

Ruby Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
#==============================================================================
# ** Schatzsucher Skript
#------------------------------------------------------------------------------
#    by Hüpfende Kokosnuss || Jumping Coconut
#    v 1.1
#    10. Januar 2009
#    Erstellt für den Schatzsucher-Minicontest auf http://www.rpg-studio.de
#    This Script does not have an english explanation, sorry.
#------------------------------------------------------------------------------
#
#                                BENUTZUNG:
#                                ==========
#
#  Das Skript ermöglicht es, bestimmte Events zu Schatzsuchern und andere zu
#  Schätzen zu machen.
#  Schatzsucher werden dem Spieler innerhalb eines Radius (einstellbar) folgen, 
#  doch wenn sie einen Schatz (Event) sehen, dann werden Sie dort hin laufen, 
#  und das Event auszulösen (wenn sie es berühren).
#
#  Um ein Event zu einem Schatz zu machen, reicht es, wenn das Event folgenden,
#  jetzt festlegbaren Wert im Namen hat:
#
  $hk_schatzsucher_eventname = "Schatz"
#  
#  Der Standard ist "Schatz". Das Wort ist frei definierbar.
#
#  Außerdem kann man auch im nachhinein noch ein Event zum Schatz-Event machen,
#  oder ein Schatz-Event wieder zu einem normalen Event machen:
#  
#  hk_schatz_aendern(Event-ID, Aktiv)
#
#  Dieser Befehl muss im Callscript abgesetzt werden. Für "Event-ID" die ID des
#  Events einsetzen, um das es sich handelt. Für "Aktiv" entweder true oder false
#  angeben. True wird das Event zum Schatz-Event machen, False wird es wieder 
#  zum normalen Event machen.
#  
#  Um ein Event zu einem Schatzsucher zu machen, folgendes Callscript verwenden:
#
#  hk_schatzsucher_aendern(Event-ID, Radius)
#
#  Für "Event-ID" wieder die ID des Events eingeben, um das es sich handelt. 
#  Für "Radius" eine Zahl eingeben. So viele Tiles wird das Event nach allen
#  Richtungen suchen, ob es den Spieler oder einen Schatz findet.
#  Wird als Radius 0 eingegeben, so wird das Schatzsucher-Event wieder zu einem
#  normalen Event gemacht.
#
#  Die Callscripts müssen natürlich NICHT parrallel ausgeführt werdne, einmal 
#  reicht!
#
#  Seit Version 1.1 kann man genauer einstellen, wie / ob die Schatzsucher dem 
#  Spieler folgen. 
#  Ist die folgende Variable true, so folgt der Schatzsucher dem Spieler immer.
#  Ist sie false, so folgt er dem Spieler nur, wenn sich der Spieler im Radius
#  des Schatzsuchers befindet.
#
  $hk_schatzsucher_immerfolgen = true
#
#  Viel Spaß wünscht euch euer Hüpfende Kokosnuss ^^
#  Das Skript ist für Mustamakkara bzw seinen Mini-Contest gemacht.
#------------------------------------------------------------------------------
 
#==============================================================================
# ** HK_Schatzsucher
#------------------------------------------------------------------------------
#  Neue Class für Schatzsucher-Bewegungen und Berechnungen
#==============================================================================
 
class HK_Schatzsucher
  #--------------------------------------------------------------------------
  # * initialize(schaetze) => Array mit Eventids, wird von Game Map übergeben
  #--------------------------------------------------------------------------
  def initialize(schaetze)
    @schaetze = []
    @schatzsucher = []
    @schaetze = schaetze
  end
  #--------------------------------------------------------------------------
  # * Schatzsucher Ändern (id, radius) => Ändert die Schatzsucher-Liste 
  #--------------------------------------------------------------------------
  def schatzsucher_aendern(id, radius)
    @schatzsucher.each do |i|
      @schatzsucher.delete(i) if i[0] == id
    end
    @schatzsucher << [id, radius] if radius > 0
  end
  #--------------------------------------------------------------------------
  # * Schatz Ändern (id, aktiv) => Macht ein Event zum Schatz bzw inaktiv
  #--------------------------------------------------------------------------
  def schatz_aendern(id, aktiv)
    @schaetze.delete(id)
    @schaetze << id if aktiv
  end
  #--------------------------------------------------------------------------
  # * Schatzsucher hat Schatz(Schatzsucher, Schatz)
  # => Könnte der Schatzsucher das Schatzevent antriggern?
  #--------------------------------------------------------------------------
  def schatzsucher_hat_schatz?(schatzsucher, schatz)
    if schatzsucher.through or schatz.through
      # Wenn Through, erst auslösen wenn sie auf selben Tile sind
      return true if schatzsucher.x == schatz.x and schatzsucher.y == schatz.y
    else
      # Ansonsten muss der Schatzsucher den Schatz anschauen und vor ihm stehen
      new_x = schatzsucher.x + (schatzsucher.direction == 6 ? 1 : schatzsucher.direction == 4 ? -1 : 0)
      new_y = schatzsucher.y + (schatzsucher.direction == 2 ? 1 : schatzsucher.direction == 8 ? -1 : 0)
      return true if schatz.x == new_x and schatz.y == new_y
    end
  return false
  end
  #--------------------------------------------------------------------------
  # * update => Hier wird geprüft, ob die Schatzsucher was gefunden haben
  #--------------------------------------------------------------------------
  def update
    # Kennzeichen, um einen Schatzsucher pro Durchlauf nur einmal zu bewegen
    schatzsucher_bereits_bewegt = false
    # Schleife, für jeden Schatzsucher einzeln ausführen...
    @schatzsucher.each do |i|
      # i hat an der Stelle 0 die ID des Schatzsuchers, an Stelle 1 den Radius
      schatzsucher = $game_map.events[i[0]]
      radius = i[1]
      # Schleife, für jeden Schatz einzeln ausführen...
      @schaetze.each do |schatz|
        schatz = $game_map.events[schatz]
        # Wenn Schatzsucher einen Schatz erspäht hat
        if ((schatzsucher.x - schatz.x).abs <= radius and
           (schatzsucher.y - schatz.y).abs <= radius)
           # Wenn der Schatzsucher auch noch direkt vor / auf dem Schatz steht
          if schatzsucher_hat_schatz?(schatzsucher, schatz)
            # Schatzevent ausführen
            unless ($game_system.map_interpreter.running? or
                  schatzsucher.moving?)
              schatz.start
            end
          else
            # Ansonsten muss Schatzsucher auf den Schatz in Reichweite zulaufen
            unless (schatzsucher.moving? or schatzsucher.move_route_forcing or
                  schatzsucher_bereits_bewegt)
              schatzsucher.move_toward_event(schatz.id)
              # Kennzeichen setzen, damit er sich nicht noch einmal bewegt
              schatzsucher_bereits_bewegt = true
            end
          end
        end
      end    
      # Wenn der Schatzsucher den Spieler erspäht hat oder so eingestellt ist,
      # dass er dem Spieler sowieso folgen muss
      if ((schatzsucher.x - $game_player.x).abs <= radius and
           (schatzsucher.y - $game_player.y).abs <= radius) or 
           $hk_schatzsucher_immerfolgen
        # Und der Schatzsucher in diesem Update noch nicht bewegt wurde
        unless (schatzsucher.moving? or schatzsucher.move_route_forcing or
               schatzsucher_bereits_bewegt)
          # Dann zum Spieler laufen
          schatzsucher.move_toward_player
        end
      end
      # Jetzt kommt der nächste Schatzsucher (Schleife), Kennzeichen auf false
      schatzsucher_bereits_bewegt = false
    end
  end
end
 
 
#==============================================================================
# ** Game_Map
#------------------------------------------------------------------------------
#  Mapnamen verfügbar machen, beim Map Setup die Events mit entsprechenden
#  Namen der Schatzliste hinzufügen, indem die Class gerufen wird.
#==============================================================================
 
class Game_Map
  attr_accessor :map # Für Zugriff auf Eventnamen
  alias hk_schatzsucher_setup setup
  alias hk_schatzsucher_update update
  #--------------------------------------------------------------------------
  # * Setup (map_id) => Hier wird u.a. die Class HK_Schatzsucher aufgerufen
  #--------------------------------------------------------------------------
  def setup(map_id)
    hk_schatzsucher_setup(map_id)
    # Temporärer Array, nur für Übergabe wichtig
    schaetze = []
    # Eventnamen scannen, enstprechende Events in den zu überweisenden Array geben
    $game_map.events.each {|id, event|
      a = $game_map.map.events[id].name.downcase
      schaetze << id if a.include?($hk_schatzsucher_eventname.downcase)
    }
    # HK_Schatzsucher aufrufen (Schatzevent-IDs übergeben)
    $hk_schatzsucher = HK_Schatzsucher.new(schaetze)
  end
  #--------------------------------------------------------------------------
  # * Frame update => Die Class HK_Schatzsucher mit updaten
  #--------------------------------------------------------------------------
  def update
    hk_schatzsucher_update
    $hk_schatzsucher.update if $hk_schatzsucher != nil
  end
end
 
 
#==============================================================================
# ** Game_Character
#------------------------------------------------------------------------------
#  Die neue Methode move_toward_event einbinden.
#==============================================================================
 
class Game_Character
  #--------------------------------------------------------------------------
  # * Move Toward Event (Event ID) => Schritt Richtung enstprechendes Event
  #--------------------------------------------------------------------------
  def move_toward_event(id)
    # Abstand zwischen Character und Event
    sx = @x - $game_map.events[id].x
    sy = @y - $game_map.events[id].y
    if sx == 0 and sy == 0
      return
    end
    abs_sx = sx.abs
    abs_sy = sy.abs
    # Wenn Event sowohl auf X- als auch auf Y-Achse gleich weit entfernt => Zufall
    if abs_sx == abs_sy
      rand(2) == 0 ? abs_sx += 1 : abs_sy += 1
    end
    # In jeweilige Richtung bewegen
    if abs_sx > abs_sy
      sx > 0 ? move_left : move_right
      if not moving? and sy != 0
        sy > 0 ? move_up : move_down
      end
    else
      sy > 0 ? move_up : move_down
      if not moving? and sx != 0
        sx > 0 ? move_left : move_right
      end
    end
  end
end
 
 
#==============================================================================
# ** Interpreter
#------------------------------------------------------------------------------
#  Die 2 Methoden per Callscript und mit hk-Zusatz verfügbar machen.
#==============================================================================
 
class Interpreter
  #--------------------------------------------------------------------------
  # * Schatzsucher Ändern(id, radius) => Ruft entsprechende Methode
  #--------------------------------------------------------------------------
  def hk_schatzsucher_aendern(id, radius)
    return true if $hk_schatzsucher == nil
    $hk_schatzsucher.schatzsucher_aendern(id, radius)
    return true
  end
  #--------------------------------------------------------------------------
  # * Schatz Ändern(id, aktiv) => Ruft entsprechende Methode
  #--------------------------------------------------------------------------
  def hk_schatz_aendern(id, aktiv)
    return true if $hk_schatzsucher == nil
    $hk_schatzsucher.schatz_aendern(id, aktiv)
    return true
  end
end
zum Lesen den Text mit der Maus markieren
:musta:

Evrey

Oberschurke im Ruhestand

Motto: "Satzzeichen sind keine Rudeltiere." - Chesra

  • Nachricht senden

69

Dienstag, 13. Januar 2009, 18:59

Schönes Script^^ Den Ersten hat's sich verdient^^ Merkt man mal den Unterschied in den ganzen Handhabungen xD
  • :medal: Werbung

    Bild

    Cpp Quellcode

    1
    
    #define TRUE FALSE //Happy debugging suckers
    (Einfach nur wundervoll.)
  • :palette: 1plus3 :cake:

    Bild
  • :fires: Nuuuhminaaah

    Bild
  • :medal: compétences

    mes compétences
    :heart_full: :heart_full: :heart_full: :heart_full: :heart_full: max.
    :ruler-triangle: Maps machen :heart_full: :heart-empty: :heart-empty: :heart-empty: :heart-empty:
    :media-player: Musik machen :heart_full: :heart-half: :heart-empty: :heart-empty: :heart-empty:
    :cup: Scripts machen :heart_full: :heart_full: :heart_full: :heart_full: :heart-break:
    :paper: Story ausdenken :heart_full: :heart_full: :heart_full: :heart-empty: :heart-empty:
    :cut: Pixeln und so :heart-empty: :heart-empty: :heart-empty: :heart-empty: :heart-empty:
    :game: Events proggen :heart_full: :heart_full: :heart_full: :heart_full: :heart_full:
    (Dieser Tab ist rein satirisch.)
  • :folder-open: mes projets

    • :addressbook: Silentium
      :book: Name: Silentium
      :rmxp: Maker: Eigenbau (C++, x86-SSE/AVX-Assembly, Ruby/Lua)

      :paper: Story
      :game: NPCs
      :cup: Scripts
      :drill: Ressis
      :ruler-triangle: Maps
      :compile: Gesamt
      (3+4)% 42 69% 0815 -17.438 103.38% ± 6.3mm²

      (Die Tabelle erfüllt lediglich satirische Zwecke.)
    • :compile: Onyx
      Eine in C++ implementierte, modulare, plattformunabhängige, virtuelle Maschine. Die Test-Version ist bereits halb fertig. Ab dann gibt es vielleicht mehr Infos. Sie soll die auf dem ersten Blick LISP-artige und eigens dafür konstruierte Sprache Obsidian ausführen können. Experimentell wird auch ein Lua-Compiler für Onyx gebaut. Ziel ist eine leistungsfähige, virtuelle Maschine für beliebige Scriptsprachen. Theoretisch gesehen müsste man bloß noch einen kompatiblen Compiler schreiben, der Quellcode jener Sprache in Onyx-Assembly, oder direkt in Onyx-Bytecode übersetzt. Ob die jemand nutzen wird, ist eine andere Frage und nur ein sekundäres... nein, eher tertiäres Ziel dieser VM. Primär dient es mir lediglich dazu, mein Verständnis von Hardware, ISA, und Assembly zu vertiefen, sowie eigene Grenzen auszutesten.

      :exclamation: Warnung!
      Das Entwickeln einer virtuellen Maschine oder Programmiersprache (im wahnsinnigsten Fall beides) ist eine höchst komplizierte Tätigkeit, aus der viel Frust und Hirnmatsche hervor gehen. Sollte sich dennoch ein ähnlich wahnsinniger finden, der sowas zusammen schustern will, so lege ich ihm/ihr die folgenden Bücher ans Herz:
      • Compiler - Das Drachenbuch [978-3-8273-7097-6]
        Dieses Buch schlachtet ausführlich und leicht verständlich die Grundlagen bis hoch zu den Experten-Techniken des Compilerbaus aus. Es fängt mit der Automaten-Theorie und formalen Sprachen an, arbeitet sich durch Analysetechniken vor, und landet schließlich bei Techniken wie Optimierung und Register-Zuweisung. Das Buch wiegt 3Kg oder 4Kg. Hab's mal gewogen. Ist also nicht gerade die Lektüre für unterwegs.

      • Computerarchitektur [3-8273-7016-7]
        Hier werden leicht verständlich die wichtigsten Entwicklungen der Rechnerarchitekturen erklärt (Gut, das Buch ist in die Jahre gekommen, aber der Weg zu heute ist ein winziger Schritt, den man sich nach diesem Buch selbst erdenken kann). Hauptbestandteil des Buchs ist eine relativ umfassende Betrachtung der Funktionsweise dreier gänzlich unterschiedlicher, aber dominierender Prozessor-Typen am Beispiel des Pentium II, UltraSPARC II, sowie picoJava. Die meisten Elemente dieses Buchs sind zwar für die Konstruktion einer virtuellen Maschine irrelevant, oder aufgrund der Tatsache, dass die VM Software ist und z.B. Byte-Grenzen hat, sogar zu Leistungseinbußen führen kann, doch ist ein hinreichendes Verständnis dieser Maschinen, mit denen wir arbeiten, äußerst hilfreich für die Überlegungen, wie die VM arbeiten soll.

      Es kann sehr hilfreich und inspirierend sein, den Code quelloffener, virtueller Maschinen anderer Sprachen zu überfliegen. Meine Lieblings-Quelle war und ist stets die VM von Lua. Sie ist schlank, verständlich, in C implementiert, und basiert im Gegensatz zu vielen anderen Scriptsprachen-VMs auf einer Register-Maschine statt einer Stapelmaschine. Es wäre natürlich vorteilhaft, die entsprechende Sprache zu verstehen, in der man auch die eigene VM implementieren will. Weiterhin ist es äußerst vorteilhaft, eine leistungsstarke und bequeme Sprache wie C++ zu beherrschen, um die VM zu implementieren. Und bevor irgendwer auf die Idee kommt: Assembly ist NICHT als dominierende Sprache für den Bau einer VM geeignet. Wer die Frage des "Warum?" nicht beantworten kann, sollte zunächst die gewählte Sprache und Assembly hinreichend verstehen lernen, und es dann erneut mit der Frage versuchen. Es lohnt sich dennoch, Assembly zu lernen. Allein schon, um erneut das Verständnis zu vertiefen, zumal ihr mehr oder weniger gezwungen seid, auch für eure VM eine Assembler-Sprache zu entwickeln (Außer natürlich ihr schreibt eure Test-Programme Bit für Bit ;3).
  • :locale: enfin

    Je ne peux pas parler français.
    C'est tout ce que Goodle et les restes de cours de français.
Signaturstand: 24.07.2013

70

Freitag, 16. Januar 2009, 13:15

Hierzu möchte ich nicht mehr viele Worte verlieren... Version 1.0, es wird nur ein Script benötigt, funzt einwandfrei, Methode muss nur einmal aufgerufen werden... kurzum: Perfekt!
Und dieses Script war...
Find & Seek by Hüpfende Kokosnuss. Meinen Glückwunsch, Credits sind dir sicher^^


Wuhu ich fühle mich geehrt ^^
Aber es ist Version 1.1 xD
Okay ich bedanke mich für eure Glückwünsche, und ich werd mich dann morgen oder so mit dir auseinander setzen wegen Gastrolle ^^
Ja ein kreativer Name, dieses Find and Seek, hätte ich auch drauf kommen können o.o
Also offiziell kann man das jetzt auch so nennen ^^
Veröffentlicht hätte ich es auch so oder so (zumindest wenn du nichts dagegen gehabt hättest).

Doch eigentlich sind wir alle Gewinner, denn schließlich ist der Weg das Ziel. Selbst wenn man nicht erster wurde, hat man jetzt immerhin etwas gelernt, schätze ich... okay dann is der Contest wohl vorbei, schade, sowas könnte es ruhig mal "offiziell" geben ^^

Ähnliche Themen

Social Bookmarks