• There is NO official Otland's Discord server and NO official Otland's server list. The Otland's Staff does not manage any Discord server or server list. Moderators or administrator of any Discord server or server lists have NO connection to the Otland's Staff. Do not get scammed!

Compiling White skull only if deal damage (0.3.6pl1)

Fresh

Quack!
Joined
Oct 21, 2009
Messages
1,838
Solutions
18
Reaction score
617
Location
Poland
Hello.
Anyone have source code in 0.3.6pl1 when player deal damage he receive white skull.
Not when target opponent only if he deal damage
 
Code:
	if(skull == SKULL_NONE)
	{
		if(targetPlayer->getSkull() != SKULL_NONE)
			targetPlayer->sendCreatureSkull(this);
		else if(!hasCustomFlag(PlayerCustomFlag_NotGainSkull))
		{
			setSkull(SKULL_WHITE);
			g_game.updateCreatureSkull(this);
		}
	}
}
Find this line in player.cpp and edit the "targetPlayer" to "attackPlayer".
I guess, haven't tried.
 
attackPlayer was not declared in this scope.
Code:
	Player* attackPlayer = attack->getPlayer();
	if(!attackPlayer)
        return;
Add it after:
Code:
	Player* targetPlayer = target->getPlayer();
	if(!targetPlayer)
		return;
See the thing with C++ is that you always have to try.
 
Not working
3757 `attack' was not declared in this scope

PHP:
void Player::onAttackedCreature(Creature* target)
{
	Creature::onAttackedCreature(target);
	if(hasFlag(PlayerFlag_NotGainInFight))
		return;

	addInFightTicks();
	Player* targetPlayer = target->getPlayer();
	if(!targetPlayer)
		return;
		
    Player* attackPlayer = attack->getPlayer();
	if(!attackPlayer)
        return;

	addAttacked(targetPlayer);
	if(targetPlayer == this && targetPlayer->getZone() != ZONE_PVP)
	{
		targetPlayer->sendCreatureSkull(this);
		return;
	}

	if(Combat::isInPvpZone(this, targetPlayer) || isPartner(targetPlayer) || (g_config.getBool(
		ConfigManager::ALLOW_FIGHTBACK) && targetPlayer->hasAttacked(this)))
		return;

	if(!pzLocked)
	{
		pzLocked = true;
		sendIcons();
	}

	if(getZone() != target->getZone())
		return;

	if(skull == SKULL_NONE)
	{
		if(attackPlayer->getSkull() != SKULL_NONE)
			attackPlayer->sendCreatureSkull(this);
		else if(!hasCustomFlag(PlayerCustomFlag_NotGainSkull))
		{
			setSkull(SKULL_WHITE);
			g_game.updateCreatureSkull(this);
		}
	}
}
 
Code:
	if(skull == SKULL_NONE)
	{
		if(targetPlayer->getSkull() != SKULL_NONE)
			targetPlayer->sendCreatureSkull(this);
		else if(!hasCustomFlag(PlayerCustomFlag_NotGainSkull))
		{
			setSkull(SKULL_WHITE);
			g_game.updateCreatureSkull(this);
		}
	}
change targetPlayer for "this" without the "
 
I had the same problem as u have, but I can`t remember how did I fix...
Try looking in the creaturescript (I think that the problem wasn`t in the source)
 
Last edited:
Back
Top