GameDesign 板


LINE

突然想回文赚个p币XD 在这种字串的扫描中 绝对不要丢给server去做字串的扫描 应该要在Client端先判定好这个讯息是要干嘛 然後在封包的起始值给予讯息ID 让server去判断这个讯息是否需要解压 取出其中的内容 或是只是单纯的将这封包在转送给画面中的人 不然serve光是处理这些有的没的封包就浪费一堆频宽跟时间了 最简单最没营养的就是对话封包 只要判断讯息是对话然後取得传送对象之後 将内容原封不动以压缩过的资料传出可以省一点点频宽也省了记忆体mapping的时间 不过每个人的习惯都不同有的人觉得这样讯息事件过於庞大 很不好整理 比较喜欢多table去互相索引找出事件 这点就看个人爽了... ※ 引述《green0924 (hmm...)》之铭言: : 请问一下大家,像一般线上游戏,由server端传资料给client :  ,都是怎麽做字串的分析的呢? :  我现在都是用很笨的做法,逐字去检查以取得指令的前後端, :  再由此取得指令与参数,比如说server端传给client这样的字 : 串.. : [cmd]kill monster 1[/cmd] : 先计算字串长度,再用回圈跑,删除掉[cmd]跟[/cmd],就可 :  以得到 kill monster 1,其中 kill是指令, monster 1 是 :  参数,由此再做动作。 : ex: :   for(i=0;i<sizeof(s);i++){ : if((i+4)>sizeof(s)) break; : if(s[i..(i+4)]=="[cmd]") start=i; : if(s[i..(i+5)]=="[/cmd]") end=i; : } : 感觉这样的方法效率满差的,尤其当资料量大的时候..XD : 不知道有没有其他更好的方法呢? :   : 另外,字串分析时,要是玩家在用聊天功能有出现[cmd]这样 :  的系统字,字串分析就会出问题,所以玩家输入部份,我的 :  方法是限制不可使用系统字,不知道线上游戏都是怎麽做的? --



※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 122.116.118.21
1F:→ darkflier:刚刚没仔细看原来是serve传给client资料XDDD 03/16 19:14
2F:→ darkflier:不过方法都一样啦不要让费时间在分析以知资料 03/16 19:15
3F:→ darkflier:只有发出讯息的那个人需要去分析即可 03/16 19:15
4F:推 green0924:所以大大意思是,若常重覆出现的讯息或资料就存在client 03/16 19:16
5F:→ green0924:端..ex: A使用技能X攻击B,造成10点伤害. 03/16 19:17
6F:→ green0924:资料就只要传 A atk B,10 这样吗? 03/16 19:17
Orz..... 最近在减肥所以没去吃晚餐就回应你一下好了 讯息的传送 理论上会有几种方法 最基本的封包会有 1.message Event ID 2.subID 3.data size 4.data_content 1.代表这讯息的ID 可能是对话可能是攻击可能是移动....else ex: MESSAGE_TALK = 0 MESSAGE_ATTACK = 1 MESSAGE_GAMEOVER = 2 MESSAGE_PLAY = 3 2.subID就不一定会用到 用到的时候大多是快速的再做封包传递的时候使用 例如可能是立即传送给其他玩家或是检查之类的讯息 3.就是这包封包整个的size有多大 看到这里我们可以知道这个封包前面三个资料的大小一定是固定的 所以真正的资料是放在压缩过的封包里面 至於压缩解压缩的过程就不详提看个家做法 所以你现在有问题的部分是死在1 你需要的不是去检查他传过来的字串 是要检查他这个ID是要干什麽的 不过听你的讲法好像你完全不是这样搞Orz..... 像你所提到的 tag 内容 tag/ 这时候你要做的是把你的tag编一个ID 然後传送出去 并把内容做好压缩(或不压也看端看资料流量) 所以你收到的讯息之後就立刻知道这ID是要干嘛的 然後就把资料解开去做你要做的事情 以上 不过每个人用法都不同不过都大同小异啦... 如果你相信大家电脑都很好server超级强壮 也是可以直接用字串去判断现在要干嘛就是啦XDDD 不过这样你在判断那边可能......会写到吐血吧 我个人是偏好多table index 这样在写成是比较好理解也可以画出图让人一目了然 每个ID互队的关系... 最後... 我已经四年没写过网路程试 搞不好这套已经落伍很久了XDDDDD ※ 编辑: darkflier 来自: 122.116.118.21 (03/16 19:30)
7F:→ green0924:讯息ID..这个是指.. ex: 1--使用技能a, 2--使用技能b 03/16 19:20
8F:→ green0924:109--跟npc xx对话 03/16 19:20
9F:→ green0924:类似这样的东西? 03/16 19:20
10F:推 NDark:简单有简单的作法,难有难的作法.也不一定全部都查表. 03/16 19:21
11F:推 green0924:终於了解了,於来是这样子的用法,这样就不用逐字分析了 03/16 19:42
12F:→ green0924:谢谢大大的说明罗~^_____^ (这篇板主应该要M起来的) 03/16 19:43







like.gif 您可能会有兴趣的文章
icon.png[问题/行为] 猫晚上进房间会不会有憋尿问题
icon.pngRe: [闲聊] 选了错误的女孩成为魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一张
icon.png[心得] EMS高领长版毛衣.墨小楼MC1002
icon.png[分享] 丹龙隔热纸GE55+33+22
icon.png[问题] 清洗洗衣机
icon.png[寻物] 窗台下的空间
icon.png[闲聊] 双极の女神1 木魔爵
icon.png[售车] 新竹 1997 march 1297cc 白色 四门
icon.png[讨论] 能从照片感受到摄影者心情吗
icon.png[狂贺] 贺贺贺贺 贺!岛村卯月!总选举NO.1
icon.png[难过] 羡慕白皮肤的女生
icon.png阅读文章
icon.png[黑特]
icon.png[问题] SBK S1安装於安全帽位置
icon.png[分享] 旧woo100绝版开箱!!
icon.pngRe: [无言] 关於小包卫生纸
icon.png[开箱] E5-2683V3 RX480Strix 快睿C1 简单测试
icon.png[心得] 苍の海贼龙 地狱 执行者16PT
icon.png[售车] 1999年Virage iO 1.8EXi
icon.png[心得] 挑战33 LV10 狮子座pt solo
icon.png[闲聊] 手把手教你不被桶之新手主购教学
icon.png[分享] Civic Type R 量产版官方照无预警流出
icon.png[售车] Golf 4 2.0 银色 自排
icon.png[出售] Graco提篮汽座(有底座)2000元诚可议
icon.png[问题] 请问补牙材质掉了还能再补吗?(台中半年内
icon.png[问题] 44th 单曲 生写竟然都给重复的啊啊!
icon.png[心得] 华南红卡/icash 核卡
icon.png[问题] 拔牙矫正这样正常吗
icon.png[赠送] 老莫高业 初业 102年版
icon.png[情报] 三大行动支付 本季掀战火
icon.png[宝宝] 博客来Amos水蜡笔5/1特价五折
icon.pngRe: [心得] 新鲜人一些面试分享
icon.png[心得] 苍の海贼龙 地狱 麒麟25PT
icon.pngRe: [闲聊] (君の名は。雷慎入) 君名二创漫画翻译
icon.pngRe: [闲聊] OGN中场影片:失踪人口局 (英文字幕)
icon.png[问题] 台湾大哥大4G讯号差
icon.png[出售] [全国]全新千寻侘草LED灯, 水草

请输入看板名称,例如:e-shopping站内搜寻

TOP