【mud】item_desc之自定义的函数教程(piggy.c例子解析)
一、函数头部声明
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例子解析)相关推荐
- 百宝云自定义功能函数教程
第四节:自定义功能函数 通过这节课我们可以掌握自定义函数的定义与使用方法,同时理解参数与返回值的作用,这样我们才能在实际的开发过程中,正确的使用自定义函数. 4.1 概念 功能是百宝云的基本模块,通过 ...
- C语言 va_start / va_end / va_arg 自定义 printf 函数 - C语言零基础入门教程
目录 一.前言 二.函数不定长参数简介 1.va_start 2.va_arg 3.va_end 三.win32 控制台版本 四.MFC 对话框版本 五.猜你喜欢 零基础 C/C++ 学习路线推荐 : ...
- 【第3版emWin教程】第55章 emWin6.x按钮Button控件自定义回调函数,实现各种按钮效果
教程不断更新中:链接 第55章 emWin6.x按钮Button控件自定义回调函数,实现各种按钮效果 本章节为大家讲解按钮控件自定义回调函数,通过其回调函数就可以实现各种按钮效果.这方面的 ...
- js中数组原型Array、自定义原型函数Array.prototype
全栈工程师开发手册 (作者:栾鹏) js系列教程1-数组操作全解 js中数组原型.自定义原型函数 每个数组都包含length.prototype.constructor属性. 通过在prototype ...
- pythontransform详解_Python自定义聚合函数merge与transform区别详解
1.自定义聚合函数,结合agg使用 2. 同时使用多个聚合函数 3. 指定某一列使用某些聚合函数 4.merge与transform使用 import pandas as pd import nump ...
- 大学计算机excel函数课件,《Excel函数教程》PPT课件.ppt
<<Excel函数教程>PPT课件.ppt>由会员分享,可在线阅读,更多相关<<Excel函数教程>PPT课件.ppt(46页珍藏版)>请在装配图网上搜 ...
- 用计算机精确查找,Excel函数教程: 根据首列精确查找同一行的数据-excel技巧-电脑技巧收藏家...
Excel函数教程: 根据首列精确查找同一行的数据 3. HLOOKUP与VLOOKUP HLOOKUP用于在表格或数值数组的首行查找指定的数值,并由此返回表格或数组当前列中指定行处的数值. VLOO ...
- HIVE自定义UDF函数-经纬度转换成省市地址
目录 1.需求背景 2.解决方案 3.代码pom引用 4.代码集成UDF 5.编译jar包 6.使用说明 7.将jar包放到hdfs 8.创建持久化function 9.测试 10.结语 1.需求背景 ...
- Java 自定义类加载器教程
文章目录 Java 自定义类加载器教程 loadClass findClass defineClass 函数调用过程 Java 自定义类加载器教程 除了在面试中遇到类的加载器的概率会高外,在实际的工作 ...
最新文章
- Hadoop安装教程_分布式集群
- tcp/ip 协议栈Linux内核源码分析六 路由子系统分析一路由缓存
- activiti根据当前节点获取下一个UseTask节点
- 在 Eclipse Galileo 中更快地编写 Java 代码使用新的 toString() 生成器
- RequireJS的加载、初始化等等 - 代码格式篇
- linux下gpasswd命令
- 三维图形 纵坐标_《从柯氏四级培训效果评估到三维培训课程需求评估》
- 华为交换机 consolep密码和vty密码配置telnet,ssh
- mysql mysqldump导出与导入sql文件
- Unity与安卓开发的一些路径知识
- 2012 r2 万能网卡驱动_无线网卡怎么用,我来教您无线网卡怎么用的方法
- python问题unindent does not match any outer indentation level在pycharm平台的解决方法
- 新浪微博客户端开发之发布微博
- 二分法查找——绝对值最小的数
- 【python】python基础与unittest基础
- php中exec的用法,php exec用法详解
- 锋利的jQuery学习总结
- dot Net SerialPort 组件关闭时卡住
- 机器学习 线性回归算法_探索机器学习算法简单线性回归
- [渝粤教育] 四川大学 简明大学化学·物质结构部分入门 参考 资料
热门文章
- python输入方式大全
- python中print格式化输出%g_python怎么格式化输出
- 【毕业设计】在线学习平台
- clickonce 部署能cs程序_c# – 如何同时部署两个ClickOnce版本?
- $ npm 不是内部命令
- c语言编写万年历程序显示时间,C语言格式化输出日历(万年历)
- html5 Game开发系列文章之 三 搭建基本游戏框架(代码封装)
- 程序猿逃离北上广真的正确吗?人到中年,为什么在大城市要有一套房子?
- IDEA中如何在一个窗口中打开多个项目
- 传字节跳动将进军云计算IaaS,“狼来了”?