Exemplo n.º 1
0
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;
}
Exemplo n.º 2
0
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;
}
Exemplo n.º 3
0
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));
}
Exemplo n.º 4
0
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;
}