• Anmelden

1

Sonntag, 6. Dezember 2009, 18:41

Verwaschene aktuelle map als Kampfhintergrund

Hallo mal wieder,

ich habe heute folgendes Skript entdeckt und eingebaut:

Kurz zum Skript: Der battleback wird praktisch durch einen screenshot der aktuellen Situation auf der map, auf der der Spieler unterwegs ist, ersetzt.

Spoiler: Skript

=begin
--------------------------------------------------------------------------------
No Battleback
Created by TYPE74RX-T site
--------------------------------------------------------------------------------
Features: Disables Battleback
-------------------------------------------------------------------------------
=end

class Spriteset_Battle
alias x_update update
def update
unless $BTEST
$game_temp.battleback_name = ""
end
x_update
end
end

class Scene_Battle
alias x_main main
def main
unless $BTEST
if $game_switches[28] or $game_switches[29] or $game_switches[65] #Hellt die map auf, wenn sie zu dunkel wären
$game_screen.start_tone_change(Tone.new(-100 ,-100 ,-100 ,100), 0)
end
@spriteset_map = Spriteset_Map.new
x_main
@spriteset_map.dispose
else
x_main
end
end
end
zum Lesen den Text mit der Maus markieren


Nun wird das aber bei komplexeren maps schnell unübersichtlich, da ja die Gegner im Vordergrund und die aktuelle map mit allen Details im Hintergrund angezeigt werden.

Jetzt meine Frage: Ist es möglich, die map im Hintergrund irgendwie zu verzerren oder zu verwaschen, so dass man sie nur noch unscharf erkennt?

2

Montag, 7. Dezember 2009, 14:13

Eher schwierig, da dass Skript nicht wirklich mit einem Screenshot arbeitet sondern das Mapaussehen neu berechnet. Also man braucht entweder eine gute MapToBMP Methode oder die ScreenshotDLL. Dann könnte man zB per CGT einen solchen Effekt erzielen. Im VX gibts die Methoden ja bereits.
Bin nicht ganz sicher, aber könnte man diesen Effekt nicht auch erzielen indem man einfach ein "Milchiges" Bild darüberlegt? Wäre vermutlich einfacher zu realisieren.

3

Montag, 7. Dezember 2009, 19:19

Klingt kompliziert.

Ja klar, mir ist eigentlich egal, wie es funktioniert, Hauptsache es wird übersichtlicher. Wie würde das mit dem milchigen Bild denn funktionieren?

Neo-Bahamut

Himmelsgleicher

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

  • Nachricht senden

4

Montag, 7. Dezember 2009, 20:49

SephirothSpawn hat eine dll dazu geschrieben, allerdings könnte es sein, dass man das SDK braucht. Ich werds mal probieren einzubauen :D

So hier, doch ohne SDK, aber dafür mit MACL ^^
»Neo-Bahamut« hat folgende Datei angehängt:
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

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Neo-Bahamut« (7. Dezember 2009, 22:10)


5

Dienstag, 8. Dezember 2009, 16:25

Vielen Dank, Bahamut, aber was ist das MACL und wo kriege ich es her?
Ich hab dazu leider nichts gefunden...

Neo-Bahamut

Himmelsgleicher

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

  • Nachricht senden

6

Dienstag, 8. Dezember 2009, 17:25

Die ist bereits in der Demo drin^^
Ansonsten zB auf hbgames.org
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

7

Dienstag, 8. Dezember 2009, 19:14

Oh, hätt ich mir vielleicht mal anschauen sollen, bevor ich frag - ich war nur nicht an meinem eigenen PC, deswegen war das etwas schwer.

Leider funktioniert die MACL anscheinend nicht mit anderen Skripts, die ich benutze... Dann werd ich mir wohl eine andere Lösung einfallen lassen müssen. Trotzdem danke!

8

Dienstag, 15. Dezember 2009, 21:04

Hallo nochmal, ich habe ein anderes, viel nervigeres Problem. Ich benutze immer noch das oben genannte Skript, außerdem dieses hier:

Quellcode

1
2
3
4
5
6
7
8
for i in $game_map.events.keys.sort
  if $game_map.events[i].event.name.include? "#"
viewport = @viewport2
  elsif $game_map.events[i].event.name.include? "!"
viewport = @viewport3
  else
viewport = @viewport1
  end

Kurz dazu: Ereignisse mit ! oder # werden auch trotz einem sehr dunklen Bildschirmton oder heftigem Nebel normal hell dargestellt.

Das Problem ist, dass diese Ereignisse jetzt auch im Kampf über dem Balken unten dargestellt werden, und das ist natürlich nicht sehr schön. Das sieht dann ungefähr so aus (der Speicherpunkt unten sollte nicht sichtbar sein):

Attachment 11209

Kann mir da jemand helfen?

Neo-Bahamut

Himmelsgleicher

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

  • Nachricht senden

9

Dienstag, 15. Dezember 2009, 21:09

Du gehst in Spritset_Battle und änderst dort überall die Werte wo irgendwas.z = irgendwasanderes steht zu irgendwas.z = irgendwaswasgrößteristalsirgendwasanderes
zB überall ne 0 dranhängen
Das sollte klappen :)
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

10

Mittwoch, 16. Dezember 2009, 00:23

Ich habe jetzt in Spriteset_Battle an

Quellcode

1
2
3
@viewport2.z = 101
@viewport3.z = 200
@viewport4.z = 5000

jeweils eine Null drangehängt, das funktioniert aber nicht. (Auch mit fünf Nullen nicht.)
Jetzt erscheinen die Kämpfer aber ganz im Vordergrund, also vor den Energiebalken und Namen.

Ist es vielleicht auch möglich, das Skript die Ereignisse auf viewport1 zurückstuft, bevor das andere Skript den Kampfhintergrund festlegt?

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Lycosa« (16. Dezember 2009, 00:39)


Neo-Bahamut

Himmelsgleicher

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

  • Nachricht senden

11

Mittwoch, 16. Dezember 2009, 07:13

Zitat

Ist es vielleicht auch möglich, das Skript die Ereignisse auf viewport1 zurückstuft, bevor das andere Skript den Kampfhintergrund festlegt?
Hö? :o

Mir fällt grad erst auf, dass du scheinbar ein anders Kampfsystem hast, richtig? Da müsstest du auch mal gucken, ob da nicht was geändert wird.
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

12

Mittwoch, 16. Dezember 2009, 19:00

Ich hab das Standard-KS verändert, ja. Aber ich habe nichts verändert, was die viewports oder ähnliches betrifft, weil ich davon keine Ahnung habe :D .

Ja, ich meine Folgendes:

Quellcode

1
2
3
4
5
6
7
8
for i in $game_map.events.keys.sort
  if $game_map.events[i].event.name.include? "#"
viewport = @viewport2
  elsif $game_map.events[i].event.name.include? "!"
viewport = @viewport3
  else
viewport = @viewport1
  end

Dieser Skriptteil in Spriteset_Map verändert ja den viewport von Ereignissen mit ! oder # im Namen.
Wenn man jetzt irgendwie impliziert, dass die viewports dieser Ereignisse für die Dauer des Kampfes auf viewport1 zurückgesetzt werden, müssten sie doch wieder normal sein und folglich keine Probleme bereiten, oder?

Neo-Bahamut

Himmelsgleicher

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

  • Nachricht senden

13

Mittwoch, 16. Dezember 2009, 19:06

Ne, das sind andere Viewports als die in Spriteset_Battle.
Ich weiß sonst nicht, was das Problem sein könnte, aber wenn mir was einfällt meld ich mich :)
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

14

Mittwoch, 16. Dezember 2009, 19:45

Ist schon möglich, dass das andere viewports sind, aber ich dachte eigentlich, dass es funktionieren müsste:

Skript 1 setzt den viewport der Ereignisse auf der Karte auf viewport2 und viewport3.
Warum sollte man nicht, noch bevor Skript 2 die map als Hintergrund verwendet, den viewport der Ereignisse wieder auf viewport1 setzen können?
Dann würde Skript 2 die Ereignisse als ganz normale viewport1-Ereignisse auffassen und folglich nicht über den ganzen Kampfgrafiken anzeigen, oder?

Neo-Bahamut

Himmelsgleicher

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

  • Nachricht senden

15

Mittwoch, 16. Dezember 2009, 21:43

Ach so meinst du das.
Probiers mal damit:

Ruby Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
for i in $game_map.events.keys.sort
if $scene.is_a?(Scene_Map)
evname = $game_map.events[i].event.name
  if evname.include? "#"
viewport = @viewport2
  elsif evname.include? "!"
viewport = @viewport3
  else
viewport = @viewport1
  end
else
viewport = @viewport1
end
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

16

Donnerstag, 17. Dezember 2009, 03:12

Funktioniert!
Sehr gut, danke, Bahamut!

Social Bookmarks