package main import ( db "WorldTester/db" pb "WorldTester/pb" "bytes" "common/logger" "encoding/binary" "log" "math/rand" "net" "strconv" "time" "github.com/golang/protobuf/proto" ) type CommandItem struct { CommandID int CommandDesc string } type CommandItemArray []*CommandItem func (r CommandItemArray) Len() int { return len(r) } func (r CommandItemArray) Swap(i, j int) { r[i], r[j] = r[j], r[i] } func (r CommandItemArray) Less(i, j int) bool { if r[i].CommandID < r[j].CommandID { return true } return false } func RemoveDuplicates(elements []int) []int { encountered := map[int]bool{} result := []int{} for v := range elements { if encountered[elements[v]] == true { } else { encountered[elements[v]] = true result = append(result, elements[v]) } } return result } type CommandHandler func(conn net.Conn, args []string) type CommandHandlerInfo struct { desc string handler CommandHandler } var ( map_commands = make(map[int]CommandHandlerInfo) m_matchuid uint32 = 0 m_roomid uint32 = 0 m_playerid uint32 = 0 m_seq uint32 = 0 m_clubseq uint32 = 0 crack_str = "1234567890~!@#$%^&*()_+|}{:L?>> send message header, len:%v roomid:%v msgid:%v seq:%v uid:%v", total_len, rid, msgid, seq, uid) var buf []byte if do_trash { r := rand.Intn(1000) if r < 300 { trash := GetTranshBytesByLen(total_len) buf = append(buf, trash...) logger.Info("***** do trash for msgid:%v uid:%v rid:%v", pb.MSGID(msgid), uid, rid) } else { buf = append(bys.Bytes(), tmp...) } } else { buf = append(bys.Bytes(), tmp...) } conn.SetWriteDeadline(time.Now().Add(1 * time.Second)) _, err = conn.Write(buf) if err != nil { logger.Info("uid:%+v rid:%+v msgid:%+v send socket err:%+v", uid, rid, msgid, err) } } func SendGetClubMemberSnapshotList(player *PlayerInfo, ClubId int32) { log.Println("SendGetClubMemberSnapshotList") var req pb.RequestClubMemberSnapshotList req.Param = new(pb.ClubMemberSnapshotListParams) req.Param.ClubId = ClubId req.Param.ClubUid = int32(player.uid) player.seq++ SendMessage(player.conn, player.seq, player.uid, player.rid, pb.MSGID_MsgID_ClubMemberSnapshotList_Request, &req) } func SendModifyClubMember(player *PlayerInfo, ClubId int32, targetid int32) { log.Println("SendModifyClubMember") var req pb.RequestModifyClubMember req.Param = new(pb.ModifyClubMemberParams) req.Param.ClubId = ClubId req.Param.ClubUid = int32(player.uid) req.Param.ActionType = 0 req.Param.TargetId = targetid player.seq++ SendMessage(player.conn, player.seq, player.uid, player.rid, pb.MSGID_MsgID_ModifyClubMember_Request, &req) } func SendGrantClubFund(player *PlayerInfo, ClubId int32, targetid int32) { log.Println("SendGrantClubFund") var req pb.RequestGrantClubFund req.Param = new(pb.GrantClubFundParams) req.Param.ClubId = ClubId req.Param.ClubUid = int32(player.uid) req.Param.Amount = 100 req.Param.TargetId = targetid player.seq++ SendMessage(player.conn, player.seq, player.uid, player.rid, pb.MSGID_MsgID_GrantClubFund_Request, &req) }