Перейти к содержанию
Авторизация  
Axis

проверка пола персонажа

Рекомендуемые сообщения

приветствую всех! подскажите как сделать проверку на определение пола в скрипте

 

пример того что есть

 

 

 

	public MoSMonk(L2Character actor)
	{
		super(actor);
	}

	@Override
	protected void onIntentionAttack(L2Character target)
	{
		L2NpcInstance actor = getActor();
		if (actor == null)
		{
			return;
		}
		if (getIntention() == CtrlIntention.AI_INTENTION_ACTIVE && Rnd.chance(20))
		{
			Functions.npcShout(actor, "Brother " + target.getName() + ", move your weapon away!");
		}
		super.onIntentionAttack(target);
	} 

 

 

 

как сделать на примере этого?

 

 

 

	public String onAggroRangeEnter(L2Npc npc, L2PcInstance player, boolean isPet)
	{
		if (!npc.isInCombat())
		{
			if (player.getActiveWeaponInstance() != null)
			{
				npc.setTarget(player);
				npc.broadcastNpcSay(((player.getAppearance().getSex()) ? "Sister " : "Brother ") + player.getName() + ", move your weapon away!");
				
				switch (npc.getNpcId())
				{
					case 22124:
					case 22126:
						npc.doCast(SkillTable.getInstance().getInfo(4589, );
						break;
					
					default:
						attack(((L2Attackable) npc), player);
						break;
				}
			}
			else if (((L2Attackable) npc).getMostHated() == null)
				return null;
		}
		return super.onAggroRangeEnter(npc, player, isPet);
	} 

 

 

Изменено пользователем Axis

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Functions.npcShout(actor, (target.getPlayer().getSex()) ? "Sister " : "Brother " + player.getName() + ", move your weapon away!");

так не выходит

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Functions.npcShout(actor, (target.getPlayer().getSex()) ? "Sister " : "Brother " + player.getName() + ", move your weapon away!");

так не выходит

 

Проглядел чутка:

target.getPlayer().getAppearance().getSex()

 

  • Upvote 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
    [javac] 			Functions.npcShout(actor, (target.getPlayer().getAppearance().getSex() ? "Sister " : "Brother ") + player.getName() + ", move your weapon away!");
    [javac] 			                                             ^
    


    [javac] 			Functions.npcShout(actor, (target.getPlayer().getAppearance().getSex() ? "Sister " : "Brother ") + player.getName() + ", move your weapon away!");
    [javac] 			                                                                                                   ^

вот что ему не нравится?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

саншайн на фениксах

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

саншайн на фениксах

Исходники есть? И работает ли пример, тот что в первом сообщении? Походу метод getSex() не boolean (не возвращает true/false).

  • Upvote 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

работает только так, а пол не определяет 

 

 

 

package core.sunshine.game.ai;

import static core.sunshine.game.ai.CtrlIntention.AI_INTENTION_ACTIVE;
import core.sunshine.utilities.ext.scripts.Functions;
import core.sunshine.game.model.L2Character;
import core.sunshine.game.model.L2Player;
import core.sunshine.game.model.instances.L2NpcInstance;
import core.sunshine.utilities.util.Rnd;

/**
 * AI монахов в Monastery of Silence<br>
 * Modify by DRN0167
 */
public class MoSMonk extends Fighter 
{

	public MoSMonk(L2Character actor)
	{
		super(actor);
	}

	@Override
	protected void onIntentionAttack(L2Character target)
	{
		L2NpcInstance actor = getActor();
		if (actor == null)
		{
			return;
		}
		if (getIntention() == CtrlIntention.AI_INTENTION_ACTIVE && Rnd.chance(20))
		{
			Functions.npcShout(actor, "Brother " + target.getName() + ", move your weapon away!");
		}
		super.onIntentionAttack(target);
	}

	@Override
	public void checkAggression(L2Character target)
	{
		if (target.getActiveWeaponInstance() == null)
		{
			return;
		}
		super.checkAggression(target);
	}
}
 

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Можно так попробовать:

Functions.npcShout(actor, (((target.getPlayer().getAppearance().getSex()) == 0) ? "Sister " : "Brother ") + target.getName() + ", move your weapon away!");

либо так, т.к. на фениксах пол берется вроде как напрямую:
Functions.npcShout(actor, (((target.getPlayer().getSex()) == 0) ? "Sister " : "Brother ") + target.getName() + ", move your weapon away!");

  • Upvote 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

очевидно наверное что

player.

 нет, а есть target или от кого ты там имя хочешь взять

  • Upvote 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

спасибо огромное!

вот так сработало:

 

Functions.npcShout(actor, (((target.getPlayer().getSex()) == 0) ? "Brother " : "Sister ") + target.getName() + ", move your weapon away!");

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Ну даже фраза не та у вас в аи. Ниже фраза по оффу)

    <id="1121006" en="You cannot carry a weapon without authorization!" ru="Вы не сможете пронести оружие с собой без особого разрешения!"/>

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
Авторизация  

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×
×
  • Создать...