Exemplo n.º 1
0
//Evento Juego: Solicitud de comenzar
void Servidor::on_evento_juego_solicitudcomenzar(const CL_NetGameEvent &e, UsuarioServidor *usuario)
{
	CL_String nombre = e.get_argument(0);
	cl_log_event("eventos", "Cliente solicito comenzar juego");

	CL_String mensaje= "Se conecto " + usuario->nombre_usuario;

	mundo->AgregarCadenaChat(mensaje);

	int id_nuevo = mundo->tanques.size();

	enviaratodosEx(CL_NetGameEvent("Juego-Msj",mensaje),id_nuevo); //Enviar a todos que se conecto alquien

	CL_Vec2f pospawn = mundo->agregarTanque(id_nuevo,DEFAULT,nombre,false,false); //agrega el usuario
																									//Devuelve el id_actual
	usuario->enviar_evento(CL_NetGameEvent("Juego-Comenzar",pospawn.x,pospawn.y,id_nuevo, nombre, mundo->getActualSubID())); //envia el SpawnPoint al usuario
	//enviaratodosEx(CL_NetGameEvent("Juego-AgregarTanque",pospawn.x,pospawn.y,id_nuevo, nombre), id_nuevo); //envia el SpawnPoint al usuario
	
	//Envia los tanques creados
	std::list<Tanque *>::iterator it;

	for(it=mundo->tanques.begin(); it != mundo->tanques.end(); ++it)
	{
		CL_NetGameEvent evento("Juego-JugadorConectado",(*it)->getID(),(*it)->getPos().x,(*it)->getPos().y								 //Envia al usuario todos los tanques 
											    ,(*it)->getanguloCuerpo(),(*it)->getAnguloTorreta());
		evento.add_argument((*it)->getNombre());
		//usuario->enviar_evento(evento); //actuales
		enviaratodos(evento);
	}

	mundo->quitarTodosPowerup();

	//enviaratodosEx(CL_NetGameEvent("Juego-JugadorConectado",usuario->id,pospawn.x,pospawn.y,(*final)->getanguloCuerpo() //Envia a todos el nuevo tanque
	//													   ,(*final)->getAnguloTorreta()),usuario->id);
}
Exemplo n.º 2
0
// Successfully connected to server
void Client::on_connected()
{
	cl_log_event("network", "Connected to server");

	// For demonstration purposes, lets fail a login
	network_client.send_event(CL_NetGameEvent("Login", "")); // We will receive an error event for this, as we don't send a proper user name

	// Properly login
	network_client.send_event(CL_NetGameEvent("Login", "my user name"));
}
Exemplo n.º 3
0
//Cliente Desconectado
void Servidor::on_cliente_desconectado(CL_NetGameConnection *conexion)
{
	cl_log_event("Red", "Cliente Desconectado");
	
	UsuarioServidor *usuario = UsuarioServidor::get_usuario(conexion);

	CL_String mensaje = "Se desconecto " + usuario->nombre_usuario;
	mundo->AgregarCadenaChat(mensaje);
	enviaratodos(CL_NetGameEvent("Juego-Msj",mensaje));
	enviaratodos(CL_NetGameEvent("Juego-JugadorDesconectado",usuario->id));

	mundo->quitarTanque(usuario->id);
	
	Usuarios.remove(usuario);
}
Exemplo n.º 4
0
void ServerLobbyGame::set_state(State state)
{
	this->state = state;

	if(state == playing)
		server->get_network_server()->send_event(CL_NetGameEvent(STC_LOBBY_GAME_STARTED, id));
}
Exemplo n.º 5
0
// "Login-Success" event was received
void Client::on_event_login_success(const CL_NetGameEvent &e)
{
	cl_log_event("events", "Login success");

	logged_in = true;

	network_client.send_event(CL_NetGameEvent("Game-RequestStart"));
}
Exemplo n.º 6
0
//Evento Login: Completado
void Cliente::on_evento_login_completado(const CL_NetGameEvent &e)
{
	cl_log_event("eventos", "Login Completado");

	logged_in = true; 

	cliente_red.send_event(CL_NetGameEvent("Juego-Comenzar", mundo->getTanqueJugador()->getNombre()));
}
Exemplo n.º 7
0
void Server::login(ServerPlayer *player, CL_String player_name)
{
	cl_log_event("system", "Client logged in");

	if (player->id == 0) // player not logged in
	{
		player->id = next_player_id++;
		player->name = player_name;
		player->send_event(CL_NetGameEvent(STC_LOGIN_SUCCESSFUL, player->id));

		lobby_model->players.create_player(player, player_name);
	}
	else
	{
		player->send_event(CL_NetGameEvent(STC_LOGIN_FAILED, "Already logged in"));
	}
}
Exemplo n.º 8
0
//Evento Login: Recibido
void Servidor::on_evento_login(const CL_NetGameEvent &e, UsuarioServidor *usuario)
{
	cl_log_event("eventos", "Cliente solicita login");

	int numusuarios = Usuarios.size();
/*
	if(numusuarios < (numjugadores -1) )
	{
		CL_String idlogin = e.get_argument(0);
		CL_String password = e.get_argument(1);
		CL_String nombre_usuario = e.get_argument(2);

		CL_SqliteConnection bd_conexion("bdjuego.sql3");
		CL_DBCommand consulta_login = bd_conexion.create_command("SELECT password FROM Usuarios WHERE id=?1");
		consulta_login.set_input_parameter_string(1,idlogin);
		CL_DBReader reader = bd_conexion.execute_reader(consulta_login);
		CL_String pas_bd;

		if(reader.retrieve_row())
		{
			pas_bd = reader.get_column_string(0);

			if(password.compare(pas_bd)==0) //Password Correcto
			{
				usuario->nombre_usuario= nombre_usuario;
				usuario->id = siguiente_usuario_id++;
				Usuarios.push_back(usuario);
				usuario->enviar_evento(CL_NetGameEvent("Login-Completado"));
			}
			else //Clave Incorrecta
			{
				usuario->enviar_evento(CL_NetGameEvent("Login-Fallado", "Clave Incorrecta"));
			}
		}
		else
		{
			usuario->enviar_evento(CL_NetGameEvent("Login-Fallado", "ID No encontrado")); //ID Incorrecto
		}


		reader.close(); 
	}
	else
	{
		usuario->enviar_evento(CL_NetGameEvent("Login-ServidorLleno"));
	}
	*/
	
		CL_String idlogin = e.get_argument(0);
		CL_String password = e.get_argument(1);
		CL_String nombre_usuario = e.get_argument(2);
		usuario->nombre_usuario= nombre_usuario;
		usuario->id = siguiente_usuario_id++;
		Usuarios.push_back(usuario);
		usuario->enviar_evento(CL_NetGameEvent("Login-Completado"));

}
Exemplo n.º 9
0
void Servidor::on_evento_juego_mensajechat(const CL_NetGameEvent &e, UsuarioServidor *usuario)
{
	cl_log_event("eventos", "Mensaje recibido");
	CL_String mensaje = e.get_argument(0);

	enviaratodosEx(CL_NetGameEvent("Juego-Msj",mensaje),usuario->id); //Envia a todos -1 el mensaje recibido

	mundo->AgregarCadenaChat(mensaje);
}
Exemplo n.º 10
0
//Evento Juego: Actualiza Posiciones
void Servidor::actualiza_saludyscore()
{
	cl_log_event("eventos", "Actualizar Salud y Score");

	std::list<Tanque *>::iterator it;

	for(it=mundo->tanques.begin(); it != mundo->tanques.end(); ++it)
		enviaratodos(CL_NetGameEvent("Juego-ActualizarSaludyScore",(*it)->getID(),(*it)->getVida(),(*it)->getArmadura()
																  ,(*it)->getScore())); //actuales [todos excepto a mi]
}
Exemplo n.º 11
0
void LoginEvents::on_event_login_successful(const CL_NetGameEvent &e)
{
	int player_id = e.get_argument(0);

	client->set_state(Client::in_lobby);
	client->set_player_id(player_id);

	// TODO; move this to lobby code
	client->get_network_client()->send_event(CL_NetGameEvent(CTS_LOBBY_GET_AVAILABLE_GAMES));
}
Exemplo n.º 12
0
// "Login" event was received
void Server::on_event_login(const CL_NetGameEvent &e, ServerUser *user)
{
	cl_log_event("events", "Client requested login");

	CL_String user_name = e.get_argument(0);

	if(user_name.length() == 0)
	{
		user->send_event(CL_NetGameEvent("Login-Fail", "Missing user name"));
	}
	else
	{
		// Assign name and id to User object (created when user connected earlier)
		user->user_name = user_name;
		user->id = next_user_id++;

		user->send_event(CL_NetGameEvent("Login-Success"));
	}
}
Exemplo n.º 13
0
//Evento Juego: Actualiza Posiciones
void Servidor::actualiza_posiciones()
{
	cl_log_event("eventos", "Actualizar Posiciones");

	std::list<Tanque *>::iterator it;

	for(it=mundo->tanques.begin(); it != mundo->tanques.end(); ++it)
		enviaratodos(CL_NetGameEvent("Juego-ActualizarPosiciones",(*it)->getID(),(*it)->getPos().x
																	   ,(*it)->getPos().y								 //Envia al usuario todos los tanques 
																   ,(*it)->getanguloCuerpo(),(*it)->getAnguloTorreta())); //actuales [todos excepto a mi]
}
Exemplo n.º 14
0
void CarState::parseEvent(const CL_NetGameEvent &p_event)
{
	assert(p_event.get_name() == EVENT_CAR_STATE);

	m_name = p_event.get_argument(0);
	m_serialData = CL_NetGameEvent("");

	const int argCount = static_cast<signed>(p_event.get_argument_count());

	for (int i = 1; i < argCount; ++i) {
		m_serialData.add_argument(p_event.get_argument(i));
	}
}
Exemplo n.º 15
0
void Servidor::on_evento_juego_actualizar_mouse(const CL_NetGameEvent &e, UsuarioServidor *usuario)
{
	cl_log_event("eventos", "Actualizar Mouse");
	//int numarg = e.get_argument_count();
	int id_tanque = e.get_argument(0);

	mundo->teclatanquedown(id_tanque,CL_KEY_SPACE); //Dispara
	enviaratodosEx(CL_NetGameEvent("Juego-ActualizarMouse",id_tanque),usuario->id); //Envia a todos -1 el actualizar mouse 

/*	else if(numarg==2) //Mover mouse
	{
		float x=e.get_argument(0),y=e.get_argument(1);
		mundo->getTanqueID(usuario->id)->setTargetPosTorreta(CL_Vec2f(x,y));
		this->enviaratodosEx(CL_NetGameEvent("Juego-ActualizarMouse",usuario->id,x,y),usuario->id); //Envia a todos -1 el actualizar mouse 
	}	*/
}
Exemplo n.º 16
0
void Servidor::on_evento_juego_actualizar_teclado(const CL_NetGameEvent &e, UsuarioServidor *usuario)
{
		cl_log_event("eventos", "Actualizar Teclado");

		int tipo = e.get_argument(0);
		int tecla = e.get_argument(1);

		if(tipo==0) // Tecla Down
		{
			mundo->teclatanquedown(usuario->id,tecla);
		}
		else if(tipo==1) //Tecla Up
		{
			mundo->teclatanqueup(usuario->id,tecla);
		}

		enviaratodosEx(CL_NetGameEvent("Juego-ActualizarTeclado",usuario->id,tipo,tecla),usuario->id); //Envia a todos -1 el actualizar teclado
}
void ServerLobbyPlayerCollection::remove_player(ServerLobbyPlayer *lobby_player)
{
	if(lobby_player)
	{
		// Remove player from lobby game he has joined
		if (lobby_player->get_current_game())
			lobby_player->get_current_game()->remove_player(lobby_player);

		// Remove player from player list
		std::vector<ServerLobbyPlayer *>::iterator it;
		it = find(players.begin(), players.end(), lobby_player); 
		if (it != players.end())
			players.erase(it);

		server->send_event(CL_NetGameEvent(STC_LOBBY_PLAYER_LOGGED_OUT, lobby_player->get_id()));

		delete lobby_player;
	}
}
Exemplo n.º 18
0
// "Game-RequestStartGame" event was received
void Server::on_event_game_requeststart(const CL_NetGameEvent &e, ServerUser *user)
{
	cl_log_event("events", "Client requested game start");

	if(game_running == false)
	{
		game_running = true;

		CL_String map_name = "Map1";
		int max_players = 6;

		CustomType position(143,22,3);

		CL_NetGameEvent loadMapEvent("Game-LoadMap");
		loadMapEvent.add_argument(map_name);
		loadMapEvent.add_argument(max_players);
		loadMapEvent.add_argument(position);
		network_server.send_event(loadMapEvent);

		network_server.send_event(CL_NetGameEvent("Game-Start"));
	}
}
Exemplo n.º 19
0
//Evento Juego: Actualiza Tiempo
void Servidor::actualiza_tiempo()
{
	cl_log_event("eventos", "Actualizar Tiempo");

	enviaratodos(CL_NetGameEvent("Juego-ActualizarTiempo", mundo->getReloj().x, mundo->getReloj().y));
}
Exemplo n.º 20
0
//Conexion satistactoria
void Cliente::on_conectado()
{
	cl_log_event("red", "Conectado al servidor");
	cliente_red.send_event(CL_NetGameEvent("Login",idlogin,password,mundo->getNombreJugador()));
}
Exemplo n.º 21
0
//Conexion satistactoria
void Cliente::actualiza_posiciones()
{
	Tanque *tank = mundo->getTanqueJugador();
	cliente_red.send_event(CL_NetGameEvent("Juego-ActualizarPosiciones", tank->getID(), tank->getPos().x, tank->getPos().y, tank->getanguloCuerpo(), tank->getAnguloTorreta()));
}
Exemplo n.º 22
0
void ServerLobbyGame::send_game_info(ServerLobbyPlayer *destination_player)
{
	destination_player->send_event(
		CL_NetGameEvent(STC_LOBBY_GAME_INFO, get_id(), get_name(), get_map_name(), get_max_players(), get_state()));
}
Exemplo n.º 23
0
void ServerLobbyGame::send_game_info()
{
	server->get_network_server()->send_event(
		CL_NetGameEvent(STC_LOBBY_GAME_INFO, get_id(), get_name(), get_map_name(), get_max_players(), get_state()));
}
Exemplo n.º 24
0
void Servidor::otorga_powerup(int id_tanque, int id_power)
{
	cl_log_event("eventos", "Otorga Powerup");

	enviaratodos(CL_NetGameEvent("Juego-OtorgaPowerup", id_tanque, id_power));
}
Exemplo n.º 25
0
void Servidor::quitaTodosPowerup()
{
	cl_log_event("eventos", "Quita Todos Powerup");
	enviaratodos(CL_NetGameEvent("Juego-QuitaTodosPowerup")); //actuales [todos excepto a mi]
}
Exemplo n.º 26
0
void Servidor::matar_tanque(int id, int tiempofin)
{
	cl_log_event("eventos", "Matar Tanque");

	enviaratodos(CL_NetGameEvent("Juego-MatarTanque", id, tiempofin));
}
Exemplo n.º 27
0
void Servidor::agrega_powerup(int tipo, float x, float y)
{
	cl_log_event("eventos", "Agregar Powerup");

	enviaratodos(CL_NetGameEvent("Juego-AgregaPowerup", tipo, x, y));
}
Exemplo n.º 28
0
void ServerGameEvents::on_event_game_add_message(const CL_NetGameEvent &e, ServerGame *game, ServerGamePlayer *game_player)
{
	CL_String message = e.get_argument(0);
	if(message.length() > 0)
		server->get_network_server()->send_event(CL_NetGameEvent(STC_GAME_PLAYER_MESSAGE, game_player->player->id, message));
}
Exemplo n.º 29
0
void Servidor::actualiza_SubID(int id_tanque)
{
	cl_log_event("eventos", "Actualizar SubID");
	enviaratodos(CL_NetGameEvent("Juego-ActualizarSubID",mundo->getActualSubID(),id_tanque)); //actuales [todos excepto a mi]
}
Exemplo n.º 30
0
void Servidor::matar_misil(int id_asesino)
{
	cl_log_event("eventos", "Matar Misil");

	enviaratodos(CL_NetGameEvent("Juego-MatarMisil", id_asesino));
}