📄 item_event.c.bak
字号:
int battlemode; if( CHAR_CHECKINDEX( charaindex ) == FALSE )return ; //{撩 battlemode = CHAR_getWorkInt( charaindex, CHAR_WORKBATTLEMODE ); if( battlemode == BATTLE_CHARMODE_INIT ){ }else if( battlemode ){ ITEM_useStatusChange_Battle( charaindex, toindex, haveitemindex ); }else{ }}void ITEM_useStatusRecovery( int charaindex, int toindex, int haveitemindex){ int battlemode; if( CHAR_CHECKINDEX( charaindex ) == FALSE )return ; //{撩 battlemode = CHAR_getWorkInt( charaindex, CHAR_WORKBATTLEMODE ); if( battlemode == BATTLE_CHARMODE_INIT ){ }else if( battlemode ){ ITEM_useStatusRecovery_Battle( charaindex, toindex, haveitemindex ); }else{ }}void ITEM_useMagicDef( int charaindex, int toindex, int haveitemindex){ int battlemode; if( CHAR_CHECKINDEX( charaindex ) == FALSE )return; battlemode = CHAR_getWorkInt( charaindex, CHAR_WORKBATTLEMODE ); if( battlemode == BATTLE_CHARMODE_INIT ){ }else if( battlemode ){ ITEM_useMagicDef_Battle( charaindex, toindex, haveitemindex ); }else{ }}void ITEM_useParamChange( int charaindex, int toindex, int haveitemindex){ int battlemode; if( CHAR_CHECKINDEX( charaindex ) == FALSE )return ; battlemode = CHAR_getWorkInt( charaindex, CHAR_WORKBATTLEMODE ); if( battlemode == BATTLE_CHARMODE_INIT ){ }else if( battlemode ){ ITEM_useParamChange_Battle( charaindex, toindex, haveitemindex ); }}void ITEM_useFieldChange( int charaindex, int toindex, int haveitemindex){ int battlemode; if( CHAR_CHECKINDEX( charaindex ) == FALSE )return ; battlemode = CHAR_getWorkInt( charaindex, CHAR_WORKBATTLEMODE ); if( battlemode == BATTLE_CHARMODE_INIT ){ }else if( battlemode ){ ITEM_useFieldChange_Battle( charaindex, toindex, haveitemindex ); }}void ITEM_useAttReverse( int charaindex, int toindex, int haveitemindex){ int battlemode; if( CHAR_CHECKINDEX( charaindex ) == FALSE )return; battlemode = CHAR_getWorkInt( charaindex, CHAR_WORKBATTLEMODE ); if( battlemode == BATTLE_CHARMODE_INIT ){ }else if( battlemode ){ ITEM_useAttReverse_Battle( charaindex, toindex, haveitemindex ); }else{ }}void ITEM_useMic( int charaindex, int toindex, int haveitemindex){ int battlemode; if( CHAR_CHECKINDEX( charaindex ) == FALSE )return; battlemode = CHAR_getWorkInt( charaindex, CHAR_WORKBATTLEMODE ); if( battlemode == BATTLE_CHARMODE_INIT ){ }else if( battlemode ){ }else{ ITEM_useMic_Field( charaindex, toindex, haveitemindex ); }}void ITEM_useCaptureUp( int charaindex, int toindex, int haveitemindex){ int battlemode; if( CHAR_CHECKINDEX( charaindex ) == FALSE )return ; //{撩 battlemode = CHAR_getWorkInt( charaindex, CHAR_WORKBATTLEMODE ); if( battlemode == BATTLE_CHARMODE_INIT ){ }else if( battlemode ){ ITEM_useCaptureUp_Battle( charaindex, toindex, haveitemindex ); }else{ }}#ifdef _PETSKILL_CANNEDFOODstatic void ITEM_usePetSkillCanned_PrintWindow( int charaindex, int flg){ int fd; char message[256], buf[2048]; if( !CHAR_CHECKINDEX( charaindex )) return; fd = getfdFromCharaIndex( charaindex); if( fd == - 1 ) return; memset( message, 0, sizeof(message)); sprintf( message, "%d", flg); lssproto_WN_send( fd, WINDOWS_MESSAGETYPE_PETSKILLSHOW, WINDOW_BUTTONTYPE_NONE, ITEM_WINDOWTYPE_SELECTPETSKILL_SELECT, -1, makeEscapeString( message, buf, sizeof( buf)));}void ITEM_usePetSkillCanned_WindowResult( int charaindex, int seqno, int select, char * data){ int itemindex=-1, itemNo, petindex=-1, petNo; int SkillNo, SkillID; char buf1[256]; char *skillarg=NULL; petNo = CHAR_getWorkInt( charaindex, CHAR_WORKRENAMEITEMNUM); itemNo = CHAR_getWorkInt( charaindex, CHAR_WORKRENAMEITEMINDEX); itemindex = CHAR_getItemIndex( charaindex, itemNo); if( !ITEM_CHECKINDEX( itemindex) ) return; petindex = CHAR_getCharPet( charaindex, petNo); if( !CHAR_CHECKINDEX(petindex) ) return; SkillNo = atoi( data); if( SkillNo < 0 || SkillNo >= CHAR_MAXPETSKILLHAVE ) return; skillarg = ITEM_getChar( itemindex, ITEM_ARGUMENT); SkillID = atoi( skillarg);#ifdef _CFREE_petskill if( NPC_CHECKFREEPETSKILL( charaindex, petindex, SkillID) == FALSE ){ CHAR_talkToCli( charaindex, -1, "该宠物无法学习此项技能!", CHAR_COLORYELLOW); return; }#endif CHAR_setPetSkill( petindex, SkillNo, SkillID); memset( buf1, 0, sizeof(buf1)); snprintf( buf1, sizeof( buf1 ), "W%d", petNo); CHAR_sendStatusString( charaindex, buf1 ); CHAR_sendStatusString( charaindex, "P"); { int skillarray = PETSKILL_getPetskillArray( SkillID); sprintf( buf1, "宠物%s学习%s,道具 %s消失了。", CHAR_getUseName( petindex), PETSKILL_getChar( skillarray, PETSKILL_NAME), ITEM_getChar( itemindex, ITEM_NAME) ); } CHAR_talkToCli( charaindex, -1, buf1, CHAR_COLORYELLOW); CHAR_setItemIndex( charaindex, itemNo ,-1); CHAR_sendItemDataOne( charaindex, itemNo); ITEM_endExistItemsOne( itemindex);}#endifstatic void ITEM_useRenameItem_PrintWindow( int charaindex, int page){ int fd; int pos = 0; int i; int btntype = WINDOW_BUTTONTYPE_CANCEL; char message[1024]; char msgwk[1024]; char buf[2048]; if( !CHAR_CHECKINDEX( charaindex )) return; if( page < 0 || page > 3 ) { print( "%s:%d err\n", __FILE__, __LINE__); return; } fd = getfdFromCharaIndex( charaindex); if( fd == - 1 ) return; snprintf( message, sizeof( message), "2\n 要变更那个项目的名称呢\n" " Page:%d\n", page +1); for( i = page *5; i < page *5 +5; i ++ ) { int itemindex = CHAR_getItemIndex( charaindex, i); BOOL flg = FALSE; while( 1 ) { char *cdkey; if( !ITEM_CHECKINDEX( itemindex)) break; cdkey = ITEM_getChar( itemindex, ITEM_CDKEY); if( !cdkey) { print( "%s:%d err\n", __FILE__, __LINE__); break; } if( ITEM_getInt( itemindex, ITEM_MERGEFLG) != 1) break; if( ITEM_getInt( itemindex, ITEM_TYPE) == ITEM_DISH) break; if( ITEM_getInt( itemindex, ITEM_CRUSHLEVEL) != 0 ) break; if( strlen( cdkey) != 0 ) { if( strcmp( cdkey, CHAR_getChar( charaindex, CHAR_CDKEY)) != 0 ) { break; } } flg = TRUE; break; } if( flg ) { char *nm = ITEM_getChar( itemindex, ITEM_SECRETNAME); char wk[256]; if( pos +strlen( nm) +1 > sizeof( msgwk)) { print( "buffer over error %s:%d\n", __FILE__, __LINE__); break; } snprintf( wk, sizeof( wk), "%s\n", nm); strncpy( &msgwk[pos], wk, sizeof( msgwk) -pos -1); pos += strlen( wk); } else { if( pos +2 > sizeof( msgwk)) { print( "buffer over error %s:%d\n", __FILE__, __LINE__); break; } strncpy( &msgwk[pos], "\n", sizeof( msgwk) -pos -1 ); pos += 1; } } strcat( message, msgwk); switch( page){ case 0: btntype |= WINDOW_BUTTONTYPE_NEXT; break; case 3: btntype |= WINDOW_BUTTONTYPE_PREV; break; case 1: case 2: btntype |= WINDOW_BUTTONTYPE_PREV|WINDOW_BUTTONTYPE_NEXT; break; } lssproto_WN_send( fd, WINDOW_MESSAGETYPE_SELECT, btntype, CHAR_WINDOWTYPE_SELECTRENAMEITEM_PAGE1+page, -1, makeEscapeString( message, buf, sizeof(buf)));}void ITEM_useRenameItem( int charaindex, int toindex, int haveitemindex){ ITEM_useRenameItem_PrintWindow( charaindex, 0); CHAR_setWorkInt( charaindex, CHAR_WORKRENAMEITEMNUM, -1); CHAR_setWorkInt( charaindex, CHAR_WORKRENAMEITEMINDEX, haveitemindex);/* char buf[256]; int itemindex = CHAR_getItemIndex( charaindex, haveitemindex); if( !ITEM_CHECKINDEX( itemindex) ) return; sprintf( buf, "%s功能已被取消。", ITEM_getChar( itemindex, ITEM_NAME)); CHAR_talkToCli( charaindex, -1, "功能已被取消。", CHAR_COLORRED ); { LogItem( CHAR_getChar( charaindex, CHAR_NAME ), CHAR_getChar( charaindex, CHAR_CDKEY ), itemindex, "魔术笔DEL", CHAR_getInt( charaindex, CHAR_FLOOR), CHAR_getInt( charaindex, CHAR_X ), CHAR_getInt( charaindex, CHAR_Y ), ITEM_getChar( itemindex, ITEM_UNIQUECODE), ITEM_getChar( itemindex, ITEM_NAME), ITEM_getInt( itemindex, ITEM_ID) ); } CHAR_setItemIndex( charaindex, haveitemindex, -1); CHAR_sendItemDataOne( charaindex, haveitemindex); ITEM_endExistItemsOne( itemindex );*/}void ITEM_useRenameItem_WindowResult( int charaindex, int seqno, int select, char * data){ int page = 0; int fd; if( select == WINDOW_BUTTONTYPE_CANCEL) return; fd = getfdFromCharaIndex( charaindex); if( fd == - 1 ) return; if( seqno != CHAR_WINDOWTYPE_SELECTRENAMEITEM_RENAME ) { if( select == WINDOW_BUTTONTYPE_NEXT ) page = 1; else if( select == WINDOW_BUTTONTYPE_PREV ) page = -1; if( select == WINDOW_BUTTONTYPE_NEXT || select == WINDOW_BUTTONTYPE_PREV ) { int winno = seqno - CHAR_WINDOWTYPE_SELECTRENAMEITEM_PAGE1; winno += page; if( winno < 0 ) winno = 0; if( winno > 3 ) winno = 3; ITEM_useRenameItem_PrintWindow( charaindex, winno); }else { char message[1024]; char buf[2048]; char haveitemindex = CHAR_getWorkInt( charaindex, CHAR_WORKRENAMEITEMNUM); int itemindex; if( haveitemindex == -1 ) { haveitemindex = (seqno - CHAR_WINDOWTYPE_SELECTRENAMEITEM_PAGE1) * 5 + ( atoi(data)-1); CHAR_setWorkInt( charaindex, CHAR_WORKRENAMEITEMNUM, haveitemindex); } itemindex = CHAR_getItemIndex( charaindex, haveitemindex); snprintf( message, sizeof( message), "%s 名字要更改\n" "请输入姓名\n" "全形13个字, 半形26个字", ITEM_getChar( itemindex, ITEM_NAME)); lssproto_WN_send( fd, WINDOW_MESSAGETYPE_MESSAGEANDLINEINPUT, WINDOW_BUTTONTYPE_OKCANCEL, CHAR_WINDOWTYPE_SELECTRENAMEITEM_RENAME, -1, makeEscapeString( message, buf, sizeof(buf))); } } else { BOOL flg = FALSE; char message[1024]; char buf[2048]; while( 1 ) { char *p; if( strlen( data) > 26 || strlen( data) < 1) { if( strlen( data) > 26 ) { strcpy( message, "超过文字限制"); }else { strcpy( message, "请输入一个文字以上"); } break; } // WON ADD 修正魔术笔改名问题 flg = TRUE; for( p = data; *p ; p ++) { if( *p == ' '){ strcpy( message, "不可空白"); flg = FALSE; break; } if( strncmp( p, " ",2) == 0 ) { strcpy( message, "不可空白"); flg = FALSE; break; } if( *p == '|'){ strcpy( message, "不可有特殊符号"); flg = FALSE; break; } } break; } if( !flg ) { lssproto_WN_send( fd, WINDOW_MESSAGETYPE_MESSAGE, WINDOW_BUTTONTYPE_OK, CHAR_WINDOWTYPE_SELECTRENAMEITEM_RENAME_ATTENTION, -1, makeEscapeString( message, buf, sizeof(buf))); } else { char haveitemindex = CHAR_getWorkInt( charaindex, CHAR_WORKRENAMEITEMNUM); int itemindex; int renameitemindex; int renameitemhaveindex; int remain; char msgbuf[128]; itemindex = CHAR_getItemIndex( charaindex, haveitemindex); if( !ITEM_CHECKINDEX( itemindex)) { print( "%s %d err\n", __FILE__, __LINE__); return; } ITEM_setChar( itemindex, ITEM_SECRETNAME, data); ITEM_setChar( itemindex, ITEM_CDKEY, CHAR_getChar( charaindex, CHAR_CDKEY)); CHAR_sendItemDataOne( charaindex, haveitemindex); snprintf( msgbuf, sizeof(msgbuf),"把 %s 命名成 %s ", ITEM_getChar( itemindex, ITEM_NAME), data); CHAR_talkToCli( charaindex, -1, msgbuf, CHAR_COLORYELLOW);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -