Project1

标题: (活动讨论贴.顺利结束)ARPG范例- by pudding [打印本页]

作者: 「旅」    时间: 2010-10-6 12:04
标题: (活动讨论贴.顺利结束)ARPG范例- by pudding
本帖最后由 「旅」 于 2010-10-23 21:48 编辑

~讨论精华 and 讨论大奖~

六祈酱的遐想
禾西前辈的AI思路
九夜君的攻击树

最具潜力提议奖~禾西前辈~2VIP~
热心参与讨论奖~小祈酱喵~2VIP~
最佳实现的大奖~pudding酱~2VIP+998经验~

(喵恭喜上面的三位获得第一次讨论的大奖哟~~各位台下口水直流的看官也不要泄气,只要加油的话,下个大奖就是你~~)


~总结大会~

喵,这次活动真的是取得了意外的收获,先感谢大家的热心支持喵~~唔同时我们举办方也通过这第一次活动得到经验。嘛这次真的是辛苦pudding酱了~~因为这个活动给了pudding酱很多的鸭梨,所以呢我们打算下一次活动再增添一个规则,也就是提交者可以选择让大家一同参与完成工程的部分内容,然后作者整合进去喵。希望大家可以再继续支持哟~~~


[line]2[/line]
orz广告之:
“我可以吗?我真的可以吗??????><"
——是的~无论你是否已满17周岁,无论你是否已经结婚(啥),
只要你参加我们柳啊邪恶提问区的讨论活动,
下一个柳啊好人明星就是你。赶快到下个活动的指定举办点,
千万好人卡的大奖对你将不再遥远~~~~~~


[line]2[/line]
~帖子原内容~

刚才在XP发布区寻宝看到了这个脚本~的确不错~和小祈酱讨论了后决定作为第一个讨论对象发布~~

[line]2[/line]
讨论范例:ARPG范例- by pudding
喵传送门:http://rpg.blue/thread-155250-1-1.html
活动期限:10.10.6 - 10.10.20
发布奖励:4VIP

小旅讲解:从很久前就看到pudding酱在忙碌ARPG,今天看到的这个范例进步了很多,功能齐全多了,而且与素材结合得很棒~~
首先是敌人的设置,是通过注释的方法完成的。接着是实现了远程攻击、近程攻击、炸弹这些效果也很完善~喵希望pudding酱可以继续加油~~

讨论主题:和小祈酱聊的时候发现ARPG真的是具有无限的创造力~~特别是它可以实现很多很多战术的战斗和很神奇的画面效果~~
所以大家呢一起发挥创造力吧喵~~各种功能不管难度多大都可以提出来哟~~~~

[line]2[/line]
活动官方楼:http://rpg.blue/thread-157998-1-1.html


作者: 「旅」    时间: 2010-10-6 12:16
喵连贴~~我先来好了~~~

首先我觉得嘛~~战术是一个特别好发挥的内容哟~~~因为系统画面再强大也只是吸引玩家想玩~~而真正能留住玩家的应该是玩法,也就是战斗中多种多样的战术喵~~~

例如敌人可以使用重锤技能使得角色迟钝,然后速度变得特别的慢~~或者说反弹技能可以使得魔法攻击弹开,保护格斗技能的角色等等~~

之后呢我还觉得能不能实现绝技特写,例如必杀技使用前镜头缩小到主角身上~~或者说全局秒杀的强大攻击时,是扩大到攻击范围的整个场面~~喵当然这个有很大的技术难关~~

喵另外我觉得大家可以在ARPG的宠物系统上下功夫哦~原因嘛……我签名~~ ——>被打

还有呢状态窗口也是很重要的~~清爽的状态窗口让人感觉特别舒服哟~~但是放在哪里呢~~还有排版啦之类的喵~~~

总之这是一个综合的讨论,欢迎各种类型的制作家们前来过招(顺便让小的们学几招吧><)
作者: 禾西    时间: 2010-10-6 13:28
敵人的設定可以和數據庫直連起來。用事件中的腳本引用一個新類生成一個實例,可以減少衝突和設定上的麻煩。ARPG的重點在于敵人的AI,可以的話預先寫幾種AI模式供用家選擇,另外應該留下接口,可以讓其他作者二次開發。ARPG腳本可以大膽地加入8方向行走,4方向的更適合做戰棋。
作者: 429259591    时间: 2010-10-6 13:32
本帖最后由 429259591 于 2010-10-6 13:34 编辑

我觉得如果敌人也会技能,也会配合(阵法之类的),当HP少于指定的数值时会逃跑或者是相应的动作,更智能化会更好,不过最重要的一点,不要卡
作者: 纸飞机哟    时间: 2010-10-6 13:52
嘛嘛,如果实现了[队友]的话,一切都会更好的啦~~
比如打怪任务什么的,游戏会丰富很多。
作者: bbaugle    时间: 2010-10-6 14:00
玩家设置一个陷阱,怪物不小心走过去就会触发陷阱事件,怪物扣血.
我觉得这样挺好玩的
作者: fux2    时间: 2010-10-6 14:18
呵呵,我理想中的ARPG游戏是可以和队友一起战斗的,但考虑到配合问题和效率问题我就没去想了.
'
同2楼一样喜欢聪明的敌人,不像某些游戏全世界只有主角队伍聪明.我在制作马力游戏的时候是用case事件名的方法来设定怪物AI的.
还有RM的按格行走问题,我曾经修改过行走方式和同行判定,但发现这样效率就很低了(难不成是我机子烂?),更糟糕的事情是图形优先级的问题让我头大.
'
'
我还没说完,但同学这个三星手机内存太小,到这里打个字都要3秒,还是晚上电脑编辑吧,
作者: kenchenrong    时间: 2010-10-6 14:21
提示: 作者被禁止或删除 内容自动屏蔽
作者: 莹的赎生    时间: 2010-10-6 14:32
楼上想要做路人NPC?这不是个范例吗?还有,“成功的话可以根据小偷的等级,被偷的东西值不值钱之类的给奖金,给个良好市民的称号...
失败也可以给个见义勇为称号...重伤就再给点医疗金慰问下- -”我无语了.....
听见很多人说
卡,不知道作者能不能让它不卡。脚本很强大呢,明雷式的怪物在地图上战斗,我很喜欢
谢谢作者!
作者: 禾西    时间: 2010-10-6 15:07
AI這個問題前段時間和朋友談論過,只有思路,沒有范例:
1.劃分敵人性格:強攻型、輔助型、幹擾型、法師型等。每種性格指向不同的思考函數。
2.各種行為設置觸發條件
3.場景分析:確定玩家坐標和敵人坐標,角色HP,隊友相對位置,憎恨度等。(這個函數是影響效率最大的部分。)返回分析列表。
4.將分析列表代入思考函數,計算出計劃行為(比如接近玩家,進行攻擊等)。
5.思考函數不一定每幀調用,可以設定一個個人的判斷函數。這個函數用來進行行為有效度的分析(比如hp殘留量,對敵人傷害值,和單次受害值等計算),若有效度過低,則重新判斷行為。

只是紙上談兵而已。
作者: 纸飞机哟    时间: 2010-10-6 15:18
回复 fux2 的帖子

对头!
一个人战斗是孤单的!
但是前提是:
队友AI要人性,
你走他不动就无聊了。

作者: pudding    时间: 2010-10-6 17:09
本帖最后由 六祈 于 2010-10-6 18:13 编辑

脚本的远程还有个问题存在,麻烦哪位高手解决下。{:nm_4:}
我对脚本只是懂小小… {:nm_4:}

其实还有很多功能,就是连续攻击,当然也要画很多人物动作才更好玩;
宠物系统也可以完成的,我没有做上去;还有一个我很想实现的,就是敌人也拥有远程攻击。
作者: 火ZHI意志    时间: 2010-10-6 20:15
最好能实现两个效果(间接地伸手…………)
1 在规定范围内的敌人(或角色)连续伤血(或加血)
2 队友连协忍术(就是技能合起来攻击,威力不等于a+b)
作者: lxczzzcxl    时间: 2010-10-6 20:40
如果加入2P就会出现问题:
当地图足够大 而且两个角色距离足够远的时候视角在哪里?
1.1P(万一1P挂了怎么办)
2.视野中心取2角色坐标平均数(万一地图100X100怎么办)
3.活动角色(万一一个角色在进行时间超长的技能咏唱怎么办)
作者: 后知后觉    时间: 2010-10-6 20:57
如果加入2P就会出现问题:
当地图足够大 而且两个角色距离足够远的时候视角在哪里?
1.1P(万一1P挂了怎么 ...
lxczzzcxl 发表于 2010-10-6 20:40



限制两角色必须在同一屏幕内就行了.
作者: 六祈    时间: 2010-10-6 22:15
本帖最后由 六祈 于 2010-10-6 22:17 编辑
AI這個問題前段時間和朋友談論過,只有思路,沒有范例:
1.劃分敵人性格:強攻型、輔助型、幹擾型、法師型 ...
禾西 发表于 2010-10-6 15:07

根据禾西前辈所言,愚者有一个关于【AI数据定义方面】的思路:
给每个敌人几种思考模式【可以在数据库里定义】,每种思考模式由一个类定义,在Game_Emeny中引入一个思考模式的对象
同样对行动方式【即思考的结果】引入一个行动方式类

这样的话,在判定时,可以在敌人没有行动方式时调用思考模式对象的方法,获得一个行动方式
之后只需要判断这个行动方式的价值【方法在行动方式类内定义】

总的来说通过二重的多态实现,扩充脚本也会相对容易
[line]2[/line]
【其实思路还是很多的,放几个早上和小旅BS出来的东东吧】
【Buffer系统】即增益状态和减益状态在ARPG中的实现,举例说boss怪会减速导致玩家H&R失败,或者带有一些晕眩技能导致玩家晕眩几秒等等
【地图缩放功能】RMXP的默认地图用来做ARPG的话,视野是偏小的,这样容易发生冲进去被包围这种囧事,是通过改变视野大小还是通过小地图或者其它方法解决呢
【敌人AI】其实这个是限制ARPG游戏性的最大一环

美工特效方面:
【必杀技特写】全屏黯淡,主角大亮,才下眉头,却上心头那种【大雾
【素材】ARPG无可否认需要比较多的动画素材
【伤害显示】
【常时显示状态窗口的美化】等等

游戏性方面:
【快捷键】如何在战斗中爽快的使用技能和物品,如果需要调整,怎么样可以换的快
【飞行道具的实现】
【怪物掉落物品】是落在地上呢,还是进入背包呢,是否需要物品分级之类的加强游戏性的系统
【宠物系统】其实宠物和敌人AI算是差不多的系统吧【大雾


以上拙见,仅作抛砖引玉用,诸君可以提供自己的思路或是根据上面的任何内容进行讨论~
另外重申下,在讨论帖中加分的情况很多,优秀的思路,优秀的创意,优秀的实现都可以加分的说
作者: pudding    时间: 2010-10-7 14:54
前面几位都说添加队友,
现在更新了,添加了队友;
只是有个问题,我不会编写 事件 接近事件的脚本,
就是队友去追踪敌人,希望各位有能力的人 可以完善一下。
作者: ProfesstionR    时间: 2010-10-7 15:23
追踪敌人的脚本可以在Game_Character 3中这样写
  #--------------------------------------------------------------------------
  # ● 接近敌人
  #--------------------------------------------------------------------------
  def move_toward_event
    #获取敌人的坐标
    for event in $game_map.events.values
    next if event.return_erased2
    next if event.list == nil
    next if event.list[0].code != 108
    next if event.list[0].parameters[0] != "敌人"
    eventx = event.x
    eventy = event.y
    end
    # 求得与主角的坐标差
    sx = @x - eventx
    sy = @y - eventy
    # 坐标相等情况下
    if sx == 0 and sy == 0
      return
    end
    # 求得差的绝对值
    abs_sx = sx.abs
    abs_sy = sy.abs
    # 横距离与纵距离相等的情况下
    if abs_sx == abs_sy
      # 随机将边数增加 1
      rand(2) == 0 ? abs_sx += 1 : abs_sy += 1
    end
    # 横侧距离长的情况下
    if abs_sx > abs_sy
      # 左右方向优先。向主角移动
      sx > 0 ? move_left : move_right
      if not moving? and sy != 0
        sy > 0 ? move_up : move_down
      end
    # 竖侧距离长的情况下
    else
      # 上下方向优先。向主角移动
      sy > 0 ? move_up : move_down
      if not moving? and sx != 0
        sx > 0 ? move_left : move_right
      end
    end
  end

然后给事件的自定义移动路线中设置成
◆脚本:move_toward_event
就可以了

个人认为ARPG还应该加入敌人挨打的图,那样更加真实[纯属虐美工- -]
作者: 红灯    时间: 2010-10-7 20:12
感觉可以给敌人设置不同的种类,会使游戏更加生动:
比如,
普通型敌人,进入视野时才会对主角进行追击攻击
暴躁类的敌人会一直追着主角跑,
害羞型的敌人当主角进入视野,会逃离主角,只有当自己受到攻击后才会反击
……

作者: 熊猫    时间: 2010-10-7 20:32
我认为用RM实现的话要注重效率,如果AI过于发达的话,如果处理不好游戏就会很卡。
如果这个ARPG能做出几十人杀戮的那种大场面而且不卡那就好了。

六祈总结的点子都非常好...就等pudding实现了...
作者: 天使喝可乐    时间: 2010-10-7 21:48
ARPG群攻技能不可少 再就是有一种靠操作能避免怪打到你 比如减慢怪速度 或怪受攻击有僵直 打下就跑的练法 如果只是靠近怪双方互相掉血 这样和回合制没啥区别了
其实ARPG技能可以参考RO RO技能很丰富的http://ro.sdo.com/web3/spellbook/spellbook_01.html
作者: 九夜神尊    时间: 2010-10-8 02:12
本帖最后由 九夜神尊 于 2010-10-8 02:14 编辑

说一个XAS也没有实现的效果吧~~~


自己取名,因为不知道名字

攻击树式结构那我画一个


用语言来说就是

按c.c.c实现三连砍
   c.c.c--实现重力回击
   c.c   cccccccc实现快速乱砍

如果拿另一个游戏做比较的话,就是鬼泣里面的所有攻击方式。
作者: moy    时间: 2010-10-8 05:22
看到楼上的...满脑子想的都是timer = =bb


暂时没时间认真回...就这么先占着楼好了...下次编辑.
作者: pudding    时间: 2010-10-8 06:15
这么早呀,慢慢来实现吧,真希望有人能够协助一下我。
现在正在做BOSS的技能攻击(附加状态),还有19楼建议的移动。
作者: moy    时间: 2010-10-8 07:01
18L提供的脚本的完整版
来源为ZTBS,其真实作者不详0 0(也许是ZTBS的作者?)
自汉化
  1. #==============================================================================
  2. # 「移动方法」 ver1.20
  3. #   by 水夜
  4. #     汉化 by moy
  5. #  http://zenith.ifdef.jp/
  6. #------------------------------------------------------------------------------
  7. # 提供了不少方便调用的移动方法
  8. #==============================================================================
  9. # 给出目录方便查找和使用:
  10. #    中文名           行数          方法名
  11. # "走向某事件"         26         go_to_event(id)
  12. # "远离某事件"         61         move_away_from_event(id)
  13. # "移向指定坐标"       96         go_to_position(x, y)
  14. # "从指定坐标返回"     129        move_away_from_position(x, y)
  15. # "面向某事件"         162        turn_toward_event(id)
  16. # "背向某事件"         183        turn_away_from_event(id)
  17. # "面向某一坐标"       204        turn_toward_position(x, y)
  18. # "背向某一坐标"       223        turn_away_from_position(x, y)
  19. # "随机范围移动"       242        move_random_area(x, y, distance)
  20. #==============================================================================

  21. class Game_Character
  22.   #--------------------------------------------------------------------------
  23.   # ●定义"走向某事件"的方法  
  24.   #--------------------------------------------------------------------------
  25.   def move_toward_event(id)
  26.     # 计算与需要走向的某事件的位移
  27.     sx = @x - $game_map.events[id].x
  28.     sy = @y - $game_map.events[id].y
  29.     # 如果位移为0(也就是说是本事件)则返回
  30.     if sx == 0 and sy == 0
  31.       return
  32.     end
  33.     # 设置XY的绝对值变量
  34.     abs_sx = sx.abs
  35.     abs_sy = sy.abs
  36.     # XY的绝对值相等时
  37.     if abs_sx == abs_sy
  38.       # X或Y自加1
  39.       rand(2) == 0 ? abs_sx += 1 : abs_sy += 1
  40.     end
  41.     # X比Y的绝对值大时
  42.     if abs_sx > abs_s
  43.       # 在X方向位移结束后执行Y方向
  44.       sx > 0 ? move_left : move_right
  45.       if not moving? and sy != 0
  46.         sy > 0 ? move_up : move_down
  47.       end
  48.     # X比Y的绝对值小时
  49.     else
  50.       # 在Y方向位移结束后执行X方向
  51.       sy > 0 ? move_up : move_down
  52.       if not moving? and sx != 0
  53.         sx > 0 ? move_left : move_right
  54.       end
  55.     end
  56.   end
  57.   #--------------------------------------------------------------------------
  58.   # ● 定义"远离某事件"的方法
  59.   #--------------------------------------------------------------------------
  60.   def move_away_from_event(id)
  61.     # 计算与需要远离的某事件的位移
  62.     sx = @x - $game_map.events[id].x
  63.     sy = @y - $game_map.events[id].y
  64.     # 如果位移为0(也就是说是本事件)则返回
  65.     if sx == 0 and sy == 0
  66.       return
  67.     end
  68.     # 设置XY的绝对值变量
  69.     abs_sx = sx.abs
  70.     abs_sy = sy.abs
  71.     # XY的绝对值相等时
  72.     if abs_sx == abs_sy
  73.       # X或Y自加1
  74.       rand(2) == 0 ? abs_sx += 1 : abs_sy += 1
  75.     end
  76.     # X比Y的绝对值大时
  77.     if abs_sx > abs_sy
  78.       # 在X方向位移结束后执行Y方向
  79.       sx > 0 ? move_right : move_left
  80.       if not moving? and sy != 0
  81.         sy > 0 ? move_down : move_up
  82.       end
  83.     # X比Y的绝对值小时
  84.     else
  85.       # 在Y方向位移结束后执行X方向
  86.       sy > 0 ? move_down : move_up
  87.       if not moving? and sx != 0
  88.         sx > 0 ? move_right : move_left
  89.       end
  90.     end
  91.   end
  92.   #--------------------------------------------------------------------------
  93.   # ● 定义"移向指定坐标"的方法.
  94.   #--------------------------------------------------------------------------
  95.   def move_toward_position(x, y)
  96.     # 计算与目标坐标间的位移
  97.     sx = @x - x
  98.     sy = @y - y
  99.     # 如果是当前所在坐标则返回
  100.     if sx == 0 and sy == 0
  101.       return
  102.     end
  103.     # 设置XY的绝对值变量
  104.     abs_sx = sx.abs
  105.     abs_sy = sy.abs
  106.     # XY的绝对值相等时
  107.     if abs_sx == abs_sy
  108.       # X或Y自加1
  109.       rand(2) == 0 ? abs_sx += 1 : abs_sy += 1
  110.     end
  111.     # X比Y的绝对值大时
  112.     if abs_sx > abs_sy
  113.       sx > 0 ? move_left : move_right
  114.       if not moving? and sy != 0
  115.         sy > 0 ? move_up : move_down
  116.       end
  117.     # X比Y的绝对值小时
  118.     else
  119.       sy > 0 ? move_up : move_down
  120.       if not moving? and sx != 0
  121.         sx > 0 ? move_left : move_right
  122.       end
  123.     end
  124.   end
  125.   #--------------------------------------------------------------------------
  126.   # ● 定义"从指定坐标返回"的方法
  127.   #--------------------------------------------------------------------------
  128.   def move_away_from_position(x, y)
  129.     # 计算与目标坐标间的位移
  130.     sx = @x - x
  131.     sy = @y - y
  132.     # 如果是当前所在坐标则返回
  133.     if sx == 0 and sy == 0
  134.       return
  135.     end
  136.     # 设置XY的绝对值变量
  137.     abs_sx = sx.abs
  138.     abs_sy = sy.abs
  139.     # XY的绝对值相等时
  140.     if abs_sx == abs_sy
  141.       # X或Y自加1
  142.       rand(2) == 0 ? abs_sx += 1 : abs_sy += 1
  143.     end
  144.     # X比Y的绝对值大时
  145.     if abs_sx > abs_sy
  146.       sx > 0 ? move_right : move_left
  147.       if not moving? and sy != 0
  148.         sy > 0 ? move_down : move_up
  149.       end
  150.     # X比Y的绝对值小时
  151.     else
  152.       sy > 0 ? move_down : move_up
  153.       if not moving? and sx != 0
  154.         sx > 0 ? move_right : move_left
  155.       end
  156.     end
  157.   end
  158.   #--------------------------------------------------------------------------
  159.   # ● 定义"面向某事件"的方法
  160.   #--------------------------------------------------------------------------
  161.   def turn_toward_event(id)
  162.     # 计算与需要面向的事件间的位移
  163.     sx = @x - $game_map.events[id].x
  164.     sy = @y - $game_map.events[id].y
  165.     # 如果是当前所在坐标则返回
  166.     if sx == 0 and sy == 0
  167.       return
  168.     end
  169.     # X比Y的绝对值大时
  170.     if sx.abs > sy.abs
  171.       # X的值为正则转左,负则转右
  172.       sx > 0 ? turn_left : turn_right
  173.     # X比Y的绝对值小时
  174.     else
  175.       # Y的值为正则转上,负则转下
  176.       sy > 0 ? turn_up : turn_down
  177.     end
  178.   end
  179.   #--------------------------------------------------------------------------
  180.   # ● 定义"背向某事件"的方法
  181.   #--------------------------------------------------------------------------
  182.   def turn_away_from_event(id)
  183.     # 计算与需要背向的事件间的位移
  184.     sx = @x - $game_map.events[id].x
  185.     sy = @y - $game_map.events[id].y
  186.     # 如果是当前所在坐标则返回
  187.     if sx == 0 and sy == 0
  188.       return
  189.     end
  190.     # X比Y的绝对值大时
  191.     if sx.abs > sy.abs
  192.       # X的值为正则转右,负则转左
  193.       sx > 0 ? turn_right : turn_left
  194.     # X比Y的绝对值小时
  195.     else
  196.       # Y的值为正则转下,负则转上
  197.       sy > 0 ? turn_down : turn_up
  198.     end
  199.   end
  200.   #--------------------------------------------------------------------------
  201.   # ● 定义"面向某一坐标"的方法
  202.   #--------------------------------------------------------------------------
  203.   def turn_toward_position(x, y)
  204.     # 计算与指定坐标间的位移
  205.     sx = @x - x
  206.     sy = @y - y
  207.     # 如果是当前所在坐标则返回
  208.     if sx == 0 and sy == 0
  209.       return
  210.     end
  211.     # X比Y的绝对值大时
  212.     if sx.abs > sy.abs
  213.       sx > 0 ? turn_left : turn_right
  214.     # X比Y的绝对值小时
  215.     else
  216.       sy > 0 ? turn_up : turn_down
  217.     end
  218.   end
  219.   #--------------------------------------------------------------------------
  220.   # ● 定义"背向某一坐标"的方法
  221.   #--------------------------------------------------------------------------
  222.   def turn_away_from_position(x, y)
  223.     # 计算与指定坐标间的位移
  224.     sx = @x - x
  225.     sy = @y - y
  226.     # 如果是当前所在坐标则返回
  227.     if sx == 0 and sy == 0
  228.       return
  229.     end
  230.     # X比Y的绝对值大时
  231.     if sx.abs > sy.abs
  232.       sx > 0 ? turn_right : turn_left
  233.     # X比Y的绝对值小时
  234.     else
  235.       sy > 0 ? turn_down : turn_up
  236.     end
  237.   end
  238.   #--------------------------------------------------------------------------
  239.   # ● 定义"随机范围移动"的方法
  240.   #--------------------------------------------------------------------------
  241.   def move_random_area(x, y, distance)
  242.     # 计算与目标原点区域中心间的位移
  243.     sx = @x - x
  244.     sy = @y - y
  245.     # 如果已经在范围外
  246.     if sx.abs + sy.abs > distance
  247.       # 接近区域中心
  248.       move_toward_position(x, y)
  249.       return
  250.     end
  251.     # 在范围内时随机选择方向移动
  252.     case rand(4)
  253.     when 0  # 向下移动
  254.       if sx.abs + sy < distance
  255.         move_down(false)
  256.       end
  257.     when 1  # 向左移动
  258.       if -sx + sy.abs < distance
  259.         move_left(false)
  260.       end
  261.     when 2  # 向右移动
  262.       if sx + sy.abs < distance
  263.         move_right(false)
  264.       end
  265.     when 3  # 向上移动
  266.       if sx.abs - sy < distance
  267.         move_up(false)
  268.       end
  269.     end
  270.   end
  271. end

复制代码
希望能从某种程度上帮助到布丁{:nm_4:}
获取特定事件就如同18L在那里插入的for循环一样添加就好.不过建议在调用行为外使用?因为这些行为也许可以用于NPC的AI,而不仅仅是敌人
作者: N.K    时间: 2010-10-8 12:09
提示: 作者被禁止或删除 内容自动屏蔽
作者: pudding    时间: 2010-10-8 18:07
好象越多东西就越卡,
谁能告诉我,是什么原因导致的?
有什么地方是没必要的,又该如何应对?
麻烦有能力的人士,告知一下。
我只是一个脚本的初学者。
作者: moy    时间: 2010-10-8 18:26
update里面如果有很多东西要执行就会比较杯具....
可以适当的将一些不太必要的刷新加大刷新间隔....
(咱没看你的脚本....仅仅是提出可能性
作者: 429259591    时间: 2010-10-8 18:36
pudding不是美工帝么?这点素材应该没问题
我觉得技能方面应该多从移动连击方面出发
比如,五星斩(自己胡想的)

而不是动画效果,因为这类之前XAS已经发挥到很高的地步,我们不需要再来个类XAS
技能动作多从这些方面考虑,应该会有很大的特色
作者: 六祈    时间: 2010-10-9 11:28
本帖最后由 六祈 于 2010-10-9 12:20 编辑

回复 pudding 的帖子
用一个@count的变量,每帧update,@count-1,直到@count等于0时调用一次运算代码,并将@count重新赋值。
目前根据愚者目测,这个@count在VX中调整到60看起来仍然不是很明显的脱线…

ps:pudding君辛苦了~~~
作者: pudding    时间: 2010-10-9 12:39
本帖最后由 pudding 于 2010-10-9 13:51 编辑

回复 六祈 的帖子
修改了一下,用了这方法不错,加到16个敌人也不是很慢。

发现个新问题,敌人死了 采用的是暂时消除,怎么才能减低占用的内存?
作者: ccwch    时间: 2010-10-25 23:10
:victory:可惜不是VX的脚本




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