Рейтинг темы:
  • 0 Голос(ов) - 0 в среднем
  • 1
  • 2
  • 3
  • 4
  • 5
Hero Aura
#1
Еще раз добрый вечер уважаемые пользователи. Создаю ГвЕ сервер и вот посетила мысль реализовать Статус Героя который выдается автоматически (Сразу на поле боя) за пвп игроку у которого больше всех славы в своем классе. Все хорошо, работает но не как не могу сделать так чтобы при получения Героя у каждой Фракции был разный цвет подсветки.
(При стоздании фракции Аура не выдется, только цвет ника)
Буду рад любой помощи.



Вот код который отвечает за Героя и присваивает цвет ауры.


Heroes
Ответ
#2
По-простому - ни как.
По-простому можно только заменить цвет свечения героя на другой (и то не совсем по-простому).

Чтобы сделать два цветам вам нужен очень хороший реверс-инженер, способный сделать из этого два разных эффекта и переделать пакет в клиенте. Будет стоить очень дорого, но сомневаюсь даже, что кто-то возьмется.

Добавлено через 1 минуту
Самое простое, что можете сделать - это присваивать сторонам свечения как при дуэли.
player.setTeam(1) и player.setTeam(2) соответственно.
Johnson получился в результате деления на null. Помогаю с джавой только за булочки с маком.
Ответ
#3
Phantomas Написал:Еще раз добрый вечер уважаемые пользователи. Создаю ГвЕ сервер и вот посетила мысль реализовать Статус Героя который выдается автоматически (Сразу на поле боя) за пвп игроку у которого больше всех славы в своем классе. Все хорошо, работает но не как не могу сделать так чтобы при получения Героя у каждой Фракции был разный цвет подсветки.
(При стоздании фракции Аура не выдется, только цвет ника)
Буду рад любой помощи.



Вот код который отвечает за Героя и присваивает цвет ауры.


Heroes


Для вставки кода используйте
Код:
[CODE[color=Red]*[/color]] [color=Red]тут код(символ "*" удалить)[/color][/CODE[color=red]*[/color]]

Пример:
как надо
Ответ
#4
Johnson, самое простое я и делал вот 2 кода отвечающих за цвет 2-ум фракциям
if(_activeChar.getFactionId()==1)
writeC(0x01);
else if(_activeChar.getFactionId()==2)
writeC(0x02);
else
writeC(0x00);
-----
if(_decoy.getOwner().getFactionId()==1)
writeC(0x01);
else if(_decoy.getOwner().getFactionId()==2)
writeC(0x02);
else
writeC(0x00);
потому и прошу о помощи.
Добавлено через 8 минут
и зачем лезть в клиент? нельзя убрать твт и хиро свечение в Серверпакете

// if(_activeChar.getTeam()==1)
// writeC(0x01); //team circle around feet 1= Blue, 2 = red
// else if(_activeChar.getTeam()==2)
// writeC(0x02); //team circle around feet 1= Blue, 2 = red
// else
// writeC(0x00); //team circle around feet 1= Blue, 2 = red
и
- writeC(_activeChar.isHero() ? 0x01 : 0x00);
+ writeC(0x00);
и сделать 2 цвета?
if(_decoy.getOwner().isHero())
{
writeC(0x01);
}
else
{
writeC(0x00);
}
и
if(_decoy.getOwner().isHeroTwo())
{
writeC(0x02);
}
else
{
writeC(0x00);
}
и привизать их к каждой фракции к герою? и по аналогичному принцыпу Хиро менеджера 2 и так у каждой фракции будет герой. У добра свой герой - (Глад), и у Зла свой герой- (Глад) герой.
Я и так поудалял все что касается Геройства и олимпиады, повторюсь. я создаю личную олимпиаду в пвп виде.
Ответ
#5
Свечение в клиенте организовано через L2Effect.
В клиенте только один вариант свечения, он использует свою текстуру для создания партиклов.
Эту текстуру по-простому можно только заменить, получив другой цвет (и в небольших пределах вид) свечения.
Можно переделать l2effect.u, чтобы сделать свечение совсем с другим эффектом.
Но чтобы добавить второй (третий/пятый/десятый) тип свечения по выбору - придется engine.dll научить понимать выбор этого типа в пакете - сейчас он понимает только 0x00 (выкл) и 0x01 (вкл).

Теперь понятнее?

Добавлено через 1 минуту
Либо я совсем не понимаю, что вам требуется.

Если под "цветом свечения героя" вы понимаете светящийся красный/синий круг под ногами - то я не понимаю в чем сложность?

Добавлено через 4 минуты
Если просто нужно, чтобы одна фракция светила синим под ногами, а вторая красным - то просто уберите L2PCInstance.team и используйте для определения свою фракцию и условие, что персонаж - герой.

Код:
if (player.isHero(){
    if (player.getFactionId() == 1){
        writeC(0x01);
    } else {
        writeC(0x02);
    }
} else {
    writeC(0x00);
}

Добавлено через 7 минут
PS: имхо, но делать по два героя одного класса не лучшая идея для геймплея.
Вам же нужно противостояние фракций?
Так сделайте, чтобы фракция, имеющая больше героев получала некие бонусы, а "проигрывающая" - другие бонусы, позволяющие проще получить геройства (постоянный баф, к примеру, или усиленный баф на олимпиаде).
Сыграйте на зависти и гордыне, серверу нужна драма и срач, чтобы он не протух.
Но дайте возможность игре постоянно балансировать по количеству. У Эльфов больше героев - получают бонус к экспе и/или еще чему-то, а Орки получают бафы на оли. Получится, что следующий период Орки с большим шансом наберут больше героев и ситуация изменится. В итоге срач на весь сервер, дарама и вопли. Всем интересно, все продолжают играть и задрить.
Johnson получился в результате деления на null. Помогаю с джавой только за булочки с маком.
Ответ
#6
ДА именно за это я и спрашываю): "красный/синий круг под ногами У фракции Добра/зла"
Ответ
#7
Ну, тогда ответ я дал.
В UserInfo и CharInfo сделайте, что если игрок герой - то ему присвоится свечение в зависимости от фракции.
А поля и методы, отвечающие за team вообще удалите, если не планируете их использовать в ивентах.
Johnson получился в результате деления на null. Помогаю с джавой только за булочки с маком.
Ответ
#8
Йома йо как же я сам не додумался...
Johnson, спасибо что направил на путь истины, все работает))))

//Faction Good = 1 Blue, Faction Evil = 2 Red
if(_activeChar.isHero()){
if(_activeChar.getFactionId() == 1)
writeC(0x01);
else if(_activeChar.getFactionId() == 2)
writeC(0x02);
}
else
writeC(0x00);
Ответ
#9
Phantomas;384323 Написал:if(_activeChar.getFactionId() == 1)
writeC(0x01);
else if(_activeChar.getFactionId() == 2)

А что, возможно, что _activeChar.getFactionId() будет равен 0 или 3? Если нет - то зачем второе условие? Просто else.
PS: Приучайте себя все условные операторы окружать блоком { } (как в моем примере), на много читабельнее, и это хороший тон.
Johnson получился в результате деления на null. Помогаю с джавой только за булочки с маком.
Ответ
#10
Я Java никогда не изучал, просто переписывал diff-ы около года)))) и замечательные успехи... лудше посидеть почитать мануалы, 100 раз попробовать и сделать самому и заодно изучить ядро сервера чем перечитывать кучу лишней инормации. Хорошо буду работать над этим еще раз спасибо.
Ответ


Возможно похожие темы ...
Тема Автор Ответы Просмотры Последний пост
  Список претендентов на Hero white7777x 6 1,709 07-10-2013, 06:25 PM
Последний пост: L2CCCP
  Last Hero bujhm1706 16 5,275 03-15-2012, 09:13 PM
Последний пост: L2scripts-Guard
  Last Hero\TvT Ultimate 5 2,989 06-20-2011, 01:54 PM
Последний пост: Kentaro
  Выдача Hero 16 и 1 числа каждого месяца derron116 6 3,632 02-23-2011, 01:30 AM
Последний пост: derron116
  L2open, augmentation, Last Hero. FaintSmile 13 7,337 11-14-2010, 10:29 PM
Последний пост: serg5777
  L2j server: Last Hero Дух системы 7 5,315 06-01-2010, 10:23 AM
Последний пост: Дух системы
  Hero|Noblesse & ColorManager FlooderaS 1 2,672 11-19-2009, 07:43 PM
Последний пост: smoll
  Не дает Hero Иллидан 7 6,004 12-04-2008, 10:15 AM
Последний пост: Иллидан
  Coin и "Last Hero" Rebilion serv Richi 8 3,726 08-08-2008, 01:48 AM
Последний пост: Richi

Перейти к форуму:


Пользователи, просматривающие эту тему: 1 Гость(ей)