查看: 4224|回复: 13

[胡扯] 【强迫症向】那些年,那些看着就想抽作者的代码

[复制链接]

…あたしは天

梦石
0
星屑
2308
在线时间
4033 小时
注册时间
2010-10-4
回帖
10548

开拓者贵宾

发表于 2014-7-27 19:04:53 | 显示全部楼层 |阅读模式

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

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

×
本帖最后由 taroxd 于 2014-7-27 20:34 编辑

如此整齐的代码,我见到得不多
[pre lang="ruby" line="1"]
#==============================================================================
# ** 禁止在指定位置存档
#  作者:影月千秋
#------------------------------------------------------------------------------
# * 简介
#   禁止在指定档位上存档
#------------------------------------------------------------------------------
# * 使用方法
#  插入到其他脚本以下、Main之前,进行相关设定
#  事件中可使用add_no_save和remove_no_save来新增/取消被禁用的存档号
#  例【add_no_save(3,7,13)】【remove_no_save(4,2,7)】
#      禁止存在3号7号和13号   可以存在4号2号和7号了
#------------------------------------------------------------------------------
# * 声明
#   本脚本来自"影月千秋", 使用/修改/转载请保留此信息
#==============================================================================
module NoSave
  @N = [0]
    # 这是一个数组 在其中写禁止存档的存档号
      # 以下是正确的填写示例
      #  N = [0,1,2]
      #  N = [5]
      #  N = [3,11,14]
      # 示例结束
end # 请就此止步,不要更改其他地方


class Game_Interpreter;def add_no_save(*id);NoSave.instance_exec{@N.push(*id).u\
niq)};end;def remove_no_save(*id);NoSave.instance_exec{@N.delete_if{|x| id.incl\
ude? x}};end;end;class Scene_Save;def on_savefile_ok;super;if !NoSave.instance_\
exec{@N}.include?(@index) && DataManager.save_game(@index);on_save_success;else;
Sound.play_buzzer;end;end;end
#==============================================================================#
#=====                        =================================================#
            "脚 本 尾"
#=====                        =================================================#
#==============================================================================#[/pre]



来自VA的代码

1. 好一个神奇的方法名,真可谓阻止元编程的有力武器
[pre lang="ruby" line="1"]
class Game_Map
  # 此处省略 m 行
  def referesh_vehicles
    @vehicles.each {|vehicle| vehicle.refresh }
  end
  # 此处省略 n 行
end
[/pre]

2. VA默认脚本全局搜索:perform_map_damage_effect
该方法的调用以及定义都非常神奇~




先不说我们看得累不累,你打字打得累不累啊
[pre lang="ruby" line="1"]

def total_hp
  result = 0
  for i in 0...$game_party.members.size
    result += $game_party.members.hp
  end
  return result
end

#---------------------------------------

class RPG::BaseItem
  def sell_moe?
    self.note.split(/[\r\n]+/).each do |line|
      if line =~ /sell\s*moe/i
        return true
      end
    end
    return false
  end
end

#---------------------------------------

def add_variables
  $game_variables[1] + $game_variables[2] +
  $game_variables[3] + $game_variables[4] +
  $game_variables[5] + $game_variables[6]
end
[/pre]


膜拜chd菊苣
[pre lang="ruby" line="1"]
def snjz(y) # 把10进制数转换为16进制数(必须用print,否则会p num => nil)
    s=[]
    if self==16
      s[0]=4
      s[1]=2
    elsif self==25
      s[0]=5
      s[1]=2
    elsif self==27
      s[0]=3
      s[1]=3
    elsif self==32
      s[0]=2
      s[1]=5
    elsif self==36
      s[0]=6
      s[1]=2
    end

    n=[]
    m=[]
    num=""
    i=1
    q=0
    r=y%s[0]
    q=(y-r)/s[0]
    n[0]=r
    until q==0
      r=q%s[0]
      q=(q-r)/s[0]
      n=r
      i+=1
    end
    ns=n.size
    nsr=ns%s[1]
    for i in 1..s[1]-nsr
      n[ns+i-1]=0
    end
    ns=n.size
    nsr=ns/s[1]
    for i in 1..nsr
      if s[1]==2
        m[i-1]=n[1+2*(i-1)].to_s+n[2*(i-1)].to_s
      elsif s[1]==3
        m[i-1]=n[2+3*(i-1)].to_s+n[1+3*(i-1)].to_s+n[3*(i-1)].to_s
      elsif s[1]==5
        m[i-1]=n[4+5*(i-1)].to_s+n[3+5*(i-1)].to_s+n[2+5*(i-1)].to_s+
        n[1+5*(i-1)].to_s+n[5*(i-1)].to_s
      end
    end
    for i in 0...m.size
      if self==16
        m="0" if m=="00"
        m="1" if m=="01"
        m="2" if m=="02"
        m="3" if m=="03"
        m="4" if m=="10"
        m="5" if m=="11"
        m="6" if m=="12"
        m="7" if m=="13"
        m="8" if m=="20"
        m="9" if m=="21"
        m="A" if m=="22"
        m="B" if m=="23"
        m="C" if m=="30"
        m="D" if m=="31"
        m="E" if m=="32"
        m="F" if m=="33"
      elsif self==25
        m="0" if m=="00"
        m="1" if m=="01"
        m="2" if m=="02"
        m="3" if m=="03"
        m="4" if m=="04"
        m="5" if m=="10"
        m="6" if m=="11"
        m="7" if m=="12"
        m="8" if m=="13"
        m="9" if m=="14"
        m="A" if m=="20"
        m="B" if m=="21"
        m="C" if m=="22"
        m="D" if m=="23"
        m="E" if m=="24"
        m="F" if m=="30"
        m="G" if m=="31"
        m="H" if m=="32"
        m="I" if m=="33"
        m="J" if m=="34"
        m="K" if m=="40"
        m="L" if m=="41"
        m="M" if m=="42"
        m="N" if m=="43"
        m="O" if m=="44"
      elsif self==27
        m="0" if m=="000"
        m="1" if m=="001"
        m="2" if m=="002"
        m="3" if m=="010"
        m="4" if m=="011"
        m="5" if m=="012"
        m="6" if m=="020"
        m="7" if m=="021"
        m="8" if m=="022"
        m="9" if m=="100"
        m="A" if m=="101"
        m="B" if m=="102"
        m="C" if m=="110"
        m="D" if m=="111"
        m="E" if m=="112"
        m="F" if m=="120"
        m="G" if m=="121"
        m="H" if m=="122"
        m="I" if m=="200"
        m="J" if m=="201"
        m="K" if m=="202"
        m="L" if m=="210"
        m="M" if m=="211"
        m="N" if m=="212"
        m="O" if m=="220"
        m="P" if m=="221"
        m="Q" if m=="222"
      elsif self==32
        m="0" if m=="00000"
        m="1" if m=="00001"
        m="2" if m=="00010"
        m="3" if m=="00011"
        m="4" if m=="00100"
        m="5" if m=="00101"
        m="6" if m=="00110"
        m="7" if m=="00111"
        m="8" if m=="01000"
        m="9" if m=="01001"
        m="A" if m=="01010"
        m="B" if m=="01011"
        m="C" if m=="01100"
        m="D" if m=="01101"
        m="E" if m=="01110"
        m="F" if m=="01111"
        m="G" if m=="10000"
        m="H" if m=="10001"
        m="I" if m=="10010"
        m="J" if m=="10011"
        m="K" if m=="10100"
        m="L" if m=="10101"
        m="M" if m=="10110"
        m="N" if m=="10111"
        m="O" if m=="11000"
        m="P" if m=="11001"
        m="Q" if m=="11010"
        m="R" if m=="11011"
        m="S" if m=="11100"
        m="T" if m=="11101"
        m="U" if m=="11110"
        m="V" if m=="11111"
      elsif self==36
        m="0" if m=="00"
        m="1" if m=="01"
        m="2" if m=="02"
        m="3" if m=="03"
        m="4" if m=="04"
        m="5" if m=="05"
        m="6" if m=="10"
        m="7" if m=="11"
        m="8" if m=="12"
        m="9" if m=="13"
        m="A" if m=="14"
        m="B" if m=="15"
        m="C" if m=="20"
        m="D" if m=="21"
        m="E" if m=="22"
        m="F" if m=="23"
        m="G" if m=="24"
        m="H" if m=="25"
        m="I" if m=="30"
        m="J" if m=="31"
        m="K" if m=="32"
        m="L" if m=="33"
        m="M" if m=="34"
        m="N" if m=="35"
        m="O" if m=="40"
        m="P" if m=="41"
        m="Q" if m=="42"
        m="R" if m=="43"
        m="S" if m=="44"
        m="T" if m=="45"
        m="U" if m=="50"
        m="V" if m=="51"
        m="W" if m=="52"
        m="X" if m=="53"
        m="Y" if m=="54"
        m="Z" if m=="55"
      end
    end
    for i in 0..m.size
      if m[m.size-i]==m[m.size-1]
        if m[m.size-i]!="0"
          num=num.to_s+m[m.size-i].to_s
        end
      else
        num=num.to_s+m[m.size-i].to_s
      end
    end
    return num.to_s == num ? num.to_s : num
  end

[/pre]

评分

参与人数 2星屑 +106 收起 理由
柳泖 + 6
余烬之中 + 100 这么整齐干嘛要抽人家~

查看全部评分

百合控

梦石
0
星屑
6548
在线时间
1275 小时
注册时间
2013-8-21
回帖
3522

开拓者

发表于 2014-7-27 19:06:51 | 显示全部楼层
表示躺枪

点评

什么时候回来的TAT  发表于 2014-7-27 22:25
抽  发表于 2014-7-27 19:07

评分

参与人数 4星屑 +120 收起 理由
无脑之人 + 10 抽
柳泖 + 9 凑整
鑫晴 + 1 抽
taroxd + 100 抽

查看全部评分

回复

使用道具 举报

梦石
0
星屑
660
在线时间
1286 小时
注册时间
2011-6-14
回帖
3949
发表于 2014-7-27 19:44:27 | 显示全部楼层
perform_map_damage_effect没感觉有什么问题啊 . .
你可以去搜索一下def下面一行就是end的那些脚本……

点评

我想吐槽的不是空方法啦,留给子类实现我也会= =  发表于 2014-7-27 20:11
留给子类去实现嘛……一般在XXXBase里面见得多  发表于 2014-7-27 19:57
回复

使用道具 举报

…あたしは天

梦石
0
星屑
2308
在线时间
4033 小时
注册时间
2010-10-4
回帖
10548

开拓者贵宾

 楼主| 发表于 2014-7-27 20:10:57 | 显示全部楼层
本帖最后由 taroxd 于 2014-7-27 20:13 编辑
satgo1546 发表于 2014-7-27 19:44
perform_map_damage_effect没感觉有什么问题啊 . .
你可以去搜索一下def下面一行就是end的那些脚本…… ...


不是留给子类实现的问题。我们根据定义,可以知道,这玩意儿的效果是玩家受伤时地图闪一下。

我们来看这里的一个调用:
[pre lang="ruby" line="1"]  def regenerate_hp
    damage = -(mhp * hrg).to_i
    perform_map_damage_effect if $game_party.in_battle && damage > 0
    @result.hp_damage = [damage, max_slip_damage].min
    self.hp -= @result.hp_damage
  end[/pre]

$game_party.in_battle...战斗中你开地图效果干啥!!!
你甜美的是想让我们自己给Game_Enemy定义个perform_map_damage_effect,然后可以让敌人闪一下红光还是怎地?

点评

奇妙地戳中了笑点  发表于 2014-7-27 20:41
我上面的每一个代码都不会出问题啊……我只是吐槽一下代码而已= =  发表于 2014-7-27 20:16
perform_map_damage_effect if $game_party.in_battle && damage > 0  发表于 2014-7-27 20:16
我当然相信你不是吐槽空方法…………但是现在我还是觉得没什么问题……顶多……偶尔会造成与敌人同归于尽的巧合?(就像处于出血状态)  发表于 2014-7-27 20:14
回复

使用道具 举报

梦石
0
星屑
68
在线时间
585 小时
注册时间
2013-5-25
回帖
1484
发表于 2014-7-27 21:13:02 | 显示全部楼层
我们来调戏全角空格吧
回复

使用道具 举报

老黄鸡

梦石
4
星屑
45700
在线时间
7948 小时
注册时间
2009-7-6
回帖
13338

MZ评测员RM创作大赛01组委会开拓者贵宾

发表于 2014-7-27 21:20:11 | 显示全部楼层
膜拜CHD巨巨
回复

使用道具 举报

梦石
0
星屑
9292
在线时间
2504 小时
注册时间
2011-5-20
回帖
14521

开拓者

发表于 2014-7-27 21:33:02 | 显示全部楼层
余烬之中 发表于 2014-7-27 02:06
表示躺枪

我躺了···

点评

o(╬ ̄皿 ̄)=○# ( ̄#)3 ̄)  发表于 2014-7-27 23:36
↓逆推!  发表于 2014-7-27 22:26
抽  发表于 2014-7-27 21:56
↓我要逆推你233  发表于 2014-7-27 21:40
( ̄ε(# ̄)☆╰╮o( ̄皿 ̄///)  发表于 2014-7-27 21:38
[img]http://service.t.sina.com.cn/widget/qmd/5339802982/c02e16bd/7.png
回复

使用道具 举报

名侦探小柯

梦石
10
星屑
4393
在线时间
3739 小时
注册时间
2006-9-6
回帖
36595

极短27获奖MZ评测员开拓者贵宾第3届短篇游戏大赛主流游戏组亚军第5届短篇游戏比赛亚军

发表于 2014-7-27 22:00:54 | 显示全部楼层
跟聚聚的比起来简直弱爆了
不定期回归 ~ 游戏开发之旅
———————————————————————————————
回复

使用道具 举报

梦石
1
星屑
23236
在线时间
9564 小时
注册时间
2012-6-19
回帖
7018

开拓者短篇九导演组冠军

发表于 2014-7-27 22:17:06 | 显示全部楼层
本帖最后由 喵呜喵5 于 2014-7-28 00:02 编辑

在中文版RMVA的默认脚本编辑器中,大部分脚本换行用的都是\r\n
但,是,唯,独,有,一,行,换,行,符,用,的,是,\n,特,么,没,有,\r

来,让我们一起膜拜逼死强迫症的Game_Map中set_display_pos方法的end

点评

所以这个代码页没有问题,就是【强迫症向】嘛  发表于 2014-7-28 13:33
每个代码都没有问题啊。标题就写了【强迫症向】嘛~  发表于 2014-7-28 13:08
说的和你一楼给出的那些代码用起来会带来巨大BUG似的  发表于 2014-7-28 13:06
那其实无所谓啊,反正是[\r\n]……重点是为什么要这么麻烦拆成一行一行才能去匹配啊  发表于 2014-7-28 05:40
回复

使用道具 举报

星君

梦石
0
星屑
83
在线时间
2980 小时
注册时间
2011-10-9
回帖
2234

贵宾短篇七萝莉正太组冠军

发表于 2014-7-27 23:08:00 | 显示全部楼层
2333艹,救命,让我笑一会hhhh

回复

使用道具 举报

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

本版积分规则

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部