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;
}
}
}
}
}