搜索
查看: 7387|回复: 25

[AMXX 带源码] [公告]SrvSW已支持发送中文信息至服务器

[复制链接]
发表于 2007-6-5 00:21:04 | 显示全部楼层 |阅读模式 来自 广东佛山
  感谢 caozhu 的建议,经过今天晚上的测试,软件已经可以向服务器发送中文信息了。

  另外,如果你的服务器安装了AMX插件,还可以选择在屏幕中间或左下角发送带颜色(红、绿、蓝)的中文信息,预计下一个版本增加该功能!

  再次感谢 caozhu 的建议,同样,如果您有什么好的意见或建议,可以在此或者去我们论坛发表,地址是:http://www.srvsw.cn/bbs,我们将根据实际情况修改或增加,软件发布后,在“关于”对话框的“致谢”栏列出您的姓名,SrvSW将永远记住每一个给它提出实质性改进的人,谢谢大家!
发表于 2007-6-5 01:57:00 | 显示全部楼层 来自 福建漳州

回复: [公告]SrvSW已支持发送中文信息至服务器

其实我前段时间就想做一个的,后来忙其他的去了,看你写了,我就懒得写了,呵呵。刚使用了一下,我发现如下问题:网上搜索的时候,如果正在搜索,则如果对窗口进行操作,每次程序都失去响应。另外,需要加上停止搜索功能,以及过滤功能,就像CS1.6里的过滤一样,但要加上一个,服务器名过滤,以便于快速查找到所要的服务器。

而对于最下方的一些提示信息,我觉得根本没什么用,都是重复的提示信息,但却占用了很大的空间(“查询状态成功,服务器类型为 CS1.5”等)。当服务器类型为DOD时,却显示为“查询状态成功,服务器类型为 CS1.6”。

输入OP密码、踢人那个框架,它是怎么出现的?偶尔能看到一下,基本上想找它都找不到。

暂时发现这么多,也有可能有的问题只是我这边会出现吧。
回复

使用道具 举报

发表于 2007-6-5 02:10:56 | 显示全部楼层 来自 福建漳州

回复: [公告]SrvSW已支持发送中文信息至服务器

再说一下,对中文的处理,应该说是很容易的,把从服务器端得到的字符串信息都当作UTF-8,将其转化为Unicode,而把要发送到服务器端的字符串信息都从Unicode转换为UTF-8就行了。因为在服务器中,都应该是使用UTF-8编码的(当信息都是标准ANSI编码时,用UTF-8的编码得到的内容是一样的,所以也可以当作是UTF-8编码)。所以,你要编两个函数,UTF-8转Unicode,以及Unicode转UTF-8。这两个函数的实现都是很容易的,可能VC本身带有此类函数。我是使用Delphi的,Delphi本身带有UTF-8和Unicode之间的转换函数,但自带的会有如下问题,如果从服务器得到的字符串信息(UTF-8编码),将其转换为Unicode时,如果这些信息编码不完全遵循UTF-8的编码,则会出现丢失很多字符的情况,所以我自己编了个UTF-8转Unicode的函数。而对于Unicode转UTF-8,则不存在此问题。
回复

使用道具 举报

 楼主| 发表于 2007-6-5 08:26:22 | 显示全部楼层 来自 广东佛山

回复: [公告]SrvSW已支持发送中文信息至服务器

  谢谢您的建议,下次做调整!

  目前所有的查询都是采用非阻塞模式,没有采用线程,因此在查询时,如果服务器返回时间太长,会出现界面很卡。不过,不知道你们注意到了没有,现在2.7.6.1这个版本在启动时和退出时都有一个单独的线程,用来处理通讯,其实它就是改进的查询函数,采用线程和事件驱动模型,相对以前的select模型有较大的改进,目前正在逐步改进。

  对于查询时采用到其它的游戏,仍然显示类型为CS1.6,是因为协议本身支持,但现在因为时间的原因还没有写这些游戏类型的处理代码。

  输入OP密码是在下面右边框里面输入,可以点击“测试”按钮进行测试,踢人是在输入OP密码之后,在玩家信息栏双击其中一个玩家即可踢了他。

  Valve 在传输服务器信息时,采用了 UTF-8 编码,对应于VC的 MFC 库处理函数就是WideCharToMultiByte,处理起来是很简单,关键还是要知道它的协议。
回复

使用道具 举报

发表于 2007-6-5 13:10:51 | 显示全部楼层 来自 福建漳州

回复: [公告]SrvSW已支持发送中文信息至服务器

其实这个软件,数据量交换不是很大,采用事件驱动就很好了。我现在使用Delphi编写UDP通信时,用的是自己编写的组件(类似于控件),这个UDP组件是自己用 socket api 来实现的。事件驱动关键是 WSAAsyncSelect 这个socket api 的使用。

输入OP密码的框架,我截图给你看,它只在重新 PAINT 时能看得到,而且,就算能看得到,也难以将焦点定位到上面(用鼠标是不行的,用TAB键倒是可以)。

本帖子中包含更多资源

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

×
回复

使用道具 举报

 楼主| 发表于 2007-6-5 15:17:19 | 显示全部楼层 来自 广东佛山

回复: [公告]SrvSW已支持发送中文信息至服务器

  哦,我明白了,你用的是17“以上的显示器,因为我家里和办公室的测试环境都是17的显示器,采用分辨率都是1024*768,只有一台(老板用的)是19的,所以会出现你抓图所出现的情况,因为我设置CListBox控件的位置时采用了GetClientRect函数,得出的值是不正确的位置。

  原本设计这个CListBox控件是用来诊断查询情况,以后会取消或改其它方式实现。迟点改掉这个BUG。谢谢您!
回复

使用道具 举报

发表于 2007-6-5 19:53:59 | 显示全部楼层 来自 湖北武汉

回复: [公告]SrvSW已支持发送中文信息至服务器

好东西啊
期待更加完美
回复

使用道具 举报

发表于 2007-6-11 18:34:16 | 显示全部楼层 来自 江苏南京

回复: [公告]SrvSW已支持发送中文信息至服务器

很谢谢小青,真的是以人为本啊,相信SrvSW将越做越好,越来越实用。
回复

使用道具 举报

发表于 2007-6-11 18:41:43 | 显示全部楼层 来自 江苏南京

回复: [公告]SrvSW已支持发送中文信息至服务器

哈哈,因为手上两个号,那就都来支持你!
回复

使用道具 举报

发表于 2007-6-22 07:41:33 | 显示全部楼层 来自 浙江嘉兴

回复: [公告]SrvSW已支持发送中文信息至服务器

SrvSW已支持发送中文信息至服务器     这个软件我都找不到哪里可以发送中文的啊
正确的OP密码输入也通过验证了, 右下角的输入命令这个还是灰色的!晕 就一个字,还有 右键菜单好像也是不支持的!
Hlsw这方面好像要方便点!
你的支持发送中文信息至服务器如果行,那真的很好,最好接收服务器的聊天信息的时候也能收到中文信息,谢谢!
回复

使用道具 举报

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

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