YTDB

YTDB (http://ytdb.ru/index.php)
-   Патчи (http://ytdb.ru/forumdisplay.php?f=26)
-   -   ulduar_teleport.cpp (http://ytdb.ru/showthread.php?t=916)

Y2kCat 02.12.2009 02:20

ulduar_teleport.cpp
 
Вложений: 1
русско-говрящий ulduar_teleport под карательские исходники MaNGOS_8896
приготовление:
положить куда следует(желательно не модифицировать, что бы не потерять кодировку). Компилить SD2. И наслаждаться телепортерами с диалогами на русском языке.

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

tempura 02.12.2009 10:06

Эм... недопереведено? :)
Код:

        player->ADD_GOSSIP_ITEM(0, "Teleport to the Formation Grounds", GOSSIP_SENDER_MAIN, GROUNDS);
        if(pInstance->GetData(TYPE_FLAME_LEVIATHAN) == DONE)
        {
            player->ADD_GOSSIP_ITEM(0, "Teleport to the Colossal Forge", GOSSIP_SENDER_MAIN, FORGE);
            if(pInstance->GetData(TYPE_XT002_TP))
            {
                player->ADD_GOSSIP_ITEM(0, "Teleport to the Scrapyard", GOSSIP_SENDER_MAIN, SCRAPYARD);
                if(pInstance->GetData(TYPE_XT002) == DONE)
                {
                    player->ADD_GOSSIP_ITEM(0, "Teleport to the Antechamber of Ulduar", GOSSIP_SENDER_MAIN, ANTECHAMBER);
                    if(pInstance->GetData(TYPE_KOLOGARN) == DONE)
                    {
                        player->ADD_GOSSIP_ITEM(0, "Teleport to the Shattered Walkway", GOSSIP_SENDER_MAIN, WALKWAY);
                        if(pInstance->GetData(TYPE_AURIAYA) == DONE)
                        {
                            player->ADD_GOSSIP_ITEM(0, "Teleport to the Conservatory of Life", GOSSIP_SENDER_MAIN, CONSERVATORY);
                            if(pInstance->GetData(TYPE_MIMIRON_TP))
                            {
                                player->ADD_GOSSIP_ITEM(0, "Teleport to the Spark of Imagination", GOSSIP_SENDER_MAIN, SPARK);
                                if(pInstance->GetData(TYPE_VEZAX) == DONE)
                                                                {                                                                       
                                    player->ADD_GOSSIP_ITEM(0, "Teleport to the Prison of Yogg-Saron", GOSSIP_SENDER_MAIN, PRISON);

Я просто строки сверху туда повставлял:
Код:

        player->ADD_GOSSIP_ITEM(0, "Переместиться на Плац", GOSSIP_SENDER_MAIN, GROUNDS);
        if(pInstance->GetData(TYPE_FLAME_LEVIATHAN) == DONE)
        {
            player->ADD_GOSSIP_ITEM(0, "Переместиться в Гигантскую кузню", GOSSIP_SENDER_MAIN, FORGE);
            if(pInstance->GetData(TYPE_XT002_TP))
            {
                player->ADD_GOSSIP_ITEM(0, "Переместиться на Мусорную свалку", GOSSIP_SENDER_MAIN, SCRAPYARD);
                if(pInstance->GetData(TYPE_XT002) == DONE)
                {
                    player->ADD_GOSSIP_ITEM(0, "Переместиться в Вестибюль", GOSSIP_SENDER_MAIN, ANTECHAMBER);
                    if(pInstance->GetData(TYPE_KOLOGARN) == DONE)
                    {
                        player->ADD_GOSSIP_ITEM(0, "Переместиться в Разрушенную аллею", GOSSIP_SENDER_MAIN, WALKWAY);
                        if(pInstance->GetData(TYPE_AURIAYA) == DONE)
                        {
                            player->ADD_GOSSIP_ITEM(0, "Переместиться в Консерваторию", GOSSIP_SENDER_MAIN, CONSERVATORY);
                            if(pInstance->GetData(TYPE_MIMIRON_TP))
                            {
                                player->ADD_GOSSIP_ITEM(0, "Переместиться в зал Искры воображения", GOSSIP_SENDER_MAIN, SPARK);
                                if(pInstance->GetData(TYPE_VEZAX) == DONE)
                                                                {                                                                       
                                    player->ADD_GOSSIP_ITEM(0, "Переместиться в тюрьму Йогг-Сарона", GOSSIP_SENDER_MAIN, PRISON);




И вроде у Карателя сейчас там вот как раз верхних (переведенных) строк нету...


Кажется я глупость сморозил? :(

Y2kCat 02.12.2009 10:16

я полный ноль в С++, бодал долго этот файл. Но переводить вторую часть не обязательно , все диалоги у нпс беруться из первого блока, пока его не добавил в код, у НПС меню диалога было в 1 строчку и только первая кнопка - "Teleport to the Formation Grounds", осталоьных кнопок телепортации не было, после добавления блока
Код:

        player->ADD_GOSSIP_ITEM(0, "Переместиться на Плац", GOSSIP_SENDER_MAIN, GROUNDS);
        player->ADD_GOSSIP_ITEM(0, "Переместиться в Гигантскую кузню", GOSSIP_SENDER_MAIN, FORGE);
        player->ADD_GOSSIP_ITEM(0, "Переместиться на Мусорную свалку", GOSSIP_SENDER_MAIN, SCRAPYARD);
        player->ADD_GOSSIP_ITEM(0, "Переместиться в Вестибюль", GOSSIP_SENDER_MAIN, ANTECHAMBER);
        player->ADD_GOSSIP_ITEM(0, "Переместиться в Разрушенную аллею", GOSSIP_SENDER_MAIN, WALKWAY);
        player->ADD_GOSSIP_ITEM(0, "Переместиться в Консерваторию", GOSSIP_SENDER_MAIN, CONSERVATORY);
        player->ADD_GOSSIP_ITEM(0, "Переместиться в зал Искры воображения", GOSSIP_SENDER_MAIN, SPARK);
        player->ADD_GOSSIP_ITEM(0, "Переместиться в тюрьму Йогг-Сарона", GOSSIP_SENDER_MAIN, PRISON);

диалог появился, кстати в оригинальных исходниках у карателя тоже ошибка. нпс показывает токо одну строчку диалога - "Teleport to the Formation Grounds"
зы
поэтому и занялся правкой, руссифицировал попутно.
ну и координаты к Йогг-Сарону добавил, у Карателя они закоментированы и взяты из предидущих координат. И Z-координату чуть завысил, кто хочет может уменьшить сотые доли координаты.

Mr.Grom 02.12.2009 10:22

Если будет время, попробую cost в него поставить, а то бесплатный телепорт для хаев не дело.

tempura 02.12.2009 10:43

а, ну тогда все ясно. У Карателя ан гит сейчас, получается, нерабочий.

Y2kCat 02.12.2009 10:53

оригинал из исходников Карателя
Код:

bool GossipHello_ulduar_teleporter(Player *player, Creature *creature)
{
    ScriptedInstance *pInstance = (ScriptedInstance *) creature->GetInstanceData();
    if(!pInstance) return true;

    player->ADD_GOSSIP_ITEM(0, "Teleport to the Expedition Base Camp", GOSSIP_SENDER_MAIN, BASE_CAMP);
    if(pInstance->GetData(TYPE_LEVIATHAN_TP))
    {
        player->ADD_GOSSIP_ITEM(0, "Teleport to the Formation Grounds", GOSSIP_SENDER_MAIN, GROUNDS);
        if(pInstance->GetData(TYPE_FLAME_LEVIATHAN) == DONE)
        {
            player->ADD_GOSSIP_ITEM(0, "Teleport to the Colossal Forge", GOSSIP_SENDER_MAIN, FORGE);
            if(pInstance->GetData(TYPE_XT002_TP))
            {

код с моей правкой:

Код:

bool GossipHello_ulduar_teleporter(Player *player, Creature *creature)
{
    ScriptedInstance *pInstance = (ScriptedInstance *) creature->GetInstanceData();
    if(!pInstance) return true;

    player->ADD_GOSSIP_ITEM(0, "Переместиться в Главный лагерь экспедиции", GOSSIP_SENDER_MAIN, BASE_CAMP);
        player->ADD_GOSSIP_ITEM(0, "Переместиться на Плац", GOSSIP_SENDER_MAIN, GROUNDS); //Y2kCat
        player->ADD_GOSSIP_ITEM(0, "Переместиться в Гигантскую кузню", GOSSIP_SENDER_MAIN, FORGE); //Y2kCat
        player->ADD_GOSSIP_ITEM(0, "Переместиться на Мусорную свалку", GOSSIP_SENDER_MAIN, SCRAPYARD); //Y2kCat
        player->ADD_GOSSIP_ITEM(0, "Переместиться в Вестибюль", GOSSIP_SENDER_MAIN, ANTECHAMBER); //Y2kCat
        player->ADD_GOSSIP_ITEM(0, "Переместиться в Разрушенную аллею", GOSSIP_SENDER_MAIN, WALKWAY); //Y2kCat
        player->ADD_GOSSIP_ITEM(0, "Переместиться в Консерваторию", GOSSIP_SENDER_MAIN, CONSERVATORY); //Y2kCat
        player->ADD_GOSSIP_ITEM(0, "Переместиться в зал Искры воображения", GOSSIP_SENDER_MAIN, SPARK); //Y2kCat
        player->ADD_GOSSIP_ITEM(0, "Переместиться в тюрьму Йогг-Сарона", GOSSIP_SENDER_MAIN, PRISON); //Y2kCat
    if(pInstance->GetData(TYPE_LEVIATHAN_TP))
    {
        player->ADD_GOSSIP_ITEM(0, "Teleport to the Formation Grounds", GOSSIP_SENDER_MAIN, GROUNDS);
        if(pInstance->GetData(TYPE_FLAME_LEVIATHAN) == DONE)
        {

ну и ниже там координаты еще вправил.

кому не нужен перевод, в первом блоке поставте английский диалог

Mr.Grom 02.12.2009 11:46

Вложений: 1
Добавил ответ "Вы сражаетесь", если игрок в бою. Ограничение по уровню, только для 80+. Оплату за телепорт 5 Голд, если нет 5г - "У тебя мало денег". При компиле с телегуем конфликт, перезалил патч исправленный.

tempura 02.12.2009 18:23

http://ytdb.ru/Yuriy/patches/sd2/
тут оба.

Shadez 02.12.2009 18:28

Цитата:

Сообщение от Mr.Grom (Сообщение 2999)
Оплату за телепорт 5 Голд

А зачем так много player->ModifyMoney(-1*costo); ? Можно же 1 раз вставить до или после switch.

Mr.Grom 02.12.2009 19:41

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

tempura 04.12.2009 14:08

да вот хрен. не компилится.
или компилится.


Короче, сейчас еще разок все прогоню



c файлом от Mr.Grom
Код:

ulduar_teleport.cpp
..\scripts\northrend\ulduar\ulduar\ulduar_teleport.cpp(76) : error C2561: 'GossipSelect_ulduar_teleporter' : function must return a value
        ..\scripts\northrend\ulduar\ulduar\ulduar_teleport.cpp(69) : see declaration of 'GossipSelect_ulduar_teleporter'
..\scripts\northrend\ulduar\ulduar\ulduar_teleport.cpp(83) : error C2561: 'GossipSelect_ulduar_teleporter' : function must return a value
        ..\scripts\northrend\ulduar\ulduar\ulduar_teleport.cpp(69) : see declaration of 'GossipSelect_ulduar_teleporter'
..\scripts\northrend\ulduar\ulduar\ulduar_teleport.cpp(93) : error C2561: 'GossipSelect_ulduar_teleporter' : function must return a value
        ..\scripts\northrend\ulduar\ulduar\ulduar_teleport.cpp(69) : see declaration of 'GossipSelect_ulduar_teleporter'


с файлом от Y2kCat ошибок нет

Mr.Grom 04.12.2009 15:23

Скачай обновленный файл, у тебя возможно не исправленный скачан. У меня компилится без ошибок.

tempura 04.12.2009 15:47

Ага, точно. в файлах обновил.

У себя все равно буду держать файл от Y2Cat - нефиг деньги сосать по такому простому поводу. :)

Mr.Grom 04.12.2009 16:52

В настройках ставишь 0 денег, делов то)

Y2kCat 04.12.2009 23:57

Ценный момент в версии Mr.Grom то, что есть проверка:
Цитата:

"Вы сражаетесь", если игрок в бою.
Некоторые игроки пытаються таким образом убежать от преследующего моба, что в условиях инстанса бесполезно.

tempura 05.12.2009 10:10

F разве вот этот кусок не тоже самое делает?
Код:

    if(!player->getAttackers().empty()) return true;
У Mr.Grom просто сообщение об этом дописано, так?

Переписал кусок с сообщением из одного файла в другой. :) :) :)

griffonheart 06.12.2009 20:44

Жаль, что мангос.ру в дауне :(
Куда делись скрипты SD2 из гита Карателя?

tempura 06.12.2009 21:12

как лежали в его репозитории, так и лежат. никуда не переместили.

Mr.Grom 09.12.2009 12:01

скрипты SD2 из гита Карателя
git://github.com/insider42/scriptdev2.git master

KiriX 27.12.2009 16:59

А есть у кого-нить это дело в виде патча?

Shadez 27.12.2009 18:16

А что там патчить-то? 2-3 правки в файлах и всё

tempura 27.12.2009 19:16

три правки в двух файлах.
Но если Кирикс просит - значит ему зачем-то надо... Я так думаю...

KiriX 27.12.2009 20:19

Цитата:

Сообщение от tempura (Сообщение 6163)
три правки в двух файлах.
Но если Кирикс просит - значит ему зачем-то надо... Я так думаю...


Mr.Grom 28.12.2009 02:14

Дел то, пути прописать.

tempura 28.12.2009 08:26

Mr.Grom
А вот я даже и промолчу, материться не буду. Подожду Кирикса. :) Или пока сам сообразишь. :)

Insider 02.01.2010 01:19

Цитата:

Сообщение от Mr.Grom (Сообщение 2999)
Добавил ответ "Вы сражаетесь", если игрок в бою. Ограничение по уровню, только для 80+. Оплату за телепорт 5 Голд, если нет 5г - "У тебя мало денег". При компиле с телегуем конфликт, перезалил патч исправленный.

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

А вот проверка на бой действительно не помешает, как руки дойдут добавлю...

Dlmas 03.02.2010 20:27

ulduar_teleport.cpp - что с ним делать?
Вставлять суда \scripts\custom\ ?

srv38 03.02.2010 21:24


tempura 04.02.2010 01:30

Dlmas
А в шапке написано:
Цитата:

Сообщение от Y2kCat (Сообщение 2961)
зы
кто не в курсе что это такое и с чем его едят, просьба - не задавать глупых вопросов.

:) :) :) :)


Текущее время: 17:23. Часовой пояс GMT +4.

YTDB - MaNGOS DataBase