• Anmelden

1

Montag, 28. November 2011, 18:55

Script deaktivieren

Hey,
ich wollte mal fragen, ob es irgendwie eine Möglichkeit gibt, ein RGSS-Script vorübergehend zu deaktivieren? (ohne es aus dem Script Editor zu löschen!)

Danke schonmal für eine Antwort.

Gruß,
Rico

2

Montag, 28. November 2011, 19:48

Also ich wüsste jetzt nicht, wie du das Script selbst deaktivieren könntest. Glaube nicht, dass das möglich ist.
Allerdings könntest du die einzelnen Methoden temporär umgehen.
Geh einfach zu der Methode, die du zeitweise unbrauchbar machen willst und setze ne If-Bedingung rum, ob Variable oder Switch XY auf nem bestimmten Wert ist.
Also praktisch:

Ruby Quellcode

1
2
3
4
5
def test
  if $game_switches[1] == true
    p("Blubb.")
  end
end


Wenn du jetzt die Switch mit der Nummer 1 auf aus (off/false) stellst wird die Methode zwar aufgerufen, es passiert aber nix.

Was allerdings wahrscheinlich eine sauberere Lösung wäre: mach das gleiche beim Methodenaufruf.
Also wenn du zB. in nem Event einen Script-Befehl "$beispiel.test(blubb)" hast, setze eine If-Bedingung rum.

3

Montag, 28. November 2011, 20:01

Du kannst die if-Bedingung auch um das Script selbst machen:

Ruby Quellcode

1
2
3
if false
# <--- hier kommt der Inhalt des Skriptes
end
Bild
RMXP Grundkurs
1 2 3
Ruby/RGSS-Kurs

Evrey

Oberschurke im Ruhestand

Motto: "Satzzeichen sind keine Rudeltiere." - Chesra

  • Nachricht senden

4

Donnerstag, 1. Dezember 2011, 11:07

Die Frage ist ja, ob das Script zur Laufzeit oder zur Parsezeit (Startzeit) deaktiviert werden soll. Bei Ersterem sollte man sich an der ersten Antwort orientieren, also die Aufrufstellen mit Bedingungen versehen.

Ruby Quellcode

1
2
3
4
5
def eine_rgss_funktion()
  rgss_code()
  zusatzscript() if ($script_ausfuehren)
  anderer_rgss_code()
end
So in etwa kann der Brei aussehen. Der Vorteil hierbei ist, dass die Funktion nicht erst aufgerufen wird, wenn die Bedingung "nö" sagt. Das erspart ein paar zerquetschte Mikrosekündchen Laufzeit, die eh' nicht merkbar zur Last fallen. Naja, aber unnötiger Aufruf bleibt unnötiger Aufruf. Bei Letzterem gilt Kai's Strategie. Dort ist das Script allerdings nicht mehr zur Laufzeit aktivierbar. Es gibt aber noch eine sicherheitskritische, dritte Möglichkeit:
Packe das Script in eine Ruby-Datei (.rb) und Lade es irgend wann, wenn du's brauchst via Kernel::require(*a) Ist das Script dann allerdings einmal geladen, so bleibt es auch geladen.
  • :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

Social Bookmarks