functionlogin(fd, userName) print("Finding UserName: ".. userName) -- 根据名称获取杀人数 local winNum = db:query('SELECT winNum FROM player where userName="'..userName..'"') local winNumStr = cjson.encode(winNum) -- 如果没找到,就新建一行 if winNumStr == '{}'then db:query('insert into player (userName, winNum) values ("'..userName..'", 0)') winNumStr = '[{"winNum":0}]' else-- 找到信息就好 end -- 发送 LoginDone 消息给客户端 SendMsg(fd, "LoginDone", winNumStr) end
更新杀人数
1 2 3 4 5 6 7
functionupdateWinNum(fd, body) local userName = body.userName local winNum = body.winNum print('玩家'..userName..'的杀人数被更新为'..winNum) -- 更新数据库 db:query('Update player set winNum='..winNum..'where userName="'..userName..'"') end
var moved = false; Vector3 MoveDir = new Vector3(Input.GetAxis("Horizontal"), 0, Input.GetAxis("Vertical")).normalized; if (MoveDir.magnitude != 0) { moved = true; rb.MovePosition(rb.position + MoveDir * speed * Time.deltaTime); var Pic = transform.Find("Pic"); } if (moved) StartCoroutine(SendMessageNextFrame());
攻击与受伤
我们为角色设置了冷却时间以避免游戏体验的不佳。死亡大致相同。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
if (other.ATK > ATK && Cool == false) //被攻击且不在无敌时间 { BeingHurt(other.ATK - ATK); //自己扣血 if (HP > 0) //害活着,通知别的自己受伤了让它们的自己也扣血 { var hpChange = new MsgBodyHPChange() { UserId = UserId, HP = HP }; var msgObj = new NetMessage("BeingHurt", hpChange); Sockets.Instance.SendMessage(msgObj.ToJson()); Cool = true; StartCoroutine(ResetCool()); } }