X-Git-Url: https://git.jsancho.org/?a=blobdiff_plain;f=Source%2FGameTick.cpp;h=dbd6f0e3977541aba323b8ae2e6668b188aecd7f;hb=a99778b1da1ea16a6a87a00461cd2c4e36ab13a3;hp=ed1aed93a4c4ed8ff8a0652efbf8234c5120a20d;hpb=29b23632dbddbb74ca9c74e3229c5e4729fe3622;p=lugaru.git diff --git a/Source/GameTick.cpp b/Source/GameTick.cpp index ed1aed9..dbd6f0e 100644 --- a/Source/GameTick.cpp +++ b/Source/GameTick.cpp @@ -2193,7 +2193,23 @@ void doAttacks() } if (Person::players[k]->animTarget != rabbitrunninganim && Person::players[k]->animTarget != wolfrunninganim) { if (!Person::players[k]->isPlayerControlled()) { - Person::players[k]->victim = Person::players[0]; + if (Person::players[k]->isPlayerFriend()) { + bool found = false; + for (unsigned k2 = 1; k2 < Person::players.size(); k2++) { + if (k != k2 && + !Person::players[k2]->dead && + Person::players[k2]->aitype == attacktypecutoff) { + Person::players[k]->victim = Person::players[k2]; + found = true; + break; + } + } + if (!found) { + Person::players[k]->attackkeydown = 0; + } + } else { + Person::players[k]->victim = Person::players[0]; + } } //attack key pressed if (Person::players[k]->attackkeydown) { @@ -4487,6 +4503,7 @@ void Game::TickOnceAfter() Person::players[i]->aitype == gethelptype || Person::players[i]->aitype == searchtype) && !Person::players[i]->dead && + !Person::players[i]->isPlayerFriend() && (Person::players[i]->animTarget != sneakattackedanim && Person::players[i]->animTarget != knifesneakattackedanim && Person::players[i]->animTarget != swordsneakattackedanim)) { @@ -4637,7 +4654,7 @@ void Game::TickOnceAfter() } alldead = true; for (unsigned i = 1; i < Person::players.size(); i++) { - if (!Person::players[i]->dead && Person::players[i]->howactive < typedead1) { + if (!Person::players[i]->dead && Person::players[i]->howactive < typedead1 && !Person::players[i]->isPlayerFriend()) { alldead = false; break; }