@lpc-lang/core 1.1.2-5.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +255 -0
- package/bin/lpc +4 -0
- package/bin/lpcserver +4 -0
- package/cancellationToken/cancellationToken.d.ts +8 -0
- package/cancellationToken/cancellationToken.d.ts.map +1 -0
- package/cancellationToken/serverCancellationToken.d.ts +21 -0
- package/cancellationToken/serverCancellationToken.d.ts.map +1 -0
- package/cli/_namespaces/lpc.d.ts +2 -0
- package/cli/_namespaces/lpc.d.ts.map +1 -0
- package/cli/lpc.d.ts +2 -0
- package/cli/lpc.d.ts.map +1 -0
- package/compiler/LpcConfig.d.ts +17 -0
- package/compiler/LpcConfig.d.ts.map +1 -0
- package/compiler/_namespaces/lpc.d.ts +49 -0
- package/compiler/_namespaces/lpc.d.ts.map +1 -0
- package/compiler/_namespaces/lpc.moduleSpecifiers.d.ts +2 -0
- package/compiler/_namespaces/lpc.moduleSpecifiers.d.ts.map +1 -0
- package/compiler/_namespaces/lpc.performance.d.ts +2 -0
- package/compiler/_namespaces/lpc.performance.d.ts.map +1 -0
- package/compiler/binder.d.ts +2 -0
- package/compiler/binder.d.ts.map +1 -0
- package/compiler/builderPublic.d.ts +76 -0
- package/compiler/builderPublic.d.ts.map +1 -0
- package/compiler/checker.d.ts +2 -0
- package/compiler/checker.d.ts.map +1 -0
- package/compiler/commandLineParser.d.ts +47 -0
- package/compiler/commandLineParser.d.ts.map +1 -0
- package/compiler/core.d.ts +3 -0
- package/compiler/core.d.ts.map +1 -0
- package/compiler/corePublic.d.ts +19 -0
- package/compiler/corePublic.d.ts.map +1 -0
- package/compiler/debug.d.ts +71 -0
- package/compiler/debug.d.ts.map +1 -0
- package/compiler/diagnosticInformation.d.ts +518 -0
- package/compiler/diagnosticInformation.d.ts.map +1 -0
- package/compiler/emitter.d.ts +11 -0
- package/compiler/emitter.d.ts.map +1 -0
- package/compiler/executeCommandLine.d.ts +15 -0
- package/compiler/executeCommandLine.d.ts.map +1 -0
- package/compiler/expressionToTypeNode.d.ts +2 -0
- package/compiler/expressionToTypeNode.d.ts.map +1 -0
- package/compiler/factory/baseNodeFactory.d.ts +2 -0
- package/compiler/factory/baseNodeFactory.d.ts.map +1 -0
- package/compiler/factory/emitHelper.d.ts +2 -0
- package/compiler/factory/emitHelper.d.ts.map +1 -0
- package/compiler/factory/emitNode.d.ts +22 -0
- package/compiler/factory/emitNode.d.ts.map +1 -0
- package/compiler/factory/nodeChildren.d.ts +2 -0
- package/compiler/factory/nodeChildren.d.ts.map +1 -0
- package/compiler/factory/nodeConverters.d.ts +2 -0
- package/compiler/factory/nodeConverters.d.ts.map +1 -0
- package/compiler/factory/nodeFactory.d.ts +4 -0
- package/compiler/factory/nodeFactory.d.ts.map +1 -0
- package/compiler/factory/parenthesizerRules.d.ts +2 -0
- package/compiler/factory/parenthesizerRules.d.ts.map +1 -0
- package/compiler/factory/utilities.d.ts +2 -0
- package/compiler/factory/utilities.d.ts.map +1 -0
- package/compiler/factory/utilitiesPublic.d.ts +4 -0
- package/compiler/factory/utilitiesPublic.d.ts.map +1 -0
- package/compiler/lpcFileHandler.d.ts +10 -0
- package/compiler/lpcFileHandler.d.ts.map +1 -0
- package/compiler/lpcJsHelpers.d.ts +17 -0
- package/compiler/lpcJsHelpers.d.ts.map +1 -0
- package/compiler/lpcbuild.d.ts +2 -0
- package/compiler/lpcbuild.d.ts.map +1 -0
- package/compiler/lpcbuildPublic.d.ts +26 -0
- package/compiler/lpcbuildPublic.d.ts.map +1 -0
- package/compiler/moduleNameResolver.d.ts +55 -0
- package/compiler/moduleNameResolver.d.ts.map +1 -0
- package/compiler/moduleSpecifiers.d.ts +2 -0
- package/compiler/moduleSpecifiers.d.ts.map +1 -0
- package/compiler/nodeTests.d.ts +115 -0
- package/compiler/nodeTests.d.ts.map +1 -0
- package/compiler/parser.d.ts +65 -0
- package/compiler/parser.d.ts.map +1 -0
- package/compiler/path.d.ts +2 -0
- package/compiler/path.d.ts.map +1 -0
- package/compiler/perfLoger.d.ts +2 -0
- package/compiler/perfLoger.d.ts.map +1 -0
- package/compiler/performance.d.ts +2 -0
- package/compiler/performance.d.ts.map +1 -0
- package/compiler/performanceCore.d.ts +2 -0
- package/compiler/performanceCore.d.ts.map +1 -0
- package/compiler/program.d.ts +72 -0
- package/compiler/program.d.ts.map +1 -0
- package/compiler/resolutionCache.d.ts +6 -0
- package/compiler/resolutionCache.d.ts.map +1 -0
- package/compiler/resolver.d.ts +1 -0
- package/compiler/resolver.d.ts.map +1 -0
- package/compiler/scanner.d.ts +85 -0
- package/compiler/scanner.d.ts.map +1 -0
- package/compiler/sourcemap.d.ts +2 -0
- package/compiler/sourcemap.d.ts.map +1 -0
- package/compiler/sys.d.ts +56 -0
- package/compiler/sys.d.ts.map +1 -0
- package/compiler/tracing.d.ts +31 -0
- package/compiler/tracing.d.ts.map +1 -0
- package/compiler/transformers/declarations.d.ts +2 -0
- package/compiler/transformers/declarations.d.ts.map +1 -0
- package/compiler/transformers.d.ts +2 -0
- package/compiler/transformers.d.ts.map +1 -0
- package/compiler/types.d.ts +3284 -0
- package/compiler/types.d.ts.map +1 -0
- package/compiler/utilities.d.ts +57 -0
- package/compiler/utilities.d.ts.map +1 -0
- package/compiler/utilitiesPublic.d.ts +213 -0
- package/compiler/utilitiesPublic.d.ts.map +1 -0
- package/compiler/visitorPublic.d.ts +72 -0
- package/compiler/visitorPublic.d.ts.map +1 -0
- package/compiler/watch.d.ts +2 -0
- package/compiler/watch.d.ts.map +1 -0
- package/compiler/watchPublic.d.ts +44 -0
- package/compiler/watchPublic.d.ts.map +1 -0
- package/compiler/watchUtilities.d.ts +14 -0
- package/compiler/watchUtilities.d.ts.map +1 -0
- package/config-types.d.ts +33 -0
- package/config-types.d.ts.map +1 -0
- package/harness/harnessIO.d.ts +4 -0
- package/harness/harnessIO.d.ts.map +1 -0
- package/lpc/_namespaces/lpc.d.ts +6 -0
- package/lpc/_namespaces/lpc.d.ts.map +1 -0
- package/lpc/_namespaces/lpc.server.d.ts +2 -0
- package/lpc/_namespaces/lpc.server.d.ts.map +1 -0
- package/lpc/lpc.d.ts +2 -0
- package/lpc/lpc.d.ts.map +1 -0
- package/lpcserver/document.d.ts +1 -0
- package/lpcserver/document.d.ts.map +1 -0
- package/lpcserver/nodeServer.d.ts +25 -0
- package/lpcserver/nodeServer.d.ts.map +1 -0
- package/lpcserver/protocol.const.d.ts +46 -0
- package/lpcserver/protocol.const.d.ts.map +1 -0
- package/lpcserver/server.d.ts +3 -0
- package/lpcserver/server.d.ts.map +1 -0
- package/lpcserver/textRendering.d.ts +14 -0
- package/lpcserver/textRendering.d.ts.map +1 -0
- package/lpcserver/typeConverters.d.ts +44 -0
- package/lpcserver/typeConverters.d.ts.map +1 -0
- package/lpcserver/utils.d.ts +14 -0
- package/lpcserver/utils.d.ts.map +1 -0
- package/package.json +48 -0
- package/parse-fluff-docs.d.ts +2 -0
- package/parse-fluff-docs.d.ts.map +1 -0
- package/parse-ld-docs.d.ts +2 -0
- package/parse-ld-docs.d.ts.map +1 -0
- package/server/_namespaces/lpc.d.ts +5 -0
- package/server/_namespaces/lpc.d.ts.map +1 -0
- package/server/_namespaces/lpc.server.d.ts +11 -0
- package/server/_namespaces/lpc.server.d.ts.map +1 -0
- package/server/_namespaces/lpc.server.protocol.d.ts +2 -0
- package/server/_namespaces/lpc.server.protocol.d.ts.map +1 -0
- package/server/editorServices.d.ts +261 -0
- package/server/editorServices.d.ts.map +1 -0
- package/server/project.d.ts +143 -0
- package/server/project.d.ts.map +1 -0
- package/server/protocol.d.ts +962 -0
- package/server/protocol.d.ts.map +1 -0
- package/server/scriptInfo.d.ts +53 -0
- package/server/scriptInfo.d.ts.map +1 -0
- package/server/scriptVersionCache.d.ts +2 -0
- package/server/scriptVersionCache.d.ts.map +1 -0
- package/server/session.d.ts +150 -0
- package/server/session.d.ts.map +1 -0
- package/server/types.d.ts +24 -0
- package/server/types.d.ts.map +1 -0
- package/server/utilities.d.ts +2 -0
- package/server/utilities.d.ts.map +1 -0
- package/server/utilitiesPublic.d.ts +37 -0
- package/server/utilitiesPublic.d.ts.map +1 -0
- package/server.d.ts +2 -0
- package/server.d.ts.map +1 -0
- package/services/_namespaces/lpc.Completions.StringCompletions.d.ts +2 -0
- package/services/_namespaces/lpc.Completions.StringCompletions.d.ts.map +1 -0
- package/services/_namespaces/lpc.Completions.d.ts +4 -0
- package/services/_namespaces/lpc.Completions.d.ts.map +1 -0
- package/services/_namespaces/lpc.FindAllReferences.d.ts +3 -0
- package/services/_namespaces/lpc.FindAllReferences.d.ts.map +1 -0
- package/services/_namespaces/lpc.GoToDefinition.d.ts +2 -0
- package/services/_namespaces/lpc.GoToDefinition.d.ts.map +1 -0
- package/services/_namespaces/lpc.JsDoc.d.ts +2 -0
- package/services/_namespaces/lpc.JsDoc.d.ts.map +1 -0
- package/services/_namespaces/lpc.NavigationBar.d.ts +2 -0
- package/services/_namespaces/lpc.NavigationBar.d.ts.map +1 -0
- package/services/_namespaces/lpc.Rename.d.ts +2 -0
- package/services/_namespaces/lpc.Rename.d.ts.map +1 -0
- package/services/_namespaces/lpc.SignatureHelp.d.ts +2 -0
- package/services/_namespaces/lpc.SignatureHelp.d.ts.map +1 -0
- package/services/_namespaces/lpc.SymbolDisplay.d.ts +2 -0
- package/services/_namespaces/lpc.SymbolDisplay.d.ts.map +1 -0
- package/services/_namespaces/lpc.codefix.d.ts +3 -0
- package/services/_namespaces/lpc.codefix.d.ts.map +1 -0
- package/services/_namespaces/lpc.d.ts +30 -0
- package/services/_namespaces/lpc.d.ts.map +1 -0
- package/services/_namespaces/lpc.formatting.d.ts +7 -0
- package/services/_namespaces/lpc.formatting.d.ts.map +1 -0
- package/services/_namespaces/lpc.textChanges.d.ts +2 -0
- package/services/_namespaces/lpc.textChanges.d.ts.map +1 -0
- package/services/classifier2020.d.ts +2 -0
- package/services/classifier2020.d.ts.map +1 -0
- package/services/codefixes/helpers.d.ts +2 -0
- package/services/codefixes/helpers.d.ts.map +1 -0
- package/services/codefixes/importFixes.d.ts +2 -0
- package/services/codefixes/importFixes.d.ts.map +1 -0
- package/services/completions.d.ts +2 -0
- package/services/completions.d.ts.map +1 -0
- package/services/documentRegistry.d.ts +90 -0
- package/services/documentRegistry.d.ts.map +1 -0
- package/services/exportInfoMap.d.ts +5 -0
- package/services/exportInfoMap.d.ts.map +1 -0
- package/services/findAllReferences.d.ts +2 -0
- package/services/findAllReferences.d.ts.map +1 -0
- package/services/formatting/formatting.d.ts +2 -0
- package/services/formatting/formatting.d.ts.map +1 -0
- package/services/formatting/formattingContext.d.ts +2 -0
- package/services/formatting/formattingContext.d.ts.map +1 -0
- package/services/formatting/rule.d.ts +2 -0
- package/services/formatting/rule.d.ts.map +1 -0
- package/services/formatting/rules.d.ts +2 -0
- package/services/formatting/rules.d.ts.map +1 -0
- package/services/formatting/rulesMap.d.ts +2 -0
- package/services/formatting/rulesMap.d.ts.map +1 -0
- package/services/formatting/smartIndenter.d.ts +2 -0
- package/services/formatting/smartIndenter.d.ts.map +1 -0
- package/services/goToDefinition.d.ts +2 -0
- package/services/goToDefinition.d.ts.map +1 -0
- package/services/importTracker.d.ts +2 -0
- package/services/importTracker.d.ts.map +1 -0
- package/services/jsDoc.d.ts +2 -0
- package/services/jsDoc.d.ts.map +1 -0
- package/services/navigationBar.d.ts +2 -0
- package/services/navigationBar.d.ts.map +1 -0
- package/services/rename.d.ts +2 -0
- package/services/rename.d.ts.map +1 -0
- package/services/services.d.ts +54 -0
- package/services/services.d.ts.map +1 -0
- package/services/signatureHelp.d.ts +2 -0
- package/services/signatureHelp.d.ts.map +1 -0
- package/services/sourcemaps.d.ts +2 -0
- package/services/sourcemaps.d.ts.map +1 -0
- package/services/stringCompletions.d.ts +2 -0
- package/services/stringCompletions.d.ts.map +1 -0
- package/services/suggestionDiagnostics.d.ts +2 -0
- package/services/suggestionDiagnostics.d.ts.map +1 -0
- package/services/symbolDisplay.d.ts +2 -0
- package/services/symbolDisplay.d.ts.map +1 -0
- package/services/textChanges.d.ts +2 -0
- package/services/textChanges.d.ts.map +1 -0
- package/services/types.d.ts +901 -0
- package/services/types.d.ts.map +1 -0
- package/services/utilities.d.ts +3 -0
- package/services/utilities.d.ts.map +1 -0
- package/src/cli.js +58 -0
- package/src/cli.js.map +7 -0
- package/src/efuns/fluffos/arrays.h +205 -0
- package/src/efuns/fluffos/async.h +84 -0
- package/src/efuns/fluffos/buffers.h +80 -0
- package/src/efuns/fluffos/calls.h +275 -0
- package/src/efuns/fluffos/contrib.h +805 -0
- package/src/efuns/fluffos/db.h +125 -0
- package/src/efuns/fluffos/driver.h +107 -0
- package/src/efuns/fluffos/ed.h +48 -0
- package/src/efuns/fluffos/efuns.fluffos.h +75 -0
- package/src/efuns/fluffos/external.h +30 -0
- package/src/efuns/fluffos/filesystem.h +154 -0
- package/src/efuns/fluffos/floats.h +136 -0
- package/src/efuns/fluffos/functions.h +104 -0
- package/src/efuns/fluffos/general.h +548 -0
- package/src/efuns/fluffos/interactive.h +777 -0
- package/src/efuns/fluffos/internals.h +455 -0
- package/src/efuns/fluffos/lpc-config.json +10 -0
- package/src/efuns/fluffos/mappings.h +205 -0
- package/src/efuns/fluffos/misc.h +43 -0
- package/src/efuns/fluffos/mudlib.h +228 -0
- package/src/efuns/fluffos/numbers.h +41 -0
- package/src/efuns/fluffos/objects.h +365 -0
- package/src/efuns/fluffos/parsing.h +220 -0
- package/src/efuns/fluffos/pcre.h +75 -0
- package/src/efuns/fluffos/sockets.h +276 -0
- package/src/efuns/fluffos/strings.h +542 -0
- package/src/efuns/fluffos/system.h +408 -0
- package/src/efuns/fluffos/zh-cn/arrays.zh-cn.h +167 -0
- package/src/efuns/fluffos/zh-cn/async.zh-cn.h +81 -0
- package/src/efuns/fluffos/zh-cn/buffers.zh-cn.h +69 -0
- package/src/efuns/fluffos/zh-cn/calls.zh-cn.h +242 -0
- package/src/efuns/fluffos/zh-cn/contrib.zh-cn.h +767 -0
- package/src/efuns/fluffos/zh-cn/db.zh-cn.h +113 -0
- package/src/efuns/fluffos/zh-cn/ed.zh-cn.h +42 -0
- package/src/efuns/fluffos/zh-cn/efuns.fluffos.h +76 -0
- package/src/efuns/fluffos/zh-cn/external.zh-cn.h +25 -0
- package/src/efuns/fluffos/zh-cn/filesystem.zh-cn.h +140 -0
- package/src/efuns/fluffos/zh-cn/floats.zh-cn.h +129 -0
- package/src/efuns/fluffos/zh-cn/functions.zh-cn.h +87 -0
- package/src/efuns/fluffos/zh-cn/general.zh-cn.h +506 -0
- package/src/efuns/fluffos/zh-cn/interactive.zh-cn.h +659 -0
- package/src/efuns/fluffos/zh-cn/internals.zh-cn.h +356 -0
- package/src/efuns/fluffos/zh-cn/mappings.zh-cn.h +188 -0
- package/src/efuns/fluffos/zh-cn/misc.zh-cn.h +43 -0
- package/src/efuns/fluffos/zh-cn/mudlib.zh-cn.h +190 -0
- package/src/efuns/fluffos/zh-cn/numbers.zh-cn.h +36 -0
- package/src/efuns/fluffos/zh-cn/objects.zh-cn.h +280 -0
- package/src/efuns/fluffos/zh-cn/parsing.zh-cn.h +212 -0
- package/src/efuns/fluffos/zh-cn/pcre.zh-cn.h +67 -0
- package/src/efuns/fluffos/zh-cn/sockets.zh-cn.h +230 -0
- package/src/efuns/fluffos/zh-cn/strings.zh-cn.h +484 -0
- package/src/efuns/fluffos/zh-cn/system.zh-cn.h +366 -0
- package/src/efuns/ldmud/defines.h +69 -0
- package/src/efuns/ldmud/efun.h +10449 -0
- package/src/efuns/ldmud/efuns.ldmud.h +87 -0
- package/src/efuns/ldmud/lpc-config.json +9 -0
- package/src/efuns/ldmud/obsolete.h +2168 -0
- package/src/lpc.js +82486 -0
- package/src/lpc.js.map +6 -0
- package/src/server.js +129 -0
- package/src/server.js.map +7 -0
- package/types.d.ts +23 -0
- package/types.d.ts.map +1 -0
- package/utils.d.ts +21 -0
- package/utils.d.ts.map +1 -0
|
@@ -0,0 +1,767 @@
|
|
|
1
|
+
// contrib.h
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* zonetime - 返回给定时区字符串的 ctime(int)
|
|
5
|
+
*
|
|
6
|
+
* 返回给定时区字符串的 ctime(int)。
|
|
7
|
+
*
|
|
8
|
+
*/
|
|
9
|
+
string zonetime(string timezone, int timestamp);
|
|
10
|
+
|
|
11
|
+
/**
|
|
12
|
+
* variables - 返回全局变量名称的数组
|
|
13
|
+
*
|
|
14
|
+
* int == 0:
|
|
15
|
+
* 返回全局变量名称的数组
|
|
16
|
+
*
|
|
17
|
+
* int != 0
|
|
18
|
+
* 返回包含变量名称和类型的数组的数组
|
|
19
|
+
* @param {object} ob - 要查询的对象
|
|
20
|
+
* @param {int} flag (可选) 默认值为 0
|
|
21
|
+
*/
|
|
22
|
+
mixed *variables(object ob, int flag);
|
|
23
|
+
|
|
24
|
+
/**
|
|
25
|
+
* upper_case() - 返回一个字符串,源字符串中的每个字母都被大写。
|
|
26
|
+
*
|
|
27
|
+
* 返回一个新字符串,其中 <text> 中的每个字符都被转换为大写。
|
|
28
|
+
*
|
|
29
|
+
* string text = upper_case( "I like cheese." ) ; // "I LIKE CHEESE."
|
|
30
|
+
*
|
|
31
|
+
*/
|
|
32
|
+
string upper_case(string text);
|
|
33
|
+
|
|
34
|
+
/**
|
|
35
|
+
* test_load - 测试一个文件是否可加载
|
|
36
|
+
*
|
|
37
|
+
* 测试一个文件是否可加载。如果文件可加载,将返回 1,
|
|
38
|
+
* 否则返回 0。如果尝试加载的文件包含错误,
|
|
39
|
+
* 将会报告这些错误,这种情况下,您可能需要将
|
|
40
|
+
* 函数调用包装在 catch 语句中以获取 0 的结果。
|
|
41
|
+
*
|
|
42
|
+
*/
|
|
43
|
+
int test_load( string filename );
|
|
44
|
+
|
|
45
|
+
/**
|
|
46
|
+
* terminal_colour() - 返回一个被包装和缩进的字符串,其中驱动程序
|
|
47
|
+
* 将字符串中的 %^KEY%^ 替换为提供的映射中 KEY 的匹配值。
|
|
48
|
+
*
|
|
49
|
+
* 字符串:要解析为 '%^KEY%^' 序列
|
|
50
|
+
* 映射:'KEY:值' 对
|
|
51
|
+
* 第一个整数:在打印的符号后换行
|
|
52
|
+
* 如果整数 < 0,则用空格填充行
|
|
53
|
+
*
|
|
54
|
+
* wrap = 4:
|
|
55
|
+
* '12\n345'
|
|
56
|
+
* wrap = -4:
|
|
57
|
+
* '12 \n345 '
|
|
58
|
+
*
|
|
59
|
+
* minwrap: 2
|
|
60
|
+
*
|
|
61
|
+
* 第二个整数:缩进一定的空格
|
|
62
|
+
* maxindent: wrap-2
|
|
63
|
+
*
|
|
64
|
+
* 返回被包装和缩进的字符串,每个 '%^KEY%^' 都被替换为 KEY 的值
|
|
65
|
+
* 如果未找到 '%^KEY%^' 序列,则返回原始字符串
|
|
66
|
+
* (难道至少应该被包装和缩进吗?)
|
|
67
|
+
*
|
|
68
|
+
*/
|
|
69
|
+
string terminal_colour(string, mapping, int | void, int | void);
|
|
70
|
+
|
|
71
|
+
/**
|
|
72
|
+
* string_difference - 返回 levenshtein 差异
|
|
73
|
+
*
|
|
74
|
+
* 返回 levenshtein 差异
|
|
75
|
+
*
|
|
76
|
+
*/
|
|
77
|
+
int string_difference(string, string);
|
|
78
|
+
|
|
79
|
+
|
|
80
|
+
/**
|
|
81
|
+
* store_variable - 将一个值存储在对象的全局变量中
|
|
82
|
+
*
|
|
83
|
+
* 此 efun 将值存储在 `ob` 中的全局变量 variable_name 中。
|
|
84
|
+
*
|
|
85
|
+
* `variable_name` 是全局变量的名称。
|
|
86
|
+
* `value` 是要存储在全局变量中的数据。
|
|
87
|
+
* `ob` 如果未指定,则默认为 this_object()。
|
|
88
|
+
*
|
|
89
|
+
* 如果未指定 `ob`,则 `variable_name` 可以是继承层次结构中的任何全局变量,无论作用域如何。如果指定了 `ob`,则 `variable_name` 必须是公共作用域。
|
|
90
|
+
*
|
|
91
|
+
* 这可能是一个潜在的安全隐患,因此,您可能希望重载此函数以执行安全检查。
|
|
92
|
+
*
|
|
93
|
+
* store_variable( "weight", 150, this_player() ) ;
|
|
94
|
+
*
|
|
95
|
+
*/
|
|
96
|
+
void store_variable(string variable_name, mixed value, void|object ob);
|
|
97
|
+
|
|
98
|
+
/**
|
|
99
|
+
* store_class_member
|
|
100
|
+
*
|
|
101
|
+
* 将 <value> 存储在 <instantiated_class> 的 <class_element>th 成员中。
|
|
102
|
+
*
|
|
103
|
+
* 返回 <instantiated_class> 的更新版本。
|
|
104
|
+
*
|
|
105
|
+
* class person {
|
|
106
|
+
* string name ;
|
|
107
|
+
* int age ;
|
|
108
|
+
* string city ;
|
|
109
|
+
* }
|
|
110
|
+
*
|
|
111
|
+
* void fun()
|
|
112
|
+
* {
|
|
113
|
+
* class person me = new(class person) ;
|
|
114
|
+
*
|
|
115
|
+
* me->name = "Foo" ;
|
|
116
|
+
* me->age = 42 ;
|
|
117
|
+
* me->city = "Fooville" ;
|
|
118
|
+
*
|
|
119
|
+
* write( sprintf("%O\n", me) ) ;
|
|
120
|
+
*
|
|
121
|
+
* // 结果:
|
|
122
|
+
* // CLASS( 3 elements
|
|
123
|
+
* // "Foo",
|
|
124
|
+
* // 42,
|
|
125
|
+
* // "Fooville"
|
|
126
|
+
* // )
|
|
127
|
+
*
|
|
128
|
+
* me = store_class_member( me, 1, 43 ) ;
|
|
129
|
+
*
|
|
130
|
+
* write( sprintf("%O\n", me) ) ;
|
|
131
|
+
*
|
|
132
|
+
* // 结果:
|
|
133
|
+
* // CLASS( 3 elements
|
|
134
|
+
* // "Foo",
|
|
135
|
+
* // 43,
|
|
136
|
+
* // "Fooville"
|
|
137
|
+
* // )
|
|
138
|
+
* }
|
|
139
|
+
*
|
|
140
|
+
*/
|
|
141
|
+
mixed store_class_member(mixed instantiated_class, int class_element, mixed value);
|
|
142
|
+
|
|
143
|
+
/**
|
|
144
|
+
* shuffle
|
|
145
|
+
*
|
|
146
|
+
* 随机重排列给定数组的元素(改变原数组!!!)
|
|
147
|
+
*
|
|
148
|
+
*/
|
|
149
|
+
mixed *shuffle(mixed *arr);
|
|
150
|
+
|
|
151
|
+
/**
|
|
152
|
+
*
|
|
153
|
+
*
|
|
154
|
+
*
|
|
155
|
+
*
|
|
156
|
+
*/
|
|
157
|
+
|
|
158
|
+
/**
|
|
159
|
+
* send_nullbyte - 发送 '\0' 到交互式
|
|
160
|
+
*
|
|
161
|
+
* 发送 '\0' 到交互式,返回 -2 表示错误,1 表示成功
|
|
162
|
+
*
|
|
163
|
+
*/
|
|
164
|
+
int send_nullbyte(object);
|
|
165
|
+
|
|
166
|
+
/**
|
|
167
|
+
* roll_MdN() - 骰子掷骰生成器,您可以指定骰子的数量和每个骰子的面数,如果提供了则加上奖励。
|
|
168
|
+
*
|
|
169
|
+
* 掷 `sides` 面的骰子 `rolls` 次,返回所有掷骰的总和
|
|
170
|
+
*
|
|
171
|
+
* 如果提供了 `bonus`,将加上奖励并返回结果。
|
|
172
|
+
*
|
|
173
|
+
* // 掷一个 1d4
|
|
174
|
+
* roll_MdN(1, 4)
|
|
175
|
+
*
|
|
176
|
+
* // 掷 2d6
|
|
177
|
+
* roll_MdN(2, 6)
|
|
178
|
+
*
|
|
179
|
+
* // 掷一个 1d10,并加上 15
|
|
180
|
+
* roll_MdN(1, 10, 15)
|
|
181
|
+
* @param {int} rolls - 骰子的数量
|
|
182
|
+
* @param {int} sides - 每个骰子的面数
|
|
183
|
+
* @param {int} bonus - (可选)加到掷骰上的奖励,默认为 0
|
|
184
|
+
*/
|
|
185
|
+
int roll_MdN(int rolls, int sides, int bonus);
|
|
186
|
+
|
|
187
|
+
/**
|
|
188
|
+
* restore_from_string() - 类似于 restore_object(),但从字符串中恢复变量,其中字符串与 restore_object() 中的格式相同
|
|
189
|
+
*
|
|
190
|
+
* 使用字符串作为 restore_object 使用文件的含义
|
|
191
|
+
* @param {string} str - 要恢复的字符串
|
|
192
|
+
* @param {int} flag - 默认为 0
|
|
193
|
+
*/
|
|
194
|
+
void restore_from_string(string str, int flag);
|
|
195
|
+
|
|
196
|
+
/**
|
|
197
|
+
* replaceable - 检查对象是否可被替换
|
|
198
|
+
*
|
|
199
|
+
* string *func 默认为 ({ "create", "__INIT" }),包含一个
|
|
200
|
+
* 可以在检查中忽略的函数列表
|
|
201
|
+
*
|
|
202
|
+
* 检查对象是否定义了任何函数(除了 create 之外)
|
|
203
|
+
*
|
|
204
|
+
* 如果没有并且对象不是 simul_efun 对象且不是 ???,则返回 1
|
|
205
|
+
* 其他情况下返回 0
|
|
206
|
+
*
|
|
207
|
+
*/
|
|
208
|
+
int replaceable(object, void | string *func);
|
|
209
|
+
|
|
210
|
+
/**
|
|
211
|
+
* repeat_string() - 重复一个字符串指定次数。
|
|
212
|
+
*
|
|
213
|
+
* 返回一个新的字符串
|
|
214
|
+
*
|
|
215
|
+
* - repeats <= 0: ""
|
|
216
|
+
* - repeats > 0 原始字符串重复 int 次或在不超过最大字符串长度的
|
|
217
|
+
* 最大次数内重复
|
|
218
|
+
*
|
|
219
|
+
* maxstrlen = 5:
|
|
220
|
+
* repeat_string("ab", 3) = "abab"
|
|
221
|
+
*
|
|
222
|
+
* maxstrlen >=6:
|
|
223
|
+
* repeat_string("ab", 3) = "ababab"
|
|
224
|
+
*
|
|
225
|
+
*/
|
|
226
|
+
string repeat_string(string str, int repeats);
|
|
227
|
+
|
|
228
|
+
/**
|
|
229
|
+
* remove_shadow() - 从指定对象中移除所有阴影,或从另一个对象中移除
|
|
230
|
+
* 指定阴影。不会销毁阴影。
|
|
231
|
+
*
|
|
232
|
+
* ob 默认为 this_object()
|
|
233
|
+
* 如果对象被销毁或不是阴影且不是被阴影的,则返回 0
|
|
234
|
+
* 否则返回 1
|
|
235
|
+
*
|
|
236
|
+
* ob <- shadow1 <- shadow2
|
|
237
|
+
*
|
|
238
|
+
* remove(shadow2): ob <- shadow1 shadow2
|
|
239
|
+
* remove(shadow1): ob <- shadow2 shadow1
|
|
240
|
+
* remove(ob): shadow1 <- shadow2 ob
|
|
241
|
+
*
|
|
242
|
+
* #ifndef NO_SHADOWS
|
|
243
|
+
*
|
|
244
|
+
*/
|
|
245
|
+
int remove_shadow(object ob);
|
|
246
|
+
|
|
247
|
+
/**
|
|
248
|
+
* remove_interactive - 移除交互对象
|
|
249
|
+
*
|
|
250
|
+
* 如果参数对象是交互式并且未被销毁,则使其断开连接并失去
|
|
251
|
+
* 交互状态。当操作成功时返回 1。
|
|
252
|
+
*
|
|
253
|
+
* 此函数要求在选项文件中定义 PACKAGE_CONTRIB。
|
|
254
|
+
*
|
|
255
|
+
*/
|
|
256
|
+
int remove_interactive(object interactive);
|
|
257
|
+
|
|
258
|
+
/**
|
|
259
|
+
* remove_get_char() - 取消当前活跃的 input_to
|
|
260
|
+
*
|
|
261
|
+
* 取消当前活跃的 input_to
|
|
262
|
+
* 设置 interactive->carryover = NULL
|
|
263
|
+
* 设置 interactive->num_carry = 0
|
|
264
|
+
*
|
|
265
|
+
* 如果缺少参数返回 -3
|
|
266
|
+
* 如果对象被销毁或不是交互对象返回 -2
|
|
267
|
+
* 如果没有 active input_to 返回 -1
|
|
268
|
+
* 否则返回 1
|
|
269
|
+
*
|
|
270
|
+
*/
|
|
271
|
+
int remove_get_char(object interactive);
|
|
272
|
+
|
|
273
|
+
/**
|
|
274
|
+
* remove_charmode() - 切换交互对象到行模式
|
|
275
|
+
*
|
|
276
|
+
* 切换交互对象到行模式
|
|
277
|
+
*
|
|
278
|
+
* 如果缺少参数返回 -1
|
|
279
|
+
* 在出错的情况下返回 -2(对象被销毁或不是交互对象)
|
|
280
|
+
* 当前 input_to 标志中的 char_mode 会被取消
|
|
281
|
+
*
|
|
282
|
+
*/
|
|
283
|
+
int remove_charmode(object);
|
|
284
|
+
|
|
285
|
+
/**
|
|
286
|
+
* real_time
|
|
287
|
+
*
|
|
288
|
+
* 返回本地服务器时间
|
|
289
|
+
*
|
|
290
|
+
*/
|
|
291
|
+
int real_time();
|
|
292
|
+
|
|
293
|
+
/**
|
|
294
|
+
* query_replaced_program
|
|
295
|
+
*
|
|
296
|
+
* 对象默认为 this_object()
|
|
297
|
+
*
|
|
298
|
+
* 如果对象调用了 replace_program, 此函数返回替换的对象路径
|
|
299
|
+
*
|
|
300
|
+
*/
|
|
301
|
+
string query_replaced_program(void | object);
|
|
302
|
+
|
|
303
|
+
/**
|
|
304
|
+
* query_num
|
|
305
|
+
*
|
|
306
|
+
* 警告:仅限英语!!!
|
|
307
|
+
*
|
|
308
|
+
* 将 `num` 转换为字符串表示。如果 `many` 大于 0 且 `num` 大于 `many`,则结果字符串为 "many"。
|
|
309
|
+
*
|
|
310
|
+
* 任何大于 99,999 的 `num` 始终为 "many",任何小于 0 的 `num` 也是如此。
|
|
311
|
+
* @param {int} num - 要转换的数字
|
|
312
|
+
* @param {int} many - (可选)默认为 0
|
|
313
|
+
*/
|
|
314
|
+
varargs string query_num(int num, int many);
|
|
315
|
+
|
|
316
|
+
/**
|
|
317
|
+
* query_notify_fail
|
|
318
|
+
*
|
|
319
|
+
* 返回当前 notify_fail 设置(funcp 或字符串)
|
|
320
|
+
* #ifndef NO_ADD_ACTION
|
|
321
|
+
*
|
|
322
|
+
*/
|
|
323
|
+
mixed query_notify_fail();
|
|
324
|
+
|
|
325
|
+
/**
|
|
326
|
+
* query_ip_port - 返回连接的本地端口
|
|
327
|
+
*
|
|
328
|
+
* 对象默认为 this_player()
|
|
329
|
+
*
|
|
330
|
+
* 返回连接的本地端口, 如果对象不是交互对象则返回 0
|
|
331
|
+
*
|
|
332
|
+
*/
|
|
333
|
+
int query_ip_port(void | object);
|
|
334
|
+
|
|
335
|
+
/**
|
|
336
|
+
* query_charmode
|
|
337
|
+
*
|
|
338
|
+
* 如果缺少参数返回 -1
|
|
339
|
+
* 如果出错返回 -2(对象被销毁或不是交互对象)
|
|
340
|
+
* 如果交互对象处于行模式返回 0
|
|
341
|
+
* 否则返回 !0(实际值取决于编译时定义)
|
|
342
|
+
*
|
|
343
|
+
*/
|
|
344
|
+
int query_charmode(object);
|
|
345
|
+
|
|
346
|
+
/**
|
|
347
|
+
* program_info
|
|
348
|
+
*
|
|
349
|
+
* 对象默认为所有对象
|
|
350
|
+
*
|
|
351
|
+
* 返回的映射包含:
|
|
352
|
+
*
|
|
353
|
+
* - 头部大小 : int
|
|
354
|
+
* - 代码大小 : int
|
|
355
|
+
* - 函数大小 : int
|
|
356
|
+
* - 变量大小 : int
|
|
357
|
+
* - 类大小 : int
|
|
358
|
+
* - 继承大小 : int
|
|
359
|
+
* - 保存类型大小 : int
|
|
360
|
+
* - 总大小 : int
|
|
361
|
+
*
|
|
362
|
+
*/
|
|
363
|
+
mapping program_info(void | object);
|
|
364
|
+
|
|
365
|
+
/**
|
|
366
|
+
* pluralize - 返回复数形式
|
|
367
|
+
*
|
|
368
|
+
* 仅限英语!
|
|
369
|
+
*
|
|
370
|
+
* 返回复数形式:
|
|
371
|
+
* '一栋红色房子' -> '红色房子'
|
|
372
|
+
* '一袋米' -> '米袋'
|
|
373
|
+
*
|
|
374
|
+
*/
|
|
375
|
+
string pluralize(string);
|
|
376
|
+
|
|
377
|
+
|
|
378
|
+
/**
|
|
379
|
+
* num_classes - 返回对象使用的类的数量
|
|
380
|
+
*
|
|
381
|
+
* 返回对象使用的类的数量
|
|
382
|
+
*
|
|
383
|
+
*/
|
|
384
|
+
int num_classes(object);
|
|
385
|
+
|
|
386
|
+
/**
|
|
387
|
+
* network_stats
|
|
388
|
+
*
|
|
389
|
+
* 返回映射:
|
|
390
|
+
*
|
|
391
|
+
* - 总接收数据包数量 : int
|
|
392
|
+
* - 总接收数据量 : int
|
|
393
|
+
* - 总发送数据包数量 : int
|
|
394
|
+
* - 总发送数据量 : int
|
|
395
|
+
*
|
|
396
|
+
* - 端口 X 的接收数据包数量 : int
|
|
397
|
+
* - 端口 X 的接收数据量 : int
|
|
398
|
+
* - 端口 X 的发送数据包数量 : int
|
|
399
|
+
* - 端口 X 的发送数据量 : int
|
|
400
|
+
*
|
|
401
|
+
* #ifdef PACKAGE_SOCKETS:
|
|
402
|
+
*
|
|
403
|
+
* - 套接字的接收数据包数量 : int
|
|
404
|
+
* - 套接字的接收数据量 : int
|
|
405
|
+
* - 套接字的发送数据包数量 : int
|
|
406
|
+
* - 套接字的发送数据量 : int
|
|
407
|
+
*
|
|
408
|
+
*/
|
|
409
|
+
mapping network_stats();
|
|
410
|
+
|
|
411
|
+
/**
|
|
412
|
+
* named_livings - 返回命名的生物
|
|
413
|
+
*
|
|
414
|
+
* 返回所有那些具有
|
|
415
|
+
* set_living_name 和 enable_command 被调用的生物 [请参见 efun::livings()] #ifndef NO_ADD_ACTION
|
|
416
|
+
*
|
|
417
|
+
*/
|
|
418
|
+
object *named_livings( void );
|
|
419
|
+
|
|
420
|
+
/**
|
|
421
|
+
* min() - 在数组中搜索最小值
|
|
422
|
+
*
|
|
423
|
+
* 搜索 (int|float|string) 数组中的最小值。如果 flag 为 0 或
|
|
424
|
+
* 被省略,则返回最小值,否则返回其首次出现的索引。
|
|
425
|
+
*
|
|
426
|
+
*/
|
|
427
|
+
mixed min(mixed * arr);
|
|
428
|
+
mixed min(mixed * arr, int flag);
|
|
429
|
+
|
|
430
|
+
/**
|
|
431
|
+
* memory_summary()
|
|
432
|
+
*
|
|
433
|
+
* 返回映射:
|
|
434
|
+
* ([
|
|
435
|
+
* "prog1" : ([
|
|
436
|
+
* "var1" : mem_usage,
|
|
437
|
+
* ...
|
|
438
|
+
* ]),
|
|
439
|
+
* ...
|
|
440
|
+
* ])
|
|
441
|
+
*
|
|
442
|
+
*/
|
|
443
|
+
mapping memory_summary();
|
|
444
|
+
|
|
445
|
+
/**
|
|
446
|
+
* max() - 在数组中搜索最大值
|
|
447
|
+
*
|
|
448
|
+
* 搜索 (int|float|string) 数组中的最大值。如果 flag 为 0 或
|
|
449
|
+
* 被省略,则返回最大值,否则返回其首次出现的索引。
|
|
450
|
+
*
|
|
451
|
+
*/
|
|
452
|
+
mixed max(mixed * arr);
|
|
453
|
+
mixed max(mixed * arr, int flag);
|
|
454
|
+
|
|
455
|
+
/**
|
|
456
|
+
* is_daylight_savings_time
|
|
457
|
+
*
|
|
458
|
+
* 如果给定时区的给定时间处于夏令时区域,则返回 1
|
|
459
|
+
* 如果不在,则返回 0
|
|
460
|
+
* 出现错误时返回 -1
|
|
461
|
+
*
|
|
462
|
+
*/
|
|
463
|
+
int is_daylight_savings_time(string, int);
|
|
464
|
+
|
|
465
|
+
/**
|
|
466
|
+
* heart_beats - 返回所有启用心跳的对象的数组
|
|
467
|
+
*
|
|
468
|
+
* 返回所有启用心跳的对象的数组
|
|
469
|
+
*
|
|
470
|
+
*/
|
|
471
|
+
object *heart_beats( void );
|
|
472
|
+
|
|
473
|
+
/**
|
|
474
|
+
* get_garbage() - 获取所有没有环境或库存且不是影子对象的克隆。
|
|
475
|
+
*
|
|
476
|
+
* 返回一个数组,包含所有(最多**MAX_ARRAY_SIZE**)那些克隆的(!)对象,这些对象
|
|
477
|
+
* 没有环境或库存,并且不是影子另一个对象,也没有设置 object->super
|
|
478
|
+
*
|
|
479
|
+
*/
|
|
480
|
+
object *get_garbage();
|
|
481
|
+
|
|
482
|
+
/**
|
|
483
|
+
* functions() - 返回传入对象中所有函数的名称字符串数组或混合数组。
|
|
484
|
+
*
|
|
485
|
+
* 返回一个包含在<ob>中找到的函数名称的字符串数组。返回的函数将包括所有函数,无论是公共的、
|
|
486
|
+
* 保护的还是私有的。<flag>参数默认为零。
|
|
487
|
+
*
|
|
488
|
+
* Flag: 0
|
|
489
|
+
* 返回: 包含函数名称的字符串数组,包括所有继承的函数。
|
|
490
|
+
* ({ "func1", "func2", "func3", "func4", ... })
|
|
491
|
+
*
|
|
492
|
+
* Flag: 1
|
|
493
|
+
* 返回: 一个包含附加信息的混合数组的二维数组,关于每个函数,包括所有继承的函数。
|
|
494
|
+
*
|
|
495
|
+
* ({
|
|
496
|
+
* ({
|
|
497
|
+
* "func1", // 函数名
|
|
498
|
+
* 2, // 函数中的参数数量
|
|
499
|
+
* "int", // 函数的返回类型
|
|
500
|
+
* "object", // 第一个参数
|
|
501
|
+
* "string *", // 第二个参数
|
|
502
|
+
* }),
|
|
503
|
+
* ...
|
|
504
|
+
* })
|
|
505
|
+
*
|
|
506
|
+
* Flag: 2
|
|
507
|
+
* 类似于Flag 0,但排除继承的函数。
|
|
508
|
+
*
|
|
509
|
+
* Flag: 3
|
|
510
|
+
* 类似于Flag 1,但排除继承的函数。
|
|
511
|
+
*
|
|
512
|
+
* @param {object} ob - 要查询的对象
|
|
513
|
+
* @param {int} flag (可选) 默认为0
|
|
514
|
+
*/
|
|
515
|
+
mixed *functions(object ob, int flag);
|
|
516
|
+
|
|
517
|
+
/**
|
|
518
|
+
* function_owner - 返回定义给定函数的对象
|
|
519
|
+
*
|
|
520
|
+
* 返回定义给定函数的对象。
|
|
521
|
+
*
|
|
522
|
+
*/
|
|
523
|
+
object function_owner(function);
|
|
524
|
+
|
|
525
|
+
/**
|
|
526
|
+
* file_length - 返回文件的行数
|
|
527
|
+
*
|
|
528
|
+
* 返回
|
|
529
|
+
*
|
|
530
|
+
* - 行数
|
|
531
|
+
* - -1 在出现错误时(例如权限不足)
|
|
532
|
+
* - -2 如果文件是目录
|
|
533
|
+
*
|
|
534
|
+
*/
|
|
535
|
+
int file_length(string);
|
|
536
|
+
|
|
537
|
+
/**
|
|
538
|
+
* fetch_variable - 获取存储在对象全局变量中的值
|
|
539
|
+
*
|
|
540
|
+
* 此 efun 返回存储在 ob 中的全局变量 `variable_name` 的值。
|
|
541
|
+
*
|
|
542
|
+
* `variable_name` 是全局变量的名称。
|
|
543
|
+
* `ob` 默认为 this_object(),如果未指定。
|
|
544
|
+
*
|
|
545
|
+
* 如果未指定 `ob`,则 `variable_name` 可以是继承层次结构中的任何全局变量,无论其作用域如何。
|
|
546
|
+
* 如果指定了 `ob`,则 `variable_name` 必须是公共作用域。
|
|
547
|
+
*
|
|
548
|
+
* 这可能存在安全隐患,因此,您可能希望重载此函数以执行安全检查。
|
|
549
|
+
*
|
|
550
|
+
* int weight = fetch_variable( "weight", this_player() ) ;
|
|
551
|
+
* printf("%d\n", weight") ;
|
|
552
|
+
*
|
|
553
|
+
* // 结果: 150
|
|
554
|
+
*
|
|
555
|
+
*/
|
|
556
|
+
mixed fetch_variable(string variable_name, void|object ob);
|
|
557
|
+
|
|
558
|
+
/**
|
|
559
|
+
* fetch_class_member() - 返回已实例化类的指定索引成员的值。
|
|
560
|
+
*
|
|
561
|
+
* 给定一个<instantiated_class>,返回第<index>个成员的值。
|
|
562
|
+
* 当你有一个没有数据成员标签的匿名类时,这尤其有用。
|
|
563
|
+
*
|
|
564
|
+
* mixed me = assemble_class( ({ "Foo", 42, "Fooville" }) ) ;
|
|
565
|
+
* int age ;
|
|
566
|
+
* string name, city ;
|
|
567
|
+
*
|
|
568
|
+
* name = fetch_class_member( me, 0 ) ;
|
|
569
|
+
* age = fetch_class_member( me, 1 ) ;
|
|
570
|
+
* city = fetch_class_member( me, 2 ) ;
|
|
571
|
+
*
|
|
572
|
+
*/
|
|
573
|
+
mixed fetch_class_member( mixed instantiated_class, int index );
|
|
574
|
+
|
|
575
|
+
/**
|
|
576
|
+
* event() - 使用指定参数在其他对象中调用 event_* 。类似于 call_other,但没有返回类型。
|
|
577
|
+
*
|
|
578
|
+
* 在目标的 "event_" + event_name 中调用。 "event_" + event_name 必须是一个公共函数。
|
|
579
|
+
*
|
|
580
|
+
* 目标可以是一个单一对象或对象数组。
|
|
581
|
+
*
|
|
582
|
+
* 如果目标是一个单一对象,事件 efun 将首先调用该对象中的事件函数,然后调用
|
|
583
|
+
* 该对象的所有 inventory 中每个对象的事件函数。
|
|
584
|
+
*
|
|
585
|
+
* 如果目标是一个对象数组,事件 efun 将调用所有指定对象中的事件函数。
|
|
586
|
+
* 与单一目标版本不同,它不会级联到每个对象的库存中。
|
|
587
|
+
*
|
|
588
|
+
* efun 会将调用对象作为第一个参数,并传递所有指定的参数。
|
|
589
|
+
*
|
|
590
|
+
* // 在一个房间中
|
|
591
|
+
*
|
|
592
|
+
* // 将在房间上调用 event_heal_up,然后对房间中的每个对象
|
|
593
|
+
* event( this_object(), "heal_up", 50, 50 ) ;
|
|
594
|
+
*
|
|
595
|
+
* // 将在 users() efun 的结果中调用 event_heal_up
|
|
596
|
+
* event( users(), "heal_up", 25, 25 ) ;
|
|
597
|
+
*
|
|
598
|
+
* // 在玩家对象中
|
|
599
|
+
*
|
|
600
|
+
* // 为了利用这个事件,写一个 event_heal_up 在玩家
|
|
601
|
+
* // 对象中以接收调用
|
|
602
|
+
* void event_heal_up(object source, int health, int mana)
|
|
603
|
+
* {
|
|
604
|
+
* message("heal", sprintf("你被 %O 治愈了 %d 点生命值和 %d 点魔法值。\n", health, mana, source), this_object()) ;
|
|
605
|
+
* }
|
|
606
|
+
*
|
|
607
|
+
*/
|
|
608
|
+
void event(object | object * target, string event_name, mixed *args...);
|
|
609
|
+
|
|
610
|
+
/**
|
|
611
|
+
* element_of() - 返回给定数组的随机元素
|
|
612
|
+
*
|
|
613
|
+
* 返回给定数组的随机元素
|
|
614
|
+
*
|
|
615
|
+
*/
|
|
616
|
+
mixed element_of(mixed *arr);
|
|
617
|
+
|
|
618
|
+
/**
|
|
619
|
+
* disassemble_class() - 给定一个已实例化的类,返回一个包含类的每个成员值的 mixed* 数组。
|
|
620
|
+
*
|
|
621
|
+
* 给定一个<instantiated_class>,返回一个混合数组,其中包含所有成员的值。
|
|
622
|
+
*
|
|
623
|
+
* class person {
|
|
624
|
+
* string name ;
|
|
625
|
+
* int age ;
|
|
626
|
+
* string city ;
|
|
627
|
+
* }
|
|
628
|
+
*
|
|
629
|
+
* void fun()
|
|
630
|
+
* {
|
|
631
|
+
* mixed *result ;
|
|
632
|
+
* class person me = new(class person);
|
|
633
|
+
*
|
|
634
|
+
* me->name = "Foo" ;
|
|
635
|
+
* me->age = 42 ;
|
|
636
|
+
* me->city = "Fooville" ;
|
|
637
|
+
*
|
|
638
|
+
* result = disassemble_class( me ) ;
|
|
639
|
+
*
|
|
640
|
+
* write( sprintf("%O\n", result ) ) ;
|
|
641
|
+
*
|
|
642
|
+
* // ({ /* sizeof() == 3 *\/
|
|
643
|
+
* // "Foo",
|
|
644
|
+
* // 42,
|
|
645
|
+
* // "Fooville"
|
|
646
|
+
* // })
|
|
647
|
+
* }
|
|
648
|
+
*
|
|
649
|
+
*/
|
|
650
|
+
mixed *disassemble_class( mixed instantiated_class );
|
|
651
|
+
|
|
652
|
+
/**
|
|
653
|
+
* debug_message() - 记录调试信息
|
|
654
|
+
*
|
|
655
|
+
* 在驱动程序的 <stderr> 文件描述符上打印给定消息,并将其附加到调试日志中。
|
|
656
|
+
*
|
|
657
|
+
*/
|
|
658
|
+
void debug_message(string msg);
|
|
659
|
+
|
|
660
|
+
/**
|
|
661
|
+
* mixed copy(mixed arg) - 返回数组、缓冲区、类或映射的深拷贝
|
|
662
|
+
*
|
|
663
|
+
* arg 可能是以下之一:
|
|
664
|
+
*
|
|
665
|
+
* - 数组
|
|
666
|
+
* - 缓冲区(如果编译进驱动程序)
|
|
667
|
+
* - 类
|
|
668
|
+
* - 映射
|
|
669
|
+
*
|
|
670
|
+
* 返回深拷贝
|
|
671
|
+
*
|
|
672
|
+
* 当你希望有通过引用传递的数据,但又不想改变原始数据时,这特别有用。
|
|
673
|
+
*
|
|
674
|
+
*/
|
|
675
|
+
mixed copy(mixed arg);
|
|
676
|
+
|
|
677
|
+
/**
|
|
678
|
+
* compressedp() - 返回交互连接是否使用telopt压缩
|
|
679
|
+
*
|
|
680
|
+
* 返回交互连接是否使用telopt压缩
|
|
681
|
+
* #ifdef PACKAGE_COMPRESS
|
|
682
|
+
*
|
|
683
|
+
*/
|
|
684
|
+
int compressedp(object ob);
|
|
685
|
+
|
|
686
|
+
/**
|
|
687
|
+
* classes() - 返回对象使用的类的名称
|
|
688
|
+
*
|
|
689
|
+
* 返回一个字符串数组,包含 <ob> 使用的类的名称。
|
|
690
|
+
*
|
|
691
|
+
* <verbose> 参数是可选的,默认值为 0。
|
|
692
|
+
*
|
|
693
|
+
* 如果 <verbose> 非零,则将返回额外的信息。
|
|
694
|
+
*
|
|
695
|
+
* string *classes_used = classes( ob ) ;
|
|
696
|
+
* // ({ "class_name", }) ;
|
|
697
|
+
*
|
|
698
|
+
* mixed *classes_used = classes( ob, 1 ) ;
|
|
699
|
+
*
|
|
700
|
+
* // ({
|
|
701
|
+
* // ({
|
|
702
|
+
* // "class_name",
|
|
703
|
+
* // ({
|
|
704
|
+
* // "member_name",
|
|
705
|
+
* // "type"
|
|
706
|
+
* // }),
|
|
707
|
+
* // ...
|
|
708
|
+
* // }),
|
|
709
|
+
* // ...
|
|
710
|
+
* // })
|
|
711
|
+
*
|
|
712
|
+
*/
|
|
713
|
+
mixed *classes(object ob, int verbose);
|
|
714
|
+
|
|
715
|
+
/**
|
|
716
|
+
* base_name - 返回不带对象ID (OID) 的基本名称
|
|
717
|
+
*
|
|
718
|
+
* 在第一个版本中,返回 <text> 中的段落,直到但不包括第一个出现的 #。
|
|
719
|
+
*
|
|
720
|
+
* 与第一个版本类似,但首先对 <ob> 执行 file_name。
|
|
721
|
+
*
|
|
722
|
+
* 与第二个版本类似,但对象是 this_object()。
|
|
723
|
+
*
|
|
724
|
+
* string path = base_name( "/std/object#123" ) ; // "/std/object"
|
|
725
|
+
*
|
|
726
|
+
* object ob = new("/std/object) ;
|
|
727
|
+
* string path = base_name( ob ) ; // "/std/object"
|
|
728
|
+
*
|
|
729
|
+
* // 在 /std/object 中
|
|
730
|
+
* string path = base_name() ; // "/std/object"
|
|
731
|
+
*
|
|
732
|
+
*/
|
|
733
|
+
string base_name(string text);
|
|
734
|
+
string base_name(object ob);
|
|
735
|
+
string base_name();
|
|
736
|
+
|
|
737
|
+
/**
|
|
738
|
+
* assemble_class() - 提供一个数组,返回由该数组成员组成的类。
|
|
739
|
+
*
|
|
740
|
+
* 接收一个 <elements> 数组并返回一个实例化的类。
|
|
741
|
+
*
|
|
742
|
+
* mixed *elements = ({ "Foo", 42, "Fooville" }) ;
|
|
743
|
+
* mixed cl = assemble_class( elements ) ;
|
|
744
|
+
*
|
|
745
|
+
* write( sprintf( "%O\n", cl ) ) ;
|
|
746
|
+
*
|
|
747
|
+
* // CLASS( 3 elements
|
|
748
|
+
* // "Foo",
|
|
749
|
+
* // 42,
|
|
750
|
+
* // "Fooville"
|
|
751
|
+
* // )
|
|
752
|
+
*
|
|
753
|
+
*/
|
|
754
|
+
mixed assemble_class( mixed *elements );
|
|
755
|
+
|
|
756
|
+
/**
|
|
757
|
+
* abs() - 返回一个数的绝对值
|
|
758
|
+
*
|
|
759
|
+
* 返回提供的 <number> 的绝对值。
|
|
760
|
+
*
|
|
761
|
+
* int value = abs( 10 ); // 10
|
|
762
|
+
* int value = abs( -10 ); // 10
|
|
763
|
+
* float value = abs( 3.14 ); // 3.140000
|
|
764
|
+
* float value = abs( -3.14 ); // 3.140000
|
|
765
|
+
*
|
|
766
|
+
*/
|
|
767
|
+
mixed abs( int | float number );
|