亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? npc_welfare2.c

?? 最新主流石器時代源代碼,包含諸多目前流行功能代碼.
?? C
字號:
#include "version.h"

#ifdef _NPC_WELFARE_2				// WON ADD 職業NPC-2
#ifdef _PROFESSION_SKILL			// WON ADD 人物職業技能

#include <string.h>
#include "char.h"
#include "object.h"
#include "char_base.h"
#include "npcutil.h"
#include "lssproto_serv.h"
#include "pet_skill.h"
#include "readmap.h"
#include "battle.h"
#include "profession_skill.h"
#include "chatmagic.h"
#include "npc_welfare2.h"


static void NPC_Welfare_selectWindow2(int meindex, int toindex, int num, int select);

//載入好康NPC的初始化
BOOL NPC_WelfareInit2( int meindex )
{
    CHAR_setInt( meindex , CHAR_WHICHTYPE , CHAR_TYPEWELFARE);
    print("名稱:%s\n",CHAR_getChar( meindex, CHAR_NAME));
    return TRUE;
}

//對話時的處理
void NPC_WelfareTalked2( int meindex , int talkerindex , char *szMes ,int color )
{
    if( CHAR_getInt( talkerindex , CHAR_WHICHTYPE ) != CHAR_TYPEPLAYER ) {
    	return;
    }
	if(NPC_Util_isFaceToFace(talkerindex,meindex,2 )==FALSE){
		if( NPC_Util_CharDistance( talkerindex, meindex ) > 1) return;
	}
	NPC_Welfare_selectWindow2( meindex, talkerindex,0,-1);
}

static void NPC_Welfare_selectWindow2( int meindex, int toindex, int num,int select)
{
	switch(num){
	  case 0:
		  //free
		NPC_WelfareMakeStr2(meindex, toindex, select);
		break;
	  case 1:
		break;
	}
}

void NPC_WelfareWindowTalked2( int meindex, int talkerindex, 
		int seqno, int select, char *data)
{
	int skill, i, j;
	int skillID = -1, skillid = -1;
	int ENDEV = -1, NOWEV = -1;
	char buf[64];
	char argstr[NPC_UTIL_GETARGSTR_BUFSIZE];
	char msg[512];
	int fd = getfdFromCharaIndex( talkerindex );
	double rate= 1.0;
	int skillarray;
	CHAR_HaveSkill* hskill;
	char err_msg[128] = {0};

	if( NPC_Util_CharDistance( talkerindex, meindex ) > 2) {
		return;
	}

	if(NPC_Util_GetArgStr( meindex, argstr, sizeof(argstr))==NULL){
		print("GetArgStrErr");
		return;
	}

	if( NPC_Util_GetStrFromStrWithDelim( argstr, "ENDEV:", msg, sizeof( msg)) != NULL){
		ENDEV=atof(msg);
	}

	if( NPC_Util_GetStrFromStrWithDelim( argstr, "NOWEV:", msg, sizeof( msg)) != NULL){
		NOWEV=atof(msg);
	}

	if( NPC_Util_GetStrFromStrWithDelim( argstr, "err_msg:", err_msg, sizeof( msg)) == NULL){
		print("GetArgStrErr");
		return;		
	}

	if( ENDEV > 0 ){
		if( NPC_EventCheckFlg( talkerindex, ENDEV ) != TRUE ){
			CHAR_talkToCli( talkerindex, -1, err_msg, CHAR_COLORYELLOW);
			return;
		}
	}else if( NOWEV > 0 ){
		if( NPC_EventCheckFlg( talkerindex, NOWEV ) != TRUE ){
			CHAR_talkToCli( talkerindex, -1, err_msg, CHAR_COLORYELLOW);	
			return;
		}
	}

	makeStringFromEscaped( data);
	getStringFromIndexWithDelim(data,"|",1,buf,sizeof(buf));
	skill=atoi(buf);
	
	// 技能id
	skillid = CHAR_getCharSkill( talkerindex, skill - 1 );	
	skillID = skillid;

	if(skillID <= 0) return ;

	if( CHAR_getWorkInt( CONNECT_getCharaindex(fd), CHAR_WORKBATTLEMODE) != BATTLE_CHARMODE_NONE) return ;

	if( NPC_Util_GetStrFromStrWithDelim( argstr, "skill_rate", msg, sizeof( msg)) != NULL){
		rate = atof( msg);
	}

	// 不扣錢
	CHAR_send_P_StatusString( talkerindex, CHAR_P_STRING_GOLD);

	skillarray = PROFESSION_SKILL_getskillArray( skillID );

	// 檢查是否有不能刪除的技能
	for( i=0; i<CHAR_SKILLMAXHAVE; i++ ){
		int limit = -1, skillid = -1, skillarray_temp = -1;

		// 技能ID
		skillid = CHAR_getCharSkill( talkerindex, i);
		if( skillid <= 0 ) continue;
	
		skillarray_temp = PROFESSION_SKILL_getskillArray( skillid );

		for( j=0; j<4; j++){
			limit = PROFESSION_SKILL_getInt( skillarray_temp, PROFESSION_SKILL_LIMIT1+j*2 );

			if( limit > 0 && limit == skillID ){
				char token[256] = {0};

				sprintf( token, "需先遺忘%s,才可刪除此技能", PROFESSION_SKILL_getChar( skillarray_temp, PROFESSION_SKILL_NAME ) );
				CHAR_talkToCli( talkerindex, -1, token, CHAR_COLORYELLOW);
				return;
			}
		}
	}

	// 遺忘技能
	{

		int skill_level = -1;
		int count = 0;
		int skill_id[CHAR_SKILLMAXHAVE] = {0};
		int skill_temp[CHAR_SKILLMAXHAVE] = {0};
		
		// 取熟練度
		for( i=0; i<CHAR_SKILLMAXHAVE; i++ ){
			int skillid = -1;

			// 技能ID
			skillid = CHAR_getCharSkill( talkerindex, i);

			// 不儲存需遺忘的技能
			if( skillid <= 0 || skillid == skillID ) continue;


			// 技能等級
			hskill = CHAR_getCharHaveSkill( talkerindex, i );
			skill_level = SKILL_getInt( &hskill->skill, SKILL_LEVEL);
			
			skill_id[count] = skillid;
			skill_temp[count] = skill_level;
			count++;
		}

		// 刪除所有技能
		CHAR_CHAT_DEBUG_delsk( talkerindex, "all" );

		// 還原技能
		for( i=0; i<count; i++ ){
			PROFESSION_SKILL_ADDSK( talkerindex, skill_id[i], skill_temp[i] );
		}

		CHAR_sendStatusString( talkerindex , "S");
		NPC_Welfare_selectWindow2( meindex, talkerindex,0,-1);
		
	}

	// 傳送訊息
	{
		char token[256];
		int next_profession_skill_point = 0;
		
		next_profession_skill_point = CHAR_getInt( talkerindex, PROFESSION_SKILL_POINT ) + 1;			
		CHAR_setInt( talkerindex, PROFESSION_SKILL_POINT, next_profession_skill_point );
		
		memset(token, -1, sizeof(token) );
		sprintf( token, "您遺忘了 %s,剩馀學習點數增加一點"
				,PROFESSION_SKILL_getChar( skillarray, PROFESSION_SKILL_NAME ) );

		CHAR_talkToCli( talkerindex, -1, token, CHAR_COLORYELLOW);
    
		CHAR_sendCToArroundCharacter( CHAR_getWorkInt( talkerindex , CHAR_WORKOBJINDEX ));
	}

}             

void NPC_WelfareMakeStr2(int meindex,int toindex,int select)
{
	char argstr[NPC_UTIL_GETARGSTR_BUFSIZE];
	char msg[256];
	int i = 0;// j = 0;
	char token[65530];
	int fd = getfdFromCharaIndex( toindex);
	CHAR_HaveSkill* hskill;
	int skillarray = -1;
	int skillid = -1;
//	int Pskillid = -1;
	char token2[265] = {0};
	int skill_level = -1;
//	int limit = -1;

	if(select==0){
		sprintf(token,"0|0");
		lssproto_WN_send( fd, WINDOW_MESSAGETYPE_PETSKILLSHOP, 
			WINDOW_BUTTONTYPE_NONE, 
			CHAR_WINDOWTYPE_WINDOWPETSKILLSHOP,
			CHAR_getWorkInt( meindex, CHAR_WORKOBJINDEX),
			token);
	}

	if(NPC_Util_GetArgStr( meindex, argstr, sizeof(argstr))==NULL){
		print("GetArgStrErr");
		return;
	}

	if( NPC_Util_GetStrFromStrWithDelim( argstr, "main_msg", msg, sizeof( msg)) == NULL){
		print("mainERR");
		return ;
	}

	sprintf(token,"1|%s|%s", CHAR_getChar(meindex,CHAR_NAME), msg);


	for( i=0; i<CHAR_SKILLMAXHAVE; i++ ){
		// 技能ID
		skillid = CHAR_getCharSkill( toindex, i);
		if( skillid <= 0 ) continue;

		skillarray = PROFESSION_SKILL_getskillArray( skillid );

		// 技能等級
		hskill = CHAR_getCharHaveSkill( toindex, i );
		skill_level = SKILL_getInt( &hskill->skill, SKILL_LEVEL);
				
		sprintf(token2,"|%s|%d|%s|%d",
			PROFESSION_SKILL_getChar( skillarray, PROFESSION_SKILL_NAME ),	// 技能名稱
			skill_level,													// 熟練度
			PROFESSION_SKILL_getChar( skillarray, PROFESSION_SKILL_TXT ),	// 說明
			PROFESSION_SKILL_getInt( skillarray, PROFESSION_SKILL_ICON )	// 圖示
		);

		strcat(token,token2);
	}

	lssproto_WN_send( fd, WINDOW_MESSAGETYPE_PROFESSIONSHOP2, 
				WINDOW_BUTTONTYPE_NONE, 
				WINDOW_MESSAGETYPE_PROFESSIONSHOP,
				CHAR_getWorkInt( meindex, CHAR_WORKOBJINDEX),
				token);

	return;
}


#endif
#endif


?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美性一级生活| 色成人在线视频| 99久久精品国产导航| 欧美色偷偷大香| 久久久99久久| 首页国产丝袜综合| 大陆成人av片| 日韩一区二区视频在线观看| 一区二区三区四区中文字幕| 国产黄色精品视频| 日韩欧美综合在线| 午夜激情综合网| 欧美在线视频全部完| 1024亚洲合集| 97精品超碰一区二区三区| 久久久精品综合| 国产在线精品一区二区不卡了| 在线观看网站黄不卡| 亚洲日本一区二区| av在线综合网| 国产日韩欧美在线一区| 国产乱子轮精品视频| 精品国产乱码久久久久久久| 丝袜美腿亚洲一区| 欧美高清激情brazzers| 亚洲国产日日夜夜| 欧美午夜精品久久久久久超碰 | 日韩国产欧美在线播放| 91蜜桃网址入口| 亚洲三级免费观看| 91麻豆免费观看| 亚洲精品免费视频| 欧美日韩一区二区三区免费看| 亚洲线精品一区二区三区| 色呦呦日韩精品| 亚洲一区二区三区在线播放| 欧美午夜精品一区二区三区| 日韩激情在线观看| 欧美成人vps| 国产成人免费在线观看不卡| 国产精品的网站| 在线中文字幕一区二区| 午夜电影网亚洲视频| 911精品国产一区二区在线| 日本中文在线一区| 久久精品免视看| 91麻豆国产自产在线观看| 亚洲一区二区三区国产| 欧美一区二区免费观在线| 国产伦精一区二区三区| 国产精品对白交换视频| 在线欧美一区二区| 九色porny丨国产精品| 国产女人18毛片水真多成人如厕 | 国产精品影音先锋| 国产精品天干天干在线综合| 在线精品视频小说1| 日本在线不卡一区| 国产精品欧美久久久久无广告| 欧美在线免费播放| 国产一区二区三区美女| 亚洲精品国产视频| 欧美精品一区二区不卡| 色综合天天在线| 免费亚洲电影在线| 中文字幕在线播放不卡一区| 欧美日本一区二区| 国产精品888| 日韩国产欧美一区二区三区| 亚洲国产精品v| 欧美一区二区久久| 色狠狠桃花综合| 狠狠色丁香久久婷婷综合丁香| 亚洲欧美激情一区二区| 欧美成人伊人久久综合网| 91毛片在线观看| 国产一区三区三区| 亚洲一区二区三区四区在线观看 | 欧美这里有精品| 国产在线精品一区二区| 偷拍亚洲欧洲综合| 亚洲欧美在线视频观看| 久久久久综合网| 7777精品伊人久久久大香线蕉超级流畅| 国产精品自在欧美一区| 亚洲成人一区在线| 亚洲女子a中天字幕| 久久久影视传媒| 日韩欧美一级片| 4438x亚洲最大成人网| 91蜜桃网址入口| 国产91丝袜在线播放0| 麻豆国产精品官网| 午夜精品在线视频一区| 一区二区视频在线| 中文字幕欧美一区| 国产亚洲一二三区| 亚洲精品在线观| 精品欧美黑人一区二区三区| 7777女厕盗摄久久久| 欧美精品久久久久久久多人混战| 97久久精品人人做人人爽50路| 国产不卡视频在线播放| 国产麻豆日韩欧美久久| 国内精品免费在线观看| 久久精品免费看| 激情亚洲综合在线| 精品一区在线看| 精品一区免费av| 国产一区二区免费在线| 久久狠狠亚洲综合| 久久99精品一区二区三区| 麻豆精品在线看| 国产在线不卡一卡二卡三卡四卡| 久久99热99| 韩国av一区二区| 国产精品一区免费视频| 国产成人av电影| www.日本不卡| 欧美三级日韩三级国产三级| 欧美三级中文字幕| 69堂国产成人免费视频| 精品国产免费一区二区三区香蕉| 亚洲精品在线免费播放| 国产丝袜美腿一区二区三区| 亚洲欧洲日产国产综合网| 亚洲人成亚洲人成在线观看图片| 亚洲综合成人在线视频| 日韩**一区毛片| 国产在线播精品第三| 99精品久久只有精品| 欧美在线免费视屏| 日韩三区在线观看| 久久嫩草精品久久久精品| 国产精品久线观看视频| 亚洲一区在线电影| 蜜臀国产一区二区三区在线播放| 国产在线精品免费| 91浏览器在线视频| 日韩欧美一级片| 国产精品初高中害羞小美女文| 亚洲愉拍自拍另类高清精品| 裸体歌舞表演一区二区| 99热精品国产| 欧美精品一卡二卡| 国产午夜亚洲精品不卡| 亚洲制服丝袜在线| 国产精品1024| 欧美日精品一区视频| 精品电影一区二区| 亚洲精品日日夜夜| 狠狠色狠狠色综合日日91app| 波多野结衣中文字幕一区二区三区| 欧美曰成人黄网| 久久精品一区二区三区av| 一区二区三区中文字幕电影| 国产米奇在线777精品观看| 色婷婷久久久久swag精品| 日韩网站在线看片你懂的| 中文字幕一区视频| 激情综合色丁香一区二区| 在线精品亚洲一区二区不卡| 国产日韩欧美亚洲| 美女网站在线免费欧美精品| 色综合天天狠狠| 欧美经典一区二区三区| 日韩高清在线一区| 日本韩国欧美一区二区三区| 久久久久久久久久久久久久久99 | 日韩一区二区视频| 亚洲一区二区三区四区不卡| 成人性生交大合| 精品少妇一区二区三区| 亚洲午夜精品一区二区三区他趣| 国产ts人妖一区二区| 精品1区2区在线观看| 蜜芽一区二区三区| 欧美私人免费视频| 尤物在线观看一区| 91丨porny丨国产入口| 国产欧美日韩精品在线| 精品一区二区三区视频在线观看| 欧美人妖巨大在线| 亚洲午夜在线电影| 在线观看亚洲精品视频| 亚洲日本护士毛茸茸| 成人精品一区二区三区中文字幕| 久久久www成人免费无遮挡大片| 麻豆精品视频在线观看视频| 欧美一级专区免费大片| 天堂午夜影视日韩欧美一区二区| 在线观看国产日韩| 亚洲成人免费视频| 欧美日韩你懂得| 亚洲国产乱码最新视频| 欧美日韩免费电影| 视频一区中文字幕国产| 欧美高清激情brazzers| 美女性感视频久久| 久久久久久久久久久久久久久99 |