?? npc_roomadminnew.c
字號:
NPC_ROOMADMINNEW_MSGCOLOR);
/* 丟永本□斥本永玄 */
snprintf( msgbuf, sizeof( msgbuf),
NPC_ROOMADMINNEW_MSG_DSPPASSWD2,
CHAR_getWorkChar(doorindex, CHAR_WORKDOORPASSWD)
);
/* 丟永本□斥霜耨 */
CHAR_talkToCli( talkerindex, index,msgbuf,
NPC_ROOMADMINNEW_MSGCOLOR);
flg = TRUE;
}
}
}
else {
break;
}
}
if( !flg) {
CHAR_talkToCli( talkerindex, index,
NPC_ROOMADMINNEW_MSG_PRINTPASSWD_NONE,
NPC_ROOMADMINNEW_MSGCOLOR);
}
}
/*-----------------------------------------------
* 戚莢釩瘍凜棉] 盒毛蛻丹
*----------------------------------------------*/
static void NPC_RoomAdminNew_DspNextAuction( int meindex, int talkerindex)
{
char msgbuf[2048];
time_t closetime;
closetime = CHAR_getWorkInt( meindex, CHAR_WORKINT_NEXTTIME);
/* 戚及釩瘍凜棉互瑁引勻化中卅仃木壬>瑁引勻化引六氏[=丟永本□斥*/
if( closetime == 0 ) {
snprintf( msgbuf, sizeof( msgbuf),
NPC_ROOMADMINNEW_MSG_DSPNEXTAUCTION_NONE
);
CHAR_talkToCli( talkerindex, meindex,msgbuf, NPC_ROOMADMINNEW_MSGCOLOR);
}
else {
int doorindex;
char argstr[NPC_UTIL_GETARGSTR_BUFSIZE];
char explain[1024]; /* */
char buff[16];
struct tm tmwk;
int difftime;
/* 盒樹 毛潸 */
doorindex = NPC_DoorSearchByName(
CHAR_getWorkChar( meindex, CHAR_WORKCHAR_NEXTROOM));
NPC_Util_GetArgStr( doorindex, argstr, sizeof( argstr));
getStringFromIndexWithDelim(argstr, "|" , 9 , explain,sizeof(explain));
/* 盒樹 */
if( strlen(CHAR_getChar( doorindex, CHAR_NAME) ) != 0 ) {
strcpy( buff, "號室");
}
else {
buff[0] = '\0';
}
snprintf( msgbuf, sizeof( msgbuf),
NPC_ROOMADMINNEW_MSG_DSPNEXTAUCTION1,
explain,
CHAR_getChar( doorindex, CHAR_NAME),
buff
);
CHAR_talkToCli( talkerindex, meindex,msgbuf, NPC_ROOMADMINNEW_MSGCOLOR);
/* 蠡戶濠曰凜棉 */
memcpy( &tmwk, localtime( &closetime), sizeof( tmwk));
difftime = closetime - NowTime.tv_sec;
snprintf( msgbuf, sizeof( msgbuf),
NPC_ROOMADMINNEW_MSG_DSPNEXTAUCTION2,
tmwk.tm_hour,
tmwk.tm_min,
difftime / 3600,
(difftime % 3600) / 60
);
CHAR_talkToCli( talkerindex, meindex,msgbuf, NPC_ROOMADMINNEW_MSGCOLOR);
/* 票蜃嗯喊 */
snprintf( msgbuf, sizeof( msgbuf),
NPC_ROOMADMINNEW_MSG_DSPNEXTAUCTION3,
CHAR_getWorkChar( doorindex, CHAR_WORKDOORGOLDLIMIT)
);
CHAR_talkToCli( talkerindex, meindex,msgbuf, NPC_ROOMADMINNEW_MSGCOLOR);
}
}
/*-----------------------------------------------
* 誑樊仿件平件弘民尼永弁↓白央奶伙踏五 心
*
* 白央奶伙 反"管理者的名字.score"
* 件禾仿伉白央奶伙 反"管理者的名字.score.tmp"
*
* 白央奶伙白巧□穴永玄反]
* gold|time|cdkey|charaname|owntitle
* 匹ㄠㄟ墊引匹[
*
* 曰襖“ 岳 “仿件平件弘窒匏井忒允[仿件平件弘卞 日卅仃木壬ㄟ[
* 撩 “-1
*----------------------------------------------*/
static int NPC_RoomAdminNew_WriteScoreFile( int meindex, int pindex)
{
#define NPC_RANKING_DEFAULT 10
int ret = 0;
char *cdkey;
char charaname[32*2],owntitle[32*2];
char filename_dest[128],filename[128];
char outbuf[1024], line[1024];
FILE *fp_src, *fp_dest;
/* 白央奶伙 毛戲岳 */
strcpy( filename, NPC_ROOMADMINNEW_DATADIR);
strcat( filename, CHAR_getWorkChar( meindex, CHAR_WORKCHAR_MYNAME));
strcpy( filename_dest, filename);
strcat( filename, NPC_ROOMADMINNEW_RANKING_EXTENSION);
strcat( filename_dest, NPC_ROOMADMINNEW_RANKING_EXTENSION_TMP);
/* 誑仄兇諦及 平□ */
//getcdkeyFromCharaIndex( pindex , cdkey , sizeof(cdkey ));
cdkey = CHAR_getChar( pindex, CHAR_CDKEY);
/* 誑仄兇諦及平乓仿 */
makeEscapeString( CHAR_getChar( pindex, CHAR_NAME),
charaname, sizeof( charaname));
/* 誑仄兇諦及憊寞 */
makeEscapeString( CHAR_getChar( pindex, CHAR_OWNTITLE),
owntitle, sizeof( owntitle));
/* 犯伉立正匹仁仁月 */
snprintf( outbuf, sizeof( outbuf), "%d|%d|%s|%s|%s|\n",
CHAR_getInt( pindex, CHAR_GOLD),
CHAR_getWorkInt( meindex,CHAR_WORKINT_NEXTTIME),
cdkey, charaname, owntitle );
fp_dest = fopen( filename_dest, "w");
if( !fp_dest) return -1;
fp_src = fopen( filename, "r");
if( !fp_src ) {
/* 賡及域瘀卅及匹公及引引踏中化蔽歹曰 */
fclose( fp_dest);
fp_src = fopen( filename, "w");
if( !fp_src) return -1;
fputs( outbuf, fp_src);
fclose( fp_src);
return 1;
}
else {
int cnt = 1;
char buf[128];
while( fgets( line, sizeof( line), fp_src)) {
getStringFromIndexWithDelim( line, "|" , 1 , buf,sizeof(buf) );
if( ret == 0 ) {
/* 誑嗯喊 勝 */
if( atoi( buf) < CHAR_getInt( pindex, CHAR_GOLD) ) {
/* 嗯喊互 勻化中月及匹醣 */
fputs( outbuf, fp_dest);
fputs( line, fp_dest);
ret = cnt;
cnt ++;
}
else {
/* 公木動陸反公及引引踏仁 */
fputs( line, fp_dest);
}
}
else {
/* 公木動陸反公及引引踏仁 */
fputs( line, fp_dest);
}
cnt ++;
if( cnt > NPC_RANKING_DEFAULT ) break;
}
/* 仿件平件弘互ㄠㄟ蜊公欠勻化中卅中凜 */
if( ret == 0 && cnt <= NPC_RANKING_DEFAULT ) {
fputs( outbuf, fp_dest);
ret = cnt;
}
}
fclose( fp_src);
fclose( fp_dest);
/* 褥 木晶尹 */
/* 簿井白央奶伙戊疋□允月棵簽卅 芊襞勻化兇日 尹化票今中[ */
fp_src = fopen( filename_dest, "r");
if( !fp_src) return -1;
fp_dest = fopen( filename, "w");
if( !fp_dest) {
fclose( fp_src);
return -1;
}
while( fgets( line, sizeof( line), fp_src)) {
fputs( line, fp_dest);
}
fclose( fp_dest);
fclose( fp_src);
return( ret);
#undef NPC_RANKING_DEFAULT
}
/*-----------------------------------------------
* 誑樊仿件平件弘白央奶伙 心 心↓ 憎
*
* 婁醒 meindex 平乓仿奶件犯永弁旦[仿件平件弘NPC及奶件犯永弁旦[
* talkerindex 仄井仃日木兇諦及index[仇木卞talk毛霜耨允月[
* admname 尕 遣盒今氏及 蟆
*
*----------------------------------------------*/
static void NPC_RoomAdminNew_ReadScoreFile( int meindex, int talkerindex,
char *admname)
{
int cnt;
char filename[128];
char line[1024];
FILE *fp;
/* 白央奶伙 毛戲岳 */
strcpy( filename, NPC_ROOMADMINNEW_DATADIR);
strcat( filename, admname);
strcat( filename, NPC_ROOMADMINNEW_RANKING_EXTENSION);
fp = fopen( filename, "r");
if( !fp) return;
cnt = 1;
while( fgets( line, sizeof( line), fp)) {
int gold,bidtime;
char charaname[32],owntitle[32];
char tmp[64];
char outbuf[1024], buf[256];
struct tm tmwk;
getStringFromIndexWithDelim( line, "|" , 1 , buf,sizeof(buf) );
gold = atoi(buf);
getStringFromIndexWithDelim( line, "|" , 2 , buf,sizeof(buf) );
bidtime = atoi(buf);
getStringFromIndexWithDelim( line, "|" , 4 , buf,sizeof(buf) );
strcpy( charaname, makeStringFromEscaped( buf));
getStringFromIndexWithDelim( line, "|" , 5 , buf,sizeof(buf) );
strcpy( owntitle, makeStringFromEscaped( buf));
if( strlen( owntitle) != 0 ) {
strcpy( tmp, "[");
strcat( tmp, owntitle);
strcat( tmp, "] ");
strcpy( owntitle, tmp);
}
else {
strcpy( owntitle, " ");
}
memcpy( &tmwk, localtime( (time_t *)&bidtime), sizeof( tmwk));
snprintf( outbuf, sizeof( outbuf),
NPC_ROOMADMINNEW_MSG_RANKING,
cnt,
tmwk.tm_year + 1900,
tmwk.tm_mon+1,
tmwk.tm_mday,
gold,charaname,owntitle
);
CHAR_talkToCli( talkerindex, meindex,outbuf,
NPC_RANKING_MSGCOLOR);
cnt ++;
}
fclose( fp);
}
/************************************************
* 賡渝質
************************************************/
BOOL NPC_RankingInit( int meindex )
{
char buf[256];
char argstr[NPC_UTIL_GETARGSTR_BUFSIZE];
NPC_Util_GetArgStr( meindex, argstr, sizeof( argstr));
/* 賡渝祭質 */
/* type本永玄 */
CHAR_setInt( meindex, CHAR_WHICHTYPE, CHAR_TYPERANKING);
/* 棟 諦及 蟆潸 */
if( !getStringFromIndexWithDelim(argstr, "|" , 1 , buf,sizeof(buf) )) {
print( "arg err.rankingNPC not created.\n");
return( FALSE);
}
CHAR_setWorkChar( meindex , CHAR_WORKCHAR_ADMNAME , buf);
return TRUE;
}
/************************************************
* 仄井仃日木兇凜及質
************************************************/
void NPC_RankingTalked( int meindex , int talkerindex , char *msg ,
int color )
{
/* 皿伊奶乩□互玉失穴件及1弘伉永玉動 卅日 殺允月[ */
if(NPC_Util_CharDistance( talkerindex, meindex ) > 1)return;
CHAR_talkToCli( talkerindex, meindex,
NPC_ROOMADMINNEW_MSG_RANKING_INFO,
NPC_RANKING_MSGCOLOR);
NPC_RoomAdminNew_ReadScoreFile( meindex, talkerindex,
CHAR_getWorkChar( meindex, CHAR_WORKCHAR_ADMNAME));
}
/************************************************
* 賡渝質
************************************************/
BOOL NPC_PrintpassmanInit( int meindex )
{
char buf[256];
char argstr[NPC_UTIL_GETARGSTR_BUFSIZE];
NPC_Util_GetArgStr( meindex, argstr, sizeof( argstr));
/* 賡渝祭質 */
/* type本永玄 */
CHAR_setInt( meindex, CHAR_WHICHTYPE, CHAR_TYPEPRINTPASSMAN);
/* 棟 諦及 蟆潸 */
if( !getStringFromIndexWithDelim(argstr, "|" , 1 , buf,sizeof(buf) )) {
print( "arg err.passmanNPC not created.\n");
return( FALSE);
}
CHAR_setWorkChar( meindex , CHAR_WORKCHAR_ADMNAME , buf);
return TRUE;
}
/************************************************
* 仄井仃日木兇凜及質
************************************************/
void NPC_PrintpassmanTalked( int meindex , int talkerindex , char *msg ,
int color )
{
int i;
int charnum;
/* 皿伊奶乩□互玉失穴件及2弘伉永玉動 卅日 殺允月[ */
if(NPC_Util_CharDistance( talkerindex, meindex ) > 2)return;
/* 憤坌迕及棟 諦及 蟆毛腹綢允月*/
charnum = CHAR_getCharNum();
for(i= CHAR_getPlayerMaxNum() +CHAR_getPetMaxNum();
i<charnum;
i++){
if( CHAR_getCharUse(i) &&
CHAR_getInt( i ,CHAR_WHICHTYPE) == CHAR_TYPEROOMADMIN ){
if( strcmp( CHAR_getWorkChar(i,CHAR_WORKCHAR_MYNAME),
CHAR_getWorkChar( meindex, CHAR_WORKCHAR_ADMNAME))
==0 )
{
break;
}
}
}
if( i < charnum ) {
NPC_RoomAdminNew_DspRoomPasswd( meindex, i, talkerindex);
}
else {
CHAR_talkToCli( talkerindex, meindex, "。。。", NPC_RANKING_MSGCOLOR);
}
}
/* end of roomadminnew */
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -