📄 npc_windowhealer.c
字号:
/*------------------------------------------------------------------------------------*/void NPC_WindowHealerWindowTalked( int meindex, int talkerindex, int seqno, int select, char *data){ if( NPC_Util_CharDistance( talkerindex, meindex ) > (CHAR_getWorkInt(meindex,CHAR_WORK_RANGE)+4)) return; switch( seqno){ case CHAR_WINDOWTYPE_WINDOWHEALER_STARTMSG: if(atoi(data)==2) /*--蓟 仄凶嫩 1--*/ { NPC_WindowHealer_selectWindow( meindex, talkerindex, 1 ); }else if(atoi(data)==3){ NPC_WindowHealer_selectWindow( meindex, talkerindex, 2 ); }else if(atoi(data)==4){ NPC_WindowHealer_selectWindow( meindex, talkerindex, 6 ); }else if(atoi(data)==6){ if(NPC_PetHealerCheck( talkerindex)==TRUE){ NPC_WindowHealer_selectWindow( meindex, talkerindex, 9 ); }else{ NPC_WindowHealer_selectWindow( meindex, talkerindex, 10 ); } }else if(select==WINDOW_BUTTONTYPE_CANCEL){ } break; case CHAR_WINDOWTYPE_WINDOWHEALER_HPMSG: if(select==WINDOW_BUTTONTYPE_OK){ NPC_WindowHealer_selectWindow( meindex, talkerindex, 0 ); }else if(select==WINDOW_BUTTONTYPE_YES){ /*--云嗯及民尼永弁--*/ if(NPC_WindowMoneyCheck(meindex,talkerindex,1)==TRUE){ NPC_WindowHealer_selectWindow( meindex, talkerindex, 3 ); }else{ NPC_WindowHealer_selectWindow( meindex, talkerindex, 8 ); } }else if(select==WINDOW_BUTTONTYPE_NO){ NPC_WindowHealer_selectWindow( meindex, talkerindex, 0 ); } break; case CHAR_WINDOWTYPE_WINDOWHEALER_SPIRITMSG: if(select==WINDOW_BUTTONTYPE_OK){ NPC_WindowHealer_selectWindow( meindex, talkerindex, 0 ); }else if(select==WINDOW_BUTTONTYPE_YES){ /*--云嗯及民尼永弁--*/ if(NPC_WindowMoneyCheck(meindex,talkerindex,2)==TRUE){ NPC_WindowHealer_selectWindow( meindex, talkerindex, 4 ); }else{ NPC_WindowHealer_selectWindow( meindex, talkerindex, 8 ); } }else if(select==WINDOW_BUTTONTYPE_NO){ NPC_WindowHealer_selectWindow( meindex, talkerindex, 0 ); } break; case CHAR_WINDOWTYPE_WINDOWHEALER_OKHPMSG: if(select==WINDOW_BUTTONTYPE_OK){ NPC_WindowHealer_selectWindow( meindex, talkerindex, 0 ); } break; case CHAR_WINDOWTYPE_WINDOWHEALER_OKSPIRITMSG: if(select==WINDOW_BUTTONTYPE_OK){ NPC_WindowHealer_selectWindow( meindex, talkerindex, 0 ); } break; /*--蝈荚汊今六月--*/ case CHAR_WINDOWTYPE_WINDOWHEALER_ALLMSG: if(select==WINDOW_BUTTONTYPE_OK){ NPC_WindowHealer_selectWindow( meindex, talkerindex, 0 ); }else if(select==WINDOW_BUTTONTYPE_YES){ if(NPC_WindowMoneyCheck(meindex,talkerindex,3)==TRUE){ NPC_WindowHealer_selectWindow( meindex, talkerindex, 7 ); }else{ NPC_WindowHealer_selectWindow( meindex, talkerindex, 8 ); } }else if(select==WINDOW_BUTTONTYPE_NO){ NPC_WindowHealer_selectWindow( meindex, talkerindex, 0 ); } break; /*--蝈荚汊及瑛绊--*/ case CHAR_WINDOWTYPE_WINDOWHEALER_OKALLMSG: if(select==WINDOW_BUTTONTYPE_YES){ NPC_WindowHealer_selectWindow( meindex, talkerindex, 0 ); } break; } if(select==WINDOW_BUTTONTYPE_CANCEL && CHAR_getWorkInt( talkerindex, CHAR_WORKPARTYMODE ) == 2) { CHAR_sendWatchEvent( CHAR_getWorkInt( talkerindex, CHAR_WORKOBJINDEX), CHAR_ACTPLEASURE,NULL,0,TRUE); CHAR_setWorkInt( talkerindex, CHAR_WORKACTION, CHAR_ACTPLEASURE); }}BOOL NPC_PetHealerCheck(int talker){ int petindex; int i; /*--矢永玄反云引仃匹荚汊仄化丐仆月--*/ for(i=0;i<CHAR_MAXPETHAVE;i++){ petindex = CHAR_getCharPet(talker,i); if( petindex == -1 ) continue; if( !CHAR_CHECKINDEX( talker ) ) continue; if( CHAR_getInt(petindex,CHAR_HP) != CHAR_getWorkInt(petindex,CHAR_WORKMAXHP) ) { return TRUE; } } return FALSE;}/*----------------------------------------------------------------------------*/void NPC_WindowHealerAllHeal( int talker,int mode ){ int i; int petindex; char petsend[64]; char msgbuf[64]; if(mode==1){ CHAR_setInt( talker , CHAR_HP ,CHAR_getWorkInt( talker, CHAR_WORKMAXHP ) ); }else if(mode==2){ CHAR_setInt( talker , CHAR_MP ,CHAR_getWorkInt( talker, CHAR_WORKMAXMP ) ); }else if(mode==3){ /*--蝈荚汊---*/ CHAR_setInt( talker , CHAR_HP ,CHAR_getWorkInt( talker, CHAR_WORKMAXHP ) ); CHAR_setInt( talker , CHAR_MP ,CHAR_getWorkInt( talker, CHAR_WORKMAXMP ) ); } /*--矢永玄反云引仃匹荚汊仄化丐仆月--*/ for(i=0;i<CHAR_MAXPETHAVE;i++){ petindex = CHAR_getCharPet(talker,i); if( petindex == -1 ) continue; if( !CHAR_CHECKINDEX( talker ) ) continue; /*--荚汊--*/ CHAR_setFlg( petindex,CHAR_ISDIE,0 ); CHAR_setInt( petindex , CHAR_HP ,CHAR_getWorkInt( petindex, CHAR_WORKMAXHP ) ); CHAR_setInt( petindex , CHAR_MP ,CHAR_getWorkInt( petindex, CHAR_WORKMAXMP ) ); /*--由仿丢□正譬帮--*/ CHAR_complianceParameter( petindex ); sprintf( petsend, "K%d", i ); CHAR_sendStatusString( talker , petsend ); } /*--由仿丢□正霜曰--*/ CHAR_send_P_StatusString(talker,CHAR_P_STRING_HP); CHAR_send_P_StatusString(talker,CHAR_P_STRING_MP); /*---醮棉互中木壬醮棉卞手霜耨--*/ if(CHAR_getWorkInt( talker, CHAR_WORKPARTYMODE) != CHAR_PARTY_NONE ) { int topartyarray = -1; int oyaindex = CHAR_getWorkInt( talker , CHAR_WORKPARTYINDEX1); if( CHAR_CHECKINDEX( oyaindex )) { int i; for( i = 0; i < CHAR_PARTYMAX; i ++ ) { int workindex = CHAR_getWorkInt( oyaindex, CHAR_WORKPARTYINDEX1 +i); if( CHAR_CHECKINDEX( workindex) ) { if( workindex == talker ) { topartyarray = i; break; } } } for( i = 0; i < CHAR_PARTYMAX; i ++ ) { int otherindex = CHAR_getPartyIndex( talker, i); /* 醮棉由仿丢□正毛霜月 */ if( CHAR_CHECKINDEX( otherindex) ) { snprintf( msgbuf, sizeof( msgbuf), "N%d", topartyarray); if( otherindex != talker) { CHAR_sendStatusString( otherindex, msgbuf); } } } } }}/*-------------------------------------伊矛伙民尼永弁 涩烂伊矛伙动晓卅日 FALSE---------------------------------------*/BOOL NPC_WindowHealerLevelCheck(int meindex,int talker){ int level; level=CHAR_getWorkInt(meindex,CHAR_WORK_LEVEL); if(level > CHAR_getInt(talker,CHAR_LV)){ return TRUE; } return FALSE;}/*-------------------------------------------娄醒talker’’’’平乓仿弁正□及奶件犯永弁旦---------------------------------------------*/BOOL NPC_WindowMoneyCheck(int meindex,int talker,int mode){ int cost=0; int level; level=CHAR_getWorkInt(meindex,CHAR_WORK_LEVEL); if(mode==1){ if(level <= CHAR_getInt(talker,CHAR_LV)){ /*---云嗯毛喃曰请允---*/ cost=NPC_WindowCostCheck(meindex,talker); /*--蜇箕反移涩烂---*/ /*---云嗯互箫曰月井升丹井及民尼永弁---*/ if(CHAR_getInt(talker,CHAR_GOLD) < cost){ return FALSE; } CHAR_DelGold( talker, cost); } } if(mode==2){ if(level <= CHAR_getInt(talker,CHAR_LV)){ /*---云嗯毛喃曰请允---*/ cost=NPC_WindowCostCheckMp(meindex,talker); /*--蜇箕反移涩烂---*/ /*---云嗯互箫曰月井升丹井及民尼永弁---*/ if(CHAR_getInt(talker,CHAR_GOLD) < cost){ return FALSE; } CHAR_DelGold( talker, cost); } } if(mode==3){ if(level <= CHAR_getInt(talker,CHAR_LV)){ if( CHAR_getInt(talker,CHAR_HP) <CHAR_getWorkInt( talker, CHAR_WORKMAXHP)) { cost=NPC_WindowCostCheck(meindex,talker); } if( CHAR_getInt(talker,CHAR_MP) < CHAR_getWorkInt( talker, CHAR_WORKMAXMP)) { cost=cost+NPC_WindowCostCheckMp(meindex,talker); } /*--移涩烂--*/ if(CHAR_getInt(talker,CHAR_GOLD) < cost){ return FALSE; } /*---云嗯毛蛹日允---*/ CHAR_DelGold( talker, cost); } } CHAR_send_P_StatusString(talker,CHAR_P_STRING_GOLD); return TRUE;}/*-----------------------------------------戊旦玄及煌遥------------------------------------------*/int NPC_WindowCostCheck(int meindex,int talker){ int cost; double drate; int rate; rate=CHAR_getWorkInt(meindex,CHAR_WORK_HP); drate=(double) rate / 1000 ; cost=CHAR_getInt(talker,CHAR_LV); cost=(int)cost*drate; if(cost < 1) cost=1; return cost;}/*-----------------------------------------------------------------------------------*/int NPC_WindowCostCheckMp(int meindex,int talker){ int cost; double drate; int rate; rate=CHAR_getWorkInt(meindex,CHAR_WORK_MP); drate=(double) rate / 1000 ; cost=CHAR_getInt(talker,CHAR_LV); cost=(int)cost*drate; if(cost==0) cost=1; return cost;}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -