设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 376|回复: 14
打印 上一主题 下一主题

[有事请教] 如何过段时间清除地图上的垃圾keng

[复制链接]

Lv4.逐梦者

梦石
0
星屑
7554
在线时间
1314 小时
注册时间
2015-8-15
帖子
747
跳转到指定楼层
1
发表于 2024-9-5 17:00:08 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有帐号?注册会员

x
本帖最后由 金芒芒 于 2024-9-7 09:06 编辑

RUBY 代码复制
  1. class Scene_Map
  2.  
  3.   #--------------------------------------------------------
  4.   # ●爆炸 (中心X,中心Y,中心伤害,范围,动画ID,施放者,队伍不受(0是所有人受)是否留垃圾)
  5.   #--------------------------------------------------------  
  6. #定义 EFS爆炸(x,y,ini伤害,范围,动画id,施放者= 无,队伍 =0,垃圾=true)
  7.   def EFS_Jinggongzhiniao(x,y,ini_damage,range,animation_id,shifazhe = nil,team = 0,trash = true)
  8.     if trash#如果垃圾
  9.      #坑= 变魔术出现临时演员 (x,y,“垃圾”,“180-开关03”,8,1,错误)
  10.       keng = conjure_temp(x,y,"trash","180-Switch03",8,1,false)
  11.      #演 = 变魔术出现临时演员(x,y,“垃圾”,“197-支架05”,4,0,true)
  12.       yan = conjure_temp(x,y,"trash","197-Support05",4,0,true)
  13.     end
  14.    #事件=变出临时演员(x,y,“爆炸”,“”,2)
  15.     event = conjure_temp(x,y,"EXPLOSION","",2)
  16.     refresh_screen#刷新屏幕
  17.     event.animation_id = animation_id#事件动画id=动画id
  18.    # $游戏屏幕。开始抖动(功率(x,y,15,1),功率(x、y,20,1)、45)
  19.     $game_screen.start_shake(power(x,y,15,1),power(x,y,20,1),45)
  20.    #$游戏屏幕。启动闪光灯(新颜色(255255255,功率(x,y,100,4)),10)
  21.     $game_screen.start_flash(Color.new(255,255,255,power(x,y,100,4)), 10)
  22.     #对于$游戏地图中的f。战士.价值
  23.     for f in $game_map.fighters.values
  24.       #下一个if团队!=0和f.团队==团队
  25.       next if team != 0 and f.team == team
  26.       next if f.dead?#下一个如果f.死了?
  27.       f_juli = juli(f.x,f.y,x,y)
  28.       if f_juli <= range#范围
  29.        # 伤害=(范围-f_距离)*中心伤害/(范围+0.0)
  30.         damage =  (range-f_juli)*ini_damage/(range+0.0)
  31.         #自然_伤害(f,伤害,施放者,Wzj::ONFIRE_ANIMATION)#士兵着火动画
  32.         nature_damage(f,damage,shifazhe,Wzj::ONFIRE_ANIMATION)
  33.         f.zhafei(x,y,5) if damage >=25# f.施放者(x,y,5) if 伤害 >=25
  34.  
  35.       end
  36.  
  37.  
  38.     end
  39.  
  40.  
  41.     keng .animation_id = 123 #123坑。动画_id=123
  42.  
  43.  
  44.   end
  45. end

mmexport1725671057833.png (800.52 KB, 下载次数: 0)

mmexport1725671057833.png

mmexport1725671062169.png (495.83 KB, 下载次数: 0)

mmexport1725671062169.png

Lv5.捕梦者

梦石
0
星屑
36119
在线时间
10712 小时
注册时间
2009-3-15
帖子
4806
2
发表于 2024-9-6 19:40:13 | 只看该作者
找爱佬写的脚本吗?
看不明白

点评

他应该是在问什么问题,这段目测是在画面上搞一些爆炸的动画,然后计算伤害和生成一个爆炸后的坑,可能是想知道坑如何在一段时间后自动消失吧  发表于 2024-9-6 20:50
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
7554
在线时间
1314 小时
注册时间
2015-8-15
帖子
747
3
 楼主| 发表于 2024-9-7 08:18:55 | 只看该作者
本帖最后由 金芒芒 于 2024-9-7 11:02 编辑
soulsaga 发表于 2024-9-6 19:40
找爱佬写的脚本吗?
看不明白


魔法小肉包说对了 这个坑是个临时演员 打了几战还是在地图上,每使用一次魔法多个坑,这种效果我想要不过又坑坑洼洼的 又消失不掉 为了减少内存一张地图战场反复用,结果多是坑坑洼洼消除不掉
回复 支持 反对

使用道具 举报

Lv5.捕梦者

梦石
0
星屑
36119
在线时间
10712 小时
注册时间
2009-3-15
帖子
4806
4
发表于 2024-9-7 12:52:23 | 只看该作者
conjure_temp

这是什么用途的呢
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
7554
在线时间
1314 小时
注册时间
2015-8-15
帖子
747
5
 楼主| 发表于 2024-9-7 13:20:29 | 只看该作者
本帖最后由 金芒芒 于 2024-9-7 16:13 编辑
soulsaga 发表于 2024-9-7 12:52
conjure_temp

这是什么用途的呢


魔法击中目标的一个弹坑,战斗时候装饰场景用的
class EFS_Battler < Game_Character
    @jinggongzhiniao_s = Figter_data::JINGONG_SETTINGS[data_id]  
end
RUBY 代码复制
  1. def damage_process_shoot(target) #伤害过程射击(目标)
  2.     target.show_temp_hpbar #目标。显示临时演员hp栏
  3.     target.try_dodge#目标。试着闪避
  4.     #导弹击中目标设定级别(1)
  5.     target.set_level_hit_by_missile(1)
  6.  
  7.     #执行特殊代码
  8.     eval(@atk_code) if @atk_code != nil#eval(atk代码)if@atk代码!=无
  9.    # @jinggongzhiniao_s == nil
  10.     #[4,99,true]
  11.     if @jinggongzhiniao_s != nil#如果@爆炸技能!=无
  12.       #导弹击中目标设定级别(4)
  13.       target.set_level_hit_by_missile(4)
  14.        x = target.x  
  15.        y = target.y
  16.        q = @jinggongzhiniao_s[0]
  17.        w = @jinggongzhiniao_s[1]
  18.        t = @jinggongzhiniao_s[2]
  19.        s = @jinggongzhiniao_s[3]
  20.        $scene.EFS_Jinggongzhiniao(x,y,@s_base_atk,q,w,s,@team,t)
  21.  
  22.       else  
  23.  
  24. #      else
  25.       @jinggongzhiniao== nil
  26.     # end
  27.  
  28.        return
  29.  
  30.     end
  31.  
  32.     player_blocked = (target.is_a?(EFS_Hero) and target.p_blocked?(self))
  33.  
  34.     critical = false
  35.     temp_animation_id = Wzj::HIT_ANIMATION_ID   
  36.     return if target.dead?
  37.     d = target.direction
  38.     shd_armor_reduce = calculate_shd_armor_reduce(d)
  39.     if rand(100) < @critical_hit
  40.       damage_reduce = 1
  41.       target.animation_id=Wzj::HIT_ANIMATION_ID_2
  42.       critical = true
  43.     else
  44.       damage_reduce = calculate_damage_reduce(d)
  45.     end  
  46.     buodong = (rand(10)-5).round
  47.     #远程与近程攻击力转换
  48.     #######################
  49.     #破甲伤害计算
  50.     damage = @s_bro_atk
  51.     target.hp -=  damage*damage_reduce
  52.  
  53.  
  54.  
  55.  
  56.     if target.is_a?(EFS_Horseman)
  57.       damage = @s_base_atk+@anti_cav
  58.     else
  59.       damage = @s_base_atk+@anti_inf
  60.     end   
  61.  
  62.     #damage+= @charge_boun unless @rushed
  63.     #@rushed = true
  64.  
  65.     shd_armor = 0
  66.     if target.guard?
  67.     shd_armor = target.shd_hp_max * shd_armor_reduce
  68.     end
  69.     armor = shd_armor + target.armor_hp_max
  70.  
  71.     damage = [buodong+5,(damage-armor)*damage_reduce+buodong].max
  72.     #如果对方溃逃加成伤害
  73.     damage = 2*damage - damage/2 if target.move_type == 4
  74.  
  75.     #如果玩家格挡住
  76.     blocked = false
  77.     if player_blocked
  78.       #damage = 2*damage
  79.       if target.use_sp(damage)
  80.         blocked = true
  81.       else
  82.           r_damage = (damage - target.sp)/2
  83.           target.sp -= damage
  84.           target.hp -= r_damage
  85.       end  
  86.     else  
  87.       target.hp -=  damage
  88.     end  
  89.  
  90.  
  91.  
  92.  
  93.  
  94.     if target.dead?
  95.       target.dead unless target.already_deal_dead
  96.       display_killing_msg(target)
  97.                   #获得经验
  98.       gain_exp(target.exp)
  99.     end  
  100.  
  101.     #闪烁动画
  102.      target.animation_id=temp_animation_id
  103.     #如果目标是玩家控制的英雄
  104.     if target.is_a?(EFS_Hero)
  105.       if blocked
  106.       shaker(5,5,15)
  107.       target.add_to_popup_list("Guard",false)
  108.       else
  109.       shaker(5,10,20)
  110.       unless target.hero_get_hit_se==nil
  111.       Audio.se_play("Audio/SE/"+target.hero_get_hit_se+ (rand(target.hero_get_hit_se_num)+1).to_s,100, 100)
  112.       end      
  113.       #Audio.se_play("Audio/SE/V_Damage"+ (rand(3)+1).to_s,100, 100)
  114.       $game_screen.start_flash(Color.new(255,0,0,100), 5)
  115.       target.add_to_popup_list(damage.round,critical)
  116.       target.add_to_popup_list("Critical",false,15) if critical
  117.       end  
  118.     end
  119.     #演奏SE  
  120.     if target.guard? and target.shd_hp > 0 and target.direction != @direction and target.def_se != nil
  121.     Audio.se_play("Audio/SE/"+target.def_se+ (rand(target.def_se_num)+1).to_s,se_v, 100)
  122.     else  
  123.     Audio.se_play("Audio/SE/"+@atk_se+ (rand(@atk_se_num)+1).to_s,se_v+20, 100)
  124.     end
  125.     #如果玩家挡住了
  126.     target.blocked if blocked
  127.  
  128.    end

RUBY 代码复制
  1. module Figter_data
  2.  
  3. data_id = 13
  4. #=====基本、模型信息==========
  5. CHARACTER_NAME[data_id] = "夏侯渊"
  6.  
  7. HP_MAX[data_id]  =   225
  8. AMMOR_HP[data_id]  = 20
  9. SHD_HP[data_id]  =   0
  10. BASE_ATK[data_id]  = 75
  11. BRO_ATK[data_id]  =  5
  12. S_BASE_ATK[data_id] = 165
  13. S_BRO_ATK[data_id]  = 80
  14. ATK_SKILL[data_id] = 20
  15. DEF_SKILL[data_id] = 5
  16. ANTI_CAV[data_id]  = 0
  17. ANTI_INF[data_id]  = 0
  18. CHARGE_BOUN[data_id]=20
  19. MORALE[data_id]  =   65    #100max
  20. CRITICAL_HIT[data_id] = 0
  21.  
  22. #EXPLOSION_SETTINGS[data_id] =[20,35,true] #nil#[20,35,true,13]#nil#"e= @explosion_s.nil? ? explosion_s : @explosion_s =[20,35,true] if $game_switches[18] == true"
  23. JINGONG_SETTINGS[data_id] = [20,35,true]#false
  24. #(范围,动画ID,是否留垃圾
  25.  
  26.  
  27.  
  28. end

p keng

pkeng.png (72.62 KB, 下载次数: 1)

pkeng.png
回复 支持 反对

使用道具 举报

Lv5.捕梦者

梦石
0
星屑
36119
在线时间
10712 小时
注册时间
2009-3-15
帖子
4806
6
发表于 2024-9-9 19:01:51 | 只看该作者
你要除坑
先要知道怎么判断这个事件是坑
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
7554
在线时间
1314 小时
注册时间
2015-8-15
帖子
747
7
 楼主| 发表于 2024-9-10 10:21:31 | 只看该作者
soulsaga 发表于 2024-9-9 19:01
你要除坑
先要知道怎么判断这个事件是坑

  # 召唤的函数
  def conjure_slg(x,y,name,character_name,d)
    # 生成实例
    $game_map.events[$game_map.events.size+1] = Game_Event.new($game_map.map_id,produce_event_slg(x,y,name,character_name,d))
    # 处理各项属性
    $game_map.map.events[$game_map.events.size] = produce_event_slg(x,y,name,character_name,d)
    # 重置
    @spriteset.dispose
    @spriteset = Spriteset_Map.new

  end
  
  # 开始生产召唤物
  def produce_event_slg(x,y,name,character_name,d)
    e = RPG::Event.new(x,y)
    e.id = $game_map.events.size
    e.name = name
    e.pages = [RPG::Event::Page.new]   
    e.pages[0].graphic = RPG::Event::Page::Graphic.new
    e.pages[0].graphic.character_name = character_name
    e.pages[0].graphic.direction = d
    e.pages[0].through = false
    return e
  end
  

  
end
回复 支持 反对

使用道具 举报

Lv5.捕梦者

梦石
0
星屑
36119
在线时间
10712 小时
注册时间
2009-3-15
帖子
4806
8
发表于 2024-9-10 10:30:22 | 只看该作者
金芒芒 发表于 2024-9-10 10:21
# 召唤的函数
  def conjure_slg(x,y,name,character_name,d)
    # 生成实例

看来只能从character_name着手
你的character_name是什么呢?
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
7554
在线时间
1314 小时
注册时间
2015-8-15
帖子
747
9
 楼主| 发表于 2024-9-10 13:00:53 | 只看该作者
本帖最后由 金芒芒 于 2024-9-10 13:08 编辑
soulsaga 发表于 2024-9-10 10:30
看来只能从character_name着手
你的character_name是什么呢?


character_name = keng
keng = conjure_temp(x,y,"trash","180-Switch03",8,1,false)
yan = conjure_temp(x,y,"trash","197-Support05",4,0,true)
false和true 因该是控制着刷新和不刷新行走图

180-Switch03.png (2.9 KB, 下载次数: 1)

180-Switch03.png

197-Support05.png (20.36 KB, 下载次数: 2)

197-Support05.png
回复 支持 反对

使用道具 举报

Lv5.捕梦者

梦石
0
星屑
36119
在线时间
10712 小时
注册时间
2009-3-15
帖子
4806
10
发表于 2024-9-10 20:10:06 | 只看该作者
金芒芒 发表于 2024-9-10 13:00
character_name = keng
keng = conjure_temp(x,y,"trash","180-Switch03",8,1,false)
yan = conjure_tem ...

之后等大佬搞就行了
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-9-20 14:46

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表