Exemple #1
0
int NPC_Lua_NLG_CheckObj(lua_State *_NLL)
{
	CheckEx(_NLL, 3);
	int TM_Floor = (int)lua_tointeger(_NLL, 1);
	int TM_X = (int)lua_tointeger(_NLL, 2);
	int TM_Y = (int)lua_tointeger(_NLL, 3);
	int TM_ObjIndex = -1;
	OBJECT TM_Object = NULL;
	
	for( TM_Object = MAP_getTopObj( TM_Floor, TM_X, TM_Y) ; TM_Object != NULL ; TM_Object = NEXT_OBJECT(TM_Object))
	{
		TM_ObjIndex = GET_OBJINDEX(TM_Object);
		if( !CHECKOBJECTUSE(TM_ObjIndex) )
		{
			continue;
		}
		LRetInt(_NLL, 1);
	}
	LRetInt(_NLL, 0);
}
Exemple #2
0
void CHAR_playerWatchfunc( int objmeindex, int objmoveindex,
                           CHAR_ACTION act, int x, int y, int dir, int* opt, int optlen )
{
    int     fd;
    int     meindex;
    if( !CHECKOBJECTUSE(objmeindex) )return;
    if( !CHECKOBJECTUSE(objmoveindex))return;
    if( OBJECT_getType(objmeindex) != OBJTYPE_CHARA )return;

    meindex = OBJECT_getIndex(objmeindex);
    if( CHAR_getInt( meindex,CHAR_WHICHTYPE ) != CHAR_TYPEPLAYER )return;

    fd = getfdFromCharaIndex( meindex );
    if( fd == -1 )return;
    switch( OBJECT_getType(objmoveindex) ) {
    case OBJTYPE_CHARA:
    {
        char    buf[128];
        if( !CHAR_getFlg( OBJECT_getIndex(objmoveindex),CHAR_ISVISIBLE) )
            return;

        switch( act ) {
        case CHAR_ACTSTAND:
        case CHAR_ACTWALK:
        case CHAR_ACTATTACK:
        case CHAR_ACTDEAD:
        case CHAR_ACTMAGIC:
        case CHAR_ACTITEM:
        case CHAR_ACTDOWN:
        case CHAR_ACTSIT:
        case CHAR_ACTHAND:
        case CHAR_ACTPLEASURE:
        case CHAR_ACTANGRY:
        case CHAR_ACTSAD:
        case CHAR_ACTDAMAGE:
        case CHAR_ACTGUARD:
        case CHAR_ACTTURN:
        case CHAR_ACTWARP:
        case CHAR_ACTACTIONWALK:
        case CHAR_ACTNOD:
        case CHAR_ACTTHROW:
        case CHAR_ACTACTIONSTAND:
            if( CHAR_makeCADefaultString(objmoveindex,buf,sizeof(buf),act) ) {
                CONNECT_appendCAbuf( fd,buf,strlen(buf));
            }
            break;
        // shan begin
        case CHAR_ACTTRADE:
            if( optlen == 1 )
                if( CHAR_makeCAOPT1String( objmoveindex, buf,
                                           sizeof( buf), act, opt[0] ) )
                    CONNECT_appendCAbuf( fd, buf, strlen(buf));
            break;

            // shan end
#ifdef _MIND_ICON
        case CHAR_MIND:
            if( optlen == 1 )
                if( CHAR_makeCAOPT1String( objmoveindex, buf,
                                           sizeof(buf), act, opt[0]))
                    CONNECT_appendCAbuf( fd, buf, strlen(buf));
            break;
#endif
#ifdef _ITEM_CRACKER
        case CHAR_ITEM_CRACKER:
            if( optlen == 1 )
                if( CHAR_makeCAOPT1String( objmoveindex, buf,
                                           sizeof(buf), act, opt[0]))
                    CONNECT_appendCAbuf( fd, buf, strlen(buf));
            break;
#endif
        case CHAR_ACTEFFECT:
            if( optlen == 1 )
                if( CHAR_makeCAOPT1String(objmoveindex,buf,
                                          sizeof(buf),act,opt[0] ) )
                    CONNECT_appendCAbuf( fd,buf,strlen(buf));
            break;
        case CHAR_ACTPOPUPNAME:
        case CHAR_ACTLEADER:
        case CHAR_ACTBATTLEWATCH:
            if( optlen == 1 )
                if( CHAR_makeCAOPT1String(objmoveindex,buf,
                                          sizeof(buf),act,opt[0] ) )
                    CONNECT_appendCAbuf( fd,buf,strlen(buf));
            break;
        case CHAR_ACTBATTLE:
            if( optlen == 3 )
                if( CHAR_makeCAOPT3String( objmoveindex,buf, sizeof(buf),
                                           act,opt[0],opt[1],opt[2] ) )
                    CONNECT_appendCAbuf( fd,buf,strlen(buf));
            break;
        default:
            break;
        }

        break;
    }
    case OBJTYPE_ITEM:
    case OBJTYPE_GOLD:
        CHAR_sendSpecifiedobjindexCToCharaindex(meindex,objmoveindex);
        break;
    default:
        break;
    }

}