Рейтинг темы:
  • 0 Голос(ов) - 0 в среднем
  • 1
  • 2
  • 3
  • 4
  • 5
Война рас
#1
Понадобилось сейчас сделать модуль войны рас на сборке епилога л2феникса, т.к. кодер из меня херовый да и внутренностями сборок я плохо знаком решил вас вопросами помучать Smile
Суть в том что за убийство враждующей расы персонажу начисляли 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 для того чтоб их потом можно было без проблем сравнить, или по другому в каком виде находятся данные которые отвечают за определение расы персонажа.
Теперь, как бы правильно и красиво проверить персонажа на врага ? И кто еще подскажет в каких файлах копать, имею ввиду пати, клан, там где проверяется сметь персонажа и т.д.
Ответ
#2
Цитата:как мне правильно задать враждующие расы в конфиге WarOfRacesEvil и WarOfRacesGood для того чтоб их потом можно было без проблем сравнить

Сравнить с чем? Наверное логично предположить, что писать туда надо айди расы или можно и профы.

Цитата:в каком виде находятся данные которые отвечают за определение расы персонажа

В базе они. Шесть рас от 0 до 5.

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

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

if (
результат сравнения моего персонажа == результат врага) {
// персонаж убил своего, во общем как обычно при пк или пвп
} else {
// персонаж убил врага, если враг не ответил не давать карму и наградить
}
Вот 1 что в голову пришло, возможно это можно более правильно и красивей реализовать.
Узнать хотя бы что с чем сравнивать, было бы просто отлично Smile Наверняка же есть там методы какие то в ядре чтоб определить расу, хотелось бы увидеть комментарии людей которые работали с ядром феникса Smile
Ответ
#4
spyder Написал:Не видно их в базе, смотрел в characters, там нет намеков на id расы, в char_templates нашел колонку RaceId но там встречаются только нули и единицы.
Плохо смотрел.

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

Плюс в базу на прямую лезть не нужно, после входа персонажа в мир все данные загружаются в L2PcInstance, для получения расы достаточно вызвать функцию getRace.
Классический Interlude PvP сервер http://akamanah.ru/
Ответ
#5
Цитата:Плюс в базу на прямую лезть не нужно, после входа персонажа в мир все данные загружаются в L2PcInstance, для получения расы достаточно вызвать функцию getRace.
L2PcInstance у меня нет, есть L2NPcInstance но там тоже нету getRace. getRace нашлась L2NpcTemplate Smile
PHP код:
<?php 
...
public
int getRace()
{
return
race;
}
...
я так понимаю это оно ?
Вот что сейчас есть, еще ничего не проверял, мб гдето ошибки в логики или еще чем то есть, подскажите как лучше Smile Это типа тот код который отвечает за проверку враждующих рас
PHP код:
<?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;
}
}

}
Ребят, можно пример как в сборке от фениксов получить расу выделенного персонажа ?
Ответ
#6
spyder Написал:L2PcInstance у меня нет
Серьезно? Честно-честно?
Классический Interlude PvP сервер http://akamanah.ru/
Ответ
#7
SunnyX Написал:Серьезно? Честно-честно?

Честно-Честно:negodue:
Ответ
#8
Цитата:Серьезно? Честно-честно?
Согласен, могу быть не прав. Может поможешь тогда, мне нубу, сделать правильно ?
Ответ
#9
spyder Написал:Согласен, могу быть не прав. Может поможешь тогда, мне нубу, сделать правильно ?
Прошу прощения, искал в гугле, наткнулся на эту тему, не обратил внимания на дату :redlol:
Ответ


Возможно похожие темы ...
Тема Автор Ответы Просмотры Последний пост
  Расовая война L2jTeam 7 2,275 12-20-2015, 07:42 PM
Последний пост: L2Unique

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


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