Project1

标题: 可不可以给NPC设定目标坐标 然后让他自己跑过去 [打印本页]

作者: ccsgws    时间: 2009-9-14 09:48
标题: 可不可以给NPC设定目标坐标 然后让他自己跑过去
本帖最后由 ccsgws 于 2009-9-15 21:08 编辑

有没有这么智能的方法,只需要指定终点坐标 NPC不管在哪 都可以自己跑过去,而不用通过【设置移动路线】来一步一步走
作者: 九夜神尊    时间: 2009-9-14 10:32
据说可以。不过我不会,把那个谁的驯鹿的脚本结合到里面就可以了。
作者: 吸血鬼王族    时间: 2009-9-14 20:26

笨人用笨方法,其中14,5为目标位置
作者: Walkalone09    时间: 2009-9-14 21:02
提示: 作者被禁止或删除 内容自动屏蔽
作者: enter9009    时间: 2009-9-15 01:16
最近几天看见楼这提出的若干问题,咱心里那个寒呀!直接无语。。。
作者: ccsgws    时间: 2009-9-15 01:21
5# enter9009


我刚接触这个软件,不知道所以发帖向前辈请教。如果你不愿意回答直接可以无视!不用冷嘲热讽!
作者: ccsgws    时间: 2009-9-15 01:26
3# 吸血鬼王族


谢谢!
作者: enter9009    时间: 2009-9-15 01:31
没冷嘲热讽,你想多了,我的意思是,一步登天难。慢慢来。
先看些基本的,自己做些基本的。还有就是多用论坛的搜索功能,多看看教程。
然后尝试下这软件的各种功能。其实看得出你是一个游戏热爱者。也很喜欢游戏制作,相信你以后会比别人更出色的。只是连个基本功能都不知道就猛问些低级错误的问题,叫别人怎么回答呢。
如有得罪的地方,跟你说声抱歉了。
作者: ccsgws    时间: 2009-9-15 01:41
本帖最后由 ccsgws 于 2009-9-15 01:44 编辑

8# enter9009

....饿,经前辈一说【搜索】功能,
我才发现在论坛的右上角有个搜索键,之前找半天了。。。刚才出言不逊,还望多包涵。
附上伤痕累累的 工程文件。。 Project2.rar (3.22 MB, 下载次数: 63)
之前因为问过几个问题而改动了 脚本Window_Status和Game_Actor ,今天由于出现了脚本运行错误,就把它还原了,结果游戏就挂了。
作者: enter9009    时间: 2009-9-15 03:18
本帖最后由 enter9009 于 2009-9-15 04:03 编辑

不好意思,宵夜刚回来。已经帮你修复了。测试了下没发现异常。
原先是你修改脚本出错了,有冲突。把你改的全DELETE了哦。
如要用什么功能就先用别人改好脚本先吧,等摸熟悉了点再尝试自己的吧。
大致试玩了下你的,故事挺搞的,地图也画的很好,只是城。。。太小了- -||
很不错,有潜力!+U+U

Project2.rar

3.22 MB, 下载次数: 45


作者: enter9009    时间: 2009-9-15 03:46
好象唱完波菜歌那里又出错了。
把脚本给替了吧,找个新工城的替上。
对话很搞啊。很久没会心一笑了。太困了,睡先。
作者: enter9009    时间: 2009-9-15 04:01
用如下的替换掉你工程的脚本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
作者: ccsgws    时间: 2009-9-15 11:15
本帖最后由 ccsgws 于 2009-9-15 12:34 编辑

12# enter9009

替换了工程的脚本Game_BattleAction后,第二次在测试的时候又出现了错误。。不解

知道原因了
问题就出在这个红圈圈的地方是空白
作者: Goldencolor    时间: 2009-9-15 11:38
我记得~日本有个脚本。自动寻路~LZ好好找找~
作者: 寂寞狂风    时间: 2009-9-15 11:51
提示: 作者被禁止或删除 内容自动屏蔽
作者: ccsgws    时间: 2009-9-15 12:33
14# Goldencolor
谢谢你提供信息,我去论坛搜索一下:)


#15 。。。
作者: 沉影不器    时间: 2009-9-15 20:44
提示: 作者被禁止或删除 内容自动屏蔽
作者: 传说中di    时间: 2009-9-15 21:24
LS改的脚本如果改成用数值输入仿网游的就不错了
作者: 沉影不器    时间: 2009-9-15 21:26
提示: 作者被禁止或删除 内容自动屏蔽
作者: 传说中di    时间: 2009-9-15 21:36
本帖最后由 传说中di 于 2009-9-15 21:37 编辑

我的意思是可以用事件中 处理输入数值
不知道LS改的怎么输入数值。。请教下




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