Project1

标题: 有段代码想请教怎么写比较好? [打印本页]

作者: orchimike    时间: 2013-1-6 14:45
标题: 有段代码想请教怎么写比较好?
本帖最后由 hcm 于 2013-1-24 13:28 编辑
  1. def draw_item(index)
  2.     item = @data[index]
  3.     # 获取物品所持数
  4.     case item
  5.     when RPG::Item
  6.       number = $game_party.item_number(item.id)
  7.     when RPG::Weapon
  8.       number = $game_party.weapon_number(item.id)
  9.     when RPG::Armor
  10.       number = $game_party.armor_number(item.id)
  11.     end
  12.     # 价格在所持金以下、并且所持数不是 99 的情况下为普通文字颜色
  13.     # 除此之外的情况设置为无效文字色
  14.     if item.price <= $game_party.gold and number < 99
  15.       self.contents.font.color = normal_color
  16.     else
  17.       self.contents.font.color = disabled_color
  18.     end
  19.     x = 4
  20.     y = index * 32
  21.     rect = Rect.new(x, y, self.width - 32, 32)
  22.     self.contents.fill_rect(rect, Color.new(0, 0, 0, 0))
  23.     bitmap = RPG::Cache.icon(item.icon_name)
  24.     opacity = self.contents.font.color == normal_color ? 255 : 128
  25.     self.contents.blt(x, y + 4, bitmap, Rect.new(0, 0, 24, 24), opacity)
  26.     self.contents.draw_text(x + 28, y, 212, 32, item.name, 0)
  27.     self.contents.draw_text(x + 240, y, 88, 32, item.price.to_s, 2)
  28.   end
复制代码
个人希望修改了def item增加一个条件,就是主角在持有“打折卡”的情况下,可以同样的价格拥有更多的物品,这段代码应该怎么修改?
另外希望问一下:
  1. self.contents.draw_text(x + 28, y, 212, 32, item.name, 0)
  2.     self.contents.draw_text(x + 240, y, 88, 32, item.price.to_s, 2)
复制代码
这两行的代码有什么作用啊?
作者: orchimike    时间: 2013-1-6 15:09
另外问个简单的问题,在设定了数据库的物品数据之后,如果要设定整个队伍在不同游戏阶段持有的公共物品,应该用什么语句呢?
例如像设定了物品为:
001铁剑
005木盾
010药草

假如我希望设定主角出场就在公共物品栏里有这几个物品,应该如果在脚本里增加什么语句?
作者: 羞射了    时间: 2013-1-6 16:07
第一个问题:先看懂这个脚本,然后可以做到,在事件中判断如果持有某道具,则变动部分商品的价格,否则按照原价出售。
商店的价格变动
http://www.66rpg.com/articles/3018

第二个问题,在初始地图中用自动事件添加道具后消除事件。


作者: wwwcctvty    时间: 2013-1-6 21:11
self.contents.draw_text(x + 28, y, 212, 32, item.name, 0)#描绘物品名称
self.contents.draw_text(x + 240, y, 88, 32, item.price.to_s, 2)#描绘物品价格
让人物初始时就带有物品,在初始地图建个自动执行事件,事件页1里写上要得的物品,然后打开独立开关a.事件页2开启条件为独立开关a为开时,内容空.

作者: orchimike    时间: 2013-1-10 14:04
wwwcctvty 发表于 2013-1-6 21:11
self.contents.draw_text(x + 28, y, 212, 32, item.name, 0)#描绘物品名称
self.contents.draw_text(x + 2 ...

thanks.我在实验中了。
另外有个小问题:不少游戏都带有“飞行”(即按指定键后可以地图上穿透移动)
或者是“不遇敌”的功能(即可见型的敌人碰到后不会转入战斗画面)。这些代码如何实施?
作者: wwwcctvty    时间: 2013-1-10 19:49
如果写在脚本编辑器的话,目前我还不会,不过写到公共事件中,用物品启用的话,我还是会的.楼主想怎样开启呀




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