扫描二维码关注官方公众号
返回列表
+ 发新帖
查看: 167|回复: 0

[转载发布] 求大神帮改下脚本(简单脚本)

[复制链接]
累计送礼:
0 个
累计收礼:
0 个
  • TA的每日心情
    开心
    2025-2-4 02:05
  • 签到天数: 110 天

    连续签到: 2 天

    [LV.6]常住居民II

    2327

    主题

    395

    回帖

    1万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9

    VIP
    6
    卡币
    10470
    OK点
    16
    推广点
    0
    同能卷
    0
    积分
    13220

    灌水之王

    发表于 2024-2-24 02:58:34 | 显示全部楼层 |阅读模式
    JAVASCRIPT 代码
    1. Taroxd ={}
    2. Taroxd.GainMessage={
    3.   // --- 设置 ---
    4.   // 信息格式
    5.   // 转义符:
    6.   // name    代表物品名称 / 金钱单位
    7.   // value   代表获得 / 失去的物品 / 金钱数量
    8.   // icon    绘制物品 / 金钱的图标
    9.   // action  代表“获得”或者“失去”。可在下面修改。
    10.   // 支持“显示文字”中的所有转义符。
    11.   //然后我不会 正则表达式什么的......所以做成了数组......  替换见下边 nr 那里
    12.   ITEM_FORMAT  : ["action","了","name"," * ", "value"],
    13.   GOLD_FORMAT  : ["action", "了", "value" ,"name"],
    14.   ACTION_GAIN  : '获得',
    15.   ACTION_LOSE  : '失去',
    16.   GOLD_ICON_INDEX : 361,        // 金钱图标的索引
    17.   BACKGROUND   : 1,         // 窗口背景(0/1/2)
    18.   POSITION     : 1,          // 显示位置(0/1/2)
    19.   // 音效(不需要的话可以直接删去对应的行)
    20.   // 必须是这样的格式 {"name":"Shop2","pan":0,"pitch":100,"volume":90}
    21.   // name se音效名  , pan 移动(左右声道?) , pitch' 音调  volume 音量
    22.   GAIN_GOLD_SE :{"name":"Shop2","pan":0,"pitch":100,"volume":90},    // 获得金钱
    23.   LOSE_GOLD_SE :{"name":"Shop2","pan":0,"pitch":100,"volume":90} ,   // 失去金钱
    24.   GAIN_ITEM_SE :{"name":"Shop2","pan":0,"pitch":100,"volume":90} ,      // 获得物品
    25.   LOSE_ITEM_SE :{"name":"Shop2","pan":0,"pitch":100,"volume":90},   // 失去物品
    26. }
    27.   // 设置功能是否启用。
    28.   // true:启用。
    29.   // false:不启用。
    30.   // $game_switches[开关ID]: 对应开关打开时。
    31.   Taroxd.GainMessage.enabled = function(){
    32.         //  这里的true 可以改成其他判断 ,比如 变量值啊,开关值啊什么
    33.         //  $gameVariables.value(id) 变量
    34.         //  $gameSwitches.value(id) 开关
    35.           returntrue;
    36.   }
    37.   // --- 设置结束 ---
    38.   // 显示提示信息。获得金钱时将 item 设为 nil。
    39.   Taroxd.GainMessage.show = function(value, item){
    40.           if(this.enabled()){
    41.             this.item = item
    42.             this.value = value
    43.             $gameMessage.setBackground(this.BACKGROUND)
    44.             $gameMessage.setPositionType(this.POSITION)
    45.             var message = this.message()
    46.             $gameMessage.add(message)
    47.             this.play_se()
    48.           }
    49.   }
    50.     //显示金钱
    51.         Taroxd.GainMessage.showGold = function(amount){
    52.                 //实际改变数目
    53.             var value = ($gameParty.gold() + amount).clamp(0, $gameParty.maxGold()) - $gameParty.gold()
    54.             //显示
    55.             Taroxd.GainMessage.show( value, false)
    56.         };
    57.     //显示物品
    58.         Taroxd.GainMessage.showItem = function(item, amount, includeEquip){
    59.             var container = $gameParty.itemContainer(item);
    60.             if(container){
    61.                     //最后的数目
    62.                 var lastNumber = $gameParty.numItems(item);
    63.                         //添加后的数目
    64.                 var newNumber = lastNumber + amount;
    65.                 //实际改变数目
    66.                 var value =  newNumber.clamp(0, $gameParty.maxItems(item)) - lastNumber
    67.                 //如果包含装备 并且 添加后小于0(需要卸下装备)
    68.                  if(includeEquip && newNumber < 0){
    69.                             $gameParty.members().forEach(function(actor){
    70.                                     for(var i =0 ; i 0 ? this.ACTION_GAIN : this.ACTION_LOSE   
    71.             // value 转换为  value的绝对值
    72.           nr.value =Math.abs(this.value)
    73.           //生成信息
    74.           var message =""
    75.           //在 format (数组)里循环,获取数组内的一个个内容
    76.           for(var i=0 ;i< format.length ;i++ ){
    77.                   //如果 这个内容 在  nr里 (比如 内容为"icon",那么就是看 nr.icon (即nr["icon"])是否存在)
    78.                   if(  format[i]  in  nr ){
    79.                           //信息添加  nr[内容] ( 比如 内容为"icon" ,那么就添加 nr.icon (即nr["icon"]))
    80.                       message += nr[format[i]]
    81.                   }else{
    82.                           //信息添加  内容  ( 比如  内容为"了" ,而 nr["了"] (nr.了)不存在 ,那么就添加 "了"  )
    83.                           message += format[i]
    84.                   }
    85.           }
    86.         //返回 信息
    87.           return message
    88.   }
    89.   //播放se
    90.   Taroxd.GainMessage.play_se =function(){
    91.             //通过一系列判断
    92.                 var sem =""
    93.                   if(this.value>0){
    94.                           sem +="GAIN_"
    95.                   }else{
    96.                           sem +="LOSE_"
    97.                   }
    98.                   if(this.item){
    99.                           sem +="ITEM_"
    100.                   }else{
    101.                           sem +="GOLD_"
    102.                   }
    103.                   sem += "SE"
    104.         //把sem 变成  GAIN_GOLD_SE LOSE_GOLD_SE  GAIN_ITEM_SE  LOSE_ITEM_SE ,
    105.         //如果 sem 在 this 里面 ( 见 音效(不需要的话可以直接删去对应的行)  下面那些  )
    106.                   if(sem inthis){
    107.                           //播放 sem 对应的 se  (注意 ,se 是一个实例,需要有name,)
    108.                         AudioManager.playSe(this[sem])
    109.                   }
    110.           return
    111.   }
    112. // Change Gold 改变金钱
    113. Game_Interpreter.prototype.command125 = function(){
    114.     var value = this.operateValue(this._params[0], this._params[1], this._params[2]);
    115.     Taroxd.GainMessage.showGold(value)  //添加
    116.     $gameParty.gainGold(value);
    117.     returntrue;
    118. };
    119. // Change Items 改变物品
    120. Game_Interpreter.prototype.command126 = function(){
    121.     var value = this.operateValue(this._params[1], this._params[2], this._params[3]);
    122.     Taroxd.GainMessage.showItem($dataItems[this._params[0]], value)//添加
    123.     $gameParty.gainItem($dataItems[this._params[0]], value);
    124.     returntrue;
    125. };
    126. // Change Weapons 改变武器
    127. Game_Interpreter.prototype.command127 = function(){
    128.     var value = this.operateValue(this._params[1], this._params[2], this._params[3]);
    129.     Taroxd.GainMessage.showItem($dataWeapons[this._params[0]], value, this._params[4])//添加
    130.     $gameParty.gainItem($dataWeapons[this._params[0]], value, this._params[4]);
    131.     returntrue;
    132. };
    133. // Change Armors 改变防具
    134. Game_Interpreter.prototype.command128 = function(){
    135.     var value = this.operateValue(this._params[1], this._params[2], this._params[3]);
    136.     Taroxd.GainMessage.showItem($dataArmors[this._params[0]], value, this._params[4])//添加
    137.     $gameParty.gainItem($dataArmors[this._params[0]], value, this._params[4]);
    138.     returntrue;
    139. };
    复制代码
    这个是物品得失提示,但是如果怪物掉落物品过多,就显示不全!像这样,其实后面还有东西,但是显示不出来!

                 本帖来自P1论坛作者六道神话,因Project1站服务器在国外有时候访问缓慢不方便作者交流学习,经联系P1站长fux2同意署名转载一起分享游戏制作经验,共同为国内独立游戏作者共同创造良好交流环境,原文地址:https://rpg.blue/forum.php?mod=viewthread&tid=393836  若有侵权,发帖作者可联系底部站长QQ在线咨询功能删除,谢谢。
    天天去同能,天天有童年!
    回复 送礼论坛版权

    使用道具 举报

    文明发言,和谐互动
    文明发言,和谐互动
    高级模式
    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    关闭

    幸运抽奖

    社区每日抽奖来袭,快来试试你是欧皇还是非酋~

    立即查看

    聊天机器人
    Loading...

    QQ|Archiver|手机版|小黑屋|同能RPG制作大师 ( 沪ICP备12027754号-3 )

    GMT+8, 2025-3-10 19:45 , Processed in 0.115343 second(s), 53 queries .

    Powered by Discuz! X3.4

    Copyright © 2001-2020, Tencent Cloud.

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