08-03-2012, 09:45 AM
При убийстве Моба мы получаем такую надпись:
Так же надпись распространяется и на гвардов и еще множество инстансов.
в PcStat.java я нашел следующий метод:
Подскажите, как сделать проверку на определенный инстанс, допустим L2Guard, и если игрок убивает именно L2Guard - то надпись об получении экспы и сп не выводится. В противном случае (убийство любых других инстансов типа мобов - надпись выводилась стандартно как есть).
Заранее примного благодарен!
Так же надпись распространяется и на гвардов и еще множество инстансов.
в PcStat.java я нашел следующий метод:
Код:
@Override
public boolean addExpAndSp(long addToExp, int addToSp)
{
float ratioTakenByPet = 0;
//Player is Gm and acces level is below or equal to GM_DONT_TAKE_EXPSP and is in party, don't give Xp/Sp
L2PcInstance activeChar = getActiveChar();
if(!activeChar.getAccessLevel().canGainExp() && activeChar.isInParty())
return false;
// if this player has a pet that takes from the owner's Exp, give the pet Exp now
if(activeChar.getPet() instanceof L2PetInstance)
{
L2PetInstance pet = (L2PetInstance) activeChar.getPet();
ratioTakenByPet = pet.getPetData().getOwnerExpTaken();
// only give exp/sp to the pet by taking from the owner if the pet has a non-zero, positive ratio
// allow possible customizations that would have the pet earning more than 100% of the owner's exp/sp
if(ratioTakenByPet > 0 && !pet.isDead())
{
pet.addExpAndSp((long) (addToExp * ratioTakenByPet), (int) (addToSp * ratioTakenByPet));
}
// now adjust the max ratio to avoid the owner earning negative exp/sp
if(ratioTakenByPet > 1)
{
ratioTakenByPet = 1;
}
addToExp = (long) (addToExp * (1 - ratioTakenByPet));
addToSp = (int) (addToSp * (1 - ratioTakenByPet));
pet = null;
}
if(!super.addExpAndSp(addToExp, addToSp))
return false;
// Send a Server->Client System Message to the L2PcInstance
SystemMessage sm = new SystemMessage(SystemMessageId.YOU_EARNED_S1_EXP_AND_S2_SP);
sm.addNumber((int) addToExp);
sm.addNumber(addToSp);
getActiveChar().sendPacket(sm);
sm = null;
activeChar = null;
return true;
}
Подскажите, как сделать проверку на определенный инстанс, допустим L2Guard, и если игрок убивает именно L2Guard - то надпись об получении экспы и сп не выводится. В противном случае (убийство любых других инстансов типа мобов - надпись выводилась стандартно как есть).
Заранее примного благодарен!
clan: Soprano :redlol: