• Anmelden

1

Sonntag, 24. Februar 2008, 16:23

Level up problem

Hy leute.....ich habe hier das script bezüüüüglich eines levelup "systems" was eben nach einem level up anzeigt welche werte sich steigern....

Mein problem ist jetzt aber das ich meine helden ZENTRIERT am Battle hab.....und eben nachm level up WIRd dieses sogenannte FENSTER wo eben die wärte drinnen stehen die sich eben verändert haben kommt es LInks dort wo der held nicht ist auf....wie kann ich das verändern was müsstei ch machen das das FEnster mit den werten genau obern HELDEN erscheint?



script:

#:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=
# Easy LvlUp Notifier by Blizzard
# Version: 2.0
# Type: Battle Report Display
# Date: 27.8.2006
# Date v1.2b: 3.11.2006
# Date v1.3b: 11.3.2007
# Date v1.4b: 22.8.2007
# Date v2.0: 25.9.2007
#:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=
#
# Compatibility:
#
# 98% compatible with SDK v1.x. 80% compatible with SDK 2.x. WILL corrupt old
# savegames. May cause slight problems with following systems and would need
# therefore slight recalibration:
# - exotic CBS-es
# - exotic skill systems
# - exotic stat systems (additional stats like Wisdom, Luck etc.)
#
#
# Features:
#
# - shows increased stats and learned skills at level up
# - animated
# - shows EXP gain for each actor (!) only after gaining EXP after a battle
# - more simple and less laggy than other Level Up Notifiers
# - you can set up any sound to be played when a higher level is reached or a
# new skill is learned (LVLUP_SE and LEARN_SE further below)
#
# new in v1.2b:
# - better window movement
# - higher compatibility
# - fixed a few "eventual" bugs
#
# new in v1.3b:
# - fully compatible with Tons of Add-ons
#
# new in v1.4b:
# - improved coding
# - rewritten conditions using classic syntax to avoid RGSS conditioning bug
#
# new in v2.0:
# - completely overworked and improved
# - now MUCH more simple than other Level Up Notifiers
# - halved the number of lines of code
# - much more compatible: can show increase of any stats after the battle in
# combination with any script, just put this script below those attribute
# modifying scripts
#
#
# Instructions:
#
# - Explanation:
#
# This script will notify you when any character is leveled up after a
# battle. It will show any stats that were increased and any skills that were
# learned. The windows are animated, the code is less complex than any other
# so far and it is most efficient as well as highly optimized and detailed
# worked out.
#
# - Configuration:
#
# There are a few options you can set up below.
#
# LVLUP_SE - sound effect played when a new level was reached
# LEARN_SE - sound effect played when a new skill was learned,
# keep in mind that the script takes into account that
# skills can only be learned after a level up
# WINDOW_BACK_OPACITY - set this value to the window's back opacity (0-255)
# NO_EXP_DISPLAY - set this value to true if you want to disable the EXP
# gaining display in the level up windows
# OLD_EXP_DISPLAY - set this value to true if you want to display the EXP
# in the normal result window again
#
#
# If you find any bugs, please report them here:
# http://www.chaosproject.co.nr
#:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=

#::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
# START Configuration
#::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

# RPG::AudioFile.new('FILENAME', VOLUME, PITCH)
LVLUP_SE = RPG::AudioFile.new('087-Action02', 80, 100)
LEARN_SE = RPG::AudioFile.new('106-Heal02', 80, 100)
WINDOW_BACK_OPACITY = 160
NO_EXP_DISPLAY = false
OLD_EXP_DISPLAY = false

#::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
# END Configuration
#::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

$easy_lvlup_notifier = true

#==============================================================================
# Game_Actor
#==============================================================================

class Game_Actor < Game_Battler

def all_exp
return @exp
end

def all_exp=(exp)
@exp = exp
end

end

#==============================================================================
# Window_BattleResult
#==============================================================================

class Window_BattleResult < Window_Base

alias easy_lvlup_notfier_refresh refresh
def refresh
if $tons_version != nil && $tons_version >= 4.02 &&
$game_system.WINDOW_BATTLERESULT || OLD_EXP_DISPLAY
easy_lvlup_notfier_refresh
else
self.contents.clear
x = 4
self.contents.font.color = system_color
cx = contents.text_size('Gained').width
self.contents.draw_text(x, 0, cx+4, 32, 'Gained')
x += cx + 4
self.contents.font.color = normal_color
cx = contents.text_size(@gold.to_s).width
self.contents.draw_text(x, 0, cx+4, 32, @gold.to_s)
x += cx + 4
self.contents.font.color = system_color
self.contents.draw_text(x, 0, 128, 32, $data_system.words.gold)
(0...@treasures.size).each {|i| draw_item_name(@treasures, 4, (i+1)*32)}
end
end

end

#==============================================================================
# Window_LevelUp
#==============================================================================

class Window_LevelUp < Window_Base

attr_reader :limit

def initialize(a, d)
if $tons_version != nil && $tons_version >= 4.98 &&
$game_system.CENTER_BATTLER
x = case $game_party.actors.size
when 1 then 240
when 2 then a.index * 320 + 80
when 3 then a.index * 160 + 80
when 4 then a.index * 160
end
else
x = a.index * 160
end
text = []
text.push(['Level:', d[0], a.level]) if d[0] != a.level
text.push([$data_system.words.hp[0, 3], d[1], a.maxhp]) if d[1] != a.maxhp
text.push([$data_system.words.sp[0, 3], d[2], a.maxsp]) if d[2] != a.maxsp
text.push([$data_system.words.str[0, 3], d[3], a.str]) if d[3] != a.str
text.push([$data_system.words.dex[0, 3], d[4], a.dex]) if d[4] != a.dex
text.push([$data_system.words.agi[0, 3], d[5], a.agi]) if d[5] != a.agi
text.push([$data_system.words.int[0, 3], d[6], a.int]) if d[6] != a.int
h = text.size * 24 + (NO_EXP_DISPLAY ? 32 : 56)
@limit, y = 320 - h, 480 - h + (h/64+1)*64
super(x, y, 160, h)
self.z, self.back_opacity = 100, WINDOW_BACK_OPACITY
self.contents = Bitmap.new(self.width - 32, self.height - 32)
if $fontface != nil
self.contents.font.name = $fontface
elsif $defaultfonttype != nil
self.contents.font.name = $defaultfonttype
end
self.contents.font.size, self.contents.font.bold = 20, true
unless NO_EXP_DISPLAY
self.contents.font.color = normal_color
self.contents.draw_text(0, 0, 128, 24, "#{a.exp - d[7]} EXP", 1)
end
text.each_index {|i|
index = NO_EXP_DISPLAY ? i : i + 1
self.contents.font.color = system_color
self.contents.draw_text(0, index*24, 128, 24, text[i][0])
self.contents.draw_text(80, index*24, 32, 24, '»')
self.contents.font.color = normal_color
self.contents.draw_text(0, index*24, 76, 24, text[i][1].to_s, 2)
if text[i][1] > text[i][2]
self.contents.font.color = Color.new(255, 64, 0)
else
self.contents.font.color = Color.new(0, 255, 64)
end
self.contents.draw_text(0, index*24, 128, 24, text[i][2].to_s, 2)}
end

end

#==============================================================================
# Scene_Battle
#==============================================================================

class Scene_Battle

alias main_lvlup_later main
def main
@lvlup_data = {}
@moving_windows, @pending_windows = [], []
(1...$data_actors.size).each {|i|
actor = $game_actors[i]
@lvlup_data[actor] = [actor.level, actor.maxhp, actor.maxsp, actor.str,
actor.dex, actor.agi, actor.int, actor.exp, actor.skills.clone]}
main_lvlup_later
(@moving_windows + @pending_windows).each {|win| win.dispose if win != nil}
end

alias start_phase5_lvlup_later start_phase5
def start_phase5
start_phase5_lvlup_later
@skill_texts = []
$game_party.actors.each {|actor|
actor.remove_states_battle
if @lvlup_data[actor][0, 7] != [actor.level, actor.maxhp, actor.maxsp,
actor.str, actor.dex, actor.agi, actor.int]
@pending_windows.push(Window_LevelUp.new(actor, @lvlup_data[actor]))
@skill_texts.push('')
new_skills = actor.skills - @lvlup_data[actor][8]
if new_skills.size > 0
new_skills.each {|id|
@skill_texts.push("#{actor.name} learned #{$data_skills[id].name}!")}
end
elsif @lvlup_data[actor][7] != actor.exp && !NO_EXP_DISPLAY
@moving_windows.push(Window_LevelUp.new(actor, @lvlup_data[actor]))
end}
end

def update_phase5
if @phase5_wait_count > 0
@phase5_wait_count -= 1
if @phase5_wait_count == 0
@result_window.visible, $game_temp.battle_main_phase = true, false
@status_window.refresh
end
return
end
@moving_windows.each {|win|
win.y -= [((win.y - win.limit) / 2.0).ceil, 64].min if win.y > win.limit}
if Input.trigger?(Input::C)
@result_window.visible = false
if @skill_texts.size > 0
text = @skill_texts.shift
if text == ''
$game_system.se_play(LVLUP_SE)
@moving_windows.push(@pending_windows.shift)
@help_window.visible = false
else
$game_system.se_play(LEARN_SE)
@help_window.set_text(text, 1)
end
else
battle_end(0)
end
end
end

end

2

Sonntag, 24. Februar 2008, 21:56

Hm also ich glaube, wenn ich verstehen würde was dein Problem ist könnt eman dir vielleicht helfen, aber in deiner Problem Beschreibung sind so viel "eben" und so wenig Satzeichen, dass ich keine Ahnung hab was du meinst. Versuchs einfach nochmal zu erklären...

Und es wäre nett, wenn du das Script in Code-Tags (die erscheinen, wenn du beim Post erstellen auf den Button mit der Raute (#) drückst) machen würdest, dann kann man ihn nämlich wesentlich besser lesen und verstehen...

3

Dienstag, 26. Februar 2008, 12:23

Naja schau dasproblem ist einfach das der HERO bei einem battle in der mitte des bildschirmes ist... ist weil ein anderes KS habe...und wenn er eben ein level bekommt...er scheint das fesnter nicht ober dem helden oderhaltdemcharakter sondern halt links....wie bei dem standart KS...wie lös ich das das das fesnter mit denn ganzen werten eben oerihm erscheint..

4

Dienstag, 26. Februar 2008, 14:54

Sorry ich will dir nich zu nahe treten, aber kannst du dir nen bischen Mühe mit der Sprache geben? Ich mein OK perfekte Reschtschreibung und Zeichensetzung muss ja nicht sein. Macht hier glaub ich niemand, aber vorm abschicken nochmal auf Tipfehler durchsehen wäre echt gut, sonst kann man es echt nich lesen.

Seh ich das richtig, das du einfach willst, das das Fenster zentriert erscheint? Oder gibt es in deinem Spiel ne Party? Brauchst du also möglicherweise mehrere von den Level-Up-Fenstern? dann müsste man wissen wo die Battler in deinem KS stehen...

5

Mittwoch, 27. Februar 2008, 12:25

Ein bild sagt wohl mehr als worte.... ich will ja nur das eben diese anzeige ÜBERm helden erscheint ....bzw wenn mehr charakter da sind....eben bei denen die anzeige da ist...Bild

6

Mittwoch, 27. Februar 2008, 14:28

Ja, dann ist jetzt die frage, wie werden die weiteren Battler in deinem KS positioniert. Also, wenn es zwei gibt steht der zweite dann rechts oder links? wiviele gibt es maximal?
Am einfachste wärs glaube ich, wenn du deine Script.rxdata irgendwo hochladen würdest, dann könnte ich einfach mal rein kuken...

7

Mittwoch, 27. Februar 2008, 20:33

naja der zweite charakter wäre rechts neben dem ersten der dritte wäre rechts neben denn zweiten usw...
»Hybridchaos« hat folgende Datei angehängt:
  • Scripts.rxdata (155,29 kB - 12 mal heruntergeladen - zuletzt: 19. Dezember 2009, 14:57)

8

Donnerstag, 28. Februar 2008, 23:29

ok, also ich hab nen bischen rumprobiert, wenn du bei Window_LevelUp
das hier:

Ruby Quellcode

1
2
3
4
5
6
7
8
9
 x = case $game_party.actors.size
 when 1 then 240
 when 2 then a.index * 320 + 80
 when 3 then a.index * 160 + 80
 when 4 then a.index * 160
 end
 else
 x = a.index * 160
 end


durch diese Zeile ersetzt:

Ruby Quellcode

1
x = a.index * 160 + (4 - $game_party.actors.size) * 80


sollte es passen.

9

Sonntag, 2. März 2008, 16:32

Jaaa perfekt ich bin euch echt dankbar :) !! ihr seit eben heros =) !

Edit *move*

und Scripts nächste mal in die code blöcke!

Sven

Social Bookmarks