Project1

标题: 比较复杂的问题,immortal的特殊判定 [打印本页]

作者: Innelysion    时间: 2008-5-25 09:49
标题: 比较复杂的问题,immortal的特殊判定
设想中的效果,就是将被标记为无敌的敌方判定成队友属性,释放己方魔法,使用物品都可以选择到,而且释放对敌AOE魔法时不会被伤害到,原有无敌属性可以取消掉,请问应该从哪个方向开始修改,或者有无已经研究过的达人给予点拨

另外还有个小问题,如何在Window_Status中显示一个"当前角色ID序号 + XXXX.png"这样的语句

先谢过m(_ _)m [LINE]1,#dddddd[/LINE]版务信息:本贴由楼主自主结贴~
作者: 禾西    时间: 2008-5-25 13:13
用XXX.class 判斷攻擊者的class,如果指向 RPG::Actor 即取消攻擊行動。

第二個問題不知道是不是想要顯示人物頭像。可以用
a = actor.id
b = "#{a}XXXX.png"
來實現字符組合
作者: Innelysion    时间: 2008-5-25 16:25
第一个问题禾西大能否说详细点,还是不知道该如何入手囧

第二个问题我是想拿其他图片来显示人物状态里的半身像,因为人物头像已经另有他用了=v=b 感谢已经解决了
作者: 禾西    时间: 2008-5-25 16:45
Game_Battler 3 裏面有幾個類似這樣的傷害計算方法:
  def attack_effect(attacker)
  def skill_effect(user, skill)
  def item_effect(item)

我們只需要在下面判斷兩個變量:
1.角色是否帶有 immortal 狀態:
self.state?( state id )

2.攻擊者是否敵人:
attacker.is_a?(Game_Enemy)


如果兩者都是true
return true 結束掉傷害計算...
就是這樣了
(請無視早上(你們那邊的晚上)的回復...禾西還沒有睡醒 XD)
作者: Innelysion    时间: 2008-5-25 17:05
immortal是属于系统本身的状态貌似不能用数据库的状态ID的说……  不过这样反而更方便了XD 我尝试下修改成这样,脚本非常苦手orz

是否应该在"miss的场合"后加判断语句?

禾西大在国外吗XD
作者: 天仙玉女    时间: 2008-5-25 17:31
提示: 作者被禁止或删除 内容自动屏蔽
作者: 禾西    时间: 2008-5-25 17:35
直接在開始就 self.damage = "Miss" 吧...if 語句下你想要寫甚麽就寫甚麽
(感覺上你還是有不錯腳本基礎的,至少禾西就不記得 immortal 是系統自帶函數|||)
另外
以下引用Innelysion于2008-5-25 9:05:29的发言:
禾西大在国外吗XD


留意一下禾西的出沒時間就知道啦 XD
作者: Innelysion    时间: 2008-5-25 17:36
  #--------------------------------------------------------------------------
  # ● 开始选择敌人
  #--------------------------------------------------------------------------
  def start_enemy_select
    # 生成敌人箭头
    @enemy_arrow = Arrow_Enemy.new(@spriteset.viewport1)
    # 关联帮助窗口
    @enemy_arrow.help_window = @help_window
    # 无效化角色指令窗口
    @actor_command_window.active = false
    @actor_command_window.visible = false
  end
  #--------------------------------------------------------------------------
  # ● 结束选择敌人
  #--------------------------------------------------------------------------
  def end_enemy_select
    # 释放敌人箭头
    @enemy_arrow.dispose
    @enemy_arrow = nil
    # 指令为 [战斗] 的情况下
    if @actor_command_window.index == 0
      # 有效化角色指令窗口
      @actor_command_window.active = true
      @actor_command_window.visible = true
      # 隐藏帮助窗口
      @help_window.visible = false
    end
  end



要达到预想中的效果, 这里貌似也需要更改?  使得被判定为己方的敌人不可选择

我根本就是个脚本小白{/dk}

以下引用天仙玉女于2008-5-25 9:31:45的发言:
$data_troops[@troop_id].members[@member_index].immortal

可以獲取是否為不死之身狀態


请问这个语句怎么用=v=||||
作者: 禾西    时间: 2008-5-25 17:45
要選擇不到啊?那個就麻煩了。因爲默認的 Arrow 腳本不具有選擇選擇敵我雙方的功能耶...
不過,你需要這個功能咩?(好像好多遊戲的無敵狀態都是可以選到而打不到的...)
[LINE]1,#dddddd[/LINE]
只要有心,人人都是林志玲...啊,腳本能手 XD
作者: Innelysion    时间: 2008-5-25 18:00
不需要选择敌我双方,只需要选择不到被判定成己方的敌人就好了,也就是说像个会用技能的图片一样XD
如果默认系统不能做到的话我就放弃这个方法好了…… 其实我想做的效果是战斗途中有外人乱入,然后站在己方和BOSS之间作战 貌似也可以用其他不需要借用脚本的方法来达到 比较麻烦就是了=v=....

我在楼顶的问题脑残了…… 只要解决不可选择到被判定的敌人果然一切问题都变得简单……
作者: 禾西    时间: 2008-5-25 18:26
修改 Arrow_Enemy 的 update 方法吧...
實際上就是 if Input.repeat?(Input::RIGHT)
@index += 1 #<==這裏
#/////////////////////////////////////////
while $game_troop.enemies(@index).immortal
  @index += 1
end
#/////////////////////////////////////////
另外一個也是一樣
以前禾西寫過一個具體類似的(不過是Arrow_Actor)...現在找不到了...
如果有耐心的話可以在禾西的參與帖子裏面找找...||| [LINE]1,#dddddd[/LINE]系统信息:本贴由楼主认可为正确答案,66RPG感谢您的热情解答~
作者: Infrared    时间: 2008-5-25 18:28
提示: 作者被禁止或删除 内容自动屏蔽
作者: Innelysion    时间: 2008-5-25 19:04
以下引用禾西于2008-5-25 10:26:09的发言:
修改 Arrow_Enemy 的 update 方法吧...
實際上就是 if Input.repeat?(Input::RIGHT)
@index += 1 #<==這裏
#/////////////////////////////////////////
while $game_troop.enemies(@index).immortal
@index += 1
end
#/////////////////////////////////////////


插进去后一按右就出错了|||||…… 
ArgumentError
wrong number of arguments(1 for 0)

to楼上……AOE就是范围攻击……

范围攻击不影响到被判定的目标已经做到了
      if self.state?(xx)
        self.damage[user] = 0
        end

禾西大的30多页回复贴好壮观=v=||||||||
作者: Innelysion    时间: 2008-5-25 20:00
break if self.enemy.exist? and break if not self.enemy.immortal

在论坛里找了好久 终于找到个类似的修改成这样就可以实现了 呼……
虽然还是有很多不明白的地方,感谢禾西大的指点




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1