赞 | 153 |
VIP | 10 |
好人卡 | 39 |
积分 | 93 |
经验 | 146191 |
最后登录 | 2024-5-6 |
在线时间 | 2504 小时 |
Lv4.逐梦者
- 梦石
- 0
- 星屑
- 9280
- 在线时间
- 2504 小时
- 注册时间
- 2011-5-20
- 帖子
- 15389
|
本帖最后由 chd114 于 2012-7-6 21:32 编辑
挑战内容1:已知楼主制作了一个APRP的直线伤害系统,但是直线射击范围却被掐住(前方有2个敌人在同一条直线上,射程为2的时候直接穿过第一个敌人击中第二个敌人),如何修改才能设定在射程范围内直接射击离自己最近的敌人?
挑战内容2:如何制作一个合理滑索(等于忍者飞镖,可以通过扔飞镖扔到某个事件上把自己带到那个事件的前面一格,等同XAS···),要求是在投掷范围内投掷离自己最近的目标事件,且这个事件不等于当前角色所在位置前方一格、此事件前方有一格可行走原件时投掷才能生效。
挑战内容3:如何制作一个快速清除规定名称格式的事件和画在第二层用变量数组指定好的图块?
挑战内容4:请以以下脚本为蓝图改造出一种与之兼容的图片显示脚本- #本脚本来自百度贴吧
- #http://tieba.baidu.com/p/1437728543
- #作者:蹂躏の牙
- #oksh略作改动
- class Map_Damage
- attr_accessor :pic
-
- def initialize
- @pic=Sprite.new
- @front1=RPG::Cache.picture("front1")
- @front2=RPG::Cache.picture("front2")
- @front3=RPG::Cache.picture("front3")
- @front4=RPG::Cache.picture("front4")
- @front5=RPG::Cache.picture("front5")
- @front6=RPG::Cache.picture("front6")
- @pic.bitmap=Bitmap.new(640,480)
- @pic.z=50
- end
- def mapupdate
- @pic.bitmap.clear
- return if $game_variables[173]<1#地图显示伤害的开关关闭则不显示伤害
- if if $game_variables[173]>1
- #必须打开8号开关与56号开关打开才有伤害显示
- for i in $game_variables[90][0]...$game_variables[90][0]+$game_variables[90][1]
- for j in $game_variables[90][2]...$game_variables[90][2]+$game_variables[90][3]
- if $game_map.have_an_event?(i,j)#搜索全场景事件
- @iid=$game_map.check_event(i,j)
- if $game_map.events[@iid].event.name[0,6]=="怪物"
- draw_mapdamage($game_map.events[@iid].event.name[6,3].to_i,i,j)
- #获取怪物属性进入画伤害的脚本段
- end
- end
- end
- end
- end#持有怪物手册到此结束
- end
- def draw_mapdamage(number,i,j)
- e=Enemy_property.new(number)
- if e.got_p(19)
- if $game_variables[104][$game_variables[1]][7]<1
- return#潜伏怪不显示伤害(持有反潜伏的物品后显示)
- else
- if ($game_map.events[@iid].x-$game_player.x).abs+($game_map.events[@iid].y-$game_player.y).abs<=$game_variables[104][$game_variables[1]][7]
-
- else
- return
- end
- end
- end
- if e.got_p(26)
- return if $game_map.events[@iid].iserase==true#重生怪打败后暂不显示伤害
- end
- damage=e.got_damage
- if e.got_p(30) and $game_switches[99]==true#伪装的随机开关必须打开
- damage=1
- end
- if damage>=999999 or if $game_variables[173]<2
- @pic.bitmap.blt(i*32+8, j*32+20, @front6, Rect.new(0,0,24,12))
- else
- if damage>=$game_actors[$game_variables[1]+1].hp
- a=damage.to_s
- for q in 0...a.size
- @pic.bitmap.blt(i*32-a.size*8+q*8+32, j*32+20, @front5, Rect.new(a[q,1].to_i*15-1,0,12,12))
- end
- end
- if damage<$game_actors[$game_variables[1]+1].hp/25
- a=damage.to_s
- for q in 0...a.size
- @pic.bitmap.blt(i*32-a.size*8+q*8+32, j*32+20, @front1, Rect.new(a[q,1].to_i*15-1,0,12,12))
- end
- end
- if damage>=$game_actors[$game_variables[1]+1].hp/25 and damage<$game_actors[$game_variables[1]+1].hp/8
- a=damage.to_s
- for q in 0...a.size
- @pic.bitmap.blt(i*32-a.size*8+q*8+32, j*32+20, @front2, Rect.new(a[q,1].to_i*15,0,12,12))
- end
- end
- if damage>=$game_actors[$game_variables[1]+1].hp/8 and damage<$game_actors[$game_variables[1]+1].hp/3
- a=damage.to_s
- for q in 0...a.size
- @pic.bitmap.blt(i*32-a.size*8+q*8+32, j*32+20, @front3, Rect.new(a[q,1].to_i*15-1,0,12,12))
- end
- end
- if damage>=$game_actors[$game_variables[1]+1].hp/3 and damage<$game_actors[$game_variables[1]+1].hp
- a=damage.to_s
- for q in 0...a.size
- @pic.bitmap.blt(i*32-a.size*8+q*8+32, j*32+20, @front4, Rect.new(a[q,1].to_i*15-1,0,12,12))
- end
- end
- end
- end#if结束
- end#def结束
- end
- end
复制代码 要求将此图片(图一)如此显示(图二)
图一
图二
挑战时限为20小时(共计四项),完成一项可获得45EXP,每提前一小时完成每一项可获得修正奖励4EXP |
评分
-
查看全部评分
|