📄 mysql.cpp
字号:
tp->Exp = ch->Exp;
tp->viewtype = ch->viewtype;
tp->nk3 = ch->nk[N_VYSEUS];
tp->nk4 = ch->nk[N_ZYPERN];
tp->nk6 = ch->nk[N_YILSE];
ch->GetStepInfo(tp->aStepInfo, sizeof(tp->aStepInfo));
p.h.header.size = sizeof( t_update_char_db);
CheckFightMap(tp->MapName, tp->X, tp->Y, ch ); // 0910 YGI
tp->check_crc = AddCRC(p.u.data, p.h.header.size-4, 10 ); // acer5
QueuePacket( connections, DB_DEMON, &p, 1 );
}
void updateBinaryDataToLoaginServer( t_connection c[], int id )
{
t_packet p;
LPCHARLIST ch = &c[id].chrlst;
if(!::CanSaveUserData(ch,5)){return;}
p.h.header.type = CMD_UPDATE_BINARY_DATA0;
memcpy(p.u.server_update_binary_data0.name, c[id].name, NM_LENGTH);
memcpy(p.u.server_update_binary_data0.id, c[id].id, ID_LENGTH );
memcpy(p.u.server_update_binary_data0.Ws, (UCHAR *)ch->Ws, SIZE_OF_WS );
memcpy(p.u.server_update_binary_data0.Ps, (UCHAR *)ch->Ps, SIZE_OF_PS );
memcpy(p.u.server_update_binary_data0.Skill, (UCHAR *)ch->Skill, SIZE_OF_SKILL );
memcpy(p.u.server_update_binary_data0.skillexp, (UCHAR *)ch->skillexp, SIZE_OF_SKILL_EXP );
memcpy(p.u.server_update_binary_data0.tac_skillEXP, (UCHAR *)ch->tac_skillEXP, SIZE_OF_TAC_SKILL_EXP );
p.h.header.size = sizeof( t_server_update_binary_data0 );
p.u.server_update_binary_data0.check_crc = AddCRC(p.u.data, p.h.header.size-4, 10 ); // acer5
QueuePacket( c, DB_DEMON, &p, 1 );
p.h.header.type = CMD_UPDATE_SCRIPT_DATA;
memcpy(p.u.server_update_script_data.name, c[id].name, NM_LENGTH);
memcpy(p.u.server_update_script_data.id, c[id].id, ID_LENGTH );
memcpy(p.u.server_update_script_data.script_var, (UCHAR *)var[ id], SIZE_OF_SCRIPT_VAR );
p.h.header.size = sizeof( t_server_update_script_data );
p.u.server_update_script_data.check_crc = AddCRC(p.u.data, p.h.header.size-4, 10 ); // acer5
QueuePacket( c, DB_DEMON, &p, 1 );
//////////////////////////// 0218 YGI //////////////////////
EndsetPartyMenberForUpdate( ch );
p.h.header.type = CMD_UPDATE_BINARY_DATA1;
memcpy(p.u.server_update_binary_data1.name, c[id].name, NM_LENGTH);
memcpy(p.u.server_update_binary_data1.id, c[id].id, ID_LENGTH );
memcpy(p.u.server_update_binary_data1.equip, (UCHAR *)ch->equip, SIZE_OF_EQUIP);
memcpy(p.u.server_update_binary_data1.quick, (UCHAR *)ch->quick, SIZE_OF_QUICK);
memcpy(p.u.server_update_binary_data1.party, (UCHAR *)ch->party_str, SIZE_OF_PARTY );
memcpy(p.u.server_update_binary_data1.relation, (UCHAR *)ch->relation_str, SIZE_OF_RELATION);
memcpy(p.u.server_update_binary_data1.employment, (UCHAR *)ch->employment_str, SIZE_OF_EMPLOYMENT);
p.h.header.size = sizeof( t_server_update_binary_data1 );
p.u.server_update_binary_data1.check_crc = AddCRC(p.u.data, p.h.header.size-4, 10 ); // acer5
QueuePacket( c, DB_DEMON, &p, 1 );
p.h.header.type = CMD_UPDATE_INV_DATA;
memcpy(p.u.server_update_inv_data.name, c[id].name, NM_LENGTH);
memcpy(p.u.server_update_inv_data.id, c[id].id, ID_LENGTH );
memcpy(p.u.server_update_inv_data.inv, (UCHAR *)ch->inv, SIZE_OF_INV );
p.h.header.size = sizeof( t_server_update_inv_data );
p.u.server_update_inv_data.check_crc = AddCRC(p.u.data, p.h.header.size-4, 10 ); // acer5
QueuePacket( c, DB_DEMON, &p, 1 );
p.h.header.type = CMD_UPDATE_ITEM_DATA;
memcpy(p.u.server_update_item_data.name, c[id].name, NM_LENGTH);
memcpy(p.u.server_update_item_data.id, c[id].id, ID_LENGTH );
memcpy(p.u.server_update_item_data.Item, (UCHAR *)ch->Item, SIZE_OF_ITEMINDEX );
p.h.header.size = sizeof( t_server_update_item_data );
p.u.server_update_item_data.check_crc = AddCRC(p.u.data, p.h.header.size-4, 10 ); // acer5
QueuePacket( c, DB_DEMON, &p, 1 );
p.h.header.type = CMD_UPDATE_BANKITEM_DATA;
memcpy(p.u.server_update_bankitem_data.name, c[id].name, NM_LENGTH);
memcpy(p.u.server_update_bankitem_data.id, c[id].id, ID_LENGTH );
strcpy(p.u.server_update_bankitem_data.mapname, MapName );
memcpy(p.u.server_update_bankitem_data.bankitem, (UCHAR *)ch->bank, SIZE_OF_BANKITEM );
p.h.header.size = sizeof( t_server_update_bankitem_data );
p.u.server_update_bankitem_data.check_crc = AddCRC(p.u.data, p.h.header.size-4, 10 ); // acer5
QueuePacket( c, DB_DEMON, &p, 1 );
}
void displaySQLError(SQLHSTMT hstmt)
{
SQLCHAR err[80] ;
SQLINTEGER nep ;
SQLCHAR msg[255] ;
SQLSMALLINT num ;
SQLGetDiagRec(SQL_HANDLE_STMT, hstmt, 1, err, &nep, msg, 254, &num) ;
//YGI acer
MyLog( 0, "\nSQL Error MSG: %s; %s", err, msg) ;
}
int AddBoxItem_SQL(int id)
{
HSTMT hStmt = NULL;
RETCODE retCode;
char szQuerry[255];
sprintf(szQuerry, "insert into box_item(id) values (%d)", id);
SQLAllocStmt(hDBC, &hStmt);
retCode = SQLExecDirect(hStmt, (UCHAR *)szQuerry, SQL_NTS);
if(retCode == SQL_SUCCESS || retCode == SQL_SUCCESS_WITH_INFO)
{
//SQLTransact(SQL_NULL_HENV, hDBC, SQL_COMMIT);
SQLFreeStmt(hStmt, SQL_DROP);
return(1); // succeed
}
else
{
//SQLTransact(SQL_NULL_HENV, hDBC, SQL_ROLLBACK);
SQLFreeStmt(hStmt, SQL_DROP);
return(-3); // unknown error
}
};
int DeleteBoxItem_SQL(int id)
{
HSTMT hStmt = NULL;
RETCODE retCode;
char szQuerry[255];
sprintf(szQuerry, "delete from box_item where id=%d", id);
SQLAllocStmt(hDBC, &hStmt);
retCode = SQLExecDirect(hStmt, (UCHAR *)szQuerry, SQL_NTS);
if(retCode == SQL_SUCCESS || retCode == SQL_SUCCESS_WITH_INFO)
{
retCode = SQLFetch(hStmt);
SQLFreeStmt(hStmt, SQL_DROP);
return(1);
}
SQLFreeStmt(hStmt, SQL_DROP);
return -1;
};
//-----------------------------------------
int TotalConnections( void )
{
return 1;
}
//---------------------------------------------
DiseaseTable disease_tbl[6];
// 龙捍 抛捞喉 ~~~ 0104
int GetDisease_SQL( )
{
HSTMT hStmt = NULL;
RETCODE retCode;
SDWORD cbValue;
char szQuerry[2047];
DWORD t;
//char name[31];
for( int a=0; a<6; a++ )
{
/* sprintf(szQuerry, "Select disease_number, han_name, name, lv, nut1_1, nut2_1, nut3_1, probability_1, andor_1, checktime_1, contact_char, talk_char, fuck_char,"
"contact_obj,eat_obj,nut1_2,nut2_2,nut3_2,probability_2,checktime_2,andor_2,dec_str,dec_dex,dec_con,dec_wis,dec_int,dec_movp,dec_char,"
"dec_endu,dec_mor,dec_luck,dec_ws,dec_ps,recoverable,life,health,mp,dp,max_,damage,att_rate,depen_rate,ac,mad,poison,stony,sluggish,active,"
"paralysis,active_time,maintain_time,natural_recovery,nut1_3,nut2_3,nut3_3,probability_3,checktime_3,andor_3,price_heal,price_prevent"
"From DiseaseMain Where disease_number=%d ", a+1);
*/
sprintf(szQuerry, "Select *"
"From DiseaseMain Where disease_number=%d ", a+1);
SQLAllocStmt(hDBC, &hStmt);
retCode = SQLExecDirect(hStmt, (UCHAR *)szQuerry, SQL_NTS);
if(retCode == SQL_SUCCESS || retCode == SQL_SUCCESS_WITH_INFO)
{
retCode = SQLFetch(hStmt);
if(retCode == SQL_SUCCESS)
{
int cn = 1;
retCode = SQLGetData(hStmt, cn++, SQL_C_ULONG, &t, 0, &cbValue); disease_tbl[a].disease_number = (short )t;
retCode = SQLGetData(hStmt, cn++, SQL_C_CHAR, disease_tbl[a].han_name, 31, &cbValue);
retCode = SQLGetData(hStmt, cn++, SQL_C_CHAR, disease_tbl[a].name, 31, &cbValue);
retCode = SQLGetData(hStmt, cn++, SQL_C_ULONG, &t, 0, &cbValue); disease_tbl[a].lv = (short )t;
retCode = SQLGetData(hStmt, cn++, SQL_C_ULONG, &t, 0, &cbValue); disease_tbl[a].nut1_1 = (short )t;
retCode = SQLGetData(hStmt, cn++, SQL_C_ULONG, &t, 0, &cbValue); disease_tbl[a].nut2_1 = (short )t;
retCode = SQLGetData(hStmt, cn++, SQL_C_ULONG, &t, 0, &cbValue); disease_tbl[a].nut3_1 = (short )t;
retCode = SQLGetData(hStmt, cn++, SQL_C_ULONG, &t, 0, &cbValue); disease_tbl[a].probability_1= (short )t;
retCode = SQLGetData(hStmt, cn++, SQL_C_ULONG, &t, 0, &cbValue); disease_tbl[a].andor_1 = (short )t;
retCode = SQLGetData(hStmt, cn++, SQL_C_ULONG, &t, 0, &cbValue); disease_tbl[a].checktime_1 = (short )t;
retCode = SQLGetData(hStmt, cn++, SQL_C_ULONG, &t, 0, &cbValue); disease_tbl[a].contact_char = (short )t;
retCode = SQLGetData(hStmt, cn++, SQL_C_ULONG, &t, 0, &cbValue); disease_tbl[a].talk_char = (short )t;
retCode = SQLGetData(hStmt, cn++, SQL_C_ULONG, &t, 0, &cbValue); disease_tbl[a].fuck_char = (short )t;
retCode = SQLGetData(hStmt, cn++, SQL_C_ULONG, &t, 0, &cbValue); disease_tbl[a].contact_obj = (short )t;
retCode = SQLGetData(hStmt, cn++, SQL_C_ULONG, &t, 0, &cbValue); disease_tbl[a].eat_obj = (short )t;
retCode = SQLGetData(hStmt, cn++, SQL_C_ULONG, &t, 0, &cbValue); disease_tbl[a].nut1_2 = (short )t;
retCode = SQLGetData(hStmt, cn++, SQL_C_ULONG, &t, 0, &cbValue); disease_tbl[a].nut2_2 = (short )t;
retCode = SQLGetData(hStmt, cn++, SQL_C_ULONG, &t, 0, &cbValue); disease_tbl[a].nut3_2 = (short )t;
retCode = SQLGetData(hStmt, cn++, SQL_C_ULONG, &t, 0, &cbValue); disease_tbl[a].probability_2= (short )t;
retCode = SQLGetData(hStmt, cn++, SQL_C_ULONG, &t, 0, &cbValue); disease_tbl[a].checktime_2 = (short )t;
retCode = SQLGetData(hStmt, cn++, SQL_C_ULONG, &t, 0, &cbValue); disease_tbl[a].andor_2 = (short )t;
retCode = SQLGetData(hStmt, cn++, SQL_C_ULONG, &t, 0, &cbValue); disease_tbl[a].dec_str = (short )t;
retCode = SQLGetData(hStmt, cn++, SQL_C_ULONG, &t, 0, &cbValue); disease_tbl[a].dec_dex = (short )t;
retCode = SQLGetData(hStmt, cn++, SQL_C_ULONG, &t, 0, &cbValue); disease_tbl[a].dec_con = (short )t;
retCode = SQLGetData(hStmt, cn++, SQL_C_ULONG, &t, 0, &cbValue); disease_tbl[a].dec_wis = (short )t;
retCode = SQLGetData(hStmt, cn++, SQL_C_ULONG, &t, 0, &cbValue); disease_tbl[a].dec_int = (short )t;
retCode = SQLGetData(hStmt, cn++, SQL_C_ULONG, &t, 0, &cbValue); disease_tbl[a].dec_movp = (short )t;
retCode = SQLGetData(hStmt, cn++, SQL_C_ULONG, &t, 0, &cbValue); disease_tbl[a].dec_char = (short )t;
retCode = SQLGetData(hStmt, cn++, SQL_C_ULONG, &t, 0, &cbValue); disease_tbl[a].dec_endu = (short )t;
retCode = SQLGetData(hStmt, cn++, SQL_C_ULONG, &t, 0, &cbValue); disease_tbl[a].dec_mor = (short )t;
retCode = SQLGetData(hStmt, cn++, SQL_C_ULONG, &t, 0, &cbValue); disease_tbl[a].dec_luck = (short )t;
retCode = SQLGetData(hStmt, cn++, SQL_C_ULONG, &t, 0, &cbValue); disease_tbl[a].dec_ws = (short )t;
retCode = SQLGetData(hStmt, cn++, SQL_C_ULONG, &t, 0, &cbValue); disease_tbl[a].dec_ps = (short )t;
retCode = SQLGetData(hStmt, cn++, SQL_C_ULONG, &t, 0, &cbValue); disease_tbl[a].recoverable = (short )t;
retCode = SQLGetData(hStmt, cn++, SQL_C_ULONG, &t, 0, &cbValue); disease_tbl[a].life = (short )t;
retCode = SQLGetData(hStmt, cn++, SQL_C_ULONG, &t, 0, &cbValue); disease_tbl[a].health = (short )t;
retCode = SQLGetData(hStmt, cn++, SQL_C_ULONG, &t, 0, &cbValue); disease_tbl[a].mp = (short )t;
retCode = SQLGetData(hStmt, cn++, SQL_C_ULONG, &t, 0, &cbValue); disease_tbl[a].dp = (short )t;
retCode = SQLGetData(hStmt, cn++, SQL_C_ULONG, &t, 0, &cbValue); disease_tbl[a].max_ = (short )t;
retCode = SQLGetData(hStmt, cn++, SQL_C_ULONG, &t, 0, &cbValue); disease_tbl[a].damage = (short )t;
retCode = SQLGetData(hStmt, cn++, SQL_C_ULONG, &t, 0, &cbValue); disease_tbl[a].att_rate = (short )t;
retCode = SQLGetData(hStmt, cn++, SQL_C_ULONG, &t, 0, &cbValue); disease_tbl[a].depen_rate = (short )t;
retCode = SQLGetData(hStmt, cn++, SQL_C_ULONG, &t, 0, &cbValue); disease_tbl[a].ac = (short )t;
retCode = SQLGetData(hStmt, cn++, SQL_C_ULONG, &t, 0, &cbValue); disease_tbl[a].mad = (short )t;
retCode = SQLGetData(hStmt, cn++, SQL_C_ULONG, &t, 0, &cbValue); disease_tbl[a].poison = (short )t;
retCode = SQLGetData(hStmt, cn++, SQL_C_ULONG, &t, 0, &cbValue); disease_tbl[a].stony = (short )t;
retCode = SQLGetData(hStmt, cn++, SQL_C_ULONG, &t, 0, &cbValue); disease_tbl[a].sluggish = (short )t;
retCode = SQLGetData(hStmt, cn++, SQL_C_ULONG, &t, 0, &cbValue); disease_tbl[a].active = (short )t;
retCode = SQLGetData(hStmt, cn++, SQL_C_ULONG, &t, 0, &cbValue); disease_tbl[a].paralysis = (short )t;
retCode = SQLGetData(hStmt, cn++, SQL_C_ULONG, &t, 0, &cbValue); disease_tbl[a].active_time = (short )t;
retCode = SQLGetData(hStmt, cn++, SQL_C_ULONG, &t, 0, &cbValue); disease_tbl[a].maintain_time = (short )t;
retCode = SQLGetData(hStmt, cn++, SQL_C_ULONG, &t, 0, &cbValue); disease_tbl[a].natural_recovery = (short )t;
retCode = SQLGetData(hStmt, cn++, SQL_C_ULONG, &t, 0, &cbValue); disease_tbl[a].nut1_3 = (short )t;
retCode = SQLGetData(hStmt, cn++, SQL_C_ULONG, &t, 0, &cbValue); disease_tbl[a].nut2_3 = (short )t;
retCode = SQLGetData(hStmt, cn++, SQL_C_ULONG, &t, 0, &cbValue); disease_tbl[a].nut3_3 = (short )t;
retCode = SQLGetData(hStmt, cn++, SQL_C_ULONG, &t, 0, &cbValue); disease_tbl[a].probability_3 = (short )t;
retCode = SQLGetData(hStmt, cn++, SQL_C_ULONG, &t, 0, &cbValue); disease_tbl[a].checktime_3 = (short )t;
retCode = SQLGetData(hStmt, cn++, SQL_C_ULONG, &t, 0, &cbValue); disease_tbl[a].andor_3 = (short )t;
retCode = SQLGetData(hStmt, cn++, SQL_C_ULONG, &t, 0, &cbValue); disease_tbl[a].price_heal = (short )t;
retCode = SQLGetData(hStmt, cn++, SQL_C_ULONG, &t, 0, &cbValue); disease_tbl[a].price_prevent = (short )t;
SQLFreeStmt(hStmt, SQL_DROP);
// return(1);
}
else
{
SQLFreeStmt(hStmt, SQL_DROP);
return(-2);
}
}
else
{
SQLFreeStmt(hStmt, SQL_DROP);
return(-1);
}
}
FILE *fp;
fp = fopen( "./Output/disease_tbl.bin", "wb" );
if( fp )
{
fwrite( disease_tbl, 6, sizeof(DiseaseTable), fp );
fclose(fp);
}
return 1;
}
int UpdateCharID_SQL( int char_id )
{
HSTMT hStmt = NULL;
RETCODE retCode;
char szQuerry[ 128];
sprintf(szQuerry, "update CharIDCount set CharIDCount=%d", char_id);
SQLAllocStmt(hDBC, &hStmt);
retCode = SQLExecDirect(hStmt, (UCHAR *)szQuerry, SQL_NTS);
if(retCode == SQL_SUCCESS || retCode == SQL_SUCCESS_WITH_INFO)
{
SQLFreeStmt(hStmt, SQL_DROP);
return(1);
}
else
{
//SQLTransact(SQL_NULL_HENV, hDBC, SQL_ROLLBACK);
SQLFreeStmt(hStmt, SQL_DROP);
return(-2);
}
};
///////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////
// BBS包府 家胶...
//#define MAX_DATA 5000
// char enter[ MAX_DATA];
// FILE *fp = fopen( "t.txt", "rt" );
// DWORD filelen = filelength( fileno(fp));
// fread( enter, filelen, 1, fp );
// fclose(fp);
int InsertBBS( char *name, char *title, char *contents )
{
HSTMT hStmt = NULL;
RETCODE retCode;
char szQuerry[128];
sprintf(szQuerry, "insert into bbs ( date, name, title ) "
"values ('%d/%d/%d %d:%d:%d', '%s', '%s' )",
g_mon+1, g_day, g_year - 2000, g_hour, g_min, g_sec, name, title );
// 某腐磐狼 老馆 Data甫 chr_info俊 积己窍绊 ( 1-1窜拌 )
SQLAllocStmt(hDBC, &hStmt);
retCode = SQLExecDirect(hStmt, (UCHAR *)szQuerry, SQL_NTS);
if(retCode == SQL_SUCCESS || retCode == SQL_SUCCESS_WITH_INFO)
{
//SQLTransact(SQL_NULL_HENV, hDBC, SQL_COMMIT);
SQLFreeStmt(hStmt, SQL_DROP);
}
else
{
//SQLTransact(SQL_NULL_HENV, hDBC, SQL_ROLLBACK);
SQLFreeStmt(hStmt, SQL_DROP);
return(0); // unknown error
}
//////////////////////////////////////////////////////////////////////////////////////////////////////////////
SQLINTEGER cbdata = 200, cbvalue = SQL_DATA_AT_EXEC ;
SQLINTEGER cbcontentslen;
SQLRETURN retcode;
SQLHSTMT hstmt;
SQLPOINTER pParamData;
int n=0;
char aaa=20;
DWORD filelen;
filelen = strlen( contents );
sprintf(szQuerry, "UPDATE bbs SET con=? WHERE date='%d/%d/%d %d:%d:%d'", g_mon+1, g_day, g_year - 2000, g_hour, g_min, g_sec );
//printf("\nSQL: %s", query);
SQLAllocStmt(hDBC, &hstmt);
retcode = SQLPrepare(hstmt, (UCHAR *)szQuerry, SQL_NTS);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -