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

Пасивный Нубл

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

И так, нужно сделать скил - пассивный нубл. Но полазив и почитав не дошел до понимания. Как придумать такое чудо?

Пока написал додумал что наверное при смерти где то есть проверка не висит ли нублес

 

П.С. Или есть вариант, после смерти проверять мою переменную, если она не равна нулю тогда не удалять бафы, где это можно на рыть?

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

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


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

Ну вообще, нужно указывать сборку.

На лыжеподобных - L2Character, метод doDie.

Меняйте проверку по своему усмотрению (как вариант, на наличие скилла нубла у перса).

Изменено пользователем †DeMoN†™
  • Upvote 1

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


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

Ну вообще, нужно указывать сборку.

На лыжеподобных - L2Character, метод doDie.

Меняйте проверку по своему усмотрению (как вариант, на наличие скилла нубла у перса).

Сборка - силентиум

 

public boolean doDie(L2Character killer)
{
// killing is only possible one time
synchronized (this)
{
if (isDead())
{
return false;
}

// now reset currentHp to zero
setCurrentHp(0);

setIsDead(true);
}

// Set target to null and cancel Attack or Cast
setTarget(null);

// Stop movement
stopMove(null);

// Stop Regeneration task, and removes all current effects
getStatus().stopHpMpRegeneration();
stopAllEffectsExceptThoseThatLastThroughDeath();

calculateRewards(killer);

// Send the Server->Client packet StatusUpdate with current HP and MP to all other
// L2PcInstance to inform
broadcastStatusUpdate();

// Notify L2Character AI
if (hasAI())
{
getAI().notifyEvent(CtrlEvent.EVT_DEAD, null);
}

if (getWorldRegion() != null)
{
getWorldRegion().onDeath(this);
}

getAttackByList().clear();

// If character is PhoenixBlessed a resurrection popup will show up
if (this instanceof L2Summon)
{
if (((L2Summon) this).isPhoenixBlessed() && (((L2Summon) this).getOwner() != null))
{
((L2Summon) this).getOwner().reviveRequest(((L2Summon) this).getOwner(), null, true);
}
}
else if (this instanceof L2PcInstance)
{
if (((L2Playable) this).isPhoenixBlessed())
{
((L2PcInstance) this).reviveRequest(((L2PcInstance) this), null, false);
}
else if (isAffected(CharEffectList.EFFECT_FLAG_CHARM_OF_COURAGE) && ((L2PcInstance) this).isInSiege())
{
((L2PcInstance) this).reviveRequest(((L2PcInstance) this), null, false);
}
}

try
{
if (_fusionSkill != null)
{
abortCast();
}

for (L2Character character : getKnownList().getKnownCharacters())
{
if ((character.getFusionSkill() != null) && (character.getFusionSkill().getTarget() == this))
{
character.abortCast();
}
}
}
catch (Exception e)
{
_log.warn(e.getLocalizedMessage(), e);
}

return true;
}

 

 

 

Не нашел проверки на нубл

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


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

класс L2Playable

метод тотже, doDie.

Нашел, ща добавлю пассивный нублес, и дочужу сюда, спасибо огромное

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


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

класс L2Playable

метод тотже, doDie.

Что то я туплю, как сделать проверку, есть ли пассивный скил(не ефект) у персонажа?

 

П.С. player.isSkillDisabled(skill) ? Или брать весь список скилов чара, и циклом прогонять на наличие нужного? Но тогда задержка...

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

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


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

Что то я туплю, как сделать проверку, есть ли пассивный скил(не ефект) у персонажа?

 

П.С. player.isSkillDisabled(skill) ? Или брать весь список скилов чара, и циклом прогонять на наличие нужного? Но тогда задержка...

 

Не проще изменить проверку на то, нубл чар или нет. Если нубл -> есть пассивка.

 

Насчет всех скиллов - зачем, если можно исхитряться существующими методами.

 

Например getSkillLevel(int skillId).

 

Возвращает -1, если скилла нету у персонажа.

Изменено пользователем †DeMoN†™
  • Upvote 1

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


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

Не проще изменить проверку на то, нубл чар или нет. Если нубл -> есть пассивка.

 

Насчет всех скиллов - зачем, если можно исхитряться существующими методами.

 

Например getSkillLevel(int skillId).

 

Возвращает -1, если скилла нету у персонажа.

Спасибо, я просто делаю систему противостояния двух рас, и при присоединении к одной из них нужно давать пассивный нубл.

  • Upvote 1

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


Ссылка на сообщение
Поделиться на другие сайты
Не проще изменить проверку на то, нубл чар или нет. Если нубл -> есть пассивка. Насчет всех скиллов - зачем, если можно исхитряться существующими методами. Например getSkillLevel(int skillId). Возвращает -1, если скилла нету у персонажа.

Слуш еще такой вопрос, мне нужно что бы скилы не спадали с каким то шансом. Где можно достать формулу расчета шанса точки или что то в этом роде

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


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

Слуш еще такой вопрос, мне нужно что бы скилы не спадали с каким то шансом. Где можно достать формулу расчета шанса точки или что то в этом роде

import silentium.commons.utils.Rnd;
if (Rnd.get(100) < chance){}

  • Upvote 1

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


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

import silentium.commons.utils.Rnd;
if (Rnd.get(100) < chance){}

Да спасибо, но неужели в расчете точке именно так? Не могу найти ф-и который отвечает за это

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


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

Да спасибо, но неужели в расчете точке именно так? Не могу найти ф-и который отвечает за это

silentium\gameserver\network\clientpackets\RequestEnchantItem.java строка 130
  • Upvote 1

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


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

silentium\gameserver\network\clientpackets\RequestEnchantItem.java строка 130

Абалдеть, обычный рандом. А я то думал придумают что то по круче. Спасибо за помощь, лови спасибо

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


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

Абалдеть, обычный рандом. А я то думал придумают что то по круче. Спасибо за помощь, лови спасибо

Ну они вносили правки в класс Rnd в ревизии 83, можете посмотреть различия с 82й ревой.

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


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

Автоматически сформированное сообщение

Тема закрыта модератором.

 

Причина: решено

 

Если вы не согласны с закрытием темы, то можете обратиться к администратору.

 

С наилучшими пожеланиями

ForumMaxi - Сообщество администраторов онлайн игр

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


Ссылка на сообщение
Поделиться на другие сайты
Гость
Эта тема закрыта для публикации ответов.
Авторизация  

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

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

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