首页 > 其他 > 详细

sscanf2插件的使用教程【施工中】

时间:2020-05-09 13:04:28      阅读:45      评论:0      收藏:0      [点我收藏+]

这个指南不是我写的,而是一位国外的开发者,我只是将它翻译并搬运到这里

原文地址:https://forum.sa-mp.com/showthread.php?t=570927


免责声明

此插件由*****创建。由于他的主题被删除,我决定重新上传这个插件,因为很多服务器所有者都依赖它。

我还想澄清一下,我不相信他的任何工作,我也不打算复制它。

NPC模式

要在NPC模式下使用sscanf,请下载以下文件:

http://dl.dropbox.com/u/21683085/npcdll.rar

并将其解压缩到根服务器目录,即"amxscanf.dll"与"samp npc.exe"位于同一目录中。然后正常使用。唯一的细微差别是“u”、“r”和“q”不知道用户是否是机器人,所以假设他们都是玩家-相应地使用。

下载

项目被放置在GitHub上:https://github.com/maddinat0r/sscanf/releases

使用方法

在源文件中包含如下头文件:

#include <sscanf2> 

如果服务端是Windows版的,在server.cfg中添加如下代码:

plugins sscanf 

如果服务端是Linux版的,在server.cfg中添加如下代码:

 

plugins sscanf.so 

这里有一个基本代码样例:

if (sscanf(params, "ui", giveplayerid, amount))
{
    return SendClientMessage(playerid, 0xFF0000AA, "使用方法: /givecash <玩家ID/玩家昵称> <现金数量>");
    //当params字符串为空或者sccanf失败时会执行这个语句块中的内容    
}

他还有一个备用的函数名(unformat),目的是避免与C语言标准中的sscanf函数混淆:

if (unformat(params, "ui", giveplayerid, amount))
{
    return SendClientMessage(playerid, 0xFF0000AA, "使用方法: /givecash <玩家ID/玩家昵称> <现金数量>");
    //当params字符串为空或者sccanf失败时会执行这个语句块中的内容    
}

标志字符

可用的标志字符如下:

  • 基本标志字符
  标志字符        含义                距离
    i, d        整形                 1, 42, -10
    c           字符型               a, o, c
    l           布尔类型             true, false
    b           二进制               01001, 0b1100
    h, x        十六进制             1A, 0x23
    o           八进制               045 12
    n           通用数字             42, 0b010, 0xAC, 045
    f           浮点型               0.7, -99.5
    g           IEEE浮点型           0.7, -99.5, INFINITY, -INFINITY, NAN, NAN_E
    u           NPC或玩家的名字或id   FranciumBot,Tuise, 0
    q           NPC名字或id          MengHaiTang, 27
    r           玩家名字或id         JianHan, 42
  • 字符串标志字符

和以前一样,说明符“s”代表字符串,但现在它们更高级了。与以前一样,他们也能够从源字符串中获取一段字符串,因此如果这样做:

sscanf("hello 87", "si", str, val);

将会等同于如下代码:

str = "hello"
val = 27

尝试下面的代码:

sscanf("hello world 87", "si", str, val);

这样sscanf将会失败,因为"world"是一个字符串而非一个整形数字,所以不能被当作整形处理(但是反过来其实是可以的),但是尝试下面这个代码:

sscanf("hello world", "s", str);

将会等同于如下代码:

str = "hello world"

 

sscanf2插件的使用教程【施工中】

原文:https://www.cnblogs.com/FranciumKIKI/p/12806813.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!