static void NPC_TranserMan_selectWindow( int meindex, int toindex, int num,int select) { char npcarg1[NPC_UTIL_GETARGSTR_BUFSIZE]; char *npcarg; char token[256]; int buttontype = 0, windowtype = 0, windowno = 0; int fd = getfdFromCharaIndex( toindex); windowtype = WINDOW_MESSAGETYPE_MESSAGE; if(NPC_Util_isFaceToFace( meindex ,toindex , 2) == FALSE) { if(NPC_Util_isFaceToChara( toindex, meindex, 1) == FALSE) return; } //memset( npcarg, 0, sizeof( npcarg)); if((npcarg = NPC_Util_GetArgStr( meindex, npcarg1, sizeof(npcarg1)))==NULL){ print("TRANSER_MAN: GetArgStrErr!!"); return; } memset( token, 0, sizeof( token)); switch( num) { case WINDOW_START: if( NPC_Util_GetStrFromStrWithDelim( npcarg, "START_MSG", token, sizeof( token) ) == NULL) { print("TranserMan Get START_MSG ERROR !"); return; } CHAR_setWorkInt( toindex, CHAR_WORKSHOPRELEVANT, WINDOW_START); buttontype = WINDOW_BUTTONTYPE_YESNO; windowno = NPC_TRANSERMAN_SELECT; break; case WINDOW_SELECT: if( TranserMan_GetMenuStr( meindex, toindex, npcarg, token) == FALSE ) { print( "TranserMan GetMenu ERROR !!"); return; } windowtype = WINDOW_MESSAGETYPE_SELECT; buttontype = WINDOW_BUTTONTYPE_CANCEL; windowno = NPC_TRANSERMAN_WARP; break; case WINDOW_WARP: if( ActionNpc_CheckMenuFree( meindex, toindex, npcarg, select) == FALSE ){ memset( token, 0, sizeof( token)); if( NPC_Util_GetStrFromStrWithDelim( npcarg, "FAIL_MSG", token, sizeof( token) ) != NULL) { CHAR_talkToCli( toindex, meindex, token, CHAR_COLORYELLOW); } } return; case WINDOW_END: break; } lssproto_WN_send( fd, windowtype, buttontype, windowno, CHAR_getWorkInt( meindex, CHAR_WORKOBJINDEX), token); }
static void NPC_VipShop_selectWindow( int meindex, int toindex, int num,int select) { char npcarg[NPC_UTIL_GETARGSTR_BUFSIZE]; char token[256]; char buf1[256]; char buf2[256]; char buf3[256]; int buttontype = 0, windowtype = 0, windowno = 0; int fd = getfdFromCharaIndex( toindex); static int select1; windowtype = WINDOW_MESSAGETYPE_MESSAGE; if(NPC_Util_isFaceToFace( meindex ,toindex , 2) == FALSE) { if(NPC_Util_isFaceToChara( toindex, meindex, 1) == FALSE) return; } memset( npcarg, 0, sizeof( npcarg)); if(NPC_Util_GetArgStr( meindex, npcarg, sizeof(npcarg))==NULL){ print("VipShop_MAN: GetArgStrErr!!"); return; } memset( token, 0, sizeof( token)); switch( num) { case WINDOW_START: if( NPC_Util_GetStrFromStrWithDelim( npcarg, "START_MSG", token, sizeof( token) ) == NULL) { print("VipShop Get START_MSG ERROR !"); return; } CHAR_setWorkInt( toindex, CHAR_WORKSHOPRELEVANT, WINDOW_START); buttontype = WINDOW_BUTTONTYPE_YESNO; windowno = NPC_TRANSERMAN_SELECT; break; case WINDOW_SELECT: CHAR_setWorkInt( toindex, CHAR_WORKLISTPAGE, 0); page=VipShop_ShowMenulist(npcarg); if( VipShop_GetMenuStr( meindex, toindex, npcarg, token,CHAR_getWorkInt( toindex, CHAR_WORKLISTPAGE)) == FALSE ) { print( "VipShop GetMenu ERROR !!"); return; } windowtype = WINDOW_MESSAGETYPE_SELECT; if(page>1) buttontype = WINDOW_BUTTONTYPE_CANCEL|WINDOW_BUTTONTYPE_NEXT; else buttontype = WINDOW_BUTTONTYPE_CANCEL; windowno = NPC_TRANSERMAN_WARP; break; case WINDOW_NEXT: if(CHAR_getWorkInt( toindex, CHAR_WORKLISTPAGE)<=page) CHAR_setWorkInt( toindex, CHAR_WORKLISTPAGE, CHAR_getWorkInt( toindex, CHAR_WORKLISTPAGE)+1); if( VipShop_GetMenuStr( meindex, toindex, npcarg, token,CHAR_getWorkInt( toindex, CHAR_WORKLISTPAGE)) == FALSE ) { print( "VipShop GetMenu ERROR !!"); return; } windowtype = WINDOW_MESSAGETYPE_SELECT; if(CHAR_getWorkInt( toindex, CHAR_WORKLISTPAGE)+1==page) buttontype = WINDOW_BUTTONTYPE_CANCEL|WINDOW_BUTTONTYPE_PREV; else buttontype = WINDOW_BUTTONTYPE_CANCEL|WINDOW_BUTTONTYPE_PREV|WINDOW_BUTTONTYPE_NEXT; windowno = NPC_TRANSERMAN_WARP; break; case WINDOW_PREV: if(CHAR_getWorkInt( toindex, CHAR_WORKLISTPAGE)>0) CHAR_setWorkInt( toindex, CHAR_WORKLISTPAGE, CHAR_getWorkInt( toindex, CHAR_WORKLISTPAGE)-1); if( VipShop_GetMenuStr( meindex, toindex, npcarg, token,CHAR_getWorkInt( toindex, CHAR_WORKLISTPAGE)) == FALSE ) { print( "VipShop GetMenu ERROR !!"); return; } windowtype = WINDOW_MESSAGETYPE_SELECT; if(CHAR_getWorkInt( toindex, CHAR_WORKLISTPAGE)==0) buttontype = WINDOW_BUTTONTYPE_CANCEL|WINDOW_BUTTONTYPE_NEXT; else buttontype = WINDOW_BUTTONTYPE_PREV|WINDOW_BUTTONTYPE_CANCEL|WINDOW_BUTTONTYPE_NEXT; windowno = NPC_TRANSERMAN_WARP; break; case WINDOW_WARP: select1=CHAR_getWorkInt( toindex, CHAR_WORKLISTPAGE)*7+select; CHAR_setWorkInt( toindex, CHAR_WORKLISTSELECT , select1); if( NPC_Util_GetStrFromStrWithDelim( npcarg, "END_MSG", buf1, sizeof( buf1) ) == NULL) { print("VipShop Get START_MSG ERROR !"); return; } if(getStringFromIndexWithDelim( npcarg,"}",select1, buf2, sizeof( buf2)) != FALSE) NPC_Util_GetStrFromStrWithDelim( buf2, "MenuStr", buf3, sizeof( buf3)); sprintf( token, "\n%s\n\n %s\n",buf1, buf3); windowtype = WINDOW_MESSAGETYPE_MESSAGE; buttontype = WINDOW_BUTTONTYPE_YESNO; windowno = NPC_TRANSERMAN_END; break; case WINDOW_END: ActionNpc_CheckMenuFree( meindex, toindex, npcarg, CHAR_getWorkInt( toindex, CHAR_WORKLISTSELECT )); return; break; } lssproto_WN_send( fd, windowtype, buttontype, windowno, CHAR_getWorkInt( meindex, CHAR_WORKOBJINDEX), token); }
//while( getStringFromIndexWithDelim( npcarg,"}",talkNo, buf1, sizeof( buf1)) != FALSE ) { static void NPC_Pauctionman_selectWindow( int meindex, int toindex, int num, int select) { char npcarg1[NPC_UTIL_GETARGSTR_BUFSIZE]; char token[NPC_UTIL_GETARGSTR_BUFSIZE]; int buttontype = 0, windowtype = 0, windowno = 0; int fd = getfdFromCharaIndex( toindex); windowtype = WINDOW_MESSAGETYPE_MESSAGE; if(NPC_Util_isFaceToFace( meindex ,toindex , 2) == FALSE) { if(NPC_Util_isFaceToChara( toindex, meindex, 1) == FALSE) return; } if( Action_PartyCheck( meindex, toindex) == FALSE) { CHAR_talkToCli( toindex, meindex, "請一個一個來!", CHAR_COLORYELLOW); return; } //memset( npcarg, 0, sizeof( npcarg)); if((npcarg = NPC_Util_GetArgStr( meindex, npcarg1, sizeof(npcarg1)))==NULL){ print("TRANSER_MAN: GetArgStrErr!!"); return; } memset( token, 0, sizeof( token)); switch( num) { case WINDOW_START: if( NPC_PAItemShop_Main( meindex, toindex, npcarg, token, sizeof( token)) == FALSE ) { return; } CHAR_setWorkInt( toindex, CHAR_WORKSHOPRELEVANT, WINDOW_START); buttontype = WINDOW_BUTTONTYPE_NONE; windowtype = WINDOW_MESSAGETYPE_ITEMSHOPMENU; windowno = NPC_PAUCTION_SELECT; break; case WINDOW_SELECT: windowtype = WINDOW_MESSAGETYPE_SELECT; buttontype = WINDOW_BUTTONTYPE_CANCEL; windowno = NPC_PAUCTION_WARP; break; // ================ Sell case WINDOW_SELLDO: if( select != 0 ){ if( NPC_PAItemShop_SellDo( meindex, toindex, npcarg, select) == FALSE ){ return; } } if( NPC_PAItemShop_Main( meindex, toindex, npcarg, token, sizeof( token)) == FALSE ) { return; } CHAR_setWorkInt( toindex, CHAR_WORKSHOPRELEVANT, WINDOW_START); buttontype = WINDOW_BUTTONTYPE_NONE; windowtype = WINDOW_MESSAGETYPE_ITEMSHOPMENU; windowno = NPC_PAUCTION_SELECT; break; case WINDOW_SELL: if( NPC_PAItemShop_SellMain( meindex, toindex, npcarg, token, sizeof( token)) == FALSE ){ return; } buttontype = WINDOW_BUTTONTYPE_NONE; windowtype = WINDOW_MESSAGETYPE_ITEMSHOPMAIN; windowno = NPC_PAUCTION_SELL; break; // ================ BUY case WINDOW_BUYDO: if( select != 0 ){ if( NPC_PAItemShop_BuyDo( meindex, toindex, npcarg, select-1) == FALSE ){ return; } } if( NPC_PAItemShop_Main( meindex, toindex, npcarg, token, sizeof( token)) == FALSE ) { return; } CHAR_setWorkInt( toindex, CHAR_WORKSHOPRELEVANT, WINDOW_START); buttontype = WINDOW_BUTTONTYPE_NONE; windowtype = WINDOW_MESSAGETYPE_ITEMSHOPMENU; windowno = NPC_PAUCTION_SELECT; break; case WINDOW_BUY: if( NPC_PAItemShop_BuyMain( meindex, toindex, npcarg, token, sizeof( token)) == FALSE ){ return; } buttontype = WINDOW_BUTTONTYPE_NONE; windowtype = WINDOW_MESSAGETYPE_ITEMSHOPMAIN; windowno = NPC_PAUCTION_BUY; break; // ================ case WINDOW_WARP: ActionNpc_CheckMenuFree( meindex, toindex, npcarg, select); return; case WINDOW_END: break; } lssproto_WN_send( fd, windowtype, buttontype, windowno, CHAR_getWorkInt( meindex, CHAR_WORKOBJINDEX), token); }