Bleib stehen, nicht weiterspringen!
Ich habe mal wieder ein problem. Ich hab zwar jetzt ne Trial version, aber endlich kann ich Scripts einfügen.
Ich habe bei mir einen Sprungscript eingefügt.
>>>>>Original Thread >>> Jump Script
Der Thread ist veraltet und ich wollte ihn nicht ausgraben, aber jetzt zu meinem problem.
2 Fehler wurden dort gefunden und korrigiert.
Ich hab noch n Problem festgestellt, der weder angesprchen wurde, noch gelöst wurde.
Wenn eine textnachricht dran steht kann man ja mit seinem chara nicht laufen, sondern die nachricht wegdrücken/weiterdrücken und wenn sie weg ist, gehts wieder.
Wenn man aber den Sprungscript eingebaut hat, kann man während einer textnachricht durch die gegend springen.
Das finde ich persöhnlich nicht so toll, da es manche stellen in einem spiel gibt, wo ja sachen erscheinen, einen umzingeln oder sowas, wenn man wärenddessen, wo die nachrichten stehen, wegspringen kann, Sieht das Blöd aus, wenn auf der anderen seite der map die monser auftauchen. Und manchmal stimmen die texte auch nicht mehr zum spielverhalten, wenn man wegspringt.
Noch ein ähnliches problem ist, wenn der Chara eigendlich Durch 'Set Move Route' einen bestimmten weg gehen soll, kann man auch da springen.
Also mal kurzgefasst:
Egal was passiert, man kann springen (auser im Kampf)
Kann das jemand ändern? jemand der mehr ahnung von Scripts hat als ich?
Hier ist der Sprungscript, wie er von slayeroflight zusammengesetzt wurde:
|
|
Ruby Quellcode |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
=begin Einfügen: Das Script fügst du ein indem du ein im Maker F11 drückst und dann über Maine ein Neues Script erstellst und dann den ganzen Code einfügst. Einstellungen: ●$jump_length In dieser Variable wird gespeichert wie viele Felder der Spieler springen kann. (Standard 2) ●$terrain In dieser Variable wird eine Terrain ID gespeichert. Wenn man auf das Terrain mit dieser ID Springt verlieren Der Spieler Energie und wird wieder an den Ausgansort Teleporiert.(Standard 7) ●$lose_hp In dieser Variable wird gespeichert wie viel Energie der Spiele verliert wen er auf die oben gewählte Terrain ID springt. ●$dead Hier wird mit true und false fest gelegt ob der Spieler sterben kannwen er auf die Terrain ID springt. ●$heightMit diser Veraiable kann man die Höhe des Sprungs einstellen. ●$disable_terrainIn dieser Variable kann man einen Terraintag speichern über den man nicht springen kann. (nil bedeutet man kann über jeden springen) Bedienung: Man Springt mit A. Die Taste könnt ihr auf Zeile 54 ändern. credits: slayeroflight =end#-------------------------------------------------------------$jump_length = 2 #Die Länge des Sprungs$height = 2 #Höhe des Sprungs$disable_terrain = 7 #Terrain Tag über den man nicht springen kann.$terrain = 7 #Terrain auf dem Schaden erzielt wird.$lose_hp = 100 #Hp verlust$dead = true #Stirbt wen die HP 0 ist.$embed_events = false #Über events Springen oder nicht.#-------------------------------------------------------------#\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\class Scene_Map#\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ attr_accessor :on_point #------------------------------------------------------------- alias origin_update update if $alias == nil def update origin_update if Input.trigger?(Input::X) jump end end #------------------------------------------------------------- def jump jump = Input.dir4 / 2 case jump when 0 @on_point = true $game_player.jump(0, 0) when 1 $game_player.jump(0, $jump_length) when 2 $game_player.jump(-$jump_length, 0) when 3 $game_player.jump($jump_length, 0) when 4 $game_player.jump(0, -$jump_length) end end #-------------------------------------------------------------#\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\end#\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\#<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<#\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\class Game_Player#\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ #------------------------------------------------------------- def jump(x_plus, y_plus) if (chack_disable_terrain and $scene.on_point != true) or (check_disable_event == false) return end $scene.on_point = nil if x_plus != 0 or y_plus != 0 if x_plus.abs > y_plus.abs x_plus < 0 ? turn_left : turn_right else y_plus < 0 ? turn_up : turn_down end end @prejump_x = @x @prejump_y = @y new_x = @x + x_plus new_y = @y + y_plus if (x_plus == 0 and y_plus == 0) or passable?(new_x, new_y, 0) straighten @x = new_x @y = new_y distance = Math.sqrt(x_plus * x_plus + y_plus * y_plus).round @jump_peak = 10 + distance - @move_speed + ($height - distance) @jump_count = @jump_peak * 2 @stop_count = 0 return elsif passable?(new_x, new_y, 0) == false if $game_map.terrain_tag(new_x, new_y) == $terrain straighten @x = new_x @y = new_y distance = Math.sqrt(x_plus * x_plus + y_plus * y_plus).round @jump_peak = 10 + distance - @move_speed + ($height - distance) @jump_count = @jump_peak * 2 @stop_count = 0 for i in $game_party.actors if i.hp - $lose_hp <= 0 and $dead == false i.hp = 1 else i.hp -= $lose_hp end end end end end #------------------------------------------------------------- alias origin_update update if $alias == nil def update origin_update if $game_map.terrain_tag(@x, @y) == $terrain @loop_count = 6 if @loop_count == nil if @jump_count == 0 @loop_count -= 1 if @loop_count == 0 $game_temp.gameover = $game_party.all_dead? unless $game_party.all_dead? moveto(@prejump_x, @prejump_y) end @loop_count = 6 end end end end #------------------------------------------------------------- def chack_disable_terrain if $disable_terrain != nil for i in 0...$jump_length + 1 case @direction when 2 return true if $game_map.terrain_tag(@x, @y + i) == $disable_terrain when 4 return true if $game_map.terrain_tag(@x - i, @y) == $disable_terrain when 6 return true if $game_map.terrain_tag(@x + i, @y) == $disable_terrain when 8 return true if $game_map.terrain_tag(@x, @y - i) == $disable_terrain end end end return false end def check_disable_event if $embed_events for i in 0...$jump_length + 1 case @direction when 2 return false unless new_passable?($game_player.x, $game_player.y + i) when 4 return false unless new_passable?($game_player.x - 1, $game_player.y) when 6 return false unless new_passable?($game_player.x + i, $game_player.y) when 8 return false unless new_passable?($game_player.x, $game_player.y - i) end end end return @returned_value end def new_passable?(x, y) for event in $game_map.events.values if event.x == x and event.y == y return false end end end#\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\end#\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\#<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<#\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\class Game_Character#\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ #------------------------------------------------------------- alias origin_update_jump update_jump if $alias == nil def update_jump Input.update origin_update_jump end #------------------------------------------------------------- #\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\end#\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\#------------------------------------------------------------- $alias = 0#------------------------------------------------------------- |
-
Projekt = Quadro

-
Threads
-
Fähigkeiten
Mapping: Fortschreitend
RGSS: Beginner
Story schreiben: Normal
Events: Profi
Grafik & Pixeln: Beginner
Musik & Sounds: Anfänger
Maker: RPG Maker XP
Das Problem ist mir bekannt... Nunja, du hast 2 Dinge zur Auswahl:
1) Du kennst dich mit den Standardscripten aus und setzt alles in ein "if", mit der Bedingung, dass kein Auto-Event, bzw. eine Nachricht am laufen ist, aber dazu muss man die richtigen Befehle kennen.
2) Soweit ich mich erinnern kann, war das Script über einen Switch steuerbar, wenn nicht, lässt sich das schnell ändern. Ist zwar 'ne Drecksarbeit, aber dann musst du nur noch vor und nach jeder Nachricht, bzw. vor und nach jedem Auto-Event den Schalter setzen^^"
Hoffe, das hat geholfen^^"
2) Soweit ich mich erinnern kann, war das Script über einen Switch steuerbar, wenn nicht, lässt sich das schnell ändern. Ist zwar 'ne Drecksarbeit, aber dann musst du nur noch vor und nach jeder Nachricht, bzw. vor und nach jedem Auto-Event den Schalter setzen^^"
Hoffe, das hat geholfen^^"
-
Werbung -
1plus3
-
Nuuuhminaaah
-
compétences(Dieser Tab ist rein satirisch.)mes compétences
max.
Maps machen
Musik machen
Scripts machen
Story ausdenken
Pixeln und so
Events proggen
-
mes projets-
Silentium
Name: Silentium
Maker: Eigenbau (C++, x86-SSE/AVX-Assembly, Ruby/Lua)
Story
NPCs
Scripts
Ressis
Maps
Gesamt(3+4)% 42 69% 0815 -17.438 103.38% ± 6.3mm²
(Die Tabelle erfüllt lediglich satirische Zwecke.) -
OnyxEine 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.
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). - Compiler - Das Drachenbuch [978-3-8273-7097-6]
-
-
enfinJe ne peux pas parler français.
C'est tout ce que Goodle et les restes de cours de français.
Ich kenn mich mit scripts (oder ich glaube das heißt Ruby) nicht aus. Ich könnte nichtmal das einfachste des makers scripten...Leider...
Mit den switchern hab ich mich auch noch nie auseinander gesetzt. Und ausserdem ist in meinem spiel echt viel zu lesen. das wäre eine arbeit von wochen, und das spiel hat gerade mal die ersten ca. 100 Maps. Ich würde nur noch die switcher machen. das wäre wirklich viel zu viel arbeit.
Villeicht kann das einer von euch für mich umscripten?
das wäre echt nett und ich wäre demjenigen echt dankbar.
PS: Hab ich irgendetwas falsch gemacht, das oben das script im ersten Post nicht richtig angezeigt wird?
Mit den switchern hab ich mich auch noch nie auseinander gesetzt. Und ausserdem ist in meinem spiel echt viel zu lesen. das wäre eine arbeit von wochen, und das spiel hat gerade mal die ersten ca. 100 Maps. Ich würde nur noch die switcher machen. das wäre wirklich viel zu viel arbeit.
Villeicht kann das einer von euch für mich umscripten?
das wäre echt nett und ich wäre demjenigen echt dankbar.
PS: Hab ich irgendetwas falsch gemacht, das oben das script im ersten Post nicht richtig angezeigt wird?
-
Projekt = Quadro

-
Threads
-
Fähigkeiten
Mapping: Fortschreitend
RGSS: Beginner
Story schreiben: Normal
Events: Profi
Grafik & Pixeln: Beginner
Musik & Sounds: Anfänger
Maker: RPG Maker XP
natürlich:
wieso wird der script nicht richtig angezeigt???
ich schreib den mal noch so:
[info]=begin
Einfügen:
Das Script fügst du ein indem du ein im Maker F11 drückst und
dann über Maine ein Neues Script erstellst und dann den ganzen
Code einfügst.
Einstellungen:
●$jump_length
In dieser Variable wird gespeichert wie viele Felder der Spieler
springen kann. (Standard 2)
●$terrain
In dieser Variable wird eine Terrain ID gespeichert.
Wenn man auf das Terrain mit dieser ID Springt verlieren Der
Spieler Energie und wird wieder an den Ausgansort Teleporiert.
(Standard 7)
●$lose_hp
In dieser Variable wird gespeichert wie viel Energie der Spiele
verliert wen er auf die oben gewählte Terrain ID springt.
●$dead
Hier wird mit true und false fest gelegt ob der Spieler sterben kann
wen er auf die Terrain ID springt.
●$height
Mit diser Veraiable kann man die Höhe des Sprungs einstellen.
●$disable_terrain
In dieser Variable kann man einen Terraintag speichern über den man
nicht springen kann. (nil bedeutet man kann über jeden springen)
Bedienung:
Man Springt mit A. Die Taste könnt ihr auf Zeile 54 ändern.
credits: slayeroflight
=end
#-------------------------------------------------------------
$jump_length = 2 #Die Länge des Sprungs
$height = 5 #Höhe des Sprungs
$disable_terrain = 7 #Terrain Tag über den man nicht springen kann.
$terrain = 7 #Terrain auf dem Schaden erzielt wird.
$lose_hp = 100 #Hp verlust
$dead = true #Stirbt wen die HP 0 ist.
$embed_events = false #Über events Springen oder nicht.
#-------------------------------------------------------------
#\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
class Scene_Map
#\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
attr_accessor :on_point
#-------------------------------------------------------------
alias origin_update update if $alias == nil
def update
origin_update
if Input.trigger?(Input::X)
jump
end
end
#-------------------------------------------------------------
def jump
jump = Input.dir4 / 2
case jump
when 0
@on_point = true
$game_player.jump(0, 0)
when 1
$game_player.jump(0, $jump_length)
when 2
$game_player.jump(-$jump_length, 0)
when 3
$game_player.jump($jump_length, 0)
when 4
$game_player.jump(0, -$jump_length)
end
end
#-------------------------------------------------------------
#\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
end
#\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
#<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
#\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
class Game_Player
#\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
#-------------------------------------------------------------
def jump(x_plus, y_plus)
if (chack_disable_terrain and $scene.on_point != true) or (check_disable_event == false)
return
end
$scene.on_point = nil
if x_plus != 0 or y_plus != 0
if x_plus.abs > y_plus.abs
x_plus < 0 ? turn_left : turn_right
else
y_plus < 0 ? turn_up : turn_down
end
end
@prejump_x = @x
@prejump_y = @y
new_x = @x + x_plus
new_y = @y + y_plus
if (x_plus == 0 and y_plus == 0) or passable?(new_x, new_y, 0)
straighten
@x = new_x
@y = new_y
distance = Math.sqrt(x_plus * x_plus + y_plus * y_plus).round
@jump_peak = 10 + distance - @move_speed + ($height - distance)
@jump_count = @jump_peak * 2
@stop_count = 0
return
elsif passable?(new_x, new_y, 0) == false
if $game_map.terrain_tag(new_x, new_y) == $terrain
straighten
@x = new_x
@y = new_y
distance = Math.sqrt(x_plus * x_plus + y_plus * y_plus).round
@jump_peak = 10 + distance - @move_speed + ($height - distance)
@jump_count = @jump_peak * 2
@stop_count = 0
for i in $game_party.actors
if i.hp - $lose_hp <= 0 and $dead == false
i.hp = 1
else
i.hp -= $lose_hp
end
end
end
end
end
#-------------------------------------------------------------
alias origin_update update if $alias == nil
def update
origin_update
if $game_map.terrain_tag(@x, @y) == $terrain
@loop_count = 6 if @loop_count == nil
if @jump_count == 0
@loop_count -= 1
if @loop_count == 0
$game_temp.gameover = $game_party.all_dead?
unless $game_party.all_dead?
moveto(@prejump_x, @prejump_y)
end
@loop_count = 6
end
end
end
end
#-------------------------------------------------------------
def chack_disable_terrain
if $disable_terrain != nil
for i in 0...$jump_length + 1
case @direction
when 2
return true if $game_map.terrain_tag(@x, @y + i) == $disable_terrain
when 4
return true if $game_map.terrain_tag(@x - i, @y) == $disable_terrain
when 6
return true if $game_map.terrain_tag(@x + i, @y) == $disable_terrain
when 8
return true if $game_map.terrain_tag(@x, @y - i) == $disable_terrain
end
end
end
return false
end
def check_disable_event
if $embed_events
for i in 0...$jump_length + 1
case @direction
when 2
return false unless new_passable?($game_player.x, $game_player.y + i)
when 4
return false unless new_passable?($game_player.x - 1, $game_player.y)
when 6
return false unless new_passable?($game_player.x + i, $game_player.y)
when 8
return false unless new_passable?($game_player.x, $game_player.y - i)
end
end
end
return @returned_value
end
def new_passable?(x, y)
for event in $game_map.events.values
if event.x == x and event.y == y
return false
end
end
end
#\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
end
#\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
#<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
#\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
class Game_Character
#\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
#-------------------------------------------------------------
alias origin_update_jump update_jump if $alias == nil
def update_jump
Input.update
origin_update_jump
end
#-------------------------------------------------------------
#\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
end
#\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
#-------------------------------------------------------------
$alias = 0
#-------------------------------------------------------------[/info]
Ich hoffe das hilft irgendwie
|
|
Ruby Quellcode |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
=begin Einfügen: Das Script fügst du ein indem du ein im Maker F11 drückst und dann über Maine ein Neues Script erstellst und dann den ganzen Code einfügst. Einstellungen: ●$jump_length In dieser Variable wird gespeichert wie viele Felder der Spieler springen kann. (Standard 2) ●$terrain In dieser Variable wird eine Terrain ID gespeichert. Wenn man auf das Terrain mit dieser ID Springt verlieren Der Spieler Energie und wird wieder an den Ausgansort Teleporiert.(Standard 7) ●$lose_hp In dieser Variable wird gespeichert wie viel Energie der Spiele verliert wen er auf die oben gewählte Terrain ID springt. ●$dead Hier wird mit true und false fest gelegt ob der Spieler sterben kannwen er auf die Terrain ID springt. ●$heightMit diser Veraiable kann man die Höhe des Sprungs einstellen. ●$disable_terrainIn dieser Variable kann man einen Terraintag speichern über den man nicht springen kann. (nil bedeutet man kann über jeden springen) Bedienung: Man Springt mit A. Die Taste könnt ihr auf Zeile 54 ändern. credits: slayeroflight =end#-------------------------------------------------------------$jump_length = 2 #Die Länge des Sprungs$height = 5 #Höhe des Sprungs$disable_terrain = 7 #Terrain Tag über den man nicht springen kann.$terrain = 7 #Terrain auf dem Schaden erzielt wird.$lose_hp = 100 #Hp verlust$dead = true #Stirbt wen die HP 0 ist.$embed_events = false #Über events Springen oder nicht.#-------------------------------------------------------------#\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\class Scene_Map#\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ attr_accessor :on_point #------------------------------------------------------------- alias origin_update update if $alias == nil def update origin_update if Input.trigger?(Input::X) jump end end #------------------------------------------------------------- def jump jump = Input.dir4 / 2 case jump when 0 @on_point = true $game_player.jump(0, 0) when 1 $game_player.jump(0, $jump_length) when 2 $game_player.jump(-$jump_length, 0) when 3 $game_player.jump($jump_length, 0) when 4 $game_player.jump(0, -$jump_length) end end #-------------------------------------------------------------#\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\end#\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\#<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<#\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\class Game_Player#\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ #------------------------------------------------------------- def jump(x_plus, y_plus) if (chack_disable_terrain and $scene.on_point != true) or (check_disable_event == false) return end $scene.on_point = nil if x_plus != 0 or y_plus != 0 if x_plus.abs > y_plus.abs x_plus < 0 ? turn_left : turn_right else y_plus < 0 ? turn_up : turn_down end end @prejump_x = @x @prejump_y = @y new_x = @x + x_plus new_y = @y + y_plus if (x_plus == 0 and y_plus == 0) or passable?(new_x, new_y, 0) straighten @x = new_x @y = new_y distance = Math.sqrt(x_plus * x_plus + y_plus * y_plus).round @jump_peak = 10 + distance - @move_speed + ($height - distance) @jump_count = @jump_peak * 2 @stop_count = 0 return elsif passable?(new_x, new_y, 0) == false if $game_map.terrain_tag(new_x, new_y) == $terrain straighten @x = new_x @y = new_y distance = Math.sqrt(x_plus * x_plus + y_plus * y_plus).round @jump_peak = 10 + distance - @move_speed + ($height - distance) @jump_count = @jump_peak * 2 @stop_count = 0 for i in $game_party.actors if i.hp - $lose_hp <= 0 and $dead == false i.hp = 1 else i.hp -= $lose_hp end end end end end #------------------------------------------------------------- alias origin_update update if $alias == nil def update origin_update if $game_map.terrain_tag(@x, @y) == $terrain @loop_count = 6 if @loop_count == nil if @jump_count == 0 @loop_count -= 1 if @loop_count == 0 $game_temp.gameover = $game_party.all_dead? unless $game_party.all_dead? moveto(@prejump_x, @prejump_y) end @loop_count = 6 end end end end #------------------------------------------------------------- def chack_disable_terrain if $disable_terrain != nil for i in 0...$jump_length + 1 case @direction when 2 return true if $game_map.terrain_tag(@x, @y + i) == $disable_terrain when 4 return true if $game_map.terrain_tag(@x - i, @y) == $disable_terrain when 6 return true if $game_map.terrain_tag(@x + i, @y) == $disable_terrain when 8 return true if $game_map.terrain_tag(@x, @y - i) == $disable_terrain end end end return false end def check_disable_event if $embed_events for i in 0...$jump_length + 1 case @direction when 2 return false unless new_passable?($game_player.x, $game_player.y + i) when 4 return false unless new_passable?($game_player.x - 1, $game_player.y) when 6 return false unless new_passable?($game_player.x + i, $game_player.y) when 8 return false unless new_passable?($game_player.x, $game_player.y - i) end end end return @returned_value end def new_passable?(x, y) for event in $game_map.events.values if event.x == x and event.y == y return false end end end#\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\end#\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\#<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<#\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\class Game_Character#\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ #------------------------------------------------------------- alias origin_update_jump update_jump if $alias == nil def update_jump Input.update origin_update_jump end #------------------------------------------------------------- #\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\end#\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\#------------------------------------------------------------- $alias = 0#------------------------------------------------------------- |
wieso wird der script nicht richtig angezeigt???
ich schreib den mal noch so:
[info]=begin
Einfügen:
Das Script fügst du ein indem du ein im Maker F11 drückst und
dann über Maine ein Neues Script erstellst und dann den ganzen
Code einfügst.
Einstellungen:
●$jump_length
In dieser Variable wird gespeichert wie viele Felder der Spieler
springen kann. (Standard 2)
●$terrain
In dieser Variable wird eine Terrain ID gespeichert.
Wenn man auf das Terrain mit dieser ID Springt verlieren Der
Spieler Energie und wird wieder an den Ausgansort Teleporiert.
(Standard 7)
●$lose_hp
In dieser Variable wird gespeichert wie viel Energie der Spiele
verliert wen er auf die oben gewählte Terrain ID springt.
●$dead
Hier wird mit true und false fest gelegt ob der Spieler sterben kann
wen er auf die Terrain ID springt.
●$height
Mit diser Veraiable kann man die Höhe des Sprungs einstellen.
●$disable_terrain
In dieser Variable kann man einen Terraintag speichern über den man
nicht springen kann. (nil bedeutet man kann über jeden springen)
Bedienung:
Man Springt mit A. Die Taste könnt ihr auf Zeile 54 ändern.
credits: slayeroflight
=end
#-------------------------------------------------------------
$jump_length = 2 #Die Länge des Sprungs
$height = 5 #Höhe des Sprungs
$disable_terrain = 7 #Terrain Tag über den man nicht springen kann.
$terrain = 7 #Terrain auf dem Schaden erzielt wird.
$lose_hp = 100 #Hp verlust
$dead = true #Stirbt wen die HP 0 ist.
$embed_events = false #Über events Springen oder nicht.
#-------------------------------------------------------------
#\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
class Scene_Map
#\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
attr_accessor :on_point
#-------------------------------------------------------------
alias origin_update update if $alias == nil
def update
origin_update
if Input.trigger?(Input::X)
jump
end
end
#-------------------------------------------------------------
def jump
jump = Input.dir4 / 2
case jump
when 0
@on_point = true
$game_player.jump(0, 0)
when 1
$game_player.jump(0, $jump_length)
when 2
$game_player.jump(-$jump_length, 0)
when 3
$game_player.jump($jump_length, 0)
when 4
$game_player.jump(0, -$jump_length)
end
end
#-------------------------------------------------------------
#\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
end
#\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
#<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
#\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
class Game_Player
#\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
#-------------------------------------------------------------
def jump(x_plus, y_plus)
if (chack_disable_terrain and $scene.on_point != true) or (check_disable_event == false)
return
end
$scene.on_point = nil
if x_plus != 0 or y_plus != 0
if x_plus.abs > y_plus.abs
x_plus < 0 ? turn_left : turn_right
else
y_plus < 0 ? turn_up : turn_down
end
end
@prejump_x = @x
@prejump_y = @y
new_x = @x + x_plus
new_y = @y + y_plus
if (x_plus == 0 and y_plus == 0) or passable?(new_x, new_y, 0)
straighten
@x = new_x
@y = new_y
distance = Math.sqrt(x_plus * x_plus + y_plus * y_plus).round
@jump_peak = 10 + distance - @move_speed + ($height - distance)
@jump_count = @jump_peak * 2
@stop_count = 0
return
elsif passable?(new_x, new_y, 0) == false
if $game_map.terrain_tag(new_x, new_y) == $terrain
straighten
@x = new_x
@y = new_y
distance = Math.sqrt(x_plus * x_plus + y_plus * y_plus).round
@jump_peak = 10 + distance - @move_speed + ($height - distance)
@jump_count = @jump_peak * 2
@stop_count = 0
for i in $game_party.actors
if i.hp - $lose_hp <= 0 and $dead == false
i.hp = 1
else
i.hp -= $lose_hp
end
end
end
end
end
#-------------------------------------------------------------
alias origin_update update if $alias == nil
def update
origin_update
if $game_map.terrain_tag(@x, @y) == $terrain
@loop_count = 6 if @loop_count == nil
if @jump_count == 0
@loop_count -= 1
if @loop_count == 0
$game_temp.gameover = $game_party.all_dead?
unless $game_party.all_dead?
moveto(@prejump_x, @prejump_y)
end
@loop_count = 6
end
end
end
end
#-------------------------------------------------------------
def chack_disable_terrain
if $disable_terrain != nil
for i in 0...$jump_length + 1
case @direction
when 2
return true if $game_map.terrain_tag(@x, @y + i) == $disable_terrain
when 4
return true if $game_map.terrain_tag(@x - i, @y) == $disable_terrain
when 6
return true if $game_map.terrain_tag(@x + i, @y) == $disable_terrain
when 8
return true if $game_map.terrain_tag(@x, @y - i) == $disable_terrain
end
end
end
return false
end
def check_disable_event
if $embed_events
for i in 0...$jump_length + 1
case @direction
when 2
return false unless new_passable?($game_player.x, $game_player.y + i)
when 4
return false unless new_passable?($game_player.x - 1, $game_player.y)
when 6
return false unless new_passable?($game_player.x + i, $game_player.y)
when 8
return false unless new_passable?($game_player.x, $game_player.y - i)
end
end
end
return @returned_value
end
def new_passable?(x, y)
for event in $game_map.events.values
if event.x == x and event.y == y
return false
end
end
end
#\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
end
#\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
#<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
#\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
class Game_Character
#\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
#-------------------------------------------------------------
alias origin_update_jump update_jump if $alias == nil
def update_jump
Input.update
origin_update_jump
end
#-------------------------------------------------------------
#\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
end
#\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
#-------------------------------------------------------------
$alias = 0
#-------------------------------------------------------------[/info]
Ich hoffe das hilft irgendwie
-
Projekt = Quadro

-
Threads
-
Fähigkeiten
Mapping: Fortschreitend
RGSS: Beginner
Story schreiben: Normal
Events: Profi
Grafik & Pixeln: Beginner
Musik & Sounds: Anfänger
Maker: RPG Maker XP
Benutzerinformationen überspringen
Motto: Wer anderen eine Bratwurst brät, der hat ein Bratwurstbratgerät.
ich hab wieder mla nicht getestet, nur geraten^^
An den 3 Stellen wo $game_switches[1] steht musst du die 1 durch die Switch-ID deiner Wahle erstzen.
|
|
Ruby Quellcode |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
class Scene_Map alias old_neobahamut_jump jump def jump if not $game_switches[1] == true then old_neobahamut_jump end end end class Window_Message < Window_Selectable alias old_neobahamut_blabla_initialize initialize def initialize old_neobahamut_blabla_initialize $game_switches[1] = true end alias old_neobahamut_blabla_dispose dispose def dispose old_neobahamut_blabla_dispose $game_switches[1] = false end end |
An den 3 Stellen wo $game_switches[1] steht musst du die 1 durch die Switch-ID deiner Wahle erstzen.
beim starten des spiels problem:
[stop]
Script 'Springen' line 2: NameError occurred
undefined method `jump' for class `Scene_Map'[/stop]
da stimmt wohl etwas nicht.
könntest du dies bitte überarbeiten?
wenn nicht, auch nicht so schlimm. ich danke trotzdem für die schnelle lösung (auch wenn sie nicht funzt^^)
[stop]
Script 'Springen' line 2: NameError occurred
undefined method `jump' for class `Scene_Map'[/stop]
da stimmt wohl etwas nicht.
könntest du dies bitte überarbeiten?
wenn nicht, auch nicht so schlimm. ich danke trotzdem für die schnelle lösung (auch wenn sie nicht funzt^^)
-
Projekt = Quadro

-
Threads
-
Fähigkeiten
Mapping: Fortschreitend
RGSS: Beginner
Story schreiben: Normal
Events: Profi
Grafik & Pixeln: Beginner
Musik & Sounds: Anfänger
Maker: RPG Maker XP
Yo, der einzig mögliche Fehler wäre es, dieses Script über das alte zu packen. Der RGSS-Player liest die Scriptliste von unten nach oben.
tut's doch auch, oder? xD
Stil = Neo-Bahamut, fragezeichen? xD
Zitat
![]()
Ruby Quellcode
1 if not $game_switches[1] == true then
|
|
Ruby Quellcode |
1 2 3 |
if $game_switches[1] != true bla... end |
-
Werbung -
1plus3
-
Nuuuhminaaah
-
compétences(Dieser Tab ist rein satirisch.)mes compétences
max.
Maps machen
Musik machen
Scripts machen
Story ausdenken
Pixeln und so
Events proggen
-
mes projets-
Silentium
Name: Silentium
Maker: Eigenbau (C++, x86-SSE/AVX-Assembly, Ruby/Lua)
Story
NPCs
Scripts
Ressis
Maps
Gesamt(3+4)% 42 69% 0815 -17.438 103.38% ± 6.3mm²
(Die Tabelle erfüllt lediglich satirische Zwecke.) -
OnyxEine 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.
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). - Compiler - Das Drachenbuch [978-3-8273-7097-6]
-
-
enfinJe ne peux pas parler français.
C'est tout ce que Goodle et les restes de cours de français.
Stil = Neo-Bahamut, fragezeichen? xD
Zitat
![]()
Ruby Quellcode
1 if not $game_switches[1] == true then
tut's doch auch, oder? xD
![]()
Ruby Quellcode
1 2 3 if $game_switches[1] != true bla... end
Wieso, macht doch beides das selbe? Und not ist einfacher zu lesen, außerdem hat nicht jede Programmiersprache !=, für Umsteiger ist not also offensichtlich ^^ Und das then kommt dann warscheinlich auch von ner anderen Sprache.
Aber warum nicht
|
|
Ruby Quellcode |
1 |
if !$game_switches[1] |
Dass nicht jede Sprache das "!=" hat, wusst' ich noch garnich'^^" Naja... außer Assembler^^" Ich fand' das ist nur so viel zu tippen^^" Und beim !@var kommen mir immer Flüchtigkeitsfehler xD Naja, letzten Endes isses ja nur eine Stilfrage 

-
Werbung -
1plus3
-
Nuuuhminaaah
-
compétences(Dieser Tab ist rein satirisch.)mes compétences
max.
Maps machen
Musik machen
Scripts machen
Story ausdenken
Pixeln und so
Events proggen
-
mes projets-
Silentium
Name: Silentium
Maker: Eigenbau (C++, x86-SSE/AVX-Assembly, Ruby/Lua)
Story
NPCs
Scripts
Ressis
Maps
Gesamt(3+4)% 42 69% 0815 -17.438 103.38% ± 6.3mm²
(Die Tabelle erfüllt lediglich satirische Zwecke.) -
OnyxEine 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.
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). - Compiler - Das Drachenbuch [978-3-8273-7097-6]
-
-
enfinJe ne peux pas parler français.
C'est tout ce que Goodle et les restes de cours de français.
Benutzerinformationen überspringen
Motto: Wer anderen eine Bratwurst brät, der hat ein Bratwurstbratgerät.
Zitat von »Hüpfende Kokosnuss«
Das müsste gehen, füg es als eigenes Skript unter das Jumpskript aber über Main ein...
das hat keine wirkung.
ist genau so wie vorher auch.
es kommt zwar keine fehlermeldung, aber es hat sich auch nix geändert.
ist genau so wie vorher auch.
es kommt zwar keine fehlermeldung, aber es hat sich auch nix geändert.
-
Projekt = Quadro

-
Threads
-
Fähigkeiten
Mapping: Fortschreitend
RGSS: Beginner
Story schreiben: Normal
Events: Profi
Grafik & Pixeln: Beginner
Musik & Sounds: Anfänger
Maker: RPG Maker XP
Wie jetzt??? Haste das mit den Schalter mal ausprobiert??? o__O" Muss eg. 100% laufen o__O"
-
Werbung -
1plus3
-
Nuuuhminaaah
-
compétences(Dieser Tab ist rein satirisch.)mes compétences
max.
Maps machen
Musik machen
Scripts machen
Story ausdenken
Pixeln und so
Events proggen
-
mes projets-
Silentium
Name: Silentium
Maker: Eigenbau (C++, x86-SSE/AVX-Assembly, Ruby/Lua)
Story
NPCs
Scripts
Ressis
Maps
Gesamt(3+4)% 42 69% 0815 -17.438 103.38% ± 6.3mm²
(Die Tabelle erfüllt lediglich satirische Zwecke.) -
OnyxEine 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.
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). - Compiler - Das Drachenbuch [978-3-8273-7097-6]
-
-
enfinJe ne peux pas parler français.
C'est tout ce que Goodle et les restes de cours de français.
ja, es funktioniert ja auch, aber ich kann damit trotzdem wärend messages etc (siehe ersten post) rumspringen.
Das ist ja das problem. und ich will nich vor und nach jeder message den script an und aus schalten, da es bei mir wirklich viel zu lesen gibt. Das wäre zu viel arbeit. am besten wäre es, wenn man irgendwie im script einbauen könnte, das man wärend messages nicht springen kann.
Das ist ja das problem. und ich will nich vor und nach jeder message den script an und aus schalten, da es bei mir wirklich viel zu lesen gibt. Das wäre zu viel arbeit. am besten wäre es, wenn man irgendwie im script einbauen könnte, das man wärend messages nicht springen kann.
-
Projekt = Quadro

-
Threads
-
Fähigkeiten
Mapping: Fortschreitend
RGSS: Beginner
Story schreiben: Normal
Events: Profi
Grafik & Pixeln: Beginner
Musik & Sounds: Anfänger
Maker: RPG Maker XP
also, ich hab das von Hüpfende kokosnuss auf das von Neo-Bahamut getan, das hat funktioniert. das mit dem schalter hab ich nicht ganz verstanden, aber brauch ich auch nicht mehr. Ich hab das von Hüpfende kokosnuss auf das alte script gepackt, und das funktioniert auch. also kann ich das von Neo-Bahamut weglassen (Nicht böse gemeint
)
Ich danke allen für die zahlreiche hilfe.
)Ich danke allen für die zahlreiche hilfe.
-
Projekt = Quadro

-
Threads
-
Fähigkeiten
Mapping: Fortschreitend
RGSS: Beginner
Story schreiben: Normal
Events: Profi
Grafik & Pixeln: Beginner
Musik & Sounds: Anfänger
Maker: RPG Maker XP
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Sora« (26. Dezember 2008, 20:56)



