Nie wiem, ale wydajesz się jak byś nie traktował skryptorów powarznie...
Byś się przywitał lub coś, skoro to twój pierwszy post...
A tak już na "dzień dobry" moim zdaniem bezczelnie napisałeś tego posta...
No cóż, poniosło mnie Ale chyba taka prawda a co do Twojej prośby to jest skrypt na chock shoot - Lub jakoś tak...
Opcja szukaj nie szkodzi, a gdy już na pewno nie znajdziesz to dopiero pisz posta
________________________ Szukam kogoś do grania ze mną w Minecraft Multiplayer przez Hamachi - coś więcej w temacie
Pomógł: 53 razy Dołączył: 30 Gru 2009 Posty: 515 Skąd: Ruda Śląska
Wysłany: Czw 30 Gru, 2010 17:55
Killerczyc, przynajmniej byś mógł nie spamować postami. Jak się nie przywitał to nie jak bezczelnie napisał to napisał ale byś to mógł przynajmniej zachować dla siebie a nie nabijać se posty takim czymś.
Postanowiłem przeprosić Cię rafi1815,
Chyba chodziło Tobie o to :
Cytat:
W przedmiotach musi być rubryka o nazwie Hookshot
Kod:
Do zdarzenia musisz dodać nazwę. Pobaw się z tym, dawno nie korzystałem - w skrypcie nawet dodałem zamiast czegoś zaczep, ale to w niczym nie przeszadza...
#==============================================================================
# NOTE: The newest version is the ONLY supported version!
#
# v1.0
# - Initial release
#==============================================================================
#==============================================================================
# NOTE1: This script requires a 'Hookshot' image (defined below) for EACH of
# the hookshots (defined below) to function.
#
# NOTE2: Any 'Hookshotable' event MUST have 1 of the 5 tags (defined below)
# in their NAME to function with this script.
#==============================================================================
module OW_HSHOT
# Hookshots
# syntax: type => [item, "file", range, speed, [tag1, tag2, ...]],
# item = database ID of the item the party MUST have to use the hookshot
# "file" = graphic filename of the hookshot
# (file MUST be in the /Graphics/System directory)
# (graphic size: 192 x 32 pixels {↓ ← → ↑ ─ |})
# range = range of the hooskhot (in tiles, including the target tile)
# speed = speed at which the hookshot moves (1..10)
# tag(s) = an array of event name tag IDs that will work with that hookshot
# (event name tag IDs come from ENT below)
HSHOT = { # <-- Do NOT Modify!
0 => [21, "Hookshot1", 5 , 6, [0, 1] ],
1 => [22, "Hookshot2", 6 , 6, [0, 1] ],
2 => [23, "Hookshot3", 8 , 6, [0, 1, 2] ],
3 => [24, "Hookshot4", 10, 6, [0, 1, 2, 3, 4]],
} # <-- Do NOT Modify!
# Event name tags
# (NOTE: do NOT change the "key" of the tags, as the "key" determines type)
# (example: 42 => "[EXAMPLE]", -> the 42 is the "key")
ENT = { # <-- Do NOT Modify!
0 => "[Zaczep]", # effect: pulls player to event
1 => "[DRAG BACK]", # effect: drags event to player
2 => "[ACTIVATE]", # effect: activates target event
3 => "[PUSH 1]", # effect: pushes event 1 tile
4 => "[PUSH ALL]", # effect: pushes event until it hits an impassability
} # <-- Do NOT Modify!
# Switch to DISABLE the hookshot (switch ID)
HS_SWITCH = 1
# Button to press to activate hookshot
# (Input::A, Input::L, Input::R, Input::X, Input::Y, or Input::Z)
HS_BUTTON = Input::Z
# Hookshot sound effect (sound file MUST be in the /Audio/SE directory)
# ("" = none)
HS_SOUNDFX_NAME = "Thunder3"
HS_SOUNDFX_VOLUME = 80
HS_SOUNDFX_PITCH = 100
# Allow hookshot to function across water & lava tiles?
W_LAVA = true
end
class Game_Event < Game_Character
#--------------------------------------------------------------------------
# Public Instance Variables (New)
#--------------------------------------------------------------------------
attr_accessor :direction_fix
attr_accessor :move_speed
attr_accessor :walk_anime
attr_accessor :through
#--------------------------------------------------------------------------
# Get Event Name (New)
#--------------------------------------------------------------------------
def name
return @event.name
end
end
class Game_Player < Game_Character
#--------------------------------------------------------------------------
# Include (New)
#--------------------------------------------------------------------------
include OW_HSHOT
#--------------------------------------------------------------------------
# Public Instance Variables (New)
#--------------------------------------------------------------------------
attr_accessor :direction_fix
attr_accessor :move_speed
attr_accessor :walk_anime
attr_accessor :through
#--------------------------------------------------------------------------
# Get Hookshot Type (New)
#--------------------------------------------------------------------------
def hshot_type
type = -1
for i in HSHOT.keys
type = i if $game_party.item_number($data_items[HSHOT[i][0]]) > 0
end
return type
end
end
class Scene_Map < Scene_Base
#--------------------------------------------------------------------------
# Include (New)
#--------------------------------------------------------------------------
include OW_HSHOT
#--------------------------------------------------------------------------
# Update (Mod)
#--------------------------------------------------------------------------
alias ow_hshot_scene_map_update update unless $@
def update
ow_hshot_scene_map_update
return if $game_message.visible or $game_player.moving?
return if $game_player.hshot_type < 0
do_hookshot if !$game_switches[HS_SWITCH] and Input.trigger?(HS_BUTTON)
end
#--------------------------------------------------------------------------
# Do Hookshot (New)
#--------------------------------------------------------------------------
def do_hookshot
px = gpx = $game_player.x
py = gpy = $game_player.y
moved = true
pte = etp = ate = peo = pea = peo_done = false
hook_event, delta, dx, dy = get_target(gpx, gpy)
return if delta < 2
unless HS_SOUNDFX_NAME == ""
filename = "Audio/SE/" + HS_SOUNDFX_NAME
Audio.se_play(filename, HS_SOUNDFX_VOLUME, HS_SOUNDFX_PITCH)
end
type = $game_player.hshot_type
unless hook_event.nil?
pte = (hook_event.name.include?(ENT[0]) and HSHOT[type][4].include?(0))
etp = (hook_event.name.include?(ENT[1]) and HSHOT[type][4].include?(1))
ate = (hook_event.name.include?(ENT[2]) and HSHOT[type][4].include?(2))
peo = (hook_event.name.include?(ENT[3]) and HSHOT[type][4].include?(3))
pea = (hook_event.name.include?(ENT[4]) and HSHOT[type][4].include?(4))
end
@hshot = @spriteset.hshot
w = dx == 0 ? 32 : delta * 32
h = dx == 0 ? delta * 32 : 32
@hshot.bitmap = Bitmap.new(w, h)
@hshot.x = $game_player.screen_x - 16 + (dx > 0 ? 16 : (dx < 0 ? 16 : 0))
@hshot.y = $game_player.screen_y - 28 + (dy > 0 ? 16 : (dy < 0 ? 16 : 0))
@hshot.x -= (delta * 32) if dx < 0
@hshot.y -= (delta * 32) if dy < 0
hshot = Cache.system(HSHOT[type][1])
hrect = Rect.new(128 + (dx == 0 ? 32 : 0), 0, 32, 32)
arect = Rect.new((($game_player.direction - 2) / 2) * 32, 0, 32, 32)
speed = (11 - [[1, HSHOT[type][3]].max, 10].min)
max = (dx < 0 or dy < 0) ? delta + 1 : delta - 1
max = delta if hook_event.nil? and (dx < 0 or dy < 0)
for i in 0..max
if dx != 0
bx = (dx > 0 ? i : (delta - i)) * 32
@hshot.bitmap.blt(bx, 0, hshot, arect)
@hshot.bitmap.clear_rect(bx - (dx * 32), 0, 32, 32) if i != 0
@hshot.bitmap.blt(bx - (dx * 32), 0, hshot, hrect) if i != 0
else
by = (dy > 0 ? i : (delta - i)) * 32
@hshot.bitmap.blt(0, by, hshot, arect)
@hshot.bitmap.clear_rect(0, by - (dy * 32), 32, 32) if i != 0
@hshot.bitmap.blt(0, by - (dy * 32), hshot, hrect) if i != 0
end
for j in 1..speed
update_basic
end
end
$game_map.events[hook_event.id].start if ate and !hook_event.nil?
$game_map.interpreter.update if ate and !hook_event.nil?
if !pte and !etp
max = (dx < 0 or dy < 0) ? delta + 1 : delta - 1
max = delta if hook_event.nil? and (dx < 0 or dy < 0)
for i in 0..max
if dx != 0
bx = (dx < 0 ? i : (delta - i)) * 32
@hshot.bitmap.clear_rect(bx, 0, 32, 32)
@hshot.bitmap.clear_rect(bx - (dx * 32), 0, 32, 32) if i != delta
@hshot.bitmap.blt(bx - (dx * 32), 0, hshot, arect) if i != delta
else
by = (dy < 0 ? i : (delta - i)) * 32
@hshot.bitmap.clear_rect(0, by, 32, 32)
@hshot.bitmap.clear_rect(0, by - (dy * 32), 32, 32) if i != delta
@hshot.bitmap.blt(0, by - (dy * 32), hshot, arect) if i != delta
end
if (peo or pea) and !hook_event.nil?
break if peo and peo_done
peo_done = true
ex = hook_event.x
ey = hook_event.y
if moved
moved = false
if dx < 0 and $game_map.passable?(ex - 1, ey)
$game_map.events[hook_event.id].move_left
ex -= 1
moved = true
elsif dx > 0 and $game_map.passable?(ex + 1, ey)
$game_map.events[hook_event.id].move_right
ex += 1
moved = true
elsif dy < 0 and $game_map.passable?(ex, ey - 1)
$game_map.events[hook_event.id].move_up
ey -= 1
moved = true
elsif dy > 0 and $game_map.passable?(ex, ey + 1)
$game_map.events[hook_event.id].move_down
ey += 1
moved = true
end
end
end
if (peo or pea)
update_basic while $game_map.events[hook_event.id].moving?
else
for j in 1..speed
update_basic
end
end
end
if pea and !hook_event.nil?
@hshot.bitmap.clear
while moved
moved = false
if dx < 0 and $game_map.passable?(ex - 1, ey)
$game_map.events[hook_event.id].move_left
ex -= 1
moved = true
elsif dx > 0 and $game_map.passable?(ex + 1, ey)
$game_map.events[hook_event.id].move_right
ex += 1
moved = true
elsif dy < 0 and $game_map.passable?(ex, ey - 1)
$game_map.events[hook_event.id].move_up
ey -= 1
moved = true
elsif dy > 0 and $game_map.passable?(ex, ey + 1)
$game_map.events[hook_event.id].move_down
ey += 1
moved = true
end
if moved
update_basic while $game_map.events[hook_event.id].moving?
end
end
end
else
obj = $game_player if pte
obj = $game_map.events[hook_event.id] if etp
df_reset = obj.direction_fix
wa_reset = obj.walk_anime
ms_reset = obj.move_speed
th_reset = obj.through
obj.direction_fix = obj.through = true
obj.walk_anime = false
obj.move_speed = 6
if dx != 0
for i in 0...(dx > 0 ? delta - 1 : delta)
bx = (dx > 0 ? i : (delta - i)) * 32 if obj.is_a?(Game_Player)
bx = (dx < 0 ? i : (delta - i)) * 32 if obj.is_a?(Game_Event)
@hshot.bitmap.clear_rect(bx, 0, 32, 32)
next if i == 0 and dx < 0
if $game_map.passable?(obj.x - 1, obj.y) or
(W_LAVA and water_lava?(obj.x - 1, obj.y) and
(obj.x - 2) != gpx and (obj.x - 1) != (gpx + ((delta - 1) * dx)))
obj.move_left if dx < 0 and obj.is_a?(Game_Player)
obj.move_left if dx > 0 and obj.is_a?(Game_Event)
end
if $game_map.passable?(obj.x + 1, obj.y) or
(W_LAVA and water_lava?(obj.x + 1, obj.y) and
(obj.x + 2) != gpx and (obj.x + 1) != (gpx + ((delta - 1) * dx)))
obj.move_right if dx > 0 and obj.is_a?(Game_Player)
obj.move_right if dx < 0 and obj.is_a?(Game_Event)
end
while obj.moving?
$game_player.update if obj.is_a?(Game_Player)
update_basic
end
end
else
for i in 0...(dy > 0 ? delta - 1 : delta)
by = (dy > 0 ? i : (delta - i)) * 32 if obj.is_a?(Game_Player)
by = (dy < 0 ? i : (delta - i)) * 32 if obj.is_a?(Game_Event)
@hshot.bitmap.clear_rect(0, by, 32, 32)
next if i == 0 and dy < 0
if $game_map.passable?(obj.x, obj.y - 1) or
(W_LAVA and water_lava?(obj.x, obj.y - 1) and
(obj.y - 2) != gpy and (obj.y - 1) != (gpy + ((delta - 1) * dy)))
obj.move_up if dy < 0 and obj.is_a?(Game_Player)
obj.move_up if dy > 0 and obj.is_a?(Game_Event)
end
if $game_map.passable?(obj.x, obj.y + 1) or
(W_LAVA and water_lava?(obj.x, obj.y + 1) and
(obj.y + 2) != gpy and (obj.y + 1) != (gpy + ((delta - 1) * dy)))
obj.move_down if dy > 0 and obj.is_a?(Game_Player)
obj.move_down if dy < 0 and obj.is_a?(Game_Event)
end
while obj.moving?
$game_player.update if obj.is_a?(Game_Player)
update_basic
end
end
end
obj.direction_fix = df_reset
obj.walk_anime = wa_reset
obj.move_speed = ms_reset
obj.through = th_reset
end
@hshot.bitmap.clear
end
#--------------------------------------------------------------------------
# Get Target (New)
#--------------------------------------------------------------------------
def get_target(x, y)
hevent = nil
type = $game_player.hshot_type
tx = ty = 0
sx = sy = -1
x_limit = (Graphics.width / 32) - 1
y_limit = (Graphics.height / 32) - 1
case $game_player.direction
when 2
ty = 1
for i in y..(y + y_limit)
next if i == y
for event in $game_map.events_xy(x, i)
for j in 0...ENT.size
hevent = event if event.name.include?(ENT[j])
end
end
if !$game_map.passable?(x, i) and !(W_LAVA and water_lava?(x, i))
sx = x
sy = i
break
end
break unless hevent.nil?
end
when 4
tx = -1
for i in (x - x_limit)..x
next if i == x
for event in $game_map.events_xy(i, y)
for j in 0...ENT.size
hevent = event if event.name.include?(ENT[j])
end
end
if !$game_map.passable?(i, y) and !(W_LAVA and water_lava?(i, y))
sx = i
sy = y
end
end
when 6
tx = 1
for i in x..(x + x_limit)
next if i == x
for event in $game_map.events_xy(i, y)
for j in 0...ENT.size
hevent = event if event.name.include?(ENT[j])
end
end
if !$game_map.passable?(i, y) and !(W_LAVA and water_lava?(i, y))
sx = i
sy = y
break
end
break unless hevent.nil?
end
when 8
ty = -1
for i in (y - y_limit)..y
next if i == y
for event in $game_map.events_xy(x, i)
for j in 0...ENT.size
hevent = event if event.name.include?(ENT[j])
end
end
if !$game_map.passable?(x, i) and !(W_LAVA and water_lava?(x, i))
sx = x
sy = i
end
end
end
range = HSHOT[type][2]
if !hevent.nil?
range = (x - hevent.x).abs if tx != 0
range = (y - hevent.y).abs if ty != 0
if range > HSHOT[type][2]
range = HSHOT[type][2]
hevent = nil
end
elsif sx >= 0 and sy >= 0
range = (x - sx).abs if tx != 0
range = (y - sy).abs if ty != 0
if range > HSHOT[type][2]
range = HSHOT[type][2]
hevent = nil
end
end
return hevent, range, tx, ty
end
#--------------------------------------------------------------------------
# Water or Lava Tile?
#--------------------------------------------------------------------------
def water_lava?(x, y)
tile = $game_map.data[x, y, 0]
# Water
return true if (2048..2143) === tile
return true if (2240..2287) === tile
return true if (2336..2383) === tile
return true if (2432..2479) === tile
return true if (2528..2575) === tile
return true if (2624..2671) === tile
# Lava
return true if (2720..2767) === tile
return false
end
end
________________________ Szukam kogoś do grania ze mną w Minecraft Multiplayer przez Hamachi - coś więcej w temacie
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