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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? atcommand.c

?? 最新的仙鏡傳說服務(wù)器C語言源碼
?? C
?? 第 1 頁 / 共 4 頁
字號:
	const char* command, const char* message)
{
	if (!map[sd->bl.m].flag.gvg) {
				map[sd->bl.m].flag.gvg = 1;
		clif_send0199(sd->bl.m, 3);
		clif_displaymessage(fd, msg_table[34]);
			}
	return 0;
}

int
atcommand_model(
	const int fd, struct map_session_data* sd,
	const char* command, const char* message)
{
	int hair_style = 0, hair_color = 0, cloth_color = 0;
	if (!message || !*message)
		return -1;
	if (sscanf(message, "%d %d %d", &hair_style, &hair_color, &cloth_color) < 1)
		return -1;
	if (hair_style >= MIN_HAIR_STYLE && hair_style < MAX_HAIR_STYLE &&
		hair_color >= MIN_HAIR_COLOR && hair_color < MAX_HAIR_COLOR &&
		cloth_color >= MIN_CLOTH_COLOR && cloth_color <= MAX_CLOTH_COLOR) {
				//暈偺怓曄峏
		if (cloth_color != 0 &&
			sd->status.sex == 1 &&
			(sd->status.class == 12 ||  sd->status.class == 17)) {
					//暈偺怓枹幚憰怑偺敾掕
					clif_displaymessage(fd,msg_table[35]);
				} else {
			pc_changelook(sd, LOOK_HAIR, hair_style);
			pc_changelook(sd, LOOK_HAIR_COLOR, hair_color);
			pc_changelook(sd, LOOK_CLOTHES_COLOR, cloth_color);
			clif_displaymessage(fd, msg_table[36]);
				}
			} else {
		clif_displaymessage(fd, msg_table[37]);
		}

	return 0;
}

int
atcommand_go(
	const int fd, struct map_session_data* sd,
	const char* command, const char* message)
{
	int town = 0;
			struct { char map[16]; int x,y; } data[] = {
				{	"prontera.gat",	156, 191	},	//	0=僾儘儞僥儔
				{	"morocc.gat",	156,  93	},	//	1=儌儘僋
				{	"geffen.gat",	119,  59	},	//	2=僎僼僃儞
				{	"payon.gat",	 89, 122	},	//	3=僼僃僀儓儞
				{	"alberta.gat",	192, 147	},	//	4=傾儖儀儖僞
				{	"izlude.gat",	128, 114	},	//	5=僀僘儖乕僪
				{	"aldebaran.gat",140, 131	},	//	6=傾儖僨僶儔儞
				{	"xmas.gat",		147, 134	},	//	7=儖僥傿僄
				{	"comodo.gat",	209, 143	},	//	8=僐儌僪
				{	"yuno.gat",		157,  51	},	//	9=僕儏僲乕
				{	"amatsu.gat",	198,  84	},	//	10=傾儅僣
				{	"gonryun.gat",	160, 120	},	//	11=僑儞儕儏儞
			};
	
	if (!message || !*message)
		return -1;
	
	town = atoi(message);
	if (town >= 0 && town < sizeof(data) / sizeof(data[0])) {
		pc_setpos((struct map_session_data*)sd,
			data[town].map, data[town].x, data[town].y, 3);
			} else {
		clif_displaymessage(fd, msg_table[38]);
		}
	return 0;
}

int
atcommand_monster(
	const int fd, struct map_session_data* sd,
	const char* command, const char* message)
{
	char name[100];
	char monster[100];
	int mob_id = 0;
	int number = 0;
	int x = 0;
	int y = 0;
	int count = 0;
	int i = 0;
	
	if (!message || !*message)
		return -1;
	if (sscanf(message, "%99s %99s %d %d %d", name, monster,
		&number, &x, &y) < 3)
		return -1;
	
	if ((mob_id = atoi(monster)) == 0)
		mob_id = mobdb_searchname(monster);
	if (number <= 0)
		number = 1;
	if (battle_config.etc_log)
		printf("%s monster=%s name=%s id=%d count=%d (%d,%d)\n",
			command, monster, name, mob_id, number, x, y);
	
	for (i = 0; i < number; i++) {
		int mx = 0, my = 0;
		if (x <= 0)
			mx = sd->bl.x + (rand() % 10 - 5);
		else
			mx = x;
		if (y <= 0)
			my = sd->bl.y + (rand() % 10 - 5);
		else
			my = y;
		count +=
			(mob_once_spawn((struct map_session_data*)sd,
				"this", mx, my, name, mob_id, 1, "") != 0) ?
			1 : 0;
				}
	if (count != 0) {
					clif_displaymessage(fd,msg_table[39]);
	} else {
					clif_displaymessage(fd,msg_table[40]);
				}
	
	return 0;
}

void
atcommand_killmonster_sub(
	const int fd, struct map_session_data* sd, const char* message,
	const int drop)
{
	int map_id = 0;
	
	if (!message || !*message) {
		map_id = sd->bl.m;
	} else {
		char map_name[100];
		sscanf(message, "%99s", map_name);
		if (strstr(map_name, ".gat") == NULL && strlen(map_name) < 16) {
			strcat(map_name, ".gat");
			}
		if ((map_id = map_mapname2mapid(map_name)) < 0)
			map_id = sd->bl.m;
						}
	map_foreachinarea(atkillmonster_sub, map_id, 0, 0,
		map[map_id].xs, map[map_id].ys, BL_MOB, drop);
}

int
atcommand_killmonster(
	const int fd, struct map_session_data* sd,
	const char* command, const char* message)
{
	atcommand_killmonster_sub(fd, sd, message, 1);
	
	return 0;
}

int
atcommand_killmonster2(
	const int fd, struct map_session_data* sd,
	const char* command, const char* message)
{
	atcommand_killmonster_sub(fd, sd, message, 0);
	
	return 0;
}

int
atcommand_refine(
	const int fd, struct map_session_data* sd,
	const char* command, const char* message)
{
	int i = 0, position = 0, refine = 0, current_position = 0;
	struct map_session_data* p = (struct map_session_data*)sd;
	
	if (!message || !*message)
		return -1;
	
	if (sscanf(message, "%d %d", &position, &refine) >= 2) {
		for (i = 0; i < MAX_INVENTORY; i++) {
			if (sd->status.inventory[i].nameid &&	// 奩摉屄強偺憰旛傪惛楤偡傞
			    (sd->status.inventory[i].equip & position ||
				(sd->status.inventory[i].equip && !position))) {
				if (refine <= 0 || refine > 10)
					refine = 1;
				if (sd->status.inventory[i].refine < 10) {
					p->status.inventory[i].refine += refine;
					if (sd->status.inventory[i].refine > 10)
						p->status.inventory[i].refine = 10;
					current_position = sd->status.inventory[i].equip;
					pc_unequipitem((struct map_session_data*)sd, i, 0);
					clif_refine(fd, (struct map_session_data*)sd,
						0, i, sd->status.inventory[i].refine);
					clif_delitem((struct map_session_data*)sd, i, 1);
					clif_additem((struct map_session_data*)sd, i, 1, 0);
					pc_equipitem((struct map_session_data*)sd, i,
						current_position);
					clif_misceffect((struct block_list*)&sd->bl, 3);
					}
				}
			}
		}
	
	return 0;
}

int
atcommand_produce(
	const int fd, struct map_session_data* sd,
	const char* command, const char* message)
{
	char item_name[100];
	int item_id = 0, attribute = 0, star = 0;
	int flag = 0;
	if (!message || !*message)
		return -1;
	
	if (sscanf(message, "%99s %d %d", item_name, &attribute, &star) > 0) {
		if ((item_id = atoi(item_name)) == 0) {
			struct item_data *item_data = itemdb_searchname(item_name);
			if (item_data)
				item_id = item_data->nameid;
		}
		if (itemdb_exists(item_id) &&
			(item_id <= 500 || item_id > 1099) &&
			(item_id < 4001 || item_id > 4148) &&
			(item_id < 7001 || item_id > 10019) &&
			itemdb_isequip(item_id)) {
					struct item tmp_item;
			if (attribute < MIN_ATTRIBUTE || attribute > MAX_ATTRIBUTE)
				attribute = ATTRIBUTE_NORMAL;
			if (star < MIN_STAR || star > MAX_STAR)
				star = 0;
			memset(&tmp_item, 0, sizeof tmp_item);
			tmp_item.nameid = item_id;
			tmp_item.amount = 1;
			tmp_item.identify = 1;
			tmp_item.card[0] = 0x00ff;
			tmp_item.card[1] = ((star * 5) << 8) + attribute;
			*((unsigned long *)(&tmp_item.card[2])) = sd->char_id;
			clif_produceeffect(sd, 0, item_id); // 惢憿僄僼僃僋僩僷働僢僩
			clif_misceffect(&sd->bl, 3); // 懠恖偵傕惉岟傪捠抦
			if ((flag = pc_additem(sd, &tmp_item, 1)))
				clif_additem(sd, 0, 0, flag);
		} else {
			if (battle_config.error_log)
				printf("@produce NOT WEAPON [%d]\n", item_id);
		}
		}

	return 0;
}

int
atcommand_memo(
	const int fd, struct map_session_data* sd,
	const char* command, const char* message)
{
	int position = 0;
	
	if (!message || !*message)
		return -1;
	
	position = atoi(message);
	if (position < MIN_PORTAL_MEMO || position > MAX_PORTAL_MEMO)
		position = MIN_PORTAL_MEMO;
	pc_memo(sd, position);
	return 0;
}

int
atcommand_gat(
	const int fd, struct map_session_data* sd,
	const char* command, const char* message)
{
	char output[BUFSIZ];
	int y = 0;
	for (y = 2; y >= -2; y--) {
		snprintf(output, sizeof output,
			"%s (x= %d, y= %d) %02X %02X %02X %02X %02X",
			map[sd->bl.m].name, sd->bl.x - 2, sd->bl.y + y,
			map_getcell(sd->bl.m, sd->bl.x - 2, sd->bl.y + y),
			map_getcell(sd->bl.m, sd->bl.x - 1, sd->bl.y + y),
			map_getcell(sd->bl.m, sd->bl.x,     sd->bl.y + y),
			map_getcell(sd->bl.m, sd->bl.x + 1, sd->bl.y + y),
			map_getcell(sd->bl.m, sd->bl.x + 2, sd->bl.y + y));
		clif_displaymessage(fd, output);
			}
	
	return 0;
}

int
atcommand_packet(
	const int fd, struct map_session_data* sd,
	const char* command, const char* message)
{
	int x = 0, y = 0;
	
	if (!message || !*message)
		return -1;
	
	if (sscanf(message,"%d %d", &x, &y) < 2)
			return 1;
	clif_status_change(&sd->bl, x, y);
	return 0;
}

int
atcommand_statuspoint(
	const int fd, struct map_session_data* sd,
	const char* command, const char* message)
{
	int point = 0;
	
	if (!message || !*message)
		return -1;
	point = atoi(message);
	if (point > 0 || sd->status.status_point + point >= 0) {
		sd->status.status_point += point;
		clif_updatestatus(sd, SP_STATUSPOINT);
	} else {
		clif_displaymessage(fd, msg_table[41]);
		}

	return 0;
}

int
atcommand_skillpoint(
	const int fd, struct map_session_data* sd,
	const char* command, const char* message)
{
	int point = 0;
	if (!message || !*message)
		return -1;
	point = atoi(message);
	if (point > 0 || sd->status.skill_point + point >= 0) {
		sd->status.skill_point += point;
		clif_updatestatus(sd, SP_SKILLPOINT);
	} else {
		clif_displaymessage(fd, msg_table[41]);
		}

	return 0;
}

int
atcommand_zeny(
	const int fd, struct map_session_data* sd,
	const char* command, const char* message)
{
	int zeny = 0;
	
	if (!message || !*message)
		return -1;
	zeny = atoi(message);
	if (zeny > 0 || sd->status.zeny + zeny >= 0) {
		if (sd->status.zeny + zeny > MAX_ZENY)
			zeny = MAX_ZENY - sd->status.zeny;
		sd->status.zeny += zeny;
		clif_updatestatus(sd, SP_ZENY);
	} else {
		clif_displaymessage(fd, msg_table[41]);
		}
	return 0;
}

int
atcommand_param(
	const int fd, struct map_session_data* sd,
	const char* command, const char* message)
{
	int i = 0, value = 0, index = -1, new_value = 0;
	
	const char* param[] = {
		"@str", "@agi", "@vit", "@int", "@dex", "@luk", NULL
	};
	short* status[] = {
		&sd->status.str,  &sd->status.agi, &sd->status.vit,
		&sd->status.int_, &sd->status.dex, &sd->status.luk
	};
	
	if (!message || !*message)
		return -1;
	value = atoi(message);
	
	for (i = 0; param[i] != NULL; i++) {
		if (strcmpi(command, param[i]) == 0) {
			index = i;
			break;
		}
	}
	if (index < 0 || index > MAX_STATUS_TYPE)
		return -1;
	
	new_value = (int)(*status[index]) + value;
	if (new_value < 1)
		value = 1 - *status[index];
	if (new_value > battle_config.max_parameter)
		value = battle_config.max_parameter - *status[index];
	*status[index] += value;
	
	clif_updatestatus(sd, SP_STR + index);
	clif_updatestatus(sd, SP_USTR + index);
	pc_calcstatus(sd, 0);
	clif_displaymessage(fd, msg_table[42]);
	
	return 0;
}

int
atcommand_guildlevelup(
	const int fd, struct map_session_data* sd,
	const char* command, const char* message)
{
	int level = 0;
	struct guild *guild_info = NULL;
	
	if (!message || !*message)
		return -1;
	level = atoi(message);
	if (sd->status.guild_id <= 0 ||
		(guild_info = guild_search(sd->status.guild_id)) == NULL) {
		clif_displaymessage(fd, msg_table[43]);
		return 0;
	}
	if (strcmp(sd->status.name, guild_info->master) != 0) {
		clif_displaymessage(fd, msg_table[44]);
		return 0;
		}

	if (guild_info->guild_lv + level >= 1 &&
		guild_info->guild_lv + level <= MAX_GUILDLEVEL)
		intif_guild_change_basicinfo(guild_info->guild_id,
			GBI_GUILDLV, &level, 2);
	else
		clif_displaymessage(fd, msg_table[45]);
	
	return 0;
}

int
atcommand_makepet(
	const int fd, struct map_session_data* sd,
	const char* command, const char* message)
{
	int id = 0, pet_id = 0;

	if (!message || !*message)
		return -1;
			
	id = atoi(message);
	pet_id = search_petDB_index(id, PET_CLASS);
	if (pet_id < 0)
		pet_id = search_petDB_index(id, PET_EGG);
	if (pet_id >= 0) {
		sd->catch_target_class = pet_db[pet_id].class;
		intif_create_pet(
			sd->status.account_id, sd->status.char_id,
			pet_db[pet_id].class, mob_db[pet_db[pet_id].class].lv,
			pet_db[pet_id].EggID, 0, pet_db[pet_id].intimate,
			100, 0, 1, pet_db[pet_id].jname);
	} else {
		return -1;
		}

	return 0;
}
			
int
atcommand_petfriendly(
	const int fd, struct map_session_data* sd,
	const char* command, const char* message)
{
	int friendly = 0;

	if (!message || !*message)
		return -1;

	friendly = atoi(message);
	if (sd->status.pet_id > 0 && sd->pd) {
		if (friendly >= 0 && friendly <= 1000) {
					int t = sd->pet.intimate;
			sd->pet.intimate = friendly;
					clif_send_petstatus(sd);
			if (battle_config.pet_status_support) {
				if ((sd->pet.intimate > 0 && t <= 0) ||
					(sd->pet.intimate <= 0 && t > 0)) {
					if (sd->bl.prev != NULL)
						pc_calcstatus(sd, 0);
							else
						pc_calcstatus(sd, 2);
					}
				}
		} else {
			return -1;
			}
		}

	return 0;
}

int
atcommand_pethungry(
	const int fd, struct map_session_data* sd,
	const char* command, const char* message)
{
	int hungry = 0;
	
	if (!message || !*message)
		return -1;
	
	hungry = atoi(message);
	if (sd->status.pet_id > 0 && sd->pd) {
		if (hungry >= 0 && hungry <= 100) {
			sd->pet.hungry = hungry;
					clif_send_petstatus(sd);
		} else {
			return -1;
				}
			}

	return 0;
}

int
atcommand_petrename(
	const int fd, struct map_session_data* sd,
	const char* command, const char* message)
{
	if (sd->status.pet_id > 0 && sd->pd) {
				sd->pet.rename_flag = 0;
		intif_save_petdata(sd->status.account_id, &sd->pet);
				clif_send_petstatus(sd);
			}

	return 0;
}

int
atcommand_recall(
	const int fd, struct map_session_data* sd,
	const char* command, const char* message)
{
	char character[100];
	struct map_session_data *pl_sd = NULL;
	
	if (!message || !*message)
		return -1;
	
	memset(character, '\0', sizeof character);
	memset(character, '\0', sizeof character);
	sscanf(message, "%99[^\n]", character);
	if ((pl_sd = map_nick2sd(character)) != NULL) {
		if (pc_isGM(sd) > pc_isGM(pl_sd)) {

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
成人免费视频caoporn| 奇米在线7777在线精品| 国产精品毛片久久久久久| 欧美一级一级性生活免费录像| 日本精品视频一区二区| 97久久精品人人做人人爽 | 一区二区久久久| 亚洲精品国产成人久久av盗摄| 欧美午夜精品久久久久久孕妇| 色吧成人激情小说| 国产精品久久久久久久久快鸭| 日韩欧美123| 亚洲国产精华液网站w| 亚洲色图在线播放| 秋霞av亚洲一区二区三| 国产福利91精品| 欧美日韩三级一区二区| 一本到高清视频免费精品| 欧美久久久久久久久久| 久久影院电视剧免费观看| 亚洲图片你懂的| 国产一区激情在线| 欧美日韩国产大片| 国产欧美日韩激情| 首页国产欧美久久| caoporn国产精品| 日韩精品自拍偷拍| 樱花草国产18久久久久| 国产美女在线观看一区| 欧美色视频在线观看| 欧美激情一区三区| 久久99精品国产.久久久久| 北条麻妃国产九九精品视频| 欧美一级欧美三级在线观看 | 午夜久久久久久电影| 成人开心网精品视频| 日韩欧美国产一区二区在线播放| 亚洲色图欧美激情| 成人动漫av在线| 国产亚洲精品久| 国内精品视频666| 欧美tickle裸体挠脚心vk| 同产精品九九九| 欧美精选一区二区| 亚洲国产一区二区视频| 91丨九色丨蝌蚪富婆spa| 亚洲视频一区二区在线观看| 777色狠狠一区二区三区| 国产精品免费视频网站| 国产69精品久久久久毛片| 中文字幕免费观看一区| 日本免费在线视频不卡一不卡二| 欧美体内she精视频| 亚洲国产成人av网| 欧美一级片免费看| 精油按摩中文字幕久久| 中文字幕国产精品一区二区| 91小视频在线| 国产精品自在欧美一区| 亚洲国产精品综合小说图片区| 欧美成va人片在线观看| 99久久精品免费观看| 久久99久久精品| 玉米视频成人免费看| 国产区在线观看成人精品| 成人av网站在线| 欧美一a一片一级一片| 成人综合婷婷国产精品久久| 日韩av不卡在线观看| 亚洲精品国产精华液| 国产日韩精品一区二区三区| 91精品国产乱| 欧美一级搡bbbb搡bbbb| 91精品视频网| 欧美日韩精品一区二区三区 | 国产精品美女久久福利网站| 久久一区二区视频| 精品成a人在线观看| 欧美一二三四区在线| 777奇米四色成人影色区| 精品视频一区 二区 三区| 欧美综合视频在线观看| 精品视频在线看| 日韩一区和二区| 亚洲一区二区三区中文字幕在线| 亚洲综合另类小说| 日韩高清不卡一区二区三区| 亚洲黄色小说网站| 亚洲高清免费视频| 日韩成人精品在线观看| 蜜桃av一区二区| 国产成人亚洲综合a∨婷婷| 99国产欧美久久久精品| 欧美精品久久天天躁| 91.xcao| 日韩美女主播在线视频一区二区三区 | 天堂va蜜桃一区二区三区| 免费观看一级特黄欧美大片| 国产精品亚洲成人| 欧美性一区二区| 1区2区3区欧美| 日韩不卡一区二区| fc2成人免费人成在线观看播放| 欧美午夜精品久久久久久超碰 | 激情综合一区二区三区| 91网站视频在线观看| 欧美大胆人体bbbb| 亚洲精品乱码久久久久久日本蜜臀| 性做久久久久久久免费看| 热久久免费视频| 欧美偷拍一区二区| 中文字幕av不卡| 国产在线视频不卡二| 日韩一区二区三区高清免费看看| 亚洲激情图片qvod| 99r国产精品| 久久久久久久久久久久久久久99 | 久久久久亚洲蜜桃| 久久电影网电视剧免费观看| 色就色 综合激情| 免费成人结看片| 91啪九色porn原创视频在线观看| 国产日韩欧美综合在线| 懂色av一区二区在线播放| 26uuu欧美| 国产一区二区调教| 久久精品无码一区二区三区| 久久爱www久久做| 久久久久久电影| 91小视频免费观看| 亚洲大尺度视频在线观看| 欧美在线一区二区| 午夜精品一区二区三区免费视频| 色狠狠综合天天综合综合| 亚洲综合一区在线| 日韩一区二区免费高清| 国内成+人亚洲+欧美+综合在线| 51精品国自产在线| 狠狠色2019综合网| 国产精品伦理在线| 精品视频999| 国产很黄免费观看久久| 自拍偷拍国产亚洲| 欧美电影在线免费观看| 东方欧美亚洲色图在线| 午夜日韩在线观看| 国产精品亲子伦对白| 欧美日韩一区视频| 国产精品99久久久久久宅男| 亚洲精品久久久蜜桃| 日韩免费高清av| 欧美午夜在线一二页| 国产精品中文有码| 亚洲成av人在线观看| 一区二区中文视频| 国产精品超碰97尤物18| 日韩一区二区视频在线观看| 日本久久电影网| 成人性色生活片| 国产精品1区二区.| 精品在线观看视频| 婷婷亚洲久悠悠色悠在线播放| 国产精品久久久久影院亚瑟 | 从欧美一区二区三区| 另类小说色综合网站| 婷婷综合在线观看| 日韩成人免费看| 人禽交欧美网站| 日韩黄色免费电影| 亚洲高清在线精品| 日本特黄久久久高潮| 蜜臀av亚洲一区中文字幕| 午夜精品成人在线| 久久国产剧场电影| 成人午夜视频在线观看| 成人h精品动漫一区二区三区| 波多野结衣中文字幕一区| 91免费小视频| 日韩欧美国产系列| 国产精品嫩草99a| 天天综合色天天综合| 久久精品国产77777蜜臀| 国内精品视频一区二区三区八戒| 国产精品一区二区在线看| 成人黄色一级视频| 欧美性生活大片视频| 欧美一区二区三区色| 国产清纯白嫩初高生在线观看91| 中文字幕综合网| 麻豆视频一区二区| av一区二区三区在线| 欧美一区二区观看视频| 18成人在线视频| 激情图区综合网| 日本丶国产丶欧美色综合| 久久一区二区三区国产精品| 亚洲成av人影院| hitomi一区二区三区精品| 欧美zozozo| 日本中文字幕一区二区视频 |