#include "stdafx.h"
#include "servercommand.h"
#define COMMAND StrCmpPT
typedef UINT( __cdecl *t_GetItemBySpeckPerf )( UserData * pcUserData, UserData * pcUserDataRecv, char * ItemCodeOrName );
t_GetItemBySpeckPerf GetItemBySpeckPerf = ( t_GetItemBySpeckPerf )0x08B70388;
typedef BOOL( __cdecl *tfnGetParamOld )(char * pszBuffRecv, char * pszBuffer);
tfnGetParamOld fnGetParamOld = (tfnGetParamOld)0x00552320;
typedef UserData*(__cdecl *tfnGetUsedataLoginName)(char * pszName);
tfnGetUsedataLoginName fnGetUsedataLoginName = (tfnGetUsedataLoginName)0x00552400;
extern BOOL bTestDebugDamageUnit;
extern BOOL bFreeExpEvent;
extern int iExpFreeExp;
extern int iUpdateMaxPacket;
extern int iUpdateMaxUnitMask;
extern int iUpdateFrameCounter;
int StrCmpPT( const char *Comando1, const char *Comando2 )
{
int Resultado = 0;
__asm{
pushad
push ecx
push Comando2
mov eax, Comando1
mov ecx, 0x005522D0
call ecx
add esp, 4
mov Resultado, eax
pop ecx
popad
}
return Resultado;
}
void WriteSQLSkillInfo( char * pszColumnName, char * pszSkillTier, int iClass )
{
int iCount = 0;
struct SQLSkillDataInfo
{
char szColumnName[64];
char szValues[10][32];
};
SQLSkillDataInfo * ps = new SQLSkillDataInfo[10];
SQLConnection * pcDB = SQLCONNECTION( DATABASEID_SkillDB );
if ( pcDB->Open() )
{
if ( pcDB->Prepare( FormatString( "SELECT * FROM %s", pszColumnName ) ) )
{
if ( pcDB->Execute() )
{
if ( pcDB->GetColumnCount( iCount ) )
{
for ( int i = 0; i < iCount; i++ )
{
pcDB->GetColumnName( i + 1, ps[i].szColumnName, _countof( ps[i].szColumnName ) );
}
}
int j = 0;
while ( pcDB->Fetch() )
{
for ( int i = 0; i < iCount; i++ )
{
pcDB->GetData( i + 1, PARAMTYPE_String, ps[i].szValues[j], _countof( ps[i].szValues[j] ) );
}
j++;
}
}
}
pcDB->Close();
}
char * pszClass = "Fighter";
if ( iClass == CHARACTERCLASS_Mechanician )
pszClass = "Mech";
if ( iClass == CHARACTERCLASS_Archer )
pszClass = "Archer";
if ( iClass == CHARACTERCLASS_Pikeman )
pszClass = "Pike";
if ( iClass == CHARACTERCLASS_Atalanta )
pszClass = "Ata";
if ( iClass == CHARACTERCLASS_Knight )
pszClass = "Knight";
if ( iClass == CHARACTERCLASS_Magician )
pszClass = "Mage";
if ( iClass == CHARACTERCLASS_Priestess )
pszClass = "Prs";
if ( iClass == CHARACTERCLASS_Assassin )
pszClass = "Asn";
if ( iClass == CHARACTERCLASS_Shaman )
pszClass = "Sha";
WRITEERR( "[%s] BEGIN", pszColumnName );
for ( int i = 0; i < iCount; i++ )
{
WRITEERR( "const int ia%s%s%s[10] = { %s, %s, %s, %s, %s, %s, %s, %s, %s, %s };",
pszClass,
pszSkillTier,
ps[i].szColumnName,
ps[i].szValues[0],
ps[i].szValues[1],
ps[i].szValues[2],
ps[i].szValues[3],
ps[i].szValues[4],
ps[i].szValues[5],
ps[i].szValues[6],
ps[i].szValues[7],
ps[i].szValues[8],
ps[i].szValues[9] );
}
WRITEDBG( "[%s] END", pszColumnName );
WRITEDBG( "" );
DELETA( ps );
}
BOOL WriteMonsterStatus( UnitData * pcUnitData, char * pszNameAttribute, char * pszValueAttribute)
{
char szQuery[512] = { 0 };
BOOL bRet = FALSE;
int iMonsterID = CHARACTERSERVER->SQLGetMonsterID( pcUnitData->GetName() );
float fValue = 0.0f;
int iValue = 0;
INT64 iValue64 = 0;
EDatabaseDataType iParamType = PARAMTYPE_Null;
//Get Parameter Type
SQLConnection * pcDB = SQLCONNECTION( DATABASEID_GameDB );
if ( pcDB->Open() )
{
iParamType = pcDB->GetColumnType( "MonsterList", pszNameAttribute );
pcDB->Close();
}
if ( iParamType == PARAMTYPE_Integer )
iValue = atoi( pszValueAttribute );
else if ( iParamType == PARAMTYPE_Float )
fValue = (float)atof( pszValueAttribute );
else if ( iParamType == PARAMTYPE_Int64 )
iValue64 = _atoi64( pszValueAttribute );
else
iParamType = PARAMTYPE_String;
STRINGFORMAT( szQuery, "UPDATE MonsterList SET %s=? WHERE ID=%d", pszNameAttribute, iMonsterID );
if ( iMonsterID != -1 )
{
SQLConnection * pcDB = SQLCONNECTION( DATABASEID_GameDB );
if ( pcDB->Open() )
{
if ( pcDB->Prepare( szQuery ) )
{
if ( iParamType == PARAMTYPE_Integer )
pcDB->BindParameterInput( 1, iParamType, &iValue );
else if ( iParamType == PARAMTYPE_Float )
pcDB->BindParameterInput( 1, iParamType, &fValue );
else if ( iParamType == PARAMTYPE_Int64 )
pcDB->BindParameterInput( 1, iParamType, &iValue64 );
else
pcDB->BindParameterInput( 1, PARAMTYPE_String, pszValueAttribute, STRLEN( pszValueAttribute ) );
if ( pcDB->Execute() )
bRet = TRUE;
}
pcDB->Close();
}
}
return bRet;
}
ServerCommand::ServerCommand()
{
}
ServerCommand::~ServerCommand()
{
}
void ServerCommand::SQLRead()
{
if ( GAME_SERVER )
return;
int iProcessed[MAX_COMMANDSPERTIME];
for ( int i = 0; i < MAX_COMMANDSPERTIME; i++ )
iProcessed[i] = -1;
SQLConnection * pcDB = SQLCONNECTION( DATABASEID_ServerDB );
if ( pcDB->Open() != FALSE )
{
if ( pcDB->Prepare( "SELECT ID, CommandTypeID, Parameter1, Parameter2, Parameter3 FROM Command WHERE DateProcessed IS NULL" ) )
{
pcDB->Execute();
for ( int i = 0; i < MAX_COMMANDSPERTIME; i++ )
{
if ( !pcDB->Fetch() )
break;
SQLServerCommand s;
pcDB->GetData( 1, PARAMTYPE_Integer, &iProcessed[i] );
pcDB->GetData( 2, PARAMTYPE_Integer, &s.iType );
pcDB->GetData( 3, PARAMTYPE_String, s.szParameter1, _countof( s.szParameter1 ) );
pcDB->GetData( 4, PARAMTYPE_String, s.szParameter2, _countof( s.szParameter2 ) );
pcDB->GetData( 5, PARAMTYPE_String, s.szParameter3, _countof( s.szParameter3 ) );
if ( !SERVERCOMMAND->Process( &s ) )
iProcessed[i] = -1;
}
}
for ( int i = 0; i < MAX_COMMANDSPERTIME; i++ )
{
if ( iProcessed[i] != -1 )
{
pcDB->Clear();
if ( pcDB->Prepare( "UPDATE Command SET DateProcessed=GETDATE() WHERE ID=?" ) )
{
pcDB->BindParameterInput( 1, PARAMTYPE_Integer, &iProcessed[i] );
pcDB->Execute();
}
}
}
pcDB->Close();
}
}
BOOL ServerCommand::SQLReadFromCharacter( const char * pszCharacterName, ESQLServerCommand iCommand, SQLServerCommand & s )
{
BOOL bRet = FALSE;
SQLConnection * pcDB = SQLCONNECTION( DATABASEID_ServerDB );
if ( pcDB->Open() != FALSE )
{
if ( pcDB->Prepare( "SELECT CommandTypeID, Parameter1, Parameter2, Parameter3 FROM Command WHERE (Parameter3=?) AND (DateProcessed IS NULL)" ) )
{
pcDB->BindParameterInput( 1, PARAMTYPE_String, (char*)pszCharacterName, STRLEN( pszCharacterName ) );
if ( pcDB->Execute() && pcDB->Fetch() )
{
pcDB->GetData( 1, PARAMTYPE_Integer, &s.iType );
pcDB->GetData( 2, PARAMTYPE_String, s.szParameter1, _countof( s.szParameter1 ) );
pcDB->GetData( 3, PARAMTYPE_String, s.szParameter2, _countof( s.szParameter2 ) );
pcDB->GetData( 4, PARAMTYPE_String, s.szParameter3, _countof( s.szParameter3 ) );
bRet = TRUE;
}
}
pcDB->Close();
}
return bRet;
}
bool ServerCommand::Process( SQLServerCommand * ps )
{
bool bRet = false;
switch ( ps->iType )
{
case SQLSERVERCOMMAND_ChangeCharacterName:
if ( (ps->szParameter1[0] != 0) && (ps->szParameter2[0] != 0) )
{
int iResult = CHARACTERSERVER->ChangeCharacterName( ps->szParameter1, ps->szParameter2 );
if ( iResult >= 0 )
bRet = true;
}
else
bRet = true;
break;
case SQLSERVERCOMMAND_ChangeCharacterLevel:
if ( (ps->szParameter1[0] != 0) && (ps->szParameter2[0] != 0) )
{
char * pszCharacterName = ps->szParameter1;
int iCharacterLevel = atoi( ps->szParameter2 );
int iResult = CHARACTERSERVER->ChangeCharacterLevel( pszCharacterName, iCharacterLevel );
if ( iResult >= 0 )
bRet = true;
}
else
没有合适的资源?快使用搜索试试~ 我知道了~
FPT.rar_FPT game_Priston tale_com.okbkuiz.fpt_mistaketbk_priston
共814个文件
h:422个
cpp:357个
filters:4个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 38 浏览量
2022-09-24
09:46:04
上传
评论
收藏 14.38MB RAR 举报
温馨提示
FPT source - priston tale
资源详情
资源评论
资源推荐
收起资源包目录
FPT.rar_FPT game_Priston tale_com.okbkuiz.fpt_mistaketbk_priston (814个子文件)
servercommand.cpp 114KB
CSettingsWindow.cpp 113KB
itemserver.cpp 103KB
EXE.cpp 101KB
UIItemInfoBox.cpp 97KB
CoinShopWindow.cpp 88KB
unitinfo.cpp 74KB
MapGame.cpp 67KB
questserver.cpp 63KB
UISkillInfoBox.cpp 62KB
unitserver.cpp 61KB
UnitGame.cpp 59KB
mapserver.cpp 57KB
AnimationHandler.cpp 57KB
userserver.cpp 49KB
ItemHandler.cpp 46KB
EXERender.cpp 45KB
SkillManager.cpp 45KB
QuestWindow.cpp 43KB
DXGraphicEngine.cpp 42KB
HUDController.cpp 41KB
blesscastleserver.cpp 40KB
bellatraserver.cpp 39KB
characterserver.cpp 38KB
logserver.cpp 37KB
CoinShopHandler.cpp 37KB
CChatBox.cpp 36KB
ItemWindowHandler.cpp 36KB
TimerSkill.cpp 35KB
accountserver.cpp 35KB
CParticleFactory.cpp 33KB
ItemTimerHandler.cpp 31KB
GameCore.cpp 30KB
CharacterGame.cpp 30KB
DLL.cpp 30KB
PremiumModel.cpp 28KB
FuryArenaHandler.cpp 26KB
Archer.cpp 25KB
CPartyWindow.cpp 25KB
ChatGame.cpp 25KB
CPartyHandler.cpp 24KB
CQuestGame.cpp 23KB
BlessCastleHandler.cpp 23KB
Atalanta.cpp 21KB
EXEMesh.cpp 21KB
CDailyQuestWindow.cpp 20KB
netserver.cpp 20KB
Priestess.cpp 20KB
DXRenderer.cpp 20KB
AbyssQuestWindow.cpp 20KB
MixHandler.cpp 19KB
Magician.cpp 19KB
GrandFuryWindow.cpp 19KB
Mechanician.cpp 19KB
QuestArenaHandler.cpp 19KB
DXGraphicsDevice.cpp 18KB
chatserver.cpp 18KB
SocketSystemHandler.cpp 18KB
Knight.cpp 18KB
CWarehouseHandler.cpp 17KB
SocketGame.cpp 17KB
HNSSkill.cpp 17KB
Assassin.cpp 17KB
Shaman.cpp 16KB
ItemCreator.cpp 16KB
CMiniMapHandler.cpp 15KB
TestScreen.cpp 15KB
UIInputField.cpp 15KB
DLL.cpp 15KB
server.cpp 15KB
Pikeman.cpp 15KB
EventGirlHandler.cpp 15KB
gamecharacterstatus.cpp 15KB
Fighter.cpp 14KB
Game.cpp 14KB
UIImageRender.cpp 14KB
ImportSMDFile.cpp 14KB
socket.cpp 14KB
RecvPacket.cpp 14KB
UIMessageBallon.cpp 14KB
servercore.cpp 14KB
MessageBox.cpp 13KB
socketserver.cpp 13KB
SettingsModel.cpp 13KB
SQLConnection.cpp 13KB
packetserver.cpp 13KB
eventserver.cpp 12KB
UIItemBox.cpp 12KB
quest.cpp 12KB
DXVideoRenderer.cpp 12KB
AntiCheat.cpp 12KB
MixHandler.cpp 12KB
TradeHandler.cpp 12KB
pvpserver.cpp 12KB
EXEModel.cpp 11KB
UIText.cpp 11KB
EXEMatrix.cpp 11KB
AgeHandler.cpp 11KB
UIList.cpp 11KB
ManufactureHandler.cpp 11KB
共 814 条
- 1
- 2
- 3
- 4
- 5
- 6
- 9
JaniceLu
- 粉丝: 78
- 资源: 1万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0