Index: server/server.cpp
===================================================================
--- server/server.cpp	(revision 8dad966b0ae3cefcc8ff6286222bcc9ce0f7c03a)
+++ server/server.cpp	(revision 8c741508ab5c734f9b7b170f6cc64e940a7a101a)
@@ -325,4 +325,5 @@
             if (it->second.isAttacking && it->second.timeAttackStarted+it->second.attackCooldown <= getCurrentMillis()) {
                it->second.isAttacking = false;
+               cout << "Attack animation is complete" << endl;
 
                //send everyone an ATTACK message
@@ -355,8 +356,12 @@
                   mapProjectiles[proj.id] = proj;
 
+                  int x = it->second.pos.x;
+                  int y = it->second.pos.y;
+
                   serverMsg.type = MSG_TYPE_PROJECTILE;
-                  memcpy(serverMsg.buffer, &it->second.pos.x, 4);
-                  memcpy(serverMsg.buffer+4, &it->second.pos.y, 4);
-                  memcpy(serverMsg.buffer+8, &it->second.targetPlayer, 4);
+                  memcpy(serverMsg.buffer, &proj.id, 4);
+                  memcpy(serverMsg.buffer+4, &x, 4);
+                  memcpy(serverMsg.buffer+8, &y, 4);
+                  memcpy(serverMsg.buffer+12, &it->second.targetPlayer, 4);
                }else {
                   cout << "Invalid attack type: " << it->second.attackType << endl;
@@ -389,5 +394,5 @@
 
                // send a PLAYER message after dealing damage
-               Player* target = &mapPlayers[it->second.targetPlayer];
+               Player* target = &mapPlayers[itProj->second.target];
 
                target->health -= itProj->second.damage;
@@ -775,4 +780,5 @@
          source->timeAttackStarted = getCurrentMillis();
          source->targetPlayer = targetId;
+         source->isAttacking = true;
 
          serverMsg.type = MSG_TYPE_START_ATTACK;
