• Anmelden

Sora

Knappe

  • »Sora« ist der Autor dieses Themas

Motto: Lest ihr euch alle Mottos durch?

  • Nachricht senden

1

Freitag, 21. November 2008, 22:46

Helden im Kampf Zentrieren

In einem Spiel kommt es ja auch mal vor (bei den meißten) dass man von seinen Mitstreitern/Teammitgliedern getrennt wird oder diese das team verlassen.
Wenn dem so ist, sind die Helden, die übrig sind (1-3 ohne diesen script für mehr helden im kampf) von Links nach rechts verteilt.

Um dies zu verdeutlichen, habe ich mal gescreent und etwas bearbeitet:

Bild
So ist es Normal

Bild

So ist es, wenn einer das Team verlässt. rechts ist ein freier Platz, der sich vergrößert, wenn noch mehr teammitglieder das Team verlassen.

Bild

So hätte ich es ungefär, wenn nur 3 im team sind

Bild

So hätte ich es ungefär, wenn nur 2 im team sind

Bild

So hätte ich es ungefär, wenn man alleine ist


So damit das untere feld (so zum sagen) Immer schön ausgefüllt ist.
Ich weis, das es sehr schlecht umgesetzt ist (Paint). Zu meiner verteidigung, ich bin ne niete im Piexeln.

Hat jemand dafür einen Script oder kann mir schnell einen machen (wenns nicht allzuviele umstände macht)
Das wäre echt nett.

Greez
Sora

EDIT:
Fehler bearbeitet

Edit Edit:
Bilder hinzugefügt

Edit Edit Edit:
Weitere fehler entfernt

2

Sonntag, 23. November 2008, 20:29

Hab mal was programmiert. Hab dabei aber auf Formeln verzichtet und das Script einfach so geschrieben, dass man die Koordinaten je nach Gruppe selber in einem Array definieren kann.

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
# Center Battlers - Monsta 23.11.08 #
 
class Game_Actor < Game_Battler
  Screen_X_Coords = [[320],[205,435],[150,320,480],[80,240,400,560]]
  def screen_x
   if self.index != nil
     Screen_X_Coords[$game_party.actors.size - 1][self.index]
   else
    0
   end
 end
end
 
class Window_BattleStatus < Window_Base
  def refresh
    self.contents.clear
    @item_max = $game_party.actors.size
    for i in 0...$game_party.actors.size
      actor = $game_party.actors[i]
      actor_x = actor.screen_x - 76
      draw_actor_name(actor, actor_x, 0)
      draw_actor_hp(actor, actor_x, 32, 120)
      draw_actor_sp(actor, actor_x, 64, 120)
      if @level_up_flags[i]
        self.contents.font.color = normal_color
        self.contents.draw_text(actor_x, 96, 120, 32, "LEVEL UP!")
      else
        draw_actor_state(actor, actor_x, 96)
      end
    end
  end
end
 
class Scene_Battle
  alias :center_battlers_phase3_setup :phase3_setup_command_window
  def phase3_setup_command_window
   center_battlers_phase3_setup
   @actor_command_window.x = @active_battler.screen_x - 80
  end
end


Kannst die Battler also noch beliebig verschieben.

~Monsta

Sora

Knappe

  • »Sora« ist der Autor dieses Themas

Motto: Lest ihr euch alle Mottos durch?

  • Nachricht senden

3

Montag, 24. November 2008, 19:16

vielen Dank Monsta, ich werde es gleich mal ausprobieren.
Ich kenne mich mit scripts nicht wirklich aus, aber lass mich mal raten, in zeile 4 ändere ich die koordinaten oder?

EDIT:
Brauch ich gar nicht. is Perfekt.
Genau was ich wollte.


nur ein problem, jedesmal wenn ich auf Angriff gehe, kommt folgende Fehlermeldung:

Scripts 'Helden Zentrieren' line 37: SystemStackError occurred.
stack level too deep

was jetzt?

Neo-Bahamut

Himmelsgleicher

Motto: Wer anderen eine Bratwurst brät, der hat ein Bratwurstbratgerät.

  • Nachricht senden

4

Montag, 24. November 2008, 21:15

Muss man die Doppelpunke dahinmachen? =O
Probier mal die wegzumachen.
Spoiler: Wurstinator
zum Lesen den Text mit der Maus markieren

Spoiler: Lazer-Wurst
zum Lesen den Text mit der Maus markieren

Spoiler: Hallowurst
zum Lesen den Text mit der Maus markieren

Sora

Knappe

  • »Sora« ist der Autor dieses Themas

Motto: Lest ihr euch alle Mottos durch?

  • Nachricht senden

5

Dienstag, 25. November 2008, 20:14

ich hab sie weggemacht, trotzdem geht es nicht.

ich habe den script in einem neuen projekt getesten. Perfekt.
woran kann das liegen?

RedLink

Landsknecht

Motto: Faulheit ist Relativ

  • Nachricht senden

6

Dienstag, 25. November 2008, 20:17

an anderen Scripts die du rein gesteckt hast oder dein script verändert ist?
  • Scripter

    Für den MV
  • Mitmacher

    nirgendswo

Sora

Knappe

  • »Sora« ist der Autor dieses Themas

Motto: Lest ihr euch alle Mottos durch?

  • Nachricht senden

7

Mittwoch, 26. November 2008, 14:43

also an den scripts, die ich so noch drinnen hab, liegts nicht, da ich die zwischendurch mal zur probe rausgenommen hab.

auf welche scripts greift dieser denn zu?
dann kann ich schauen, ob ich da etwas verändert habe.

Neo-Bahamut

Himmelsgleicher

Motto: Wer anderen eine Bratwurst brät, der hat ein Bratwurstbratgerät.

  • Nachricht senden

8

Mittwoch, 26. November 2008, 16:41

Auf Scene_Battle natürlich, da komtm ja der Fehler^^
Spoiler: Wurstinator
zum Lesen den Text mit der Maus markieren

Spoiler: Lazer-Wurst
zum Lesen den Text mit der Maus markieren

Spoiler: Hallowurst
zum Lesen den Text mit der Maus markieren

Sora

Knappe

  • »Sora« ist der Autor dieses Themas

Motto: Lest ihr euch alle Mottos durch?

  • Nachricht senden

9

Mittwoch, 26. November 2008, 17:03

Scene_Battle1
Scene_Battle2

Scene_Battle3

Scene_Battle4

in den vier scripts ist alles so, wie es sein sollte.
zum absichern hab ich alle vier nochmal durch die standart scripts ersetzt (Standar scripts aus einem neuen projekt.

10

Mittwoch, 26. November 2008, 22:19

Dann halt mal ohne Alias mit einfachem überschreiben:

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
# Center Battlers - Monsta 23.11.08 #
 
class Game_Actor < Game_Battler
  Screen_X_Coords = [[320],[205,435],[150,320,480],[80,240,400,560]]
  def screen_x
   if self.index != nil
     Screen_X_Coords[$game_party.actors.size - 1][self.index]
   else
    0
   end
 end
end
 
class Window_BattleStatus < Window_Base
  def refresh
    self.contents.clear
    @item_max = $game_party.actors.size
    for i in 0...$game_party.actors.size
      actor = $game_party.actors[i]
      actor_x = actor.screen_x - 76
      draw_actor_name(actor, actor_x, 0)
      draw_actor_hp(actor, actor_x, 32, 120)
      draw_actor_sp(actor, actor_x, 64, 120)
      if @level_up_flags[i]
        self.contents.font.color = normal_color
        self.contents.draw_text(actor_x, 96, 120, 32, "LEVEL UP!")
      else
        draw_actor_state(actor, actor_x, 96)
      end
    end
  end
end
 
class Scene_Battle
  def phase3_setup_command_window
    @party_command_window.active = false
    @party_command_window.visible = false
    @actor_command_window.active = true
    @actor_command_window.visible = true
    @actor_command_window.x = @active_battler.screen_x - 80
    @actor_command_window.index = 0
  end
end

Sora

Knappe

  • »Sora« ist der Autor dieses Themas

Motto: Lest ihr euch alle Mottos durch?

  • Nachricht senden

11

Mittwoch, 26. November 2008, 23:04

super danke Monsta.
Jetzt funktioniert es auch bei meinem bestehendem projekt. Nun habe ich noch etwas zu sagen.

Im Kampf (Nur im kampf) hakt das spiel etwas, also es ist langsamer und das stört beim spielen. vor dem einfügen des scripts (Des neuen, und beim alten (neues projekt)) war dies noch nicht.

ich benutze aber schon den Anti Event Lag Script, um das spiel zu beschleunigen (was bis jetzt auch funktionierte).

Sora

Knappe

  • »Sora« ist der Autor dieses Themas

Motto: Lest ihr euch alle Mottos durch?

  • Nachricht senden

12

Samstag, 29. November 2008, 00:46

es hat sich gelöst

>>>Closed<<<

Ich close ma... *close* ~Monsta

Social Bookmarks