我的世界怎么做好不开死亡不掉落的纯生存?

我的世界怎么

__233oo_ __233oo_
回答
  • young program young program

    1、
    设置人物出场与否
    2、
    可以创建**(时间发生更换主角)
    3、
    不太清楚
    4、
    在main前按insert **本脚本
    然后在**中如此调用
    设置移动路线:(目标人物)
    脚本 tomove(目标坐标x,目标坐标y)
    附:
    whbm四方向寻路算法的网址:
    另附上 寻路算法 的增强:
    把 寻路算法 第53行 改为
    return h*10#强化启发
    本脚本来自www.66rpg.com,使用和转载请保留此信息
    自动移动 by octsjimmy 感谢 whbm 提供帮助
    begin
    该脚本必须有 whbm 的 寻路算法:四方向 的支持
    使用该脚本到是很简单
    在需要开始自动移动的**中填入
    设置移动路线:(目标人物)
    脚本 tomove(目标坐标x,目标坐标y)
    如此即可
    例如要使 角色 开始 自动移动 到地图的(0,0)位置那么就可以这样写
    设置移动路线:角色
    脚本:tomove(0,0)
    其余的同样如此设置
    需要注意的是:
    如果目标坐标所处的图块为不可通行且穿透没有打开的话那么将不会有任何动作
    甚至连路线数组也不会生成。end
    class interpreter
    获取角色
    parameter:能力值
    def get_character_n(parameter)
    能力值分支
    增加★
    mubiao=parameter
    event_id_all=event_id
    增加★
    case parameter
    when-1#角色
    return$game_player
    when 0#本**
    events=$game_map.events
    return events=nil?nil:events[@event_id]
    else#特定的**
    events=$game_map.events
    return events=nil?nil:events[parameter]
    end
    end
    alias get_character get_character_n
    end
    class game_character
    新增-
    寻路移动
    新增-
    def tomove(x,y)
    当操作目标为 角色 时
    if$mubiao=-1
    tmp_x=x
    tmp_y=y
    调用寻路算法,开始计算路线
    find_path=find_path.new
    path=$find_path.find_player_short_path(@tmp_x,@tmp_y)
    当操作目标为 本** 时
    elsif$mubiao=0
    tmp_x=x
    tmp_y=y
    tmp_id_x=$game_map.events[$event_id_all].x
    tmp_id_y=$game_map.events[$event_id_all].y
    调用寻路算法,开始计算路线
    find_path=find_path.new
    path=$find_path.find_short_path(@tmp_id_x,@tmp_id_y,@tmp_x,@tmp_y)
    当操作目标为 其他** 时
    else
    tmp_x=x
    tmp_y=y
    tmp_id_x=$game_map.events[$mubiao].x
    tmp_id_y=$game_map.events[$mubiao].y
    调用寻路算法,开始计算路线
    find_path=find_path.new
    path=$find_path.find_short_path(@tmp_id_x,@tmp_id_y,@tmp_x,@tmp_y)
    end
    开始自动移动,参照本类的 update方法
    go_path=true
    自动移动 处理位置初始化
    path_id=0
    end
    刷新画面
    def update_n
    跳跃中、移动中、停止中的分支
    if jumping?update_jump
    elsif moving?update_move
    else
    update_stop
    end
    动画计数超过最大值的情况下
    最大值等于基本值减去移动速度*1 的值
    if@anime_count>18-@move_speed*2
    停止动画为 off 并且在停止中的情况下
    if not@step_anime and@stop_count>0
    还原为原来的图形
    pattern=original_pattern
    停止动画为 on 并且在移动中的情况下
    else
    更新图形
    pattern=(@pattern+1)%4
    end
    清除动画计数
    anime_count=0
    end
    等待中的情况下
    if@wait_count>0
    减少等待计数
    wait_count-=1
    return
    end
    强制移动路线的场合
    if@move_route_forcing
    自定义移动
    move_type_custom
    return
    end
    **执行待机中并且为锁定状态的情况下
    if@starting or lock?不做规则移动
    return
    end
    如果停止计数超过了一定的值(由移动频度算出)
    if@stop_count>(40-@move_frequency*2)*(6-@move_frequency)
    移动类型分支
    case@move_type
    when 1#随机
    move_type_random
    when 2#接近
    move_type_toward_player
    when 3#自定义
    move_type_custom
    end
    end
    新增-
    当 自动移动 标记为真 以及 不在移动时
    if@go_path and!moving?依据 自动移动 处理位置 判断下一步该往哪儿走
    case@path[@path_id]
    when 2
    move_down
    when 4
    move_left
    when 6
    move_right
    when 8
    move_up
    end
    自动移动 处理位置 递增
    path_id+1
    假如 自动移动 处理位置 到达 路线数组的末尾
    if@path_id=path.size
    使得 自动移动 标记重置
    go_path=false
    end
    end
    end
    alias update update_n
    end

类似问答
精品推荐

友情链接

友链互换QQ:

谷财 备案编号:蜀ICP备11019336号-3商务合作:235-677-2621

Copyright 2009-2020 Chengdu Sanzilewan Technology Co.,Ltd all rights reserve

抵制不良游戏 拒绝盗版游戏 注意自我保护 谨防受骗上当 适度游戏益脑 沉迷游戏伤身 合理安排时间 享受健康生活