Changeset ffadc8e in network-game


Ignore:
Timestamp:
Dec 21, 2013, 7:15:00 PM (11 years ago)
Author:
dportnoy <dmp1488@…>
Branches:
master
Children:
b8abc90
Parents:
686589c
Message:

Server handles movement for players who have attack targets in individual games

File:
1 edited

Legend:

Unmodified
Added
Removed
  • server/server.cpp

    r686589c rffadc8e  
    159159         for (it = mapPlayers.begin(); it != mapPlayers.end(); it++)
    160160         {
     161            Player* p = it->second;
     162
    161163            // check if it's time to revive dead players
    162             if (it->second->isDead)
     164            if (p->isDead)
    163165            {
    164                if (getCurrentMillis() - it->second->timeDied >= 10000)
    165                {
    166                   it->second->isDead = false;
     166               if (getCurrentMillis() - p->timeDied >= 10000)
     167               {
     168                  p->isDead = false;
    167169
    168170                  POSITION spawnPos;
    169171 
    170                   switch (it->second->team)
     172                  switch (p->team)
    171173                  {
    172174                  case 0:// blue team
     
    186188                  spawnPos.y = spawnPos.y * 25 + 12;
    187189
    188                   it->second->pos = spawnPos.toFloat();
    189                   it->second->target = spawnPos;
    190                   it->second->health = it->second->maxHealth;
     190                  p->pos = spawnPos.toFloat();
     191                  p->target = spawnPos;
     192                  p->health = p->maxHealth;
    191193
    192194                  serverMsg.type = MSG_TYPE_PLAYER;
    193                   it->second->serialize(serverMsg.buffer);
     195                  p->serialize(serverMsg.buffer);
    194196
    195197                  map<unsigned int, Player*>::iterator it2;
    196198                  for (it2 = mapPlayers.begin(); it2 != mapPlayers.end(); it2++)
     199                  {
     200                     if ( msgProcessor.sendMessage(&serverMsg, sock, &(p->addr), &outputLog) < 0 )
     201                        error("sendMessage");
     202                  }
     203               }
     204
     205               continue;
     206            }
     207
     208            if (p->currentGame != NULL) {
     209               map<unsigned int, Player*> playersInGame = p->currentGame->getPlayers();
     210               if (p->updateTarget(playersInGame))
     211               {
     212                  serverMsg.type = MSG_TYPE_PLAYER;
     213                  p->serialize(serverMsg.buffer);
     214
     215                  map<unsigned int, Player*>::iterator it2;
     216                  for (it2 = playersInGame.begin(); it2 != playersInGame.end(); it2++)
    197217                  {
    198218                     if ( msgProcessor.sendMessage(&serverMsg, sock, &(it2->second->addr), &outputLog) < 0 )
    199219                        error("sendMessage");
    200220                  }
    201                }
    202 
    203                continue;
    204             }
    205 
    206             if (it->second->updateTarget(mapPlayers))
    207             {
    208                serverMsg.type = MSG_TYPE_PLAYER;
    209                it->second->serialize(serverMsg.buffer);
    210 
    211                map<unsigned int, Player*>::iterator it2;
    212                for (it2 = mapPlayers.begin(); it2 != mapPlayers.end(); it2++)
    213                {
    214                   if ( msgProcessor.sendMessage(&serverMsg, sock, &(it2->second->addr), &outputLog) < 0 )
    215                      error("sendMessage");
    216221               }
    217222            }
     
    936941         memcpy(&targetId, clientMsg.buffer+4, 4);
    937942
     943         // need to make sure the target is in the sender's game
     944
    938945         Player* source = mapPlayers[id];
    939946         source->targetPlayer = targetId;
Note: See TracChangeset for help on using the changeset viewer.