babin91 Posted April 13, 2008 Share Posted April 13, 2008 Ciao a ttt, mi servirebbe uno script per fare delle combo: Una skill normalissima dove, quando la uso, il PG mi fa 2 o + attacchi alla volta. Non so come fare, in giro nn trovo nnt, helpatemi plz! Link to comment Share on other sites More sharing options...
0 the-joker Posted April 13, 2008 Share Posted April 13, 2008 Dipende dal battle system che usi:standard, tattico, laterale, in tempo reale... "Quarantadue!" urlò Loonquawl. "Questo è tutto ciò che sai dire dopo un lavoro di sette milioni e mezzo di anni?""Ho controllato molto approfonditamente," disse il computer, "e questa è sicuramente la risposta. Ad essere sinceri, penso che il problema sia che voi non abbiate mai saputo veramente qual è la domanda." Gioco disponibile: Prophecy of Last Era - OPEN SOURCE http://www.mediafire.com/?u6aut42ks12ixgf Puoi utilizzare qualsiasi evento, mappa, chara, grafica, e programmazione contenuta nel gioco-demo.Nessun diritto di copia.Hope you enjoy.http://www.rpg2s.net/awards/bestmusician3.jpg Link to comment Share on other sites More sharing options...
0 babin91 Posted April 13, 2008 Author Share Posted April 13, 2008 Uso quello standard, quello con i mostri di fronte a te. Link to comment Share on other sites More sharing options...
0 Lord Sesshoumaru Posted April 14, 2008 Share Posted April 14, 2008 è rilevante? mamma mia... ora sì che mi preoccupo. Link to comment Share on other sites More sharing options...
0 babin91 Posted April 14, 2008 Author Share Posted April 14, 2008 Mi servirebbe davvero. Avete uno script o sapete dove lo posso trovare?? Link to comment Share on other sites More sharing options...
0 Sleeping Leonhart Posted April 15, 2008 Share Posted April 15, 2008 Io conosco questo do KGC: #============================================================================== # ** Multi-Attack #------------------------------------------------------------------------------ # Permette di effettuare attacchi multipli #============================================================================== #============================================================================== #Istruzioni #============================================================================== #Create all'interno della cartella "Audio/SE" del vostro gioco #un nuovo file e rinominatelo come il valore della costante MATK_HIT_SE #(di default "_multi_attack") e non dategli alcuna estensione. #Ora aprite il database e andate su Animazione, create una nuova animazione #(potete anche modificarne una gia esistente) e nella tabella effetti #fate riprodurre l'effetto sonoro creato sopra dove volete che avvenga #un attacco aggiuntivo(se l'effetto sonoro si trova più di una volta su uno #stesso frame esso viene contato comunque per 1). Associate l'animazione #alla skill o all'arma desiderata ed il gioco è fatto. #============================================================================== module KGC # Nome dell'effetto sonoro fittizio MATK_HIT_SE = "_multi_attack" # Ridisegna la Status Window ad ogni colpo MATK_HIT_REFRESH = false # Aspetta fino a che non mostra il danno # se settato su true MATK_WAIT_DAMAGE_EFFECT = false # Mostra il danno totale MATK_SHOW_TOTAL_DMG = false # Elimina danno precedente # Dopo averlo eliminato mostra il danno successivo MATK_DELETE_PREV_DMG = false # Sposta danno # Il prossimo danno verrà indicato in una posizione un po diversa MATK_SHIFT_DMG_POS = true # Setta di quanto la posizione # del danno verrà spostata MATK_SHIFT_DMG_POS_AMT = -10 # Mostra contatore colpi MATK_SHOW_HIT_COUNT = true # Mostra il contatore alle coordinate [x, y] # relative al danno. MATK_HIT_COUNT_POS = [0, 48] # Formato Contatore # "{n}parola" MATK_HIT_COUNT_FORMAT = "{n}Colpi" # Colore Contatore MATK_HIT_COUNT_COLOR = Color.new(255, 224, 160) # Proprietà Font MATK_HIT_COUNT_FONT_NAME = ["Times New Roman", "Arial"] # Nome MATK_HIT_COUNT_FONT_SIZE = 22 # Grandezza MATK_HIT_COUNT_FONT_BOLD = true # Grassetto MATK_HIT_COUNT_FONT_ITALIC = true # Corsivo end #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★ $imported = {} if $imported == nil $imported["MultiAttack"] = true #============================================================================== # ■ Game_Battler (分割定義 1) #============================================================================== class Game_Battler attr_accessor :prev_hp, :prev_sp #-------------------------------------------------------------------------- # ● オブジェクト初期化 #-------------------------------------------------------------------------- alias initialize_KGC_MultiAttack initialize def initialize initialize_KGC_MultiAttack @prev_hp = nil @prev_sp = nil end end #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★ #============================================================================== # ■ Sprite_Battler #============================================================================== class Sprite_Battler < RPG::Sprite #-------------------------------------------------------------------------- # ● オブジェクト初期化 #-------------------------------------------------------------------------- alias initialize_KGC_MultiAttack initialize def initialize(viewport, battler = nil) initialize_KGC_MultiAttack(viewport, battler) @_damage_sprite_array = [] @_damage_duration_array = [] @_damage_direct_type_array = [] @_latest_damage_sprite = nil @_hit_count_sprite = RPG::Sprite.new @_hit_count_sprite.bitmap = Bitmap.new(160, KGC::MATK_HIT_COUNT_FONT_SIZE * 3 / 2) reset_hit_count end #-------------------------------------------------------------------------- # ● 解放 #-------------------------------------------------------------------------- alias dispose_KGC_MultiAttack dispose def dispose @_damage_sprite_array.each_index { |i| dispose_damage(i) } @_hit_count_sprite.bitmap.dispose @_hit_count_sprite.dispose dispose_KGC_MultiAttack end #-------------------------------------------------------------------------- # ● 多段ヒット判定 #-------------------------------------------------------------------------- def multi_attack? if @_multi_attack @_multi_attack = false return true end return false end #-------------------------------------------------------------------------- # ● ヒットカウント加算 #-------------------------------------------------------------------------- def add_hit_count @_hit_count += 1 if KGC::MATK_SHOW_HIT_COUNT refresh_hit_count_sprite end end #-------------------------------------------------------------------------- # ● ヒットカウント初期化 #-------------------------------------------------------------------------- def reset_hit_count @_hit_count = 0 if KGC::MATK_SHOW_HIT_COUNT refresh_hit_count_sprite end end #------------------------------------------------------------------------ # ● ダメージスプライト作成 #------------------------------------------------------------------------ def damage(value, critical) @_damage_sprite_array.compact! @_damage_duration_array.compact! @_damage_direct_type_array.compact! super sprite = RPG::Sprite.new sprite.bitmap = @_damage_sprite.bitmap.dup sprite.ox = @_damage_sprite.ox sprite.oy = @_damage_sprite.oy sprite.x = @_damage_sprite.x sprite.y = @_damage_sprite.y if KGC::MATK_SHIFT_DMG_POS sprite.y += @_damage_sprite_array.size * KGC::MATK_SHIFT_DMG_POS_AMT end sprite.z = @_damage_sprite.z @_damage_sprite_array.unshift(sprite) @_damage_duration_array.unshift(40) @_damage_direct_type_array.unshift(@_damage_direct_type) @_latest_damage_sprite = sprite dispose_damage end #-------------------------------------------------------------------------- # ● ダメージスプライト破棄 #-------------------------------------------------------------------------- def dispose_damage(index = -1) if index >= 0 && @_damage_sprite_array[index] != nil if @_latest_damage_sprite == @_damage_sprite_array[index] @_latest_damage_sprite = nil end @_damage_sprite_array[index].bitmap.dispose @_damage_sprite_array[index].dispose @_damage_sprite_array[index] = nil @_damage_duration_array[index] = nil @_damage_direct_type_array[index] = nil else super() end end #-------------------------------------------------------------------------- # ● ダメージスプライトクリア #-------------------------------------------------------------------------- def clear_damage @_damage_sprite_array.each_index { |i| dispose_damage(i) } @_damage_sprite_array.compact! @_damage_duration_array.compact! @_damage_direct_type_array.compact! end #------------------------------------------------------------------------ # ● ヒットカウントスプライト再描画 #------------------------------------------------------------------------ def refresh_hit_count_sprite img = @_hit_count_sprite.bitmap img.clear if @_hit_count > 1 img.font.name = KGC::MATK_HIT_COUNT_FONT_NAME img.font.size = KGC::MATK_HIT_COUNT_FONT_SIZE img.font.bold = KGC::MATK_HIT_COUNT_FONT_BOLD img.font.italic = KGC::MATK_HIT_COUNT_FONT_ITALIC img.font.color = KGC::MATK_HIT_COUNT_COLOR format = KGC::MATK_HIT_COUNT_FORMAT.gsub(/{n}/i) {"#{@_hit_count}"} img.draw_frame_text(0, 0, img.width, img.height, format, 1) end end #-------------------------------------------------------------------------- # ● アニメーション実行タイミング #-------------------------------------------------------------------------- def animation_process_timing(timing, hit) if (timing.condition == 0) || (timing.condition == 1 && hit) || (timing.condition == 2 && !hit) if timing.se.name != "" @_multi_attack |= (timing.se.name.upcase == KGC::MATK_HIT_SE.upcase) end end super end #-------------------------------------------------------------------------- # ● エフェクト中判定 #-------------------------------------------------------------------------- if KGC::MATK_WAIT_DAMAGE_EFFECT unless defined?(INITIALIZED_MULTI_ATTACK) alias effect_KGC_MultiAttack? effect? end INITIALIZED_MULTI_ATTACK = true def effect? result = false @_damage_duration_array.each { |duration| result |= (duration > 0) } return result || effect_KGC_MultiAttack? end end #-------------------------------------------------------------------------- # ● フレーム更新 #-------------------------------------------------------------------------- alias update_KGC_MultiAttack update def update @_multi_attack = false if Graphics.frame_count % 2 == 0 update_KGC_MultiAttack if @_damage_sprite_array.size > 0 @_damage_sprite_array.each_with_index { |sp, i| if sp == nil next end if @_damage_duration_array[i] == 0 dispose_damage(i) next end @_damage_duration_array[i] -= 1 sp.x = self.x if $imported["DamageAlter"] @_damage_direct_type = @_damage_direct_type_array[i] damage_direct(sp, @_damage_duration_array[i]) else case @_damage_duration_array[i] when 38..39 sp.y -= 4 when 36..37 sp.y -= 2 when 34..35 sp.y += 2 when 28..33 sp.y += 4 end sp.opacity = 256 - (12 - @_damage_duration_array[i]) * 32 end } if KGC::MATK_SHOW_HIT_COUNT && @_latest_damage_sprite != nil update_hit_count_sprite end end @_damage_sprite_array.compact! @_damage_duration_array.compact! end #------------------------------------------------------------------------ # ● ヒットカウントスプライト更新 #------------------------------------------------------------------------ def update_hit_count_sprite sp = @_latest_damage_sprite sp2 = @_hit_count_sprite sp2.ox = sp.ox sp2.oy = sp.oy sp2.x = sp.x + KGC::MATK_HIT_COUNT_POS[0] sp2.y = sp.y + KGC::MATK_HIT_COUNT_POS[1] sp2.z = sp.z + 1 sp2.opacity = sp.opacity end end #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★ #============================================================================== # ■ Spriteset_Battle #============================================================================== class Spriteset_Battle #-------------------------------------------------------------------------- # ● スプライト取得 #-------------------------------------------------------------------------- def sprites return (@enemy_sprites + @actor_sprites).compact end end #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★ #============================================================================== # ■ Scene_Battle (分割定義 1) #============================================================================== class Scene_Battle #-------------------------------------------------------------------------- # ● フレーム更新 #-------------------------------------------------------------------------- alias update_KGC_MultiAttack update def update update_multi_attack_effect update_KGC_MultiAttack end #-------------------------------------------------------------------------- # ● 多段攻撃更新 #-------------------------------------------------------------------------- def update_multi_attack_effect attacker = ($imported["ActiveCountBattle"] ? @action_battler : @active_battler) if @phase4_step == 5 && @target_battlers != [] && attacker != nil # ステータスウィンドウ再描画 if KGC::MATK_HIT_REFRESH @status_window.refresh end @spriteset.sprites.each { |sp| # 多段ヒット判定 unless sp.multi_attack? && @target_battlers.include?(sp.battler) next end if KGC::MATK_DELETE_PREV_DMG sp.clear_damage end # 合計ダメージ更新 if @_matk_total_damage[sp.battler] == nil @_matk_total_damage[sp.battler] = 0 end if sp.battler.damage.is_a?(Numeric) @_matk_total_damage[sp.battler] += sp.battler.damage end if KGC::MATK_SHOW_TOTAL_DMG # 合計を表示 sp.damage(@_matk_total_damage[sp.battler], sp.battler.critical) else # 逐次表示 sp.damage(sp.battler.damage, sp.battler.critical) end # ヒット数更新 if KGC::MATK_SHOW_HIT_COUNT && sp.battler.damage.is_a?(Numeric) sp.add_hit_count end # 効果を追加 case attacker.current_action.kind when 0 if attacker.current_action.basic == 0 sp.battler.attack_effect(attacker) end when 1 skill = $data_skills[attacker.current_action.skill_id] sp.battler.skill_effect(attacker, skill) when 2 item = $data_skills[attacker.current_action.item_id] sp.battler.item_effect(item) end # 元のHP/SPを更新 sp.battler.prev_hp = sp.battler.hp sp.battler.prev_sp = sp.battler.sp } end end end #============================================================================== # ■ Scene_Battle (分割定義 4) #============================================================================== class Scene_Battle #-------------------------------------------------------------------------- # ● フレーム更新 (メインフェーズ ステップ 4 : 対象側アニメーション) #-------------------------------------------------------------------------- alias update_phase4_step4_KGC_MultiAttack update_phase4_step4 def update_phase4_step4 @_matk_total_damage = {} if KGC::MATK_SHOW_HIT_COUNT @spriteset.sprites.each { |sp| sp.reset_hit_count } end update_phase4_step4_KGC_MultiAttack end #-------------------------------------------------------------------------- # ● フレーム更新 (メインフェーズ ステップ 5 : ダメージ表示) #-------------------------------------------------------------------------- alias update_phase4_step5_KGC_MultiAttack update_phase4_step5 def update_phase4_step5 # 多段ダメージ更新処理 @spriteset.sprites.each { |sp| if @target_battlers.include?(sp.battler) && @_matk_total_damage[sp.battler] != nil && sp.battler.damage.is_a?(Numeric) if KGC::MATK_SHOW_TOTAL_DMG sp.battler.damage = @_matk_total_damage[sp.battler] + sp.battler.damage end if KGC::MATK_SHOW_HIT_COUNT sp.add_hit_count end end } update_phase4_step5_KGC_MultiAttack end end #_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/ #_/ ◆縁取り・影文字描画 - KGC_FrameShadowText◆ #_/---------------------------------------------------------------------------- #_/ draw_text を強化し、縁取りや影文字の描画機能を追加します。 #_/ Provides functions to draw texts which framed or dropped shadow. #_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/ $imported = {} if $imported == nil $imported["FrameShadowText"] = true #============================================================================== # ■ Bitmap #============================================================================== class Bitmap #-------------------------------------------------------------------------- # ● 縁取り文字描画 # x, y, width, height, string[, align, frame_color] # rect, string[, align, frame_color] #-------------------------------------------------------------------------- def draw_frame_text(*args) # 引数判定 if args[0].is_a?(Rect) if args.size >= 2 && args.size <= 4 # 引数を処理用のローカル変数へコピー x, y = args[0].x, args[0].y width, height = args[0].width, args[0].height string = args[1] align = args[2].equal?(nil) ? 0 : args[2] frame_color = args[3].equal?(nil) ? Color.new(0, 0, 0) : args[3] else # 引数が不正ならエラーを吐く raise(ArgumentError, "wrong number of arguments(#{args.size} of #{args.size < 2 ? 2 : 4})") return end else if args.size >= 5 && args.size <= 7 # 引数を処理用のローカル変数へコピー x, y, width, height = args string = args[4] align = args[5].equal?(nil) ? 0 : args[5] frame_color = args[6].equal?(nil) ? Color.new(0, 0, 0) : args[6] else # 引数が不正ならエラーを吐く raise(ArgumentError, "wrong number of arguments(#{args.size} of #{args.size < 5 ? 5 : 7})") return end end # 元の色を保存 origin_color = font.color.dup # 縁取り font.color = frame_color draw_text(x - 1, y - 1, width, height, string, align) draw_text(x - 1, y + 1, width, height, string, align) draw_text(x + 1, y - 1, width, height, string, align) draw_text(x + 1, y + 1, width, height, string, align) # 元の色に戻す font.color = origin_color draw_text(x, y, width, height, string, align) end #-------------------------------------------------------------------------- # ● 影文字描画 # x, y, width, height, string[, align, shadow_color] # rect, string[, align, shadow_color] #-------------------------------------------------------------------------- def draw_shadow_text(*args) # 引数判定 if args[0].is_a?(Rect) if args.size >= 2 && args.size <= 4 # 引数を処理用のローカル変数へコピー x, y = args[0].x, args[0].y width, height = args[0].width, args[0].height string = args[1] align = args[2].equal?(nil) ? 0 : args[2] shadow_color = args[3].equal?(nil) ? Color.new(0, 0, 0) : args[3] else # 引数が不正ならエラーを吐く raise(ArgumentError, "wrong number of arguments(#{args.size} of #{args.size < 2 ? 2 : 4})") return end else if args.size >= 5 && args.size <= 7 # 引数を処理用のローカル変数へコピー x, y, width, height = args string = args[4] align = args[5].equal?(nil) ? 0 : args[5] shadow_color = args[6].equal?(nil) ? Color.new(0, 0, 0) : args[6] else # 引数が不正ならエラーを吐く raise(ArgumentError, "wrong number of arguments(#{args.size} of #{args.size < 5 ? 5 : 7})") return end end # 元の色を保存 origin_color = font.color.dup # 影描画 font.color = shadow_color draw_text(x + 2, y + 2, width, height, string, align) # 元の色に戻す font.color = origin_color draw_text(x, y, width, height, string, align) end end Ho scritto le istruzioni in italiano, se nn capisci qualcosa dimmelo. http://img296.imageshack.us/img296/8784/csuserbarew2.pngScarica la Demo!Tutti i miei script(o quasi) li trovi Qui! Link to comment Share on other sites More sharing options...
0 TNK Posted April 16, 2008 Share Posted April 16, 2008 Potresti postare una demo? Link to comment Share on other sites More sharing options...
0 friday666 Posted April 16, 2008 Share Posted April 16, 2008 Scusa ma una volta che hai direttamente lo script non è meglio? Te lo puoi provare direttamente da te no? (\__/)(='.'=)(")_(")Questo è Bunny. Ho deciso di aiutarlo nella sua missione di conquista del mondo.Compagni di Bunny unitevi a me! http://img170.imageshack.us/img170/1858/pizzelartzzennm9.pngI chara da me postati: CLICCA QUI! PER XP - CLICCA QUI! PER XP(2) - CLICCA QUI! PER VX - CLICCA QUI! PER 2K/2K3!I tileset da me postati:CLICCA QUI! PER XPI Personaggi Completi da me postati: CLICCA QUI! PER XP I Face da me postati: CLICCA QUI! PER XPI Battlers da me postati: CLICCA QUI! PER XP!Le Windowskin da me postate: CLICCA QUI! PER XP!Risorse sonore da me postate: CLICCA QUI! PER SCARICARLE!Guida al Ruby: CLICCA QUI! PER SCARICARLA!Vi prego di inserirmi nei crediti...Grazie! Link to comment Share on other sites More sharing options...
0 babin91 Posted April 16, 2008 Author Share Posted April 16, 2008 MI FUNZIA!!!!! grazie 1000 speeding leon!!! Link to comment Share on other sites More sharing options...
0 TNK Posted April 17, 2008 Share Posted April 17, 2008 Sarebbe meglio una demo xkè così ci sono già sia il file audio da creare per far funzionare lo script che magari anche qualche abilità... Link to comment Share on other sites More sharing options...
0 redXIII Posted April 18, 2008 Share Posted April 18, 2008 scusa fallo con gli eventi...è facile mo ti spiego:con un evento in comune metti che appena il pg arriva al 20 o 10% della sua vita (poi vedi tu) aumenta la potenza oppure metti che appena arriva a questa percentuale di vita si aggiunge una skill che poi si leverà quando la vita aumenta a più del 10% o 20%... puoi fa così vedi un po' te...XD LAST LEGEND tempo di programmazione rimasto in percentuale è:Storia del gioco: 98%Storia dei personaggi: 75%Storia politica mondiale: 80%Applicazione e sviluppo dell'avventura, tempo rimasto in percentuale è:Titleset:40%Charaset:20%Animation:90%Idem,Skill,Armi:50%Scene Animate:10%http://img518.imageshack.us/img518/5919/logoufficialecopiawr2.png Link to comment Share on other sites More sharing options...
0 TNK Posted April 18, 2008 Share Posted April 18, 2008 (edited) Di "turbo system" ad eventi ne ho già fatti alcuni, nn è qll il problema... Cmq x la cronaca non importa più la demo, ho fatto da solo. Sleeping L. 6 un grande! Era da mesi k cercavo 1 script così Edited April 18, 2008 by TNK Link to comment Share on other sites More sharing options...
Question
babin91
Link to comment
Share on other sites
11 answers to this question
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now