Make hitting players make a visual damage flash to the player texture and the screen of the local player
parent
ae2b7f9523
commit
c357985135
|
@ -2274,6 +2274,13 @@ public:
|
||||||
{
|
{
|
||||||
pos_translator.translate(dtime);
|
pos_translator.translate(dtime);
|
||||||
updateNodePos();
|
updateNodePos();
|
||||||
|
|
||||||
|
if(m_damage_visual_timer > 0){
|
||||||
|
m_damage_visual_timer -= dtime;
|
||||||
|
if(m_damage_visual_timer <= 0){
|
||||||
|
updateTextures("");
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void processMessage(const std::string &data)
|
void processMessage(const std::string &data)
|
||||||
|
@ -2293,6 +2300,17 @@ public:
|
||||||
|
|
||||||
updateNodePos();
|
updateNodePos();
|
||||||
}
|
}
|
||||||
|
else if(cmd == 1) // punched
|
||||||
|
{
|
||||||
|
// damage
|
||||||
|
s16 damage = readS16(is);
|
||||||
|
|
||||||
|
if(m_is_local_player)
|
||||||
|
m_env->damageLocalPlayer(damage, false);
|
||||||
|
|
||||||
|
m_damage_visual_timer = 0.5;
|
||||||
|
updateTextures("^[brighten");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void updateTextures(const std::string &mod)
|
void updateTextures(const std::string &mod)
|
||||||
|
@ -2318,12 +2336,6 @@ public:
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
bool directReportPunch(const std::string &toolname, v3f dir)
|
|
||||||
{
|
|
||||||
updateTextures("^[brighten");
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
};
|
};
|
||||||
|
|
||||||
// Prototype
|
// Prototype
|
||||||
|
|
|
@ -151,10 +151,19 @@ void ServerRemotePlayer::punch(ServerActiveObject *puncher,
|
||||||
HittingProperties hitprop = getHittingProperties(&mp, &tp,
|
HittingProperties hitprop = getHittingProperties(&mp, &tp,
|
||||||
time_from_last_punch);
|
time_from_last_punch);
|
||||||
|
|
||||||
infostream<<"1. getHP()="<<getHP()<<std::endl;
|
|
||||||
setHP(getHP() - hitprop.hp);
|
setHP(getHP() - hitprop.hp);
|
||||||
infostream<<"2. getHP()="<<getHP()<<std::endl;
|
|
||||||
puncher->damageWieldedItem(hitprop.wear);
|
puncher->damageWieldedItem(hitprop.wear);
|
||||||
|
|
||||||
|
{
|
||||||
|
std::ostringstream os(std::ios::binary);
|
||||||
|
// command (1 = punched)
|
||||||
|
writeU8(os, 1);
|
||||||
|
// damage
|
||||||
|
writeS16(os, hitprop.hp);
|
||||||
|
// create message and add to list
|
||||||
|
ActiveObjectMessage aom(getId(), false, os.str());
|
||||||
|
m_messages_out.push_back(aom);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void ServerRemotePlayer::rightClick(ServerActiveObject *clicker)
|
void ServerRemotePlayer::rightClick(ServerActiveObject *clicker)
|
||||||
|
|
Loading…
Reference in New Issue