• Anmelden

1

Montag, 7. Juli 2008, 17:10

Spielerwechsel+Fähigkeiten

Hallöchen Community.
Ich hab diesmal eine Frage nach einem Teamwechsel/Fähigkeitenscript.
Dieses Script soll per Knopfdruck (z.B. mit [W]) ein kleines nebenmenü öffnen, womit man die Positionen der Spieler tauschen kann.

Das, was auf dem Bild zu sehen ist, mache ich per Commonevent. außerdem ist es nur ein Beispiel.
Bild

Mit dem Script sollte man die bisher verfügbaren Charaktere auswechseln können (also auf Position 1 veschieben können) und dabei die jeweils passenden Common Events auf True geschaltet werden, bzw. die nicht zum Spielerpassenden Comonevents auf False.
Die werden genutzt
Bild
Der ChrisX930 ist wieder zurück!]
Danke dir Kain^^



Kommt und spielt mit :D

2

Mittwoch, 9. Juli 2008, 21:02

Zitat

Mit dem Script sollte man die bisher verfügbaren Charaktere auswechseln können (also auf Position 1 veschieben können) und dabei die jeweils passenden Common Events auf True geschaltet werden, bzw. die nicht zum Spielerpassenden Comonevents auf False.
Die werden genutzt


Dazu wollte ich nochmal sagen, das man anstatt direkt auf die Commonevents zugreift, auf Switches, die einen Paralellen Prozess zu den Commonevents führen. (Switches, die dafür genutzt werden [193,194,195,196]
Der ChrisX930 ist wieder zurück!]
Danke dir Kain^^



Kommt und spielt mit :D

3

Mittwoch, 9. Juli 2008, 22:06

Also ich habe nicht vor dir das zu skripten, aber es sollte nicht so schwer sein. Deshalb wundert es mich, dass niemand antwortet (ich antworte nur damit du nicht denkst es wäre irgendwie unmöglich ^^).

Er will anscheinend, dass man die Reihenfolge der Party ändern kann (also wer ganz oben steht), und wer ganz oben steht gibt ja die Spielergrafik.
Und je nachdem, wer oben steht, soll ein Schalter aktiv sein... das ist wirklich nicht sehr schwer... $game_party.actors .
Aber, Chris, ich bin beschäftigt und habe keine Lust das zu machen. Und Menüarbeit ist eh nix für mich. Ich hoffe nur, dass du jetzt Hilfe bekommst xD

4

Mittwoch, 9. Juli 2008, 22:14

Hoffe ich auch.
Das, was ich vorhabe ist ja, das man die Positionen der Spieler tauschen kann.
Dann wird, je nach Spieler der auf der 1.Position dann steht, der jeweilige Schalter aktiviert.

Diese Switches sind die, die genutzt werden.
Char1=Switch193=CommonEvent 32
Char2=Switch194=CommonEvent 33
Char3=Switch195=CommonEvent 34
Char4=Switch196=CommonEvent 35

Und das, was die große Rolle spielt ist, das jeder Char seine Eigene Fähigkeit hat (CommonEvent) und eingestellt werden soll, wenn z.b.
Char3 oben ist, soll
switch195=CommonEvent 34
aktiv sein (true)
und die anderen drei inaktiv (false).

Und jeweilig welcher Char oben ist, soll ein anderer Schalter/CommonEvent aktiv sein bzw. inaktiv.
Der ChrisX930 ist wieder zurück!]
Danke dir Kain^^



Kommt und spielt mit :D

5

Donnerstag, 10. Juli 2008, 13:48

sry, ichmeinte mit aktiv= true
und mit inaktiv= false :hi:

Ich vergaß zu erwähnen.
Es wäre cool, wenn man das Script per Item oder im Menü einbauen könnte.
(nicht im Standardmenü, sondern das Chrono Trigger CMS mit Ringmenü von
# Raziel
# 2006-09-09
# Version 1.25l)
Der ChrisX930 ist wieder zurück!]
Danke dir Kain^^



Kommt und spielt mit :D

6

Freitag, 11. Juli 2008, 12:26

Hab mal ein Screen gemacht. So könnte es aussehen (wenn man auf Charakterwechsel klickt, startet das Script.
Bild :D :D :D :focus: :verliebt:
Der ChrisX930 ist wieder zurück!]
Danke dir Kain^^



Kommt und spielt mit :D

7

Freitag, 11. Juli 2008, 14:18

So hier mal was ganz fixes, sogar als Demo ;)
Kannst das Menü über S im Spiel aufrufen, hab dir aber überall makiert, wo was zu verändern ist,
sollte dennoch etwas unklar sein, frag einfach.
»Fail« hat folgende Datei angehängt:
  • Project3.exe (265,75 kB - 13 mal heruntergeladen - zuletzt: 7. November 2009, 09:07)

8

Freitag, 11. Juli 2008, 14:21

Du kannst es auch selber machen...
Wenn du dir vor Augen hältst, dass du die Position der Party ändern kannst, wenn du die Actors komplett entfernst und dann in der Richtigen Reihenfolge wieder einfügst, wenn du dir merkst, dass du per Conditional Branch fragen kannst, welche Actors in der Party sind, wenn du beim hinzufügen keinen Haken bei "initialize" machst, dann kannst du ein Common Event machen, dass aus schätzungsweise 100 Zeilen besteht, und dass dein Skript machen würde.

Dafür sorgen, dass per Skript ein Common Event ausgeführt wird, dass kann dir jeder machen ^^
Das würde ich sogar für dich tun (aber für den Rest hab ich keine Zeit [man wir sind doch so viele? Kann denn niemand mal kurz helfen?]).

Edit Oh hatte lang nichmehr aktualisiert xD
Nagut. Da haste deine Lösung.

9

Freitag, 11. Juli 2008, 14:36

zu HK:
Das Problem ist, wenn ich alle chars entferne, und dann in die richtige reinfolge einfüge, wird es ein zu großes Wirrwar. man Sollte dann auch jeden beliebigen Platz positionieren. DSoch wenn ich das mit Conditionalbranch mache, wird das eine unendlich lange reihe von einstellungen, die ich machen muss.

zu Xrazor:
Das Menü ist schonmalsehr gut^^
Kann man da auch einfügen, das Char1 z.b. Switchnummer 193 hat, Char2 hat Switchnummer 194 etc.?
-------------EDIT by ChrisX930-----------------------
Läuft bisher super^^ Ich schätze mal, das du dir damit einen Creditseintrag verdient^^
Der ChrisX930 ist wieder zurück!]
Danke dir Kain^^



Kommt und spielt mit :D

10

Freitag, 11. Juli 2008, 15:03

Oo? Wie meisnt du das?
Es ist eingebaut, dass wenn Char 2 Position 1 einnimmt Switch[194] aktiviert wird.

11

Freitag, 11. Juli 2008, 15:12

-------------EDIT by ChrisX930-----------------------
Läuft bisher super^^ Ich schätze mal, das du dir damit einen Creditseintrag verdient^^
Kann ich es uch machen, das ich es per Conditional Branch aufufe? bestimmt mit Script und dann
$scene = Ac.new

-------------noch ein EDIT by ChrisX930-----------------------

Fehler entdeckt-.- was mache ich, wenn ich erst 2 Chars im team habe, und unter denen tauschen möchte?
Der zeigt dann trotzallem die 4 Chars an, und wenn ich Char3 auf Position1 ache (obwohl nur Char 1 und 2 da sind) habe ich gleich alle 4 im team. :hi:
Der ChrisX930 ist wieder zurück!]
Danke dir Kain^^



Kommt und spielt mit :D

12

Freitag, 11. Juli 2008, 15:28

Dann verrate mir mal, wie das mit dne 4 Charakteren ist, bekommt man die erst nacheinander?
Kiregt man sie in der Reihenfolge 1,2,3,4?

13

Freitag, 11. Juli 2008, 15:29

Ich hab ja Char 1 & 2
Wenn ich jetzt 3 ODER 4 auf Platz 1 mache,
habe ich alle 4.
Ausserdem ist der 1. Fehler darin, das er alle 4 Charaktere anzeigt, obwohl ich nur 2 im team habe.
Der ChrisX930 ist wieder zurück!]
Danke dir Kain^^



Kommt und spielt mit :D

14

Freitag, 11. Juli 2008, 15:32

Das Problem ist, dass du nicth genug Informationen gibst, ich ging davon aus, dass man gleich alle 4 im Team hat,
naja anscheinend nicht, nun beantworte mir bitte diese eine Frage:
Kriegt man sie in der Reihenfolge 1,2,3,4?

15

Freitag, 11. Juli 2008, 15:33

jop, wenn du es im Spielverlauf meinst :naja:
Der ChrisX930 ist wieder zurück!]
Danke dir Kain^^



Kommt und spielt mit :D

16

Freitag, 11. Juli 2008, 15:53

Spoiler

Ruby 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
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
#==============================================================================
#              Billiger Charwechsel von Xrazor :D
#==============================================================================
#Hier kannst du die ID des Switches festlegen, der aktiviert werden muss, sobald
#man Charakter 3 und 4 in die Gruppe bekommt.
 
class Ac
  def main
    @chara3 = 5
    @chara4 = 6
    #Wird momentan mit S aufgerufen, kann über $scene = Ac.new auch anders aufgerufen werden
    #Hier kann man einfach die Namen ändern
    s1 = "Aluxes zum Anführer machen"
    s2 = "Basil zum Anführer machen"
    if $game_switches[@chara3] == true 
    s3 = "Cyrus zum Anführer machen"
    else
    s3 = "Nicht Belegt"
    end
    if $game_switches[@chara4] == true
    s4 = "Dorothy zur Anführerin machen"
    else
    s4 = "Nicht Belegt"
    end
 
    @command_window = Window_Command.new(320, [s1, s2, s3, s4])
    @command_window.opacity = 255
    @command_window.x = 200
    @command_window.y = 100
    @command_window.height = 160
 
    @window_zahl = Zahlen.new
    @window_zahl.x = 100
    @window_zahl.y = 100
    Graphics.transition
    #Hauptschleife
    loop do
      Graphics.update
      Input.update
      @window_zahl.refresh
      update
      if $scene != self
        break
      end
    end
 
    Graphics.freeze
    @command_window.dispose
     @window_zahl.dispose
end    
 
  def update
    @command_window.update
      if Input.trigger?(Input::C)
        for i in 1..$game_party.actors.size
        $game_party.remove_actor(i)
       end
       for i in 193..196
         $game_switches[i] = false
         end
        case @command_window.index
        when 0
        #Falls deine Charaktere nicht actor 1,2,3 und 4 sein sollten einfach
        #immer in die ensprechende Zahl umändern
        $game_party.add_actor(1)
        $game_party.add_actor(2)
        if $game_switches[@chara3] == true
        $game_party.add_actor(3)
        end
        if $game_switches[@chara4] == true
        $game_party.add_actor(4)
        end
        $game_switches[193] = true
        when 1
       $game_party.add_actor(2)
        $game_party.add_actor(1)
        if $game_switches[@chara3] == true
        $game_party.add_actor(3)
        end
        if $game_switches[@chara4] == true
        $game_party.add_actor(4)
        end 
        $game_switches[194] = true
        when 2
        if $game_switches[@chara3] == true
        $game_party.add_actor(3)
        end
        $game_party.add_actor(1)
        $game_party.add_actor(2)
        if $game_switches[@chara4] == true
        $game_party.add_actor(4)
        end 
        $game_switches[195] = true
        when 3
        if $game_switches[@chara4] == true
        $game_party.add_actor(4)
        end 
        $game_party.add_actor(1)
        if $game_switches[@chara3] == true
        $game_party.add_actor(3)
        end
        $game_party.add_actor(2)
        $game_switches[196] = true
 
            end
            $game_system.se_play($data_system.decision_se)
            $scene = Scene_Map.new
          end
 
 
          if Input.trigger?(Input::B)
        $scene = Scene_Map.new
      return
      end
    end
 
  end
 
  class Zahlen < Window_Base
    def initialize
    super(0, 0, 64, 160)
    self.contents = Bitmap.new(width - 32, height - 32)
    refresh
  end
 
  def refresh
    self.contents.clear
    self.contents.draw_text(0, 0, 64, 32, "1", 0)
    self.contents.draw_text(0, 32, 64, 32, "2", 0)
    self.contents.draw_text(0, 64, 64, 32, "3", 0)
    self.contents.draw_text(0, 96, 64, 32, "4", 0)
  end
end
zum Lesen den Text mit der Maus markieren

Einfach das alte durch das neue ersetzen, oben kansnt du die ID für die Switches einstellen,
die aktiviert werden müssen, wenn man ein neues Gruppenmitglied kriegt.

17

Freitag, 11. Juli 2008, 16:05

juhuu!
Aber was muss ich machen, wenn ich auf nicht belegt klicke, das der false-Sound kommt, und nichts passiert?
Der ChrisX930 ist wieder zurück!]
Danke dir Kain^^



Kommt und spielt mit :D

18

Freitag, 11. Juli 2008, 16:33

Spoiler

Ruby 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
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
#==============================================================================
#              Billiger Charwechsel von Xrazor :D
#==============================================================================
#Hier kannst du die ID des Switches festlegen, der aktiviert werden muss, sobald
#man Charakter 3 und 4 in die Gruppe bekommt.
 
class Ac
  def main
    @chara3 = 5
    @chara4 = 6
    #Wird momentan mit S aufgerufen, kann über $scene = Ac.new auch anders aufgerufen werden
    #Hier kann man einfach die Namen ändern
    s1 = "Aluxes zum Anführer machen"
    s2 = "Basil zum Anführer machen"
    if $game_switches[@chara3] == true 
    s3 = "Cyrus zum Anführer machen"
    else
    s3 = "Nicht Belegt"
    end
    if $game_switches[@chara4] == true
    s4 = "Dorothy zur Anführerin machen"
    else
    s4 = "Nicht Belegt"
    end
 
    @command_window = Window_Command.new(320, [s1, s2, s3, s4])
    @command_window.opacity = 255
    @command_window.x = 200
    @command_window.y = 100
    @command_window.height = 160
 
    @window_zahl = Zahlen.new
    @window_zahl.x = 100
    @window_zahl.y = 100
    Graphics.transition
    #Hauptschleife
    loop do
      Graphics.update
      Input.update
      @window_zahl.refresh
      update
      if $scene != self
        break
      end
    end
 
    Graphics.freeze
    @command_window.dispose
     @window_zahl.dispose
end    
 
  def update
    @command_window.update
      if Input.trigger?(Input::C)
        for i in 1..$game_party.actors.size
        $game_party.remove_actor(i)
       end
       for i in 193..196
         $game_switches[i] = false
         end
        case @command_window.index
        when 0
        #Falls deine Charaktere nicht actor 1,2,3 und 4 sein sollten einfach
        #immer in die ensprechende Zahl umändern
        $game_system.se_play($data_system.decision_se)
        $game_party.add_actor(1)
        $game_party.add_actor(2)
        if $game_switches[@chara3] == true
        $game_party.add_actor(3)
        end
        if $game_switches[@chara4] == true
        $game_party.add_actor(4)
        end
        $game_switches[193] = true
        when 1
        $game_system.se_play($data_system.decision_se)
       $game_party.add_actor(2)
        $game_party.add_actor(1)
        if $game_switches[@chara3] == true
        $game_party.add_actor(3)
        end
        if $game_switches[@chara4] == true
        $game_party.add_actor(4)
        end 
        $game_switches[194] = true
        when 2
        if $game_switches[@chara3] == true
        $game_party.add_actor(3)
        $game_system.se_play($data_system.decision_se)
        else
        $game_system.se_play($data_system.buzzer_se)
        end
        $game_party.add_actor(1)
        $game_party.add_actor(2)
        if $game_switches[@chara4] == true
        $game_party.add_actor(4)
        end 
        $game_switches[195] = true
        when 3
        if $game_switches[@chara4] == true
        $game_party.add_actor(4)
        $game_system.se_play($data_system.decision_se)
        else
        $game_system.se_play($data_system.buzzer_se)
        end 
        $game_party.add_actor(2)
        $game_party.add_actor(1)
        if $game_switches[@chara3] == true
        $game_party.add_actor(3)
        end
        $game_switches[196] = true
        end
 
            $scene = Scene_Map.new
          end
 
 
          if Input.trigger?(Input::B)
        $scene = Scene_Map.new
      return
      end
    end
 
  end
 
  class Zahlen < Window_Base
    def initialize
    super(0, 0, 64, 160)
    self.contents = Bitmap.new(width - 32, height - 32)
    refresh
  end
 
  def refresh
    self.contents.clear
    self.contents.draw_text(0, 0, 64, 32, "1", 0)
    self.contents.draw_text(0, 32, 64, 32, "2", 0)
    self.contents.draw_text(0, 64, 64, 32, "3", 0)
    self.contents.draw_text(0, 96, 64, 32, "4", 0)
  end
end
 
 
zum Lesen den Text mit der Maus markieren

19

Freitag, 11. Juli 2008, 17:04

Funktioniert einwandfrei. Wenn ich noch fragen habe, melde ich mich wieder^^
Aber deinen Creditseintrag hast du schonmal sicher^^
Der ChrisX930 ist wieder zurück!]
Danke dir Kain^^



Kommt und spielt mit :D

20

Sonntag, 13. Juli 2008, 18:43

Hi,
ich hab mal ne Frage zu dem Script.
Wieso funktioniert er bei mir nicht?^^
Muss ein bestimmter Schalter aktiviert werden damit der script funktioniert?
Oder muss es etwas anderes geben?

Sorry wenn ich mich einfach zu blöd anstelle :( :( :(

MfG XXXX

EDIT: In der Demo funktioniert er^^

Social Bookmarks