Err, you may be aliasing, but that doesn't make this script compatible since you aren't calling them.
For instance:
alias wdp_wndmsg_update_gold_window update_gold_window
def update_gold_window
end
The fact that it is aliased is kind of pointless unless it is used. In that case, the gold window won't even update if they turned the NO_GOLD constant to false. Which is probably fine since there is no real point to updating the gold window, but it certainly wouldn't be compatible with any scripts that did use that method for something.
More crucially, this:
alias wdp_wndmsg_update_message update_message
def update_message
loop do
c = @text.slice!(/./m) # Get next text character
case c
when nil # There is no text that must be drawn
finish_message # Finish update
break
when "\x00" # New line
new_line
if @line_count >= MAX_LINE # If line count is maximum
unless @text.empty? # If there is more
self.pause = true # Insert number input
break
end
end
when "\x01" # \C[n] (text character color change)
@text.sub!(/\[([0-9]+)\]/, "")
contents.font.color = text_color($1.to_i)
next
when "\x02" # \G (gold display)
nil # See what I did here? Nothing happens.
when "\x03" # \. (wait 1/4 second)
@wait_count = 15
break
when "\x04" # \| (wait 1 second)
@wait_count = 60
break
when "\x05" # \! (Wait for input)
self.pause = true
break
when "\x06" # \> (Fast display ON)
@line_show_fast = true
when "\x07" # \< (Fast display OFF)
@line_show_fast = false
when "\x08" # \^ (No wait for input)
@pause_skip = true
else # Normal text character
contents.draw_text(@contents_x, @contents_y, 40, WLH, c)
c_width = contents.text_size(c).width
@contents_x += c_width
end
break unless @show_fast or @line_show_fast
end
end
makes the script incompatible with practically every message system. In order for aliasing to be an effective compatibility measure, you actually have to call the alias. Now, it's not totally your fault, as that method is practically impossible to alias in a general way, but you could have designed the script differently so as to not need to alias that method - for instance - by just making the gold window invisible instead of deleting it all together, or changing gold window so that it refers to a dummy class that isn't a real window but has all the same methods.
Also, for methods inside the same class, you don't need to limit it to one method and you also don't need to refer again to its super class. Instead of:
class Window_Message < Window_Selectable
def method_1
end
end
class Window_Message < Window_Selectable
def method_2
end
end
you can do:
class Window_Message
def method_1
end
def method_2
end
end
That's not a big deal though. But it's questionable why you would take away the \G feature. It is a feature that can only be used intentionally by the user of the script - if he didn't want it to show, he wouldn't use. If he is using it, then he wants it to show, and so preventing its use merely removes functionality and customizability from this script.
Also, a better design for this script as it currently stands would probably be to simply modify the Window_Gold class and make it so that it is
always invisible. That way you won't need to touch any scenes. If you did want to make it so that it was still possible to use \G, you'd need to do a little extra work.
In any case, I'm glad that you've started to play around with scripting; you're doing a good job for starting out.