Ru-MaNGOS

Ru-MaNGOS (http://mangos.ytdb.ru/index.php)
-   Моды (http://mangos.ytdb.ru/forumdisplay.php?f=8)
-   -   [mod] Vehicles (http://mangos.ytdb.ru/showthread.php?t=81)

Feel the Power 09.06.2010 20:47

Может оно и к лучшему? Наконец возьмутся нормально реализовать :).

lovepsone 09.06.2010 20:49

тут по любому нужен человек из оффа, иначе вехиклы так и останутся не реализованными!

YuruY 09.06.2010 20:51

Цитата:

тут по любому нужен человек из оффа
Да ты что! Еще скажи со сниффером в руке???

KiriX 10.06.2010 12:54

Цитата:

Сообщение от rsa (Сообщение 8311)
Эх... У Тассадара лучше патч больше не брать. Судя по плюхам в коде он его поддерживает из последних сил, уж больно сильно изменилось ядро с тех пор как эти вехиклы были сделаны... Еще пара резких смен чего-либо и все.

+) даёт хоть какую-то работоспособность вехиклам

-) не оптимизирован
-) многие данные правильнее брать из дбц, а не заносить их в БД
-) крашит сервер

Мдям... Переписывать надо бы, но кто может за это взяться? Никто желанием не блещет, а у кого оно есть - не имеет достаточных знаний =(

zergtmn 10.06.2010 15:28

Цитата:

Сообщение от KiriX (Сообщение 8351)
-) крашит сервер

Дампы, логи есть?

KiriX 10.06.2010 15:54

Вложений: 1
Вот такой лог:
Код:

Registers:
EAX:41150000
EBX:71581210
ECX:00000001
EDX:00000001
ESI:00000000
EDI:0097D880
CS:EIP:001B:00733672
SS:ESP:0023:08F621CC EBP:08F62228
DS:0023 ES:0023 FS:003B GS:0000
Flags:00010202

Call stack:
Address Frame Function SourceFile
00733672 00000000 Vehicle::RellocatePassengers+62
0045F934 00000000 WorldObject::Relocate+E4
00549682 00000000 Player::LoadFromDB+C62
0090F3D4 00000000 WorldSession::HandlePlayerLogin+184
0090EEE0 00000000 CharacterHandler::HandlePlayerLoginCallback+80
00913C5D 00000000 MaNGOS::IQueryCallback<MaNGOS::Callback<CharacterHandler,QueryResult ,SqlQueryHolder ,void,void> >::Execute+2D
0097FF58 00000000 SqlResultQueue::Update+28
00645105 00000000 World::UpdateResultQueue+15
0064358E 00000000 World::Update+90E
0045687E 00000000 WorldRunnable::run+8E
0097D899 00000000 ACE_Based::Thread::ThreadTask+19
002914D4 00000000 ?invoke@ACE_OS_Thread_Adapter@@UAEKXZ+74

Полного уже нет - удалил...

Кто не может перевести патч под последние ревы самостоятельно, патч под 10049 в аттаче.

timmit 10.06.2010 17:33

Патч брались переработать лично на этом форуме и в этой теме два человека, но... от них после этого даже 1 строки текста небыло

DiffuSer 10.06.2010 19:22

KiriX, это подогнанная версия Tasssadar'а?

KiriX 11.06.2010 08:17

Цитата:

Сообщение от DiffuSer (Сообщение 8374)
KiriX, это подогнанная версия Tasssadar'а?

Да, именно так.

zergtmn 11.06.2010 17:00

Номера вехиклов, известные на данный момент:
http://paste2.org/p/873425 (взято из TDB).
Переделал, чтобы работало как у них, без таблиц vehicle_data и vehicle_seat_data. Пытаюсь понять назначение флагов из DBC.

zergtmn 13.06.2010 12:21

Флаги пока такие откопал:
Код:

enum VehicleSeatFlags
{
    SF_HIDE_PASSENGER              = 0x00000200,      // Passenger is hidden
    SF_MAIN_RIDER                  = 0x00000800,      // Can control vehicle
    SF_USABLE                      = 0x02000000,
    SF_CAN_CAST                    = 0x20000000,
};

Кто-нибудь пробовал ограничивать перемещение вехиклов? Чтобы нельзя было прыгать, ехать вбок, поворачивать произвольным образом...

Insider42 14.06.2010 10:31


Grinder 14.06.2010 18:22

Цитата:

Сообщение от Insider42 (Сообщение 8546)

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

tempura 14.06.2010 18:45

Цитата:

Сообщение от Grinder (Сообщение 8581)
А в чем трудность переписать наработки тринити по вехиклам на мангос?

А в чем смысл переписки хаковой реализации с багами на нормальное ядро?

Null 14.06.2010 18:52

Не соглашусь насчет хаковой реализации. Реализовано вполне нормально (покажите хотя бы 2 серьезных хака?). Почему-то стереотип, сложившийся в головах людей, использующих ТОЛЬКО мангос, жо сих пор имеет место в жизни.

KiriX 14.06.2010 21:43

Цитата:

Сообщение от Null (Сообщение 8586)
Не соглашусь насчет хаковой реализации. Реализовано вполне нормально (покажите хотя бы 2 серьезных хака?). Почему-то стереотип, сложившийся в головах людей, использующих ТОЛЬКО мангос, жо сих пор имеет место в жизни.
P.S. Не надо меня банить, или еще каким-либо образом стращать, это лишь покажет ваше бессилие.

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

zergtmn 14.06.2010 22:03

Цитата:

Сообщение от KiriX (Сообщение 8622)
zergtmn, почему свой пост удалил?

Слишком сырая реализация, спавн вехиклов не продуман, на лайв сервер лучше это не ставить. Нормально работают только многоместные маунты. Вот думаю, может на 2 патча разбить: многоместные маунты и перевозка пассажиров (1-й) и спавн вехиклов, аксессуары, экшн бар, таргеты спеллов, AI, топливо (2-й). Делится легко.

KiriX 14.06.2010 22:09

Цитата:

Сообщение от zergtmn (Сообщение 8628)
Слишком сырая реализация, спавн вехиклов не продуман, на лайв сервер лучше это не ставить. Нормально работают только многоместные маунты. Вот думаю, может на 2 патча разбить: многоместные маунты и перевозка пассажиров (1-й) и спавн вехиклов, аксессуары, экшн бар, таргеты спеллов, AI, топливо (2-й). Делится легко.

Так проще, думаю, можно будет отследить багу.
А скрыл инфу, думаю, зря, может кто помог бы =)
P.S: Двухместные от валхалы, кажется, не работают вообще...

tempura 14.06.2010 23:56

Цитата:

Сообщение от Null (Сообщение 8586)
Не соглашусь насчет хаковой реализации. Реализовано вполне нормально (покажите хотя бы 2 серьезных хака?).

А на этот вопрос очень просто ответить, как мне кажется. Раз в основное ядро Мангос не принято - значит отсутствует приемлемая, с точки зрения политики разработки проекта, реализация. А так как политика разработки проекта подразумевает максимально приближенную к оффу реализацию - соответственно не принятые патчи не отвечают этому критерию.

CruncH 15.06.2010 00:34

Ну все может быть и по другому(я вообще, а не про частный случай), что этим транспортам просто не уделяют внимание. Некому ткнуть на ошибки, на то что нужно переделать, а что оставить. Если вспомнить, то сколько времени пинали патчи на БГ, систему инстов? Даже мелкие патчи иногда остаются без внимания, а потом оказывается, что они были правильными. Ну и раньше другое время было :) были другие люди, которые этими большими патчами занимались.

tempura 15.06.2010 00:59

Цитата:

Сообщение от CruncH (Сообщение 8653)
...этим транспортам просто не уделяют внимание...

Implementing Vehicles 605 постов
Vehicles 621 пост
Куча форков - от инсайдера до тассадара. Люди работают, думают, делают.
Просто (видимо) пока недостаточно сделано?

KiriX 15.06.2010 11:18

Цитата:

Сообщение от tempura (Сообщение 8659)
1) Implementing Vehicles 605 постов
2) Vehicles 621 пост
3) Куча форков - от инсайдера до тассадара. Люди работают, думают, делают.
Просто (видимо) пока недостаточно сделано?

1) Очень хаковая реализация "растикраза"
2) Когда "растикраз" перестал поддерживать - взялся валгальный проект -> тот же самый патч...
3) Куча форков с одним и тем же патчем - 90% - валгальный вариант, и у инсидера вехиклов нет.

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

Grinder 15.06.2010 13:47

Давайте попробую собрать до кучи все что есть в трыне по этому поводу и будем думать вместе как все переделать так чтобы приняли в мангос? Сам помогу всем чем смогу!

KiriX 15.06.2010 17:15

Вложений: 1
Перевёл валгальный скрипт под 10060.
Компилится без ошибок, но в игре не проверял...

Shadez 15.06.2010 17:45

Цитата:

Сообщение от zergtmn (Сообщение 8486)
Чтобы нельзя было прыгать

На некоторых вехиклах прыгать все-таки можно (средства передвижения в Ристалище Серебряного авангарда и Испытании чемпиона)

Rage Hunter 15.06.2010 18:43

Прочитал всю тему по новой!
Мне понравилось
Цитата:

Принцип такой:
1) стоит обычный моб с флагом UNIT_NPC_FLAG_SPELLCLICK
2) При клике на моба, кастуется спелл с эффектом SPELL_EFFECT_SUMMON и типом SUMMON_PROP_GROUP_VEHICLE
3) Суммонится моб класса Vehicle
В этом плане патч корректен.
Тогда вопрос, почему же на трините сразу NPC является вехиклом?
Хотите сказать, что они все не правельно сделали?
Какой смысл ставить моба, потом сумонить еще одного моба? Если проще ставить сразу моба типа вехикл. Сколько раз не смотрел реализацию на trinity она очень интересна, удачна и красива! Единственное в чем заключается проблема при переносе на мангос как и сказал KiriX ядро trinity уже очень сильно отличается от mangos, а все потому что разработчики trinity все время что-то делаю, а не ковыряют все время старые проблемы. Уверен даже на 100% что первая реализация "Случайное подземелье", "ОЛО"(имею ввиду не ту хак версию которая сейчас есть) и многое другое появится на trinity. На мангосе даже элементарное не работает: Вспомним BC версия клиента 2.4.3(а ветка мангос для него помоему 12) играл частно, там в локации Полуостров Адского Пламени есть 3 точки для захвата. Сейчас же патч 3.3.3, а ветка 16 и эти точки до сих пор не работают, а все потому что нет OutdoorPvP, из-за этого нет бафа и т.д. Локация Лес Террокар, подземелья Аукиндон до сих пор нет бафа позволяющего собирать http://ru.wowhead.com/item=28558 (сейчас же падает для всех, а на офе почему-то не так) и т.д.
И если впомноить такую вешь как ДуалСпек, он в репозитарий влетел почти, что в оригенальном виде, как и лежал на форуме и то, что его так долго добавляли говорит только о том, что просто не хотят чужое ставить, лучше подождать 2 года, потом изменить 5 строк и сказать, что сами написали! Согласен что сейчас многое из того что предлагают, вехиклы, различнае бг, арены, спелы и т.д. может и не правильное частично, но все же почему они не могут доработать и внести (как с ДС)? Иначе зачем же вообще нужно обсуждение того или иного патча или мода (которые также от части являются патчами, вехикле лежит в модах, хотя должен лежать в патчах).

Rage Hunter 15.06.2010 18:50

Вложений: 1
Vehicle TrinityCore->Mangos[10062]
Sql
Код:

ALTER TABLE `creature_template`
ADD `spell5` MEDIUMINT(8) UNSIGNED NOT NULL DEFAULT '0' COMMENT 'use vehicle' AFTER `spell4`,
ADD `spell6` MEDIUMINT(8) UNSIGNED NOT NULL DEFAULT '0' COMMENT 'use vehicle' AFTER `spell5`,
ADD `spell7` MEDIUMINT(8) UNSIGNED NOT NULL DEFAULT '0' COMMENT 'use vehicle' AFTER `spell6`,
ADD `spell8` MEDIUMINT(8) UNSIGNED NOT NULL DEFAULT '0' COMMENT 'use vehicle' AFTER `spell7`,
ADD `VehicleId` MEDIUMINT(8) UNSIGNED NOT NULL DEFAULT '0' COMMENT 'Vehicle Id' AFTER `PetSpellDataId`;

не проверено!
крешить не должно!
сесть должен!
все остальное еще не смотрелось! так же требуется поудалять лишнее!

zergtmn 15.06.2010 18:58

Я сделал, чтобы вехиклы спавнились сразу как вехиклы, но выглядит это хаково. HIGHGUID у кричера меняется на HIGHGUID_VEHICLE и все функции поиска кричеров также работают с вехиклами.
Крашить будет, если в SpellMgr::LoadPetDefaultSpells() не убрал строчку
Код:

ASSERT(MAX_CREATURE_SPELL_DATA_SLOT==CREATURE_MAX_SPELLS);

Vladimir 15.06.2010 22:20

Цитата:

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

Konctantin 15.06.2010 22:29

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

Grinder 16.06.2010 11:45

Владимир, хотелось бы услышать ваше мнение как специалиста в ядре по поводу реализации вехиклов. Уже было множество попыток реализации этого, но многие кто брался за разработку бросали это дело :( Какой путь по разработке будет более приемлимым (я имею ввиду по части реализации). Да, опыта по ядру у меня не так много, но всеже хочу разобраться в работе ядра и вехиклов вчастности.

selector 16.06.2010 13:06

Цитата:

Сообщение от KiriX (Сообщение 8746)
Перевёл валгальный скрипт под 10060.
Компилится без ошибок, но в игре не проверял...

Работать не будет хотя бы по причине данного:

Код:

    UNIT_STAT_FOLLOW_MOVE    = 0x00010000,
    UNIT_STAT_FLEEING        = 0x00020000,                    // FleeMovementGenerator/TimedFleeingMovementGenerator active/onstack
    UNIT_STAT_FLEEING_MOVE    = 0x00040000,
+    UNIT_STAT_ON_VEHICLE      = 0x00040000,                    // Unit is on vehicle

Два одинаковых значения для разных UnitState

zergtmn 16.06.2010 13:16

Еще SetFarsightGUID надо заменить на GetCamera()->SetView()/ResetView()

KiriX 16.06.2010 14:08

Цитата:

Сообщение от selector (Сообщение 8817)
Работать не будет хотя бы по причине данного:

Код:

    UNIT_STAT_FOLLOW_MOVE    = 0x00010000,
    UNIT_STAT_FLEEING        = 0x00020000,                    // FleeMovementGenerator/TimedFleeingMovementGenerator active/onstack
    UNIT_STAT_FLEEING_MOVE    = 0x00040000,
+    UNIT_STAT_ON_VEHICLE      = 0x00040000,                    // Unit is on vehicle

Два одинаковых значения для разных UnitState

Обсуждалось
Цитата:

Сообщение от zergtmn (Сообщение 8819)
Еще SetFarsightGUID надо заменить на GetCamera()->SetView()/ResetView()

Патч открывал? Я же это исправлял.

selector 16.06.2010 14:28

KiriX можно узнать/увидеть где обсуждалось? Пересмотрел тему не нашел...

KiriX 16.06.2010 18:20

Цитата:

Сообщение от selector (Сообщение 8828)
KiriX можно узнать/увидеть где обсуждалось? Пересмотрел тему не нашел...

Чес-слово не помню. Помню, что обсуждалось и пришли к выводу, что всё ок =)
И проверено - всё работает. Одно напрягает - кричер не деспавнится, когда садишься на вехикл, а помирает =)
Можешь поставить UNIT_STAT_ON_VEHICLE = 0x00080000 - сути это особо никакой не изменит...

А вот и трупы после юза вехикла:
Код:

+            if(v->GetVehicleFlags() & VF_DESPAWN_NPC)
+            {
+                v->SetSpawnDuration(unit->GetRespawnDelay()*IN_MILLISECONDS);
+                unit->setDeathState(JUST_DIED);
+                unit->RemoveCorpse();
+                unit->SetHealth(0);
+            }

В SD2 есть функция ФорсеДеспавн, в коде нечто подобное есть? =)

added: что я здесь только не делал... Даже по сути удалял всё, выносил за пределы if, использовал ForcedDespawn - один фиг - от кричера, при посадке на вехикл, остаётся труп =(

zergtmn 16.06.2010 19:26

Вот патч, который реализует многоместные маунты: http://paste2.org/p/885207
Бранч: http://github.com/zergtmn/mangos/com...ltiseat_mounts
VehicleId из снифов: http://paste2.org/p/880137, тут не только маунты.
Теоретически на них можно сажать кричеров.

DiffuSer 16.06.2010 19:35

zergtmn, а можно чуть подробнее - многоместные маунты - это какие? Имеется ввиду реализует только работу мамонта, мотоцикла и подобных?

Это уже, я так понимаю, не вырезка из репозитория Wojta?

zergtmn 16.06.2010 19:45

Цитата:

Сообщение от DiffuSer (Сообщение 8839)
zergtmn, а можно чуть подробнее - многоместные маунты - это какие? Имеется ввиду реализует только работу мамонта, мотоцикла и подобных?

Это уже, я так понимаю, не вырезка из репозитория Wojta?

http://ru.wowhead.com/spell=60424, http://ru.wowhead.com/spell=61425
Порт из TC и немного из репозитория Wojta.

selector 16.06.2010 20:14

zergtmn в патче отсутсвует баг с многоместными маунтами и захватом флага на БГ(Варсонг, Око к примеру)?

Человек захватывает флаг, к нему подъезжает второй игрок на многоместном вехикле, флагоносец садиться в кресло и его везут к базе с 100% скоростью

И еще твой патч совместим с патчем/веткой вехиклов от Wjota ?


Текущее время: 20:32. Часовой пояс GMT +3.

ru-mangos.ru - Русское сообщество MaNGOS