/* * ½é´ü²½¤¹¤ë¡e */ BOOL NPC_SimpleShopInit( int meindex ) { unsigned int mlevel; char npcarg1[NPC_UTIL_GETARGSTR_BUFSIZE]; char *npcarg; /* °ì²ó¼º ¤·¤¿¤¢¤È¤Ï2Å٤Ⱥî¤é¤Ê¤¤¤è¤¦¤Ë¤¹¤ë */ int createindex = CHAR_getInt( meindex, CHAR_NPCCREATEINDEX ); /* print("shopinit start\n" );*/ if( NPC_CHECKCREATEINDEX(createindex) ){ NPC_create[createindex].intdata[NPC_CREATETIME] = -1; } CHAR_setInt( meindex , CHAR_HP , 0 ); CHAR_setInt( meindex , CHAR_MP , 0 ); CHAR_setInt( meindex , CHAR_MAXMP , 0 ); CHAR_setInt( meindex , CHAR_STR , 0 ); CHAR_setInt( meindex , CHAR_TOUGH, 0 ); CHAR_setInt( meindex , CHAR_LV , 0 ); mlevel = ((100<<16)|(100<<0)); /* ¾å°Ì2¥Ð¥¤¥È¤¬ ¤¦¤È¤¤Î ¡b ²¼°Ì2¥Ð¥¤¥È¤¬ ¤ë¤È¤¤Î ¡e */ CHAR_setInt( meindex, CHAR_MERCHANTLEVEL, mlevel ); CHAR_setWorkInt( meindex, CHAR_WORKSHOPCLIENTINDEX, -1 ); CHAR_setInt( meindex , CHAR_WHICHTYPE , CHAR_TYPESHOP ); CHAR_setFlg( meindex , CHAR_ISOVERED , 0 ); CHAR_setFlg( meindex , CHAR_ISATTACKED , 0 ); npcarg = NPC_Util_GetArgStr( meindex, npcarg1, sizeof(npcarg1)); /* ¥¢¥¤ ¥à ¤¿¤»¤ë¡e¼º ¤·¤¿¤éreturn FALSE */ if( ! NPC_SimpleShopFillItem( meindex,npcarg ) ){ print( "SHOP INIT ERROR: npcarg=%s\n", npcarg ); return FALSE; } /* print("shopinit end\n" );*/ return TRUE; }
BOOL NPC_SimpleShopInit( int meindex ) { unsigned int mlevel; char npcarg[NPC_UTIL_GETARGSTR_BUFSIZE]; int createindex = CHAR_getInt( meindex, CHAR_NPCCREATEINDEX ); /* print("shopinit start\n" );*/ if( NPC_CHECKCREATEINDEX(createindex) ){ NPC_create[createindex].intdata[NPC_CREATETIME] = -1; } CHAR_setInt( meindex , CHAR_HP , 0 ); CHAR_setInt( meindex , CHAR_MP , 0 ); CHAR_setInt( meindex , CHAR_MAXMP , 0 ); CHAR_setInt( meindex , CHAR_STR , 0 ); CHAR_setInt( meindex , CHAR_TOUGH, 0 ); CHAR_setInt( meindex , CHAR_LV , 0 ); mlevel = ((100<<16)|(100<<0)); /* ÏþÞË2ÌïÄÌÐþ»¥ µ¤ÎçÎå¼° £ý ƱÞË2ÌïÄÌÐþ»¥ ÔÂÎçÎå¼° £Û */ CHAR_setInt( meindex, CHAR_MERCHANTLEVEL, mlevel ); CHAR_setWorkInt( meindex, CHAR_WORKSHOPCLIENTINDEX, -1 ); CHAR_setInt( meindex , CHAR_WHICHTYPE , CHAR_TYPESHOP ); CHAR_setFlg( meindex , CHAR_ISOVERED , 0 ); CHAR_setFlg( meindex , CHAR_ISATTACKED , 0 ); NPC_Util_GetArgStr( meindex, npcarg, sizeof(npcarg)); if( ! NPC_SimpleShopFillItem( meindex,npcarg ) ){ print( "SHOP INIT ERROR: npcarg=%s\n", npcarg ); return FALSE; } /* print("shopinit end\n" );*/ return TRUE; }
void NPC_SimpleShopSpecialTalked( int meindex, int talker, char *msg, int color ) { if( CHAR_getInt(talker,CHAR_WHICHTYPE) == CHAR_TYPEPLAYER && NPC_Util_isFaceToFace( meindex, talker, SHOPRANGE ) ){ char npcarg[NPC_UTIL_GETARGSTR_BUFSIZE], token[NPC_UTIL_GETARGSTR_LINEMAX]; NPC_Util_GetArgStr( meindex, npcarg, sizeof(npcarg)); switch( tolower(msg[0]) ){ case 's': { int ret; if( CHAR_getWorkInt(meindex,CHAR_WORKSHOPCLIENTINDEX)!= talker ){ getStringFromIndexWithDelim( npcarg,"|",ANOTHERPLAYERTOKEN, token, sizeof(token)); NPC_SimpleShopNormalWindow( meindex, talker, token ); return; } ret = getStringFromIndexWithDelim( msg, "|", 3, token, sizeof(token)); if( ret == FALSE ){ token[0] = 'e'; token[1] = '\0'; } switch( tolower(token[0])){ case 'b': if( (ret=NPC_SimpleShopProcessBuyMsg(msg,meindex,talker)) <0){ switch( ret ){ case -2: getStringFromIndexWithDelim( npcarg,"|",POORTOKEN, token,sizeof(token)); NPC_SimpleShopNormalWindow( meindex,talker,token); break; case -3: getStringFromIndexWithDelim( npcarg,"|", ITEMFULLTOKEN, token,sizeof(token)); NPC_SimpleShopNormalWindow(meindex,talker,token); break; case -1: default: NPC_SimpleShopNormalWindow(meindex, talker, SIMPLESHOP_FATALERRSTR ); break; } }else{ NPC_SimpleShopFillItem( meindex, npcarg ); getStringFromIndexWithDelim(npcarg,"|",THANKYOUTOKEN, token, sizeof(token)); NPC_SimpleShopNormalWindow(meindex,talker,token); } break; case 's': if( CHAR_getWorkInt(meindex,CHAR_WORKSHOPCLIENTINDEX) != talker ){ getStringFromIndexWithDelim( npcarg,"|", ANOTHERPLAYERTOKEN, token, sizeof(token)); NPC_SimpleShopNormalWindow( meindex, talker, token ); return; } if((ret=NPC_SimpleShopProcessSellMsg(msg,meindex,talker)) <0 ){ switch(ret){ case -2: getStringFromIndexWithDelim( npcarg,"|", RAREITEMTOKEN, token, sizeof(token) ); NPC_SimpleShopNormalWindow( meindex,talker,token); break; case -1: default: NPC_SimpleShopNormalWindow(meindex, talker, SIMPLESHOP_FATALERRSTR ); break; } }else{ getStringFromIndexWithDelim(npcarg,"|",THANKYOUTOKEN, token, sizeof(token)); NPC_SimpleShopNormalWindow(meindex,talker,token); } break; case 'e': default: CHAR_setWorkInt( meindex, CHAR_WORKSHOPCLIENTINDEX, -1 ); break; } break; } case 'i': if( CHAR_getWorkInt(meindex,CHAR_WORKSHOPCLIENTINDEX) == talker ){ NPC_SimpleShopOpenShopWindow( meindex, talker, npcarg ); } break; default: break; } } }