public boolean engage(L2Player activeChar)
{
// check target
if(activeChar.getTarget() == null)
{
activeChar.sendMessage(new CustomMessage("scripts.commands.voiced.Wedding.NoneTargeted", activeChar));
return false;
}
// check if target is a L2Player
if(!activeChar.getTarget().isPlayer())
{
activeChar.sendMessage(new CustomMessage("scripts.commands.voiced.Wedding.OnlyAnotherPlayer", activeChar));
return false;
}
// check if player is already engaged
if(activeChar.getPartnerId() != 0)
{
activeChar.sendMessage(new CustomMessage("scripts.commands.voiced.Wedding.AlreadyEngaged", activeChar));
if(Config.WEDDING_PUNISH_INFIDELITY)
{
activeChar.startAbnormalEffect(AbnormalEffect.BIG_HEAD);
// Head
// lets recycle the sevensigns debuffs
int skillId;
int skillLevel = 1;
if(activeChar.getLevel() > 40)
{
skillLevel = 2;
}
if(activeChar.isMageClass())
{
skillId = 4361;
}
else
{
skillId = 4362;
}
L2Skill skill = SkillTable.getInstance().getInfo(skillId, skillLevel);
if(activeChar.getEffectList().getEffectsBySkill(skill) == null)
{
skill.getEffects(activeChar, activeChar, false, false);
activeChar.sendPacket(new SystemMessage(SystemMessage.S1_S2S_EFFECT_CAN_BE_FELT).addSkillName(skillId, skillLevel));
}
}
return false;
}
L2Player ptarget = (L2Player) activeChar.getTarget();
// check if player target himself
if(ptarget.getObjectId() == activeChar.getObjectId())
{
activeChar.sendMessage(new CustomMessage("scripts.commands.voiced.Wedding.EngagingYourself", activeChar));
return false;
}
if(ptarget.isMaried())
{
activeChar.sendMessage(new CustomMessage("scripts.commands.voiced.Wedding.PlayerAlreadyMarried", activeChar));
return false;
}
if(ptarget.getPartnerId() != 0)
{
activeChar.sendMessage(new CustomMessage("scripts.commands.voiced.Wedding.PlayerAlreadyEngaged", activeChar));
return false;
}
if(ptarget.isEngageRequest())
{
activeChar.sendMessage(new CustomMessage("scripts.commands.voiced.Wedding.PlayerAlreadyAsked", activeChar));
return false;
}
if(ptarget.getPartnerId() != 0)
{
activeChar.sendMessage(new CustomMessage("scripts.commands.voiced.Wedding.PlayerAlreadyEngaged", activeChar));
return false;
}
if(ptarget.getSex() == activeChar.getSex() && !Config.WEDDING_SAMESEX)
{
activeChar.sendMessage(new CustomMessage("scripts.commands.voiced.Wedding.SameSex", activeChar));
return false;
}
// check if target has player on friendlist
boolean FoundOnFriendList = false;
int objectId;
ThreadConnection con = null;
FiltredPreparedStatement statement = null;
ResultSet rset = null;
try
{
con = L2DatabaseFactory.getInstance().getConnection();
statement = con.prepareStatement("SELECT friend_id FROM character_friends WHERE char_id=?");
statement.setInt(1, ptarget.getObjectId());
rset = statement.executeQuery();
while(rset.next())
{
objectId = rset.getInt("friend_id");
if(objectId == activeChar.getObjectId())
{
FoundOnFriendList = true;
break;
}
}
}
catch(Exception e)
{
e.printStackTrace();
}
finally
{
DatabaseUtils.closeDatabaseCSR(con, statement, rset);
}
if(!FoundOnFriendList)
{
activeChar.sendMessage(new CustomMessage("scripts.commands.voiced.Wedding.NotInFriendlist", activeChar));
return false;
}
ptarget.setEngageRequest(true, activeChar.getObjectId());
// ptarget.sendMessage("Player "+activeChar.getName()+" wants to engage with you.");
ptarget.sendPacket(new ConfirmDlg(SystemMessage.S1, 60000, 4).addString("Player " + activeChar.getName() + " asking you to engage. Do you want to start new relationship?"));