一、函数头部声明

string display_table(string cond);
string look_table();
string read_rules();
string look_hand();
string look_collected();

string look_note();

二、函数调用

void create ()
{
  set ("short", "拱猪房");
  set ("long", @LONG

这间房子是专门为了拱猪用而设的,整间屋子都是用不去皮的松树搭成。
一张石桌 (table)周围摆着四个石礅,桌面镶了一块大理石,摸上去极为
光滑。四壁挂着长明灯,把屋子照得有如白昼。墙角里烧了一炉不知名的
香,似乎颇有提神之效。香炉旁边挂着张告示(gaoshi),上面写着这里的
规矩;桌上有张小纸条(note),上面草草的记着拱猪成绩。
LONG);

set("exits", ([
    "south": __DIR__"club3",
]) );
  set("item_desc", ([
    "table":    (: look_table :),
    "gaoshi":    (: read_rules :),
    "hand":        (: look_hand :),
    "collected":    (: look_collected :),
    "note":        (: look_note :),
]) );
  set("no_clean_up", 1);
  set("no_fight", 1);
  set("no_magic", 1);
  set("outdoors", 0);

setup();
}

三、函数体

string look_note()
{
    string str;
    object me=this_player();

if (TABLE["cond"] == "等人")
    return "纸上画着一个猪头,旁边的名字被人擦去了。下面是个表格,画得歪七扭八的。\n";

return display_score();
}
string display_score()
{
    int i = NUM;
    string format = "│%2s家:%-12s   %6d  %6d   %2s│\n";
    string str = "\n┌────────────────────────┐\n"
        +  "│方向 玩家        盘分   总分   猪│\n"
        +  "├────────────────────────┤\n";

while (i--)
    {
    str += sprintf(format, CDIR[DIR[i]], TABLE[DIR[i]]["player_name"],
            SCORING["hand"][DIR[i]], SCORING["sitting"][DIR[i]],
            (member_array(DIR[i], PIGHEAD) == -1 ? " ": "√"));
    continue;
    }
    str += "└────────────────────────┘\n";
    return str;
}

.象environment()这样的各种函数,也许会在你编程时时不时地发现,而且用的地方特别地多,最常见的就是this_player()、this_object()、还有strcmp()、implode(),左看右看找不到在哪里定义的,而你就算是找遍你下载下来的单机版的所有文件,都找不到这些函数,其实它们就是efun。efun就是MUD外部定义的函数,也就是externally defined function 的缩写。是由Mud Driver定义好的。它是以计算机直接能理解的二进制的形式存在着的,所以它们执行起来要比一般的Object带有的函数速度快的多。而对于Object内部定义的函数,通常叫作lfun(local function)。一个巫师的主要工作也就是编写一些lfun组成的Object。

【mud】item_desc之自定义的函数教程(piggy.c例子解析)相关推荐

  1. 百宝云自定义功能函数教程

    第四节:自定义功能函数 通过这节课我们可以掌握自定义函数的定义与使用方法,同时理解参数与返回值的作用,这样我们才能在实际的开发过程中,正确的使用自定义函数. 4.1 概念 功能是百宝云的基本模块,通过 ...

  2. C语言 va_start / va_end / va_arg 自定义 printf 函数 - C语言零基础入门教程

    目录 一.前言 二.函数不定长参数简介 1.va_start 2.va_arg 3.va_end 三.win32 控制台版本 四.MFC 对话框版本 五.猜你喜欢 零基础 C/C++ 学习路线推荐 : ...

  3. 【第3版emWin教程】第55章 emWin6.x按钮Button控件自定义回调函数,实现各种按钮效果

    教程不断更新中:链接 第55章       emWin6.x按钮Button控件自定义回调函数,实现各种按钮效果 本章节为大家讲解按钮控件自定义回调函数,通过其回调函数就可以实现各种按钮效果.这方面的 ...

  4. js中数组原型Array、自定义原型函数Array.prototype

    全栈工程师开发手册 (作者:栾鹏) js系列教程1-数组操作全解 js中数组原型.自定义原型函数 每个数组都包含length.prototype.constructor属性. 通过在prototype ...

  5. pythontransform详解_Python自定义聚合函数merge与transform区别详解

    1.自定义聚合函数,结合agg使用 2. 同时使用多个聚合函数 3. 指定某一列使用某些聚合函数 4.merge与transform使用 import pandas as pd import nump ...

  6. 大学计算机excel函数课件,《Excel函数教程》PPT课件.ppt

    <<Excel函数教程>PPT课件.ppt>由会员分享,可在线阅读,更多相关<<Excel函数教程>PPT课件.ppt(46页珍藏版)>请在装配图网上搜 ...

  7. 用计算机精确查找,Excel函数教程: 根据首列精确查找同一行的数据-excel技巧-电脑技巧收藏家...

    Excel函数教程: 根据首列精确查找同一行的数据 3. HLOOKUP与VLOOKUP HLOOKUP用于在表格或数值数组的首行查找指定的数值,并由此返回表格或数组当前列中指定行处的数值. VLOO ...

  8. HIVE自定义UDF函数-经纬度转换成省市地址

    目录 1.需求背景 2.解决方案 3.代码pom引用 4.代码集成UDF 5.编译jar包 6.使用说明 7.将jar包放到hdfs 8.创建持久化function 9.测试 10.结语 1.需求背景 ...

  9. Java 自定义类加载器教程

    文章目录 Java 自定义类加载器教程 loadClass findClass defineClass 函数调用过程 Java 自定义类加载器教程 除了在面试中遇到类的加载器的概率会高外,在实际的工作 ...

最新文章

  1. Hadoop安装教程_分布式集群
  2. tcp/ip 协议栈Linux内核源码分析六 路由子系统分析一路由缓存
  3. activiti根据当前节点获取下一个UseTask节点
  4. 在 Eclipse Galileo 中更快地编写 Java 代码使用新的 toString() 生成器
  5. RequireJS的加载、初始化等等 - 代码格式篇
  6. linux下gpasswd命令
  7. 三维图形 纵坐标_《从柯氏四级培训效果评估到三维培训课程需求评估》
  8. 华为交换机 consolep密码和vty密码配置telnet,ssh
  9. mysql mysqldump导出与导入sql文件
  10. Unity与安卓开发的一些路径知识
  11. 2012 r2 万能网卡驱动_无线网卡怎么用,我来教您无线网卡怎么用的方法
  12. python问题unindent does not match any outer indentation level在pycharm平台的解决方法
  13. 新浪微博客户端开发之发布微博
  14. 二分法查找——绝对值最小的数
  15. 【python】python基础与unittest基础
  16. php中exec的用法,php exec用法详解
  17. 锋利的jQuery学习总结
  18. dot Net SerialPort 组件关闭时卡住
  19. 机器学习 线性回归算法_探索机器学习算法简单线性回归
  20. [渝粤教育] 四川大学 简明大学化学·物质结构部分入门 参考 资料

热门文章

  1. python输入方式大全
  2. python中print格式化输出%g_python怎么格式化输出
  3. 【毕业设计】在线学习平台
  4. clickonce 部署能cs程序_c# – 如何同时部署两个ClickOnce版本?
  5. $ npm 不是内部命令
  6. c语言编写万年历程序显示时间,C语言格式化输出日历(万年历)
  7. html5 Game开发系列文章之 三 搭建基本游戏框架(代码封装)
  8. 程序猿逃离北上广真的正确吗?人到中年,为什么在大城市要有一套房子?
  9. IDEA中如何在一个窗口中打开多个项目
  10. 传字节跳动将进军云计算IaaS,“狼来了”?