zerox4365x
New Member
Well the theme is like this...
Resources:
1st Topic: When a player is killed by another player in ZONE_PVP, is teleported to the temple, but can not move, it is as if the game was completely bugged or closed the connection with the player, but the player is still there in the position seeing everything stuck.
2nd Topic: When the player is killed by a monster in ZONE_PVP, literally dies, the player loses exp, skills, appears the message "You area dead", and you must reconnect to the server, as a normal death.
I found this by searching the sources:
I don't know if that has anything related to it.
Resources:
- TFS Version: 1.x+
- Server Type: Canary (Click Here!)
- Client Version: 12.x+
1st Topic: When a player is killed by another player in ZONE_PVP, is teleported to the temple, but can not move, it is as if the game was completely bugged or closed the connection with the player, but the player is still there in the position seeing everything stuck.
2nd Topic: When the player is killed by a monster in ZONE_PVP, literally dies, the player loses exp, skills, appears the message "You area dead", and you must reconnect to the server, as a normal death.
I found this by searching the sources:
C++:
bool Player::onKilledCreature(Creature* target, bool lastHit/* = true*/)
{
bool unjustified = false;
if (hasFlag(PlayerFlag_NotGenerateLoot)) {
target->setDropLoot(false);
}
Creature::onKilledCreature(target, lastHit);
if (Player* targetPlayer = target->getPlayer()) {
if (targetPlayer && targetPlayer->getZone() == ZONE_PVP) {
targetPlayer->setDropLoot(false);
targetPlayer->setSkillLoss(false);
} else if (!hasFlag(PlayerFlag_NotGainInFight) && !isPartner(targetPlayer)) {
if (!Combat::isInPvpZone(this, targetPlayer) && hasAttacked(targetPlayer) && !targetPlayer->hasAttacked(this) && !isGuildMate(targetPlayer) && targetPlayer != this) {
if (targetPlayer->hasKilled(this)) {
for (auto& kill : targetPlayer->unjustifiedKills) {
if (kill.target == getGUID() && kill.unavenged) {
kill.unavenged = false;
auto it = attackedSet.find(targetPlayer->guid);
attackedSet.erase(it);
break;
}
}
} else if (targetPlayer->getSkull() == SKULL_NONE && !isInWar(targetPlayer)) {
unjustified = true;
addUnjustifiedDead(targetPlayer);
}
if (lastHit && hasCondition(CONDITION_INFIGHT)) {
pzLocked = true;
Condition* condition = Condition::createCondition(CONDITIONID_DEFAULT, CONDITION_INFIGHT, g_configManager().getNumber(WHITE_SKULL_TIME), 0);
addCondition(condition);
}
}
}
} else if (const Monster* monster = target->getMonster();
TaskHuntingSlot* taskSlot = getTaskHuntingWithCreature(monster->getRaceId())) {
if (const TaskHuntingOption* option = g_ioprey().GetTaskRewardOption(taskSlot)) {
taskSlot->currentKills += 1;
if ((taskSlot->upgrade && taskSlot->currentKills >= option->secondKills) ||
(!taskSlot->upgrade && taskSlot->currentKills >= option->firstKills)) {
taskSlot->state = PreyTaskDataState_Completed;
sendTextMessage(MESSAGE_STATUS, "You succesfully finished your hunting task. Your reward is ready to be claimed!");
}
reloadTaskSlot(taskSlot->id);
}
}
return unjustified;
}
I don't know if that has anything related to it.
Attachments
-
Screenshot_369.png153.4 KB · Views: 31 · VirusTotal
Last edited: