[Help] Building WzAG.dll

Няма ли начин да се направи така, че да не си пречат?
 
Сещам се за няколко начина. (xax) Към 5 ще погледна.
 
  • Like
Reactions: pafa7a
Благодаря предварително
 
Сега
Code:
*(DWORD*)([COLOR=Red]0x00403BA7[/COLOR]+1) = (DWORD)&ProtocolCoreEx - ([COLOR=Red]0x00403BA7[/COLOR]+5);
става на
Code:
*(DWORD*)([COLOR=Red]0x00407E8C[/COLOR]+1) = (DWORD)&ProtocolCoreEx - ([COLOR=Red]0x00407E8C[/COLOR]+5);
а
Code:
pProtocolCore ProtocolCore = (pProtocolCore) [COLOR=Red]0x0054C430[/COLOR];
става на
Code:
pProtocolCore ProtocolCore = (pProtocolCore) [COLOR=Red]0x0054D92C[/COLOR];
Да видим ще ям ли ребърца (xax)
 

Attachments

  • GameServer.rar
    577.1 KB · Views: 4
Сега всичко е наред
Cookie2.jpg


Последни 2 въпроса и може да му удариш 1 ключ :
1) как да извлека FetchArray() от 'MySQL.Execute("SELECT * FROM [MuOnline].[dbo].[MEMB_CREDITS] WHERE memb___id = '%s'", gObj[aIndex].AccountID);' ?

2) Защо функцията '
void MsgOutputGlobal(int aIndex,char* Message,...)
{
char Packet[512]="";
va_list pArguments;
va_start(pArguments,Message);
vsprintf(&Packet[0],Message,pArguments);
va_end(pArguments);
GCServerMsgStringSend(&Packet[0],aIndex,0);
}'
след като я използвам не се случва нищо (очаквам да покаже резултата като глобално съобщение)
 
Сега всичко е наред
Cookie2.jpg


Последни 2 въпроса и може да му удариш 1 ключ :
1) как да извлека FetchArray() от 'MySQL.Execute("SELECT * FROM [MuOnline].[dbo].[MEMB_CREDITS] WHERE memb___id = '%s'", gObj[aIndex].AccountID);' ?

2) Защо функцията '
void MsgOutputGlobal(int aIndex,char* Message,...)
{
char Packet[512]="";
va_list pArguments;
va_start(pArguments,Message);
vsprintf(&Packet[0],Message,pArguments);
va_end(pArguments);
GCServerMsgStringSend(&Packet[0],aIndex,0);
}'
след като я използвам не се случва нищо (очаквам да покаже резултата като глобално съобщение)
Толкова мърлявата е преправян този код (SQL.cpp), че буквално трябва да изпращаш по нова заявка за всяка колона.
Code:
MySQL.Execute("SELECT Resets FROM [MuOnline].[dbo].[Character] WHERE Name = '%s'", gObj[aIndex].Name);
int Resets = MySQL.GetInt();

MySQL.Execute("SELECT GrandResets FROM [MuOnline].[dbo].[Character] WHERE Name = '%s'", gObj[aIndex].Name);
int GrandResets = MySQL.GetInt();
MsgOutputGlobal се използва по следния начин
Code:
MsgOutputGlobal(играч, "съобщение", аргументи)
Конкретен пример
Code:
void InfoCommand(int aIndex)
{
    MySQL.Execute("SELECT Resets FROM [MuOnline].[dbo].[Character] WHERE Name = '%s'", gObj[aIndex].Name);
     int Resets = MySQL.GetInt();

    MySQL.Execute("SELECT GrandResets FROM [MuOnline].[dbo].[Character] WHERE Name = '%s'", gObj[aIndex].Name);
    int GrandResets = MySQL.GetInt();

    MsgOutputGlobal(aIndex, "You have %d resets and %d grand resets", Resets, GrandResets);
}
Имай предвид обаче, че конкретната MsgOutputGlobal функция ще изпраща съобщението само до конкретния играч, а не до всички.
 
  • Like
Reactions: Deleted member 3583
А въпроса с FetchArray()?
Представям си го като
'Select * from Character where name=℅s'
char row[256]=MySQL.FetchArray();

Като се прибера ще видя cSQL как работи и евентуално сам ще се оправя с него
 
Last edited:
Ако се загледаш ще забележиш че FetchArray() не фигурира в .cpp файла.