void saacproto_DBGetEntryRank_recv( int fd, char* table, char* key, int msgid, int msgid2) { int rk,c; if( !is_game_server_login(fd) ){ saacproto_DBGetEntryRank_send( fd, FAILED, 0,0,"","",msgid, msgid2 ); return; } dbGetEntryRank( table, key , &rk, &c ); if( rk <0 ){ saacproto_DBGetEntryRank_send( fd, FAILED, -1, -1, table, key, msgid, msgid2 ); } else { saacproto_DBGetEntryRank_send( fd, SUCCESSFUL, rk, c, table, key, msgid, msgid2 ); } }
void NPC_DuelrankingWindowTalked( int meindex, int talkerindex, int seqno, int select, char *data) { int fdid = getFdidFromCharaIndex( talkerindex); if( fdid == -1 ) return; if( NPC_Util_CharDistance( talkerindex, meindex ) > 1) return; switch( seqno){ case CHAR_WINDOWTYPE_DUELRANKING_START: if( atoi( data) == 3 ) { saacproto_DBGetEntryByCount_send( acfd, DB_DUELPOINT, 0, NPC_DUELRANKING_WINDOWLINENUM, fdid, CHAR_getWorkInt( meindex, CHAR_WORKOBJINDEX)); } if( atoi( data) == 5 ) { char dbkey[256]; CHAR_makeDBKey( talkerindex, dbkey, sizeof( dbkey)); saacproto_DBGetEntryRank_send( acfd, DB_DUELPOINT, dbkey, fdid, CHAR_getWorkInt( meindex, CHAR_WORKOBJINDEX)); } break; case CHAR_WINDOWTYPE_DUELRANKING_TOPRANKING: if( select == WINDOW_BUTTONTYPE_PREV || select == WINDOW_BUTTONTYPE_NEXT) { int count = CHAR_getWorkInt( talkerindex, CHAR_WORKSHOPRELEVANT); if( select == WINDOW_BUTTONTYPE_NEXT ) { count += NPC_DUELRANKING_WINDOWLINENUM; }else { count -= NPC_DUELRANKING_WINDOWLINENUM; } if( count < 0) count = 0; saacproto_DBGetEntryByCount_send( acfd, DB_DUELPOINT, count, NPC_DUELRANKING_WINDOWLINENUM, fdid, CHAR_getWorkInt( meindex, CHAR_WORKOBJINDEX)); }else if( select == WINDOW_BUTTONTYPE_OK ) { if( strlen( data) != 0 ) { int count; count = atoi( data); if( count < 1 ) count = 1; saacproto_DBGetEntryByCount_send( acfd, DB_DUELPOINT, count-1, NPC_DUELRANKING_WINDOWLINENUM, fdid, CHAR_getWorkInt( meindex, CHAR_WORKOBJINDEX)); } } break; } }