216 lines
7.1 KiB
C
216 lines
7.1 KiB
C
![]() |
#include "version.h"
|
|||
|
#include <string.h>
|
|||
|
#include "object.h"
|
|||
|
#include "char_base.h"
|
|||
|
#include "char.h"
|
|||
|
#include "item.h"
|
|||
|
#include "util.h"
|
|||
|
#include "handletime.h"
|
|||
|
#include "npc_doorman.h"
|
|||
|
#include "npc_door.h"
|
|||
|
#include "npcutil.h"
|
|||
|
#include "configfile.h"
|
|||
|
/*
|
|||
|
*
|
|||
|
* Ի<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʧ<EFBFBD><EFBFBD>ؤ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>幫<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʧë<EFBFBD><EFBFBD><EFBFBD>վ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>巽<EFBFBD>Ȼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>NPC.
|
|||
|
* <EFBFBD><EFBFBD>ʧ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ئԻ<EFBFBD><EFBFBD>create<EFBFBD><EFBFBD><EFBFBD>·<EFBFBD><EFBFBD><EFBFBD>ƥ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʧë<EFBFBD><EFBFBD><EFBFBD>۽<EFBFBD><EFBFBD><EFBFBD><EFBFBD>³<EFBFBD><EFBFBD>绥ƥ<EFBFBD><EFBFBD><EFBFBD>£<EFBFBD>
|
|||
|
* <EFBFBD><EFBFBD>ئ<EFBFBD>ƾ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ľ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƽ<EFBFBD>ҷ<EFBFBD>ë<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƻ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ի8Ѩ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʧ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͻ<EFBFBD><EFBFBD>帲<EFBFBD>ƻ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>£ۿ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʧ<EFBFBD><EFBFBD> <EFBFBD>ݱ巰<EFBFBD>ʳ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ئ<EFBFBD>£<EFBFBD>
|
|||
|
*
|
|||
|
* <EFBFBD>̼<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̵<EFBFBD><EFBFBD><EFBFBD>Talkƥ
|
|||
|
*
|
|||
|
* <EFBFBD><EFBFBD>ʧë<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
*
|
|||
|
* 1 <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ë<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>£۰<EFBFBD><EFBFBD><EFBFBD>ƥ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>շ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> gold|100
|
|||
|
* 2 ʧ<EFBFBD><EFBFBD> ةë1<EFBFBD>۰<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD>۰<EFBFBD><EFBFBD><EFBFBD>ƥ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>շ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> item|45
|
|||
|
* 3 ʧ<EFBFBD><EFBFBD> ةë <EFBFBD>Ȼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>¾<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ʃ<EFBFBD><EFBFBD><EFBFBD>£<EFBFBD> <EFBFBD>Ȼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>շ<EFBFBD><EFBFBD>ʣ<EFBFBD>itemhave|44
|
|||
|
* 4 ʧ<EFBFBD><EFBFBD> ةë <EFBFBD>Ȼ<EFBFBD><EFBFBD><EFBFBD>ئ<EFBFBD>о<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ʃ<EFBFBD><EFBFBD><EFBFBD>£<EFBFBD> <EFBFBD>Ȼ<EFBFBD><EFBFBD><EFBFBD>ئ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>շ<EFBFBD><EFBFBD>ʣ<EFBFBD>
|
|||
|
* itemnothave|333
|
|||
|
* 5 <EFBFBD><EFBFBD>įë<EFBFBD><EFBFBD><EFBFBD>Ȼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>¾<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ʃ<EFBFBD><EFBFBD><EFBFBD>£<EFBFBD> <EFBFBD>Ȼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>շ<EFBFBD><EFBFBD>ʣ<EFBFBD> titlehave|string
|
|||
|
* 6 <EFBFBD><EFBFBD>įë<EFBFBD><EFBFBD><EFBFBD>Ȼ<EFBFBD><EFBFBD><EFBFBD>ئ<EFBFBD>о<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ʃ<EFBFBD><EFBFBD><EFBFBD>£<EFBFBD> <EFBFBD>Ȼ<EFBFBD><EFBFBD><EFBFBD>ئ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>շ<EFBFBD><EFBFBD>ʣ<EFBFBD>
|
|||
|
* titlenothave|string
|
|||
|
*
|
|||
|
* <EFBFBD><EFBFBD>ئ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ߤ <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>緰<EFBFBD>ʣ<EFBFBD><EFBFBD>ż<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
*<EFBFBD><EFBFBD>100<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʻ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƥ<EFBFBD>ʾ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƥ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>У<EFBFBD><EFBFBD><EFBFBD><EFBFBD>е<EFBFBD><EFBFBD><EFBFBD>100<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ľ<EFBFBD>£<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ئԻ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>У<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ȼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ľ<EFBFBD>£<EFBFBD>ƥ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>100<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ףۣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɴ<EFBFBD>ľ<EFBFBD>£<EFBFBD>
|
|||
|
*
|
|||
|
* ʧ<EFBFBD><EFBFBD> ة<EFBFBD><EFBFBD>谼<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϡ<EFBFBD>ë<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʻ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƥ<EFBFBD>ʾ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʣ<EFBFBD>
|
|||
|
* 3<EFBFBD><EFBFBD><EFBFBD><EFBFBD>6<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ͼ<EFBFBD><EFBFBD><EFBFBD>ئ<EFBFBD>ƾ<EFBFBD><EFBFBD>껯<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD>Ȼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>շ<EFBFBD><EFBFBD>ʣ<EFBFBD>
|
|||
|
*
|
|||
|
*
|
|||
|
*
|
|||
|
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ܷ
|
|||
|
*
|
|||
|
*1 <EFBFBD><EFBFBD>ʧë<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>絤<EFBFBD><EFBFBD> <EFBFBD><EFBFBD>
|
|||
|
*2 <EFBFBD><EFBFBD><EFBFBD><EFBFBD>NPCë<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʧ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ئԻ<EFBFBD><EFBFBD> <EFBFBD>ʣ<EFBFBD>¦<EFBFBD><EFBFBD>ë gold|100 <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
*3 <EFBFBD><EFBFBD><EFBFBD><EFBFBD>NPC<EFBFBD>帲<EFBFBD>ƻ<EFBFBD><EFBFBD><EFBFBD>100<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ȼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƥ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>У<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɵ<EFBFBD>
|
|||
|
*4 <EFBFBD><EFBFBD>ʧ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>л<EFBFBD><EFBFBD>Ż<EFBFBD>Ӽ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD>
|
|||
|
*
|
|||
|
*/
|
|||
|
|
|||
|
static void NPC_DoormanOpenDoor( char *nm );
|
|||
|
|
|||
|
BOOL NPC_DoormanInit( int meindex )
|
|||
|
{
|
|||
|
char arg[NPC_UTIL_GETARGSTR_BUFSIZE];
|
|||
|
char dname[1024];
|
|||
|
|
|||
|
/* <20><>ì<EFBFBD><C3AC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɬ<EFBFBD><C9AC> */
|
|||
|
CHAR_setWorkInt( meindex, CHAR_WORKEVENTTYPE,CHAR_EVENT_NPC);
|
|||
|
|
|||
|
CHAR_setInt( meindex , CHAR_HP , 0 );
|
|||
|
CHAR_setInt( meindex , CHAR_MP , 0 );
|
|||
|
CHAR_setInt( meindex , CHAR_MAXMP , 0 );
|
|||
|
CHAR_setInt( meindex , CHAR_STR , 0 );
|
|||
|
CHAR_setInt( meindex , CHAR_TOUGH, 0 );
|
|||
|
CHAR_setInt( meindex , CHAR_LV , 0 );
|
|||
|
|
|||
|
CHAR_setInt( meindex , CHAR_WHICHTYPE , CHAR_TYPETOWNPEOPLE );
|
|||
|
CHAR_setFlg( meindex , CHAR_ISOVERED , 0 );
|
|||
|
CHAR_setFlg( meindex , CHAR_ISATTACKED , 0 ); /* <20><><EFBFBD><EFBFBD>ľئ<C4BE>з<EFBFBD><D0B7><EFBFBD> */
|
|||
|
|
|||
|
NPC_Util_GetArgStr( meindex, arg, sizeof( arg));
|
|||
|
|
|||
|
if(!getStringFromIndexWithDelim( arg, "|", 3, dname, sizeof(dname ))){
|
|||
|
print("RINGO: <20>趨<EFBFBD><E8B6A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>Ҫ<EFBFBD>ŵ<EFBFBD><C5B5><EFBFBD><EFBFBD><EFBFBD>ࡣ<EFBFBD>:%s:\n",
|
|||
|
arg );
|
|||
|
return FALSE;
|
|||
|
}
|
|||
|
print( "RINGO: Doorman create: arg: %s dname: %s\n",arg,dname);
|
|||
|
CHAR_setWorkChar( meindex , CHAR_WORKDOORMANDOORNAME , dname );
|
|||
|
|
|||
|
return TRUE;
|
|||
|
}
|
|||
|
|
|||
|
void NPC_DoormanTalked( int meindex , int talkerindex , char *msg ,
|
|||
|
int color )
|
|||
|
{
|
|||
|
char mode[128];
|
|||
|
char opt[256];
|
|||
|
char arg[NPC_UTIL_GETARGSTR_BUFSIZE];
|
|||
|
|
|||
|
/* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʧѨ<CAA7><D1A8><EFBFBD><EFBFBD>1<EFBFBD><31><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ئ<>շ<EFBFBD><D5B7>ϼ<EFBFBD><CFBC><EFBFBD> */
|
|||
|
if(NPC_Util_CharDistance( talkerindex, meindex ) > 1)return;
|
|||
|
|
|||
|
NPC_Util_GetArgStr( meindex, arg, sizeof( arg));
|
|||
|
|
|||
|
if( !getStringFromIndexWithDelim( arg, "|", 1, mode, sizeof( mode )))
|
|||
|
return;
|
|||
|
|
|||
|
if( !getStringFromIndexWithDelim( arg, "|", 2, opt, sizeof( opt ) ))
|
|||
|
return;
|
|||
|
|
|||
|
if( strcmp( mode , "gold" ) == 0 ){
|
|||
|
int g = atoi( opt );
|
|||
|
int yn = NPC_Util_YN( msg );
|
|||
|
/*char *nm = CHAR_getChar( meindex , CHAR_NAME );*/
|
|||
|
char msg[256];
|
|||
|
|
|||
|
if( g > 0 && yn < 0 ){
|
|||
|
snprintf( msg ,sizeof( msg ) ,
|
|||
|
"<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>%d<>Ľ<EFBFBD><C4BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", g );
|
|||
|
CHAR_talkToCli( talkerindex, meindex , msg, CHAR_COLORWHITE );
|
|||
|
} else if( g > 0 && yn == 0 ){
|
|||
|
snprintf( msg , sizeof( msg ),
|
|||
|
"<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> %d<>Ľ<EFBFBD><C4BD><EFBFBD><EFBFBD>DZ<EFBFBD>Ҫ<EFBFBD>ġ<EFBFBD>", g );
|
|||
|
} else if( g > 0 && yn == 1 ){
|
|||
|
int now_g = CHAR_getInt( talkerindex, CHAR_GOLD );
|
|||
|
if( now_g < g ){
|
|||
|
snprintf( msg , sizeof( msg ) ,
|
|||
|
"<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> %d<>Ľ<EFBFBD><C4BD><EFBFBD><EFBFBD>DZ<EFBFBD>Ҫ<EFBFBD>ġ<EFBFBD>", g );
|
|||
|
CHAR_talkToCli( talkerindex, meindex , msg, CHAR_COLORWHITE );
|
|||
|
} else {
|
|||
|
snprintf( msg , sizeof( msg ),
|
|||
|
"%d <20>յ<EFBFBD><D5B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ˡ<EFBFBD><CBA1><EFBFBD><EFBFBD>ھ<EFBFBD><DABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>š<EFBFBD>", g );
|
|||
|
CHAR_talkToCli( talkerindex, meindex , msg, CHAR_COLORWHITE );
|
|||
|
|
|||
|
/* <20><><EFBFBD><EFBFBD>ë<EFBFBD><C3AB><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
|||
|
now_g -= g;
|
|||
|
CHAR_setInt( talkerindex , CHAR_GOLD , now_g );
|
|||
|
/* ؤ<><D8A4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>е<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ë˪<C3AB><CBAA> */
|
|||
|
CHAR_send_P_StatusString(talkerindex, CHAR_P_STRING_GOLD);
|
|||
|
|
|||
|
/* <20><>ʧ<EFBFBD><CAA7><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
|||
|
NPC_DoormanOpenDoor(
|
|||
|
CHAR_getWorkChar( meindex, CHAR_WORKDOORMANDOORNAME));
|
|||
|
}
|
|||
|
}
|
|||
|
} else if( strcmp( mode , "item" ) == 0 ){
|
|||
|
CHAR_talkToCli( talkerindex, meindex ,
|
|||
|
"<EFBFBD><EFBFBD><EFBFBD><EFBFBD>δ֧Ԯģʽ<EFBFBD><EFBFBD>",
|
|||
|
CHAR_COLORWHITE);
|
|||
|
} else if( strcmp( mode , "itemhave" ) == 0 ){
|
|||
|
CHAR_talkToCli( talkerindex, meindex ,
|
|||
|
"<EFBFBD><EFBFBD><EFBFBD><EFBFBD>δ֧Ԯģʽ<EFBFBD><EFBFBD>",
|
|||
|
CHAR_COLORWHITE);
|
|||
|
} else if( strcmp( mode , "itemnothave" ) == 0 ){
|
|||
|
CHAR_talkToCli( talkerindex, meindex ,
|
|||
|
"<EFBFBD><EFBFBD><EFBFBD><EFBFBD>δ֧Ԯģʽ<EFBFBD><EFBFBD>",
|
|||
|
CHAR_COLORWHITE);
|
|||
|
} else if( strcmp( mode , "titlehave" ) == 0 ){
|
|||
|
CHAR_talkToCli( talkerindex, meindex ,
|
|||
|
"<EFBFBD><EFBFBD><EFBFBD><EFBFBD>δ֧Ԯģʽ<EFBFBD><EFBFBD>",
|
|||
|
CHAR_COLORWHITE);
|
|||
|
|
|||
|
} else if( strcmp( mode , "roomlimit" ) == 0 ){
|
|||
|
|
|||
|
/* <20>м<EFBFBD><D0BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ؤ<EFBFBD><D8A4><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
|||
|
char szOk[256], szNg[256], szBuf[32];
|
|||
|
int checkfloor;
|
|||
|
int maxnum, i, iNum;
|
|||
|
|
|||
|
if( !getStringFromIndexWithDelim( arg, "|", 2, szBuf, sizeof( szBuf ) ))
|
|||
|
return;
|
|||
|
|
|||
|
/* Ʃ<><C6A9><EFBFBD>°<C2B0>ʧ<EFBFBD><CAA7> <20><><EFBFBD><EFBFBD> */
|
|||
|
if( sscanf( szBuf, "%d:%d", &checkfloor, &maxnum ) != 2 ){
|
|||
|
return;
|
|||
|
}
|
|||
|
|
|||
|
for( iNum = 0,i = 0; i < getFdnum(); i ++ ){
|
|||
|
/* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>½<EFBFBD>巴<EFBFBD><E5B7B4> <20><> <20><> */
|
|||
|
if( CHAR_getCharUse( i ) == FALSE )continue;
|
|||
|
if( CHAR_getInt( i, CHAR_WHICHTYPE ) != CHAR_TYPEPLAYER )continue;
|
|||
|
/* ϶<>ü<EFBFBD><C3BC><EFBFBD>ʧ<EFBFBD><CAA7>½<EFBFBD><C2BD><EFBFBD><EFBFBD> <20><> <20><> */
|
|||
|
if( CHAR_getInt( i, CHAR_FLOOR ) != checkfloor )continue;
|
|||
|
iNum++;
|
|||
|
}
|
|||
|
if( !getStringFromIndexWithDelim( arg, "|", 5, szNg, sizeof( szNg ))){
|
|||
|
strcpy( szNg, "<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>" ); /* <20><>ɡئ<C9A1>Ƽ<EFBFBD><C6BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
|||
|
}
|
|||
|
if( !getStringFromIndexWithDelim( arg, "|", 4, szOk, sizeof( szOk ))){
|
|||
|
strcpy( szOk, "<EFBFBD><EFBFBD><EFBFBD>Űɡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>" ); /* <20><>ɡؤԻ<D8A4><D4BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
|||
|
}
|
|||
|
|
|||
|
if( iNum >= maxnum ){
|
|||
|
/* ë<><C3AB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
|||
|
CHAR_talkToCli( talkerindex, meindex ,szNg, CHAR_COLORWHITE);
|
|||
|
}else{
|
|||
|
/* <20><> <20><>ئ<EFBFBD><D8A6><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
|||
|
CHAR_talkToCli( talkerindex, meindex ,szOk, CHAR_COLORWHITE);
|
|||
|
NPC_DoormanOpenDoor(
|
|||
|
CHAR_getWorkChar( meindex, CHAR_WORKDOORMANDOORNAME));
|
|||
|
}
|
|||
|
|
|||
|
} else if( strcmp( mode , "titlenothave" ) == 0 ){
|
|||
|
CHAR_talkToCli( talkerindex, meindex ,
|
|||
|
"<EFBFBD><EFBFBD><EFBFBD><EFBFBD>δ֧Ԯģʽ<EFBFBD><EFBFBD>",
|
|||
|
CHAR_COLORWHITE);
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
/*
|
|||
|
* <EFBFBD><EFBFBD>ƥ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƻ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ë<EFBFBD><EFBFBD><EFBFBD>ͻ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʣ<EFBFBD>
|
|||
|
*
|
|||
|
*/
|
|||
|
static void NPC_DoormanOpenDoor( char *nm)
|
|||
|
{
|
|||
|
int doori = NPC_DoorSearchByName( nm );
|
|||
|
print( "RINGO: Doorman's Door: index: %d\n", doori );
|
|||
|
|
|||
|
NPC_DoorOpen( doori , -1 );
|
|||
|
|
|||
|
}
|
|||
|
|