rendered paste bodyIndex: TownHall/GameMechanics.cpp
===================================================================
--- TownHall/GameMechanics.cpp (revision 42)
+++ TownHall/GameMechanics.cpp (working copy)
@@ -146,14 +146,20 @@
pkg << pCreature->guid << CREATUREGUID_HIGH;
pkg << (unsigned long)580; // npc text
pkg << (unsigned long)2;
+
pkg << (unsigned long)97; // SH Heal handler
pkg << (unsigned char)0;
pkg << (unsigned char)0;
+ pkg << (unsigned long)0;
pkg << "Return me to life.";
+ pkg << (unsigned char)0;
+
pkg << (unsigned long)100; // Default for close gossip
pkg << (unsigned char)0;
pkg << (unsigned char)0;
+ pkg << (unsigned long)0;
pkg << "Goodbye.";
+ pkg << (unsigned char)0;
pClient->Send(&pkg);
return;
Index: TownHall/MsgHandlers.cpp
===================================================================
--- TownHall/MsgHandlers.cpp (revision 42)
+++ TownHall/MsgHandlers.cpp (working copy)
@@ -2745,15 +2745,17 @@
pkg << (unsigned long)pQuest->Data.zoneid;
pkg << (unsigned long)pQuest->Data.questtype;
+ pkg << (unsigned long)0; //SuggestedPlayers
pkg << (unsigned long)pQuest->Data.repfaction[0];
pkg << (unsigned long)pQuest->Data.repvalue[0];
- pkg << (unsigned long)pQuest->Data.repfaction[1]; // ?
- pkg << (unsigned long)pQuest->Data.repvalue[1]; // ?
+ pkg << (unsigned long)pQuest->Data.repfaction[1]; // ?
+ pkg << (unsigned long)pQuest->Data.repvalue[1]; // ?
pkg << (unsigned long)DataManager.QuestIDs(pQuest->Data.nextquest); // nextquest
pkg << (unsigned long)pQuest->Data.rewardgold;
- pkg << (unsigned long)pQuest->Data.rewardexp; // quest exp
- pkg << (unsigned long)pQuest->Data.learnspell;
+ pkg << (unsigned long)pQuest->Data.rewardexp; // quest exp
+ pkg << (unsigned long)pQuest->Data.learnspell; //RewardSpellID
+ pkg << (unsigned long)0; //EffectOnPlayer - Spell/effect cast on player when completing.
pkg << (unsigned long)(DataManager.ItemTemplates(pQuest->Data.srcitem[0]));
pkg << (unsigned long)(DataManager.ItemTemplates(pQuest->Data.srcitemcount[0]));
@@ -3586,13 +3588,13 @@
// Guild master
pkg.Reset(SMSG_PETITION_SHOWLIST);
pkg << guid << PLAYERGUID_HIGH;
- // Packets::PackGuid(pkg,guid,0);
pkg << (char)1;
- pkg << (unsigned long)1;
- pkg << (unsigned long)0x16e7;
- pkg << (unsigned long)0x23ef;
- pkg << (unsigned long)1000;
- pkg << (unsigned long)1;
+ pkg << (unsigned long)1; // index
+ pkg << (unsigned long)5863; // charter entry
+ pkg << (unsigned long)16161; // charter display id
+ pkg << (unsigned long)1000; // charter cost
+ pkg << (unsigned long)0; // unknown
+ pkg << (unsigned long)9; // required signs?
pClient->Send(&pkg);
return;
}
@@ -3792,8 +3794,13 @@
void MsgChannelJoin(CClient *pClient, unsigned int msgID, CDataBuffer &Data)
{
string channelname,pass;
+ uint32 channel_id;
+ uint8 unknown;
+
+ Data >> channel_id >> unknown;
Data >> channelname;
Data >> pass;
+
CChannel* pChannel=NULL;
if(!(pChannel=CChannel::AllChannels[channelname]))
{
@@ -3812,6 +3819,9 @@
void MsgChannelLeave(CClient *pClient, unsigned int msgID, CDataBuffer &Data)
{
string channelname;
+ uint32 unk;
+
+ Data >> unk;
Data >> channelname;
if(!channelname.length())
@@ -4512,30 +4522,36 @@
}
/*response codes: 0 - success; 1 - already have a gm ticket; 2 - ?(success?); 3 - general error*/
}
+
void MsgGMTicketSystemStatus(CClient *pClient, unsigned int msgID, CDataBuffer &Data)
{
pClient->OutPacket(SMSG_GMTICKET_SYSTEMSTATUS,"\x01\x00\x00\x00",4);
//0: unavailable 1: available
}
+
void MsgQueryNextMailTime(CClient *pClient, unsigned int msgID, CDataBuffer &Data)
{
pClient->OutPacket(MSG_QUERY_NEXT_MAIL_TIME,"\x00\xc0\xa8\xc7",4); //-86400 float
}
+
void MsgGetTicket(CClient *pClient, unsigned int msgID, CDataBuffer &Data)
{
pClient->OutPacket(SMSG_GMTICKET_GETTICKET,"\x01\x00\x00\x00",4);
}
+
void MsgMeetStone(CClient *pClient, unsigned int msgID, CDataBuffer &Data)
{
char buffer[12];
memset(buffer,0,12);
pClient->OutPacket(SMSG_MEETINGSTONE_SETQUEUE,buffer,12);
}
+
void MsgSetGameUiTarget(CClient *pClient, unsigned int msgID, CDataBuffer &Data)
{
Data >> pClient->pPlayer->TargetID;
pClient->pPlayer->ResetCombo();
}
+
void MsgTime(CClient *pClient, unsigned int msgID, CDataBuffer &Data)
{
uint32 curtime=time(NULL);
@@ -4548,16 +4564,19 @@
{
memset(&pClient->pPlayer->Data.TutorialFlags,0xff,0x20);
}
+
void MsgHelm(CClient *pClient, unsigned int msgID, CDataBuffer &Data)
{
pClient->pDataObject->ToggleFlag(STATUS_NOHELM);
pClient->UpdateObject();
}
+
void MsgCloak(CClient *pClient, unsigned int msgID, CDataBuffer &Data)
{
pClient->pDataObject->ToggleFlag(STATUS_NOCLOAK);
pClient->UpdateObject();
}
+
void MsgSetWeaponMode(CClient *pClient, unsigned int msgID, CDataBuffer &Data)
{
unsigned char mode;
@@ -4565,6 +4584,7 @@
pClient->pDataObject->SetWeaponMode(mode);
pClient->UpdateObject();
}
+
void MsgStandState(CClient *pClient, unsigned int msgID, CDataBuffer &Data)
{
unsigned char state;
@@ -4572,6 +4592,7 @@
pClient->pDataObject->SetStandState(state);
pClient->UpdateObject();
}
+
void MsgSetSheathed(CClient *pClient, unsigned int msgID, CDataBuffer &Data)
{
pClient->pPlayer->bSheathed = !pClient->pPlayer->bSheathed;
@@ -4586,6 +4607,7 @@
}
pClient->pPlayer->UpdateObject();
}
+
void MsgRoll(CClient *pClient, unsigned int msgID, CDataBuffer &Data)
{
uint32 min;
@@ -4662,6 +4684,7 @@
}
return;
}
+
void MsgCancelAura(CClient *pClient, unsigned int msgID, CDataBuffer &Data)
{
uint32 id;Data>>id;
@@ -4688,7 +4711,7 @@
void MsgRequestRaidInfo(CClient *pClient, unsigned int msgID, CDataBuffer &Data)
{
- Debug.Log("Unhandled CMSG_REQUEST_RAID_INFO");
+ Debug.Log("Unhandled CMSG_REQUEST_RAID_INFO");
}
// --- PET HANDLERS --- //
Index: TownHall/Packets.cpp
===================================================================
--- TownHall/Packets.cpp (revision 42)
+++ TownHall/Packets.cpp (working copy)
@@ -254,51 +254,78 @@
switch(*i)
{
case GOSSIPTYPE_QUEST:
- pkg << (unsigned long)0;
- pkg << (unsigned short)0;
+ pkg << (unsigned long)0; //menuId
+ pkg << (unsigned char)0; //menuIcon
+ pkg << (unsigned char)0; //input
+ pkg << (unsigned long)0; //requiredMoney
pkg << "Quests are above!";
+ pkg << (unsigned char)0; //char // acceptText - show as accept dialog when clicking on menu item
break;
case GOSSIPTYPE_TRADE:
pkg << (unsigned long)90; // 90 = trade
- pkg << (unsigned short)1;
+ pkg << (unsigned char)1; //menuIcon
+ pkg << (unsigned char)0; //input
+ pkg << (unsigned long)0; //requiredMoney
pkg << "Items for Sale";
+ pkg << (unsigned char)0; //char// acceptText - show as accept dialog when clicking on menu item
break;
case GOSSIPTYPE_TRAIN:
pkg << (unsigned long)91; // 91 = train
- pkg << (unsigned short)3;
+ pkg << (unsigned char)3;
+ pkg << (unsigned char)0; //input
+ pkg << (unsigned long)0; //requiredMoney
pkg << "Train me";
+ pkg << (unsigned char)0; //char// acceptText - show as accept dialog when clicking on menu item
break;
case GOSSIPTYPE_TAXI:
pkg << (unsigned long)92; // 92 = taxi
- pkg << (unsigned short)4;
+ pkg << (unsigned char)4;
+ pkg << (unsigned char)0; //input
+ pkg << (unsigned long)0; //requiredMoney
pkg << "Flight Destinations";
+ pkg << (unsigned char)0; //char// acceptText - show as accept dialog when clicking on menu item
break;
case GOSSIPTYPE_GUILD:
pkg << (unsigned long)93; // 93 = Guild Master
- pkg << (unsigned short)5;
+ pkg << (unsigned char)5;
+ pkg << (unsigned char)0; //input
+ pkg << (unsigned long)0; //requiredMoney
pkg << "Guild Management";
+ pkg << (unsigned char)0; //char// acceptText - show as accept dialog when clicking on menu item
break;
case GOSSIPTYPE_TABARD:
pkg << (unsigned long)94; // 94 = Tabard Vendor
- pkg << (unsigned short)6;
+ pkg << (unsigned char)6;
+ pkg << (unsigned char)0; //input
+ pkg << (unsigned long)0; //requiredMoney
pkg << "Buy Guild Tabard";
+ pkg << (unsigned char)0; //char// acceptText - show as accept dialog when clicking on menu item
break;
case GOSSIPTYPE_BINDER:
pkg << (unsigned long)95; // 95 = Binder
- pkg << (unsigned short)5; // CHECKME
+ pkg << (unsigned char)5; // CHECKME
+ pkg << (unsigned char)0; //input
+ pkg << (unsigned long)0; //requiredMoney
pkg << "Make this inn your home.";
+ pkg << (unsigned char)0; //char// acceptText - show as accept dialog when clicking on menu item
break;
default:
pkg << (unsigned long)0;
- pkg << (unsigned short)0;
+ pkg << (unsigned char)0;
+ pkg << (unsigned char)0; //input
+ pkg << (unsigned long)0; //requiredMoney
pkg << "No option";
+ pkg << (unsigned char)0; //char// acceptText - show as accept dialog when clicking on menu item
break;
}
}
pkg << (unsigned long)100;
- pkg << (unsigned short)0;
+ pkg << (unsigned char)0;
+ pkg << (unsigned char)0; //input
+ pkg << (unsigned long)0; //requiredMoney
pkg << "I'm done talking to you.";
+ pkg << (unsigned char)0; //char// acceptText - show as accept dialog when clicking on menu item
// Quests! Fixed by nneonneo ^_^
std::list<unsigned long> Quests;
@@ -329,12 +356,14 @@
for(std::list<unsigned long>::iterator q=Quests.begin();q!=Quests.end();q++)
{
uint32 qid=(*q)&0x7FFFFFFF; // byebye hidden flag
- pkg << (unsigned long)qid;
+ pkg << (unsigned long)qid; //q_menuId
+
if((*q)&0x80000000)
- pkg << (unsigned long)0x03; // Icon
+ pkg << (unsigned long)0x03; // q_menuIcon
else
- pkg << (unsigned long)0x05; // Icon
- pkg << (unsigned long)0; // Current
+ pkg << (unsigned long)0x05; // q_menuIcon
+
+ pkg << (unsigned long)0; //q_base_level //thx RomanRom2
if (!DataManager.RetrieveObject((CWoWObject**)&pQuest, OBJ_QUESTINFO, qid))
pkg << "Quest not found in DB!";
else
Index: TownHall/Player.cpp
===================================================================
--- TownHall/Player.cpp (revision 42)
+++ TownHall/Player.cpp (working copy)
@@ -1461,7 +1461,6 @@
{
CPacket pkg(SMSG_CAST_RESULT);
pkg << (unsigned long)7266;
- pkg << (unsigned char)2;
pkg << (unsigned char)SPELL_FAILED_TARGET_DUELING;
pClient->Send(&pkg);
}
@@ -1472,7 +1471,6 @@
{
CPacket pkg(SMSG_CAST_RESULT);
pkg << (unsigned long)7266;
- pkg << (unsigned char)2;
pkg << (unsigned char)SPELL_FAILED_TARGET_DUELING;
pClient->Send(&pkg);
}
Index: TownHall/res/TownHall.manifest
===================================================================
--- TownHall/res/TownHall.manifest (revision 42)
+++ TownHall/res/TownHall.manifest (working copy)
@@ -6,7 +6,7 @@
name="Microsoft.Windows.TownHall"
type="win32"
/>
-<description>SWemu Realm Server Application</description>
+<description>Pantera Realm Server Application</description>
<dependency>
<dependentAssembly>
<assemblyIdentity
Index: TownHall/Settings.cpp
===================================================================
--- TownHall/Settings.cpp (revision 42)
+++ TownHall/Settings.cpp (working copy)
@@ -24,7 +24,7 @@
{
//Default settings (will be overridden in the loading of settings)
max_connections = 10;
- server_welcome_message = strdup("Welcome to the SWemu Server");
+ server_welcome_message = strdup("Welcome to the TyphoonWoW Server");
server_owner = strdup("nneonneo");
dbc_path = strdup("data/dbc/");
maps_path = strdup("data/maps/");
Index: TownHall/Spell.cpp
===================================================================
--- TownHall/Spell.cpp (revision 42)
+++ TownHall/Spell.cpp (working copy)
@@ -194,11 +194,11 @@
void CSpell::SendSpellResult()
{
- char buffer[5];
- memset(buffer,0,5);
-
- *(unsigned long*)&buffer[0]=SpellID;
- pClient->OutPacket(SMSG_CAST_RESULT,buffer,5);
+ CPacket pkg;
+ pkg.Reset(SMSG_TARGET_CAST_RESULT);
+ Packets::PackGuid(pkg, pClient->pPlayer->guid, PLAYERGUID_HIGH);
+ pkg << (unsigned long)SpellID;
+ pClient->Send(&pkg);
}
void CSpell::SendSpellGo()
@@ -354,7 +354,6 @@
{
CPacket pkg(SMSG_CAST_RESULT);
pkg << (unsigned long)SpellID;
- pkg << (unsigned char)2;
pkg << (unsigned char)reason;
pClient->Send(&pkg);
}
@@ -363,7 +362,6 @@
{
CPacket pkg(SMSG_CAST_RESULT);
pkg << (unsigned long)SpellID;
- pkg << (unsigned char)2;
pkg << (unsigned char)reason;
pkg << msg;
pClient->Send(&pkg);
Index: TownHall/TownHall.cpp
===================================================================
--- TownHall/TownHall.cpp (revision 42)
+++ TownHall/TownHall.cpp (working copy)
@@ -129,7 +129,7 @@
time_t endtime;
time(&endtime);
// puts("Loaded successfully");
- printf("SWemu server successfully loaded in %.2f seconds!\r\n\r\n", difftime(endtime, starttime));
+ printf("TyphoonWoW server successfully loaded in %.2f seconds!\r\n\r\n", difftime(endtime, starttime));
/* printf("==========================\r\n");
printf("SERVER INFO:\r\n");
printf("------------\r\n");
Index: TownHall/TownHallDlg.cpp
===================================================================
--- TownHall/TownHallDlg.cpp (revision 42)
+++ TownHall/TownHallDlg.cpp (working copy)
@@ -133,15 +133,15 @@
pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);
}
}
- SetWindowText("SWemu Emulator");
+ SetWindowText("TyphoonWoW Emulator");
// Set the icon for this dialog. The framework does this automatically
// when the application's main window is not a dialog
SetIcon(m_hIcon, TRUE); // Set big icon
SetIcon(m_hIcon, FALSE); // Set small icon
// m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
- m_TrayIcon.Create(NULL,WM_APP+10,_T("SWemu Realm Server"),m_hIcon,IDR_MENU,FALSE,0,0,0,10);
- Txt_ServerName.SetWindowText("SWemu Server");
+ m_TrayIcon.Create(NULL,WM_APP+10,_T("TyphoonWoW Realm Server"),m_hIcon,IDR_MENU,FALSE,0,0,0,10);
+ Txt_ServerName.SetWindowText("TyphoonWoW Server");
rs_started=FALSE;
m_hBitmap = (HBITMAP)LoadImage(GetModuleHandle(NULL), "Data\\Design.bin", IMAGE_BITMAP, 0, 0, LR_LOADFROMFILE);
if (m_hBitmap == NULL)