Wie mach ich ein Picture von der Messagebox, das genau die gleiche Transparenz hat wie die Messagebox im rpg Maker? Und wie füge ich meine Schriftart darauf ein? Ich will ein Auswahlmenü darauf erstellen.
Euer Ken der Kot
Geändert von Ken der Kot (02.03.2018 um 14:58 Uhr)
Ein wenig Geduld schadet natürlich nicht. Dein Thema steht keine 24 Stunden
Wovon genau willst du denn ein Picture machen? Von der Messagebox selbst?
Wenn ich das richtig verstehe willst du ein komplettes Menü über Pictures erstellen. D.h. du willst diese Messagebox nicht in der Originalgröße haben, sondern in verschiedenen Größen?
Heute Abend nach der Bundesliga-Zusammenfassung könnte ich dir die Bilder kurz generieren, indem ich die per Script als Windows im Maker erzeuge.
Sag mal, wie genau das aussehen soll.
Ja, Geduld ist leider gar nicht meine Stärke, ich hab immer übelst Panik, daß am Ende keiner antwortet oder das Topic einfach untergeht.
Ich will ein Skillmenü machen. Das funktioniert nicht über die normalen Skills am Maker, sondern nur über Variablen. Ich brauch halt 4 Felder, in die ich einen Text reinschreiben kann (wie der Skill heißt) und ein weiteres Feld darüber, wo ich "Skillpunkte" reinschreiben kann. Daneben will ich immer Variablen für die Kosten anzeigen. Dann wird man gefragt, ob man den Skill aufstufen will und wenn ja, erhöhe ich die entsprechende Variable und danach auch die Variable für die Kosten der nächsthöheren Aufstufung.
Ich zeig dir mal anhand von einem (zugegeben sehr stümperhaften -.-) Paintbild, was das genau werden soll.
Du kannst da wenn du willst auch "Skillname 1", "Skillname 2" etc. reinschreiben, sodass ich das später editieren kann.
Ich danke dir für deine Hilfe. Hammer Typ!
EDIT: Wenn ich Icons vor den Skillnamen anzeigen könnte, wäre das natürlich das i-Tüpfelchen!!!
Bitte beachten, Linkey, ich verwende auch schon dieses Script von dir, das ich hier im Forum fand.
Geändert von Ken der Kot (03.03.2018 um 14:25 Uhr)
Aber ich Idiot hab leider was vergessen -.- Es soll natürlich auch die Stufe von jedem Skill dabeistehen. Also zB "Skillname 1 Stufe 0" und wenn er aufgewertet wird soll er heißen "Skillname 1 Stufe 1". Die Stufe wäre dann für jeden Skill also auch nochmal eine Variable, die sich aktualisieren muss.
Würdest du das noch mit einbauen? Sorry, ich hätte da eigentlich vorher dran denken müssen...
Alternativ kannst du es auch so machen (sofern das einfacher zu skripten wäre) dass sich das Icon des jeweiligen Skills aktualisiert, wenn die Stufe eines Skills ansteigt. Dann mach ich verschiedene Icons, wo ich die Zahl reinschreibe von der Stufe, die der Skill grad hat.
Aber ansonsten bin ich begeistert. Es tut genau das, was es soll! Großartig!
Geändert von Ken der Kot (04.03.2018 um 15:39 Uhr)
## Skillmenu requested by user
## Author: D.T. Linkey
## Date: 03.03.2018
module LDT_SKILL_MENU
#Confirmation texts
CONFIRM_TITLE = " aufwerten?"
CONFIRM_TRUE = "Ja"
CONFIRM_FALSE = "Nein"
#Headline/Title
SKILL_TITLE = "Skillpunkte insg."
#skill names ( array can be used to display different Names per Level)
SKILL_NAMES = ["Skillname1", #skill 1
"Skillname2", #skill 2
["Skillname3 St0","Skillname3 St1","Skillname3 MAX"],#skill 3
"Skillname4"] #skill 4
#skill icon ids ( array can be used to display different Icons per Level)
ICON_IDS = [4, #skill 1
[8,10,11,12], #skill 2
9, #skill 3
26] #skill 4
#skill costs (-1 = skill can't be upgraded anymore)
SKILL_COSTS = [[3,7,11,24,49,-1],
[3,15,33,-1],
[4,60,-1],
[7,23,59,-1]]
#variable for each skill (e.g. 1 = $game_variables[1])
SKILL_VARS = [1,2,3,4]
#variable for each skillcosts (e.g. 1 = $game_variables[1])
COST_VARS = [5,6,7,8]
#variable for total skill points (e.g. 1 = $game_variables[1])
SKILL_TOTAL_POINT_VAR = 9
#Symbol displayed if max Level is reached
MAX_LEVEL_SIGN = "-"
#Graphics
#Start position vertical (0 = top, 480 = botton)
G_START_Y = 0
#start position horizontal (0 = left, 640 = right)
G_START_X = 0
#Width of the first Window
G_WIDTH_1 = 280
#Width of the second Window
G_WIDTH_2 = 240
#Confirmation window alignment (1 = horiz., 2= vert.)
G_CONFIRM_ALIGN = 2
end
class LDT_Skill_Scene < Scene_Base
def start
super
create_title_window
create_skill_window
create_confirmation_windows
create_background
end
def create_title_window()
@title_window = LDT_Skill_Window_Title.new(LDT_SKILL_MENU::G_START_X,LDT_SKILL_MENU::G_START_Y,1,LDT_SKILL_MENU::G_WIDTH_1)
@title_window.set_text(LDT_SKILL_MENU::SKILL_TITLE)
end
def create_skill_window()
ty = LDT_SKILL_MENU::G_START_Y + @title_window.height
th = LDT_SKILL_MENU::SKILL_NAMES.size * 24 + 32
@skill_window = LDT_Skill_Window.new(LDT_SKILL_MENU::G_START_X,ty,LDT_SKILL_MENU::G_WIDTH_1,th)
@skill_window.viewport = @viewport
@skill_window.set_handler(:ok, method(:on_menu_ok))
@skill_window.set_handler(:cancel, method(:return_scene))
@skill_window.activate
@skill_window.select(0)
@skill_window.show
end
def create_background
@background_sprite = Sprite.new
@background_sprite.bitmap = SceneManager.background_bitmap
@background_sprite.color.set(16, 16, 16, 128)
end
def create_confirmation_windows()
if(LDT_SKILL_MENU::G_CONFIRM_ALIGN == 1)
tx = LDT_SKILL_MENU::G_START_X + LDT_SKILL_MENU::G_WIDTH_1
ty = LDT_SKILL_MENU::G_START_Y
else
tx = LDT_SKILL_MENU::G_START_X
ty = LDT_SKILL_MENU::G_START_Y + @title_window.height + @skill_window.height
end
@confirm_title_window = LDT_Confirm_Window_Title.new(tx,ty,1,LDT_SKILL_MENU::G_WIDTH_2)
@confirm_title_window.set_text("")
@confirm_title_window.hide
th = 2 * 24 + 32
ty = ty + @confirm_title_window.height
@confirm_window = LDT_Skill_Window_Confirmation.new(tx,ty,LDT_SKILL_MENU::G_WIDTH_2,th)
@confirm_window.viewport = @viewport
@confirm_window.set_handler(:ok, method(:on_conf_ok))
@confirm_window.set_handler(:cancel, method(:on_conf_cancel))
@confirm_window.hide
end
def on_menu_ok
ti = @skill_window.index
if(@skill_window.current_item_enabled?)
ttext = get_skill_name(ti) + LDT_SKILL_MENU::CONFIRM_TITLE
@confirm_title_window.set_text(ttext)
@confirm_title_window.show
@confirm_window.activate
@confirm_window.select(0)
@confirm_window.show
else
@skill_window.activate
end
end
def on_conf_ok
if(@confirm_window.index >= 1)
on_conf_cancel
else
ti = @skill_window.index
$game_variables[LDT_SKILL_MENU::SKILL_VARS[ti]] += 1
$game_variables[LDT_SKILL_MENU::SKILL_TOTAL_POINT_VAR] -= $game_variables[LDT_SKILL_MENU::COST_VARS[ti]]
refresh_windows
on_conf_cancel
end
end
def refresh_windows
@skill_window.refresh
@title_window.refresh
end
def on_conf_cancel
@confirm_window.deactivate
@confirm_window.hide
@confirm_title_window.hide
@skill_window.activate
end
def get_skill_name(index)
tskill = LDT_SKILL_MENU::SKILL_NAMES[index]
if(tskill[index].is_a?(Array))
return tskill[index][$game_variables[LDT_SKILL_MENU::SKILL_VARS[index]]]
else
return tskill[index]
end
end
end
class LDT_Skill_Window < Window_Selectable
def initialize(x, y, width, height)
super(x,y,width,height)
@skills = LDT_SKILL_MENU::SKILL_NAMES
refresh
end
def item_max
@skills ? @skills.size : 1
end
def item
@skills && index >= 0 ? @skills[index] : nil
end
def refresh
set_costs()
create_contents
draw_all_items
end
def draw_item(index)
rect = item_rect(index)
rect.width -= 4
if(current_item_enabled?(index))
contents.font.color.alpha = 255
else
contents.font.color.alpha = translucent_alpha
end
draw_icon(get_icon_num(index), rect.x, rect.y, current_item_enabled?(index))
draw_text(rect.x + 26, rect.y, rect.width - 26, rect.height, get_skill_name(index))#, rect.x, rect.y)
draw_text(rect,get_costs(index),2)
end
def get_icon_num(index)
ticon = LDT_SKILL_MENU::ICON_IDS[index]
if(ticon.is_a?(Array))
return ticon[$game_variables[LDT_SKILL_MENU::SKILL_VARS[index]]]
else
return ticon
end
end
def get_skill_name(index)
if(@skills[index].is_a?(Array))
return @skills[index][$game_variables[LDT_SKILL_MENU::SKILL_VARS[index]]]
else
return @skills[index]
end
end
def set_costs()
LDT_SKILL_MENU::COST_VARS.each_with_index do |tcv,ti|
tskill = $game_variables[LDT_SKILL_MENU::SKILL_VARS[ti]]
$game_variables[tcv] = LDT_SKILL_MENU::SKILL_COSTS[ti][tskill]
end
end
def current_item_enabled?(tindex = index)
return false if(tindex < 0)
tc = get_costs(tindex)
return false if(tc == LDT_SKILL_MENU::MAX_LEVEL_SIGN)
return ($game_variables[LDT_SKILL_MENU::SKILL_TOTAL_POINT_VAR] >= tc)
end
def get_costs(index)
tcosts = $game_variables[LDT_SKILL_MENU::COST_VARS[index]]
return tcosts >= 0 ? tcosts : LDT_SKILL_MENU::MAX_LEVEL_SIGN
end
end
class LDT_Skill_Window_Confirmation < Window_Selectable
def initialize(x, y, width, height)
super(x,y,width,height)
@items = [LDT_SKILL_MENU::CONFIRM_TRUE,LDT_SKILL_MENU::CONFIRM_FALSE]
refresh
end
def item_max
@items ? @items.size : 1
end
def item
@items && index >= 0 ? @items[index] : nil
end
def refresh
create_contents
draw_all_items
end
def draw_item(index)
rect = item_rect(index)
rect.width -= 4
draw_text(rect,get_item_name(index))
end
def get_item_name(index)
return @items[index]
end
def get_costs(index)
return $game_variables[LDT_SKILL_MENU::COST_VARS[index]]
end
end
class LDT_Skill_Window_Title < Window_Base
def initialize(x,y,line_number = 1, tw = nil)
tw = (tw ? tw : Graphics.width)
super(x, y, tw, fitting_height(line_number))
end
def refresh
contents.clear
draw_text_ex(4, 0, @text)
draw_text(4, 0, width - 32, line_height, get_second_text(), 2)
end
def get_second_text()
return $game_variables[LDT_SKILL_MENU::SKILL_TOTAL_POINT_VAR]
end
def set_text(text)
if text != @text
@text = text
refresh
end
end
end
class LDT_Confirm_Window_Title < Window_Base
def initialize(x,y,line_number = 1, tw = nil)
tw = (tw ? tw : Graphics.width)
super(x, y, tw, fitting_height(line_number))
@text2 = ""
end
def refresh
contents.clear
draw_text_ex(4, 0, @text)
end
def set_text(text)
if text != @text
@text = text
refresh
end
end
end
Here you are. Hatte auch vorher schon überlegt, das einfach mit einzubauen - war aber auf dem Sprung und hab es deshalb erstmal nicht gemacht
Habe dir beides ermöglicht. Du kannst sowohl beim Icon, als auch bei den Skillnamen ein Array eintragen.
Gibst du "Skillname 2" einfach nur ein, heißt der Skill immer "Skillname 2" - unabhängig vom Level. Willst du unterscheidungen im Namen haben, gibst du folgendes ein:
["Skillname 2","Skillname 2 Stufe X", ...]
Falls du also Arrays verwendest, musst du nur schauen, dass die Anzahl der Skillnamen/Icons gleich der Anzahl der Kosten ist. (Kosten [5,8,9,-1] bedeutet z.B., der Skill hat Stufe 0, Stufe 1, Stufe 2 und Stufe 3. Namen brauchst du dann also auch 4 Icons und/oder Namen.
Danke für deine Mühe. Kannst du mir das mit den Arrays erklären? Denn wenn ich den Skill 3 aufwerten will, kommt die Frage "Skillname 3 MAX aufwerten?" Es soll ja einfach nur kommen "Skillname3 aufwerten?" oder "Skillname3 Stufe 0 aufwerten?"
Bei den anderen Skills kommt dann als Frage "k aufwerten?", "S aufwerten?" und "l aufwerten?". Das verstehe ich nicht und die Stelle im Skript, wo das definiert ist, finde ich leider nicht. Was mich wundert, denn eigentlich ist das Skript sehr übersichtlich, aber offenbar übersehe ich es dennoch?
Vielen Dank, Linkey!!! Falls noch was wäre, ich was nicht verstehe oder sonstwas nicht funktioniert, meld ich mich nochmal. Sieht aktuell so aus, als funktioniert alles! Danke für die Zeit, die du dir für mich genommen hast. Werd das hier im Laufe des Abends und Morgen mal alles soweit auf meine Bedürfnisse anpassen und dann einen Screen zeigen, damit man das alles mal in Action sieht Danke nochmal, cooler Typ echt!
Also, wie versprochen ein Screen vom Ergebnis, das ich dank Linkey realisieren konnte. Sagt auch gerne was zu den Icons! Ich hab noch nie selber Icons gemacht, daher bin ich auch hier gierig auf Feedback der konstruktivsten Sorte.
Freut mich, dass ich dir helfen konnte. Sieht gut aus. Kann an den Icons nichts bemängeln, bin in Fragen bezüglich der Grafik aber auch keine wirklich gute Anlaufstelle :P
Wenn es kleine Dinge sind, helfe ich gerne wieder - das hier hatte doch ein paar Stunden gedauert und passt momentan nicht so gut in meinen Zeitplan (beim XP kenn ich die meisten Basic-Klassen, beim ACE muss ich immer wieder schauen, wie genau das Handling der Windows funktioniert )