上回说到Server少爷和Client小姐好不容易踏入婚姻的殿堂,洞房花烛之夜,Client小姐却要Server少爷签下婚后协议。Server一脸不快:“都一家人还签什么协议啊?”Client道:“你们男人啊,就是花心,不看紧点,不知道跑那野去了。为了以后我们能琴瑟相合,还是签了协议的好。”Server呵呵一笑:“好老婆,那就签吧,你开心的时候,我就陪你开心;你不开心的时候,我会哄你开心...”一番话哄得Client心花怒放,看着Server写完“奴隶宣言”,拿到手里仔细查看,却见Server写到:

       

  public enum WifeCmd
  {
         哄老婆开心,
         上交工资,
         陪老婆逛街,
         带老婆去兜风
         ......
  }

 

 Client看到这里,笑颜如花,连enum都用上了,真是个好夫君,这美满的婚姻也真是来之不易。

 

         -----------------------------------------------分割线,以上Server和Client的爱情剧完美剧终---------------------------------

          前五章,我们用讲故事的方式把Server端和Client的通讯机制讲解了下。此后我们要在此基础上开始我们的Web传奇的开发之路,让我们感谢Server和Client的精彩演出。

          每一个玩过传奇的人都记得那古朴的登录画面,当我们输入账号和密码,点击登录,随着铿锵的击鼓声,一扇石门徐徐而开,一个游戏的世界在向我们召唤,让我们赶快开启我们的传奇之旅吧!!

          游戏的开始,我们需要注册账号。这账号数据放在那里呢?放客户端,显然不可能,用户数据太不安全了。只好放服务端了,再说用户账号数据可是很重要,那些网游公司为此争得头破血流。经典的案例那是网易从九城夺取“魔兽世界”的代理权,期间坎坎坷坷,勾心斗角,俨然一部商业大片。还是“魔兽世界”的开发公司暴雪大神有远见,所有的用户数据都是属于暴雪的,这500W用户账号是属于暴雪公司的,数据库里的这些数据早就在停服前被暴雪的技术人员备份走了。

          所以说我们做Web传奇也要有远见,这个账号信息呢,还是归我williams所有吧,我把它们都储存在Sql Server2005数据库里呢。

          一张简单的账号表如下:

             

账号信息表 Users

字段名称

数据类型

含义

约束

UserID

int

 

 

UEmail

Nvarchar(32)

 

 

Upwd

Nvarchar(16)

 

 

UaddTime

DateTime

 

 

Ubalance

int

用户账号金额,用来消费

 

UloginTime

DateTime

 

 

UloginIP

Nvarchar(32)

 

 

Ustate

int

账号状态

 

          

           看到这里,你们会说这咋个和做网站的差不多呀?反正也不用忽悠大家,WebGame上的注册和网站注册有啥区别呢?本质上没什么区别,不就是把用户输入数据写到数据库里。

           用asp.net做过网站的都知道,做一个注册页面很简单,双击按钮写事件,调用BLL层的方法,执行insert语句就OK。但是在silverlight里,客户端不能直接和数据库打交道,怎么办呢?

           如果你看了前五章,你很容易想到客户端可以把用户数据放到byte[]数组里,封装到一个Message里发给服务端就可以了。服务端收到这个Message,判定后再调用BLL层的方法执行Insert语句也就可以了。和asp.net网站不同的是,在silverlight WebGame里数据是从Silverlight客户端发送到服务端,而在网站里数据是通过表单提交到Web服务端,asp.nett网站表单提交数据的过程作一个asp.net程序员可以不关心是怎么传递的,但是对于silverlight客户端来说,由于选用了原生态的Socket的通讯方式,我们得了解清楚些。

           看到这里,你可能豁然开朗,前五章讲的那肉麻的爱情故事就是为了方便的传递数据啊。哎,谁让我们这些asp.net程序员比较少接触到Socket通讯方式呢,我也是花了一周才看个明白点。

          罗嗦了这么多,让我们开始设计界面吧,我这个人很喜欢怀旧的,也没有美术功底,就把传奇里的界面搬来了,我在这里特此声明:本教程只供学习研究,所有素材来自网络,请勿跨省,勿发律师函。

        Silverlight MMORPG WebGame游戏设计(六)-----Server和Client的婚后协议[附上完整15M游戏DEMO]

        注册界面:

         Silverlight MMORPG WebGame游戏设计(六)-----Server和Client的婚后协议[附上完整15M游戏DEMO]

 

我们先来完成注册界面的功能,玩一个游戏,如果不注册个账号,是没办法登陆进去的,玩过游戏的都知道。

 

 void btnReg_Click(object sender, RoutedEventArgs e)
   {
            Users user 
= new Users { UserName = this.txtUserName.Text, Upwd =GameCMDFormat.HashFormat(this.txtPwd.Password), Uemail = this.txtUserName.Text, Ustate = 1 };
            MessagePool.AddSendMessage(GameCMDFormat.CreateNewUser(user));
//把发送的消息放到消息队列里
     }

相关文章:

  • 2021-12-04
  • 2021-11-18
  • 2021-07-06
  • 2021-10-21
  • 2022-12-23
  • 2021-11-29
  • 2022-12-23
猜你喜欢
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-05-19
  • 2022-12-23
相关资源
相似解决方案