Beim 2K benutze ich dieses System schon seit Zwielicht und dort läuft alles wie geschmiert.
Druckbare Version
Beim 2K benutze ich dieses System schon seit Zwielicht und dort läuft alles wie geschmiert.
Mich würde mal interessieren, wie das Wait-Kommando intern in Ruby ausgeführt wird, vor allem im Hinblick darauf, wie man das da simuliert. Reicht da ein sleep?
Im Interpreter steht bei Wait ja folgendes:
Vielleicht bin ich zu doof das zu finden, aber ich sehe nirgendwo dieses wait_count als Variable.Code:def command_106
# Set wait count
@wait_count = @parameters[0] * 2
# Continue
return true
end
In der Interpreter#update Methode wird pro frame eine Schleife ausgeführt die zuerst einmal prüft ob das Event auf irgendetwas wartet, falls nicht wird das nächste Kommando ausgeführt und anschließend geschaut ob das Event dabei abgebrochen wurde.
Die Schleife wird dann so lange wiederholt bis irgendeine dieser Warte/Abbruch Bedinung erfüllt wurde.
Der Code der sich mit dem Wait befasst sieht so aus:
Und findet sich ab Zeile 167. Auch gut zu wissen ist, dass die Wartezeiten die du im Editor eingibst eigentlich *2 genommen werden, wenn du Wartezeiten dierekt in ruby implementierst musst du berücksichtigen, dass ein Frame in Wirklichkeit 1/40 Sekunde entspricht und nicht 1/20 wie im Editor.Code:# If waiting
if @wait_count > 0
# Decrease wait count
@wait_count -= 1
return
end
Wartezeiten an für sich lassen sich einfach einbauen, die Methode Graphics.update welche man jeden Frame aufrufen sollte wartet nämlich gleichzeitig auf den nächsten Frame.
Sleep ist dabei keine gute Lösung, immerhin hälst du damit das gesamte geschehen an, was in einem Spiel sicherlich nicht gut kommt.
Jetzt hast du aber nur nicht ganz genau gesagt, wie man ein Wait einbauen kann. Soll man dann einfach Graphics.Update aufrufen?
Du sollst eine Methode einbauen die einmal pro frame aufgerufen wird und die einen Zähler hat, welcher wie im Interpreter aufgebaut ist. Sofern der Zähler noch läuft gibt's ein return und vom Zähler wird 1 abgezogen, falls nicht geht es weiter mit dem geschehen.
Ne kleine Frage am Rande, gibt es eine Möglichkeit, einen Wait-Befehl zu erstellen, notfalls mit RGSS, der weniger als ein Frame dauert? Weil Animationen mit einem Wait von einem Frame sehen übelst aus. Ich wollte wissen, ob das vielleicht flüssiger geht. Vielen Dank.
Wenn du im Interpreter einen Frame wartest, wartet er intern gleich zwei davon - warum auch immer. Die einfachste Möglichkeit eine richtige Frame Wartezeit einzufügen ist wohl über call script:
würde 3 frames wartenCode:@wait_count = 3
Danke, Provinzheld xD
Eine Frage: Gibts irgendwelche RpgXP - Templates für Chipsets oder so? oder kann ich da einfach alles durcheinander einfügen?
Edit: achja und was bedeutet RGSS?
Tileset für XP: 256 * beliebig Pixel, durcheinander einfügen erlaubt.
RGSS: Ruby Game Scripting Sytsem (wenn mich nicht alles täuscht).
meinste mit der 256 Horizontal oder Vertikal? Also X oder Y?
(oder so... xD)
X wie X-Men
...man nennt immer die Breite zuerst. ;)
Theoretisch könnte man dann einfach ALLES oder jedenfalls ziemlich viele Sachen in ein einziges Tile reinpacken oder?
Bis auf die Tatsache dass dann vllcht dieses einzige Tile etwas zu viel KB hätte oder irr ich mich hier?
Ja, das geht, aber dadurch erhöht sich auch die Ladezeit der Grafik, wenn ich mich nicht irre.
Könntest du theoretisch machen, ist aber nicht unbedingt sinnvoll.
Denn in der Regel braucht man nicht immer alles. (wozu zB. ein Klavier in einem Wald :confused: )
Ich hab sogar mal ein Spiel gespielt, wo alles in einem Chipset war, das brauchte dann aber im Maker auch immer etwas bis es geladen war.
THX für die Hilfe aber noch was....
Kann ich denn auch das Autotile-Limit für ein Tile in der Database erhöhen?
EDIT: sry für die Frage mit dem Chipset!" Habs grade auf Seite 1 gelesen X.X
Nein, pro Tileset sind wohl nur 7 Autotiles möglich. Aber du kannst ja das Tileset mehrfach kopieren in der Database und einfach die zugewiesenen Autotiles ändern.
Ich möchte, dass das Spiel ein Ereignis aufruft,
wenn die BGM Musik einmal durchgespielt ist (um ein neues Stück auszusuchen).
Kann diese Bedingung nicht finden!
Ich hab jetzt auch mal eine kleine Frage zum RMXP.
Da ich mir den Maker vor wenigen Tagen ebenfalls zu gelegt habe, und mich auch schon mit Ruby usw. beschäftigt habe, stellt sich bei mir nun die Frage, wie ich es schaffe, ein Intro, basierend auf Maps, vor dem eigentlichen Titelscreen zu zeigen.
Ich habe auch schon diverse Foren und Themen durchsucht, aber nichts gefunden, dass mir weiterhelfen kann.
Hat irgendjemand ein Script oder wenigstens eine Idee wie ich so etwas umsetzen könnte.
Vielen Dank im Vorraus.
LG Henry
ich würd bei sowas empfehlen ruby-code einzubinden und berechnungen in threads ausführen lassen, das entlastet ungemein^^Zitat:
Zitat von Kelven
etwa so:
innerhalb des loops kann man natürlich auch mit einer while-schleife das ganze an bestimmte bedingungen knüpfen ... und irgendwann sollte man den thread auch mittelsCode:thread=Thread.new {
loop do
# lässt den thread für 1 sekunde pausieren, geht aber auch 0.1, 0.01, etc.
sleep(1)
und hier halt irgendwelche berechnungen ausführen ... übrigens, die klasse Math kann viele wunderbare dinge zaubern^^
end
}
thread.kill
auch wieder von seiner arbeit erlösen, sonst rennt der ewig weiter^^
@henry, für sowas müsstest du in Scene_Title das titelmenü überspringen bzw. davor ins spiel einsteigen ... dafür gibts auf dubalex schon einige scripts, musst bissl suchen oder selber machen wennst in ruby schon halbwegs fit bist^^
grundsätzlich zur verwendung von ruby:
kinder - trial and error, so lernt man am besten eine programmiersprache, machts einfach wie ihr euch denkts und probiert solange, bis es klappt xD
Oh? Ich dachte immer, Threads würden das ganze noch langsamer machen... Ruby benutzt - aus Portabilitätsgründen - Green Threads, das heißt sie werden nicht über den Betriebssystem Kernel geregelt sondern sind dierekt im Programm implementiert -> Ruby Threads können nichts mit Super/Hyper Threading oder gar Dual Core Systemen anfangen. Und afaik waren das die einzigen Situationen in denen man durch Threads noch was gut machen kann...Zitat:
ich würd bei sowas empfehlen ruby-code einzubinden und berechnungen in threads ausführen lassen, das entlastet ungemein^^
Wo genau hast du mit Ruby's Threads also Performance gewonnen? Ich hab noch nicht viel mit gemacht oder dergleichen, kann also auch nicht wirklich was dazu sagen... nur rein von der Logik her würde es mich wundern. Oô
Ansonsten aber ja, Threads an sich sind schwer im kommen, bei kommerziellen Spielen (was die Sache aber höchstens noch komplizierter macht als es eh schon ist *g*)
du hast teilweiße recht, ruby verwendet (leider) ruby-threads die wegen portabilitätsgründen nur innerhalb des ruby-interpreters laufen ... aber verlangsamen tun sie auf keinen fall, denn das würde sie völlig nutzlos machen.
durch die wegnahme einer berechnung durch einen thread wird das hauptprogramm entlastet, würd aber einfach mal empfehlen das ganze auszuprobieren, was schneller ist ... arbeite zwar beruflich schon seit etwa 3 jahren mit threads und co, aber ruby programmierung mach ich erst seit letzten freitag (endlich mit meinem cbs angefangen xD)
da verwende ich threads hauptsächlich für gleichzeitige berechnungen und das ist auf jedenfall deutlich performanter als wenn ich alles in der hauptroutine laufen lass^^
threads sind nicht im kommen, die sind schon lange da xD könnte mir ein arbeiten ohne die kleinen gar nicht mehr vorstellen^^ und so schwer sind die wirklich nicht handzuhaben ... thread=Thread.new{blablabla} und fertig ... (natürlich muss man halt auch bissl drauf achten, dass man sich damit nicht selbst ins nirvana schießt xD
Oh, das ist gut zu wissen... hm, ja ich werd wirklich mal ein paar Test dazu machen, wenn es so einen Unterschied macht gäbe es da doch einen ziemlich breiten Anwendungsbereich ^^"
Das ging jetzt speziell zur Spieleindustrie; wenn Leute schon Algorhytmen zur Terrainberechnung mit Multithreading ausstatten wird es so langsam etwas viel, mMn.Zitat:
threads sind nicht im kommen, die sind schon lange da xD
Und nya, vielleicht liegt es auch einfach nur an mangelnder Erfahrung, aber gerade in Java gab es einige Stellen an denen mich das gesamte Thread Zeug wirklich verwirrt hat - in 50% der Java Standardklassen wird man ja praktisch gezwungen mit Threads zu arbeiten... und dann diese lustigen Fehler, wenn man mal ein entsprechendes Schlüsselwort vergessen hat, in einer Methode die ein mal in x Stunden aufgerufen wird, und nur unter Umständen überhaupt von zwei Threads zur gleichen Zeit...
najo, wenn man was vergisst ist man selber schuld xD und bitte in welchen java standard-klassen wird man zur nutzung von threads genötigt oO;; vielleicht benutz ich auch einfach nur die anderen 50 %, aber ist mir bis jetzt noch nirgends untergekommen xD
solang man alles auch brav austestet, was man macht, hat man eigentlich keinerlei probleme^^
Ich weiß nicht, ob mir da eine Auslagerung in einen Thread weitergeholfen hätte, denn die Berechnung soll nicht parallel stattfinden, sondern das System schon so lange warten bis sie fertig ist. Vermutlich hätte ich das alles in reinen Rubycode machen sollen, nun ist es aber sowieso egal, da ich das SKS vom XP benutze.Zitat:
ich würd bei sowas empfehlen ruby-code einzubinden und berechnungen in threads ausführen lassen, das entlastet ungemein
Das ist btw. ein interessanter Aspekt was das "Man braucht kein Ruby"-Argument angeht. ;) Ein CBS bzw. CMS alleine mit dem Eventcode scripten geht beim XP extrem auf die Peformance.
obs wirklich was bringt hängt natürlich auch davon ab, wofürs eigentlich eingesetzt werden sollte, aber um auf das ergebnis zu warten muss man eh nur ne schleife einbauen, die auf ne aktion ausm thread wartet ...
man braucht auch kein ruby fürn xp^^ schließlich braucht ein spiel auch kein cbs oder cms xD wer mehr haben will als standard muss halt auch mehr leisten (wobei das mit ruby viel leichter geht als mit scripten ... da muss man für die meisten sachen eh nur das vorhandene bissl editieren)
Aber wenn das System sowieso wartet, kann ich mir nicht vorstellen, dass ein Thread die Geschwindigkeit merklich erhöht.Zitat:
obs wirklich was bringt hängt natürlich auch davon ab, wofürs eigentlich eingesetzt werden sollte, aber um auf das ergebnis zu warten muss man eh nur ne schleife einbauen, die auf ne aktion ausm thread wartet ...
Auf dem 2K kriegt man so was aber auch hin, ohne so eine Sprache wie Ruby beherrschen zu müssen. ^^ Also sollte man auch annehmen, dass es auf dem XP genauso geht.Zitat:
schließlich braucht ein spiel auch kein cbs oder cms xD wer mehr haben will als standard muss halt auch mehr leisten
@geschwindigkeit, müsste man halt austesten xD aber ist durchaus denkbar, dass es bessere performance gibt, weils abseits der hauptroutine verarbeitet wird ... was wärs denn überhaupt für eine berechnung gewesen?
bemi xp kannst auch ohne ruby arbeiten, aber dann frisst das ding halt mehr saft^^
Für 6 KS-Teilnehmer von 100 bis 1 runterzählen. XD Später hab ich das dann sogar auf 50 reduziert, hat trotzdem immer noch für ca. 1-2 Sekunden das Spiel gefreezt. Im Event gab es eigentlich nicht viel mehr als ein paar Abfragen, ansonsten wurde der Counter von jedem KS-Teilnehmer reduziert. Das Problem liegt aber wohl an der Struktur von Autostart-Prozessen. Vermutlich gibt es da wie beim 2K ein internes Wait, wodurch alles ziemlich verlangsamt wird.
grad für sowas wären threads ideal ... da kannst sogar in zehntel, hunderstel, tausendstel sekundentakt zählen lassen ... und es bringt absolut performance, sowas im thread zu lösen ...
zb. bei meinem pcbs ... wenn ich da die zeitwerte der ganzen kampfteilnehmer in der hauptschleife berechne ruckelt das auch ordentlich, im eigenen thread ist das ganze kein problem, inklusive aktualisierung der anzeigen alle 0,1 sekunden und weniger ...
Mich würde ja interessieren inwiefern man die "Lahmheit" des XP noch aufbessern kann. Wenn man den gesamten Rubycode im Scripteditor mal wirklich optimieren würde, könnte man bestimt so einiges an Performance gewinnen - finde das vorgegebene nicht wirklich optimal. Bisher kenne ich nur das Anti Event Lag Script, welches sich damit befasst, gibt es da eigentlich noch Alternativen?
da kann man sicher noch einiges rauskitzeln, muss halt nur mal wer machen xD
das anti-event-lag-script ist aber imho nicht sonderlich gut, das deaktiviert lediglich die nicht sichtbaren events, und das ist nicht unbedingt sinnvoll ...
Das konsequenteste wäre es IMO die ganze Event-Geschichte zu überarbeiten. Also zwischen sichtbaren sich bewegenden Objekten (NPC etc..) und reinen Events zu unterscheiden.
Das Problem ist, daß die ganze Event-Geschichte darauf ausgelegt ist möglichst einfach zu bedienen zu sein und nicht darauf besonders performant zu sein.
Ich suche die Bedingung 'Musik einmal durchgespielt'.
Wo finde ich die?
Der Thread hier ist bekanntlich schon etwas älter und geht inhaltlich von Grundlegenden Unterschieden zwischen RM2k und RMXP bis zu speziellen Ruby Fragen. Und da konnte ich bisher rauslesen, dass es für performance-abhängige Spiele quasi notwendig ist, sich mit (Ruby-)"Threads" auszukennen. Inwiefern kriegt man bei den grundlegenden Ruby-Tutorials das Wissen darüber vermittelt? Oder andersherum gefragt: Wie lange muss ich mich mit Ruby auseinander setzten, bis ich all das umsetzen kann, was mit dem RM2k ohne Ruby und Performance-Verluste machbar ist (siehe kelvens KS)?
Vielleicht kann auch jemand mal kurz beschreiben, was ein Thread überhaupt ist. Im übrigen kann ich bisher kein Bisschen Ruby, außer das, was hier beschrieben wurde... :( ...:rolleyes: ... :D
Wo isn das hin? *schnief*Zitat:
1.6
B: Ja, aber für den RmXP gibts soooo wenig Ressourcen ! Da hat der Rm2k viel mehr !
A: Das stimmt so nicht. Mithilfe -->dieses<-- wunderbaren Tools kann man Rm2k Grafiken auf RmXP größe recken. Somit ergibt sich folgende Gleichung: ResRmXP = Res.Rm2k * Tool
(oder: Res.RmXP == Res.Rm2k)
Also su musst Ruby nicht unbedingt können. Ich kann selbst auch keine Scripte schreibe.
Ich kann sie in besten Falle verstehen und einfachste Dinge austauschen.
Die Performence des Xp's kannst du kaum verbessern. Es gibt ein Ruby-Script was Lags bei zu vielen Events verhindert, das wars dann aber schon.
Im Pronzip kannst du ein Ks genauso im Xp bauen wie im 2k.Zitat:
Wie lange muss ich mich mit Ruby auseinander setzten, bis ich all das umsetzen kann, was mit dem RM2k ohne Ruby und Performance-Verluste machbar ist (siehe kelvens KS)?
[
Ich selbst habe mein AKS mit Events gemacht und es funktioniert.
Wenn man es gescheit macht braucht ein Event-Script auch nicht sehr viel mehr Systemressourcen als ein Ruby-script (glaube ich).
Allerdings kannst du es mit Ruby schneller erstellen.
Erlichgesagt weis ich es nicht und ich brauchte es bisher auch nicht, aber hier ist die Definition von Thread in WikipediaZitat:
Vielleicht kann auch jemand mal kurz beschreiben, was ein Thread überhaupt ist. Im übrigen kann ich bisher kein Bisschen Ruby, außer das, was hier beschrieben wurde...
Der Wikipedia-Artikel ist vielleicht etwas hoch. Einfach gesprochen erlaubt ein Thread es, einen bestimmten Code gleichzeitig neben dem Hauptprogramm auszuführen. Der neue Thread läuft dann, quasi wie ein zweites Programm im Programm, nebenher.
Normalerweise muss man damit vorsichtig sein, da man nie weiß an welcher Stelle der Abarbeitung der andere Thread ist und es zu Problemen kommen kann wenn zwei Threads auf die gleiche Variable zugreifen.
In Ruby kann man aber einen Thread fragen "bist du fertig?" und wenn der dann ja zurück gibt entsprechend damit arbeiten, ansonsten läßt man ihn weiterlaufen. Die Auslagerung von Berechnungen in andere Threads entlastet den Hauptthread (also das Programm) was im Falle des XP sich dann wohl in weniger ruckeln äußert.
Ich hoffe mal, hier kann man auch Fragen reinstellen.
Ich suche nämlich...
...den Befehl "Set terrain ID"
...die Option "Wait until key hit"
Ich hoffe, mir kann jemand weiterhelfen.
Für "Set Terrain ID" gibt es bei dem XP unter "Control Variables" bei "Character" die Option "Terrain Tag". Wenn du das Terrain unabhängig von einem Event ermitteln willst, kannst du das auch per "Call Script" machen. x und y sind die Koordinaten auf der Map. In meinem Beispiel wird das Ergebnis vom Scriptaufruf der ersten Variable zugewiesen.
Wenn du mit "Wait until key hit" die Option bei "Enter Password" meinst, dann ist das bei dem XP das Eventkommando "Button Input Processing". Die Abfrage wartet automatisch solange bis eine Taste gedrückt wurde.Code:$game_variables[1] = $game_map.terrain_tag(x,y)
Danke für die Antwort.
Ich habe gerade gemerkt das es bei den Common Events alle PPs/Autoruns nur mit einem Switch aktiviert werden können. War ja beim 2k/3 nicht so. Ist zwar nicht so schlimm und schützt einen auch davor unnötige PPs laufen zu lassen, aber sicher kann man per Ruby eine Lösung finden. Vorschläge?
Ich bin zwar eher Rubynoob, aber trotzdem mal ein Vorschlag. ;) In dieser Methode von Game_CommonEvent werden ja anscheinend die PPs abgehandelt.
Hier könnte man evtl. eine weitere Kontrollstruktur mit der Abfrage der ID des Common Events (@common_event_id) einbauen und dort die Bedingung für den Switch weglassen. Berichtigt mich wenn ich mich irre.Code:def refresh
# Create an interpreter for parallel process if necessary
if self.trigger == 2 and $game_switches[self.switch_id] == true
if @interpreter == nil
@interpreter = Interpreter.new
end
else
@interpreter = nil
end
end
Weiß niemand wo´s das Programm gibt? Wird auch nix erwähnt wie das Programm heißt >.<Zitat:
1.6
B: Ja, aber für den RmXP gibts soooo wenig Ressourcen ! Da hat der Rm2k viel mehr !
A: Das stimmt so nicht. Mithilfe -->dieses<-- wunderbaren Tools kann man Rm2k Grafiken auf RmXP größe recken. Somit ergibt sich folgende Gleichung: ResRmXP = Res.Rm2k * Tool
(oder: Res.RmXP == Res.Rm2k)
@Kelven
Hmm, ja das wäre evtl. möglich.
@Skorp
Hier gibt's einige Konverter:
http://www.rpga.info/Die_Download-Pa...3_sectionid/24
Ansonsten bleibt einem die Möglichkeit die Grafiken selbst zu ändern (mit einem Grafik Prog. natürlich).
Tja ich hab auch mal ein paar Fragen zum XP.
1. Funktionieren einige "Textbox-Codes" nicht. Also Farbe ändern etc. Ich weis die sind anders als bei den 2000/2003 Maker, und ich hab die neuen auch da, aber zum Bsp. die Textgeschwindigkeit, da zeigts den Code immer mit an. :\
2. Dann noch bei Move Events. Gibt es noch so etwas wie "auf Bewegung warten"?
Joah, das wärs erstmal.
Benutze das "Advanced Message Skript":
http://multimediaxis.net/showthread.php?t=64019
Es gibt "Wait For Move´s Completion". Auf der zweiten Seite das zehnte.
Alles klar. ...Nur wie hau ich das in mein Spiel? Sorry, aber beim XP bin ich noch totaler Anfänger :rolleyes:
Du klickst auf den Skript Editor,(Zwei Symbole rechts neben der Database), scrollst nach unten, machst einen Rechtsklick auf "Main" und wählst "Insert". In das leere Feld schreibst du bspw. "Advanced Message Script" und rechts davon kopierst du das Script rein.
So habe ich´s jedenfalls gemacht...
Ok, danke für Hilfe :)
Das "Movie-Script" klappt irgendwie nicht bei mir...Hab das von Soundspawn genommen. Hab das Script eingefügt und nen Parallel Process mit dem gemacht: "$scene = Scene_Movie.new("Intro")" (auch schon sowas versucht: $scene = Scene_Movie.new("Intro",80) ) Und ja mein video heisst wirklich "intro" und befindet sich in meinem Game- Ordner, also bei den Graphic und Audio Ordner...
Irgendwie gehts bei mir nicht....=/
Helft mir bitte!
Am besten wäre, wenn noch wer eine Demo hätte und si emir schicken bzw online stellen könnte =/
Wenn es "intro" heißt musst du auch "intro" schreiben und nicht "Intro", ruby ist case-sensitiv. Abgesehen davon, sucht das Skript eventuell in nem Unterordner? Schau am besten mal in die Kommentare.
Ok...und kann mir einer sagen, wie ich es vielelicht hinbringe, dass der Maker nun die Videos im Vollbild korrekt abspielt?
Oder sollte ich mich eher ans Programmierer- Forum wenden? Weiss halt nicht, ob die mich nicht hinausjagen ^.^Code:class Scene_Movie
def initialize(movie)
@readini = Win32API.new 'kernel32', 'GetPrivateProfileStringA', %w(p p p p l p), 'l'
@movie_name = Dir.getwd()+"\\Movies\\"+movie+".wmv"
main
end
def main
game_name = "\0" * 256
@readini.call('Game','Title','',game_name,255,".\\Game.ini")
game_name.delete!("\0")
@wnd = Win32API.new('user32','FindWindowEx','%w(l,l,p,p)','L')
@temp = @wnd.call(0,0,nil,game_name).to_s
movie = Win32API.new('winmm','mciSendString','%w(p,p,l,l)','V')
movie.call("open \""+@movie_name+"\" alias FILE style 1073741824 parent " + @temp.to_s,0,0,0)
@message = Win32API.new('user32','SendMessage','%w(l,l,l,l)','V')
@detector = Win32API.new('user32','GetSystemMetrics','%w(l)','L')
@width = @detector.call(0)
if @width == 640
fullscreen
Graphics.update
sleep(1)
Graphics.update
sleep(1)
Graphics.update
sleep(1)
end
status = " " * 255
movie.call("play FILE",0,0,0)
loop do
sleep(0.1)
@message.call(@temp.to_i,11,0,0)
Graphics.update
@message.call(@temp.to_i,11,1,0)
Input.update
movie.call("status FILE mode",status,255,0)
true_status = status.unpack("aaaa")
if true_status.to_s != "play"
break
end
if Input.trigger?(Input::B)
Input.update
break
end
end
movie.call("close FILE",0,0,0)
bail
end
def bail
if @width == 640
fullscreen
end
end
end
def fullscreen()
$full.call(18,0,0,0)
$full.call(13,0,0,0)
$full.call(18,0,2,0)
$full.call(13,0,2,0)
end
$full = Win32API.new('user32','keybd_event','%w(l,l,l,l)','')
Ich habe mal wieder eine Frage:
Wo finde ich denn etwas wie das "Durchfallen AN/AUS" bei Bewegungsereignissen?
Die deutschen Übersetzungen vom Maker sind echt toll. =3 Es heißt beim XP Through ON bzw. Through OFF.Zitat:
Wo finde ich denn etwas wie das "Durchfallen AN/AUS" bei Bewegungsereignissen?
...wo findest du denn das "Through ON/OFF" ? Beim Moveevent ist es nicht mit dabei....
Dann hast du anscheinend nicht die legale Version vom XP. ;) 3. Zeile, 7. und 8. Zeile.
Oh, ok, da steht bei mir "Phasing On/Off" hat aber den gleichen Effekt, danke.
Ich hab das Problem, dass der manche Fonts einfach nicht anzeigt, wie z.B. meinen heißgeliebten "RM20000".
Comic Sans MS funktioniert hingegen.
Ich denk mal, das wird net am Code liegen, aber ich post den trotzdem mal mit.Code:#==============================================================================
# ** Main
#------------------------------------------------------------------------------
# After defining each class, actual processing begins here.
#==============================================================================
begin
# Font einstellen
Font.default_name = "RM20000"
Font.default_size = 24
# Prepare for transition
Graphics.freeze
# Make scene object (title screen)
$scene = Scene_Title.new
# Call main method as long as $scene is effective
while $scene != nil
$scene.main
end
# Fade out
Graphics.transition(20)
rescue Errno::ENOENT
# Supplement Errno::ENOENT exception
# If unable to open file, display message and end
filename = $!.message.sub("No such file or directory - ", "")
print("Unable to find file #{filename}.")
end
EDIT: Okay, ich denk das mit der RM2k Schriftart wird wohl net funzen, hab da schon ne alternative. Jetzt is die Frage, kann ich bei Fonts irgendwie das Anti Aliasing deaktivieren? Hab zwar jetzt nen schön pixeligen Font, aber der schaut so verwaschen aus *g
Der "Move with Map"-Picture Befehl.
Gibt's den noch ?
Wo finde ich ihn ?
[Mit Suchfunktion habe ich nichts gefunden]
Erstell doch zwei Variablen für die Heldenposition.
Dann lässt du das Picture zentral an der Heldenposition anzeigen.
Den Befehl gibt es standardmässig nicht mehr, also musst du das über ein Rubyscript lösen.
So , ich hätte auch ml ne Frage.
Gibt es ne Möglichkeit diesen "Which file load"-Text (oder so ähnlich) im Save-/Load-Menü zu umrahmen? Denn so einfach nur ein weißer Schriftzug sieht da so... doof aus. Und ich hab auch niicht wirklich Lust deswegen mein halbes Design zu verwerfen.
Bislang habe ich Umrandungen immer so gemacht:
(Beispiel aus dem Menü)Code:self.contents.font.color = outline_color
self.contents.draw_text(5, 10, 220, 32, "Aufenthaltsort:")
self.contents.draw_text(5, 12, 220, 32, "Aufenthaltsort:")
self.contents.draw_text(3, 10, 220, 32, "Aufenthaltsort:")
self.contents.draw_text(3, 12, 220, 32, "Aufenthaltsort:")
self.contents.font.color = Color.new(254, 230, 159, 255)
self.contents.draw_text(4, 11, 220, 32, "Aufenthaltsort:")
Die Methode klappt aber scheinbar nicht beim Laden/Speichern. Zumindest komme ich damit nichtmal mehr bis zum Titelbild, bis mir ne Fehlermeldung vorgesetzt wird. Aber viellecht habe ich auch einfach nen falschen Befehl benutzt...
Hätte jemand nen Lösungsvorschlag?
Wäre nützlich zu erfahren, wie die Fehlermeldung lautet. Dann kann man such auch ungefähr vorstellen, was du ggf. falsch gemacht haben könntest.
Der Text wird im HelpWindow angezeigt. Das ist insofern problematisch, dass wenn du dieses Window veränderst, auch das Window im Skillmenü und dergleichen eine verzierte Schrift aufweisen wird. Um das zu verhindern müsste man also das eine neue Klasse schreiben.
Vorerst aber würde ich für deine umrahmte Schrift eine extra Methode schreiben:
Nun müsstest du mit dem BefehlCode:class Bitmap
def schreibe_umrandung(x,y,weite,hoehe,text,ausrichtung=0, rahmen=outline)
standard = self.font.color.dup
self.font.color = rahmen
self.draw_text(x+1, y-1, weite, hoehe, text, ausrichtung)
self.draw_text(x+1, y+1, weite, hoehe, text, ausrichtung)
self.draw_text(x-1, y-1, weite, hoehe, text, ausrichtung)
self.draw_text(x-1, y+1, weite, hoehe, text, ausrichtung)
self.font.color = standard
self.draw_text(x, y, weite, hoehe, text, ausrichtung)
end
def outline
Color.new(255, 255, 255, 255) #Hier die Standardfarbe für Rahmen
end
private(:outline)
end
automatisch einen umrandeten Text bekommen, ohne das du dafür etliche Codezeilen schreiben musst.Code:self.contents.schreibe_umrandung(4, 11, 220, 32, "Aufenthaltsort:")
Als nächstes musst du die Klasse Window_Help so verändern, dass sie mit umrahmter Schrift arbeitet.
Zuletzt muss noch in die Scene_File das Window_Help in Window_Help_Border umgeschrieben werden:Code:class Window_Help_Border < Window_Help
def set_text(text, align = 0)
# If at least one part of text and alignment differ from last time
if text != @text or align != @align
# Redraw text
self.contents.clear
self.contents.font.color = normal_color
self.contents.schreibe_umrandung(4, 0, self.width - 40, 32, text, align)
@text = text
@align = align
@actor = nil
end
self.visible = true
end
end
Code:class Scene_File
def main
# Make help window
@help_window = Window_Help_Border.new
@help_window.set_text(@help_text)
# Make save file window
@savefile_windows = []
for i in 0..3
@savefile_windows.push(Window_SaveFile.new(i, make_filename(i)))
end
# Select last file to be operated
@file_index = $game_temp.last_file_index
@savefile_windows[@file_index].selected = true
# Execute transition
Graphics.transition
# Main loop
loop do
# Update game screen
Graphics.update
# Update input information
Input.update
# Frame update
update
# Abort loop if screen is changed
if $scene != self
break
end
end
# Prepare for transition
Graphics.freeze
# Dispose of windows
@help_window.dispose
for i in @savefile_windows
i.dispose
end
end
end
@-KD-:
Nya, das einzige was ich lesen konnte war "Syntax Error" und die Zeilenangabe, da ich aber was RGSS angeht ein blutiger Anfänger bin wusste ich nur wie ich den Kram wieder Rückgängig machen kann... xD
Danke jedenfalls, klappt einwandfrei. Ich musste nur einige Zeilen anpassen da ich irgendwie ne andere Version zu haben scheine, die andere Befehle benutzt, statt window_help_border nur window_help beispielsweise. oô
Nya, es klappt jedenfalls wunderbar. Vielen Dank! ^^
Window_Help_Border ist eine neue Klasse, die speziell für HelpWindows mit umrandeter Schrift gedacht ist *g* Sonst ist deine Schrift im Skill- und Kampfmenü beispielsweise auch umrandet.
Avi's kann man aber auch im ganz normalen BGM Abspielen lassen.
Eine Frage:
Kennt jemand ein Skript oder Code der eine Bedingung benutzen lässt wenn Ereiniss Ereigniss berührt.
Klar geht das mit X und Y Koordinaten aber es dauert irgendwie ewig mehrere Leuten das hinzuzufügen.
Weiß jemand ob es einen Deutsch Patch für den RMXP gibt und wenn ja wo??
Und ist der auch legal??
Gibt zwar nen Deutschpatch, der ist aber illegal, da er die Trial zu einer Full crackt.
rpga.info hat ne offizielle Erlaubnis, an nem legalen Deutsch Patch zu arbeiten, aber davon hört man nix mehr ...
greetz
Momentan arbeitet Derula an der Übersetzung, und die kommt meines Wissens auch gut vorran.
Wenn jemand mal einen legalen deutschpatch findet kann mir dann jemand link geben oder ihn mir schicken ?
Na ja vielleicht wird ja irgendwann ein Deutschpatch kommen*träum*.Aber bis dahin wird die Englische version wohl reichen
Hi also ich suche ein paar Charasets...von Jungen und Männern für ne Hauptfigur von meinem Spiel kann sein dass hier ein paar Links sind aber ich finde sie leider nich...also wäre es nett wenn ihr mir weiterhelfen könntet!!http://www.multimediaxis.de/images/s.../old/sm_12.gif
geh am besten auf rpgxp.de da gibt es gute
Wie funktioniert das nun denn mit den Faces in den Textboxen? Hab erst gestern mit dem RMXP angefangen und find bis jetzt noch keine Möglichkeit. Und der Link, den ich in der FAQ sehe, der hilft nicht weiter.
giebt es beim RMXP wieder die funktion
Panorama-hintergründe zu Scrollen*????
Wenn ja,dann wo??????
(*also das se sich ununterbrochen in eine oder sogar 2 richtungen bewegen
beim 2k war des glaub ich unter den map einstellungen[blos beim XP finde ichs nicht].)
bei mir funtzt der Link mit dem RPG2k3 zu RMXP tool nicht!
kann mir jemand einen ordentlichen link geben?:rolleyes: