Война рас - Форум администраторов игровых серверов
Форум администраторов игровых серверов StormWall - Защита от DDos атак
Регистрация Мнения Справка Пользователи Календарь Все разделы прочитаны
Вернуться   Форум администраторов игровых серверов > MMO > Lineage II

Lineage II
Дискуссии на тему создания, настройки и обслуживания серверов Lineage 2. При поддержке: Премиум услуги по рекламе

Ответ
Опции темы
Непрочитано 29.01.2011, 20:05   #1
Пользователь

Автор темы (Топик Стартер) Война рас

Понадобилось сейчас сделать модуль войны рас на сборке епилога л2феникса, т.к. кодер из меня херовый да и внутренностями сборок я плохо знаком решил вас вопросами помучать
Суть в том что за убийство враждующей расы персонажу начисляли pvp, не давали карму и давали приз (по умолчанию Coin of Luck), враждующие расы можно настраивать в конфиге, изначально воюют люди и светлые эльфы против орков, темных эльфов и камаелей, гномы должны оставаться нейтральной расой.
Вот как я вижу это в теории, если есть что добавить еще к этому напишите пожалуйста.
  • запрет на пати враждующим
  • запрет на прием в клан враждующим
  • запрет на али враждующим расам
  • проверять если убили враждующюю расу, кармы не давать, дать кол в награду
Вот такой конфиг у меня получился к модулю:
Код:
###### War of Races config ######
# Включен ли он вообще
WarOfRacesEnabled = True
#давать ли бонус за убийство врага
WarOfRacesBonusEnabled = True
#id вещи выдаваемой за убийство врага
WarOfRacesBonusId = 4037
#Количество выдаваемого бонуса
WarOfRacesBonusCount = 1
#Список рас относящихся к темной стороне
WarOfRacesEvil =
#Список рас относящихся к светлой стороне
WarOfRacesGood =
######## War of Races config End #########
Вот собственно и 1 вопрос, как мне правильно задать враждующие расы в конфиге WarOfRacesEvil и WarOfRacesGood для того чтоб их потом можно было без проблем сравнить, или по другому в каком виде находятся данные которые отвечают за определение расы персонажа.
Теперь, как бы правильно и красиво проверить персонажа на врага ? И кто еще подскажет в каких файлах копать, имею ввиду пати, клан, там где проверяется сметь персонажа и т.д.
spyder вне форума Ответить с цитированием
Непрочитано 29.01.2011, 21:34   #2
Пользователь

По умолчанию Re: Война рас

Цитата:
как мне правильно задать враждующие расы в конфиге WarOfRacesEvil и WarOfRacesGood для того чтоб их потом можно было без проблем сравнить
Сравнить с чем? Наверное логично предположить, что писать туда надо айди расы или можно и профы.

Цитата:
в каком виде находятся данные которые отвечают за определение расы персонажа
В базе они. Шесть рас от 0 до 5.

Если кодерить ты не але, то даже не берись. Это не так просто для человека без знаний явы.
kork80 вне форума Ответить с цитированием
Сказали спасибо:
Непрочитано 30.01.2011, 02:13   #3
Пользователь

Автор темы (Топик Стартер) Re: Война рас

Цитата:
В базе они. Шесть рас от 0 до 5.
Если кодерить ты не але, то даже не берись. Это не так просто для человека без знаний явы.
Не видно их в базе, смотрел в characters, там нет намеков на id расы, в char_templates нашел колонку RaceId но там встречаются только нули и единицы. id профессии писать думаю не совсем правильно, т.к могут возникнуть проблемы с саб классом, да и профессий там 29 штук
Цитата:
Сравнить с чем? Наверное логично предположить, что писать туда надо айди расы или можно и профы.
Имелось ввиду проверка по типу если персонаж враждующей расы то нет возможности его пригласить в пати или если убил врага то наградить, вроде такого
PHP код:
if(раса моего персонажа ==  че то там) {
 
// то возвращаем true и говорим что мой персонаж играет за добро
} else {
   
// возвращаем false и говорим что мой персонаж играет за зло
}

if(
раса нашего врага ==  че то там) {
 
// то возвращаем true и говорим что мой персонаж играет за добро
} else {
   
// возвращаем false и говорим что мой персонаж играет за зло
}

if (
результат сравнения моего персонажа == результат врага) {
    
// персонаж убил своего, во общем как обычно при пк или пвп
} else {
  
// персонаж убил врага, если враг не ответил не давать карму и наградить

Вот 1 что в голову пришло, возможно это можно более правильно и красивей реализовать.
Узнать хотя бы что с чем сравнивать, было бы просто отлично Наверняка же есть там методы какие то в ядре чтоб определить расу, хотелось бы увидеть комментарии людей которые работали с ядром феникса
spyder вне форума Ответить с цитированием
Непрочитано 30.01.2011, 12:49   #4
Аватар для SunnyX
Пользователь

По умолчанию Re: Война рас

Цитата:
Сообщение от spyder Посмотреть сообщение
Не видно их в базе, смотрел в characters, там нет намеков на id расы, в char_templates нашел колонку RaceId но там встречаются только нули и единицы.
Плохо смотрел.

Таблица characters -> поле race (рядом с classid)
Таблица char_templates -> поле RaceId
Принимают значения от 0 до 5 (с камаэлями, без - до 4).

Плюс в базу на прямую лезть не нужно, после входа персонажа в мир все данные загружаются в L2PcInstance, для получения расы достаточно вызвать функцию getRace.
__________________
Классический Interlude PvP сервер http://akamanah.ru/
SunnyX вне форума Ответить с цитированием
Сказали спасибо:
Непрочитано 03.02.2011, 03:27   #5
Пользователь

Автор темы (Топик Стартер) Re: Война рас

Цитата:
Плюс в базу на прямую лезть не нужно, после входа персонажа в мир все данные загружаются в L2PcInstance, для получения расы достаточно вызвать функцию getRace.
L2PcInstance у меня нет, есть L2NPcInstance но там тоже нету getRace. getRace нашлась L2NpcTemplate
PHP код:
...
    public 
int getRace()
    {
        return 
race;
    }
... 
я так понимаю это оно ?
Вот что сейчас есть, еще ничего не проверял, мб гдето ошибки в логики или еще чем то есть, подскажите как лучше Это типа тот код который отвечает за проверку враждующих рас
PHP код:
     public String getWarRaces(int raceId)  // определяем за кого играет 
    
{
        switch(
raceId)
        {
            case 
Race.human:
                return 
"good";
            case 
Race.elf:
                return 
"good";
            case 
Race.darkelf:
                return 
"evil";
            case 
Race.orc:
                return 
"evil";
            case 
Race.kamael:
                return 
"evil";
        }
    }        
        
     
    
/**
       если раса не совпадает то делаем проверку гном ли это ? 
       если не гном то вызываем ретурн и не даем возможности дать пати
      **/   
        
if(Config.SERVICES_WarOfRaces_Enabled)
        {
            
WRme getWarRaces(L2NpcTemplate.getRace());
            
WRtarget getWarRaces(int raceId); // тут должна быть раса 2 персонажа
        
         
if(WRme != WRtarget)
         {
           if(
WRtarget != Race.dwarf)
           {
            
activeChar.sendPacket('Внимательней приятель, враг не спит он тут где то рядом сидит!');
            return;
           } 
         }
         
        } 
Ребят, можно пример как в сборке от фениксов получить расу выделенного персонажа ?
spyder вне форума Ответить с цитированием
Непрочитано 04.02.2011, 13:51   #6
Аватар для SunnyX
Пользователь

По умолчанию Re: Война рас

Цитата:
Сообщение от spyder Посмотреть сообщение
L2PcInstance у меня нет
Серьезно? Честно-честно?
__________________
Классический Interlude PvP сервер http://akamanah.ru/
SunnyX вне форума Ответить с цитированием
Непрочитано 04.02.2011, 13:55   #7
Аватар для weTr1k
Пользователь

По умолчанию Re: Война рас

Цитата:
Сообщение от SunnyX Посмотреть сообщение
Серьезно? Честно-честно?
Честно-Честно
weTr1k вне форума Отправить сообщение для weTr1k с помощью ICQ Отправить сообщение для weTr1k с помощью Skype™ Ответить с цитированием
Непрочитано 04.02.2011, 17:12   #8
Пользователь

Автор темы (Топик Стартер) Re: Война рас

Цитата:
Серьезно? Честно-честно?
Согласен, могу быть не прав. Может поможешь тогда, мне нубу, сделать правильно ?
spyder вне форума Ответить с цитированием
Непрочитано 04.01.2017, 23:04   #9
Аватар для c3ntro
Пользователь

По умолчанию Re: Война рас

Цитата:
Сообщение от spyder Посмотреть сообщение
Согласен, могу быть не прав. Может поможешь тогда, мне нубу, сделать правильно ?
Прошу прощения, искал в гугле, наткнулся на эту тему, не обратил внимания на дату

Последний раз редактировалось c3ntro; 05.01.2017 в 00:39.
c3ntro вне форума Отправить сообщение для c3ntro с помощью ICQ Отправить сообщение для c3ntro с помощью Skype™ Ответить с цитированием
Ответ


Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 
Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Elyos – Тысячелетняя война PROGRAMMATOR Об игре 0 21.02.2009 21:02


© 2007–2024 «Форум администраторов игровых серверов»
Защита сайта от DDoS атак — StormWall
Работает на Булке неизвестной версии с переводом от zCarot
Текущее время: 15:43. Часовой пояс GMT +3.

Вверх