www.pudn.com > gamedata.rar > novelity.c


#include "stdafx.h" 
 
extern struct OBJECT_INFO object_info[MAX_NUM_OBJ]; 
extern struct DROP_NOVELITY Drop_novelity[MAX_NUM_DROP]; 
extern struct NOVELITY_MAP_INFO map[MAX_NUM_MAP]; 
 
void dropnovelity(int m, int n, int x, int y, int n1, int n2) 
{ 
	int i; 
	long b; 
	struct NOVELITY_INFO novelity_info; 
 
	BYTE buf[4]; 
 
	b = (map[m].max_x * (y - 1) + x) - 1; 
	 
	if ((x > map[m].max_x ) || (y > map[m].max_y)) return; 
 
	if ((map[m].map_info[b].code[11] != 0xFF) && 
		(map[m].map_info[b].code[12] != 0xFF)) return; 
 
	novelity_info = getNovelity_info(Drop_novelity[n1].info[n2].code1, Drop_novelity[n1].info[n2].code2); 
	 
	Encode4(buf, GetTickCount()); 
	 
	map[m].map_info[b].code[5]   = buf[3]; 
	map[m].map_info[b].code[6]   = buf[2];	 
	map[m].map_info[b].code[7]   = buf[1]; 
	map[m].map_info[b].code[8]   = buf[0]; 
 
	Encode2(buf, x); 
	map[m].map_info[b].code[1]   = buf[1]; 
	map[m].map_info[b].code[2]   = buf[0]; 
	 
	Encode2(buf, y); 
	map[m].map_info[b].code[3]   = buf[1];	 
	map[m].map_info[b].code[4]   = buf[0]; 
	 
	// 51 - 0 - 84 - 1 - 232 - 28 - 0 - 0 - 1 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 
	Encode2(buf, Drop_novelity[n1].info[n2].level); 
	map[m].map_info[b].code[9]   = buf[1]; 
	map[m].map_info[b].code[10]  = buf[0]; 
	map[m].map_info[b].code[11]  = Drop_novelity[n1].info[n2].code1; 
	map[m].map_info[b].code[12]  = Drop_novelity[n1].info[n2].code2; 
	 
	if (novelity_info.have) 
	{ 
		if (novelity_info.reside2 == 13) // 如果是守护者 那么就只给他180的耐久度 
			Encode2(buf, 180); 
		else 
			Encode2(buf, Drop_novelity[n1].info[n2].status); 
	} 
 
	map[m].map_info[b].code[13]  = buf[1]; 
	map[m].map_info[b].code[14]  = buf[0]; 
	 
	if (novelity_info.reside2 == 13) 
		map[m].map_info[b].code[15]  = 0x2B; 
	else 
		map[m].map_info[b].code[15]  = 0x00; 
 
	map[m].map_info[b].code[16]  = 0x00; 
	map[m].map_info[b].code[17]  = 0x01; 
	map[m].map_info[b].code[18]  = 0x00; 
	map[m].map_info[b].code[19]  = Drop_novelity[n1].info[n2].code[0]; 
	map[m].map_info[b].code[20]  = Drop_novelity[n1].info[n2].code[1]; 
	map[m].map_info[b].code[21]  = Drop_novelity[n1].info[n2].code[2]; 
	map[m].map_info[b].code[22]  = Drop_novelity[n1].info[n2].code[3]; 
	map[m].map_info[b].code[23]  = Drop_novelity[n1].info[n2].code[4]; 
	map[m].map_info[b].code[24]  = Drop_novelity[n1].info[n2].code[5]; 
	map[m].map_info[b].code[25]  = Drop_novelity[n1].info[n2].code[6]; 
	map[m].map_info[b].code[26]  = 0x01; 
 
	for(i=0; i map[m].max_x ) || (y > map[m].max_y)) return; 
 
	if ((map[m].map_info[b].code[11] != 0xFF) && 
		(map[m].map_info[b].code[12] != 0xFF)) return; 
 
	// 0 地图可读  1 2 3 4 坐标 5 6 7 8 时间 
	Encode4(buf, GetTickCount()); 
 
	map[m].map_info[b].code[5]    = buf[3]; 
	map[m].map_info[b].code[6]    = buf[2]; 
	map[m].map_info[b].code[7]    = buf[1]; 
	map[m].map_info[b].code[8]    = buf[0]; 
 
	map[m].map_info[b].code[9]    = 0x01; 
	map[m].map_info[b].code[10]   = 0x00; 
 
	Encode2(buf, x); 
	map[m].map_info[b].code[1]    = buf[1]; 
	map[m].map_info[b].code[2]    = buf[0]; 
	Encode2(buf, y); 
	map[m].map_info[b].code[3]    = buf[1]; 
	map[m].map_info[b].code[4]    = buf[0]; 
 
	map[m].map_info[b].code[11]   = 0x10; 
	map[m].map_info[b].code[12]   = 0x27; 
 
	Encode4(buf, money); 
	map[m].map_info[b].code[13]   = buf[0]; 
	map[m].map_info[b].code[14]   = buf[1]; 
	map[m].map_info[b].code[15]   = buf[2]; 
	map[m].map_info[b].code[16]   = buf[3]; 
 
	map[m].map_info[b].code[26]   = 0x01; 
//		map[m].map_info[(x * (y - 1) + x) - 1].money  = TRUE; 
//		map[m].map_info[(x * (y - 1) + x) - 1].have   = TRUE; 
//		map[m].map_info[(x * (y - 1) + x) - 1].number = money; 
 
 
	for(i=0; i=3) // 打到很多装备,就给少点钱! 
					{ 
						money = object_info[n2].level * myrand(10, object_info[n2].level / 4) + myrand(1, object_info[n2].level); 
				 
						point = newevennumberxy(m, 2, object_info[n2].now_x, object_info[n2].now_y); 
		 
						if ((point.x != 0) && (point.y != 0)) 
							dropmoney(m, n, point.x, point.y, money); 
	 
						return; 
					} 
					 
				} 
				if (a<2) // 打到一件就给很多钱! 
				{ 
					money = object_info[n2].level * myrand(10, object_info[n2].level / 2) + myrand(1, object_info[n2].level); 
				 
					point = newevennumberxy(m, 2, object_info[n2].now_x, object_info[n2].now_y); 
		 
					if ((point.x != 0) && (point.y != 0)) 
						dropmoney(m, n, point.x, point.y, money); 
	 
					return; 
				} 
			}		 
		} 
	} 
}