• Страница 1 из 1
  • 1
Архив - только для чтения
Модератор форума: andycrowz  
Преобразование кода
ArhangelSM
Чемпион
Подскажите как переделать код
в Исходниках это
Код
if (Quest const* quest = sObjectMgr->GetQuestTemplate(questId))
     {
         // not sure here what should happen to quests with QUEST_FLAGS_AUTOCOMPLETE
         // if this breaks them, add && object->GetTypeId() == TYPEID_ITEM to this check
         // item-started quests never have that flag
         if (!_player->CanTakeQuest(quest, true))
             return;

         if (quest->IsAutoAccept() && _player->CanAddQuest(quest, true))
             _player->AddQuestAndCheckCompletion(quest, object);

         if (quest->HasFlag(QUEST_FLAGS_AUTOCOMPLETE))
             _player->PlayerTalkClass->SendQuestGiverRequestItems(quest, object->GetGUID(), _player->CanCompleteQuest(quest->GetQuestId()), true);
         else
             _player->PlayerTalkClass->SendQuestGiverQuestDetails(quest, object->GetGUID(), true);
     }

а в патче вот так
Код
    @@ -580,8 +583,13 @@ void WorldSession::HandlePushQuestToParty(WorldPacket& recvPacket)
     continue;
     }
     + if (player->IsPlayerBot())
     + player->GetPlayerbotAI()->AcceptQuest(quest, _player);
     + else
     + {
     player->PlayerTalkClass->SendQuestGiverQuestDetails(quest, player->GetGUID(), true);
     player->SetDivider(_player->GetGUID());
     + }
     }
     }
     }
Сообщение # 1 написано 28.02.2014 в 12:47
_dm666
<3 Death Metal
Цитата ArhangelSM ()
player->PlayerTalkClass->SendQuestGiverQuestDetails(quest, player->GetGUID(), true);
     player->SetDivider(_player->GetGUID());

Ищешь, выше вставляешь то, что помечено "+", плюсы затираешь.
Сообщение # 2 написано 28.02.2014 в 13:02
ArhangelSM
Чемпион
а разве можно задавать 2 условия подряд?
Код
if (Quest const* quest = sObjectMgr->GetQuestTemplate(questId))
{
// not sure here what should happen to quests with QUEST_FLAGS_AUTOCOMPLETE
// if this breaks them, add && object->GetTypeId() == TYPEID_ITEM to this check
// item-started quests never have that flag
if (!_player->CanTakeQuest(quest, true))
return;

if (quest->IsAutoAccept() && _player->CanAddQuest(quest, true))
_player->AddQuestAndCheckCompletion(quest, object);

if (quest->HasFlag(QUEST_FLAGS_AUTOCOMPLETE))
_player->PlayerTalkClass->SendQuestGiverRequestItems(quest, object->GetGUID(), _player->CanCompleteQuest(quest->GetQuestId()), true);
else
if (quest->IsPlayerBot())
_player->GetPlayerbotAI()->AcceptQuest(quest, _player);
else
{
_player->PlayerTalkClass->SendQuestGiverQuestDetails(quest, object->GetGUID(), true);
}
}
Сообщение # 3 отредактировано ArhangelSM - Пятница, 28.02.2014, 13:42
_dm666
<3 Death Metal
Понятно всё.
Советую посмотреть видео, в котором рассказывается о том, как правильно накатить правильно патч.
Сообщение # 4 написано 28.02.2014 в 13:55
ArhangelSM
Чемпион
Цитата std_Suicide ()
Понятно всё.

рад за тебя
Сообщение # 5 написано 28.02.2014 в 14:00
_dm666
<3 Death Metal
Цитата ArhangelSM ()
рад за тебя

Сарказм тут ни к чему. Если ты не в состоянии найти тему о накатывании патчей, то всё печально.
Сообщение # 6 написано 28.02.2014 в 14:20
Paralitik
Чемпион
ArhangelSM, а зачем накатывать патч руками, когда есть команда patch? smile
Сообщение # 7 написано 28.02.2014 в 14:28
ArhangelSM
Чемпион
Цитата Paralitik ()
а зачем накатывать патч руками, когда есть команда patch?

потому что патч не для данной ревизии
Цитата std_Suicide ()
Если ты не в состоянии найти тему о накатывании патчей, то всё печально.

я сомневаюсь что на видео учат описывать классы и if условия
Цитата std_Suicide ()
Ищешь, выше вставляешь то, что помечено "+", плюсы затираешь.

да ты гений просто
Сообщение # 8 написано 28.02.2014 в 15:04
_dm666
<3 Death Metal
Цитата ArhangelSM ()
я сомневаюсь что на видео учат описывать классы и if условия

Ты вообще понимаешь, что делаешь? Где там класс описывается? Там описывается функция из класса, условий можно кучу написать.
Цитата ArhangelSM ()
да ты гений просто

К чему вообще это? Кто виноват, что до тебя туго доходит.
Цитата ArhangelSM ()
потому что патч не для данной ревизии

Вот тут надо к тебе приписать фразу твою же.
Загуглить тяжело же, как накатить патч руками, лучше строить из себя не знай что, при этом возмущаться.
Сообщение # 9 написано 28.02.2014 в 16:34
Ranege
Чемпион
Автор, код, который сверху - это тело функции
void WorldSession::HandlePushQuestToParty(WorldPacket& recvPacket) ?

Как по-мне, так всё очевидно.

Необходимо найти в твоём коде функцию
Код
WorldSession::HandlePushQuestToParty

Засунуть туда
Код
+ if (player->IsPlayerBot())  
      + player->GetPlayerbotAI()->AcceptQuest(quest, _player);  
      + else  
      + {  
      player->PlayerTalkClass->SendQuestGiverQuestDetails(quest, player->GetGUID(), true);  
      player->SetDivider(_player->GetGUID());  
      + }


Цитата ArhangelSM ()
а разве можно задавать 2 условия подряд?


Ты можешь создавать n-ное кол-во условий. Сразу проверяется самое верхнее, потом по шагам вниз и вниз. Чтобы сработало действие, должны пройти все условия.

Если хочешь - пиши, будет время - помогу smile
Сообщение # 10 написано 01.03.2014 в 02:19
ArhangelSM
Чемпион
Ranege, респект человеку который умеет объяснять а не посылает разбираться самому +5 к духу!
Сообщение # 11 написано 01.03.2014 в 14:20
  • Страница 1 из 1
  • 1
Поиск: