Project1

标题: 啊啊...【新人看这里】一起动手改脚本·第二蛋 [打印本页]

作者: 小镜子    时间: 2012-2-6 16:35
标题: 啊啊...【新人看这里】一起动手改脚本·第二蛋
啊啊...不好意思...第二蛋来得那么晚...{:nm_6:}(其实已经不想写了吧喂!)这次就简单一点吧~上次我们说到哪里了呢...传送门:第一蛋(原来已经改到最奇葩的地方了啊...)
一起动手改脚本-第二蛋-华丽丽的菜单(2)
正文:



1.关于这奇葩的高度


上一次我们成功地把菜单选项窗口的类型改成了横条的~{:nm_4:},可是高度好奇怪= =
所以,我们需要在Window_MenuCommand里,重定义一下高度


打开工程~(注意,如果没有看第一蛋的,请务必去看第一蛋= =

打开脚本编辑器~
找到Window_MenuCommand~


要怎么改高度呢?
其实在脚本里面,我们有很多能举一反三的地方。
比如这里(脚本第22~27行)
RUBY 代码复制
  1. #--------------------------------------------------------------------------
  2.   # ● 获取窗口的宽度
  3.   #--------------------------------------------------------------------------
  4.   def window_width
  5.     return 160#这在第一蛋里有改动哦
  6.   end



在这个地方,我们可以知道它是怎样定义这个窗口的宽度的,所以,我们来改一些东西,让它变成定义高度的~{:nm_4:}
现在请google一下高度的英文是什么~(名词),我再次不会告诉你是height


然后把注释里的宽度改成高度(不要直接在上面改,复制一份再改,因为高度宽度在这里都要定义的{:nm_6:}
width改成height
把160改成48~{:nm_4:}
像这样:
RUBY 代码复制
  1. #--------------------------------------------------------------------------
  2.   # ● 获取窗口的宽度
  3.   #--------------------------------------------------------------------------
  4.   def window_width
  5.     return 544#160
  6.   end
  7.   #--------------------------------------------------------------------------
  8.   # ● 获取窗口的高度
  9.   #--------------------------------------------------------------------------
  10.   def window_height
  11.     return 48
  12.   end


测试一下~0u0:


好棒~{:nm_4:},接下来就是列数问题了~!



2.关于这浪费空间的列数



知道怎么改高度...列数也不成问题了~!
我先告诉大家列数(最大列数)col_max
而有关定义列数的脚本在Window_HorzCommand里面
好~今天的功课就是(天有功课!?{:nm_3:}


把列数在Window_MenuCommand重定义一个合适的数值(看上去舒服的)并且运用了今天学习的技巧的话...
奖励一定的经验哦= =(放心,不会太多的~XD




下集预告:


这次预告没有图~(图在第一蛋= =
下次就是关于显示图片的内容了...很期待吧~{:nm_4:}
好~本课结束



作者: xuzhengchi    时间: 2012-2-6 20:04
感觉这节课很酱油啊有木有!!!
作者: GAME狂热分子    时间: 2012-2-6 20:45
噢噢噢~LZ能更新快点嘛!我好想看啊。
作者: dkhy_2005    时间: 2012-2-6 21:14

新手表示只能修改到这种程度。。。。。。列数只改动了一点点而已……
作者: feizhaodan    时间: 2012-2-6 21:23
本帖最后由 feizhaodan 于 2012-2-6 21:32 编辑

我过来无耻的蹭点经验
那是这样么:

作者: a88953327    时间: 2012-2-7 19:48
更新快点吧!
这蛋还没出的时候 我就把这蛋给搞定了
作者: 365256252    时间: 2012-2-9 01:56
下一蛋是不是该弄角色状态那一块了?空着一块感觉怪怪的

截图2012-01.jpg (59.99 KB, 下载次数: 11)

截图2012-01.jpg

作者: 乏味—    时间: 2012-2-10 10:06
  7楼的程度做不到啊 太强了(对于我这种脚本新手来说= =)这种程度可以吗?
作者: 判约之轮    时间: 2012-2-10 11:54
本帖最后由 判约之轮 于 2012-2-10 11:56 编辑



不容易,终于传上来了
另外,楼上,7L的大哥的效果其实不是很难的,我发一段代码你就明白了哦:
  1.   #--------------------------------------------------------------------------
  2.   # ● 初始化对象
  3.   #--------------------------------------------------------------------------
  4.   def initialize( x, y)
  5.     super(160,50,384, 366)
  6.   #  @pending_index = -1
  7.     refresh
  8.   end
  9.   #--------------------------------------------------------------------------
  10.   # ● 获取窗口的宽度
  11.   #--------------------------------------------------------------------------
  12.   #def window_width
  13.   #  Graphics.width - 544#160
  14.   #end
  15.   #--------------------------------------------------------------------------
  16.   # ● 获取窗口的高度
  17.   #--------------------------------------------------------------------------
  18.   #def window_height
  19.   #  Graphics.height - 48
  20.   #end
复制代码
注意这句:super(x坐标,y坐标,窗口宽度,窗口高度)
这些代码的位置在Window_MenuStatus,译为菜单中的状态显示窗口

另外LZ的解释相当到位,赞一个>_<
作者: humzlo    时间: 2012-2-14 16:05
为什么比如我要看物品,我要双击才能进入?其他的选项卡都一样,要双击啊!!!
作者: 小眼kel熊猫    时间: 2012-2-16 10:20
一直在等人物的那个怎么才能出来?这节课说的东西,在我看了第一蛋后自己都做出来了,开心!!

谢谢楼主!
作者: 冰舞蝶恋    时间: 2012-2-16 12:13
楼主这货是水镜风生嘛...?【我错了
作者: 芥末菌    时间: 2012-2-18 13:37
这也太初级了吧,初级到连我都早就会了
作者: 小眼kel熊猫    时间: 2012-2-18 16:16
我又乱改了= =无奈,新手脚本白痴,不过居然成功了
#--------------------------------------------------------------------------
  #--------------------------------------------------------------------------
  # ● 初始化对象
  #--------------------------------------------------------------------------
  def initialize(x, y)
    super(0, 75, 384, 130)#初始X160,Y50,W384,H366
    @pending_index = -1
    refresh
  end
然后出现了如果还有一个角色的话...就会很尴尬的挤在一起的局面...于是我又乱改了
# ● 获取项目的高度
  #--------------------------------------------------------------------------
  def item_height
    (height - standard_padding * 2) / 1#4
  end

可以用,开心


‘‘

[img=545,403]http://i.6.cn/cvbnm/32/7d/e9/702a44f29c252faad903efe914b5562b.jpg[/img]

哈哈!这是我的效果


──小眼kel熊猫于2012-2-18 16:37补充以上内容’’
作者: 狂歌天涯    时间: 2012-2-20 17:55
本帖最后由 狂歌天涯 于 2012-2-20 18:35 编辑

呵呵,俺也是一个菜鸟,刚开始接触,研究了一整天,继续14楼的话题,主要改掉的是绘制项目那一项
# ■ Window_MenuStatus
#------------------------------------------------------------------------------
#  菜单画面中,显示队伍成员状态的窗口
#==============================================================================

class Window_MenuStatus < Window_Selectable
  #--------------------------------------------------------------------------
  # ● 定义实例变量
  #--------------------------------------------------------------------------
  attr_reader   :pending_index            # 保留位置(整队用)
  #--------------------------------------------------------------------------
  # ● 初始化对象
  #--------------------------------------------------------------------------

  def initialize(x, y)
    super(0, 48, 640, 290)
    @pending_index = -1
    refresh
  end

  #--------------------------------------------------------------------------
  # ● 获取窗口的宽度
  #--------------------------------------------------------------------------
  def window_width
    Graphics.width - 160
  end
  #--------------------------------------------------------------------------
  # ● 获取窗口的高度
  #--------------------------------------------------------------------------
  def window_height
    Graphics.height
  end
  #--------------------------------------------------------------------------
  # ● 获取项目数
  #--------------------------------------------------------------------------
  def item_max
    $game_party.members.size
  
  end
  #--------------------------------------------------------------------------
  # ● 获取项目的高度
  #--------------------------------------------------------------------------
  def item_height
    (height - standard_padding * 2) / 4
  end
  #--------------------------------------------------------------------------
  
    # ● 获取项目的kuan度
  #--------------------------------------------------------------------------
  def item_width
    (width - standard_padding * 2) / 4
  end
  #----------------------------
  
  #--------------------------------------------------------------------------

  
  # ● 绘制项目
  #--------------------------------------------------------------------------
  def draw_item(index)

    actor = $game_party.members[index]
    enabled = $game_party.battle_members.include?(actor)
    rect = item_rect(index)
    draw_item_background(index)
   
    draw_actor_face(actor, rect.x + 20, rect.y + 1, enabled)
    draw_actor_name(actor, rect.x + 0, rect.y+110)
    draw_actor_nickname(actor, rect.x + 0, rect.y+140)
    draw_actor_level(actor, rect.x + 0, rect.y+170)
    draw_actor_hp(actor, rect.x + 0, rect.y+200)
    draw_actor_mp(actor, rect.x + 0, rect.y+230)
    draw_actor_class(actor, rect.x + 75, rect.y+110)
   
  end
  
  #--------------------------------------------------------------------------
  # ● 绘制项目的背景
  #--------------------------------------------------------------------------
  def draw_item_background(index)
    if index == @pending_index
      contents.fill_rect(item_rect(index), pending_color)
    end
  end
  #--------------------------------------------------------------------------
  # ● 按下确定键时的处理
  #--------------------------------------------------------------------------
  def process_ok
    super
    $game_party.menu_actor = $game_party.members[index]
  end
  #--------------------------------------------------------------------------
  # ● 返回上一个选择的位置
  #--------------------------------------------------------------------------
  def select_last
    select($game_party.menu_actor.index || 0)
  end
  #--------------------------------------------------------------------------
  # ● 设置保留位置(整队用)
  #--------------------------------------------------------------------------
  def pending_index=(index)
    last_pending_index = @pending_index
    @pending_index = index
    redraw_item(@pending_index)
    redraw_item(last_pending_index)
  end
end
Window_MenuStatus改成这样后,名字、称号、hp值等就都到了头像的下面,但是多角色的状态下还是显示的只是一个角色,怎样让角色横排显示呢?
下面更改Window_Selectable这个窗口


‘‘──狂歌天涯于2012-2-20 18:07补充以下内容

更改Window_Selectable就简单了,
  # ● 获取列数
  #--------------------------------------------------------------------------
  def col_max
    return 4
  end
  #--------------------------------------------------------------------------
  # ● 获取行间距的宽度
  #--------------------------------------------------------------------------
  def spacing
    return 5
  end
只是更改了这个项目,这回看一看应该清楚了
这里看着是舒服了,可是开始画面里的开始游戏等选择变成横着的了,还有特技窗口、装备窗口等等都变成横着的了,这个也好办,在这些窗口脚本(Window_TitleCommand、Window_SkillCommand、Window_EquipSlot、Window_GameEnd 等等所有可能变成横向显示的窗口)里面的显示行数上面插上一句
   # ● 获取列数
  #--------------------------------------------------------------------------
  def col_max
    return 1
  end
好了,这些窗口就又变成原样了。
嘿嘿,可能对于高手不算什么,但对于我们自己来说,很有成就感哈。

捕获.PNG (295.66 KB, 下载次数: 21)

捕获.PNG

捕获.PNG (295.66 KB, 下载次数: 20)

捕获.PNG

作者: thomaskkkk    时间: 2012-3-26 21:17
本帖最后由 thomaskkkk 于 2012-3-26 23:15 编辑

小人今天才發現這帖,樓主大大很有愛…

小的真很有心思去學習腳本的編寫…



這樣嗎?原來視窗的寬、高、欄是這樣弄的。

那麼下方的角色欄「行」呢?




根據樓上大大的方法,總算把下方的角色欄設好了

作者: 345912390    时间: 2012-3-26 23:14
@乏味—你截图的那个窗口皮肤哪下的!
我也SHOW

作者: 迷糊的安安    时间: 2012-3-27 01:38


其实我当时自己完全不懂脚本的情况下试着把TP条改出来感觉也超感动啊……
作者: ilmynasan    时间: 2012-3-27 06:49
我有个问题……
按照这个教程我把我菜单改掉了(图片发水区了……
然后我想把菜单的上面那个 “道具,装备...."这个部分的字体&字体大小改掉
只要改这一个地方 我记得我把整个菜单里所有字体都改掉了……

我看其他部分有更改font的是都在 def draw_xxxx 的里面
不过Window_Command或MenuCommand里面都没有draw_xxx....
求问在哪里改Orz
作者: 黑化の鼠标    时间: 2012-3-27 12:44
本帖最后由 黑化の鼠标 于 2012-3-27 12:45 编辑


呼.....交作业好了.....啊啊啊啊啊.....到底怎么给各个选项加上底图啊.....

作者: yujunliang550    时间: 2012-3-27 17:53
角色状态窗口变化了,光标大小也变了,光标变化范围和人物状态对不上了,请问该改什么地方
作者: lsu666666    时间: 2012-3-27 19:32
樓主...我在等待你的第三個蛋..@。@..
作者: 荷包PIG蛋    时间: 2012-4-4 10:37
表示345912390 的脚本教程看不懂啊~
高呼小镜子继续写下去~
@小镜子

作业:

作者: xiaoshun23    时间: 2012-4-5 02:17
俺是新人!量力而行~不乱改,老实完成功课!

功课(新手菜单)1.png (72.46 KB, 下载次数: 1)

功课(新手菜单)1.png

作者: abc612008    时间: 2012-4-16 17:57
交作业
求经验
话说我直接86行改成add_command("结束", :game_end)了

QQ截图20120416175535.png (60.13 KB, 下载次数: 9)

QQ截图20120416175535.png

作者: hytghy123    时间: 2012-5-13 11:42
新人交作业感谢前面的狂歌天涯大
改的很成功{:2_268:}

1.JPG (41.57 KB, 下载次数: 9)

1.JPG

作者: 轻撷岸边柳    时间: 2012-5-13 23:48
@狂歌天涯照着你这么改之后,人物状态超出了边框啊,肿么办
作者: 狂歌天涯    时间: 2012-5-15 22:31
轻撷岸边柳 发表于 2012-5-13 23:48
@狂歌天涯照着你这么改之后,人物状态超出了边框啊,肿么办

Window_Status脚本里更改描画基本信息里的数值
作者: 小眼kel熊猫    时间: 2012-7-14 14:41
人物选择的光标怎么办??依然不解...
作者: luoyuan800    时间: 2012-7-28 12:21
完成任务~~就是不知道怎么更改显示字体
作者: eu国猪    时间: 2012-7-28 14:46
听好的,哈哈哈哈
作者: talone    时间: 2012-8-1 03:02
不是吧~一节课就这样过去了?
作者: 永恒宁寂    时间: 2012-9-9 12:24
这蛋内容略少
作者: csl15975300    时间: 2012-10-12 15:50
请教一下。。列数是什么。。我很认真看了。。但还是没懂。。。猎术到底是啥??
作者: csl15975300    时间: 2012-10-12 15:53
还有一句。。。。纯新,,无比解释下 #  @pending_index = -1

07.    refresh

我也不要当伸手党了
作者: csl15975300    时间: 2012-10-13 16:59
csl15975300 发表于 2012-10-12 15:53
还有一句。。。。纯新,,无比解释下 #  @pending_index = -1

07.    refresh

{:2_270:}...................................
作者: 延无    时间: 2013-1-26 16:55
补充@狂歌天涯
获取列数在Window_Command也要加,不然事件中的选项会变成一条。
至于用狂歌的数据设定初始化对象队友会超出边界的问题,把那个super(0, 48, 640, 290)中的640改成544再把Window_Selectable的间行距改成2就好了。
唯一的问题就是队友的名字太长结果被挤掉了一个字……不知怎么解决= =b。
作者: 黄濑凉太    时间: 2013-4-1 09:17
本帖最后由 黄濑凉太 于 2013-4-1 09:20 编辑

勉强只能做到这种地步了。。。
还有除了物品以外的选项都要点2下是不是因为点了一下是在选角色,然后再点一下是确认。
作者: chaiyuefei    时间: 2013-6-18 15:29
跪等第3集啊~~
作者: 熊喵酱    时间: 2013-6-19 07:49

交作業 自己又修改了一下 更加滴好看~
作者: 红墨    时间: 2013-6-19 22:36
楼主威武!期待第三蛋!
作者: ab2573974277    时间: 2013-10-2 20:08
新手表示很激动啊!!!!!!!!!顶LZ!!!!!!!!!!
作者: 一杯羹    时间: 2013-10-12 11:52
大大讓我們新手受益良多
可是..大大好像沒有繼續第三彈了= =
很可惜的說....
作者: longty9413    时间: 2014-2-27 17:59
看一看~ 學好了-等待你的更新-謝謝
作者: zhufa002    时间: 2014-11-3 13:20
新人学习中,谢谢楼主

作者: 翎枫    时间: 2015-1-17 17:08

感觉,整个人都不好了。。。。
顺便求如何在右下角添加一个文字窗口
作者: 66lcf1986    时间: 2015-3-5 22:55

我的怎么变成这样,是宽度的问题吗?我是新人,刚来,望大神帮帮忙。
作者: 291144925    时间: 2015-4-6 09:38
黄濑凉太 发表于 2013-4-1 09:17
勉强只能做到这种地步了。。。
还有除了物品以外的选项都要点2下是不是因为点了一下是在选角色,然后再点一 ...

小地图分享下吧大大
作者: 名字太难取    时间: 2015-4-19 18:28
我要经验=w=
作者: 千佑冰    时间: 2015-7-30 15:48
辛苦啦,支持下!(教程什么的最喜欢啦!){:2_284:}
作者: 白如墨    时间: 2015-9-16 09:56
#--------------------------------------------------------------------------
  # ● 获取窗口的高度
  #--------------------------------------------------------------------------
  
  def window_height
    return 48#160
  end
  #--------------------------------------------------------------------------
  # ● 获取窗口的列数
  #--
  def col_max
    return 8
  end

没有图片只有脚本貌似成功了
作者: luliang    时间: 2017-2-19 20:30
我这里没有高度 只有宽度




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