Jump to content
×
×
  • Create New...

[JAVA] Modification de commande "ADDTRIGGER"


Aesir
 Share

Recommended Posts

Bonjour, Bonsoir,

 

Aujourd'hui je vous présente une modification de la commande "ADDTRIGGER" qui est faite dans l'émulateur.

Je l'ai divisé en deux partis, la commande "DEPART" qui place le "tigger" de départ (en attente),

et la commande "FIN" qui ajoute l'arrivé ("ActionsArgs").

Ainsi, fini d'écrire la ligne de commande: "addtrigger 0 [x],[y] -1"

qui demande de connaître la "MapID" ([x]) et "CellID" ([y]) et la case d'arrivé.

 

( Je tiens a précisé que je connais pas bien le langage "Java" )

 

"DEPART"

Dans "commands.java":

if (command.equalsIgnoreCase("DEPART")) {
		boolean success = SQLManager.SAVE_TRIGGER(_perso.get_curCarte()
				.get_id(), _perso.get_curCell().getID(), 0, 1, 0, -1);
		String str = "";
		if (success)
			str = "Le trigger de depart en attente.";
		else
			str = "Le trigger de depart invalide.";
		SocketManager.GAME_SEND_CONSOLE_MESSAGE_PACKET(_out, str);

	} else

 

Dans "SQLManager.java":

public static boolean SAVE_TRIGGER(int mapID1, int cellID1, int action,
		int event, int args, int cond) {
	String baseQuery = "DELETE FROM `cells_sav` WHERE 1;";			// Netoyage de la table
	try {															//pour évité des problèmes
		PreparedStatement p = newTransact(baseQuery, statCon);

		p.execute();
		closePreparedStatement(p);
	} catch (SQLException e) {
		GameServer.addToLog("Game: SQL ERROR: " + e.getMessage());
		GameServer.addToLog("Game: Query: " + baseQuery);
	}		
	String baseQuery2 = "REPLACE INTO `cells_sav`"
			+ " VALUES (?,?,?,?,?,?);";

	try {
		PreparedStatement p = newTransact(baseQuery2, statCon);
		p.setInt(1, mapID1);
		p.setInt(2, cellID1);
		p.setInt(3, action);
		p.setInt(4, event);
		p.setInt(5, args);
		p.setInt(6, cond);

		p.execute();
		closePreparedStatement(p);
		return true;
	} catch (SQLException e) {
		GameServer.addToLog("Game: SQL ERROR: " + e.getMessage());
		GameServer.addToLog("Game: Query: " + baseQuery);
	}
	return false;
}

 

Et la commande "FIN"

Dans "commands.java":

if (command.equalsIgnoreCase("FIN")) {
		String Args = _perso.get_curCarte().get_id() + "," + _perso.get_curCell().getID();
		int MapID = 0;
		try {
			MapID = Integer.parseInt(infos[2]);
		} catch (Exception e) {
		}
		;
		SQLManager.UPDATE_TRIGGER(Args, MapID);
			String str = "";
			str = "Le trigger a ete ajoute";
		SocketManager.GAME_SEND_CONSOLE_MESSAGE_PACKET(_out, str);

	} else

 

Dans "SQLManager.java"

public static boolean UPDATE_TRIGGER(String Args, int MapID) {
			String baseQuery = "UPDATE `cells_sav` SET " + "`ActionsArgs` = ?"
		+ " WHERE mapID >= ?;";
			try {
				PreparedStatement p = newTransact(baseQuery, statCon);
				p.setString(1, Args);
				p.setInt(2, MapID);

				p.executeUpdate();
				closePreparedStatement(p);
			} catch (SQLException e) {
				GameServer.addToLog("Game: SQL ERROR: " + e.getMessage());
				GameServer.addToLog("Game: Query: " + baseQuery);
			}
			String baseQuery2 = "INSERT INTO scripted_cells SELECT * FROM cells_sav;";
			try {
				PreparedStatement p = newTransact(baseQuery2, statCon);

				p.execute();
				closePreparedStatement(p);
			} catch (SQLException e) {
				GameServer.addToLog("Game: SQL ERROR: " + e.getMessage());
				GameServer.addToLog("Game: Query: " + baseQuery);
			}
			String baseQuery3 = "DELETE FROM `cells_sav` WHERE 1;";
			try {
				PreparedStatement p = newTransact(baseQuery3, statCon);

				p.execute();
				closePreparedStatement(p);
			} catch (SQLException e) {
				GameServer.addToLog("Game: SQL ERROR: " + e.getMessage());
				GameServer.addToLog("Game: Query: " + baseQuery);
			}
			return false;
		}

---------

 

Si vous avez des suggestions afin d'amélioré le code et/ou des remarques nécessité pas.

Je débute dans le "Java" et vos commentaires peuvent m’aidai.

  • J'adore 1

.gif

Link to comment
Share on other sites

  • Replies 5
  • Created
  • Last Reply

Top Posters In This Topic

Top Posters In This Topic

  • 2 weeks later...

Ton code est bon, sauf dans le commands.java , t'es sorties pour les packets sont bouchés par ton cahce.

Je te corrige:

 

 

if (command.equalsIgnoreCase("FIN")) {
           String Args = _perso.get_curCarte().get_id() + "," + _perso.get_curCell().getID();
           int MapID = 0;
           try {
               MapID = Integer.parseInt(infos[2]);
           } catch (Exception e) {
           }
           ;
           SQLManager.UPDATE_TRIGGER(Args, MapID);
               String str = "";
               str = "Le trigger a ete ajoute";
           SocketManager.GAME_SEND_CONSOLE_MESSAGE_PACKET(_out, str);

          if(command.addtosql.map("boot")) {
          if load MapID = 0
          try {

       } else

  • J'adore 1

i'm not a philosophic but i'm a tank -T4NK

Link to comment
Share on other sites

Merci beaucoup Mind pour ton aide.

Maintenant j'ai plus cas trouvé pourquoi tu fais appel a cette condition: command.addtosql.map("boot")

 

( Et de quel Import il s'agit ... )

 

 

C'est tout simple; avant de lancer ton action il faut que tu l'importes en BDD pour la reconnaissance depuis ton code par ton addtosql.map.

Ensuite le boot permet que le code ne se perde pas avec les autres if. :)

i'm not a philosophic but i'm a tank -T4NK

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share



Important Information

Terms of Use / Privacy Policy / Guidelines / We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.