Project1

标题: 【送分活动②】以下几个道具(脚本如何写)如何制作? [打印本页]

作者: chd114    时间: 2012-7-4 13:34
标题: 【送分活动②】以下几个道具(脚本如何写)如何制作?
本帖最后由 chd114 于 2012-7-6 21:32 编辑

挑战内容1:已知楼主制作了一个APRP的直线伤害系统,但是直线射击范围却被掐住(前方有2个敌人在同一条直线上,射程为2的时候直接穿过第一个敌人击中第二个敌人),如何修改才能设定在射程范围内直接射击离自己最近的敌人?

挑战内容2:如何制作一个合理滑索(等于忍者飞镖,可以通过扔飞镖扔到某个事件上把自己带到那个事件的前面一格,等同XAS···),要求是在投掷范围内投掷离自己最近的目标事件,且这个事件不等于当前角色所在位置前方一格、此事件前方有一格可行走原件时投掷才能生效。

挑战内容3:如何制作一个快速清除规定名称格式的事件和画在第二层用变量数组指定好的图块?

挑战内容4:请以以下脚本为蓝图改造出一种与之兼容的图片显示脚本
  1. #本脚本来自百度贴吧
  2. #http://tieba.baidu.com/p/1437728543
  3. #作者:蹂躏の牙
  4. #oksh略作改动
  5. class Map_Damage
  6.   attr_accessor :pic
  7.   
  8.   def initialize
  9.     @pic=Sprite.new
  10.     @front1=RPG::Cache.picture("front1")
  11.     @front2=RPG::Cache.picture("front2")
  12.     @front3=RPG::Cache.picture("front3")
  13.     @front4=RPG::Cache.picture("front4")
  14.     @front5=RPG::Cache.picture("front5")
  15.     @front6=RPG::Cache.picture("front6")
  16.     @pic.bitmap=Bitmap.new(640,480)
  17.     @pic.z=50
  18.   end

  19.   def mapupdate
  20.     @pic.bitmap.clear

  21.     return if $game_variables[173]<1#地图显示伤害的开关关闭则不显示伤害
  22.     if if $game_variables[173]>1
  23.       #必须打开8号开关与56号开关打开才有伤害显示
  24.       for i in $game_variables[90][0]...$game_variables[90][0]+$game_variables[90][1]
  25.         for j in $game_variables[90][2]...$game_variables[90][2]+$game_variables[90][3]
  26.           if $game_map.have_an_event?(i,j)#搜索全场景事件
  27.             @iid=$game_map.check_event(i,j)
  28.             if $game_map.events[@iid].event.name[0,6]=="怪物"
  29.               draw_mapdamage($game_map.events[@iid].event.name[6,3].to_i,i,j)
  30.               #获取怪物属性进入画伤害的脚本段
  31.             end
  32.           end
  33.         end
  34.       end
  35.     end#持有怪物手册到此结束
  36.   end

  37.   def draw_mapdamage(number,i,j)
  38.     e=Enemy_property.new(number)
  39.     if e.got_p(19)
  40.       if $game_variables[104][$game_variables[1]][7]<1
  41.         return#潜伏怪不显示伤害(持有反潜伏的物品后显示)
  42.       else
  43.         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]
  44.         
  45.         else
  46.           return
  47.         end
  48.       end
  49.     end
  50.     if e.got_p(26)
  51.       return if $game_map.events[@iid].iserase==true#重生怪打败后暂不显示伤害
  52.     end
  53.     damage=e.got_damage
  54.     if e.got_p(30) and $game_switches[99]==true#伪装的随机开关必须打开
  55.       damage=1
  56.     end
  57.   if damage>=999999 or if $game_variables[173]<2
  58.     @pic.bitmap.blt(i*32+8, j*32+20, @front6, Rect.new(0,0,24,12))
  59.   else
  60.     if damage>=$game_actors[$game_variables[1]+1].hp
  61.       a=damage.to_s
  62.       for q in 0...a.size
  63.         @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))
  64.       end
  65.     end
  66.     if damage<$game_actors[$game_variables[1]+1].hp/25
  67.       a=damage.to_s
  68.         for q in 0...a.size
  69.           @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))
  70.         end
  71.       end
  72.       if damage>=$game_actors[$game_variables[1]+1].hp/25 and damage<$game_actors[$game_variables[1]+1].hp/8
  73.         a=damage.to_s
  74.         for q in 0...a.size
  75.           @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))
  76.         end
  77.       end
  78.       if damage>=$game_actors[$game_variables[1]+1].hp/8 and damage<$game_actors[$game_variables[1]+1].hp/3
  79.         a=damage.to_s
  80.         for q in 0...a.size
  81.           @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))
  82.         end
  83.       end
  84.       if damage>=$game_actors[$game_variables[1]+1].hp/3 and damage<$game_actors[$game_variables[1]+1].hp
  85.         a=damage.to_s
  86.         for q in 0...a.size
  87.           @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))
  88.         end
  89.       end
  90.      end
  91.     end#if结束
  92.   end#def结束
  93. end
  94. end
复制代码
要求将此图片(图一)如此显示(图二)

图一 图二



挑战时限为20小时(共计四项),完成一项可获得45EXP,每提前一小时完成每一项可获得修正奖励4EXPdsu_plus_rewardpost_czw
作者: chd114    时间: 2012-7-4 14:07
本帖最后由 chd114 于 2012-7-4 15:20 编辑

@hcm@he11120@hys111111 @zhixin1997 @hcm @zhixin1997 @hys111111 @hcm




链接坏掉不就等于没解决么······










作者: chd114    时间: 2012-7-6 15:38
·····································




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