Просмотр полной версии : ulduar_teleport.cpp
русско-говрящий ulduar_teleport под карательские исходники MaNGOS_8896
приготовление:
положить куда следует(желательно не модифицировать, что бы не потерять кодировку). Компилить SD2. И наслаждаться телепортерами с диалогами на русском языке.
зы
кто не в курсе что это такое и с чем его едят, просьба - не задавать глупых вопросов.
Эм... недопереведено? :)
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);
И вроде у Карателя сейчас там вот как раз верхних (переведенных) строк нету...
Кажется я глупость сморозил? :(
я полный ноль в С++, бодал долго этот файл. Но переводить вторую часть не обязательно , все диалоги у нпс беруться из первого блока, пока его не добавил в код, у НПС меню диалога было в 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-координату чуть завысил, кто хочет может уменьшить сотые доли координаты.
Если будет время, попробую cost в него поставить, а то бесплатный телепорт для хаев не дело.
а, ну тогда все ясно. У Карателя ан гит сейчас, получается, нерабочий.
оригинал из исходников Карателя
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)
{
ну и ниже там координаты еще вправил.
кому не нужен перевод, в первом блоке поставте английский диалог
Добавил ответ "Вы сражаетесь", если игрок в бою. Ограничение по уровню, только для 80+. Оплату за телепорт 5 Голд, если нет 5г - "У тебя мало денег". При компиле с телегуем конфликт, перезалил патч исправленный.
http://ytdb.ru/Yuriy/patches/sd2/
тут оба.
Оплату за телепорт 5 Голд
А зачем так много player->ModifyMoney(-1*costo); ? Можно же 1 раз вставить до или после switch.
Ну так сделал, чтобы при желании цену на разные порты поменять.
да вот хрен. не компилится.
или компилится.
Короче, сейчас еще разок все прогоню
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 ошибок нет
Скачай обновленный файл, у тебя возможно не исправленный скачан. У меня компилится без ошибок.
Ага, точно. в файлах обновил.
У себя все равно буду держать файл от Y2Cat - нефиг деньги сосать по такому простому поводу. :)
В настройках ставишь 0 денег, делов то)
Ценный момент в версии Mr.Grom то, что есть проверка:
"Вы сражаетесь", если игрок в бою.
Некоторые игроки пытаються таким образом убежать от преследующего моба, что в условиях инстанса бесполезно.
F разве вот этот кусок не тоже самое делает?
if(!player->getAttackers().empty()) return true; У Mr.Grom просто сообщение об этом дописано, так?
Переписал кусок с сообщением из одного файла в другой. :) :) :)
griffonheart
06.12.2009, 20:44
Жаль, что мангос.ру в дауне :(
Куда делись скрипты SD2 из гита Карателя?
как лежали в его репозитории, так и лежат. никуда не переместили.
скрипты SD2 из гита Карателя
git://github.com/insider42/scriptdev2.git master
А есть у кого-нить это дело в виде патча?
А что там патчить-то? 2-3 правки в файлах и всё
три правки в двух файлах.
Но если Кирикс просит - значит ему зачем-то надо... Я так думаю...
три правки в двух файлах.
Но если Кирикс просит - значит ему зачем-то надо... Я так думаю...
Ага - Кириксу просто лень на самом-то деле и привычнее с патчами =)
Возиться ради не знаю чего лень =)
Mr.Grom
А вот я даже и промолчу, материться не буду. Подожду Кирикса. :) Или пока сам сообразишь. :)
Добавил ответ "Вы сражаетесь", если игрок в бою. Ограничение по уровню, только для 80+. Оплату за телепорт 5 Голд, если нет 5г - "У тебя мало денег". При компиле с телегуем конфликт, перезалил патч исправленный.
что-то мне подсказывает что с таким скриптом даже без зачистки инстанса можно будет портоваться в любую его часть. Задумка была как раз таки в ограничении этих действий. Разве что это в случае наличия скрипта самого инстанса.
А вот проверка на бой действительно не помешает, как руки дойдут добавлю...
ulduar_teleport.cpp - что с ним делать?
Вставлять суда \scripts\custom\ ?
Dlmas
А в шапке написано: зы
кто не в курсе что это такое и с чем его едят, просьба - не задавать глупых вопросов. :) :) :) :)
vBulletin® v3.8.4, Copyright ©2000-2024, Jelsoft Enterprises Ltd. Перевод: zCarot