bool Dice::rotate(DWORD id) { if (id==tempid1) { value1 = randBetween(1,6); Cmd::stDiceNumMiniGame send; send.tempid = id; send.num = value1; sendCmdToAll(&send,sizeof(send)); sendAllInfo("%s 掷出 %u 点",name1,value1); } if (id==tempid2) { value2 = randBetween(1,6); Cmd::stDiceNumMiniGame send; send.tempid = id; send.num = value2; sendCmdToAll(&send,sizeof(send)); sendAllInfo("%s 掷出 %u 点",name2,value2); } if (value1 && value2) judge(); return true; }
bool SessionChannel::add(UserSession *pUser) { if (!pUser) return false; if (!has(pUser->tempid)) { userList.push_back(pUser->tempid); Cmd::stJoin_ChannelUserCmd send; send.dwChannelID=tempid; strncpy(send.name,pUser->name,MAX_NAMESIZE); sendCmdToAll(&send,sizeof(send)); UserSession * user = 0; for(std::list<DWORD>::iterator it=userList.begin(); it!=userList.end(); it++) { user = UserSessionManager::getInstance()->getUserByTempID(*it); if (user) { strncpy(send.name,user->name,MAX_NAMESIZE); pUser->sendCmdToMe(&send,sizeof(send)); } } return true; } return false; }
bool Dice::sendAllInfo(const char *pattern,...) { char buf[MAX_CHATINFO]; getMessage(buf,MAX_CHATINFO,pattern); Cmd::stChannelChatUserCmd send; zRTime ctv; send.dwChatTime = ctv.sec(); send.dwType=Cmd::CHAT_TYPE_MINIGAME; strncpy((char *)send.pstrChat,buf,MAX_CHATINFO-1); strncpy(send.pstrName,"系统",MAX_NAMESIZE-1); return sendCmdToAll(&send,sizeof(send)); }
bool SessionChannel::remove(UserSession *pUser) { if (!pUser) return false; if (has(pUser->tempid)) { userList.remove(pUser->tempid); Cmd::stLeave_ChannelUserCmd send; send.dwChannelID=tempid; strncpy(send.name,pUser->name,MAX_NAMESIZE); sendCmdToAll(&send,sizeof(send)); } if (userList.size()<1 || 0==strncmp(name,pUser->name,MAX_NAMESIZE)) return false; else return true; }