搜索
查看: 8294|回复: 19

求助format语法

[复制链接]
发表于 2011-2-21 20:05:54 | 显示全部楼层 |阅读模式 来自 中国–甘肃–天水
本帖最后由 我是新手 于 2011-2-21 20:07 编辑

如题。如果玩家具有以下权限,那么我想用format显示一条信息,应该怎么写?
if (get_user_flags(players) & ADMIN_LEVEL_G)
发表于 2011-2-21 21:06:34 | 显示全部楼层 来自 中国–广东–东莞
http://www.amxmodx.org/funcwiki.php?go=func&id=49
  1. public MyFunction( const player )
  2. {
  3.         //your code
  4.        
  5.         #define CHAR_LEN 128
  6.         static szMsg[ CHAR_LEN ];
  7.         static iLen;
  8.        
  9.         if ( get_user_flags( player ) & ADMIN_LEVEL_G )
  10.         {
  11.                 iLen = format( szMsg, charsmax( szMsg ), "Hi guys ! ;)" ); //test it and you can find something !
  12.                 //Test:       
  13.                 console_print( 0, "%i", iLen );
  14.                 client_print( 0, print_chat, "%s", szMsg );
  15.         }
  16. }
复制代码
回复

使用道具 举报

 楼主| 发表于 2011-2-21 22:15:31 | 显示全部楼层 来自 中国–甘肃–天水
先谢谢这位达人,去试试!
回复

使用道具 举报

 楼主| 发表于 2011-2-21 22:44:17 | 显示全部楼层 来自 中国–甘肃–天水
不行,弄不来。你给的地址也打不开。这样,我现在想在新一局开始的时候判断玩家是否具有ADMIN_LEVEL_G权限,然后用format给他自己发送一条彩色的信息显示应该如何做到
  1. public new_round()
  2. {
  3.         new nums,players[32],Message[128];
  4.         get_players(players,nums)
  5.         for(new i=0;i<nums;i++)
  6.         {
  7.                 if (get_user_flags(players[i]) & ADMIN_LEVEL_G)
  8.                 {
  9.                  format(Message, 127, "^x04【提示】^x03你已具有^x01【某某权限】。", );
  10.                                         client_color(0, players[i], Message);
  11.                        
  12.                 }
复制代码
这样写可以吗?请指教1
回复

使用道具 举报

发表于 2011-2-21 23:18:11 | 显示全部楼层 来自 中国–四川–遂宁
4# 我是新手
  1. public new_round()
  2. {
  3.         new Message[128];
  4.         for(new i=0; i<get_maxplayers(); i++)
  5.         {
  6.                 if (get_user_flags(i) & ADMIN_LEVEL_G)
  7.                 {
  8.                         format(Message, 127, "^x04【提示】^x03你已具有^x01【某某权限】。");
  9.                         client_color(i, i, Message);
  10.                 }
  11.         }
  12. }

  13. public client_color(playerid, colorid, msg[])   
  14. {
  15.         message_begin(playerid?MSG_ONE:MSG_ALL,get_user_msgid("SayText"),_,playerid);
  16.         write_byte(colorid);
  17.         write_string(msg);
  18.         message_end();
  19. }
复制代码
回复

使用道具 举报

 楼主| 发表于 2011-2-21 23:20:19 | 显示全部楼层 来自 中国–甘肃–天水
本帖最后由 我是新手 于 2011-2-21 23:24 编辑

太感谢了!真不知怎么感谢你!我去试试。
回复

使用道具 举报

 楼主| 发表于 2011-2-22 00:03:20 | 显示全部楼层 来自 中国–甘肃–天水
回楼上达人,可以是可以了。但为什么同时显示2种?

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注个册吧

×
回复

使用道具 举报

发表于 2011-2-22 00:44:26 | 显示全部楼层 来自 中国–四川–遂宁
7# 我是新手


从 1 开始循环吧。
for(new i = 0 改成 = 1
回复

使用道具 举报

 楼主| 发表于 2011-2-22 00:55:13 | 显示全部楼层 来自 中国–甘肃–天水
本帖最后由 我是新手 于 2011-2-22 00:59 编辑

搞定,改循环后显示正常了!
非常感谢龟仙人的帮助!:handshake
回复

使用道具 举报

发表于 2011-2-22 09:22:44 | 显示全部楼层 来自 中国–广东–东莞
本帖最后由 kk阿朗 于 2011-2-22 09:23 编辑
  1. #include <amxmodx>

  2. public new_round()
  3. {
  4.         new Message[ 128 ]
  5.         for( new i = 1; i <= get_maxplayers(); i++ )
  6.         {
  7.                 if ( is_user_connected( i ) && ( get_user_flags(i) & ADMIN_LEVEL_G ) )
  8.                 {
  9.                         format( Message, 127, "^x04【提示】^x03你已具有^x01【某某权限】。" )
  10.                         client_color( i, Message )
  11.                 }
  12.         }
  13. }

  14. public client_color(colorid, msg[])
  15. {
  16.         static iSayText;
  17.        
  18.         if ( iSayText || ( iSayTest == get_user_msgid( "SayText" ) ) )
  19.         {
  20.                 message_begin( MSG_BROADCAST, iSayText )
  21.                 {
  22.                         write_byte( colorid )
  23.                         write_string( msg )
  24.                 }
  25.                 message_end()
  26.         }
  27. }
复制代码
再弄一下!感觉会好一点!
回复

使用道具 举报

游客
回复
您需要登录后才可以回帖 登录 | 注个册吧

快速回复 返回顶部 返回列表