PDA

Просмотр полной версии : ulduar_teleport.cpp


Y2kCat
02.12.2009, 02:20
русско-говрящий 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
Добавил ответ "Вы сражаетесь", если игрок в бою. Ограничение по уровню, только для 80+. Оплату за телепорт 5 Голд, если нет 5г - "У тебя мало денег". При компиле с телегуем конфликт, перезалил патч исправленный.

tempura
02.12.2009, 18:23
http://ytdb.ru/Yuriy/patches/sd2/
тут оба.

Shadez
02.12.2009, 18:28
Оплату за телепорт 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
три правки в двух файлах.
Но если Кирикс просит - значит ему зачем-то надо... Я так думаю...
Ага - Кириксу просто лень на самом-то деле и привычнее с патчами =)
Возиться ради не знаю чего лень =)

Mr.Grom
28.12.2009, 02:14
Дел то, пути прописать.

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

Insider
02.01.2010, 01:19
Добавил ответ "Вы сражаетесь", если игрок в бою. Ограничение по уровню, только для 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
А в шапке написано: зы
кто не в курсе что это такое и с чем его едят, просьба - не задавать глупых вопросов. :) :) :) :)