Ergebnis 1 bis 9 von 9

Thema: Rpg-Maker XP - Namenseingabe

  1. #1

    Rpg-Maker XP - Name-Input fertig

    Soooo.
    Da ich schon sehr lange ein Namenseingabescript
    gesucht aber nie gefunden habe, außer vielleicht
    irgendwelche abgespeckten Versionen davon,
    habe ich mir das Original vorgenommen und
    umprogrammiert. Ersetzt im Maker-XP einfach das
    Script "Window_NameInput" durch folgenden
    code:


    Zitat Zitat
    #=====================================
    # ■ Window_NameInput
    #-------------------------------------------------------
    # ©2005 by The Black Mole
    #===========================================

    class Window_NameInput < Window_Base
    CHARACTER_TABLE =
    [
    "A","B","C","D","E",
    "F","G","H","I","J",
    "K","L","M","N","O",
    "P","Q","R","S","T",
    "U","V","W","X","Y",
    "Z","1","2","3","4",
    "5","6","7","8","9",
    "0", "Ä" ,"Ö", "Ü" ,"ß",
    " "," "," "," "," ",
    "a", "b" ,"c", "d" ,"e",
    "f","g","h","i","j",
    "k","l","m","n","o",
    "p","q","r","s","t",
    "u","v","w","x","y",
    "z",":",";",".",",",
    "-","#","+","?","!",
    "ä","ö","ü","=","&",
    " "," ", " " , " " , " " ,
    "©","®","(",")","™",
    "²","³","§","$","%",
    "{","}","[","]","°",
    "*","~","µ","€","@",
    "»"," "," "," "," ",
    " "," "," "," "," ",
    " "," "," "," "," ",
    " ", " " ," ", " " ," ",
    " "," "," "," "," ",
    " ", " " ," ", " " ," ",
    " "," "," "," "," ",
    " "," "," "," "," ",
    " "," "," "," "," ",
    " "," "," "," "," ",
    " "," "," "," "," ",
    " "," "," "," "," ",
    " "," "," "," "," ",
    " "," "," ", " " , " " ,
    ]
    #--------------------------------------------------------------------------
    # ● オブジェクト初期化
    #--------------------------------------------------------------------------
    def initialize
    super(0, 128, 640, 352)
    self.contents = Bitmap.new(width - 32, height - 32)
    self.contents.font.name = $fontface
    self.contents.font.size = $fontsize
    @index = 0
    refresh
    update_cursor_rect
    end
    #--------------------------------------------------------------------------
    # ● 文字の取得
    #--------------------------------------------------------------------------
    def character
    return CHARACTER_TABLE[@index]
    end
    #--------------------------------------------------------------------------
    # ● リフレッシュ
    #--------------------------------------------------------------------------
    def refresh
    self.contents.clear
    for i in 0..179
    x = 4 + i / 5 / 9 * 152 + i % 5 * 28
    y = i / 5 % 9 * 32
    self.contents.draw_text(x, y, 28, 32, CHARACTER_TABLE[i], 1)
    end
    self.contents.draw_text(544, 9 * 32, 64, 32, "Okay", 1)
    end
    #--------------------------------------------------------------------------
    # ● カーソルの矩形更新
    #--------------------------------------------------------------------------
    def update_cursor_rect
    # カーソル位置が [決定] の場合
    if @index >= 180
    self.cursor_rect.set(544, 9 * 32, 64, 32)
    # カーソル位置が [決定] 以外の場合
    else
    x = 4 + @index / 5 / 9 * 152 + @index % 5 * 28
    y = @index / 5 % 9 * 32
    self.cursor_rect.set(x, y, 28, 32)
    end
    end
    #--------------------------------------------------------------------------
    # ● フレーム更新
    #--------------------------------------------------------------------------
    def update
    super
    # カーソル位置が [決定] の場合
    if @index >= 180
    # カーソル下
    if Input.trigger?(Input::DOWN)
    $game_system.se_play($data_system.cursor_se)
    @index -= 180
    end
    # カーソル上
    if Input.repeat?(Input::UP)
    $game_system.se_play($data_system.cursor_se)
    @index -= 180 - 40
    end
    # カーソル位置が [決定] 以外の場合
    else
    # 方向ボタンの右が押された場合
    if Input.repeat?(Input::RIGHT)
    # 押下状態がリピートでない場合か、
    # カーソル位置が右端ではない場合
    if Input.trigger?(Input::RIGHT) or
    @index / 45 < 3 or @index % 5 < 4
    # カーソルを右に移動
    $game_system.se_play($data_system.cursor_se)
    if @index % 5 < 4
    @index += 1
    else
    @index += 45 - 4
    end
    if @index >= 180
    @index -= 180
    end
    end
    end
    # 方向ボタンの左が押された場合
    if Input.repeat?(Input::LEFT)
    # 押下状態がリピートでない場合か、
    # カーソル位置が左端ではない場合
    if Input.trigger?(Input::LEFT) or
    @index / 45 > 0 or @index % 5 > 0
    # カーソルを左に移動
    $game_system.se_play($data_system.cursor_se)
    if @index % 5 > 0
    @index -= 1
    else
    @index -= 45 - 4
    end
    if @index < 0
    @index += 180
    end
    end
    end
    # 方向ボタンの下が押された場合
    if Input.repeat?(Input::DOWN)
    # カーソルを下に移動
    $game_system.se_play($data_system.cursor_se)
    if @index % 45 < 40
    @index += 5
    else
    @index += 180 - 40
    end
    end
    # 方向ボタンの上が押された場合
    if Input.repeat?(Input::UP)
    # 押下状態がリピートでない場合か、
    # カーソル位置が上端ではない場合
    if Input.trigger?(Input::UP) or @index % 45 >= 5
    # カーソルを上に移動
    $game_system.se_play($data_system.cursor_se)
    if @index % 45 >= 5
    @index -= 5
    else
    @index += 180
    end
    end
    end
    # L ボタンか R ボタンが押された場合
    if Input.repeat?(Input::L) or Input.repeat?(Input::R)
    # ひらがな / カタカナ 移動
    $game_system.se_play($data_system.cursor_se)
    if @index / 45 < 2
    @index += 90
    else
    @index -= 90
    end
    end
    end
    update_cursor_rect
    end
    end
    Nun dürfte auch bei euch die Namenseingabe
    voll Funktionsfähig sein. Have Fun cya

    Geändert von The Black Mole (12.10.2005 um 21:10 Uhr)

  2. #2
    also gefallen tut mir das schon aber gehört das nicht in das Entwickler-Forum

    ~Ichthys~

  3. #3
    Wieso verwendest du nicht direkt den ASCII-Code? Unterstützt Ruby doch sicher auch (Integers haben die methode chr(), das weiß ich. Bei den Strings musst du notfalls über each_byte() gehen, gibt aber wahrscheinlich auch noch 'ne andere Lösung), außerdem hast du damit wahrscheinlich 'ne höhere Kompatibilität zu anderen Scripten als wenn du 'ne eigene Zeichentabelle benutzt.

  4. #4
    Wieso unbedingt einen ACII-Code wenns auch so geht?
    Also bei mir und einigen kollegen klappt es wunderbar
    dieses script. Das einzigste was man braucht ist evtl die
    neuere RGSS100J.dll Die kriegt man aber glaub ich auf
    www.rpgxp.de weiß ich aber nich genau.

  5. #5
    hm, bei mir kommt da ein feher, trotz der neuen .dll

    Code:
    ????? 'Window_NameInput' ? 117 ??? NameError ????????
    
    undefined local variable or method '_se' for #<Window_NameInput:0x464a950>

  6. #6
    bei mir übrigens auch. wo muss man denn die .dll datei reinkopieren? ich hab se da, wo die "RPG Maker XP.exe" und die andere .dll datei ist. ist das das falsche verzeichnis vielleicht?

  7. #7
    ...warum benutzt du nicht einfach die legale englische Version? Dann wäre das Skript unnötig...

    Zitat Zitat
    Wieso verwendest du nicht direkt den ASCII-Code? Unterstützt Ruby doch sicher auch
    Nunja, es gibt auch Zeichen die nicht im ASCII Code enthalten sind, unter anderem die japanischen. Das Skript war im Orginal auf japanisch, alles was er gemacht hat ist die ursprünglichen Zeichen durch etwas lesbarere zu ersetzen.

    Zitat Zitat
    hm, bei mir kommt da ein feher, trotz der neuen .dll
    Weil es auch nicht an der .dll liegt, ersetze einfach alle
    "$data_system.cursor _se"
    durch
    "$data_system.cursor_se"
    Ich hab zwar keinen blassen Schimmer wie das Leerzeichen darein gekommen ist, aber das steht in deiner Fehlermeldung.

  8. #8
    viell. versteh ich was falsch aber ich glaub ich hab ne easy lösung gefunden.


    1. Öffnet ein Event
    2. Geht in die 3te Registerkarte
    3. Das dritte in der der rechten Spalte von oben anklicken. Hat den Namen "Helden Namen eingeben"
    4. Fertig

  9. #9
    @Der Drake: danke, jetz funktionierts^^

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •