多尔戈吧 关注:575贴子:48,109
  • 10回复贴,共1

[资料] 房屋脚本之国服真相+详细教程,住宅脚本《转载》

只看楼主收藏回复

第一章 脚本详解
1)打招呼 接近管家的近身,管家就会主动打招呼。根据访问的人的不同,管家打招呼的客套话也会有所不同。
// 在下表中输入角色名和该角色访问时打招呼的客套话即可。
helloTable = {
[kvalue:角色名1;角色名1;str] : [ "[kvalue:客套话1;你好;str]", [kvalue:打招呼的音效1;H.Percussion.fx2;fx] ],
[kvalue:角色名2;角色名2;str] : [ "[kvalue:客套话2;Hi;str]", [kvalue:打招呼的音效2;H.Percussion.fx11;fx] ],
[kvalue:角色名3;角色名3;str] : [ "[kvalue:客套话3;欢迎光临;str]", [kvalue:打招呼的音效3;H.Percussion.fx6;fx] ],
}

function GetHelloString(desc)
{
if (helloTable[desc] == null)
return desc + "[kvalue:基本客套话; 客人,您好。;str]";
else
return helloTable[desc][0];
}

function GetHelloSound(desc)
{
if (helloTable[desc] == null)
return [kvalue:基本音效;H.Percussion.fx9;fx];
else
return helloTable[desc][1];
}

// 脚本初始化时调用。
function OnInit()
{
// SetSensor用来设定管家识别出玩家的距离。
// 进入第一个变量的范围内管家会识别出来,
// 离开第二个变量的范围管家会无视,
// 如下所示,进入3米以内时会识别出来,
// 离开30米以外就无视。
H.SetSensor(3, 30);

}
// 当玩家进入到管家能够识别的距离范围内时调用。
function OnUserEntered(desc)
{
// PlaySound用来播放音乐或设置label。
// 第一个变量是频道,第二个变量是乐谱。
// 如下所示,0号频道内设置两个label。
H.PlaySound(0, "r[1]r[2]");

// 根据不同的人来播放音效。
if (GetHelloSound(desc) != null)
{
// SetPercussion设置声音.
H.SetPercussion(1, GetHelloSound(desc));
// "x"为SetPercussion,播放设定的声音。
H.PlaySound(1, "x");
}

// 管家开始播放动画。
// 第一个变量0指代管家。
// 第二个变量1指代上面PlaySound的[1]号label。
// 第三个变量是摆手的动作。
H.StartAnimation(0, 1, [kvalue:打招呼的动作;H.Emotion.wave;moti]);

// 管家在说话的同时会弹出对话框。
// 第一个变量2是上面PlaySound的[2]号label。
// 第二个变量中放入管家要说的话。
H.Say(2, GetHelloString(desc));
}

// 可以设置的动作:



1楼2012-11-06 04:52回复
    // point, sleep, angry, blush, dance, clap, comfort, drink, eat, laugh, kneel, no,
    // otl, pat, plead, ready, sad, slap, surprise, taunt, thanks, thunder,
    // useup, victory, yes, wave, boo, charge, dislike, panic, salute, smile,
    // sorry, think, blueflag, twoflag, whiteflag, sing, jump
    2)蓝旗白旗游戏 在聊天窗中输入"蓝旗白旗游戏",即可和管家一起玩蓝旗白旗游戏。
    // 在游戏过程中,可以使用下列命令字符串。
    g_flagTable = {
    [ "[kvalue:命令1;举起蓝旗;str]", [kvalue:动作1;H.Emotion.blueflag;moti] ],
    [ "[kvalue:命令2;不举白旗,举起蓝旗;str]", [kvalue:动作2;H.Emotion.blueflag;moti] ],
    [ "[kvalue:命令3;举起白旗;str]", [kvalue:动作3;H.Emotion.whiteflag;moti] ],
    [ "[kvalue:命令4;不举蓝旗,举起白旗;str]", [kvalue:动作4;H.Emotion.whiteflag;moti] ],
    [ "[kvalue:命令5;全部举起;str]", [kvalue:动作5;H.Emotion.twoflag;moti] ],
    [ "[kvalue:命令6;不仅举蓝旗,全部举起;str]", [kvalue:动作6;H.Emotion.twoflag;moti] ],
    ];

    // 脚本初始化时呼出。
    g_playerName = "";
    function OnInit()
    {
    H.SetSensor(20, 30);

    // 激活OnSoundPlay函数。
    H.EnableSoundCallback(1);
    g_playerName = H.GetPlayerName();
    }

    g_userTable = {};
    g_failTable = {};
    g_curFlagCount = 0;
    g_curFlagMotion = "";
    g_inGame = 0;
    g_hostGame = 0;

    function StartGame()
    {
    g_inGame = 1;
    for (k in g_userTable)
    g_userTable[k] = 0;
    for (k in g_failTable)
    g_userTable[k] = 0;
    g_failTable = {};
    g_curFlagCount = 0;
    g_curFlagMotion= "";

    H.Say(1, "蓝旗白旗准备!");
    H.PlaySound(1, "r[1]rrrrr x[2]rrrrr x[3]rrrrr x[4]rrrrr x[5]rrrrr x[6]rrrrr x[7]");
    if (g_hostGame == 1)
    H.Broadcast("Ready", 0, 0);
    }

    function AddUser(desc)
    {
    g_userTable[desc] = 0;
    }

    function OnBroadcasted(fromUser, msg, param1, param2)
    {
    // 确认参加游戏
    if (msg == "Ready")
    {
    if (g_hostGame == 0 && g_playerName != fromUser)
    H.Broadcast("Join", 0, 0);
    }
    else if (msg == "Join")
    {
    if (g_hostGame == 1 && g_playerName != fromUser)
    AddUser(fromUser);
    }
    // 显示成功或失败,播放效果音
    else if (msg.search("success") >= 0)
    {
    H.SayNoBalloon(1, msg.substr(7) + " 成功!");
    if (msg.search(g_playerName) >= 0)
    


    2楼2012-11-06 04:52
    回复
      {
      H.SetPercussion(5, H.Percussion.fx7);
      H.PlaySound(5, "x");
      }
      }
      else if (msg.search("failure") >= 0)
      {
      H.SayNoBalloon(1, msg.substr(7) + " 失败!");
      if (msg.search(g_playerName)>= 0)
      {
      H.SetPercussion(5, H.Percussion.fx4);
      H.PlaySound(5, "x");
      }
      }
      }
      function EndGame()
      {
      for (k in g_userTable)
      {
      H.SayAllNoBalloon(1, "蓝旗白旗游戏成功:: " + k);
      }
      for (k in g_failTable)
      {
      H.SayAllNoBalloon(1, "蓝旗白旗游戏失败: " + k);
      }
      H.PlaySound(4, "r[1]");
      g_hostGame = 0;
      g_inGame = 0;
      }

      function FailUser(desc)
      {
      H.Broadcast("failure" + desc, 0, 0);
      g_failTable[desc] = 1;
      }

      function OutFailedUsers()
      {
      for (k in g_failTable)
      delete g_userTable[k];
      }

      function CheckPlayerFlag()
      {
      for (k in g_userTable)
      {
      if (g_userTable[k] != g_curFlagCount)
      FailUser(k);
      }
      OutFailedUsers();
      }

      // 用户使用感情表现时呼出。
      function OnUserEmotion(motion, desc)
      {
      if (motion == H.Emotion.blueflag || motion == H.Emotion.whiteflag || motion == H.Emotion.twoflag)
      {
      if (g_hostGame == 1)
      {
      if (g_userTable[desc] != null)
      {
      if (motion == g_curFlagMotion)
      {
      H.Broadcast("success" + desc, 0, 0);
      g_userTable[desc] = g_curFlagCount;
      }
      else
      {
      FailUser(desc);
      OutFailedUsers();
      }
      }
      }
      H.PlaySound(2, "r[1]");
      }
      }

      function SetRandomFlagType()
      {
      randVal = Math.floor(Math.random() * g_flagTable.length)
      g_curFlagMotion = g_flagTable[randVal][1];
      randFlagName = g_flagTable[randVal][0];
      g_curFlagCount = g_curFlagCount+1;

      H.AlertAll(1, randFlagName);
      H.PlaySound(3, "r[1]");
      }

      function GetUserCount()
      {
      count = 0;
      for (k in g_userTable)
      count = count + 1;
      return count;
      }

      // 演奏音乐时呼出。
      function OnSoundPlay(channel, note, len, label)
      {
      if (g_hostGame == 1)
      {
      if ((1 < label) && (label < 7))
      {
      CheckPlayerFlag();
      if (GetUserCount() == 0)
      EndGame();
      else
      SetRandomFlagType();
      }
      if (label == 7)
      {
      CheckPlayerFlag();
      EndGame();
      }
      }
      else
      {
      if (label == 7)
      g_inGame = 0;
      }
      }

      function OnUserEntered(desc)
      {
      AddUser(desc);
      }

      function OnUserSay(str, desc)
      {
      if (str.search("蓝旗白旗游戏") >= 0)
      {
      if (g_inGame == 0)
      {
      if (desc == g_playerName)
      g_hostGame = 1;
      StartGame();
      }
      }
      }

      


      3楼2012-11-06 04:52
      回复
        3) 鼹鼠游戏 在聊天窗中输入"鼹鼠游戏开始",即可跳跃捕捉鼹鼠
        constStageNum = 10;
        constMoleNum = 6;
        constMoleNumPerStage = 2; // 应该是constMoleNum的1/3左右

        gsReady = 0;
        gsInGame = 1;

        isHost = false;
        gameState = gsReady;
        outletState = [];
        userScore = {};

        function OnInit()
        {
        if (constMoleNum < 3) constMoleNum = 3;
        if (constMoleNum > 9) constMoleNum = 9;
        H.SetOutletCount(constMoleNum);
        H.EnableSoundCallback(true);
        }

        function OnPlayerSay(str)
        {
        if (str.search("鼹鼠游戏开始") >= 0)
        {
        isHost = true;
        H.Broadcast("BeginGame", 0, 0);
        }
        }

        function BeginGameHost()
        {
        if (gameState == gsReady)
        {
        gameState = gsInGame;
        //初始化
        for (i = 1; i <= constMoleNum; i++)
        outletState = 0;
        //为了实现同步的 string
        var str = "";
        for (i = 1; i <= constStageNum; i++)
        str = str + "r1r1[" + i + "]";
        H.PlaySound(0, str);
        // 鼹鼠初始化
        for (i = 1; i <= constMoleNum; i++)
        H.Broadcast("SetOutletState", i, 0);
        // 分数初始化
        userScore = {};
        // 开始
        H.SayAll(-1, "鼹鼠游戏开始 ===========");
        }
        }

        function EndGameHost()
        {
        if (gameState == gsInGame)
        {
        H.SayAll(-1, "游戏结束");
        H.SayAll(-1, "================");
        for (k in userScore)
        {
        // if (k)
        H.SayAll(-1, k + ": " + (userScore[k] ? userScore[k] : 0));
        }
        H.SayAll(-1, "================");
        isHost = false;
        gameState = gsReady;
        }
        }

        function BeginGameGuest()
        {
        if (gameState == gsReady)
        {
        gameState = gsInGame;
        for (i = 1; i <= constMoleNum; i++)
        outletState = 0;
        var str = "";
        for (i = 1; i <= constStageNum; i++)
        str = str + "r1r1"
        str = str + "r1[" + constStageNum + "]"; // 给予额外时间
        H.PlaySound(0, str);
        }
        }

        function newStage()
        {
        // 重新选择鼹鼠,并登场
        var i = 1;
        var count = 0;
        do {
        var newMole = Math.floor(Math.random() * constMoleNum) + 1;
        var state = outletState[newMole]
        if (state == null || state == 0)
        


        4楼2012-11-06 04:55
        回复
          {
          outletState[newMole] = 100;
          count = count + 1;
          }
          i = i + 1;
          } while (count < constMoleNumPerStage && i <= 100)
          //until count >= constMoleNumPerStage or i > 100;
          // 通知其他客户端
          for (i = 1; i <= constMoleNum; i++)
          {
          if (outletState == 1 || outletState == 2)
          {
          H.Broadcast("SetOutletState", i, 0);
          }
          else if (outletState == 100)
          {
          outletState = 1;
          H.Broadcast("SetOutletState", i, 1);
          }
          }
          }
          function OnSoundPlay(channel, note, len, label)
          {
          if (isHost && channel == 0 && label > 0)
          newStage();
          if (label == constStageNum) // label 值确认
          {
          if (isHost)
          H.Broadcast("EndGame", 0, 0);
          else
          gameState = gsReady;
          }
          }

          function OnBroadcasted(fromUser, msg, outletIndex, state)
          {
          if (msg == "SetOutletState")
          {
          // 0: 初始化, 1: highlight, 2: 得分
          if (isHost && state == 2 && outletState[outletIndex] != 1)
          return;
          outletState[outletIndex] = state;
          if (state == 0 || state == 2)
          {
          H.GlowNow(outletIndex, -1, 0, 0, 0);
          H.SetPosNow(outletIndex, 0, 0, -0.3, 0.5);
          }
          else if (state == 1)
          {
          H.GlowNow(outletIndex, 100, 0, 0, 255);
          H.SetPosNow(outletIndex, 0, 0, 0, 0.5);
          }
          if (state == 2)
          {
          // host时记分
          if (isHost)
          {
          userScore[fromUser] = userScore[fromUser] ? (userScore[fromUser]+1) : 1;
          H.SayAll(-1, "得分:" + fromUser);
          }

          // 效果音
          H.SetPercussion(1, H.Percussion.fx2);
          H.PlaySound(1, "x");
          }
          }
          else if (msg == "BeginGame")
          {
          if (isHost)
          BeginGameHost();
          else
          BeginGameGuest();
          }
          else if (msg == "EndGame")
          {
          if (isHost)
          EndGameHost();
          else
          gameState = gsReady;
          // 鼹鼠位置
          for (i = 1; i <= constMoleNum; i++)
          {
          H.SetPosNow(i, 0, 0, 0, 0.5);
          H.GlowNow(i, -1, 0, 0, 0);
          }
          }
          }

          function OnPlayerJumpEnd(outletIndex)
          {
          if (outletState[outletIndex] == 1)
          {
          H.Broadcast("SetOutletState", outletIndex, 2);
          H.GlowNow(outletIndex, 1, 255, 0, 0);
          }
          }

          


          5楼2012-11-06 04:55
          回复
            4) 演奏 在管家处添加和选择菜单,就可以聆听旋律。
            // 脚本初始化时调用。
            function OnInit()
            {
            // 添加管家的右击菜单。
            // 第一个变量为菜单的名称。
            // 第二个变量是菜单的固定ID。
            // 该值用于OnMenu()函数。
            H.RegisterMenu("演奏", 1);
            }

            // 鼠标右击管家,选择菜单即可调用。
            // menuNum是在RegisterMenu上设置的固定ID。
            function OnMenu(menuNum)
            {
            // 判断固定ID是否为"演奏"。
            if (menuNum == 1)
            {
            H.SetInstrument(2, H.Instrument.accordion); // 设置乐器。
            H.PlaySound(2, "t250 o6 b2 b2 f# f# a2 a2 g2 e2 f# f# g2 f# f# f# f# c# c# d2 e2 f# f# o5 b2 b2 b2 a# a# a# a# b2 o6 c# c# f# e d a# b r o4 b");

            H.SetInstrument(1, H.Instrument.aguitar);
            H.PlaySound(1, "t250 o4 e b o5 e g e o4 b a# o5 c# e g e o4 a# a o5 e a e b e o4 g o5 d g f# e d o4 e b o5 e g e o4 b g b o5 g f# e o4 b f# o5 c# e f# e g# a# a# f# e d c# o4 b r o3 b");

            H.SetInstrument(0, H.Instrument.abass);
            H.PlaySound(0, "t250 o3 e2 e2 e2 a# a# a# a# a# a# a2 a2 a2 g2 g2 g2 e2 e2 e2 g2 g2 g2 f# f# f# f# f# f# a# a# o4 f# e d c# o3 b r b r");

            H.SetPercussion(3, H.Percussion.hihatclose); // 设置其他乐器。
            H.PlaySound(3, "t250 x_ r x_ r r r r r x_ r x_ r x_ r x_ r r r r r x_ r r r x_ r x_ r r r r r x_ r x_ r x_ r x_ r r r r r x_ r r x_ ");

            H.SetPercussion(4, H.Percussion.tambourine);
            H.PlaySound(4, "t250 r r r r r r r r r r r r r r r r r r r r r r x_ r r r r r r r r r r r r r r r r r r r r r r r r r x_r");

            H.SetPercussion(5, H.Percussion.hihatopen);
            H.PlaySound(5, "t250 r r r r x_ r r r r r r r r r r r x_ r r r r r r r r r r r x_r r r r r r r r r r r x_r r r r r x_");

            H.SetPercussion(6, H.Percussion.triangle);
            H.PlaySound(6, "t250 r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r x_");
            }
            }

            // 音阶:哆(c)、来(d)、咪(e)、发(f)、唆(g)、啦(a)、希(b)
            // 音符长短:4分音符(4)、8分音符(8)、16分音符(16)
            // 除此之外的命令符:休止符(r)、八度音(o)、音量(v)、节奏(t)
            // 乐器:
            // SetInstrument() 中使用的:基础值为钢琴。
            // H.Instrument.abass (原声贝司), H.Instrument.ebass (电贝司),
            // H.Instrument.aguitar (原声吉他), H.Instrument.accordion (手风琴)
            // SetPercussion()中使用的:基础值为铃鼓。
            // H.Percussion.tambourine (铃鼓) H.Percussion.triangle (三角铁)
            // H.Percussion.cymbal (铜钹) H.Percussion.hihatclose (踩镲闭击)
            // H.Percussion.hihatopen (踩镲开击) H.Percussion.kick (落地鼓)
            // H.Percussion.snare (小军鼓) H.Percussion.tomtom1 (嗵嗵鼓1)
            // H.Percussion.tomtom2 (嗵嗵鼓2) H.Percussion.tomtom3 (嗵嗵鼓3)
            // H.Percussion.fx1 ~ H.Percussion.fx20 (音效1~20)

            


            6楼2012-11-06 04:56
            回复
              5) 演奏(音效) 在管家处添加和选择菜单,就可以聆听旋律。(永恒之塔的音效使用其他乐器)
              // 脚本初始化时调用。
              function OnInit()
              {
              // 添加管家的右击菜单。
              // 第一个变量为菜单的名称。
              // 第二个变量是菜单的固定ID。
              // 该值用于OnMenu()函数。
              H.RegisterMenu("演奏(音效)", 1);
              }

              // 鼠标右击管家,选择菜单即可调用。
              // menuNum是在RegisterMenu上设置的固定ID。
              function OnMenu(menuNum)
              {
              // 判断固定ID是否为"演奏"。
              if (menuNum == 1)
              {

              H.SetInstrument(2, H.Instrument.accordion); // 设置乐器。
              H.PlaySound(2, "t250 o6 b2 b2 f# f# a2 a2 g2 e2 f# f# g2 f# f# f# f# c# c# d2 e2 f# f# o5 b2 b2 b2 a# a# a# a# b2 o6 c# c# f# e d a# b r o4 b");

              H.SetInstrument(1, H.Instrument.aguitar);
              H.PlaySound(1, "t250 o4 e b o5 e g e o4 b a# o5 c# e g e o4 a# a o5 e a e b e o4 g o5 d g f# e d o4 e b o5 e g e o4 b g b o5 g f# e o4 b f# o5 c# e f# e g# a# a# f# e d c# o4 b r o3 b");

              H.SetInstrument(0, H.Instrument.abass);
              H.PlaySound(0, "t250 o3 e2 e2 e2 a# a# a# a# a# a# a2 a2 a2 g2 g2 g2 e2 e2 e2 g2 g2 g2 f# f# f# f# f# f# a# a# o4 f# e d c# o3 b r b r");

              H.SetPercussion(3, H.Percussion.hihatclose); // 设置其他乐器。
              H.PlaySound(3, "t250 x_ r x_ r r r r r x_ r x_ r x_ r x_ r r r r r x_ r r r x_ r x_ r r r r r x_ r x_ r x_ r x_ r r r r r x_ r r x_ ");

              H.SetPercussion(4, H.Percussion.fx2);
              H.PlaySound(4, "t250 r r r r r r r r r r r r r r r r r r r r r r x_ r r r r r r r r r r r r r r r r r r r r r r r r r x_r");

              H.SetPercussion(5, H.Percussion.fx9);
              H.PlaySound(5, "t250 r r r r x_ r r r r r r r r r r r x_ r r r r r r r r r r r x_r r r r r r r r r r r x_r r r r r x_");

              H.SetPercussion(6, H.Percussion.fx13);
              H.PlaySound(6, "t250 r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r x_");
              }
              }

              // 音阶:哆(c)、来(d)、咪(e)、发(f)、唆(g)、啦(a)、希(b)
              // 音符长短:4分音符(4)、8分音符(8)、16分音符(16)
              // 乐器:基础值为钢琴。
              // H.Instrument.abass (原声贝司), H.Instrument.ebass (电贝司),
              // H.Instrument.aguitar (原声吉他), H.Instrument.accordion (手风琴)
              // 除此之外的命令符:休止符(r)、八度音(o)、音量(v)、节奏(t)

              6) 笑笑看 在房子内部输入"呵呵",管家就会做出笑的动作。
              // 住宅脚本初始化时调用。
              function OnInit()
              {
              }

              // 玩家聊天时调用。
              function OnUserSay(str)
              {
              // 说出"呵呵"即微笑。
              if (str.search("呵呵") >= 0)
              {

              // 第一个0表示管家出现。
              // 第二个1表示PlaySound的[1]号label出现。
              // 在第三个变量中将管家的动作设置为笑。
              H.StartAnimation(0, 1, H.Emotion.laugh);

              // 演奏[1]号label时出现上面的动作。
              H.PlaySound(0, "r[1]")
              }
              }

              


              7楼2012-11-06 04:56
              回复
                H.SetPos(H.Outlet.outlet1, 2, 0, 0, 1, 1);
                }
                }
                9) 调亮设置物 在管家处添加和选择菜单,指定为展示物品的设置物就会发光。(高级阴影质量:需要设置为高)
                // 住宅脚本初始化时调用。
                function OnInit()
                {
                // 添加管家的右击菜单。
                // 第一个变量为菜单的名称。
                // 第二个变量是菜单的固定ID。
                // 该值用于OnMenu()函数。
                H.RegisterMenu("调亮", 2);

                // 展示物品个数设置为1个。
                H.SetOutletCount(1);
                }

                // 鼠标右击管家,选择菜单即可调用。
                // menuNum是在RegisterMenu上设置的固定ID。
                function OnMenu(menuNum)
                {
                // 判断菜单的固定ID是否为"调亮"。
                if (menuNum != 2)
                return;

                // 第一个变量指的是1号展示物品。
                // 第二个变量指的是PlaySound的[1]号label。
                // 第三个变量指的是1秒内会有火进来。
                // 第四个变量是红色(R),
                // 第五个变量是绿色(G),
                // 第六个变量是蓝**),用这些值来设置颜色。
                // 部分设置物的颜色不会改变。
                H.Glow( H.Outlet.outlet1, 1, 1, 255, 0, 0);

                // 设置[1]号label。
                H.PlaySound(0, "r2[1]");
                }

                10) 设置物跳跃 在房子内部输入"跳跃",指定为展示物品的设置物就会跳跃。(请只将PC、箱子型、文字型的特殊装饰物指定为展示物品,其他设置物不会移动。)
                // 住宅脚本初始化时调用。
                function OnInit()
                {
                // 展示物品的个数设置为1个。
                // 鼠标右击展示物品图片,就可以选择展示物品。
                H.SetOutletCount(1);
                }

                // 玩家聊天后即可调用。
                function OnUserSay(str)
                {
                // 说出"跳跃",指定为展示物品的家具就会跳跃。
                if (str.search("跳跃") >= 0)
                {
                // 设置[1]号label。
                H.PlaySound(0, "r2[1]");

                // 为[1]号label时,展示的设置物跳跃。
                // 第一个变量指的是1号展示物品。
                // 第二个变量指的是PlaySound的[1]号label。
                // 第三个变量用来设置高度。
                H.Jump(H.Outlet.outlet1, 1, 1);
                }
                }

                11)仰望 在房子内部输入"管家",管家会仰望。
                // 住宅脚本初始化时调用。
                function OnInit()
                


                9楼2012-11-06 04:57
                回复
                  高端。


                  来自手机贴吧12楼2012-11-06 08:26
                  回复
                    看不懂


                    来自iPhone客户端14楼2012-11-06 18:06
                    回复
                      什嘛东西?


                      IP属地:湖北来自手机贴吧15楼2012-11-06 18:29
                      回复