泥巴物件(人物，物品，房间书写规则)<暂行>

以下规则多提及一些新加的物件属性，可能忽略一些老的物件属性。

1:尽量使用相对路径代替绝对路径。

2:可装备武器标记规则
  以sword为例：
  init_sword(80),                                       
        //最大伤害为80。必须设定。
  set_weight(40000);
        //标记重量。必须设定。
  set("unit", "柄");
        //标记单位。必须设定。
  set("long", "一柄木剑。\n");
        //标记描述。
  set("value", 4000);
        //标记价值。单位文。
  set("weapon_prop/mindamage", 20);
        //最小伤害为20。默认为1。
  set("material","gold");
        //设定主材质为"金"。默认为无名物质。
  set("Fmaterial","gold");
        //设定辅材质为"金"。默认为无名物质。
  set("max_duribility","200");
        //设定最大耐久度为200。WEAPON_D默认规定。
  set("duribility","200");
        //设定耐久度为200。WEAPON_D默认规定。
  set("rigidity","100");
        //设定硬度值为100。WEAPON_D默认规定。
  set("no_break",1);
        //设定为无法损坏物品。
  set("npc_only",1);
        //NPC专用物品
  set("family_only","南海普陀山");
        //门派专用物品
  set("need_sx","xx");
        //生肖属性限制物品
  set("need_level",10);
        //限定等级物品
  set("need_force",1);
        //限定真气物品
  set("need_mana",1);
        //限定法力物品
  set("need_str",1);
        //限定体格物品
  set("need_class","xx");
        //限定职业物品
  set("need_national","xx");
        //限定种族物品
  set("weapon_prop/intelligence", 3);
        //标记附加属性
  set("weapon_prop/sword", 10);
        //标记附加技能

3:可装备防具标记规则
  以cloth为例：
  set("armor_prop/armor", 45);                                  
        //标记物品防御值。必须设定。
  set_weight(40000);
        //标记重量。必须设定。
  set("unit", "袭");
        //标记单位。必须设定。
  set("long", "一袭白衣。\n");
        //标记描述。
  set("value", 4000);
        //标记价值。单位文。
  set("material","gold");
        //设定主材质为"金"。默认为无名物质。
  set("Fmaterial","gold");
        //设定辅材质为"金"。默认为无名物质。
  set("max_duribility","200");
        //设定最大耐久度为200。WEAPON_D默认规定。
  set("duribility","200");
        //设定耐久度为200。WEAPON_D默认规定。
  set("rigidity","100");
        //设定硬度值为100。WEAPON_D默认规定。
  set("no_break",1);
        //设定为无法损坏物品。
  set("npc_only",1);
        //NPC专用物品
  set("family_only","南海普陀山");
        //门派专用物品
  set("female_only",1);
        //女性专用物品
  set("family_only","南海普陀山");
        //门派专用物品
  set("need_sx","xx");
        //生肖属性限制物品
  set("need_level",10);
        //限定等级物品
  set("need_force",1);
        //限定真气物品
  set("need_mana",1);
        //限定法力物品
  set("need_str",1);
        //限定体格物品
  set("need_class","xx");
        //限定职业物品
  set("need_national","xx");
        //限定种族物品
  set("armor_prop/intelligence", 3);
        //标记附加属性
  set("armor_prop/sword", 10);
        //标记附加技能

4:默认硬度值设定，设定硬度值可在此基础上调整，不设定则自动设定为默认值。
  硬度决定了物品是否容易有几率被损坏。可以设置部分无法损坏物品。

        "天蚕丝"                :500,
        "异类金属"              :300,
        "crimsonsteel"          :250,   //丹金
        "blacksteel"            :200,   //玄铁
        "crystal"               :180,   //水晶
        "gem"                   :150,   //宝石
        "jade"                  :150,   //玉
        "platina"               :120,   //铂
        "gold"                  :100,   //金
        "silver"                :90,    //银
        "steel"                 :80,    //钢
        "brass"                 :70,    //黄铜
        "copper"                :65,    //铜
        "iron"                  :60,    //铁
        "metal"                 :60,    //金属
        "stone"                 :55,    //石
        "wood"                  :50,    //木
        "bone"                  :45,    //骨
        "bamboo"                :40,    //竹子
        "leather"               :35,    //皮革
        "fur"                   :30,    //毛皮
        "silk"                  :20,    //丝绸
        "hair"                  :30,    //毛发
        "ivory"                 :30,    //象牙
        "fiber"                 :25,    //麻
        "cloth"                 :15,    //布
        "flower"                :15,    //花
        "paper"                 :15,    //纸
        "ice"                   :15,    //冰
        "water"                 :15,    //水
        "thread"                :15,    //线
        "gunpowder"             :15,    //火药
        "无名物质"              :15,    //无名物质

5:默认最大耐久度值和耐久度值设定，设定耐久度可在此基础上调整，不设定则
  自动设定为默认值。耐久度决定物品是否耐久经打击。

        "天蚕丝"                :600,
        "异类金属"              :500,
        "crimsonsteel"          :500,   //丹金
        "blacksteel"            :500,   //玄铁
        "crystal"               :500,   //水晶
        "gem"                   :500,   //宝石
        "jade"                  :300,   //玉
        "platina"               :300,   //铂
        "gold"                  :250,   //金
        "silver"                :250,   //银
        "steel"                 :250,   //钢
        "brass"                 :200,   //黄铜
        "copper"                :200,   //铜
        "iron"                  :200,   //铁
        "metal"                 :200,   //金属
        "stone"                 :200,   //石
        "wood"                  :200,   //木
        "bone"                  :200,   //骨
        "bamboo"                :200,   //竹子
        "leather"               :200,   //皮革
        "fur"                   :180,   //毛皮
        "silk"                  :180,   //丝绸
        "hair"                  :180,   //毛发
        "ivory"                 :180,   //象牙
        "fiber"                 :180,   //麻
        "cloth"                 :150,   //布
        "flower"                :150,   //花
        "paper"                 :150,   //纸
        "ice"                   :150,   //冰
        "water"                 :150,   //水
        "thread"                :150,   //线
        "gunpowder"             :150,   //火药
        "无名物质"              :150,   //无名物质

6:游戏人物(NPC)属性设定
  
  "class"属性原为人物种族，现取消。
  
  set("occupation","xx");
        //设定人物职业
  set("national","xx");
        //设定人物种族
  set("level","xx");
        //设定人物等级

  待补充......
  
----------------------------------------------------------------------

附：改进后的泥巴开发规范

1.缩进采用 TAB 或者 8 个空格。 
   
2.保留字后面一律空一格。 

3.数组形的变量/函数声明中，* 写在靠函数名一侧。例如： 
  int *foo(); 

4.运算符前后，视情况判断是否空格，主要包括： 

  (1) 单元操作符不加空格：i++; j = -i; *p = q++; 

  (2) 二元操作符前后要加空格：i = 3 + 4; 

      例外：除了 "->" 和 "." 以外： ob->query(), 3.1415 等 

  (3) "," 操作符后面加空格，前面不加。例：i = 3, j = 4, k = 5 

  (4) 二元操作符换行当落在行尾： 

      m = asdlfkj + asdjfhadjfad + 
          aldjkf; 

  (4) 三元操作符前后加空格，并视情况加换行， 换行以操作符在行首： 

      j = k ? m 
            : n; 

5.每新的块({ } 之间的部分)都写在新的一行，即 { 要从下一行开 始。例外： 
   
  (1) else 可以视情况放置以使代码更美观： 
   
      if (...) 
      { 
              ... 
      } else 
      { 
              ... 
      } 

  (2) 如果函数仅有一句，可以在本行写完： 
   
      int foo() { return foo; } 

6.预编译定义定格写， #define 的常量名称与常量值之间使用 TAB 对齐。 
   
7.函数、变量的声明，如果数量、类型较多，也应使用 TAB 对齐。 

8.注释。除非是较长的注释，否则都使用单行注释(//)，// 后面空 一格写注释
  内容。 
   
9. 空行。 函数与函数之间，块与块之间，一段判断语句与下一段判断语句之间，
  都要空行。 

10.函数/变量/常量命名。函数/变量命名统一使用小写字符，不同语义之间使用
  下划线(_)连接。常量使用大写字符(特殊情况除外)。 
   
11.函数/变量/常量命名， 除表层代码(区域、人物、物品)以外，应当尽量使用
  英文单词而不是拼音。 拼音的使用中，应当避免全部使用拼音缩写，例如是 
  zhangsf.c 而不是 zsf.c。 
   
12.函数与变量的命名，应该遵循一些约定的规范，例如响应 ask 的函数，统一
  使用 ask_...；add_action 指定的函数，统一使用do _...；查询数据，使用
  get/query_...；设定数据，使用 set_...；添加数据，使用 add_...； 删除
  数据，使用 del/remove_...。 
   
13.颜色。应当尽量避免在一次输出中使用三种以上的颜色，通常2-3种颜色已经
  足够。但在需要提醒注意的地方(例如数字或者英文)，必须使用与其他文字不
  同的颜色使之更醒目。 

14.在帮助、新闻等处撰写的内容， 必须按照一定的长度进行严格的换行。同时，
  中文信息中不应该夹杂半角标点符号，() 除外，推荐使用 () 代替（）。另外
  数字和英文都应该使用半角而非全角。 
   
15.每行代码的长度以在 800 * 600 分辨率下不超出屏幕右侧，1024 * 768 分辨
  率下在屏幕中间偏右结束为宜，如果此行信息没有完， 必须使用 " "、+、/ 
  进行主动断行。但这个规定没有绝对的长度 限制，只需要保证本文件中的内容
  换行位置大致一样即可。 

16.所有显示以 zMud 4.62、Fixedsys字体为标准。  



