📄 npc_petshop.c.bak
字号:
sprintf(token,"\n是[%s]没错吧?""%s" "\n\n 买卖价格 %d STONE\n" ,petname,buf,cost); }void NPC_PetDate2(int meindex,int talker,int select,char *token){ int petindex; char *petname; CHAR_setWorkInt(talker,CHAR_WORKSHOPRELEVANT,select); petindex = CHAR_getCharPet( talker, select-1); if( !CHAR_CHECKINDEX(petindex) ) return; petname = CHAR_getUseName( petindex); sprintf(token,"\n寄放[%s]" "\n\n 寄放价格 %d stone\n" ,petname, NPC_GETPOOLCOST( talker) ); }void NPC_PetDate3(int meindex,int talker,int select,char *token){ int poolindex; int petindex; char *petname; poolindex = CHAR_getWorkInt( talker, CHAR_WORKSHOPRELEVANT) * 5 + select - 1; CHAR_setWorkInt(talker,CHAR_WORKSHOPRELEVANT,poolindex ); petindex = CHAR_getCharPoolPet( talker, poolindex); if( !CHAR_CHECKINDEX(petindex) ) return; petname = CHAR_getUseName( petindex); sprintf(token,"\n领回[%s]", petname); }int NPC_GetCost(int meindex,int talker,int petindex){ int cost; int levelcost; int level; int getlevel; int graNo; int rare; int charm=50; int petai; int i=1; double rate=1.0; int intrate; char buf[1024]; char buff2[128]; char npcarg[NPC_UTIL_GETARGSTR_BUFSIZE - 1024 * 20]; if(NPC_Util_GetArgStr( meindex, npcarg, sizeof(npcarg))==NULL){ print("GetArgStrErr"); return FALSE; } getlevel=CHAR_getInt(petindex,CHAR_PETGETLV); level=CHAR_getInt(petindex,CHAR_LV); graNo=CHAR_getInt(petindex,CHAR_BASEBASEIMAGENUMBER); rare=CHAR_getInt(petindex,CHAR_RARE); if(getlevel==0) getlevel=1 ; /*--袄蟾毛菲户月--*/ levelcost=(level*level)*10; getlevel=(getlevel*getlevel)*10;// Syu ADD 修改卖转生宠金钱会变负的bug#ifdef _PET_2TRANS if( CHAR_getInt(petindex , CHAR_TRANSMIGRATION)>0)#else if( CHAR_getInt(petindex , CHAR_TRANSMIGRATION)==1)#endif getlevel=10; if(rare==0){ rare=1; }else if(rare==1){ rare=5; }else if(rare==2){ rare=8;} cost = ((levelcost-getlevel)+(level*PETCOST))*rare; intrate = CHAR_getWorkInt( meindex , CHAR_WORK_NOMALRATE); rate=(double) intrate / 1000; NPC_Util_GetStrFromStrWithDelim( npcarg, "special_pet", buf, sizeof( buf)); i=1; /*--旦矢扑乓伙伊□玄匹煌遥今木月矢永玄毛喃曰请允 矢永玄及隙烂反 飓 寞)--*/ while( getStringFromIndexWithDelim(buf,",",i,buff2,sizeof(buff2)) !=FALSE ) { if(strstr( buff2, "-")==NULL){ if(graNo == atoi(buff2)){ intrate=CHAR_getWorkInt( meindex , CHAR_WORK_SPECIALRATE); rate=(double) intrate / 1000; break; } }else{ /*--失奶 丞互 15-25 及溥匹嗉濠日木化中月桦宁--*/ int start; int end; int tmp; int graflg=0; char token2[128]; /*-"-"匹嗉濠日木凶铵户及醒袄午 及醒袄毛潸 --*/ getStringFromIndexWithDelim( buff2, "-", 1, token2, sizeof(token2)); start = atoi( token2); getStringFromIndexWithDelim( buff2, "-", 2 ,token2, sizeof(token2)); end = atoi( token2); /*-- 寞互菅卞卅匀化中凶日} 木赘尹月**/ if(start > end){ tmp=start; start=end; end=tmp; } end++; /*--"-"匹嗉濠日木凶坌及失奶 丞树 毛 月--*/ if(start <= graNo && graNo < end){ intrate=CHAR_getWorkInt( meindex , CHAR_WORK_SPECIALRATE); rate=(double) intrate / 1000; graflg=1; break; } if(graflg ==1) break; } i++; } /*--矢永玄及镝擦蘸毛 ---*/ petai=CHAR_getWorkInt(petindex,CHAR_WORKFIXAI); /*-- 毛必永玄--*/ charm = CHAR_getWorkInt(talker,CHAR_WORKFIXCHARM); /*-- ≈镝擦蘸 / ㄡ */ charm = charm + petai; if(charm < 20){ charm = 20; } charm = charm / 2; cost = (int)cost*rate; rate=(double)charm/100; /*-- 镝擦喘仃--*/ cost = cost * rate; /*--云嗯毛筏盛--*/ CHAR_setWorkInt(talker,CHAR_WORKSHOPRELEVANTSEC,cost); return cost;}#if 1void NPC_PetDel(int meindex, int talker,int select,char* token){ int petindex; int petsel; char szPet[128]; int cost; int defpet; int fd = getfdFromCharaIndex( talker ); NPC_MaxGoldOver( meindex, talker, NPC_PETSHOP_MSG_THANKS, token); petsel=(CHAR_getWorkInt(talker,CHAR_WORKSHOPRELEVANT)-1); petindex = CHAR_getCharPet( talker, petsel); if( !CHAR_CHECKINDEX(petindex) ) return; // CoolFish: Family 2001/6/14 if (CHAR_getInt(petindex, CHAR_PETFAMILY) == 1){ /* char buf[1024]; lssproto_WN_send(fd, WINDOW_MESSAGETYPE_MESSAGE, WINDOW_BUTTONTYPE_OK, -1, -1, makeEscapeString("\n\n很抱歉~守护兽无法贩卖喔!\n请自己好好照顾!", buf, sizeof(buf)));*/ sprintf(token,"\n\n很抱歉~守护兽无法贩卖喔!\n请自己好好照顾!"); return; } // Robin 0725 if (CHAR_getInt( talker, CHAR_RIDEPET ) == petsel ){ /* char buf[1024]; lssproto_WN_send(fd, WINDOW_MESSAGETYPE_MESSAGE, WINDOW_BUTTONTYPE_OK, -1, -1, makeEscapeString("\n\n骑乘中的宠物无法贩卖喔!", buf, sizeof(buf)));*/ sprintf(token,"\n\n骑乘中的宠物无法贩卖喔!"); return; } if( CHAR_getWorkInt( CONNECT_getCharaindex(fd), CHAR_WORKBATTLEMODE) != BATTLE_CHARMODE_NONE) return ; defpet=CHAR_getInt(talker,CHAR_DEFAULTPET); if(defpet==petsel){ CHAR_setInt(talker,CHAR_DEFAULTPET,-1); lssproto_KS_send( fd, -1, TRUE); } CHAR_setCharPet( talker, petsel, -1); LogPet( CHAR_getChar( talker, CHAR_NAME ), /* 平乓仿 */ CHAR_getChar( talker, CHAR_CDKEY ), CHAR_getChar( petindex, CHAR_NAME), CHAR_getInt( petindex, CHAR_LV), "sell(卖宠)", CHAR_getInt( talker,CHAR_FLOOR), CHAR_getInt( talker,CHAR_X ), CHAR_getInt( talker,CHAR_Y ), CHAR_getChar( petindex, CHAR_UNIQUECODE) // shan 2001/12/14 ); CHAR_endCharOneArray( petindex ); snprintf( szPet, sizeof( szPet ), "K%d", petsel); CHAR_sendStatusString( talker, szPet ); cost=NPC_GetCost(meindex,talker,petindex); CHAR_AddGold( talker, cost);}#endifvoid NPC_PetDel2( int meindex, int talker, int select, char *token){ int petindex; int selectpet; int emptyindex; char szPet[128]; int fd = getfdFromCharaIndex( talker ); if( fd == -1 ) { fprint( "err\n"); return; } // 矢永玄犯□正 凳[矢永玄 仃 木 selectpet = CHAR_getWorkInt( talker, CHAR_WORKSHOPRELEVANT) -1; petindex = CHAR_getCharPet( talker, selectpet); if( !CHAR_CHECKINDEX( petindex) ) return; // Robin 0725 if (CHAR_getInt( talker, CHAR_RIDEPET ) == selectpet ) {/* char buf[1024]; lssproto_WN_send(fd, WINDOW_MESSAGETYPE_MESSAGE, WINDOW_BUTTONTYPE_OK, -1, -1, makeEscapeString("\n\n骑乘中的宠物无法寄放喔!", buf, sizeof(buf)));*/ sprintf(token,"\n\n骑乘中的宠物无法寄放喔!"); return; } // 坞五毛茧允[蟆卞茧仄化民尼永弁仄化中月及匹]仇仇匹坞中化中卅中及反云井仄中 emptyindex = CHAR_getCharPoolPetElement( talker); if( emptyindex == -1 ) { fprint( "err\n"); return; } // 爵 赏 迕矢永玄卅日]公木及瓒 毛壅允[ if( CHAR_getInt( talker, CHAR_DEFAULTPET) == selectpet) { CHAR_setInt( talker, CHAR_DEFAULTPET, -1); lssproto_KS_send( fd, -1, TRUE); } // 仃 木 卞]矢永玄及奶件犯永弁旦毛戊疋□ CHAR_setCharPoolPet( talker, emptyindex, petindex); // 矢永玄 井日壅允 CHAR_setCharPet( talker, selectpet, -1); // 丢永本□斥潸 NPC_MaxGoldOver( meindex, talker, NPC_PETSHOP_MSG_POOLTHANKS, token); // 云嗯蛹日允 CHAR_DelGold( talker, NPC_GETPOOLCOST( talker) ); // 云嗯犯□正霜月 CHAR_send_P_StatusString(talker,CHAR_P_STRING_GOLD); snprintf( szPet, sizeof( szPet ), "K%d", selectpet); // 蕙仄中矢永玄旦 □正旦霜曰勾仃月 CHAR_sendStatusString( talker, szPet ); // 矢永玄毛 仃凶夫弘 LogPet( CHAR_getChar( talker, CHAR_NAME ), /* 平乓仿 */ CHAR_getChar( talker, CHAR_CDKEY ), CHAR_getChar( petindex, CHAR_NAME), CHAR_getInt( petindex, CHAR_LV), "pool(寄放宠物店)", CHAR_getInt( talker,CHAR_FLOOR), CHAR_getInt( talker,CHAR_X ), CHAR_getInt( talker,CHAR_Y ), CHAR_getChar( petindex, CHAR_UNIQUECODE) // shan 2001/12/14 );} void NPC_PetDel3( int meindex, int talker, int select, char *token){ int petindex; int selectpet; int emptyindex; char szPet[128]; int workindex[CHAR_MAXPOOLPETHAVE]; int i; int cnt; selectpet = CHAR_getWorkInt( talker, CHAR_WORKSHOPRELEVANT) ; petindex = CHAR_getCharPoolPet( talker, selectpet); if( !CHAR_CHECKINDEX( petindex) ) return; emptyindex = CHAR_getCharPetElement( talker); if( emptyindex == -1 ) { fprint( "err\n"); return; } // 如果是守护兽改为普通兽 if( CHAR_getInt( petindex, CHAR_PETFAMILY) == 1 && CHAR_getInt( talker, CHAR_FMLEADERFLAG) != 3 ) { CHAR_setInt( petindex, CHAR_PETFAMILY, 0); CHAR_talkToCli( talker, -1, "守护兽改为普通兽", CHAR_COLORYELLOW); }#ifdef _JZ_CF_DELPETITEM
int ID1,ID2; int j;
ID1=CHAR_getInt( petindex, CHAR_PETID);
for( j=0;j<5;j++ ) {
ID2 = getDelPet(j);
if(ID2 == 0)break;
if( ID1 == ID2){
CHAR_setDepotPetIndex( talker, i, -1);//清除不能当宠物的角色
LogPet( CHAR_getChar( talker, CHAR_NAME ),
CHAR_getChar( talker, CHAR_CDKEY ),
CHAR_getChar( petindex, CHAR_NAME),
CHAR_getInt( petindex, CHAR_LV),
"petshop(清除CF设置的宠物)",
CHAR_getInt( talker,CHAR_FLOOR),
CHAR_getInt( talker,CHAR_X ),
CHAR_getInt( talker,CHAR_Y ),
CHAR_getChar( petindex, CHAR_UNIQUECODE)
);
CHAR_talkToCli(talker,-1,"系统清除你仓库里的宠物",CHAR_COLORWHITE);
goto petshopOut;
}
}
#endif CHAR_setCharPet( talker, emptyindex, petindex); CHAR_setCharPoolPet( talker, selectpet, -1); NPC_MaxGoldOver( meindex, talker, NPC_PETSHOP_MSG_POOLTHANKS, token); snprintf( szPet, sizeof( szPet ), "K%d", emptyindex); CHAR_sendStatusString( talker, szPet ); snprintf( szPet, sizeof( szPet), "W%d",emptyindex); CHAR_sendStatusString( talker, szPet ); for( i = 0; i < CHAR_MAXPOOLPETHAVE; i ++ ) { workindex[i] = -1; } cnt = 0; for( i = 0; i < CHAR_MAXPOOLPETHAVE; i ++ ) { int petindex = CHAR_getCharPoolPet( talker, i); if( CHAR_CHECKINDEX( petindex) ) { workindex[cnt++] = petindex; } } for( i = 0; i < CHAR_MAXPOOLPETHAVE; i ++ ) { CHAR_setCharPoolPet( talker, i, workindex[i]); } LogPet( CHAR_getChar( talker, CHAR_NAME ), CHAR_getChar( talker, CHAR_CDKEY ), CHAR_getChar( petindex, CHAR_NAME), CHAR_getInt( petindex, CHAR_LV), "draw(领取宠物店)", CHAR_getInt( talker,CHAR_FLOOR), CHAR_getInt( talker,CHAR_X ), CHAR_getInt( talker,CHAR_Y ), CHAR_getChar( petindex, CHAR_UNIQUECODE) // shan 2001/12/14 ); } petshopOut:void NPC_getDrawPet( int meindex, int toindex, char *token, int *buttontype, int select){ // ㄠ矢□斥丐凶曰及垫醒 #define LINENUM 5 char buf[1024]; int i; int startnum, endnum; int petindex = -1; // 蜇箕及矢□斥 int page = CHAR_getWorkInt( toindex, CHAR_WORKSHOPRELEVANT); int limit; //andy_reEdit 2003/09/18 limit = (CHAR_getInt(toindex,CHAR_TRANSMIGRATION)*2)+5; endnum = (page + select+1)*LINENUM ; startnum = endnum - LINENUM; *buttontype = WINDOW_BUTTONTYPE_CANCEL; // 羹矢□斥譬帮[ if( endnum >= limit ) { endnum = limit; if( page +select!= 0 ) *buttontype |= WINDOW_BUTTONTYPE_PREV; } else if( endnum <= LINENUM ) { endnum = LINENUM; *buttontype |= WINDOW_BUTTONTYPE_NEXT; } else { *buttontype |= WINDOW_BUTTONTYPE_PREV | WINDOW_BUTTONTYPE_NEXT; } CHAR_setWorkInt( toindex, CHAR_WORKSHOPRELEVANT, page +select); strcpy( token, "2\n 请选择宠物 \n\n"); for( i = startnum; i < endnum; i ++ ) { petindex = CHAR_getCharPoolPet( toindex, i); if( CHAR_CHECKINDEX( petindex) ) { snprintf( buf, sizeof( buf), "LV.%3d MaxHP %3d %s\n", CHAR_getInt( petindex, CHAR_LV), CHAR_getWorkInt( petindex, CHAR_WORKMAXHP), CHAR_getUseName( petindex) ); } else { strcpy( buf, "\n"); } strcat( token, buf); } // 戚及域蜊毛譬屯化] 井匀凶日戚尺示正件毛潸月 if( i != limit ) { petindex = CHAR_getCharPoolPet( toindex, i); if( !CHAR_CHECKINDEX( petindex)) { *buttontype &= ~WINDOW_BUTTONTYPE_NEXT; } }}/* *云嗯互左□田□公及职中欠中欠 */void NPC_MaxGoldOver(int meindex,int toindex,int select,char *token){ char buf[1024]; char npcarg[NPC_UTIL_GETARGSTR_BUFSIZE - 1024 * 20]; NPC_Util_GetArgStr( meindex, npcarg, sizeof(npcarg)); if( select < 0 || select >= arraysizeof( shopmsg)) return; if( NPC_Util_GetStrFromStrWithDelim( npcarg, shopmsg[select].option, buf, sizeof( buf)) == NULL ) { strcpy( buf, shopmsg[select].defaultmsg); } snprintf(token,sizeof(buf),"\n\n%s",buf);}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -