📄 npc_windowhealer.c
字号:
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){
/*--蓟 仄凶嫩 2--*/
NPC_WindowHealer_selectWindow( meindex, talkerindex, 2 );
}else if(atoi(data)==4){
/*--蓟 仄凶嫩 2--*/
NPC_WindowHealer_selectWindow( meindex, talkerindex, 6 );
}else if(atoi(data)==6){
/*--蓟 仄凶嫩 2--*/
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);
}
}
/*--辎勾中化中月及卅日}TRUE毛忒允--*/
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){
/*--HP互觐菁 卅及匹丐月--*/
CHAR_setInt( talker , CHAR_HP ,CHAR_getWorkInt( talker, CHAR_WORKMAXHP ) );
}else if(mode==2){
/*--竣 及心荚汊--*/
/*--MP互竣 卅及匹丐月--*/
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);
}
}
}
}
}
}
/*-------------------------------------
伊矛伙民尼永弁
伊矛伙毛苇化涩烂伊矛伙方曰斓仃木壬 卞允月
曰袄
涩烂伊矛伙 TRUE
涩烂伊矛伙动晓卅日 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;
}
/*-------------------------------------------
云嗯 匀化月井民尼永弁
娄醒
meindex’’’ 及奶件犯永弁旦
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 + -