Script Cień line 165: ArgumentError ocurred.
wrong number of arguments(2 for 1)
A bez Blizza ( tylko view range i cienie ) nic się nie pokazuje, ani cień, ani dźwięk gdy podchodzę do eventu.
Skrypt cieni:
Spoiler:
Kod:
CATERPILLAR_COMPATIBLE = false
SQUAD_MOVE_COMPATIBLE = false
CCOA_CATER_COMPATIBLE = false
TRICKSTER_CATER_COMPATIBLE = false
SHADOW_WARN = true
SHADOW_MIN = 0
SHADOW_MAX = 0
SHADOW_OPACITY = 50
SHADOW_DISTANCE = 300
class Game_Temp
attr_accessor :shadow_spriteset
end
class Game_Party
attr_reader :characters
end
class Sprite_Shadow < RPG::Sprite
attr_accessor :character
def initialize(viewport, character = nil, id = 0)
super(viewport)
params = $game_temp.shadow_spriteset.shadows[id]
@source = params[0]
@anglemin = SHADOW_MIN
@anglemax = SHADOW_MAX
@self_opacity = SHADOW_OPACITY
@distancemax = SHADOW_DISTANCE
@anglemin = params[1] if params.size > 1
@anglemax = params[2] if params.size > 2
@distancemax = params[3] if params.size > 3
@self_opacity = params[4] if params.size > 4
@character = character
update
end
def update
if !in_range?(@character, @source, @distancemax)
self.opacity = 0
return
end
super
if @tile_id != @character.tile_id or
@character_name != @character.character_name or
@character_hue != @character.character_hue
@tile_id = @character.tile_id
@character_name = @character.character_name
@character_hue = @character.character_hue
if @tile_id >= 384
self.bitmap = RPG::Cache.tile($game_map.tileset_name,
@tile_id, @character.character_hue)
self.src_rect.set(0, 0, 32, 32)
self.ox = 16
self.oy = 32
else
self.bitmap = RPG::Cache.character(@character.character_name,
@character.character_hue)
@cw = bitmap.width / 4
@ch = bitmap.height / 4
self.ox = @cw / 2
self.oy = @ch
end
end
self.visible = (not @character.transparent)
if @tile_id == 0
sx = @character.pattern * @cw
sy = (@character.direction - 2) / 2 * @ch
if self.angle > 90 or angle < -90
sy = ( 4 - 2) / 2 * @ch if @character.direction == 6
sy = ( 6 - 2) / 2 * @ch if @character.direction == 4
sy = ( 8 - 2) / 2 * @ch if @character.direction == 2
sy = ( 2 - 2) / 2 * @ch if @character.direction == 8
end
self.src_rect.set(sx, sy, @cw, @ch)
end
self.x = @character.screen_x
self.y = @character.screen_y-5
self.z = @character.screen_z(@ch)-1
self.blend_type = @character.blend_type
self.bush_depth = @character.bush_depth
if @character.animation_id != 0
animation = $data_animations[@character.animation_id]
animation(animation, true)
@character.animation_id = 0
end
@deltax = @source.screen_x - self.x
@deltay = @source.screen_y - self.y
self.color = Color.new(0, 0, 0)
@distance = ((@deltax ** 2) + (@deltay ** 2))
self.opacity = @self_opacity * 13000 /
((@distance * 370 / @distancemax) + 6000)
self.angle = 57.3 * Math.atan2(@deltax, @deltay )
@angle_trigo = self.angle+90
if @angle_trigo < 0
@angle_trigo = 360 + @angle_trigo
end
if @anglemin != 0 or @anglemax != 0
if (@angle_trigo < @anglemin or @angle_trigo > @anglemax) and
@anglemin < @anglemax
self.opacity = 0
return
end
if (@angle_trigo < @anglemin and @angle_trigo > @anglemax) and
@anglemin > @anglemax
self.opacity=0
return
end
end
end
def in_range?(element, object, range)
x = (element.screen_x - object.screen_x) * (element.screen_x - object.screen_x)
y = (element.screen_y - object.screen_y) * (element.screen_y - object.screen_y)
r = x + y
if r <= (range * range)
return true
else
return false
end
end
end
class Sprite_Character < RPG::Sprite
alias shadow_initialize initialize
alias shadow_update update
def initialize(viewport, character = nil)
@character = character
super(viewport)
@ombrelist = []
if character.is_a?(Game_Event) and $game_temp.shadow_spriteset.shadows != []
params = XPML.XPML_read("Shadow", @character.id, 5)
if params != nil
for i in 0...$game_temp.shadow_spriteset.shadows.size
@ombrelist.push(Sprite_Shadow.new(viewport, @character,i))
end
end
end
if character.is_a?(Game_Player) and $game_temp.shadow_spriteset.shadows != []
for i in 0...$game_temp.shadow_spriteset.shadows.size
@ombrelist.push(Sprite_Shadow.new(viewport, $game_player,i))
end
if CATERPILLAR_COMPATIBLE and $game_party.characters != nil
for member in $game_party.characters
for i in 0...$game_temp.shadow_spriteset.shadows.size
@ombrelist.push(Sprite_Shadow.new(viewport, member, i))
end
end
end
if SQUAD_MOVE_COMPATIBLE and $game_allies.values != nil
for member in $game_allies.values
for i in 0...$game_temp.shadow_spriteset.shadows.size
@ombrelist.push(Sprite_Shadow.new(viewport, member, i))
end
end
end
if CCOA_CATER_COMPATIBLE and $game_train.actors != nil
for member in $game_train.actors
for i in 0...$game_temp.shadow_spriteset.shadows.size
@ombrelist.push(Sprite_Shadow.new(viewport, member, i))
end
end
end
if TRICKSTER_CATER_COMPATIBLE and $game_party.followers != nil
for member in $game_party.followers
for i in 0...$game_temp.shadow_spriteset.shadows.size
@ombrelist.push(Sprite_Shadow.new(viewport, member, i))
end
end
end
end
shadow_initialize(viewport, @character)
end
def update
shadow_update
if @ombrelist != []
for i in 0...@ombrelist.size
@ombrelist[i].update
end
end
end
end
class Game_Event < Game_Character
attr_accessor :id
end
class Spriteset_Map
attr_accessor :shadows
alias shadow_initialize initialize
def initialize
$game_temp.shadow_spriteset = self
@shadows = []
warn = false
for k in $game_map.events.keys.sort
if ($game_map.events[k].list != nil and
$game_map.events[k].list[0].code == 108 and
($game_map.events[k].list[0].parameters == ["s"] or
$game_map.events[k].list[0].parameters == ["o"]))
warn = true
end
params = XPML.XPML_read("Shadow Source", k, 5)
if params != nil
$game_temp.shadow_spriteset.shadows.push([$game_map.events[k]] + params)
end
end
if warn == true and SHADOW_WARN
p "Warning : At least one event on this map uses an obsolete way to add shadows"
end
shadow_initialize
end
end
module XPML
module_function
def XPML_read(markup, event_id, max_param_number = 0)
parameter_list = nil
event = $game_map.events[event_id]
return if event.list == nil
for i in 0...event.list.size
if event.list[i].code == 108 and
event.list[i].parameters[0].downcase == "begin " + markup.downcase
parameter_list = [] if parameter_list == nil
for j in i + 1...event.list.size
if event.list[j].code == 108
parts = event.list[j].parameters[0].split
if parts.size != 1 and parts[0].downcase != "begin"
if parts[1].to_i != 0 or parts[1] == "0"
parameter_list.push(parts[1].to_i)
else
parameter_list.push(parts[1])
end
else
return parameter_list
end
else
return parameter_list
end
if max_param_number != 0 and j == i + max_param_number
return parameter_list
end
end
end
end
return parameter_list
end
end
________________________ Co tam Gość ?
Ostatnio zmieniony przez Nhadala Czw 12 Sie, 2010 00:44, w całości zmieniany 1 raz
Nie możesz pisać nowych tematów Nie możesz odpowiadać w tematach Nie możesz zmieniać swoich postów Nie możesz usuwać swoich postów Nie możesz głosować w ankietach Nie możesz załączać plików na tym forum Możesz ściągać załączniki na tym forum