Jump to content

[SHARE] Protection Players Guard


MaxSound

Recommended Posts

Kalispera meta apo kairo eipa na kano kai egw ena share..

 

to Share einai enas protection Guard pou mporoume na ton exoume opou 8elete, ti kanei..

 

Einai enas guard pou elenxi an autos pou kanei attack einai megaliteros sta lvl se auton pou epiti8ete san protect player se farm zones ena pragma :) + pk killer

 

o Guard den epembeni an o attacker me to target briskontai se clan war.

 

An o guard dei to target nekro tote tou kanei ress.. o guard kai tou kanei nob gia na min xanaxasi ta buffs tou afta :D

 

Apla kante to copy paste mesa sto GuardKnownList opws einai kai gg :)

 

o Code den exei testaristi ton ekana sto bam apla gt den eixa ti na kano an bgali problima enimeroste me. na to ftiaxo :)

 

 

 

Credits: ME

 

 

/*
* This program is free software: you can redistribute it and/or modify it under
* the terms of the GNU General Public License as published by the Free Software
* Foundation, either version 3 of the License, or (at your option) any later
* version.
* 
* This program is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
* FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
* details.
* 
* You should have received a copy of the GNU General Public License along with
* this program. If not, see <http://www.gnu.org/licenses/>.
*/
package com.l2jserver.gameserver.model.actor.knownlist;

import com.l2jserver.gameserver.ai.CtrlIntention;
import com.l2jserver.gameserver.datatables.SkillTable;
import com.l2jserver.gameserver.model.L2Clan;
import com.l2jserver.gameserver.model.L2Object;
import com.l2jserver.gameserver.model.L2Skill;
import com.l2jserver.gameserver.model.actor.L2Character;
import com.l2jserver.gameserver.model.actor.instance.L2GuardInstance;
import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
import com.l2jserver.gameserver.network.SystemMessageId;
import com.l2jserver.gameserver.network.serverpackets.EtcStatusUpdate;
import com.l2jserver.gameserver.network.serverpackets.SystemMessage;


public class GuardKnownList extends AttackableKnownList
{

public GuardKnownList(L2GuardInstance activeChar)
{
	super(activeChar);
}

@Override
public boolean addKnownObject(L2Object object)
{
	if (!super.addKnownObject(object))
		return false;

	if (object instanceof L2PcInstance)
	{		
		L2PcInstance player = (L2PcInstance)object;
		L2Object target = player.getTarget();
		L2Character targetplayer = (L2Character) target;
		L2PcInstance resstarget = (L2PcInstance) targetplayer;
		L2PcInstance targetclan = (L2PcInstance) targetplayer;
		L2Clan playerclan = player.getClan();
		int playerlevel = player.getLevel();
		int targetlevel = ((L2Character) target).getLevel();

		if (player.getTarget() != null && player.getTarget() == target && player.isAttackingNow() && targetlevel < playerlevel)
		{

			if(targetplayer.isDead())
			{
				resstarget.reviveRequest(resstarget,null,false);
				buffTarget(resstarget);
			}

			// Check if the object added is a L2PcInstance that owns Karma
			if (((L2PcInstance)object).getKarma() > 0)
			{

				// Set the L2GuardInstance Intention to AI_INTENTION_ACTIVE
				if (getActiveChar().getAI().getIntention() == CtrlIntention.AI_INTENTION_IDLE)
					getActiveChar().getAI().setIntention(CtrlIntention.AI_INTENTION_ACTIVE, null);
			}

		    
		    if(!(player.getClan() != null && targetclan.getClan() != null && playerclan.isAtWarWith(target.getObjectId())))
		    {
				if (getActiveChar().getAI().getIntention() == CtrlIntention.AI_INTENTION_IDLE)
					getActiveChar().getAI().setIntention(CtrlIntention.AI_INTENTION_ACTIVE, null);
				targetplayer.sendMessage(" "+ getActiveChar().getName() + " i will protect you!");
			    player.sendMessage(" "+ getActiveChar().getName() + " go to find another target!");}
		    


		}
		if (player.getTarget() != null && player.getTarget() == target && player.isCastingNow() && targetlevel < playerlevel)
		{
			if(targetplayer.isDead())
			{
				resstarget.reviveRequest(resstarget,null,false);
				buffTarget(resstarget);
			}
			// Check if the object added is a L2PcInstance that owns Karma
			if (((L2PcInstance)object).getKarma() > 0)
			{

				// Set the L2GuardInstance Intention to AI_INTENTION_ACTIVE
				if (getActiveChar().getAI().getIntention() == CtrlIntention.AI_INTENTION_IDLE)
					getActiveChar().getAI().setIntention(CtrlIntention.AI_INTENTION_ACTIVE, null);
			}
		    
		    
		    if(!(player.getClan() != null && targetclan.getClan() != null && playerclan.isAtWarWith(target.getObjectId())))
		    {
				if (getActiveChar().getAI().getIntention() == CtrlIntention.AI_INTENTION_IDLE)
					getActiveChar().getAI().setIntention(CtrlIntention.AI_INTENTION_ACTIVE, null);
				targetplayer.sendMessage(" "+ getActiveChar().getName() + " i will protect you!");
			    player.sendMessage(" "+ getActiveChar().getName() + " go to find another target!");
		    }
		}
	}
	return true;
}

private void buffTarget(L2PcInstance targer)
{
	L2Skill skill = SkillTable.getInstance().getInfo(1323,1);
	if (targer.getFirstEffect(skill) == null)
	{
		skill.getEffects(targer, targer);
		SystemMessage sm = new SystemMessage(SystemMessageId.YOU_FEEL_S1_EFFECT);
		sm.addSkillName(skill.getId());
		targer.sendPacket(sm);
	}
	targer.broadcastUserInfo();
	targer.sendPacket(new EtcStatusUpdate(targer));
}

@Override
protected boolean removeKnownObject(L2Object object, boolean forget)
{
	if (!super.removeKnownObject(object, forget))
		return false;

	if (getActiveChar().noTarget())
	{
		if (getActiveChar().hasAI())
			getActiveChar().getAI().setIntention(CtrlIntention.AI_INTENTION_IDLE, null);
	}

	return true;
}

@Override
public final L2GuardInstance getActiveChar()
{
	return (L2GuardInstance)super.getActiveChar();
}
}

 

Link to comment
Share on other sites

The Idea Is Very Good I Will Test It As Soon Is Possible(PC Probs).

Keep Sharings Your Own Codes And I'm Sure You Will Be Rewarded!!!

Good Job!

 

thx alla eimaste se eliniko sec :P

Link to comment
Share on other sites

tested απο κανεναν;

 

 

to anafera oti 8eli test kai an tixon bgali problima 8a to dior8oso sta bam min arxizis pali tin propsa8ia ipobibasis an mporeis kane kalitero i testaron ton :)

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



×
×
  • Create New...