Changeset 11d21ee in network-game
- Timestamp:
- Jun 9, 2013, 9:30:32 PM (12 years ago)
- Branches:
- master
- Children:
- ff2133a
- Parents:
- 8c74150
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
common/Player.cpp
r8c74150 r11d21ee 17 17 this->timeLastUpdated = 0; 18 18 this->timeAttackStarted = 0; 19 this->isChasing = false; 19 20 this->isAttacking = false; 20 21 … … 24 25 this->attackType = ATTACK_NONE; 25 26 this->damage = 0; 27 this->range = 0; 26 28 this->attackCooldown = 0; 27 29 this->team = 0; // blue team by default … … 42 44 this->timeLastUpdated = p.timeLastUpdated; 43 45 this->timeAttackStarted = p.timeAttackStarted; 46 this->isChasing = p.isChasing; 44 47 this->isAttacking = p.isAttacking; 45 48 … … 49 52 this->attackType = p.attackType; 50 53 this->damage = p.damage; 54 this->range = p.range; 51 55 this->attackCooldown = p.attackCooldown; 52 56 this->team = p.team; … … 65 69 this->timeLastUpdated = 0; 66 70 this->timeAttackStarted = 0; 71 this->isChasing = false; 67 72 this->isAttacking = false; 68 73 … … 72 77 this->attackType = ATTACK_NONE; 73 78 this->damage = 0; 79 this->range = 0; 74 80 this->attackCooldown = 0; 75 81 this->team = 0; // blue team by default … … 100 106 this->attackType = ATTACK_MELEE; 101 107 this->damage = 10; 108 this->range = 30; 102 109 this->attackCooldown = 800; 103 110 break; … … 107 114 this->attackType = ATTACK_RANGED; 108 115 this->damage = 6; 116 this->range = 100; 109 117 this->attackCooldown = 1000; 110 118 break; -
common/Player.h
r8c74150 r11d21ee 59 59 unsigned long long timeLastUpdated; 60 60 unsigned long long timeAttackStarted; 61 bool isChasing; 61 62 bool isAttacking; 62 63 int targetPlayer; … … 67 68 int attackType; 68 69 int damage; 70 int range; 69 71 unsigned long long attackCooldown; 70 72 int team; // 0 is blue, 1 is red -
server/server.cpp
r8c74150 r11d21ee 145 145 timeLastUpdated = curTime; 146 146 147 map<unsigned int, Player>::iterator it; 148 149 // set targets for all chasing players (or make them attack if they're close enough) 150 for (it = mapPlayers.begin(); it != mapPlayers.end(); it++) { 151 Player* p = &it->second; 152 153 if (p->isChasing) { 154 p->target.x = mapPlayers[p->targetPlayer].pos.x; 155 p->target.y = mapPlayers[p->targetPlayer].pos.y; 156 157 if (posDistance(p->pos, p->target.toFloat()) <= p->range) { 158 p->target.x = p->pos.x; 159 p->target.y = p->pos.y; 160 161 p->isChasing = false; 162 p->isAttacking = true; 163 p->timeAttackStarted = getCurrentMillis(); 164 } 165 } 166 } 167 147 168 // move all players 148 169 // maybe put this in a separate method 149 map<unsigned int, Player>::iterator it;150 170 FLOAT_POSITION oldPos; 151 171 bool broadcastMove = false; … … 778 798 779 799 Player* source = &mapPlayers[id]; 780 source->timeAttackStarted = getCurrentMillis();781 800 source->targetPlayer = targetId; 782 source->isAttacking = true; 783 801 source->isChasing = true; 802 803 // this is irrelevant since the client doesn't even listen for START_ATTACK messages 804 // actually, the client should not ignore this and should instead perform the same movement 805 // algorithm on its end (following the target player until in range) that the server does. 806 // Once the attacker is in range, the client should stop movement and wait for messages 807 // from the server 784 808 serverMsg.type = MSG_TYPE_START_ATTACK; 785 809 memcpy(serverMsg.buffer, &id, 4);
Note:
See TracChangeset
for help on using the changeset viewer.