📄 npc_pkpetshop.c.bak
字号:
}
}
/*--------------------------------
愤坌互云饕卞 月失奶 丞及 侬 毛及赏
*-------------------------------*/
int NPC_PKPetShop_GetLimtPetList(int talker, char *argstr, char* token2,int sell)
{
char token[NPC_UTIL_GETARGSTR_LINEMAX];
char buff[NPC_UTIL_GETARGSTR_LINEMAX];
char token3[NPC_UTIL_GETARGSTR_LINEMAX];
int k = 0 , i = 1 , j = 0;
int imax;
int itemtype = 0;
int itemindex;
int okflg = 0;
char buf[256];
int flg=0;
int cost;
if(sell == -1 ){
i = CHAR_STARTITEMARRAY;
imax = CHAR_MAXITEMHAVE;
flg = -1;
}else{
i= sell;
imax= sell + 1;
flg = 1;
}
/*--- 木月失奶 丞毛潸 允月[--*/
/** 旦矢扑乓伙失奶 丞毛手匀化中凶日 伊□玄匹煌遥--*/
/*-- 旦矢扑乓伙质 匹皿夫弘仿丞互 --*/
for( ; i < imax ; i++ ){
okflg=0;
itemindex = CHAR_getItemIndex( talker , i );
if( ITEM_CHECKINDEX( itemindex) ){
/*--失奶 丞及正奶皿互域谯仄凶日} 木月--*/
if( NPC_Util_GetStrFromStrWithDelim( argstr,"LimitItemType",
buff, sizeof( buff))
!= NULL )
{
k = 1;
while(getStringFromIndexWithDelim(buff , "," , k, token, sizeof(token))
!= FALSE )
{
#ifdef _ITEM_TYPETABLE
int cmpmaxitem = sizeof(TypeTable)/sizeof(TypeTable[0]);
#endif
k++;
#ifdef _ITEM_TYPETABLE
for(j = 0 ; j < cmpmaxitem ; j++){
#else
for(j = 0 ; j < ITEM_CATEGORYNUM+3 ; j++){
#endif
if(strcmp( TypeTable[ j].arg , token) == 0 ) {
itemtype = TypeTable[ j].type;
if(ITEM_getInt(itemindex,ITEM_TYPE) == itemtype) {
/*-- 侬 综岳--*/
cost = NPC_GetSellPetList(itemindex,0,argstr,token3,i,sell);
if(cost != -1) return cost;
strncat( token2, token3, sizeof( token3));
okflg = 1;
}else if(itemtype == 30){
if( 8 <= ITEM_getInt(itemindex,ITEM_TYPE)
&& (ITEM_getInt(itemindex,ITEM_TYPE) <= 15) ){
/*-- 侬 综岳--*/
cost = NPC_GetSellPetList(itemindex,0,argstr,token3,i,sell);
if(cost != -1) return cost;
strncat(token2,token3,sizeof(token3));
okflg = 1;
}
}else if(itemtype == 40){
if(( 0 <= ITEM_getInt(itemindex,ITEM_TYPE)
&& (ITEM_getInt(itemindex,ITEM_TYPE) <= 4))
|| (17 <= ITEM_getInt(itemindex,ITEM_TYPE)
&& (ITEM_getInt(itemindex,ITEM_TYPE) <= 19))
) {
/*-- 侬 综岳--*/
cost = NPC_GetSellPetList(itemindex,0,argstr,token3,i,sell);
if(cost != -1) return cost;
strncat(token2,token3,sizeof(token3));
okflg = 1;
}
}else if(itemtype == 50){
if( 5 <= ITEM_getInt(itemindex,ITEM_TYPE)
&& (ITEM_getInt(itemindex,ITEM_TYPE) <= 7) ){
/*-- 侬 综岳--*/
cost = NPC_GetSellPetList(itemindex,0,argstr,token3,i,sell);
if(cost != -1) return cost;
strncat(token2,token3,sizeof(token3));
okflg = 1;
}
}
break;
}
}
if(okflg == 1) break;
}
}
/*--正奶皿卞卅仁化 涛 寞仄化 木月失奶 丞井民尼永弁--*/
if( (NPC_Util_GetStrFromStrWithDelim( argstr, "LimitItemNo",
buff,sizeof( buff))
!= NULL)
&& okflg == 0 )
{
k = 1;
while(getStringFromIndexWithDelim(buff , "," , k, token, sizeof(token))
!= FALSE )
{
k++;
/*--窒手涩烂今木化卅井匀凶日} 骰允月-*/
if(strstr( token, "-")==NULL && strcmp(token,"") != 0) {
if(ITEM_getInt(itemindex,ITEM_ID) == atoi(token)) {
/*-- 侬 综岳--*/
cost = NPC_GetSellPetList(itemindex,0,argstr,token3,i,sell);
if(cost != -1) return cost;
strncat(token2,token3,sizeof(token3));
okflg=1;
}
}else if (strstr( token, "-") != NULL){
int start;
int end;
int work;
/*-- 侬 综岳--*/
/* "-"匹嗉濠日木凶铵户及醒袄午 及醒袄毛潸 --*/
getStringFromIndexWithDelim( token, "-", 1, buf, sizeof(buf));
start = atoi( buf);
getStringFromIndexWithDelim( token, "-", 2 ,buf, sizeof(buf));
end = atoi( buf);
/*-- 寞互菅卞卅匀化中凶日} 木赘尹月**/
if(start > end){
work = start;
start = end;
end = work;
}
end++;
/*--"-"匹嗉濠日木凶坌及失奶 丞毛树 毛 月--*/
if( (start <= ITEM_getInt(itemindex,ITEM_ID))
&& (ITEM_getInt(itemindex,ITEM_ID) < end) )
{
/*-- 侬 综岳--*/
cost = NPC_GetSellPetList(itemindex,0,argstr,token3,i,sell);
if(cost != -1) return cost;
strncat(token2,token3,sizeof(token3));
okflg = 1;
}
}
}
}
/*-- 月仇午互匹五卅中--*/
if(okflg == 0) {
cost = NPC_GetSellPetList(itemindex, 1, argstr, token3, i, sell);
if(sell != -1) return -1;
strncat( token2, token3, sizeof( token3));
}
}
}
return -1;
}
/*----------------------------------------------------------
弁仿奶失件玄卞霜耨允月皿夫玄戊伙及综岳
*----------------------------------------------------------*/
int NPC_GetSellPetList(int itemindex,int flg, char *argstr,char *argtoken,int select,int sell)
{
char buff[256];
double rate = 0.2;
char buff2[256];
char buff3[64];
int k = 1;
int cost = -1;
/*--旦矢扑乓伙伊□玄--**/
if(NPC_Util_GetStrFromStrWithDelim( argstr,"special_item",buff, sizeof( buff))
!= NULL)
{
if(NPC_Util_GetStrFromStrWithDelim( argstr,"special_rate",buff2, sizeof( buff2))
!= NULL )
{
rate = atof(buff2);
}else{
rate = 1.2;
}
while(getStringFromIndexWithDelim(buff , "," , k, buff2, sizeof(buff2)) !=FALSE )
{
k++;
if(strstr( buff2, "-") == NULL && strcmp(buff2,"") != 0) {
if(ITEM_getInt(itemindex,ITEM_ID) == atoi(buff2)){
cost = NPC_SellPetstrsStr( itemindex,0, rate, argtoken,select,sell);
return cost;
}
}else if (strstr( buff2, "-") != NULL){
int start;
int end;
int work;
/*-- 侬 综岳--*/
/* "-"匹嗉濠日木凶铵户及醒袄午 及醒袄毛潸 --*/
getStringFromIndexWithDelim( buff2, "-", 1, buff3, sizeof(buff3));
start = atoi( buff3);
getStringFromIndexWithDelim( buff2, "-", 2 ,buff3, sizeof(buff3));
end = atoi( buff3);
/*-- 寞互菅卞卅匀化中凶日} 木赘尹月**/
if(start > end){
work = start;
start = end;
end = work;
}
end++;
/*--"-"匹嗉濠日木凶坌及失奶 丞毛树 毛 月--*/
if( (start <= ITEM_getInt(itemindex,ITEM_ID))
&& (ITEM_getInt(itemindex,ITEM_ID) < end)
){
cost = NPC_SellPetstrsStr( itemindex,0, rate, argtoken,select,sell);
return cost;
}
}
}
}
/*--用□穴伙伊□玄--*/
if( NPC_Util_GetStrFromStrWithDelim( argstr,"sell_rate",buff, sizeof( buff))
!= NULL )
{
rate = atof(buff);
cost = NPC_SellPetstrsStr( itemindex, flg ,rate, argtoken,select,sell);
return cost;
}
return cost;
}
/*------------------------------------------
侬 毛综月(丹曰迕)
*------------------------------------------*/
int NPC_SellPetstrsStr(int itemindex,int flg,double rate,char *argtoken,int select,int sell)
{
int cost;
char escapedname[256];
char name[256];
char *eff;
cost = ITEM_getInt( itemindex, ITEM_COST);
cost = (int)(cost * rate);
if(sell != -1) return cost;
//strcpy( escapedname, ITEM_getChar( itemindex, ITEM_NAME));
strcpy( escapedname, ITEM_getChar( itemindex, ITEM_SECRETNAME));
makeEscapeString( escapedname, name, sizeof( name));
eff=ITEM_getChar(itemindex, ITEM_EFFECTSTRING);
makeEscapeString( eff, escapedname, sizeof(escapedname));
sprintf(argtoken,"%s|%d|%d|%d|%s|%d|",
name,
flg,
cost,
ITEM_getInt( itemindex, ITEM_BASEIMAGENUMBER),
escapedname,
select
);
return -1;
}
/*--------------------------------------------
*
*弁仿奶失件玄井日瑛绊互忒匀化五凶午五 月
*
*-------------------------------------------*/
BOOL NPC_PKPetShop_SellNewPet(int meindex,int talker,char *data)
{
int select;
int cost;
int oldcost;
char token[32];
int k;
int itemindex;
char argstr[NPC_UTIL_GETARGSTR_BUFSIZE];
char token2[256];
if(NPC_Util_GetArgStr( meindex, argstr, sizeof(argstr)) == NULL) {
print("GetArgStrErr");
return FALSE;
}
/*--忒匀化 凶犯□正及坌荸--*/
getStringFromIndexWithDelim(data , "|" ,1, token, sizeof( token));
select = atoi(token);
getStringFromIndexWithDelim(data , "|" ,2, token, sizeof( token));
oldcost = atoi(token);
if(select == 0) return FALSE;
cost = NPC_PKPetShop_GetLimtPetList( talker,argstr, token2,select);
/*--啜丹手及毛丹欠丹午仄凶午五及巨仿□--*/
if(oldcost != cost || cost == -1)
{
int fd = getfdFromCharaIndex( talker);
char token[256];
sprintf(token,"\n\n哎呀!对不起"
"\n\n对不起啊 ! 可不可以再选一次呢?"
);
k = select;
itemindex = CHAR_getItemIndex( talker ,k);
/*--夫弘及请 --*/
if(itemindex != -1) {
print("\n%s(%d,%d,%d):和选择的东西不同error([%s(%d)]要消失了)",
CHAR_getChar(talker, CHAR_NAME),
CHAR_getInt( talker, CHAR_FLOOR),
CHAR_getInt( talker, CHAR_X ),
CHAR_getInt( talker, CHAR_Y ),
ITEM_getChar(itemindex, CHAR_NAME),
ITEM_getInt( itemindex, ITEM_ID )
);
LogItem(
CHAR_getChar( talker, CHAR_NAME ), /* 平乓仿 */
CHAR_getChar( talker, CHAR_CDKEY ),
#ifdef _add_item_log_name // WON ADD 在item的log中增加item名称
itemindex,
#else
ITEM_getInt( itemindex, ITEM_ID ), /* 失奶 丞 寞 */
#endif
"SellErr",
CHAR_getInt( talker, CHAR_FLOOR),
CHAR_getInt( talker, CHAR_X ),
CHAR_getInt( talker, CHAR_Y ),
ITEM_getChar( itemindex, ITEM_UNIQUECODE),
ITEM_getChar( itemindex, ITEM_NAME),
ITEM_getInt( itemindex, ITEM_ID)
);
}else{
print("\n%s(%d,%d,%d):和选择的东西不同error(没有任何item存在)",
CHAR_getChar(talker, CHAR_NAME),
CHAR_getInt( talker, CHAR_FLOOR),
CHAR_getInt( talker, CHAR_X ),
CHAR_getInt( talker, CHAR_Y )
);
LogItem(
CHAR_getChar( talker, CHAR_NAME ), /* 平乓仿 */
CHAR_getChar( talker, CHAR_CDKEY ),
-1, /* 失奶 丞 寞 */
"SellErr",
CHAR_getInt( talker, CHAR_FLOOR),
CHAR_getInt( talker, CHAR_X ),
CHAR_getInt( talker, CHAR_Y ),
"-1", "NULL", -1 );
}
/*--仇仇匹霜耨--*/
lssproto_WN_send( fd, WINDOW_MESSAGETYPE_MESSAGE,
WINDOW_BUTTONTYPE_OK,
CHAR_WINDOWTYPE_WINDOWITEMSHOP_LIMIT,
CHAR_getWorkInt( meindex, CHAR_WORKOBJINDEX),
token);
return FALSE;
}
k = select;
itemindex=CHAR_getItemIndex( talker ,k);
if(itemindex != -1) {
{
LogItem(
CHAR_getChar( talker, CHAR_NAME ), /* 平乓仿 */
CHAR_getChar( talker, CHAR_CDKEY ),
#ifdef _add_item_log_name // WON ADD 在item的log中增加item名称
itemindex,
#else
ITEM_getInt( itemindex, ITEM_ID ), /* 失奶 丞 寞 */
#endif
"Sell",
CHAR_getInt( talker,CHAR_FLOOR),
CHAR_getInt( talker,CHAR_X ),
CHAR_getInt( talker,CHAR_Y ),
ITEM_getChar( itemindex, ITEM_UNIQUECODE),
ITEM_getChar( itemindex, ITEM_NAME),
ITEM_getInt( itemindex, ITEM_ID)
);
}
}
CHAR_DelItem( talker, k);
CHAR_AddGold( talker, cost);
CHAR_send_P_StatusString( talker, CHAR_P_STRING_GOLD);
return TRUE;
}
void NPC_LimitPetShop(int meindex,int talker,int select)
{
int fd = getfdFromCharaIndex( talker);
char token[NPC_UTIL_GETARGSTR_LINEMAX];
char argstr[NPC_UTIL_GETARGSTR_BUFSIZE];
char buf[1024];
/*--云饕及白央奶伙 中坭反白央奶伙互钒仃卅井匀凶午五反蔽 --*/
if( NPC_Util_GetArgStr( meindex, argstr, sizeof(argstr)) == NULL) {
print("shop_GetArgStr_Err");
return;
}
/*-- 中潸曰毁 饕匹允丢永本□斥-*/
if(NPC_Util_GetStrFromStrWithDelim( argstr, "sellonly_msg", buf, sizeof( buf))
!=NULL)
{
sprintf(token,"\n\n%s", buf);
lssproto_WN_send( fd, WINDOW_MESSAGETYPE_MESSAGE,
WINDOW_BUTTONTYPE_YESNO,
CHAR_WINDOWTYPE_WINDOWITEMSHOP_LIMIT,
CHAR_getWorkInt( meindex, CHAR_WORKOBJINDEX),
token);
}else{
CHAR_talkToCli( talker, meindex, "这是买卖专门店。",CHAR_COLORWHITE);
}
return;
}
/*--扪霜盒今氏--*/
void NPC_PKPetShop_ExpressmanCheck(int meindex,int talker)
{
int fd = getfdFromCharaIndex( talker);
char token[1024];
char argstr[NPC_UTIL_GETARGSTR_BUFSIZE];
char buf[1024];
/*--云饕及白央奶伙 中坭反白央奶伙互钒仃卅井匀凶午五反蔽 --*/
if( NPC_Util_GetArgStr( meindex, argstr, sizeof(argstr)) == NULL) {
print("shop_GetArgStr_Err");
return;
}
/*-- 中潸曰毁 饕匹允丢永本□斥-*/
NPC_Util_GetStrFromStrWithDelim( argstr, "main_msg", buf, sizeof( buf));
sprintf(token,"4\n丂丂丂丂丂丂丂%s\n\n%s"
"\n\n丂丂丂丂丂< 打工 >丂丂丂"
"\n\n丂丂丂丂 <交付行李>"
,CHAR_getChar(meindex,CHAR_NAME),buf);
lssproto_WN_send( fd, WINDOW_MESSAGETYPE_SELECT,
WINDOW_BUTTONTYPE_CANCEL,
CHAR_WINDOWTYPE_WINDOWITEMSHOP_EXPRESS,
CHAR_getWorkInt( meindex, CHAR_WORKOBJINDEX),
token);
return;
}
#endif
// _PKPETSHOP
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -