Ejemplo n.º 1
0
void update_save_players(void)
{
	uint32 i = 0;

	if(total_players_online()){
		printf("Saving all online players.\n");
		admin_msg("Saving all online players.",1); //pink
		save_online_players();
	}
}
Ejemplo n.º 2
0
void destroy_server(void)
{
	uint32 i = 0;

	printf("Saving online players.\n");

	for(i = 0; i < total_players_online(); i++)
		left_game(player_online(i));

	printf("Clearing Data.\n");
	unload_shops();
	unload_spells();
	unload_items();
	unload_npcs();
	unload_players();
	unload_maps();
	unload_socket();
	path_destroy();
	strings_destroy();
}
Ejemplo n.º 3
0
void update_player_vitals(void)
{
	uint32 i = 0;

	for(i = 0; i < total_players_online(); i++){
		if(player(player_online(i))->vitals[VITAL_HP] != get_player_max_vital(player_online(i),VITAL_HP)){
			player(player_online(i))->vitals[VITAL_HP] += get_player_vital_regen(player_online(i),VITAL_HP);
			send_vital(player_online(i),VITAL_HP);
		}

		if(player(player_online(i))->vitals[VITAL_MP] != get_player_max_vital(player_online(i),VITAL_MP)){
			player(player_online(i))->vitals[VITAL_MP] += get_player_vital_regen(player_online(i),VITAL_MP);
			send_vital(player_online(i),VITAL_MP);
		}

		if(player(player_online(i))->vitals[VITAL_SP] != get_player_max_vital(player_online(i),VITAL_SP)){
			player(player_online(i))->vitals[VITAL_HP] += get_player_vital_regen(player_online(i),VITAL_SP);
			send_vital(player_online(i),VITAL_SP);
		}
	}
}
Ejemplo n.º 4
0
void ai_attack_on_sight(uint8 mapnpcnum, uint16 target, uint32 mapnum)
{
	uint16 i = 0;
	uint16 n;
	int8 dx;
	int8 dy;
	char *string = NULL;

	if(npc(map(mapnum)->npc[mapnpcnum].num)->behavior == BEHAVIOR_ATTACKONSIGHT || npc(map(mapnum)->npc[mapnpcnum].num)->behavior == BEHAVIOR_GUARD){
		if(map(mapnum)->npc[mapnpcnum].targettype == TARGET_NONE){
			for(i = 0; i < total_players_online(); i++){
				if(player(player_online(i))->map == mapnum && player(player_online(i))->group <= GROUP_MONITOR){
					n = npc(map(mapnum)->npc[mapnpcnum].num)->range;

					dx = map(mapnum)->npc[mapnpcnum].x - player(player_online(i))->x;
					dy = map(mapnum)->npc[mapnpcnum].y - player(player_online(i))->y;

					if(dx < 0)
						dx *= -1;
					if(dy < 0)
						dy *= -1;

					if(dx <= n && dy <= n){
						if(npc(map(mapnum)->npc[mapnpcnum].num)->behavior == BEHAVIOR_ATTACKONSIGHT || player(player_online(i))->pk){
							if(strlen(npc(map(mapnum)->npc[mapnpcnum].num)->say)){
								string = comb_5str("A ", npc(map(mapnum)->npc[mapnpcnum].num)->name," says, '",npc(map(mapnum)->npc[mapnpcnum].num)->say,"' to you.");
								player_msg(player_online(i),string, 1); //grey
							}
							map(mapnum)->npc[mapnpcnum].target = player_online(i);
							map(mapnum)->npc[mapnpcnum].targettype = TARGET_PLAYER;
						}
					}
				}
			}
		}
	}
}