• Anmelden

1

Sonntag, 19. Oktober 2008, 15:27

Skript starten

Hallo susammen.

Ich möchte dass dieses Skript hier erst gestartet wird, wenn ich den befehl abgebe. Mit diesem Skript kann man (ich weiss jetzt nicht mehr mit welcher Taste das war, ich glaube C) ein Menü öffnen, um speichern zu können (natürlich verbunden mit einem anderen Skript fürs Startmenü).
Wie kann ich also machen, dass der Spieler die Tsate C nicht drücken kann bzw drücken kann aber nichts passiert, hingegen wenn er an eine Statue (ein Event) läuft und da Z drückt (da Z in meinem Spiel ein Schwertschlag ist), dass sich das Menü öffnet?

Es handelt sich um dieses Skript:
Spoiler

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
QUEST_ESC = ["Audio/SE/MainMenuSelect", 85, 100]
QUEST_CONTINUE = ["Audio/SE/MainMenuSelect", 85, 100]
QUEST_SAVEDISABLED = ["Audio/SE/_error", 85, 100]
QUEST_SAVECLICK = ["Audio/SE/MainMenuSelect", 85, 100]
QUEST_SAVE = ["Audio/SE/MainMenuSelect", 100, 100]
QUEST_TITLERETURN = ["Audio/SE/MainMenuSelect", 85, 100]
 
class Scene_Map
def main
@spriteset = Spriteset_Map.new
@message_window = Window_Message.new
@quest_window = Window_Command.new(160, ["Weiter", "Spiel speichern", "Zum Menue"])
@quest_window.disable_item(1) if $game_system.save_disabled
@quest_window.z = 9998
@quest_window.x = 320-(@quest_window.width/2)
@quest_window.y = 480-@quest_window.height-10
@quest_window.visible = false
@quest_window.active = false
Graphics.transition
loop do
Graphics.update
Input.update
update_quest
if $scene != self
break
end
end
Graphics.freeze
@spriteset.dispose
@message_window.dispose
@quest_window.dispose
end
def update_quest
update if !@quest_window.visible and !@quest_window.active and @saved == nil
if @saved != nil
return unless Input.trigger?(Input::C)
@saved.dispose
@saved = nil
end
if $game_switches[36] == true and $game_switches[18] == false
if Input.trigger?(Input::L) and !@quest_window.visible and !@quest_window.active
$game_system.se_play($data_system.decision_se)
@quest_window.visible = true
@quest_window.active = true
end
end
@quest_window.update
if @quest_window.active
#if Input.trigger?(Input::B)
# Audio.se_play(QUEST_ESC[0], QUEST_ESC[1], QUEST_ESC[2])
# @quest_window.active = false
# @quest_window.visible = false
#end
if Input.trigger?(Input::C)
case @quest_window.index
when 0
Audio.se_play(QUEST_CONTINUE[0], QUEST_CONTINUE[1], QUEST_CONTINUE[2])
@quest_window.active = false
@quest_window.visible = false
when 1
if $game_system.save_disabled
Audio.se_play(QUEST_SAVEDISABLED[0], QUEST_SAVEDISABLED[1], QUEST_SAVEDISABLED[2])
return 
end
Audio.se_play(QUEST_SAVECLICK[0], QUEST_SAVECLICK[1], QUEST_SAVECLICK[2])
@quest_window.active = false
@quest_window.visible = false
save 
when 2
Audio.se_play(QUEST_TITLERETURN[0], QUEST_TITLERETURN[1], QUEST_TITLERETURN[2])
$scene = Scene_Title.new
end
end
end
def save
for i in 0..10
sleep(0.1)
end
Audio.se_play(QUEST_SAVE[0], QUEST_SAVE[1], QUEST_SAVE[2])
$game_system.newgame_switch = false
file = File.open($game_system.save_slot, "wb")
write_save_data(file)
file.close
@saved = Sprite.new
@saved.bitmap = RPG::Cache.picture("saved")
@saved.x = (640/2) - (@saved.bitmap.width / 2)
@saved.y = (480/2) - (@saved.bitmap.height / 2)
return
end
def write_save_data(file)
characters = []
for i in 0...$game_party.actors.size
actor = $game_party.actors[i]
characters.push([actor.character_name, actor.character_hue])
end
Marshal.dump(Time.new, file)
Marshal.dump(characters, file)
Marshal.dump(Graphics.frame_count, file)
$game_system.save_count += 1
$game_system.magic_number = $data_system.magic_number
Marshal.dump($game_system, file)
Marshal.dump($game_switches, file)
Marshal.dump($game_variables, file)
Marshal.dump($game_party, file)
Marshal.dump($game_self_switches, file)
Marshal.dump($game_screen, file)
Marshal.dump($game_actors, file)
Marshal.dump($game_troop, file)
Marshal.dump($game_map, file)
Marshal.dump($game_player, file)
end
end
end
zum Lesen den Text mit der Maus markieren

Benötigt ihr sonst noch was zu wissen, um mir helfen zu können?

Vielen Dank im Voraus.

Miikku

Ankömmling

Motto: Vielleicht sollte ich die Welt erobern... !?

  • Nachricht senden

2

Sonntag, 19. Oktober 2008, 19:18

Hi!
Das verstehe ich nicht...
das Script geht doch nur, wenn der Game-Switch Nr. 36 aktiviert ist, also kannst du z.B. einfach vor die Statue ein Event machen, welches den Switch 36 aktiviert, wenn man drauf ist, und sonst nicht. Oder hab' ich dich falsch verstanden?
Übrigens sollte man das mit dem Script wie folgt machen, damit das Forum nicht so vermüllt^^ (hab' da die Einrückungen ergänzt...):
Spoiler

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
QUEST_ESC = ["Audio/SE/MainMenuSelect", 85, 100]
QUEST_CONTINUE = ["Audio/SE/MainMenuSelect", 85, 100]
QUEST_SAVEDISABLED = ["Audio/SE/_error", 85, 100]
QUEST_SAVECLICK = ["Audio/SE/MainMenuSelect", 85, 100]
QUEST_SAVE = ["Audio/SE/MainMenuSelect", 100, 100]
QUEST_TITLERETURN = ["Audio/SE/MainMenuSelect", 85, 100]
 
class Scene_Map
  def main
    @spriteset = Spriteset_Map.new
    @message_window = Window_Message.new
    @quest_window = Window_Command.new(160, ["Weiter", "Spiel speichern",
                                              "Zum Menue"])
    @quest_window.disable_item(1) if $game_system.save_disabled
    @quest_window.z = 9998
    @quest_window.x = 320-(@quest_window.width/2)
    @quest_window.y = 480-@quest_window.height-10
    @quest_window.visible = false
    @quest_window.active = false
    Graphics.transition
    loop do
      Graphics.update
      Input.update
      update_quest
      if $scene != self
        break
      end
    end
    Graphics.freeze
    @spriteset.dispose
    @message_window.dispose
    @quest_window.dispose
  end
  def update_quest
    update if !@quest_window.visible and !@quest_window.active and @saved == nil
    if @saved != nil
      return unless Input.trigger?(Input::C)
      @saved.dispose
      @saved = nil
    end
    if $game_switches[36] == true and $game_switches[18] == false
      if Input.trigger?(Input::L) and !@quest_window.visible and
                                      !@quest_window.active
        $game_system.se_play($data_system.decision_se)
        @quest_window.visible = true
        @quest_window.active = true
      end
    end
    @quest_window.update
    if @quest_window.active
      if Input.trigger?(Input::B)
         Audio.se_play(QUEST_ESC[0], QUEST_ESC[1], QUEST_ESC[2])
         @quest_window.active = false
         @quest_window.visible = false
      end
      if Input.trigger?(Input::C)
        case @quest_window.index
        when 0
          Audio.se_play(QUEST_CONTINUE[0], QUEST_CONTINUE[1], QUEST_CONTINUE[2])
          @quest_window.active = false
          @quest_window.visible = false
        when 1
          if $game_system.save_disabled
            Audio.se_play(QUEST_SAVEDISABLED[0], QUEST_SAVEDISABLED[1],
                                  QUEST_SAVEDISABLED[2])
            return 
          end
          Audio.se_play(QUEST_SAVECLICK[0], QUEST_SAVECLICK[1],
                                  QUEST_SAVECLICK[2])
          @quest_window.active = false
          @quest_window.visible = false
          save 
        when 2
          Audio.se_play(QUEST_TITLERETURN[0], QUEST_TITLERETURN[1],
                                  QUEST_TITLERETURN[2])
          $scene = Scene_Title.new
        end
      end
    end
  def save
    for i in 0..10
      sleep(0.1)
    end
    Audio.se_play(QUEST_SAVE[0], QUEST_SAVE[1], QUEST_SAVE[2])
    $game_system.newgame_switch = false
    file = File.open($game_system.save_slot, "wb")
    write_save_data(file)
    file.close
    @saved = Sprite.new
    @saved.bitmap = RPG::Cache.picture("saved")
    @saved.x = (640/2) - (@saved.bitmap.width / 2)
    @saved.y = (480/2) - (@saved.bitmap.height / 2)
    return
  end
  def write_save_data(file)
    characters = []
      for i in 0...$game_party.actors.size
        actor = $game_party.actors[i]
        characters.push([actor.character_name, actor.character_hue])
      end
      Marshal.dump(Time.new, file)
      Marshal.dump(characters, file)
      Marshal.dump(Graphics.frame_count, file)
      $game_system.save_count += 1
      $game_system.magic_number = $data_system.magic_number
      Marshal.dump($game_system, file)
      Marshal.dump($game_switches, file)
      Marshal.dump($game_variables, file)
      Marshal.dump($game_party, file)
      Marshal.dump($game_self_switches, file)
      Marshal.dump($game_screen, file)
      Marshal.dump($game_actors, file)
      Marshal.dump($game_troop, file)
      Marshal.dump($game_map, file)
      Marshal.dump($game_player, file)
    end
  end
end
zum Lesen den Text mit der Maus markieren

3

Sonntag, 19. Oktober 2008, 20:31

Das ist mir klar. Aber wenn dieser Switch jetzt ein ist, muss man erst noch den Knopf (achja es ist der Knopf Q) drücken, damit sich das Fenster öffnet.

Social Bookmarks