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

Project1

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

[RMXP发布] 蚂蚁人性化商店初级脚本

[复制链接]

Lv1.梦旅人

梦石
0
星屑
90
在线时间
85 小时
注册时间
2012-5-27
帖子
148
跳转到指定楼层
1
 楼主| 发表于 2013-1-19 13:48:23 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
  1. #=============================================================================#
  2. #           脚本名称;商店人性化初级脚本            作者;蚂蚁                #
  3. #                         ●蚂蚁工作室友情制作●                              #
  4. #                                                                             #
  5. #使用建议;                                                                   #
  6. #    建议把之前的Window_ShopBuy和Scene_Shop脚本删除                           #
  7. #                                                                             #
  8. #使用方法;                                                                   #
  9. #     因为使用的都是全局变量,你可以在地图上操作,具体请看教程。              #
  10. #                                                                             #
  11. #关于bug;                                                                    #
  12. #    如果你在使用是发现此脚本的bug,请联系作者,我会尽力修复。                #
  13. #    QQ;1660618519                                                           #
  14. #    手机;13977375101  (建议发短信)                                        #
  15. #                                                                             #
  16. #关于更新;                                                                   #
  17. #    如果你有什么好的建议,或对此脚本还感到什么不足,可以一起与作者商讨,也可 #
  18. #以与作者一起参与制作新的商店人性化脚本........                               #
  19. #                                                                             #
  20. #                    ✿以下是各种全局变量,均可自行修改                       #
  21. ###############################################################################


  22. $打折率 = 1   #打折率,1代表不打折,算法(原价 / 打折率 = 现价)
  23. $折扣率 = 2   #卖出的折扣率,1代表原价卖出。当打折率是2时,折扣率是1时,你再
  24.               #原价卖出,则会赚;当打折率是1时(即不打折),折扣率是2时,你再
  25.               #卖出,你就亏。算法(原价 / 折扣率 = 售价)
  26. $光标起始位 = 0  #初始化商店时选择行数,如果是2,就选择第三行。不建议输入小数。
  27. $皮肤 = "默认窗口.png"   #商店购买区的外观图片。
  28. $帮助后缀 = "    (蚂蚁制作)"    #在物品描述后面加上帮助后缀。
  29. $商店名称 = "             =====>蚂蚁批发市场<====="    #初始化商店时,你会看到
  30.                                                        #商店的名称
  31.                                                       
  32.                                                       

  33. #=====下面是购买窗口的字体颜色(可购买时的字体颜色,以下为初始值)↓============

  34. $redinok = 255     #红值(red)                                                #
  35. $greeninok = 255    #绿值(green)                                             #
  36. $blueinok = 255     #蓝值(blue)                                              #
  37. #===============================================================================




  38. #=====下面是购买窗口的字体颜色(无效时的字体颜色,以下为初始值)↓==============
  39.                                                                                #
  40. $redinon = 255      #红值(red)                                               #
  41. $greeninon = 255    #绿值(green)                                             #
  42. $blueinon = 255     #蓝值(blue)                                              #
  43.                                                                                #
  44. #===============================================================================






  45. #=====以下是关于金钱文本的操作==================================================

  46. $goldname = "美元"    #在游戏中金钱的名称(它会在购买区显示)                  #
  47.                                                                                #
  48.    #======降价时金钱的颜色↓(默认为绿色,要更改请修改下列值↓)==========     #
  49.          $降价r = 38     #red色值                                        #     #
  50.          $降价g = 220    #green色值                                      #     #
  51.          $降价b = 38     #blue色值                                       #     #
  52.    #======================================================================     #
  53.                                                                                #
  54.    #======涨价时金钱的颜色↓(默认为绿色,要更改请修改下列值↓)==========     #
  55.          $涨价r = 255     #red色值                                       #     #
  56.          $涨价g = 0     #green色值                                       #     #
  57.          $涨价b = 0      #blue色值                                       #     #
  58.    #======================================================================     #
  59.                                                                                #
  60.    #======原价时金钱的颜色↓(默认为绿色,要更改请修改下列值↓)==========     #
  61.          $原价r = 255     #red色值                                       #     #
  62.          $原价g = 225    #green色值                                      #     #
  63.          $原价b = 255     #blue色值                                      #     #
  64.    #======================================================================     #
  65. #===============================================================================









  66. #=================================以下是代码,不建议修改========================
  67. class Window_ShopBuy < Window_Selectable
  68. def initialize(shop_goods)
  69. super(0, 128, 368, 352)
  70. self.windowskin = RPG::Cache.windowskin($皮肤)
  71. @shop_goods = shop_goods
  72. refresh
  73. self.index = $光标起始位
  74. end
  75. def item
  76. return @data[self.index]
  77. end
  78. def refresh
  79. if self.contents != nil
  80. self.contents.dispose
  81. self.contents = nil
  82. end
  83. @data = []
  84. for goods_item in @shop_goods
  85. case goods_item[0]
  86. when 0
  87. item = $data_items[goods_item[1]]
  88. when 1
  89. item = $data_weapons[goods_item[1]]
  90. when 2
  91. item = $data_armors[goods_item[1]]
  92. end
  93. if item != nil
  94. @data.push(item)
  95. end
  96. end
  97. @item_max = @data.size
  98. if @item_max > 0
  99. self.contents = Bitmap.new(width - 32, row_max * 32)
  100. for i in 0...@item_max
  101. draw_item(i)
  102. end
  103. end
  104. end
  105. def draw_item(index)
  106. item = @data[index]
  107. case item
  108. when RPG::Item
  109. number = $game_party.item_number(item.id)
  110. when RPG::Weapon
  111. number = $game_party.weapon_number(item.id)
  112. when RPG::Armor
  113. number = $game_party.armor_number(item.id)
  114. end
  115. if item.price / $打折率 <= $game_party.gold and number < 99
  116. self.contents.font.color = Color.new($redinok, $greeninok, $blueinok, 255)
  117. else
  118. self.contents.font.color = Color.new($redinon, $greeninon, $blueinon, 128)
  119. end
  120. x = 4
  121. y = index * 32
  122. rect = Rect.new(x, y, self.width - 32, 32)
  123. self.contents.fill_rect(rect, Color.new(0, 0, 0, 0))
  124. bitmap = RPG::Cache.icon(item.icon_name)
  125. opacity = self.contents.font.color == normal_color ? 255 : 128
  126. self.contents.blt(x, y + 4, bitmap, Rect.new(0, 0, 24, 24), opacity)
  127. self.contents.draw_text(x + 28, y, 212, 32, item.name, 0)
  128. if $打折率 > 1
  129. self.contents.font.color = Color.new($降价r, $降价g, $降价b, 255)
  130. self.contents.draw_text(x + 100, y, 200, 32,((item.price / $打折率).to_i).to_s + $goldname + "   " + "↓", 2)
  131. elsif $打折率 < 1
  132. self.contents.font.color = Color.new($涨价r, $涨价g, $涨价b, 255)
  133. self.contents.draw_text(x + 100, y, 200, 32,((item.price / $打折率).to_i).to_s + $goldname + "   " + "↑", 2)
  134. else
  135. self.contents.font.color = Color.new($原价r, $原价g, $原价b, 255)
  136. self.contents.draw_text(x + 100, y, 200, 32,(item.price / $打折率).to_s + $goldname + "   " + "=", 2)
  137. end
  138. end
  139. def update_help
  140. @help_window.set_text(self.item == nil ? "" : self.item.description + $帮助后缀)
  141. end
  142. end



  143. class Scene_Shop
  144. def main
  145. @help_window = Window_Help.new
  146. @command_window = Window_ShopCommand.new
  147. @gold_window = Window_Gold.new
  148. @gold_window.x = 480
  149. @gold_window.y = 64
  150. @dummy_window = Window_Base.new(0, 128, 640, 352)
  151. @buy_window = Window_ShopBuy.new($game_temp.shop_goods)
  152. @buy_window.active = false
  153. @buy_window.visible = false
  154. @buy_window.help_window = @help_window
  155. @sell_window = Window_ShopSell.new
  156. @sell_window.active = false
  157. @sell_window.visible = false
  158. @sell_window.help_window = @help_window
  159. @number_window = Window_ShopNumber.new
  160. @number_window.active = false
  161. @number_window.visible = false
  162. @status_window = Window_ShopStatus.new
  163. @status_window.visible = false
  164. Graphics.transition
  165. loop do
  166. Graphics.update
  167. Input.update
  168. update
  169. if $scene != self
  170. break
  171. end
  172. end
  173. Graphics.freeze
  174. @help_window.dispose
  175. @command_window.dispose
  176. @gold_window.dispose
  177. @dummy_window.dispose
  178. @buy_window.dispose
  179. @sell_window.dispose
  180. @number_window.dispose
  181. @status_window.dispose
  182. end
  183. def update
  184. @help_window.set_text($商店名称)
  185. @help_window.update
  186. @command_window.update
  187. @gold_window.update
  188. @dummy_window.update
  189. @buy_window.update
  190. @sell_window.update
  191. @number_window.update
  192. @status_window.update
  193. if @command_window.active
  194. update_command
  195. return
  196. end
  197. if @buy_window.active
  198. update_buy
  199. return
  200. end
  201. if @sell_window.active
  202. update_sell
  203. return
  204. end
  205. if @number_window.active
  206. update_number
  207. return
  208. end
  209. end
  210. def update_command
  211. if Input.trigger?(Input::B)
  212. $game_system.se_play($data_system.cancel_se)
  213. $scene = Scene_Map.new
  214. return
  215. end
  216. if Input.trigger?(Input::C)
  217. case @command_window.index
  218. when 0
  219. $game_system.se_play($data_system.decision_se)
  220. @command_window.active = false
  221. @dummy_window.visible = false
  222. @buy_window.active = true
  223. @buy_window.visible = true
  224. @buy_window.refresh
  225. @status_window.visible = true
  226. when 1
  227. $game_system.se_play($data_system.decision_se)
  228. @command_window.active = false
  229. @dummy_window.visible = false
  230. @sell_window.active = true
  231. @sell_window.visible = true
  232. @sell_window.refresh
  233. when 2
  234. $game_system.se_play($data_system.decision_se)
  235. $scene = Scene_Map.new
  236. end
  237. return
  238. end
  239. end
  240. def update_buy
  241. @status_window.item = @buy_window.item
  242. if Input.trigger?(Input::B)
  243. $game_system.se_play($data_system.cancel_se)
  244. @command_window.active = true
  245. @dummy_window.visible = true
  246. @buy_window.active = false
  247. @buy_window.visible = false
  248. @status_window.visible = false
  249. @status_window.item = nil
  250. @help_window.set_text("")
  251. return
  252. end
  253. if Input.trigger?(Input::C)
  254. @item = @buy_window.item
  255. if @item == nil or (@item.price / $打折率).to_i > $game_party.gold
  256. $game_system.se_play($data_system.buzzer_se)
  257. return
  258. end
  259. case @item
  260. when RPG::Item
  261. number = $game_party.item_number(@item.id)
  262. when RPG::Weapon
  263. number = $game_party.weapon_number(@item.id)
  264. when RPG::Armor
  265. number = $game_party.armor_number(@item.id)
  266. end
  267. if number == 99
  268. $game_system.se_play($data_system.buzzer_se)
  269. return
  270. end
  271. $game_system.se_play($data_system.decision_se)
  272. max = @item.price == 0 ? 99 : ($game_party.gold / (@item.price / $打折率)).to_i
  273. max = [max, 99 - number].min
  274. @buy_window.active = false
  275. @buy_window.visible = false
  276. @number_window.set(@item, max, (@item.price / $打折率).to_i)
  277. @number_window.active = true
  278. @number_window.visible = true
  279. end
  280. end
  281. def update_sell
  282. if Input.trigger?(Input::B)
  283. $game_system.se_play($data_system.cancel_se)
  284. @command_window.active = true
  285. @dummy_window.visible = true
  286. @sell_window.active = false
  287. @sell_window.visible = false
  288. @status_window.item = nil
  289. @help_window.set_text("")
  290. return
  291. end
  292. if Input.trigger?(Input::C)
  293. @item = @sell_window.item
  294. @status_window.item = @item
  295. if @item == nil or @item.price == 0
  296. $game_system.se_play($data_system.buzzer_se)
  297. return
  298. end
  299. $game_system.se_play($data_system.decision_se)
  300. case @item
  301. when RPG::Item
  302. number = $game_party.item_number(@item.id)
  303. when RPG::Weapon
  304. number = $game_party.weapon_number(@item.id)
  305. when RPG::Armor
  306. number = $game_party.armor_number(@item.id)
  307. end
  308. max = number
  309. @sell_window.active = false
  310. @sell_window.visible = false
  311. @number_window.set(@item, max, (@item.price / $折扣率).to_i)
  312. @number_window.active = true
  313. @number_window.visible = true
  314. @status_window.visible = true
  315. end
  316. end
  317. def update_number
  318. if Input.trigger?(Input::B)
  319. $game_system.se_play($data_system.cancel_se)
  320. @number_window.active = false
  321. @number_window.visible = false
  322. case @command_window.index
  323. when 0
  324. @buy_window.active = true
  325. @buy_window.visible = true
  326. when 1
  327. @sell_window.active = true
  328. @sell_window.visible = true
  329. @status_window.visible = false
  330. end
  331. return
  332. end
  333. if Input.trigger?(Input::C)
  334. $game_system.se_play($data_system.shop_se)
  335. @number_window.active = false
  336. @number_window.visible = false
  337. case @command_window.index
  338. when 0  
  339. $game_party.lose_gold((@number_window.number * @item.price / $打折率).to_i)
  340. case @item
  341. when RPG::Item
  342. $game_party.gain_item(@item.id, @number_window.number)
  343. when RPG::Weapon
  344. $game_party.gain_weapon(@item.id, @number_window.number)
  345. when RPG::Armor
  346. $game_party.gain_armor(@item.id, @number_window.number)
  347. end
  348. @gold_window.refresh
  349. @buy_window.refresh
  350. @status_window.refresh
  351. @buy_window.active = true
  352. @buy_window.visible = true
  353. when 1
  354. $game_party.gain_gold(@number_window.number * (@item.price / $折扣率).to_i)
  355. case @item
  356. when RPG::Item
  357. $game_party.lose_item(@item.id, @number_window.number)
  358. when RPG::Weapon
  359. $game_party.lose_weapon(@item.id, @number_window.number)
  360. when RPG::Armor
  361. $game_party.lose_armor(@item.id, @number_window.number)
  362. end
  363. @gold_window.refresh
  364. @sell_window.refresh
  365. @status_window.refresh
  366. @sell_window.active = true
  367. @sell_window.visible = true
  368. @status_window.visible = false
  369. end
  370. return
  371. end
  372. end
  373. end
复制代码
蚂蚁人性化商店初级脚本 演示.rar (222.9 KB, 下载次数: 249)

Lv1.梦旅人

梦石
0
星屑
59
在线时间
536 小时
注册时间
2010-6-20
帖子
1489
2
发表于 2013-1-24 23:02:05 | 只看该作者
楼主,可以放个截图么?无图无真相啊。
[url=http://rpg.blue/thread-329159-1-1.html]http://attach.66rpg.com/bbs/attachment/forum/201308/24/132414sa8au7zgh7ab21gx.png[/url]   [b]
无尽之旅--永无止尽的旅程。[/b]
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
90
在线时间
85 小时
注册时间
2012-5-27
帖子
148
3
 楼主| 发表于 2013-1-25 20:17:09 | 只看该作者
对不起,等几天吧
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
995
在线时间
180 小时
注册时间
2013-2-16
帖子
176
4
发表于 2013-2-20 15:11:00 | 只看该作者
LZ,如何在事件中改变变量啊
在脚本中输入
“$打折率 = 1.2"
会报错,
不可能在游戏中不可改变吧.....(新手)
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
90
在线时间
85 小时
注册时间
2012-5-27
帖子
148
5
 楼主| 发表于 2013-2-22 18:30:41 | 只看该作者
我用的是全局变量,我不是做了一个例程吗?你看看吧,你可以加我qq讨论一下的
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-30 09:26

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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