Erstmal Danke Dir für die ausfürliche Antwort!
Ich habe mir gedacht das dies der einzige Weg sein wird das Ganze einzustellen, schade eigentlich. Ich denke ich werde einfach die von mir erdachten Zauber etwas Balancen um sie dem Standard System anzupassen, das wäre wohl das einfachste und auch zu verschmerzen.
Nun habe ich aber noch ein paar Fragen zum Thema Skills:
1. Ist es möglich, dass der Skill einen zufälligen Gegner angreift? Der Skill soll schon noch auf einen "Single Enemy" gehen, jedoch darf diesen der Spieler nicht auswählen. Oder von mir aus kann es auch ganz zufällig sein, also auch das nicht ausgeschlossen wird das Partymitglieder angegriffen werden, wie wenn er verwirrt wäre, nur halt für diesen einen Angriff.
2. Ist es möglich eine Skill zu erstellen, der den normalen Angriff ein Element hinzufügt? z. B. soll nach dem Zaubern des Skills für einige Zeit (vl bis zum Ende des Kampfes?) Eisschaden verursachen.
3. Ist es möglich einen Skill zu erstellen der z. B. Ohnmacht heilt aber dafür Vergiftet? Ich kann nur entweder "Inflict" oder "Heal" auswählen, jedoch nicht Beides..
Hab leider nicht damit gerechnet dass der 2k3 soviele Restriktionen hat was Skills angeht und hab etwas übertrieben bei der Planung, aber vielleicht lässt sich ja wenigstens etwas davon umsetzen :D
19.03.2019, 18:34
Liferipper
Umsetzbar wären alle 3 Aktionen, allerdings ziemlich umständlich über Battle Events, was zum einen einigen Aufwand an Scripting und zum anderen bedeuten würde, dass die entsprechenden Events für jeden einzelnen Kampf (oder zumindest für alle Kämpfe, in denen sie auftreten können) übernommen werden müssten.
19.03.2019, 19:42
Ich bin viele
Sowas in der Art habe ich bereits versucht (Schritt 3 hab ich umgesetzt, jeweils ausserhalb und innerhalb von kämpfen). Leider hab ich gerade keine Idee wie man Schritt 2 so umsetzen könnte, da ich nicht genau weiß wie man dem normalen Angriff ein Element zuweisen kann :P
19.03.2019, 21:11
Liferipper
Zitat:
Leider hab ich gerade keine Idee wie man Schritt 2 so umsetzen könnte, da ich nicht genau weiß wie man dem normalen Angriff ein Element zuweisen kann :P
Geht soweit ich weiß auch nicht direkt. Allerdings lässt sich der Effekt (mit einigem Aufwand!) simulieren:
Zunächst einmal legst du jede Waffe mehrmals an: Einmal in der normalen Version und (je) einmal mit dem(/jedem) zuweisbaren Element(en). Also z.B. Kurzschwert, Kurzschwert mit Eisattribut, Kurzschwert mit Donnerattribut usw.
Vor jedem Kampf startetst du ein Common Event, das überprüft, welche (attributlose) Waffe jeder Held gerade ausgerüstet hat und speicherst das in Variablen. Z.B. if Alex Kurzschwert equipped then set Variable 1234 1, else if Alex Langschwert equipped then set Variable 1234 2, else... (Die Ausrüstung lässt sich im Kampf leider nicht mit Conditional Branch abfragen).
Dann machst du aus dem Elementzuweisungsskill einen Switch-Skill.
Im Kampf fügst du dann ein Event hinzu, dass startet, sobald der Switch aktiviert ist. Dieses Event ersetzt die aktuell ausgerüstete Waffe aller Helden (ich habe keine Idee, wie man den Effekt auf einen einzelnen Helden anwenden könnte Edit: Ok, ich habe doch eine Idee, aber das würde das Ganze noch umständlicher machen...) mit der elementaren Version (z.B. if Variable 1234 is 1, then Alex Kurzschwert mit Eisattribut equip, else if Variable 1234 is 2 then Alex Langschwert mit Eisattribut equip, else...).
Nach dem Kampf startest du ein weiteres Common Event, das ausgerüstete elementaren Waffen wieder durch die gewöhnlichen Varianten ersetzt und die elementaren Varianten anschließend aus dem Inventar wirft (if Alex Kurzschwert mit Eisattribut equipped, then Change Equipment Alex Kurzschwert equip, then Change Items Kurzschwert mit Eisattribut remove, else if Alex Kurzschwert mit Donneratribut equipped...).
Wie gesagt, machbar aber ziemlich aufwendig.
19.03.2019, 22:07
Ich bin viele
Super, danke!
Es funktioniert tadellos! Es handelt sich zum Glück nur um ein Element und der Zauber ist sowieso nur auf den Wirker anwendbar, also ist es nicht soo viel Arbeit ;D
26.03.2019, 14:10
Agura
Hey Leutz,
ich arbeite mit dem RPG Maker VX Ace und habe ein Problem (offensichtlich):
Da ich die VX-Grafiken verabscheue, und damit auch diese Minichars, benutze ich XP-Grafiken.
Leider gibt es da ein Problem mit den Tiles die in der Database mit einem Stern markiert sind (siehe Bild im Spoiler).
Sollte es dafür ein Script geben, wäre ich sehr dankbar wenn mir das jemand verlinken könnte.
Denn leider weiß ich nicht, wie ich dies betiteln soll damit google mir kompetente Links gibt und allgemeine Scriptsuche mit Selbstfilterung hat auch nichts hilfreiches ergeben.
26.03.2019, 18:28
Ich bin viele
Hey Leute :)
Ich hab mal wieder eine Frage (vielleicht sollte ich mal meinen eigenen Fragenthread eröffnen :P):
Es handelt sich um den RM2k3.
Ich möchte dem Spieler eine gewisse Freiheit bieten und so hab ich mich entschlossen den Spieler entscheiden zu lassen ob er lieber einen Schwertkämpfer oder einen Magier spielen will. Dafür hab ich 2 Waffenkategorien für den Helden angelegt, nämlich Schwerter und Stäbe. Nun will ich aber, da es sonst einfach zu unbalanced wäre wenn nur die Intelligenz bei Stäben angehoben wird, dass die maximale Mana ebenfalls angehoben wird (Stab 1 +5 max Mana, Stab 2 +10 max Mana usw.). Ich weiß zwar wie ich bewerkstellige dass die max Mana angehoben werden, jedoch nicht wie es geht die Mana wieder in den Urspungszustand zurückzuversetzen wenn der Stab deeqipped oder ein Schwert equipped wird.
Ich hoffe diesmal findet sich eine etwas leichtere Lösung, sonst verliere ich allmälich den Glauben an den 2k3 :D
26.03.2019, 18:54
Caledoriv
@ Agura:
Ohne mich jetzt mit dem ACE auszukennen, behaupte ich einfach mal, dass der Stern bedeutet, dass das "über" dem Helden angezeigt wird. D.h. wenn du jetzt auf die andere Seite des Zauns gehst, wird er korrekt über dem Helden angezeigt.
Ein möglicher Workaround wäre, die obere Reihe des Zauns komplett durch Events darzustellen. Diese haben je zwei Event Pages:
- Seite A wird über dem Helden angzeigt
- Seite B wird unter dem Helden angezeigt und hat einen Switch "Held südlich vomo Zaun" als Bedingung
Dann musst du nur noch sicherstellen, dass dieser Switch immer richtig gesetzt ist (d.h. sobald der Held sich in den Bereich nördlich bzw. südlich vom Zaun bewegt / teleportiert, wird der Switch entsprechend gesetzt).
@ Ich bin viele:
Ein eigenes Kampfsystem wirkt da Wunder ;). Da kannst du nämlich alle Werte selbst bestimmen und auch sowas wäre leicht machbar.
Was vielleicht irgendwie gehen könnte, wäre Folgendes: Du gehts vor jedem Kampf (bzw. nach jedem Menüaufruf) einmal das Equipment der Helden durch und hast für jeden Stab eine Variable, die den Manabonus für diesen Stab festlegt. Außerdem eine Variable für den Grundwert des Manas des Helden (ohne Gegenstände) und für den aktuellen Wert (d.h. mit Bonus). Das muss entsprechend in einem riesigen If-Grab wieder alles abgefragt und geupdated werden. Und ggf. bei Level-Ups, sofern du da die normalen EXP und Leveleinstellungen des Makers benutzt...
26.03.2019, 19:16
Linksawakening
@Ich bin viele: Ohne es getestet zu haben, bin ich der Überzeugung, dass der 2k3 bereits über das "Job" System verfügt, mit dem du in der Lage sein solltest diese Unterschiede
abzubilden - eventuell kennt sich ja jmd hier ausreichend damit aus um das genauer erläutern zu können.
Im deutschen müsste das Ganze dan unter "Klassen" o. ä. laufen - wenn du dort verschiedene Klassen definierst (mage, Warri, etc.) sollte es möglich sein, beim Waffenwechsel den
Wechsel der Klasse ebenfalls zu automatisieren ...
29.03.2019, 11:15
Agura
Zitat:
Zitat von Caledoriv
@ Agura:
Ohne mich jetzt mit dem ACE auszukennen, behaupte ich einfach mal, dass der Stern bedeutet, dass das "über" dem Helden angezeigt wird. D.h. wenn du jetzt auf die andere Seite des Zauns gehst, wird er korrekt über dem Helden angezeigt.
Ein möglicher Workaround wäre, die obere Reihe des Zauns komplett durch Events darzustellen. Diese haben je zwei Event Pages:
- Seite A wird über dem Helden angzeigt
- Seite B wird unter dem Helden angezeigt und hat einen Switch "Held südlich vomo Zaun" als Bedingung
Dann musst du nur noch sicherstellen, dass dieser Switch immer richtig gesetzt ist (d.h. sobald der Held sich in den Bereich nördlich bzw. südlich vom Zaun bewegt / teleportiert, wird der Switch entsprechend gesetzt).
Dem bin ich mir bewusst, Beidem. Ich weiß, was der Stern macht, wenn ich vor dem Zaun stehe, ist falsch, aber man (oder Tier) soll ja auch hinter dem Zaun stehen können.
Deine Idee mit dem Events ist mir auch gekommen, aber wie ich bereits sagte, will ich meine Maps nicht mit so vielen aktiven Events bombadieren. Ausßerdem ist das dann immer vom Helden abhängig. Das heißt, dass wenn der Held unter dem Zaun steht, alle anderen AUF dem Zaun sind, das gilt dann für Tiere oder evtl. folgenden Helden.
Desswegen ja ein Script, das mittels einem Terrain Tag bescheid weiß, wie er das für die entsprechenden einzelnen Events berechnen muss.
Trotzdem vielen Dank für deine Hilfe. ;)
29.03.2019, 14:23
Linkey
Hallo Agura,
Beim Maker haben die "*-Tiles" leider immer einen fixen Z-Wert, der so eingestellt ist, dass er über dem Charakter steht.
Ich wollte dir gerade ein Script schreiben, welches den Z-Wert anhand der Position/Größe anpasst, als ich merkte, dass es da etwas gibt (gut, dass ich immer selbst google, bevor ich loslege):
Quelle: https://save-point.org/thread-4971.html
Code:
#==============================================================================
#
# ▼ Moby's Script System - Correct Sprite Display V1.0
# -- Last Updated: 2013.01.26
#
#==============================================================================
$imported = {} if $imported.nil?
$imported["MSS-Correct_Sprite_Display"] = 1.0
#==============================================================================
# ▼ Updates
# =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
# (by brushfe) Tall events interact better with other tall events
#
#==============================================================================
# ▼ Introduction
# =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
# This script corrects how sprites will be displayed, to prevent errors
# happening when the sprite is higher than 32px and the tile above it is set
# to star passability.
#
#==============================================================================
# ▼ Instructions
# =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
# To install this script, open up your script editor and copy/paste this script
# to an open slot below ▼ Materials/素材 but above ▼ Main. Remember to save.
#
#
# If you have any questions, bugs you want to report or anything else,
# please contact me at mobychan@gmx.de or via my profile on
# http://forums.rpgmakerweb.com (mobychan).
#
#
# This script is Plug and Play.
# It automatically checks if the Sprite is bigger then 32px and adjust the
# tiles around that sprite accordingly.
# If you're using Anaryu's Particle Engine (ported by Yami)
# there won't be any issues.
#
#==============================================================================
# ▼ Compatibility
# =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
# This script is made strictly for RPG Maker VX Ace. It is highly unlikely that
# it will run with RPG Maker VX without adjusting.
#
#==============================================================================
#
#==============================================================================
# ▼ Known Issues
# =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
# Really wide character sprites still are sometimes drawn behind tiles they
# should be in front of.
#==============================================================================
#==============================================================================
# ** Spriteset_Map
#------------------------------------------------------------------------------
# This class brings together map screen sprites, tilemaps, etc. It's used
# within the Scene_Map class.
#==============================================================================
class Spriteset_Map
#--------------------------------------------------------------------------
# * Update Character Sprite
#--------------------------------------------------------------------------
alias msscsd_update_characters update_characters unless $@
def update_characters
msscsd_update_characters
@character_sprites.each do |curr_sprite|
if curr_sprite.character.class.name == "Game_Event" ||
curr_sprite.character.class.name == "Game_Player" ||
curr_sprite.character.class.name == "Game_Follower"
height = get_height(curr_sprite)
if height > 1
x = curr_sprite.character.x
curr_sprite.z = 100
id = $game_map.data[x, curr_sprite.character.y, 2]
flag_pos = $game_map.tileset.flags[id]
if (!(flag_pos & 0x10 != 0) || id == 0)
for i in 2..height
y = curr_sprite.character.y - (i - 1)
if !$game_map.data[x, y, 2].nil?
flag = $game_map.tileset.flags[$game_map.data[x, y, 2]]
if flag & 0x10 != 0 && # [☆]: No effect on passage
$game_map.data[x, y, 2] != 0
curr_sprite.z = 300
break
else
curr_sprite.z = 100
end
loc = [curr_sprite.character.x, curr_sprite.character.y - 1]
$game_map.events_xy(*loc).each do |event|
if curr_sprite.character.class.name == "Game_Player" ||
curr_sprite.character.class.name == "Game_Follower" ||
curr_sprite.character.class.name == "Game_Event"
curr_sprite.z = 300
break
end
end
end
end
end
end
end
end
end
#--------------------------------------------------------------------------
# * Gets the given Sprites height
#--------------------------------------------------------------------------
def get_height(curr_sprite)
height = 0
if curr_sprite.character.character_name.scan(/$/)
height = (curr_sprite.bitmap.height / 4) / 32
height += 1 if (curr_sprite.bitmap.height / 4) % 32 > 0
else
height = (curr_sprite.bitmap.height / 8) / 32
height += 1 if (curr_sprite.bitmap.height / 8) % 32 > 0
end
return height
end
#--------------------------------------------------------------------------
# * Add Particle
#--------------------------------------------------------------------------
def add_particle(target, name, blend, setting, offset, v = nil, a = nil)
particle = Particle.new(@viewport2, target, name, blend, setting, offset, v, a)
@particles.push(particle)
end
end
Sollte etwas nicht funktionieren, gib mir gerne Bescheid. Bei Zeiten kann ich mir das Script anschauen und anpassen, falls nötig.
30.03.2019, 10:15
Agura
Hallo Linkey,
Vielen Dank für das Raussuchen, ich hab beim besten Willen selbst nichts finden können. x.X
Das Script funktioniert FAST perfekt. Es tut was es tun soll, aber wenn ich an den Zaun vorbeilaufe, kommt an den Ecken zu Problemen:
Wenn das Event (z.B. der Held) von dem Tile seitlich wegläuft, wird das Tile wieder nach oben befördert.
Mit häufigen Versuchen hab ich kontrolliert, ob das bei den Followern auch der Fall ist, aber nein, es ist nur für das Event, das das Tile gerade verlässt.
30.03.2019, 14:02
Linkey
Moin Agura,
hab mal schnell zwei Dinge eingebaut:
1. Wenn der Charakter breiter als 32 Pixel ist, werden nun auch die benachbarten Felder geprüft
2. Wenn der Charakter über einer Grafik angezeigt wird (z.B. Zaun) und sich bewegt, bleibt er solange im Vordergrund, bis er das nächste Feld erreicht hat
Code:
#==============================================================================
#
# ▼ Moby's Script System - Correct Sprite Display V1.0
# -- Last Updated: 2013.01.26
#
# -- Update: LDT0319
# -- Date: 2019.03.30
# -- User: D.T. Linkey
# -- Change: If character is wider than 1 tile, check neighbour fields to
# the correct Z-Value
#
#==============================================================================
$imported = {} if $imported.nil?
$imported["MSS-Correct_Sprite_Display"] = 1.0
#==============================================================================
# ▼ Updates
# =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
# (by brushfe) Tall events interact better with other tall events
#
#==============================================================================
# ▼ Introduction
# =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
# This script corrects how sprites will be displayed, to prevent errors
# happening when the sprite is higher than 32px and the tile above it is set
# to star passability.
#
#==============================================================================
# ▼ Instructions
# =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
# To install this script, open up your script editor and copy/paste this script
# to an open slot below ▼ Materials/素材 but above ▼ Main. Remember to save.
#
#
# If you have any questions, bugs you want to report or anything else,
# please contact me at mobychan@gmx.de or via my profile on
# http://forums.rpgmakerweb.com (mobychan).
#
#
# This script is Plug and Play.
# It automatically checks if the Sprite is bigger then 32px and adjust the
# tiles around that sprite accordingly.
# If you're using Anaryu's Particle Engine (ported by Yami)
# there won't be any issues.
#
#==============================================================================
# ▼ Compatibility
# =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
# This script is made strictly for RPG Maker VX Ace. It is highly unlikely that
# it will run with RPG Maker VX without adjusting.
#
#==============================================================================
#
#==============================================================================
# ▼ Known Issues
# =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
# Really wide character sprites still are sometimes drawn behind tiles they
# should be in front of.
#==============================================================================
#==============================================================================
# ** Spriteset_Map
#------------------------------------------------------------------------------
# This class brings together map screen sprites, tilemaps, etc. It's used
# within the Scene_Map class.
#==============================================================================
class Spriteset_Map
#LDT0319 flag to check if character was in front of something before moving
@chinfr = false
#--------------------------------------------------------------------------
# * Update Character Sprite
#--------------------------------------------------------------------------
alias msscsd_update_characters update_characters unless $@
def update_characters
msscsd_update_characters
@character_sprites.each do |curr_sprite|
if curr_sprite.character.class.name == "Game_Event" ||
curr_sprite.character.class.name == "Game_Player" ||
curr_sprite.character.class.name == "Game_Follower"
height = get_height(curr_sprite)
#========LDT0319 Start
#get character width
width = get_width(curr_sprite)
#if character is moving and was already in front, keep z = 300
if(curr_sprite.character.class.name == "Game_Player")
if(curr_sprite.character.moving? && @chinfr)
curr_sprite.z = 300
return
end
end
#========LDT0319 End
if height > 1
x = curr_sprite.character.x
curr_sprite.z = 100
id = $game_map.data[x, curr_sprite.character.y, 2]
flag_pos = $game_map.tileset.flags[id]
if (!(flag_pos & 0x10 != 0) || id == 0)
for i in 2..height
y = curr_sprite.character.y - (i - 1)
if !$game_map.data[x, y, 2].nil?
flag = $game_map.tileset.flags[$game_map.data[x, y, 2]]
if flag & 0x10 != 0 && # [☆]: No effect on passage
$game_map.data[x, y, 2] != 0
curr_sprite.z = 300
break
else
#========LDT0319 Start
#check if width is greater than one tile
if(width > 1)
# for each additional tile, check the field
for ti in 2..width
# check the field on the left first...
tx = curr_sprite.character.x - (ti - 1)
if(!$game_map.data[tx, y, 2].nil?)
flag = $game_map.tileset.flags[$game_map.data[tx, y, 2]]
if flag & 0x10 != 0 && # [☆]: No effect on passage
$game_map.data[tx, y, 2] != 0
curr_sprite.z = 300
break
else
curr_sprite.z = 100
end
end
# ... check the field on the right
tx = curr_sprite.character.x + (ti - 1)
if(!$game_map.data[tx, y, 2].nil?)
flag = $game_map.tileset.flags[$game_map.data[tx, y, 2]]
if flag & 0x10 != 0 && # [☆]: No effect on passage
$game_map.data[tx, y, 2] != 0
curr_sprite.z = 300
break
else
curr_sprite.z = 100
end
end
end
else
curr_sprite.z = 100
end
#========LDT0319 End
end
loc = [curr_sprite.character.x, curr_sprite.character.y - 1]
$game_map.events_xy(*loc).each do |event|
if curr_sprite.character.class.name == "Game_Player" ||
curr_sprite.character.class.name == "Game_Follower" ||
curr_sprite.character.class.name == "Game_Event"
curr_sprite.z = 300
break
end
end
end
end
end
end
end
#========LDT0319 if character is in front, set chinfr to true
@chinfr = true if(curr_sprite.z == 300 && curr_sprite.character.class.name == "Game_Player")
@chinfr = false if(curr_sprite.z == 100 && curr_sprite.character.class.name == "Game_Player")
end
end
#--------------------------------------------------------------------------
# * Gets the given Sprites height
#--------------------------------------------------------------------------
def get_height(curr_sprite)
height = 0
if curr_sprite.character.character_name.scan(/$/)
height = (curr_sprite.bitmap.height / 4) / 32
height += 1 if (curr_sprite.bitmap.height / 4) % 32 > 0
else
height = (curr_sprite.bitmap.height / 8) / 32
height += 1 if (curr_sprite.bitmap.height / 8) % 32 > 0
end
return height
end
#========LDT Start
def get_width(curr_sprite)
width = 0
if curr_sprite.character.character_name.scan(/$/)
width = (curr_sprite.bitmap.width / 3) / 32
width += 1 if (curr_sprite.bitmap.width / 3) % 32 > 0
else
width = (curr_sprite.bitmap.width / 12) / 32
width += 1 if (curr_sprite.bitmap.width / 12) % 32 > 0
end
return width
end
#========LDT End
#--------------------------------------------------------------------------
# * Add Particle
#--------------------------------------------------------------------------
def add_particle(target, name, blend, setting, offset, v = nil, a = nil)
particle = Particle.new(@viewport2, target, name, blend, setting, offset, v, a)
@particles.push(particle)
end
end
Allerdings gibt es auch mit dieser Lösung ein Problem: Der Charakter steht entweder vor oder hinter den Grafiken. Wenn auf deinem Bild nun ein Turm über die Füße deines Charakters ragen würde, würden die Füße über dem Turm angezeigt werden.
Darauf musst du dann beim Mappen achten :D
30.03.2019, 15:45
Agura
Zitat:
Zitat von Linkey
Moin Agura,
hab mal schnell zwei Dinge eingebaut:
1. Wenn der Charakter breiter als 32 Pixel ist, werden nun auch die benachbarten Felder geprüft
2. Wenn der Charakter über einer Grafik angezeigt wird (z.B. Zaun) und sich bewegt, bleibt er solange im Vordergrund, bis er das nächste Feld erreicht hat
[..]
Allerdings gibt es auch mit dieser Lösung ein Problem: Der Charakter steht entweder vor oder hinter den Grafiken. Wenn auf deinem Bild nun ein Turm über die Füße deines Charakters ragen würde, würden die Füße über dem Turm angezeigt werden.
Darauf musst du dann beim Mappen achten :D
Zu 1 & 2: Super, dankeschön. Allerdings wurde das mit dem Follower wohl falsch verstanden: Wenn der Follower das Tile betritt ist alles super, wenn diese allerdings das Tile verlässt, besteht das alte Problem immer noch.
Zu deinem angesprochen Porblem: Ja... das gilt nicht nur für einen Turm, sondern auch für Bäume, leider... Kann man mit arbeiten, allerdings gibt es den Fehler in einer anderen Form nochmal, welcher ebenfalls versucht werden muss zu umgehen oder noch gefixt werden muss.
Es handelt sich dabei um ein Event, das ich versuchshalber am Zaun langlaufen ließ.
30.03.2019, 16:59
Linkey
Hallo Agura,
schmeiß das alte Script weg und nimm das hier, das funktioniert besser:
Code:
##-----------------------------------------------------------------------------
# Large Sprite ☆ Display Fix v1.3
# Created by Neon Black at request of seita
# v1.4 - 12.18.14 - Added position tuning
# v1.3 - 1.12.14 - Viewport/position issue fixes
# v1.1 - 8.18.13 - Fixed an odd lag issue
# v1.0 - 8.17.13 - Main script completed
# For both commercial and non-commercial use as long as credit is given to
# Neon Black and any additional authors. Licensed under Creative Commons
# CC BY 4.0 - http://creativecommons.org/licenses/by/4.0/
##-----------------------------------------------------------------------------
##------
## By default, this script only affects the player. To allow it to affect
## an event page as well, add a comment with the tag <large sprite> to the page
## of the event you would like to have affected by this.
class Sprite_Character < Sprite_Base
##------
## The ID of the terrain used to display the large character above ☆ tiles.
## If the player is below this tile (y position), the sprite will appear
## above all tiles and events from that y position up. If the player is on
## the same tile or above (y position) the event will appear BELOW ☆ tiles
## from that position up.
##------
UpperTerrain = 7
##------
## This value is the pixel tuning used to check the location. This is
## because characters tagged with a '!' in their name are drawn lower than
## normal characters and are considered to be lower than these. This causes
## the script to think they are on the tile below where they really are and
## draw them above tiles they should appear under.
##------
Tuning = -1
alias :cp_011214_update_bitmap :update_bitmap
def update_bitmap(*args)
if graphic_changed? && @set_upper_area_sprite
@force_no_gfx_change = true
else
@force_no_gfx_change = false
end
cp_011214_update_bitmap(*args)
end
## Alias the update method to add in the new graphic check.
alias :cp_073013_update_pos :update_position
def update_position(*args)
cp_073013_update_pos(*args)
check_encompassed_area if sprite_is_onscreen?
end
## Alias the dispose to dispose the upper sprite.
alias :cp_073013_dispose :dispose
def dispose(*args)
@upper_area_sprite.dispose if @upper_area_sprite
cp_073013_dispose(*args)
end
#~ ## Alias the graphic changed method to allow the sprite to revent to what it
#~ ## was during the last frame. This allows the check to work again.
#~ alias :cp_073013_graphic_changed? :graphic_changed?
#~ def graphic_changed?(*args)
#~ cp_073013_graphic_changed?(*args) || @set_upper_area_sprite
#~ end
## Check if the sprite is onscreen. Reduces redundant drawing.
def sprite_is_onscreen?
#LDT0319 enabled game_follower
return false if @character.is_a?(Game_Vehicle)
return false unless @character.is_a?(Game_Player) || @character.is_a?(Game_Follower) || @character.large_sprite
return false if @character.screen_z >= 200
top_left, bot_right = get_edge_corner_dis
return false if top_left[0] > Graphics.width
return false if top_left[1] > Graphics.height
return false if bot_right[0] < 0
return false if bot_right[1] < 0
return true
end
## Get the top left and bottom right positions.
def get_edge_corner_dis
top_left = [self.x - self.ox, self.y - self.oy]
bot_right = [top_left[0] + self.width, top_left[1] + self.height]
return [top_left, bot_right]
end
## Long method that checks each position and draws the upper sprite.
def check_encompassed_area
if @set_upper_area_sprite && !@force_no_gfx_change
old_src = self.src_rect.clone
self.bitmap = @old_bitmap
self.src_rect = old_src
end
@set_upper_area_sprite = false
top_left, bot_right = get_edge_corner_dis
last_x, last_y, copy_region = nil, nil, 0
map_xd, map_yd = $game_map.display_x * 32, $game_map.display_y * 32
total_height = (self.height + @character.jump_height).round
self.width.times do |x|
xp = map_xd.to_i + top_left[0] + x
unless xp / 32 == last_x
last_x = xp / 32
last_y, copy_region = nil, 0
total_height.times do |y|
yp = map_yd.to_i + bot_right[1] + @character.jump_height - y + Tuning
next if yp.to_i / 32 == last_y
last_y = yp.to_i / 32
if last_y == (@character.screen_y + @character.jump_height + Tuning +
map_yd).to_i / 32
break if $game_map.terrain_tag(last_x, last_y) == UpperTerrain
next
end
next if $game_map.terrain_tag(last_x, last_y) != UpperTerrain
copy_region = [self.height, total_height - y + 1].min
set_upper_sprite
break
end
end
next if copy_region == 0
rect = Rect.new(src_rect.x + x, src_rect.y, 1, copy_region)
@upper_area_sprite.bitmap.blt(x, 0, self.bitmap, rect)
self.bitmap.clear_rect(rect)
end
if !@set_upper_area_sprite && @upper_area_sprite
@upper_area_sprite.visible = false
end
end
## Creates the upper sprite that's a copy of the current sprite.
def set_upper_sprite
return if @set_upper_area_sprite
@upper_area_sprite ||= Sprite.new
@upper_area_sprite.bitmap = Bitmap.new(self.width, self.height)
props = ["x", "y", "ox", "oy", "zoom_x", "zoom_y", "angle", "mirror",
"bush_depth", "opacity", "blend_type", "color", "tone", "visible",
"viewport"]
props.each do |meth|
@upper_area_sprite.method("#{meth}=").call(self.method(meth).call)
end
@upper_area_sprite.z = 200
@set_upper_area_sprite = true
@old_bitmap, old_src_rect = self.bitmap, self.src_rect.clone
self.bitmap = Bitmap.new(@old_bitmap.width, @old_bitmap.height)
self.bitmap.blt(0, 0, @old_bitmap, @old_bitmap.rect)
self.src_rect = old_src_rect
end
end
class Game_Event < Game_Character
attr_reader :large_sprite
alias :cp_081713_setup_page_settings :setup_page_settings
def setup_page_settings(*args)
cp_081713_setup_page_settings(*args)
get_large_sprite_conditions
end
def get_large_sprite_conditions
@large_sprite = false
return if @list.nil? || @list.empty?
@list.each do |line|
next unless line.code == 108 || line.code == 408
case line.parameters[0]
when /<large sprite>/i
@large_sprite = true
end
end
end
end
Mit diesem Script musst du die entsprechenden Tiles (z.B. den Zaun) auf Terrain-Tag 7 stellen.
Ich habe das Script noch kurz angepasst, sodass es nicht nur für den Helden, sondern auch für die Follower funktioniert.
Willst du Events ebenfalls korrekt anzeigen, musst du im Event einen Kommentar einfügen: <large sprite>
31.03.2019, 11:40
Agura
Hallo Linkey,
vielen Dank, dieses Script funktioniert wirklich besser. Ich muss jetzt nur noch auf eine Sache beim Mappen achten (siehe Spoiler), aber sonst ist alles gut.
Wenn du Zeit, Lust und Güte dafür hast, kannst du dir das vielleicht noch anschauen, aber sonst muss ich einfach etwas ummappen.
Nochmals: Vielen Dank. :A
31.03.2019, 13:28
Linkey
Ist denn nur der Zaun auf Terrain 7 gestellt oder auch die Baumkrone? Und wie ist das ganze genau gemappt?
31.03.2019, 13:47
Agura
Nur der Zaun. Die Baumkrone ist mittels einem "Above Hero"-Event ohne sonstige Anmerkungen oder Befehlen realisiert worden.
31.03.2019, 14:32
Linkey
Hey Agura,
ich habe es nun so erweitert, dass "above hero" events immer "on top" angezeigt werden:
Code:
##-----------------------------------------------------------------------------
# Large Sprite ☆ Display Fix v1.3
# Created by Neon Black at request of seita
# v1.4 - 12.18.14 - Added position tuning
# v1.3 - 1.12.14 - Viewport/position issue fixes
# v1.1 - 8.18.13 - Fixed an odd lag issue
# v1.0 - 8.17.13 - Main script completed
# For both commercial and non-commercial use as long as credit is given to
# Neon Black and any additional authors. Licensed under Creative Commons
# CC BY 4.0 - http://creativecommons.org/licenses/by/4.0/
##-----------------------------------------------------------------------------
##------
## By default, this script only affects the player. To allow it to affect
## an event page as well, add a comment with the tag <large sprite> to the page
## of the event you would like to have affected by this.
class Sprite_Character < Sprite_Base
##------
## The ID of the terrain used to display the large character above ☆ tiles.
## If the player is below this tile (y position), the sprite will appear
## above all tiles and events from that y position up. If the player is on
## the same tile or above (y position) the event will appear BELOW ☆ tiles
## from that position up.
##------
UpperTerrain = 7
##------
## This value is the pixel tuning used to check the location. This is
## because characters tagged with a '!' in their name are drawn lower than
## normal characters and are considered to be lower than these. This causes
## the script to think they are on the tile below where they really are and
## draw them above tiles they should appear under.
##------
Tuning = -1
alias :cp_011214_update_bitmap :update_bitmap
def update_bitmap(*args)
if graphic_changed? && @set_upper_area_sprite
@force_no_gfx_change = true
else
@force_no_gfx_change = false
end
cp_011214_update_bitmap(*args)
end
## Alias the update method to add in the new graphic check.
alias :cp_073013_update_pos :update_position
def update_position(*args)
cp_073013_update_pos(*args)
check_encompassed_area if sprite_is_onscreen?
end
## Alias the dispose to dispose the upper sprite.
alias :cp_073013_dispose :dispose
def dispose(*args)
@upper_area_sprite.dispose if @upper_area_sprite
cp_073013_dispose(*args)
end
#~ ## Alias the graphic changed method to allow the sprite to revent to what it
#~ ## was during the last frame. This allows the check to work again.
#~ alias :cp_073013_graphic_changed? :graphic_changed?
#~ def graphic_changed?(*args)
#~ cp_073013_graphic_changed?(*args) || @set_upper_area_sprite
#~ end
## Check if the sprite is onscreen. Reduces redundant drawing.
def sprite_is_onscreen?
#LDT0319 enabled game_follower & put "above hero" events always on top
self.z = 500 if(@character.is_a?(Game_Event) && @character.priority_type >= 2)
return false if @character.is_a?(Game_Vehicle)
return false unless @character.is_a?(Game_Player) || @character.is_a?(Game_Follower) || @character.large_sprite
return false if @character.screen_z >= 200
top_left, bot_right = get_edge_corner_dis
return false if top_left[0] > Graphics.width
return false if top_left[1] > Graphics.height
return false if bot_right[0] < 0
return false if bot_right[1] < 0
return true
end
## Get the top left and bottom right positions.
def get_edge_corner_dis
top_left = [self.x - self.ox, self.y - self.oy]
bot_right = [top_left[0] + self.width, top_left[1] + self.height]
return [top_left, bot_right]
end
## Long method that checks each position and draws the upper sprite.
def check_encompassed_area
if @set_upper_area_sprite && !@force_no_gfx_change
old_src = self.src_rect.clone
self.bitmap = @old_bitmap
self.src_rect = old_src
end
@set_upper_area_sprite = false
top_left, bot_right = get_edge_corner_dis
last_x, last_y, copy_region = nil, nil, 0
map_xd, map_yd = $game_map.display_x * 32, $game_map.display_y * 32
total_height = (self.height + @character.jump_height).round
self.width.times do |x|
xp = map_xd.to_i + top_left[0] + x
unless xp / 32 == last_x
last_x = xp / 32
last_y, copy_region = nil, 0
total_height.times do |y|
yp = map_yd.to_i + bot_right[1] + @character.jump_height - y + Tuning
next if yp.to_i / 32 == last_y
last_y = yp.to_i / 32
if last_y == (@character.screen_y + @character.jump_height + Tuning +
map_yd).to_i / 32
break if $game_map.terrain_tag(last_x, last_y) == UpperTerrain
next
end
next if $game_map.terrain_tag(last_x, last_y) != UpperTerrain
copy_region = [self.height, total_height - y + 1].min
set_upper_sprite
break
end
end
next if copy_region == 0
rect = Rect.new(src_rect.x + x, src_rect.y, 1, copy_region)
@upper_area_sprite.bitmap.blt(x, 0, self.bitmap, rect)
self.bitmap.clear_rect(rect)
end
if !@set_upper_area_sprite && @upper_area_sprite
@upper_area_sprite.visible = false
end
end
## Creates the upper sprite that's a copy of the current sprite.
def set_upper_sprite
return if @set_upper_area_sprite
@upper_area_sprite ||= Sprite.new
@upper_area_sprite.bitmap = Bitmap.new(self.width, self.height)
props = ["x", "y", "ox", "oy", "zoom_x", "zoom_y", "angle", "mirror",
"bush_depth", "opacity", "blend_type", "color", "tone", "visible",
"viewport"]
props.each do |meth|
@upper_area_sprite.method("#{meth}=").call(self.method(meth).call)
end
@upper_area_sprite.z = 200
@set_upper_area_sprite = true
@old_bitmap, old_src_rect = self.bitmap, self.src_rect.clone
self.bitmap = Bitmap.new(@old_bitmap.width, @old_bitmap.height)
self.bitmap.blt(0, 0, @old_bitmap, @old_bitmap.rect)
self.src_rect = old_src_rect
end
end
class Game_Event < Game_Character
attr_reader :large_sprite
alias :cp_081713_setup_page_settings :setup_page_settings
def setup_page_settings(*args)
cp_081713_setup_page_settings(*args)
get_large_sprite_conditions
end
def get_large_sprite_conditions
@large_sprite = false
return if @list.nil? || @list.empty?
@list.each do |line|
next unless line.code == 108 || line.code == 408
case line.parameters[0]
when /<large sprite>/i
@large_sprite = true
end
end
end
end
31.03.2019, 14:39
Agura
Hallo Linkey,
Absolut perfekt, on top, top notch, (insert another "top"-Joke her).
Vielen, vielen Dank. :A
15.10.2019, 20:58
Grazia
Hallo ich weiß nicht ob ich hier richtig bin, aber ich versuchs einfach mal:
Wenn ich meine RPGs spiele dann kommt es bei manchen vor, dass der Bildschirm immer mal wieder zwischendrin für einen kurzen Moment schwarz wird nur für 1-2 Sekunden, in Kämpfen kann sich das manchmal auch häufen.
Ist mein PC dafür zu modern? Früher war das nie so. Leider weiß ich nicht so genau wann es anfing das geht schon ne Weile so.
Also ich rede von Spielen wie VD, VD2, Der Brief für den König, Zauberer und Prinzessin usw..
Ich wäre das gerne los.
26.10.2019, 17:32
Agura
Liste der Anhänge anzeigen (Anzahl: 2)
Hallo ihr guten Frauen und Männer der Technik, ich habe leider wieder ein Problem. Da ich leider keinerlei Rubyerfahrung habe, kann ich das Problem auch nicht selber lösen.
Folgendes: Ich verwende den Vx-Ace und das Pop-Up-Message-Script von Yami. Da diese/r allerdings die Scripts nicht mehr aktuell hällt, bzw. diese von der Seite aus nicht mehr zu finden sind, musste ich eine zufällige Version nehmen. Diese hat allerdings noch einen gravierenden Fehler.
Wie man sehen kann, ist die Textbox wesentlich größer, als sie sein muss. Wenn man sich das ganze im Maker ansieht, habe ich eine Vermutung.
Ich gehe davon aus, dass es sich um die Befehle handelt welche dafür da sind, um die Textbox über den NPC anzeigen zu lassen und um den Namen in einer seperaten Box dazustellen.
Anscheinend werden beim berechnen der Textboxbreite ALLE Zeichen mitgenommen, so auch die Befehle.
Das ist der Ausschnitt vom Script, der die Breite berechnet. Ich weiß, dass man das mit regulären Ausdrücken rausfiltern kann. Wie gesagt, ich habe keine Rubyerfahrung und weiß daher nicht, wie ich das implementieren muss.
Den regulären Ausdruck kann ich liefern:
Code:
\\[a-z]{1,3}[\[<][\w\säöüÄÖÜß]+[\]>]
Kann mir jemand den kompetent einarbeiten? Wenn das komplette Skript gebraucht, kann ich das gerne liefern.
Allternativ kann man mir auch einfach die aktuellste Version von Yamis Skript geben. ^^'
Ich bedanke mich schon mal im Vorraus.
03.02.2021, 14:28
Ben
So, ich hab auch mal wieder eine Frage, zu der Funktion "Shop Processing" im Eventmodus des 2k3. :)
Mein Vorhaben:
Ich habe im Spiel einen Händler erstellt.
Dieser soll einem nur spezielle Items abkaufen, die sonst kein Händler im Ankauf annehmen würde (in diesem Fall Kristalle und Edelsteine, er ist ein ehemaliger Minenarbeiter).
Wie kann ich das vom Eventcode her lösen?
Meine Idee war die Option "Sell Only" zu nehmen, aber dann könnte ich ihm ja auch alles andere verkaufen, was ich nicht will.
Habt ihr Lösungsvorschläge? :)
03.02.2021, 15:09
Kelven
Mit dem Standard-Shop geht es nicht. Du könntest aber ein eigenes Event schreiben, mit dem die Gegenstände per "Show Choices" verkauft werden können.
03.02.2021, 15:18
WildGuess
(Ohne Gewähr)
Ich glaube zwar, dass das im 2k3 möglich, aber aufwendig ist. Hoffentlich hat hier jemand eine bessere Idee.
Soweit ich weiß, ist der Verkauf immer direkt abhängig von deinem tatsächlichen Inventar. Also muss man direkt das Inventar modifizieren.
Wenn du unbedingt dss Shopmenü anzeigen willst und das dir den Aufwand Wert ist, würde ich:
1. Alle Gegenstände im Inventar als Variablen abspeichern,
2. Alle Gegenstände abseits der Edelsteine entfernen
3. Nach Verkaufsabschluss alle Gegenstände wieder hinzufügen, abseits der Edelsteine.
Wenn du das so machst, würde ich noch vorschlagen, dass du die Abwicklung in ein CommonEvent packst, damit du einen schnellen Blick auf den Codewulst hast, wenn du ein neues Item einfügst.
Andernfalls kannst du dir die Frage stellen, ob der Shopbildschirm überhaupt notwendig ist, gerade im Fall, falls es keinen anderen Nutzen für die Steine geben sollte, als sie zu verkaufen.
In dem Fall würde:
1. Einfache Dialogauswahl mit "Edelsteine verkaufen"
2. "Du hast \[n] viele Rubine, etc gesammelt. Insgesamt bin ich bereit für die Menge x$ zu zahlen"
3. Alle Edelsteine aus dem Inventar entfernen
oder so wie Kelven es gerade auch vorgeschlagen hat.
03.02.2021, 15:20
Ben
Zitat:
Zitat von Kelven
Mit dem Standard-Shop geht es nicht. Du könntest aber ein eigenes Event schreiben, mit dem die Gegenstände per "Show Choices" verkauft werden können.
Das ist eine einfache, super Idee! So werde ich es probieren! Danke dir und danke WildGuess!
14.02.2021, 15:53
Ben
Nochmal eine Frage, dieses Mal zum KS vom 2k3... wie kann ich dafür sorgen, dass Gegner im KS nach einer gewissen Situation / Rundenzahl Verstärkung rufen? Stehe gerade irgendwie auf dem Schlauch und finde die Option dafür nicht... :/
14.02.2021, 16:07
Inselmanager
Zitat:
Zitat von Ben
Nochmal eine Frage, dieses Mal zum KS vom 2k3... wie kann ich dafür sorgen, dass Gegner im KS nach einer gewissen Situation / Rundenzahl Verstärkung rufen? Stehe gerade irgendwie auf dem Schlauch und finde die Option dafür nicht... :/
Du musst den Gegner zuerst ausblenden. Dazu klickst du einfach unter "Troops" mit der rechten Maustaste auf ihn und wählst "Appear Midway" aus. Mit dem Battle Event "Enemy Encounter" lässt du ihn dann während des Kampfes auftauchen. Unter "Conditions" stellst du ein, wann das passieren soll. Willst du ihn z.B. nach 5 Runden auftauchen lassen, machst du ein Häkchen bei "Turn No." und gibst "0x + 5" ein.
14.02.2021, 16:49
Ben
Danke dir! :)
18.02.2021, 10:53
Ben
Ich mache da jetzt einfach mal n Doppelpost draus:
Vor dem legalen RPGMaker 2003, der 2015 rauskam, gab es doch per DynRPG / PlugIn /whatever eine Möglichkeit, den klassischen Titelscreen durch direkten Sprung auf eine Map zu ersetzen. Damit hab ich mir damals einen individuellen Titelscreen gemacht, den es mir nach dem Port auf die legale Variante zerschossen hat.
Geht das noch irgendwie mit dem legalen Maker? Oder bin ich als Entwickler an das klassische Startinterface gebunden?
Danke im Voraus für eine Antwort. :)
Aua... das hätte ich mir eigentlich denken können (im Nachhinein ergibt es Sinn!), aber da bin ich wie ein Maulwurf dran durch^^
Danke dir!
18.02.2021, 12:44
Nagasaki
So wie von IndependentArt beschrieben. Allerdings eventuell noch Folgendes beachten. https://cherryshare.at/t/fMvr51
Sofern du die Testplay Funktion im Maker nutzt, ist an der Stelle wichtig, den Title Screen zu aktivieren. Sonst wird statt deinem selbsterstelltem Titelbild automatisch das Lademenü aufgerufen. Beim Starten über die exe ist das natürlich egal.
18.02.2021, 16:26
Cherry
Man kann aber natürlich einfach ESC drücken im Lademenü. Es ist für den Test nämlich ganz nützlich.
Zum Thema "offensichtlich": ich hab versucht, mich an die existierenden Konventionen zu halten, Frames werden ja auf dieselbe Weise aktiviert oder deaktiviert (in System 2).
Aber lies sonst vielleicht auch noch mal den Changelog, da hab ich all diese Änderungen auch reingeschrieben: http://tinyurl.com/rm2003cl
19.02.2021, 19:33
Ben
Zitat:
Zitat von Cherry
Man kann aber natürlich einfach ESC drücken im Lademenü. Es ist für den Test nämlich ganz nützlich.
Zum Thema "offensichtlich": ich hab versucht, mich an die existierenden Konventionen zu halten, Frames werden ja auf dieselbe Weise aktiviert oder deaktiviert (in System 2).
Aber lies sonst vielleicht auch noch mal den Changelog, da hab ich all diese Änderungen auch reingeschrieben: http://tinyurl.com/rm2003cl
Danke für den Link, Cherry! Bin gerade dabei mich durchzulesen. :)
Was meinst du mit den Frames genauer?
Gibt es die Möglichkeit manche Begriffe wie Nickname, Class, usw. zu übersetzen? Irgendwie finde ich die Möglichkeit dafür in meiner Database nicht... (hab schon alles von Glossary 1-5 abgesucht)
Danke!
20.02.2021, 08:02
Cherry
Mit Frames meinte ich die in ihrer aktuellen Form leider ziemlich merkwürdige Funktion, eine Grafik der Ressourcenart "Frame" permanent über das ganze Spiel zu legen (unter System2). Übrigens haben Frame-Ressourcen auch noch eine zweite Einsatzmöglichkeit, nämlich können sie als Kampfhintergrund verwendet werden, der dann auch horizontal oder vertical scrollen und loopen kann. (mMn entstand das aus einer nicht so idealen Kommunikation der Requirements zwischen Enterbrain und dem neuen Entwickler den sie damals für den 2k3 geholt hatten, genauso wie ein paar andere merkwürdige Funktionen, wirkt zumindest stark so)
Begriffe: Nein das geht leider nach wie vor über Resource Hacker oder ähnliche Tools.
20.02.2021, 19:17
Ben
Okay, das beantwortet meine Fragen, danke! :)
Nun habe ich schon wieder eine neue, wer auch immer das weiß, vielen Dank! :)
Und zwar will ich ein Artwork als Panorama importieren, allerdings hat der Künstler von damals das Bild hochkant gemalt,
sodass es nach Verkleinerung gerade eben nun 320x480 groß ist.
Nun gefällt mir das Werk so gut, dass ich es dennoch verwenden möchte.
Weiter zuschneiden ist nicht möglich.
Kann ich das trotz dieser Größe bedenkenlos importieren und darstellen ohne den 2k3 zu sprengen? Denn diese Maße sind ja Übergröße UND nicht im richtigen Verhältnis.^^
20.02.2021, 20:00
IndependentArt
Ja, sollte er problemlos darstellen. Um das ganze Artwork zu zeigen musst du dann natürlich drüber scrollen. ;) Bzw. das Artwork scrollen lassen.
20.02.2021, 20:01
Ben
Zitat:
Zitat von IndependentArt
Ja, sollte er problemlos darstellen. Um das ganze Artwork zu zeigen musst du dann natürlich drüber scrollen. ;)
Danke dir! Ja, das hatte ich dann auch vor. :)
20.02.2021, 20:04
IndependentArt
Ich glaube, nur der illegale "Urmaker" hatte mal eine Begrenzung von 640x480 für Grafiken. Ich erinnere mich noch an eine dunkle Zeit, zu der ich mich dieser Beschränkung auch unterwerfen musste. Richtig abgeschafft hat Cherry das glaub ich mit dem offiziellen Release.
20.02.2021, 21:28
Innocentia
Ich hätte da auch eine Frage:
Mein Maker bekommt es nicht mehr hin, bei den Textboxen 4 Zeilen richtig zu nutzen.
Ich kann maximal 3 Zeilen voll schreiben, aber wenn ich einen weiteren Absatz machen will, kommt nur der Windows-Fehlersound.
Wenn ich eine Textbox, die schon 4 Zeilen habe, bearbeite, löscht der mir Zeile 4 und sogar 3 raus und ich müsste alles wieder neu tippen, was aber dann auch nicht wirklich geht, wegen oben genannten Fehler.
Ich hab zwar einige Jahre mit dem Maker nicht mehr gearbeitet, aber früher ging das doch, dass man 4 Zeilen benutzen konnte? Wie kommt diese Einschränkung zustande?
Benutze meine Urversion vom rm2k3 über den rm2k9 Ultimate, Windows 10. Könnte da irgendwie der Grund verborgen sein? Meine, davor noch mit Windows 7 oder 8.1 gearbeitet zu haben... Da war das noch nicht so.
Danke im Voraus für eventuelle Antworten :)
- Das Inno -
21.02.2021, 07:34
Cherry
Ich vermute, das Problem ist die Scrollbar, die der Ultimate da einfügt - eventuell wird dadurch der innere Boxbereich zu niedrig für eine 4. Zeile. Ich hab da zwar die Box insgesamt um 16 Pixel erhöht, was bis jetzt OK war, aber vielleicht sind bei dir einfach Scrollbars höher (vielleicht hast du irgendwie eine andere Designeinstellung im Windows oder so).
Die Lösung ist, in der Datei "uimod\widemessagebox.ini" vom RM2k9U an allen Stellen das "16" auf was Höheres zu ändern, zB "20" oder "24". Kannst dich ja damit herumspielen bis es passt.
21.02.2021, 08:51
IndependentArt
Vmtl hat das nichts damit zu tun, weil das Problem so wie es bei dir klingt permanent auftritt: Aber bei mir ist es manchmal so, dass ich keinen weiteren Text hinzufügen kann, weil ich den Text aus irgendeinem Dokument kopiert habe und irgendwelche Umbrüche mit kopiere, die dann die Box voll machen.
21.02.2021, 10:58
Innocentia
Zitat:
Zitat von Cherry
Ich vermute, das Problem ist die Scrollbar, die der Ultimate da einfügt - eventuell wird dadurch der innere Boxbereich zu niedrig für eine 4. Zeile. Ich hab da zwar die Box insgesamt um 16 Pixel erhöht, was bis jetzt OK war, aber vielleicht sind bei dir einfach Scrollbars höher (vielleicht hast du irgendwie eine andere Designeinstellung im Windows oder so).
Die Lösung ist, in der Datei "uimod\widemessagebox.ini" vom RM2k9U an allen Stellen das "16" auf was Höheres zu ändern, zB "20" oder "24". Kannst dich ja damit herumspielen bis es passt.
Cherry, du bist ein Schatz, vielen Dank! Ich hab alle Werte mal auf 24 gemacht und jetzt kann ich die Textboxen ganz normal wieder bearbeiten :) Kein nerviger Windows-Fehlersound mehr :D
Gibt es eigentlich noch die Möglichkeit, das Programm mit einer anderen Auflösung laufen zu lassen als 640 x 480? Eventfenster und die Maps sind derzeit bei mir ziemlich klein, gerade die Schrift zu lesen ist schon etwas anstrengend. Seit Win 10 ist ja alles bisschen kleiner geworden (könnte aber auch an meiner Auflösung vom Laptop liegen, diese ist übrigens bei 1920 x 1080, mit einer benutzerdefinierten Skalierungsgröße von 130), aber wäre cool, wenn man das auch irgendwie ändern könnte. Hab bisschen mit der DPI unter Eigenschaften herum gespielt, bekam aber kein zufriedenstellendes Ergebnis.
Wenn das nicht gehen sollte, ist es auch okay. Mir wäre es nur am wichtigsten, dass ich die Eventbefehle etwas größer stellen könnte, weil das hier strengt meine Augen auf Dauer an ^^;
Zitat:
Zitat von IndependentArt
Vmtl hat das nichts damit zu tun, weil das Problem so wie es bei dir klingt permanent auftritt: Aber bei mir ist es manchmal so, dass ich keinen weiteren Text hinzufügen kann, weil ich den Text aus irgendeinem Dokument kopiert habe und irgendwelche Umbrüche mit kopiere, die dann die Box voll machen.
Dann würde ich es ja auch verstehen, aber ich konnte ja nur 2 Zeilen nutzen, die ich von Hand geschrieben habe und das war definitiv vorher [vor etlichen Jahren] nicht so. Zwischendurch legte ich mir einen neuen Laptop mit neuen Betriebssystem zu. Lag wohl tatsächlich an der Auflösung.
- Das Inno -
21.02.2021, 22:11
G-Brothers
Zitat:
Zitat von Innocentia
Gibt es eigentlich noch die Möglichkeit, das Programm mit einer anderen Auflösung laufen zu lassen als 640 x 480?
Ich kenne da eine Lösung. Man kann auch den offiziell lokalisierten RPG Maker 2003 verwenden und dann das neue RPG_RT durch das alte (mit DynRPG) ersetzen. Die Schrift ist bei diesem Maker ein bisschen grösser und man kann den Eventeditor sogar als Vollbild schalten.
Aber bevor du das machen würdest, sollte vielleicht eine Frage beantwortet werden: @Cherry Ist das überhaupt eine gute Idee? Also ich mache das schon so seit der 2k3 offiziell auf Steam gebracht wurde, und bisher ist mir nichts um die Ohren geflogen.Hab auf diese Weise halt ein paar Eventbefehle, die mit 1.0.8.0 inkompatibel sind und einfach nichts bewirken, aber ansonsten...?
22.02.2021, 09:11
Cherry
Ich hab versucht Kompatibilität zu wahren, aber ja, natürlich funktionieren dann alle neuen Sachen nicht (und du musst dich aber erinnern, welche das sind - schau z.B. im Changelog http://tinyurl.com/rm2003cl, da hab ich extra Editor-Änderungen und Engine-Änderungen getrennt beschrieben), und dein Editor und deine Engine verwenden verschiedene RTP-Versionen, d.h. manche RTP-Grafiken die du im Editor siehst werden in der Engine nicht gefunden, und umgekehrt. Mit all dem kann man aber arbeiten, wenn man weiß wie, natürlich. Man kann auch die Aufforderung, die RPG_RT.exe zu aktualisieren, auf "don't ask me again" schalten (und sollte man sich irgendwann mal doch umentschieden haben, kann man Shift gedrückt halten beim Öffnen des Projekts, dann kommt die Aufforderung wieder.)
Das einzige was du verlierst (was eh keiner braucht, mMn) ist die Einstellung "Bottom Half Transparency" bei Pictures.
@Inno: Da du ja eh den RM2k9U verwendest, kannst du auch mal ausprobieren, was passiert wenn du an den Schriftgrößen unter "[FontReplacements]" in der ultimate.ini schraubst. Für die Fenstergrößen an sich könntest du den Goliath Patch von Aten dir mal anschauen, ich bilde mir ein der macht auch Fenster größer. (Geht auch in Kombination mit dem Ultimate natürlich.)
22.02.2021, 11:01
Innocentia
Zitat:
Zitat von G-Brothers
Ich kenne da eine Lösung. Man kann auch den offiziell lokalisierten RPG Maker 2003 verwenden und dann das neue RPG_RT durch das alte (mit DynRPG) ersetzen. Die Schrift ist bei diesem Maker ein bisschen grösser und man kann den Eventeditor sogar als Vollbild schalten.
Coole Sache, dass das überhaupt geht, aber ehrlich gesagt traue ich mich das nicht ^^; Ich behalte es aber im Hinterkopf :)
Zitat:
Zitat von Cherry
@Inno: Da du ja eh den RM2k9U verwendest, kannst du auch mal ausprobieren, was passiert wenn du an den Schriftgrößen unter "[FontReplacements]" in der ultimate.ini schraubst. Für die Fenstergrößen an sich könntest du den Goliath Patch von Aten dir mal anschauen, ich bilde mir ein der macht auch Fenster größer. (Geht auch in Kombination mit dem Ultimate natürlich.)
Nach etwas reinlesen und ausprobieren habe ich
Code:
1=MS UI Gothic,0,MS Shell Dlg,10
mal hinten auf 15 gestellt und es ist nun wesentlich angenehmer zu lesen :)
Ich hab mir zudem mal den Goliath Patch angesehen, aber ich denke, dass ich ihn nicht nutzen kann, da er hierfür eine andere Exe vorraussetzt. Ich meine mich zu erinnern, dass ich bereits eine modifizierte exe für mein Projekt verwende, aber da müsste ich Corti mal fragen. Daher lasse ich vorerst mal die Finger davon, aber heruntergeladen ist der Patch schon mal :)
An sich wäre mir die Größe der Map und des Event-Editors vom rm2k3 lieber, aber dafür ist sie wieder unscharf, was meinen Augen auch nicht gerade gut tut. Dann lieber über den rm2k9U mit der geänderten Font :)
Danke noch mal an allen für die Ratschläge!
- Das Inno -
22.02.2021, 11:52
Cherry
Hm, es scheint so, als würde Windows beim einen DPI-Skalierung anwenden (drum größer aber unscharf) und beim anderen nicht, wobei ich nicht weiß wieso.
22.02.2021, 15:22
Ligiiihh
Das Problem habe ich auch sehr häufig bei verschiedenen Programmen, da muss man einfach die Eigenschaften der .exe-Datei aufrufen und unter Kompatibilität die DPI-Einstellungen anpassen (lassen). Weiß aber auch nicht, warum Windows das ständig macht, vermutlich hat es was mit dem Alter der Programme oder sowas zu tun, weil ich bei neueren Spielen/Programmen das nie machen muss.
23.02.2021, 17:39
Ben
Habe mal wieder eine Frage:
Bezüglich Lautstärken von Soundeffekten und wie diese sich verändern, wenn der Held sich der "Lärmquelle" nähert.
Ich habe vor, dies für meine Wasserfälle im Spiel umzusetzen. Leider kenne ich mich trotz langer Makernutzung mit 80% vom Eventcode und dessen Befehlen nicht so gut aus. Doch ich traue mich jetzt einfach mal zu fragen und eventuelle Wissenslücken zu schließen.^^
Bislang löse ich das so (wahrscheinlich viel zu umständlich, deswegen hier auch geschildert):
Parallel Process Event auf der Map
Erste Eventseite:
Play Soundeffect (mit reduzierter Lautstärke)
plus Wait Befehl in Länge des Soundeffektes
Zweite Eventseite, getriggert durch Switch:
Play Soundeffect (mit voller Lautstärke)
plus Wait Befehl in Länge des Soundeffektes
Dazu mache ich auf jeder Map dementsprechend Events am Boden, die den Switch oben triggern, wenn der Held nahe genug am Wasserfall ist, triggert Eventseite 2 (oder sich wieder entfernt, triggert Eventseite 1).
Dabei kam mir der Gedanke: Das muss doch bestimmt mit anderen Befehlen schneller und effektiver zu lösen sein, doch ich hab keine Ahnung welche und wie. Habt ihr Ideen wie es besser geht? Gerne auch in Makercodeform, dass ich mich da mal endlich reinfuchsen kann.
Komme mir gerade vor wie der Ochs vorm Berg.^^
23.02.2021, 20:33
IndependentArt
Ja, geht in der Tat einfacher. Ich würde die Distanz des Heros zum Event berechnen, wie es mir Corti vor einigen Jahren (zum Glück) mal beigebracht hat.
Der Code dazu sieht so aus:
Code:
@> Control Variables: [Hero X] = Player's X Coordinate
@> Control Variables: [ Hero Y] = Player's Y Coordinate
@> Control Variables: [Event X] = [Event]'s X Coordinate
@> Control Variables: [Event Y] = [Event]'s Y Coordinate
@> Control Variables: [Hero X] -= Variable [Event X]
@> Control Variables: [Hero Y] -= Variable [Event Y]
@> Conditional Branch: Variable [Hero X] < 0
@> Control Variables: [Hero X] *= -1
@>
: Branch End
@> Conditional Branch: Variable [Hero Y] < 0
@> Control Variables: [Hero Y] *= -1
@>
: Branch End
@> Conditional Branch: Variable [Hero X] < 5
@> Conditional Branch: Variable [Hero Y] < 5
@> Variable/Switch
@>
: Else
@>
@>
: Branch End
@>
: Else
@> C
@>
: Branch End
Das ganze ist ein PP-Event, was auf der Map liegt, mit einem 0.0 Wait.
Du subtrahierst quasi die Koordinaten des Events von denen des Heros, prüfst, ob ggf. Negative werte rauskommen und machst daraus positive. Damit hast du die Entfernung bestimmt.
Jetzt kannst du in einer Abfrage festlegen, dass die Entfernung in beiden Achsen wie in meinem Bsp unter 5 liegen muss.
Das Sound-Event würde ich ehrlich gesagt mit einer Variable steuern. Damit könntest du sogar sowas wie 5 Abstufungen der Lautstärke machen. Oder den Sound auch erst ab einer bestimmten Nähe anschalten.
Falls du das für mehrere Events/Lärmquellen machen möchtest, würde ich alles ab der 5.Zeile in ein Common Event packen.
Schau mal, ob du damit klar kommst, ansonsten, melde dich.
24.02.2021, 08:25
Ben
Hey IndependentArt! :)
Vielen Dank, das klappt schon mal ganz gut. :)
So hab ich dann mal nach deiner Beschreibung den Code gestrickt.
Mein Problem:
Also lauter wird es je näher ich komme, aber es dauert zu lange bis es wieder leiser wird, wenn sich der Held dem Event entfernt.
So habe ich das andere Event aufgebaut, vielleicht hab ich da einen Fehler drin?
Da fehlt mir irgendein Befehl, um den Wasserfallsound jederzeit zu unterbrechen, bzw. mit veränderter Lautstärke neu zu starten. Wie kann ich das machen?
24.02.2021, 12:04
Cherry
Du kannst den Sound unterbrechen indem du ihn 4x mit 0% Lautstärke abspielst
24.02.2021, 12:37
Linkey
Zitat:
Zitat von Ben
So hab ich dann mal nach deiner Beschreibung den Code gestrickt.
Sieht wahrscheinlich gerade nur im Forum so für mich aus, aber funktioniert deine Abfrage aktuell nicht nur, wenn der Held auf der X Achse nur 5 Felder entfernt ist?
24.02.2021, 13:36
Ben
Zitat:
Zitat von Linkey
Sieht wahrscheinlich gerade nur im Forum so für mich aus, aber funktioniert deine Abfrage aktuell nicht nur, wenn der Held auf der X Achse nur 5 Felder entfernt ist?
Wie meinst du das? Ich habe in dem Beispiel gleich alle für mich relevanten Entfernungen eingebaut. hat sich da ein Fehler eingeschlichen?:)
@Cherry: Danke, das probiere ich gleich mal!
Edit:
Hab das jetzt so eingebaut
Code:
@> Play SE: 'Waterfall-SoundBible.com-1597727655', 0, 100, 50
@> Play SE: 'Waterfall-SoundBible.com-1597727655', 0, 100, 50
@> Play SE: 'Waterfall-SoundBible.com-1597727655', 0, 100, 50
@> Play SE: 'Waterfall-SoundBible.com-1597727655', 0, 100, 50
@> Play SE: 'Waterfall-SoundBible.com-1597727655', 100, 100, 50
@> Wait: 25.7 seconds
Ändert nichts dran, dass es gleich lauter wird, wenn der Held sich dem Wasserfall nähert, aber nicht mehr wirklich leiser... hab alle Seiten so aufgebaut bis auf den Trigger als Variable. Was übersehe ich? :D
24.02.2021, 14:21
Nagasaki
Nur so nebenbei- spricht etwas dagegen, den Sound als BGM und die BGM stattdessen als Sound abzuspielen? Wäre eleganter gelöst. So kannst du die Lautstärke auch während des Abspielens und ohne Unterbrechung/ Neustarten anpassen.
24.02.2021, 14:23
Cherry
Naja die Logik ergibt so nicht so viel Sinn, da du alles verschachtelst hast aber eigentlich immer 2 Dinge überprüfst. Es ist so, wie Linkey schrieb, es wird z.B. gar nichts gemacht wenn der Held horizontal mehr als 5 Felder weg ist.
Das wäre zu lösen indem du die Bedingungen einfach untereinander packst anstatt verschachtelt, aber selbst dann stimmts nicht weil wenn die Entfernung in X und Y verschieden ist, wird in vielen Fällen wieder gar nichts passieren.
Was du wirklich brauchst ist eine tatsächliche Distanz (Länge des Distanzvektors), die wäre die Quadratwurzel aus x²+y² (Pythagoras). Jetzt hat der Maker zwar keine Wurzelfunktion, aber das macht nichts weil du halt stattdessen nicht mit der gewünschten Entfernung d (z.B. 5) sondern mit dem Quadrat davon d² (z.B. 25) vergleichen kannst (d²=x²+y²).
Außerdem willst du ja nur dann den Sound erneut abspielen, wenn sich die Lautstärke geändert hat, oder wenn er durchgelaufen ist, d.h. wir müssen auf die Änderung überprüfen und anstatt eines statischen Waits einen Framezähler nehmen der bis zu 25.7 Sekunden = 1542 Frames zählt.
Mein Vorschlag wäre daher folgender:
Code:
* Var X = X von Held
* Var Y = Y von Held
* Var X -= X von Wasserfall
* Var Y -= Y von Wasserfall
* Var X *= Var X <<< hier brauchen wir keine Überprüfung auf negative Zahlen mehr, weil wir den Wert eh quadrieren
* Var Y *= Var Y
* Var DistanzQuadrat = X
* Var DistanzQuadrat += Y
* Var NeueLautstärke = 0
* If DistanzQuadrat < 225 <<< d.h. <15 Felder (quadriert)
... * Var NeueLautstärke = 1
: end
* If DistanzQuadrat < 144 <<< d.h. <12 Felder (quadriert)
... * Var NeueLautstärke = 2
: end
* If DistanzQuadrat < 64 <<< d.h. <8 Felder (quadriert)
... * Var NeueLautstärke = 3
: end
* If DistanzQuadrat < 25 <<< d.h. <5 Felder (quadriert)
... * Var NeueLautstärke = 4
: end
* If Var NeueLautstärke != Var AktuelleLautstärke <<< hat sich die Lautstärke geändert?
... * Var ZeitÜbrig = 0 <<< direkt neues Abspielen des Sounds auslösen
... * Var AktuelleLautstärke = Var NeueLautstärke
: end
* If Var ZeitÜbrig <= 0
... * Play SE 0% <<< zuerst alten Sound stoppen
... * Play SE 0%
... * Play SE 0%
... * Play SE 0%
... * If Var AktuelleLautstärke == 1 <<< Hinweis: Überprüfung auf Lautstärke 0 nicht nötig weil der Sound dann einfach gar nicht gespielt wird
... ... * Play SE 25%
... : end
... * If Var AktuelleLautstärke == 2
... ... * Play SE 50%
... : end
... * If Var AktuelleLautstärke == 3
... ... * Play SE 75%
... : end
... * If Var AktuelleLautstärke == 4
... ... * Play SE 100%
... : end
... * Var ZeitÜbrig = 1542 <<< Dauer des Sounds in Frames (25.7s * 60 FPS = 1542)
* Var ZeitÜbrig -= 1 <<< verbleibende Zeit für den Sound bis zum Loopen um 1 Frame runterzählen
(kein Wait 0.0 nötig, denn da das ein Parallel Process ist, wird ohnehin 1 Frame gewartet bis das Event wieder von vorne anfängt)
Um das ganze zu resetten, z.B. wenn man die Map frisch betritt, einfach ZeitÜbrig auf 0 setzen.
An deiner Stelle würde ich für die Abfrage der Koordinaten des Wasserfalls direkt "This Event" verwenden und den Code in das Wasserfall-Zentrums-Event selber packen. Dann kannst du es beliebig auf andere Maps kopieren ohne was zu ändern (bzw. nur den Sound zu ändern, wenn nötig).
Das ganze hat noch einen Haken: Wenn keine Events ausgeführt werden können, z.B. wenn man ins Menü geht oder eine Screentransition stattfindet (Show/Hide Screen), wird der Zähler auch nicht reduziert (das Problem hättest du mit deinem Wait aber auch), d.h. danach glaubt der das Spiel, der Sound ist weniger weit fortgeschritten, als er wirklich ist, und es entsteht eine Lücke wenn der Sound ausläuft, das Game es aber noch nicht weiß. Das könnte man zumindest einigermaßen abfedern indem man den Sound in der Sounddatei selber mehrfach geloopt reinmacht und aber trotzdem für den Zähler die einfache Länge verwendet, dann gibts zumindest einen Puffer, wo es nicht auffällt wenn man kürzer als dieser Puffer lang ist sich im Menü o.ä. befindet.
@Nagasaki: Ich würde vermuten, die Tatsache dass Sound-Effekte nicht MIDI oder MP3 sein können und auch nicht automatisch gespeichert, beendet und wiederhergestellt werden wenn man z.B. kämpft, und auch unterbrochen werden würden wenn man ins Menü geht und dazwischen die Musik ausläuft (was sicher mehr auffällt als beim Sound) wird wohl dagegen sprechen... Aber je nach Rahmenbedingungen kanns natürlich eine interessante Herangehensweise sein. (Neuere Maker haben genau dafür ja BGS...)
24.02.2021, 14:42
Nagasaki
Das ergibt Sinn.
24.02.2021, 15:02
Ben
@Cherry:
Vielen Dank für deinen Code und die Erklärung. Ich schaue morgen mal in Ruhe, ob ich das eingebaut kriege. :D
02.04.2021, 10:46
Ben
Hallo zusammen!
Ich hab ein Problem mit einem Skill in der Database. Zwei Bilder um es anschaulicher zu machen.
Und zwar will mein liebenswert tollpatschiger Held auf Level 14 diese Technik nicht lernen. Dabei wird es bei einem Level Up im Kampfsystem sogar angezeigt, dass er "Wutanfall" lernt, doch wenn ich im Menü danach schaue ist da nichts.
Irgendwelche Ideen woran es liegen könnte?
Die Technik hat übrigens noch das Attribut "Luft" aber das hat die Waffe auch, von dem her sollte es daran nicht liegen... :)
02.04.2021, 11:07
Kelven
Könnte es sein, dass du einen Spielstand lädst, in dem die Fähigkeit noch nicht in der Datenbank war? Ich weiß nicht, wie der Maker mit so einer Situation umgehen würde.
02.04.2021, 11:22
Liferipper
Ändere mal den Skill Type zu Technik (oder wie imer es auch heißen mag, jedenfalls etwas anderes).
02.04.2021, 11:43
Ben
Zitat:
Zitat von Kelven
Könnte es sein, dass du einen Spielstand lädst, in dem die Fähigkeit noch nicht in der Datenbank war? Ich weiß nicht, wie der Maker mit so einer Situation umgehen würde.
Ich habe zur Gegenprobe das Spiel gerade auf dem Level 14 begonnen. Im Menü sind alle bis dahin erlernbaren Techniken bis auf der "Wutanfall" Technik. Kann aber sein, dass es darüber hinaus mit deinem Tipp zusammenhängt.
Zitat:
Zitat von Liferipper
Ändere mal den Skill Type zu Technik (oder wie imer es auch heißen mag, jedenfalls etwas anderes).
Technik habe ich nicht als Auswahl bei den Skills, nur Normal/ Switch/ Escape / Teleport. Oder wie meinst du das?
02.04.2021, 15:34
Liferipper
Zitat:
Technik habe ich nicht als Auswahl bei den Skills, nur Normal/ Switch/ Escape / Teleport. Oder wie meinst du das?
Im RM2k3 ist nicht jeder Skill von jeder Klasse anwendbar und im Kampf taucht der entsprechende Skill daher nicht im auf. Ich dachte, dass das hier der Fall sein könnte. Aber wenn der Skill schon im Menü nicht zu sehen ist, müsste der Grund ohnehin ein anderer sein, wie mir inzwischen eingefallen ist.
03.04.2021, 12:45
Ben
Konnte das Problem lösen, indem ich den Skill kopiert habe und auf ein freien Skillslot (Nummer 200 :D)) eingefügt habe. :)
26.04.2021, 11:26
Ben
Gibt es ein Programm / Tool, womit ich im Spiel unbenutzte Ressourcen schnell ausfindig machen kann? :)
Kurzanleitung (Bestätige jede Eingabe mit Enter):
- Um auf den Check-Modus zu wechseln gib mehrmals die 1-Taste ein.
- Dann stell den Datei-Check via Druck auf die 5-Taste an (Sollte dann sagen: "Check Unused Files") (Optional kannst du die anderen Checks je nach Bedarf auch noch anpassen)
- Anschließend gib die Z-Taste ein und wähle die .lmt Datei des zu überprüfenden Projekts aus.
- Bestätige mit der Y-Taste das Erstellen einer log.txt, in der du dann nachschauen kannst, welche Dateien nicht genutzt werden.
27.04.2021, 08:47
Ben
Danke dir WildGuess! :)
15.05.2021, 00:30
PK-Laharl
Ich habe ein Problem mit den Bilder Events...
Ich habe hier alles geschildert und brauche dringend Hilfe bitte...
Ich würde gerne wissen ob jemand ein Programm kennt, mit dem ich .wav Dateien ein bisschen kleiner bekomme. Manche meiner Ambientsounds sind ganze 500 MB groß, das wäre zu viel des Guten ;D
Was ich sicher noch anmerken sollte, ist, dass die ganz großen .wavs alle im "B-Format" sind, und die kann ich mit meinem Go-to Soundprogramm nicht einmal öffnen ^^'
23.05.2021, 16:10
Liferipper
wav-Dateien wirst du nicht kleiner bekommen, da wav ein unkomprimiertes Format ist. Wenn du kleinere Dateien willst, wirst du sie in ein anderes Format konvertieren müssen. Welches hängt davon ab, welchen Maker du benutzt. Beim legalen RM2k3 dscheint nur mp3 in Frage zu kommen.
23.05.2021, 16:21
Ich bin viele
Schade, mp3s kann ich nicht als SEs nutzen. Danke trotzdem!
23.05.2021, 16:34
IndependentArt
Ich kenne mich mit den technischen Details nicht so aus, aber ich bekomme .wav auf jeden Fall kleiner. In FormatFactory kannst du 3 Qualitätsstufen auswählen, vielleicht reicht ja auch "mittel". Du kannst allerdings auch mal versuchen von dem, was du aktuell hast, in "hohe" Qualität zu konvertieren, je nach dem wo deine Quelldatei herkommt, könnte sie dadurch auch schon ein bisschen kleiner werden.
Mich würde noch interessieren: Wie lang sind denn die Sounds ...? Ein loop von mehr als 2-3 Minuten ist idR unnötig.
23.05.2021, 16:38
Ich bin viele
Ich hab zum Glück in diesem Fall einen anderen Loop gefunden, der wesentlich kleiner ist. Diese Sounddatei war ganze 7 Minuten lang, da ich aber B-Format wavs mit meinem wav Cutter nicht öffnen kann, konnte ich auch nichts schneiden ;D
Ich bin kompletter Laie was Sounddateien angeht, also werde ich mir die FormatFactory vorsichtshalber mal holen, danke dir IndependentArt!!
23.05.2021, 17:59
G-Brothers
Ich weiss zwar nicht, was dein Go-to Soundprogramm ist, aber ich nutze für sowas Audacity. Hab nur leider keine Ahnung, ob man diesen B-Format darin öffnen kann. ^^"
Aber damit kann man auch bei .wav die "Hz" runterdrosseln und mit vielen Stufen zwischen Speicher und Qualität abwägen. https://i.imgur.com/2xwSKEv.png
23.05.2021, 19:05
Ich bin viele
Danke vielmals G-Brothers!
Damit konnte ich die Datei bearbeiten, und bin auf schlappe 33 MB heruntergekommen (vorher 441 MB!), ohne großen Verlust, zumindest für ein Hobby 2k3 Projekt ;D
23.05.2021, 20:41
Cherry
Hz drosseln ist aber eine schlechte Idee weil das hört sich furchtbar an sobald es nicht mehr 44.1kHz ist, zumindest für junge Menschen die hohe Frequenzen noch gut hören. Qualität bei sowas wie MP3 ist was anderes, das wirkt sich auf sowas wie Detailgetreuheit aus und weniger auf die Frequenzbandbreite.
23.05.2021, 22:25
G-Brothers
Furchtbar ist etwas übertrieben, finde ich. Meistens merkt man erst ab unter 16kHz einen deutlichen Qualitätsverlust. Und in den meisten Fällen sind Ambientsounds eh etwas leiser, während Musik nebenher tüdelt.
Kann aber sein, dass ich plötzlich eine schockierende Erkenntnis gewinne, wenn ich irgendwann mal eine Soundkarte habe. (*_*)
Zitat:
Zitat von Ich bin viele
bin auf schlappe 33 MB heruntergekommen (vorher 441 MB!)
Finde ich ehrlichgesagt immer noch ziemlich heavy. Wie lange ist die Soundspur denn? :O
24.05.2021, 02:02
Ich bin viele
7 Minuten! Ich hab ein geeigeteres Ambientloop gefunden, daher hab ich diese Datei nicht geschnitten. Aber ja, die Sounds von Sonniss sind allesamt ziemlich groß, dafür aber qualitativ extrem hochwertig.
24.05.2021, 09:47
IndependentArt
Welcher loop braucht denn 7 Minuten, um seine Wirkung zu entfalten? :rolleyes: