| invalid pointer operation | |
|
|
Auteur | Message |
---|
juljul999 lvl 1
Nombre de messages : 1 Date d'inscription : 19/01/2006
| Sujet: invalid pointer operation Jeu 19 Jan - 12:13 | |
| Voila j'éspère que c'est le bon endroit pour poster. J'ai un problème itinérant dans mon jeu, et qu'il l'ai dans n'importe quelle jeu avancé que je fais. Lors de combats et lorsque j'utilise de la magie (n'importe laquelle, magie de base ou crée par mes soins) , environ 1 fois sur 6 cela se termine par un message "invalid pointer operation" ou par "the reading violation fot the address .... with the address ... of the module RPG_RT.exe occured", deux messages bien grossiés qui parasitent mon jeu. Je précise que cela ne vient pas du RTP, que cela n'arrive pas lorsque je n'utilise pas la magie. J'utilise la vesion 1.09 de boddom child mais le problème est le même avec une ancienne version de la Yume team. Je suis assez experimenté dans le game-making ( pas trop non plus mais...) et je ne pense pas que cela vienne d'une erreur de ma part ( j'espere peut être que si ). Apres des recherche je me suis aperçu que je n'etais pas le seul a avoir ce probleme même s'il reste assez rare, et sans réponse. Si quelqu'un a une idée... MERCI | |
|
| |
Invité Invité
| Sujet: Re: invalid pointer operation Jeu 19 Jan - 19:15 | |
| un conseil
tu a cas le desinstaler et le re-telecharger mais sur RPG-CREATION tu vera moi je les prit la et aucun blme voila ta K esaier |
|
| |
yekais Charset Maker
Nombre de messages : 204 Date d'inscription : 09/12/2005
| Sujet: Game_Battler Jeu 19 Jan - 19:24 | |
| oui j'ai bien vue ton souci!!je pense que c'est un problème de script!Hum voyon voir! Clique sur f11 pour ouvrir les scripts Tu mets ce script dans Game_Battler 1(copier coller) #============================================================================== # ■ Game_Battler (分割定義 1) #------------------------------------------------------------------------------ # バトラーを扱うクラスです。このクラスは Game_Actor クラスと Game_Enemy クラ # スのスーパークラスとして使用されます。 #==============================================================================
class Game_Battler #-------------------------------------------------------------------------- # ● 公開インスタンス変数 #-------------------------------------------------------------------------- attr_reader :battler_name # バトラー ファイル名 attr_reader :battler_hue # バトラー 色相 attr_reader :hp # HP attr_reader :sp # SP attr_reader :states # ステート attr_accessor :hidden # 隠れフラグ attr_accessor :immortal # 不死身フラグ attr_accessor :damage_pop # ダメージ表示フラグ attr_accessor :damage # ダメージ値 attr_accessor :critical # クリティカルフラグ attr_accessor :animation_id # アニメーション ID attr_accessor :animation_hit # アニメーション ヒットフラグ attr_accessor :white_flash # 白フラッシュフラグ attr_accessor :blink # 明滅フラグ #-------------------------------------------------------------------------- # ● オブジェクト初期化 #-------------------------------------------------------------------------- def initialize @battler_name = "" @battler_hue = 0 @hp = 0 @sp = 0 @states = [] @states_turn = {} @maxhp_plus = 0 @maxsp_plus = 0 @str_plus = 0 @dex_plus = 0 @agi_plus = 0 @int_plus = 0 @hidden = false @immortal = false @damage_pop = false @damage = nil @critical = false @animation_id = 0 @animation_hit = false @white_flash = false @blink = false @current_action = Game_BattleAction.new end #-------------------------------------------------------------------------- # ● MaxHP の取得 #-------------------------------------------------------------------------- def maxhp n = [[base_maxhp + @maxhp_plus, 1].max, 999999].min for i in @states n *= $data_states[i].maxhp_rate / 100.0 end n = [[Integer(n), 1].max, 999999].min return n end #-------------------------------------------------------------------------- # ● MaxSP の取得 #-------------------------------------------------------------------------- def maxsp n = [[base_maxsp + @maxsp_plus, 0].max, 9999].min for i in @states n *= $data_states[i].maxsp_rate / 100.0 end n = [[Integer(n), 0].max, 9999].min return n end #-------------------------------------------------------------------------- # ● 腕力の取得 #-------------------------------------------------------------------------- def str n = [[base_str + @str_plus, 1].max, 999].min for i in @states n *= $data_states[i].str_rate / 100.0 end n = [[Integer(n), 1].max, 999].min return n end #-------------------------------------------------------------------------- # ● 器用さの取得 #-------------------------------------------------------------------------- def dex n = [[base_dex + @dex_plus, 1].max, 999].min for i in @states n *= $data_states[i].dex_rate / 100.0 end n = [[Integer(n), 1].max, 999].min return n end #-------------------------------------------------------------------------- # ● 素早さの取得 #-------------------------------------------------------------------------- def agi n = [[base_agi + @agi_plus, 1].max, 999].min for i in @states n *= $data_states[i].agi_rate / 100.0 end n = [[Integer(n), 1].max, 999].min return n end #-------------------------------------------------------------------------- # ● 魔力の取得 #-------------------------------------------------------------------------- def int n = [[base_int + @int_plus, 1].max, 999].min for i in @states n *= $data_states[i].int_rate / 100.0 end n = [[Integer(n), 1].max, 999].min return n end #-------------------------------------------------------------------------- # ● MaxHP の設定 # maxhp : 新しい MaxHP #-------------------------------------------------------------------------- def maxhp=(maxhp) @maxhp_plus += maxhp - self.maxhp @maxhp_plus = [[@maxhp_plus, -9999].max, 9999].min @hp = [@hp, self.maxhp].min end #-------------------------------------------------------------------------- # ● MaxSP の設定 # maxsp : 新しい MaxSP #-------------------------------------------------------------------------- def maxsp=(maxsp) @maxsp_plus += maxsp - self.maxsp @maxsp_plus = [[@maxsp_plus, -9999].max, 9999].min @sp = [@sp, self.maxsp].min end #-------------------------------------------------------------------------- # ● 腕力の設定 # str : 新しい腕力 #-------------------------------------------------------------------------- def str=(str) @str_plus += str - self.str @str_plus = [[@str_plus, -999].max, 999].min end #-------------------------------------------------------------------------- # ● 器用さの設定 # dex : 新しい器用さ #-------------------------------------------------------------------------- def dex=(dex) @dex_plus += dex - self.dex @dex_plus = [[@dex_plus, -999].max, 999].min end #-------------------------------------------------------------------------- # ● 素早さの設定 # agi : 新しい素早さ #-------------------------------------------------------------------------- def agi=(agi) @agi_plus += agi - self.agi @agi_plus = [[@agi_plus, -999].max, 999].min end #-------------------------------------------------------------------------- # ● 魔力の設定 # int : 新しい魔力 #-------------------------------------------------------------------------- def int=(int) @int_plus += int - self.int @int_plus = [[@int_plus, -999].max, 999].min end #-------------------------------------------------------------------------- # ● 命中率の取得 #-------------------------------------------------------------------------- def hit n = 100 for i in @states n *= $data_states[i].hit_rate / 100.0 end return Integer(n) end #-------------------------------------------------------------------------- # ● 攻撃力の取得 #-------------------------------------------------------------------------- def atk n = base_atk for i in @states n *= $data_states[i].atk_rate / 100.0 end return Integer(n) end #-------------------------------------------------------------------------- # ● 物理防御の取得 #-------------------------------------------------------------------------- def pdef n = base_pdef for i in @states n *= $data_states[i].pdef_rate / 100.0 end return Integer(n) end #-------------------------------------------------------------------------- # ● 魔法防御の取得 #-------------------------------------------------------------------------- def mdef n = base_mdef for i in @states n *= $data_states[i].mdef_rate / 100.0 end return Integer(n) end #-------------------------------------------------------------------------- # ● 回避修正の取得 #-------------------------------------------------------------------------- def eva n = base_eva for i in @states n += $data_states[i].eva end return n end #-------------------------------------------------------------------------- # ● HP の変更 # hp : 新しい HP #-------------------------------------------------------------------------- def hp=(hp) @hp = [[hp, maxhp].min, 0].max # 戦闘不能を付加または解除 for i in 1...$data_states.size if $data_states[i].zero_hp if self.dead? add_state(i) else remove_state(i) end end end end #-------------------------------------------------------------------------- # ● SP の変更 # sp : 新しい SP #-------------------------------------------------------------------------- def sp=(sp) @sp = [[sp, maxsp].min, 0].max end #-------------------------------------------------------------------------- # ● 全回復 #-------------------------------------------------------------------------- def recover_all @hp = maxhp @sp = maxsp for i in @states.clone remove_state(i) end end #-------------------------------------------------------------------------- # ● カレントアクションの取得 #-------------------------------------------------------------------------- def current_action return @current_action end #-------------------------------------------------------------------------- # ● アクションスピードの決定 #-------------------------------------------------------------------------- def make_action_speed @current_action.speed = agi + rand(10 + agi / 4) end #-------------------------------------------------------------------------- # ● 戦闘不能判定 #-------------------------------------------------------------------------- def dead? return (@hp == 0 and not @immortal) end #-------------------------------------------------------------------------- # ● 存在判定 #-------------------------------------------------------------------------- def exist? return (not @hidden and (@hp > 0 or @immortal)) end #-------------------------------------------------------------------------- # ● HP 0 判定 #-------------------------------------------------------------------------- def hp0? return (not @hidden and @hp == 0) end #-------------------------------------------------------------------------- # ● コマンド入力可能判定 #-------------------------------------------------------------------------- def inputable? return (not @hidden and restriction <= 1) end #-------------------------------------------------------------------------- # ● 行動可能判定 #-------------------------------------------------------------------------- def movable? return (not @hidden and restriction < 4) end #-------------------------------------------------------------------------- # ● 防御中判定 #-------------------------------------------------------------------------- def guarding? return (@current_action.kind == 0 and @current_action.basic == 1) end #-------------------------------------------------------------------------- # ● 休止中判定 #-------------------------------------------------------------------------- def resting? return (@current_action.kind == 0 and @current_action.basic == 3) end end
Suite dans le prochain message! | |
|
| |
yekais Charset Maker
Nombre de messages : 204 Date d'inscription : 09/12/2005
| Sujet: Suite Jeu 19 Jan - 19:29 | |
| Game_Battler 2 #============================================================================== # ■ Game_Battler (分割定義 2) #------------------------------------------------------------------------------ # バトラーを扱うクラスです。このクラスは Game_Actor クラスと Game_Enemy クラ # スのスーパークラスとして使用されます。 #==============================================================================
class Game_Battler #-------------------------------------------------------------------------- # ● ステートの検査 # state_id : ステート ID #-------------------------------------------------------------------------- def state?(state_id) # 該当するステートが付加されていれば true を返す return @states.include?(state_id) end #-------------------------------------------------------------------------- # ● ステートがフルかどうかの判定 # state_id : ステート ID #-------------------------------------------------------------------------- def state_full?(state_id) # 該当するステートが付加されていなけば false を返す unless self.state?(state_id) return false end # 持続ターン数が -1 (オートステート) なら true を返す if @states_turn[state_id] == -1 return true end # 持続ターン数が自然解除の最低ターン数と同じなら true を返す return @states_turn[state_id] == $data_states[state_id].hold_turn end #-------------------------------------------------------------------------- # ● ステートの付加 # state_id : ステート ID # force : 強制付加フラグ (オートステートの処理で使用) #-------------------------------------------------------------------------- def add_state(state_id, force = false) # 無効なステートの場合 if $data_states[state_id] == nil # メソッド終了 return end # 強制付加ではない場合 unless force # 既存のステートのループ for i in @states # 新しいステートが既存のステートのステート変化 (-) に含まれており、 # そのステートが新しいステートのステート変化 (-) には含まれない場合 # (ex : 戦闘不能のときに毒を付加しようとした場合) if $data_states[i].minus_state_set.include?(state_id) and not $data_states[state_id].minus_state_set.include?(i) # メソッド終了 return end end end # このステートが付加されていない場合 unless state?(state_id) # ステート ID を @states 配列に追加 @states.push(state_id) # オプション [HP 0 の状態とみなす] が有効の場合 if $data_states[state_id].zero_hp # HP を 0 に変更 @hp = 0 end # 全ステートのループ for i in 1...$data_states.size # ステート変化 (+) 処理 if $data_states[state_id].plus_state_set.include?(i) add_state(i) end # ステート変化 (-) 処理 if $data_states[state_id].minus_state_set.include?(i) remove_state(i) end end # レーティングの大きい順 (同値の場合は制約の強い順) に並び替え @states.sort! do |a, b| state_a = $data_states[a] state_b = $data_states[b] if state_a.rating > state_b.rating -1 elsif state_a.rating < state_b.rating +1 elsif state_a.restriction > state_b.restriction -1 elsif state_a.restriction < state_b.restriction +1 else a <=> b end end end # 強制付加の場合 if force # 自然解除の最低ターン数を -1 (無効) に設定 @states_turn[state_id] = -1 end # 強制付加ではない場合 unless @states_turn[state_id] == -1 # 自然解除の最低ターン数を設定 @states_turn[state_id] = $data_states[state_id].hold_turn end # 行動不能の場合 unless movable? # アクションをクリア @current_action.clear end # HP および SP の最大値チェック @hp = [@hp, self.maxhp].min @sp = [@sp, self.maxsp].min end #-------------------------------------------------------------------------- # ● ステートの解除 # state_id : ステート ID # force : 強制解除フラグ (オートステートの処理で使用) #-------------------------------------------------------------------------- def remove_state(state_id, force = false) # このステートが付加されている場合 if state?(state_id) # 強制付加されたステートで、かつ解除が強制ではない場合 if @states_turn[state_id] == -1 and not force # メソッド終了 return end # 現在の HP が 0 かつ オプション [HP 0 の状態とみなす] が有効の場合 if @hp == 0 and $data_states[state_id].zero_hp # ほかに [HP 0 の状態とみなす] ステートがあるかどうか判定 zero_hp = false for i in @states if i != state_id and $data_states[i].zero_hp zero_hp = true end end
J'ai coupé le message en deux tu continura a le mettre dans se script! | |
|
| |
yekais Charset Maker
Nombre de messages : 204 Date d'inscription : 09/12/2005
| Sujet: Re: invalid pointer operation Jeu 19 Jan - 19:30 | |
| Suite du message tu le mettera dans Game_Battler 2 a la suite!
# 戦闘不能を解除してよければ、HP を 1 に変更 if zero_hp == false @hp = 1 end end # ステート ID を @states 配列および @states_turn ハッシュから削除 @states.delete(state_id) @states_turn.delete(state_id) end # HP および SP の最大値チェック @hp = [@hp, self.maxhp].min @sp = [@sp, self.maxsp].min end #-------------------------------------------------------------------------- # ● ステートのアニメーション ID 取得 #-------------------------------------------------------------------------- def state_animation_id # ステートがひとつも付加されていない場合 if @states.size == 0 return 0 end # レーティング最大のステートのアニメーション ID を返す return $data_states[@states[0]].animation_id end #-------------------------------------------------------------------------- # ● 制約の取得 #-------------------------------------------------------------------------- def restriction restriction_max = 0 # 現在付加されているステートから最大の restriction を取得 for i in @states if $data_states[i].restriction >= restriction_max restriction_max = $data_states[i].restriction end end return restriction_max end #-------------------------------------------------------------------------- # ● ステート [EXP を獲得できない] 判定 #-------------------------------------------------------------------------- def cant_get_exp? for i in @states if $data_states[i].cant_get_exp return true end end return false end #-------------------------------------------------------------------------- # ● ステート [攻撃を回避できない] 判定 #-------------------------------------------------------------------------- def cant_evade? for i in @states if $data_states[i].cant_evade return true end end return false end #-------------------------------------------------------------------------- # ● ステート [スリップダメージ] 判定 #-------------------------------------------------------------------------- def slip_damage? for i in @states if $data_states[i].slip_damage return true end end return false end #-------------------------------------------------------------------------- # ● バトル用ステートの解除 (バトル終了時に呼び出し) #-------------------------------------------------------------------------- def remove_states_battle for i in @states.clone if $data_states[i].battle_only remove_state(i) end end end #-------------------------------------------------------------------------- # ● ステート自然解除 (ターンごとに呼び出し) #-------------------------------------------------------------------------- def remove_states_auto for i in @states_turn.keys.clone if @states_turn[i] > 0 @states_turn[i] -= 1 elsif rand(100) < $data_states[i].auto_release_prob remove_state(i) end end end #-------------------------------------------------------------------------- # ● ステート衝撃解除 (物理ダメージごとに呼び出し) #-------------------------------------------------------------------------- def remove_states_shock for i in @states.clone if rand(100) < $data_states[i].shock_release_prob remove_state(i) end end end #-------------------------------------------------------------------------- # ● ステート変化 (+) の適用 # plus_state_set : ステート変化 (+) #-------------------------------------------------------------------------- def states_plus(plus_state_set) # 有効フラグをクリア effective = false # ループ (付加するステート) for i in plus_state_set # このステートが防御されていない場合 unless self.state_guard?(i) # このステートがフルでなければ有効フラグをセット effective |= self.state_full?(i) == false # ステートが [抵抗しない] の場合 if $data_states[i].nonresistance # ステート変化フラグをセット @state_changed = true # ステートを付加 add_state(i) # このステートがフルではない場合 elsif self.state_full?(i) == false # ステート有効度を確率に変換し、乱数と比較 if rand(100) < [0,100,80,60,40,20,0][self.state_ranks[i]] # ステート変化フラグをセット @state_changed = true # ステートを付加 add_state(i) end end end end # メソッド終了 return effective end #-------------------------------------------------------------------------- # ● ステート変化 (-) の適用 # minus_state_set : ステート変化 (-) #-------------------------------------------------------------------------- def states_minus(minus_state_set) # 有効フラグをクリア effective = false # ループ (解除するステート) for i in minus_state_set # このステートが付加されていれば有効フラグをセット effective |= self.state?(i) # ステート変化フラグをセット @state_changed = true # ステートを解除 remove_state(i) end # メソッド終了 return effective end end | |
|
| |
yekais Charset Maker
Nombre de messages : 204 Date d'inscription : 09/12/2005
| Sujet: Game_Battler 3 Jeu 19 Jan - 19:34 | |
| et voici l'avant dernier script a changé!
Game_Battler 3 #============================================================================== # ■ Game_Battler (分割定義 3) #------------------------------------------------------------------------------ # バトラーを扱うクラスです。このクラスは Game_Actor クラスと Game_Enemy クラ # スのスーパークラスとして使用されます。 #==============================================================================
class Game_Battler #-------------------------------------------------------------------------- # ● スキルの使用可能判定 # skill_id : スキル ID #-------------------------------------------------------------------------- def skill_can_use?(skill_id) # SP が足りない場合は使用不可 if $data_skills[skill_id].sp_cost > self.sp return false end # 戦闘不能の場合は使用不可 if dead? return false end # 沈黙状態の場合、物理スキル以外は使用不可 if $data_skills[skill_id].atk_f == 0 and self.restriction == 1 return false end # 使用可能時を取得 occasion = $data_skills[skill_id].occasion # 戦闘中の場合 if $game_temp.in_battle # [常時] または [バトルのみ] なら使用可 return (occasion == 0 or occasion == 1) # 戦闘中ではない場合 else # [常時] または [メニューのみ] なら使用可 return (occasion == 0 or occasion == 2) end end #-------------------------------------------------------------------------- # ● 通常攻撃の効果適用 # attacker : 攻撃者 (バトラー) #-------------------------------------------------------------------------- def attack_effect(attacker) # クリティカルフラグをクリア self.critical = false # 第一命中判定 hit_result = (rand(100) < attacker.hit) # 命中の場合 if hit_result == true # 基本ダメージを計算 atk = [attacker.atk - self.pdef / 2, 0].max self.damage = atk * (20 + attacker.str) / 20 # 属性修正 self.damage *= elements_correct(attacker.element_set) self.damage /= 100 # ダメージの符号が正の場合 if self.damage > 0 # クリティカル修正 if rand(100) < 4 * attacker.dex / self.agi self.damage *= 2 self.critical = true end # 防御修正 if self.guarding? self.damage /= 2 end end # 分散 if self.damage.abs > 0 amp = [self.damage.abs * 15 / 100, 1].max self.damage += rand(amp+1) + rand(amp+1) - amp end # 第二命中判定 eva = 8 * self.agi / attacker.dex + self.eva hit = self.damage < 0 ? 100 : 100 - eva hit = self.cant_evade? ? 100 : hit hit_result = (rand(100) < hit) end # 命中の場合 if hit_result == true # ステート衝撃解除 remove_states_shock # HP からダメージを減算 self.hp -= self.damage # ステート変化 @state_changed = false states_plus(attacker.plus_state_set) states_minus(attacker.minus_state_set) # ミスの場合 else # ダメージに "Miss" を設定 self.damage = "Miss" # クリティカルフラグをクリア self.critical = false end # メソッド終了 return true end #-------------------------------------------------------------------------- # ● スキルの効果適用 # user : スキルの使用者 (バトラー) # skill : スキル #-------------------------------------------------------------------------- def skill_effect(user, skill) # クリティカルフラグをクリア self.critical = false # スキルの効果範囲が HP 1 以上の味方で、自分の HP が 0、 # またはスキルの効果範囲が HP 0 の味方で、自分の HP が 1 以上の場合 if ((skill.scope == 3 or skill.scope == 4) and self.hp == 0) or ((skill.scope == 5 or skill.scope == 6) and self.hp >= 1) # メソッド終了 return false end # 有効フラグをクリア effective = false # コモンイベント ID が有効の場合は有効フラグをセット effective |= skill.common_event_id > 0 # 第一命中判定 hit = skill.hit if skill.atk_f > 0 hit *= user.hit / 100 end hit_result = (rand(100) < hit) # 不確実なスキルの場合は有効フラグをセット effective |= hit < 100 # 命中の場合 if hit_result == true # 威力を計算 power = skill.power + user.atk * skill.atk_f / 100 if power > 0 power -= self.pdef * skill.pdef_f / 200 power -= self.mdef * skill.mdef_f / 200 power = [power, 0].max end # 倍率を計算 rate = 20 rate += (user.str * skill.str_f / 100) rate += (user.dex * skill.dex_f / 100) rate += (user.agi * skill.agi_f / 100) rate += (user.int * skill.int_f / 100) # 基本ダメージを計算 self.damage = power * rate / 20 # 属性修正 self.damage *= elements_correct(skill.element_set) self.damage /= 100 # ダメージの符号が正の場合 if self.damage > 0 # 防御修正 if self.guarding? self.damage /= 2 end end # 分散 if skill.variance > 0 and self.damage.abs > 0 amp = [self.damage.abs * skill.variance / 100, 1].max self.damage += rand(amp+1) + rand(amp+1) - amp end # 第二命中判定 eva = 8 * self.agi / user.dex + self.eva hit = self.damage < 0 ? 100 : 100 - eva * skill.eva_f / 100 hit = self.cant_evade? ? 100 : hit hit_result = (rand(100) < hit) # 不確実なスキルの場合は有効フラグをセット effective |= hit < 100 end # 命中の場合 if hit_result == true # 威力 0 以外の物理攻撃の場合 if skill.power != 0 and skill.atk_f > 0 # ステート衝撃解除 remove_states_shock # 有効フラグをセット effective = true end # HP からダメージを減算 last_hp = self.hp self.hp -= self.damage effective |= self.hp != last_hp # ステート変化 @state_changed = false effective |= states_plus(skill.plus_state_set) effective |= states_minus(skill.minus_state_set) # 威力が 0 の場合 if skill.power == 0 # ダメージに空文字列を設定 self.damage = "" # ステートに変化がない場合 unless @state_changed # ダメージに "Miss" を設定 self.damage = "Miss" end end # ミスの場合 else # ダメージに "Miss" を設定 self.damage = "Miss" end # 戦闘中でない場合 unless $game_temp.in_battle # ダメージに nil を設定 self.damage = nil end # メソッド終了 return effective end #-------------------------------------------------------------------------- # ● アイテムの効果適用 # item : アイテム #-------------------------------------------------------------------------- def item_effect(item) # クリティカルフラグをクリア self.critical = false # アイテムの効果範囲が HP 1 以上の味方で、自分の HP が 0、 # またはアイテムの効果範囲が HP 0 の味方で、自分の HP が 1 以上の場合 if ((item.scope == 3 or item.scope == 4) and self.hp == 0) or ((item.scope == 5 or item.scope == 6) and self.hp >= 1) # メソッド終了 return false end
Suite de ce script dans le prochain message donc tu le mettera a la suite de ce script! | |
|
| |
yekais Charset Maker
Nombre de messages : 204 Date d'inscription : 09/12/2005
| Sujet: Re: invalid pointer operation Jeu 19 Jan - 19:36 | |
| Voilà la suite!!lol!je sais que c'est compliqué mais je fais sa pour toi c'est des scripts que j'ai modifié et qui marche enfin sur le mien!^^'
Suite du script Game_Battler 3
# 有効フラグをクリア effective = false # コモンイベント ID が有効の場合は有効フラグをセット effective |= item.common_event_id > 0 # 命中判定 hit_result = (rand(100) < item.hit) # 不確実なスキルの場合は有効フラグをセット effective |= item.hit < 100 # 命中の場合 if hit_result == true # 回復量を計算 recover_hp = maxhp * item.recover_hp_rate / 100 + item.recover_hp recover_sp = maxsp * item.recover_sp_rate / 100 + item.recover_sp if recover_hp < 0 recover_hp += self.pdef * item.pdef_f / 20 recover_hp += self.mdef * item.mdef_f / 20 recover_hp = [recover_hp, 0].min end # 属性修正 recover_hp *= elements_correct(item.element_set) recover_hp /= 100 recover_sp *= elements_correct(item.element_set) recover_sp /= 100 # 分散 if item.variance > 0 and recover_hp.abs > 0 amp = [recover_hp.abs * item.variance / 100, 1].max recover_hp += rand(amp+1) + rand(amp+1) - amp end if item.variance > 0 and recover_sp.abs > 0 amp = [recover_sp.abs * item.variance / 100, 1].max recover_sp += rand(amp+1) + rand(amp+1) - amp end # 回復量の符号が負の場合 if recover_hp < 0 # 防御修正 if self.guarding? recover_hp /= 2 end end # HP 回復量の符号を反転し、ダメージの値に設定 self.damage = -recover_hp # HP および SP を回復 last_hp = self.hp last_sp = self.sp self.hp += recover_hp self.sp += recover_sp effective |= self.hp != last_hp effective |= self.sp != last_sp # ステート変化 @state_changed = false effective |= states_plus(item.plus_state_set) effective |= states_minus(item.minus_state_set) # パラメータ上昇値が有効の場合 if item.parameter_type > 0 and item.parameter_points != 0 # パラメータで分岐 case item.parameter_type when 1 # MaxHP @maxhp_plus += item.parameter_points when 2 # MaxSP @maxsp_plus += item.parameter_points when 3 # 腕力 @str_plus += item.parameter_points when 4 # 器用さ @dex_plus += item.parameter_points when 5 # 素早さ @agi_plus += item.parameter_points when 6 # 魔力 @int_plus += item.parameter_points end # 有効フラグをセット effective = true end # HP 回復率と回復量が 0 の場合 if item.recover_hp_rate == 0 and item.recover_hp == 0 # ダメージに空文字列を設定 self.damage = "" # SP 回復率と回復量が 0、パラメータ上昇値が無効の場合 if item.recover_sp_rate == 0 and item.recover_sp == 0 and (item.parameter_type == 0 or item.parameter_points == 0) # ステートに変化がない場合 unless @state_changed # ダメージに "Miss" を設定 self.damage = "Miss" end end end # ミスの場合 else # ダメージに "Miss" を設定 self.damage = "Miss" end # 戦闘中でない場合 unless $game_temp.in_battle # ダメージに nil を設定 self.damage = nil end # メソッド終了 return effective end #-------------------------------------------------------------------------- # ● スリップダメージの効果適用 #-------------------------------------------------------------------------- def slip_damage_effect # ダメージを設定 self.damage = self.maxhp / 10 # 分散 if self.damage.abs > 0 amp = [self.damage.abs * 15 / 100, 1].max self.damage += rand(amp+1) + rand(amp+1) - amp end # HP からダメージを減算 self.hp -= self.damage # メソッド終了 return true end #-------------------------------------------------------------------------- # ● 属性修正の計算 # element_set : 属性 #-------------------------------------------------------------------------- def elements_correct(element_set) # 無属性の場合 if element_set == [] # 100 を返す return 100 end # 与えられた属性の中で最も弱いものを返す # ※メソッド element_rate は、このクラスから継承される Game_Actor # および Game_Enemy クラスで定義される weakest = -100 for i in element_set weakest = [weakest, self.element_rate(i)].max end return weakest end end | |
|
| |
Invité Invité
| Sujet: Re: invalid pointer operation Jeu 19 Jan - 19:39 | |
| tu pourer arrete de lui compliquer la vie il peut tres bien RE telecharger RPG MAKER XP |
|
| |
yekais Charset Maker
Nombre de messages : 204 Date d'inscription : 09/12/2005
| Sujet: Re: invalid pointer operation Jeu 19 Jan - 19:40 | |
| Dernier script a modifié!
Scirpt a modifé dans Game_BattleAction
#============================================================================== # ■ Game_BattleAction #------------------------------------------------------------------------------ # アクション (戦闘中の行動) を扱うクラスです。このクラスは Game_Battler クラ # スの内部で使用されます。 #==============================================================================
class Game_BattleAction #-------------------------------------------------------------------------- # ● 公開インスタンス変数 #-------------------------------------------------------------------------- attr_accessor :speed # スピード attr_accessor :kind # 種別 (基本 / スキル / アイテム) attr_accessor :basic # 基本 (攻撃 / 防御 / 逃げる) attr_accessor :skill_id # スキル ID attr_accessor :item_id # アイテム ID attr_accessor :target_index # 対象インデックス attr_accessor :forcing # 強制フラグ #-------------------------------------------------------------------------- # ● オブジェクト初期化 #-------------------------------------------------------------------------- def initialize clear end #-------------------------------------------------------------------------- # ● クリア #-------------------------------------------------------------------------- def clear @speed = 0 @kind = 0 @basic = 3 @skill_id = 0 @item_id = 0 @target_index = -1 @forcing = false end #-------------------------------------------------------------------------- # ● 有効判定 #-------------------------------------------------------------------------- def valid? return (not (@kind == 0 and @basic == 3)) end #-------------------------------------------------------------------------- # ● 味方単体用判定 #-------------------------------------------------------------------------- def for_one_friend? # 種別がスキルで、効果範囲が味方単体 (HP 0 を含む) の場合 if @kind == 1 and [3, 5].include?($data_skills[@skill_id].scope) return true end # 種別がアイテムで、効果範囲が味方単体 (HP 0 を含む) の場合 if @kind == 2 and [3, 5].include?($data_items[@item_id].scope) return true end return false end #-------------------------------------------------------------------------- # ● 味方単体用 (HP 0) 判定 #-------------------------------------------------------------------------- def for_one_friend_hp0? # 種別がスキルで、効果範囲が味方単体 (HP 0 のみ) の場合 if @kind == 1 and [5].include?($data_skills[@skill_id].scope) return true end # 種別がアイテムで、効果範囲が味方単体 (HP 0 のみ) の場合 if @kind == 2 and [5].include?($data_items[@item_id].scope) return true end return false end #-------------------------------------------------------------------------- # ● ランダムターゲット (アクター用) #-------------------------------------------------------------------------- def decide_random_target_for_actor # 効果範囲で分岐 if for_one_friend_hp0? battler = $game_party.random_target_actor_hp0 elsif for_one_friend? battler = $game_party.random_target_actor else battler = $game_troop.random_target_enemy end # 対象が存在するならインデックスを取得し、 # 対象が存在しない場合はアクションをクリア if battler != nil @target_index = battler.index else clear end end #-------------------------------------------------------------------------- # ● ランダムターゲット (エネミー用) #-------------------------------------------------------------------------- def decide_random_target_for_enemy # 効果範囲で分岐 if for_one_friend_hp0? battler = $game_troop.random_target_enemy_hp0 elsif for_one_friend? battler = $game_troop.random_target_enemy else battler = $game_party.random_target_actor end # 対象が存在するならインデックスを取得し、 # 対象が存在しない場合はアクションをクリア if battler != nil @target_index = battler.index else clear end end #-------------------------------------------------------------------------- # ● ラストターゲット (アクター用) #-------------------------------------------------------------------------- def decide_last_target_for_actor # 効果範囲が味方単体ならアクター、それ以外ならエネミー if @target_index == -1 battler = nil elsif for_one_friend? battler = $game_party.actors[@target_index] else battler = $game_troop.enemies[@target_index] end # 対象が存在しない場合はアクションをクリア if battler == nil or not battler.exist? clear end end #-------------------------------------------------------------------------- # ● ラストターゲット (エネミー用) #-------------------------------------------------------------------------- def decide_last_target_for_enemy # 効果範囲が味方単体ならエネミー、それ以外ならアクター if @target_index == -1 battler = nil elsif for_one_friend? battler = $game_troop.enemies[@target_index] else battler = $game_party.actors[@target_index] end # 対象が存在しない場合はアクションをクリア if battler == nil or not battler.exist? clear end end end | |
|
| |
yekais Charset Maker
Nombre de messages : 204 Date d'inscription : 09/12/2005
| Sujet: Re: invalid pointer operation Jeu 19 Jan - 19:42 | |
| Il faut qu'il apprenne a utilisé les scripts et non parce que le logiciel qu'il va retélécharger fera la même chose!!! Donc comme j'ai dis je pense que tu dois savoir utilisé les scripts donc fais ses modif que j'ai fais spécialement pour toi!voilà tu men dira des nouvelle ok? | |
|
| |
Invité Invité
| Sujet: Re: invalid pointer operation Jeu 19 Jan - 20:19 | |
| Mes nouvel c ke je n ai jamais u de bleme avec rpg maker Xp |
|
| |
yekais Charset Maker
Nombre de messages : 204 Date d'inscription : 09/12/2005
| Sujet: Re: invalid pointer operation Jeu 19 Jan - 20:21 | |
| c'est le cas de moi aussi! mais si il commence pas apprendre quand va t'il le faire? | |
|
| |
Invité Invité
| Sujet: Re: invalid pointer operation Jeu 19 Jan - 20:24 | |
| heu...il te demendera ^^' |
|
| |
yekais Charset Maker
Nombre de messages : 204 Date d'inscription : 09/12/2005
| Sujet: Re: invalid pointer operation Jeu 19 Jan - 20:30 | |
| lol!!!oui je croit que tu as raison!mais j'ai bien expliqué tu pense pas? | |
|
| |
Invité Invité
| Sujet: Re: invalid pointer operation Jeu 19 Jan - 20:35 | |
| Peut etre je touche po a m es scipte je ve pas cree au risque une bombe! j aurer po l aire con ^^' |
|
| |
yekais Charset Maker
Nombre de messages : 204 Date d'inscription : 09/12/2005
| Sujet: Re: invalid pointer operation Ven 20 Jan - 17:25 | |
| lol!!!c'est interressant un script pourtant!je vous en direz plus quand j'aurais amélioré un! | |
|
| |
Tony333 Programmeur / Maker
Nombre de messages : 1697 Localisation : Rosny sous bois Date d'inscription : 16/07/2005
| Sujet: Re: invalid pointer operation Ven 20 Jan - 19:24 | |
| Lol t'a qu'a te lancer dans le scrpiting | |
|
| |
yekais Charset Maker
Nombre de messages : 204 Date d'inscription : 09/12/2005
| Sujet: Re: invalid pointer operation Ven 20 Jan - 20:36 | |
| lol!je suis pas trop un expert mais je me débroulle j'arrive a faire un effet nuit dans mon jeu enfaite a chaque fois que t'avance et tu jou le jour et la nuit se déroule comme dans la vrai vie!je suis entrin de l'amélioré!!! | |
|
| |
Invité Invité
| Sujet: Re: invalid pointer operation Ven 20 Jan - 21:51 | |
| c vachement simple tu va dans evenement commun tu cree differente periode de jour de nuit brouillard ensuite tu dis tout les temps de minute sa change et c bon je vois pas la difficulter |
|
| |
yekais Charset Maker
Nombre de messages : 204 Date d'inscription : 09/12/2005
| Sujet: Re: invalid pointer operation Ven 20 Jan - 22:05 | |
| et c'est la que ta tout faux!!!!!!!!!!!! sa tu te casse la tête a le faire!alors que tu créer un script et un evenement commun en processus parrallèle et sa change tt le temps sans que ta a faire quelque chose!d'autre suggestion? | |
|
| |
Tony333 Programmeur / Maker
Nombre de messages : 1697 Localisation : Rosny sous bois Date d'inscription : 16/07/2005
| Sujet: Re: invalid pointer operation Ven 20 Jan - 22:08 | |
| Lol le connaisseur :p Sinon tu peux faire un effet de couleurs :] 300 pas = ecrant devien couleurs sombres... | |
|
| |
Invité Invité
| Sujet: Re: invalid pointer operation Ven 20 Jan - 22:08 | |
| vi bas moi je fait quand tu prend un vehicule dans mon jeu (sa ete instaurer)
-Message -confirmation -vitesse 6.0 -interruppteur ??? enclencher et c bon sa donne sa en gros et puis zut un
Blague:Comment un nain c suis la bout qu il a sur la figure? |
|
| |
Tony333 Programmeur / Maker
Nombre de messages : 1697 Localisation : Rosny sous bois Date d'inscription : 16/07/2005
| Sujet: Re: invalid pointer operation Ven 20 Jan - 22:08 | |
| Enfin maintenant je suis plus sur builder :] | |
|
| |
yekais Charset Maker
Nombre de messages : 204 Date d'inscription : 09/12/2005
| Sujet: Re: invalid pointer operation Ven 20 Jan - 22:10 | |
| vous avez réson mais bon tout le temps a 300 pas c'est pas trés marant!lol | |
|
| |
Tony333 Programmeur / Maker
Nombre de messages : 1697 Localisation : Rosny sous bois Date d'inscription : 16/07/2005
| Sujet: Re: invalid pointer operation Ven 20 Jan - 22:12 | |
| Bah tu calcules, 300 pas je pense que c'est 15 minutes de marche sur un rpg, sa fait pas mal pour changer de temp :] | |
|
| |
yekais Charset Maker
Nombre de messages : 204 Date d'inscription : 09/12/2005
| Sujet: Re: invalid pointer operation Ven 20 Jan - 22:13 | |
| | |
|
| |
Tony333 Programmeur / Maker
Nombre de messages : 1697 Localisation : Rosny sous bois Date d'inscription : 16/07/2005
| Sujet: Re: invalid pointer operation Ven 20 Jan - 22:14 | |
| Tu calcul encore 1200 pas = 1heure de marche, donc en une heure tu peux passer 4 heures = une journé, un jour on devrais faire un rpp ensemble, réele, en temps normal l'histoire se passe, il fait jour en france, sur le rpg il fait jour... | |
|
| |
Invité Invité
| Sujet: Re: invalid pointer operation Ven 20 Jan - 22:16 | |
| reponse de la blague: Il cour dans les champs,Vu qu il et petit il se prend le mais en plain figure sa le netoit ^^' pourite c sa? |
|
| |
Tony333 Programmeur / Maker
Nombre de messages : 1697 Localisation : Rosny sous bois Date d'inscription : 16/07/2005
| Sujet: Re: invalid pointer operation Ven 20 Jan - 22:17 | |
| Lol jte le fait pas dire mdr ! | |
|
| |
Contenu sponsorisé
| Sujet: Re: invalid pointer operation | |
| |
|
| |
| invalid pointer operation | |
|