|
|
Модератор форума: staford11 |
Форум CMaNGOS Установка / Настройка CMaNGOS Тренеры, Торговцы, Квестеры |
Тренеры, Торговцы, Квестеры |
Заметил такую проблему. Когда подходишь к тренеру обучаться, то он без всяких диалогов открывает сразу список спелов. Если же тренер даёт/забирает квест, то вместо названи квеста в меню стоит пункт Do quest. Это не соответсвует офу. Поэтому я решил попробовать исправить положение. И вот что получилось.
Quester_ui.cpp Код: Quote #include "../sc_defines.h" bool GossipHello_Quester_ui(Player *player, Creature *_Creature) bool GossipSelect_Quester_ui(Player *player, Creature *_Creature, uint32 sender, uint32 action ) bool GossipSelectWithCode_Quester_ui( Player *player, Creature *_Creature, uint32 sender, uint32 action, char* sCode ) bool QuestAccept_Quester_ui(Player *player, Creature *_Creature, Quest *_Quest ) bool QuestSelect_Quester_ui(Player *player, Creature *_Creature, Quest *_Quest ) bool QuestComplete_Quester_ui(Player *player, Creature *_Creature, Quest *_Quest ) uint32 NPCDialogStatus_Quester_ui(Player *player, Creature *_Creature ) bool ChooseReward_Quester_ui(Player *player, Creature *_Creature, Quest *_Quest, uint32 opt ) void AddSC_Quester_ui() newscript = new Script; newscript->pQuestAccept = &QuestAccept_Quester_ui; Trainer_ui.cpp: Код: Quote #include "../sc_defines.h" bool GossipHello_Trainer_ui(Player *player, Creature *_Creature) uint32 result = DIALOG_STATUS_NONE; bool GossipSelect_Trainer_ui(Player *player, Creature *_Creature, uint32 sender, uint32 action ) bool GossipSelectWithCode_Trainer_ui( Player *player, Creature *_Creature, uint32 sender, uint32 action, char* sCode ) bool QuestAccept_Trainer_ui(Player *player, Creature *_Creature, Quest *_Quest ) bool QuestSelect_Trainer_ui(Player *player, Creature *_Creature, Quest *_Quest ) bool QuestComplete_Trainer_ui(Player *player, Creature *_Creature, Quest *_Quest ) uint32 NPCDialogStatus_Trainer_ui(Player *player, Creature *_Creature ) bool ChooseReward_Trainer_ui(Player *player, Creature *_Creature, Quest *_Quest, uint32 opt ) void AddSC_Trainer_ui() newscript = new Script; newscript->pQuestAccept = &QuestAccept_Trainer_ui; }Vendor_ui.cpp: Код: Code #include "../sc_defines.h" bool GossipHello_Vendor_ui(Player *player, Creature *_Creature) { uint64 guid = _Creature->GetGUID(); uint32 textid=_Creature->GetNpcTextId(); bool isqg=false, isven=false; uint32 result = DIALOG_STATUS_NONE; result = _Creature->QUEST_DIALOG_STATUS(player, DIALOG_STATUS_NONE); if(result!=DIALOG_STATUS_NONE)isqg = true; if (_Creature->isQuestGiver()) { player->PrepareQuestMenu( guid ); player->SendPreparedQuest( guid ); } if(_Creature->GetItemCount()) { player->ADD_GOSSIP_ITEM( 1, "I want to browse your goods.", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_TRAIN); isven = true; } if(textid!=DEFAULT_GOSSIP_MESSAGE || (isqg&&isven) ) { player->SEND_GOSSIP_MENU(textid,_Creature->GetGUID()); return true; } return false; } bool GossipSelect_Vendor_ui(Player *player, Creature *_Creature, uint32 sender, uint32 action ) { player->SEND_VENDORLIST( _Creature->GetGUID() ); return false; } bool GossipSelectWithCode_Vendor_ui( Player *player, Creature *_Creature, uint32 sender, uint32 action, char* sCode ) { return false; } bool QuestAccept_Vendor_ui(Player *player, Creature *_Creature, Quest *_Quest ) { return false; } bool QuestSelect_Vendor_ui(Player *player, Creature *_Creature, Quest *_Quest ) { return false; } bool QuestComplete_Vendor_ui(Player *player, Creature *_Creature, Quest *_Quest ) { return false; } uint32 NPCDialogStatus_Vendor_ui(Player *player, Creature *_Creature ) { uint32 textid=_Creature->GetNpcTextId(); uint32 result = DIALOG_STATUS_NONE; result = _Creature->QUEST_DIALOG_STATUS(player, DIALOG_STATUS_NONE); if(result!=DIALOG_STATUS_NONE) return result; if(textid!=DEFAULT_GOSSIP_MESSAGE) return DIALOG_STATUS_CHAT; return false; } bool ChooseReward_Vendor_ui(Player *player, Creature *_Creature, Quest *_Quest, uint32 opt ) { return false; } void AddSC_Vendor_ui() { Script *newscript; newscript = new Script; newscript->Name="vendor_ui"; newscript->pGossipHello = &GossipHello_Vendor_ui; newscript->pGossipSelect = &GossipSelect_Vendor_ui; newscript->pGossipSelectWithCode = &GossipSelectWithCode_Vendor_ui; newscript->pQuestAccept = &QuestAccept_Vendor_ui; newscript->pQuestSelect = &QuestSelect_Vendor_ui; newscript->pQuestComplete = &QuestComplete_Vendor_ui; newscript->pNPCDialogStatus = &NPCDialogStatus_Vendor_ui; newscript->pChooseReward = &ChooseReward_Vendor_ui; m_scripts[nrscripts++] = newscript; Я не совсем понял как задавать госсип-текст (на вики ничего нет), но с использованием данных скриптов нужно просто заполнить поля npc_guid и textid таблицы npc_gossip. textid берётся из таблицы npc_text.
Сообщение # 1 написано 02.01.2008 в 20:33
|
zmurick, расставляй сам вендоров или вот качай это Вендоры Будут в Шатре!
но там еще а5,а6,Т7,Т8 можешь убрать вендеров и т.д.... оставляй все для проф Прикрепления:
AlterShop_0.9.0.rar
(20.9 Kb)
·
spawn_vendors.rar
(1.8 Kb)
Сообщение # 3 написано 06.08.2009 в 15:09
|
| |||
| |||