public synchronized long getKamas(int guid) { int i = 0; if (perso1.get_GUID() == guid) i = 1; else if (perso2.get_GUID() == guid) i = 2; if (i == 1) return kamas1; else if (i == 2) return kamas2; return 0; }
public static void unloadPerso(int g) { Personnage toRem = Persos.get(g); if (!toRem.getItems().isEmpty()) { for (Entry<Integer, Objet> curObj : toRem.getItems().entrySet()) { Objets.remove(curObj.getKey()); } } toRem = null; // Persos.remove(g); }
public static void ReassignAccountToChar(Compte C) { C.get_persos().clear(); SQLManager.LOAD_PERSO_BY_ACCOUNT(C.get_GUID()); for (Personnage P : Persos.values()) { if (P.getAccID() == C.get_GUID()) { C.addPerso(P); P.setAccount(C); } } }
public synchronized void cancel() { if (perso1.get_compte() != null) if (perso1.get_compte().getGameThread() != null) SocketManager.GAME_SEND_EV_PACKET(perso1.get_compte().getGameThread().get_out()); if (perso2.get_compte() != null) if (perso2.get_compte().getGameThread() != null) SocketManager.GAME_SEND_EV_PACKET(perso2.get_compte().getGameThread().get_out()); perso1.set_isTradingWith(0); perso2.set_isTradingWith(0); perso1.setCurExchange(null); perso2.setCurExchange(null); }
public static void AddMarried(int ordre, Personnage perso) { Personnage Perso = Married.get(ordre); if (Perso != null) { if (perso.get_GUID() == Perso.get_GUID()) // Si c'est le meme joueur... return; if (Perso.isOnline()) // Si perso en ligne... { Married.remove(ordre); Married.put(ordre, perso); return; } return; } else { Married.put(ordre, perso); return; } }
public synchronized int getQuaItem(int itemID, int playerGuid) { ArrayList<Couple<Integer, Integer>> items; if (perso1.get_GUID() == playerGuid) items = items1; else items = items2; for (Couple<Integer, Integer> curCoupl : items) { if (curCoupl.first == itemID) { return curCoupl.second; } } return 0; }
public static void addSeller(Personnage p) { if (Seller.get(p.get_curCarte().get_id()) == null) { ArrayList<Integer> PersoID = new ArrayList<Integer>(); PersoID.add(p.get_GUID()); Seller.put(p.get_curCarte().get_id(), PersoID); } else { ArrayList<Integer> PersoID = new ArrayList<Integer>(); PersoID.addAll(Seller.get(p.get_curCarte().get_id())); PersoID.add(p.get_GUID()); Seller.remove(p.get_curCarte().get_id()); Seller.put(p.get_curCarte().get_id(), PersoID); } }
public static void Wedding(Personnage Homme, Personnage Femme, int isOK) { if (isOK > 0) { SocketManager.GAME_SEND_cMK_PACKET_TO_MAP( Homme.get_curCarte(), "", -1, "Prêtre", "Je déclare " + Homme.get_name() + " et " + Femme.get_name() + " unis par les liens sacrés du mariage."); Homme.MarryTo(Femme); Femme.MarryTo(Homme); } else { SocketManager.GAME_SEND_Im_PACKET_TO_MAP( Homme.get_curCarte(), "048;" + Homme.get_name() + "~" + Femme.get_name()); } Married.get(0).setisOK(0); Married.get(1).setisOK(0); Married.clear(); }
public synchronized void toogleOK(int guid) { int i = 0; if (perso1.get_GUID() == guid) i = 1; else if (perso2.get_GUID() == guid) i = 2; if (i == 1) { ok1 = !ok1; SocketManager.GAME_SEND_EXCHANGE_OK( perso1.get_compte().getGameThread().get_out(), ok1, guid); SocketManager.GAME_SEND_EXCHANGE_OK( perso2.get_compte().getGameThread().get_out(), ok1, guid); } else if (i == 2) { ok2 = !ok2; SocketManager.GAME_SEND_EXCHANGE_OK( perso1.get_compte().getGameThread().get_out(), ok2, guid); SocketManager.GAME_SEND_EXCHANGE_OK( perso2.get_compte().getGameThread().get_out(), ok2, guid); } else return; if (ok1 && ok2) apply(); }
public static void saveAll(Personnage saver) { PrintWriter _out = null; if (saver != null) _out = saver.get_compte().getGameThread().get_out(); set_state((short) 2); try { GameServer.addToLog("Lancement de la sauvegarde du Monde..."); Ancestra.isSaving = true; SQLManager.commitTransacts(); SQLManager.TIMER(false); // Arrête le timer d'enregistrement SQL Thread.sleep(10000); GameServer.addToLog("Sauvegarde des personnages..."); for (Personnage perso : Persos.values()) { if (!perso.isOnline()) continue; Thread.sleep(100); // 0.1 sec. pour 1 objets SQLManager.SAVE_PERSONNAGE(perso, true); // sauvegarde des persos et de leurs items } Thread.sleep(2500); GameServer.addToLog("Sauvegarde des guildes..."); for (Guild guilde : Guildes.values()) { Thread.sleep(100); // 0.1 sec. pour 1 guilde SQLManager.UPDATE_GUILD(guilde); } Thread.sleep(2500); GameServer.addToLog("Sauvegarde des percepteurs..."); for (Percepteur perco : Percepteurs.values()) { if (perco.get_inFight() > 0) continue; Thread.sleep(100); // 0.1 sec. pour 1 percepteur SQLManager.UPDATE_PERCO(perco); } Thread.sleep(2500); GameServer.addToLog("Sauvegarde des maisons..."); for (House house : Houses.values()) { if (house.get_owner_id() > 0) { Thread.sleep(100); // 0.1 sec. pour 1 maison SQLManager.UPDATE_HOUSE(house); } } Thread.sleep(2500); GameServer.addToLog("Sauvegarde des coffres..."); for (Trunk t : Trunks.values()) { if (t.get_owner_id() > 0) { Thread.sleep(100); // 0.1 sec. pour 1 coffre SQLManager.UPDATE_TRUNK(t); } } Thread.sleep(2500); GameServer.addToLog("Sauvegarde des enclos..."); for (Carte.MountPark mp : MountPark.values()) { if (mp.get_owner() > 0 || mp.get_owner() == -1) { Thread.sleep(100); // 0.1 sec. pour 1 enclo SQLManager.UPDATE_MOUNTPARK(mp); } } Thread.sleep(2500); GameServer.addToLog("Sauvegarde des Hdvs..."); ArrayList<HdvEntry> toSave = new ArrayList<HdvEntry>(); for (HDV curHdv : Hdvs.values()) { toSave.addAll(curHdv.getAllEntry()); } SQLManager.SAVE_HDVS_ITEMS(toSave); Thread.sleep(10000); GameServer.addToLog("Sauvegarde effectuee !"); set_state((short) 1); // TODO : Rafraichir } catch (ConcurrentModificationException e) { if (saveTry < 10) { GameServer.addToLog("Nouvelle tentative de sauvegarde"); if (saver != null && _out != null) SocketManager.GAME_SEND_CONSOLE_MESSAGE_PACKET( _out, "Erreur. Nouvelle tentative de sauvegarde"); saveTry++; saveAll(saver); } else { set_state((short) 1); // TODO : Rafraichir String mess = "Echec de la sauvegarde apres " + saveTry + " tentatives"; if (saver != null && _out != null) SocketManager.GAME_SEND_CONSOLE_MESSAGE_PACKET(_out, mess); GameServer.addToLog(mess); } } catch (Exception e) { GameServer.addToLog("Erreur lors de la sauvegarde : " + e.getMessage()); e.printStackTrace(); } finally { SQLManager.commitTransacts(); SQLManager.TIMER(true); // Redémarre le timer d'enregistrement SQL Ancestra.isSaving = false; saveTry = 1; } }
public static void deletePerso(Personnage perso) { if (perso.get_guild() != null) { if (perso.get_guild().getMembers().size() <= 1) // Il est tout seul dans la guilde : Supression { World.removeGuild(perso.get_guild().get_id()); } else if (perso.getGuildMember().getRank() == 1) // On passe les pouvoir a celui qui a le plus de droits si il est meneur { int curMaxRight = 0; Personnage Meneur = null; for (Personnage newMeneur : perso.get_guild().getMembers()) { if (newMeneur == perso) continue; if (newMeneur.getGuildMember().getRights() < curMaxRight) { Meneur = newMeneur; } } perso.get_guild().removeMember(perso); Meneur.getGuildMember().setRank(1); } else // Supression simple { perso.get_guild().removeMember(perso); } } perso.remove(); // Supression BDD Perso, items, monture. World.unloadPerso(perso.get_GUID()); // UnLoad du perso+item }
public static Personnage getPersoByName(String name) { ArrayList<Personnage> Ps = new ArrayList<Personnage>(); Ps.addAll(Persos.values()); for (Personnage P : Ps) if (P.get_name().equalsIgnoreCase(name)) return P; return null; }
public static void addPersonnage(Personnage perso) { Persos.put(perso.get_GUID(), perso); }
public synchronized void removeItem(int guid, int qua, int pguid) { int i = 0; if (perso1.get_GUID() == pguid) i = 1; else if (perso2.get_GUID() == pguid) i = 2; ok1 = false; ok2 = false; SocketManager.GAME_SEND_EXCHANGE_OK( perso1.get_compte().getGameThread().get_out(), ok1, perso1.get_GUID()); SocketManager.GAME_SEND_EXCHANGE_OK( perso2.get_compte().getGameThread().get_out(), ok1, perso1.get_GUID()); SocketManager.GAME_SEND_EXCHANGE_OK( perso1.get_compte().getGameThread().get_out(), ok2, perso2.get_GUID()); SocketManager.GAME_SEND_EXCHANGE_OK( perso2.get_compte().getGameThread().get_out(), ok2, perso2.get_GUID()); Objet obj = World.getObjet(guid); if (obj == null) return; String add = "|" + obj.getTemplate().getID() + "|" + obj.parseStatsString(); if (i == 1) { Couple<Integer, Integer> couple = getCoupleInList(items1, guid); int newQua = couple.second - qua; if (newQua < 1) // Si il n'y a pu d'item { items1.remove(couple); SocketManager.GAME_SEND_EXCHANGE_MOVE_OK(perso1, 'O', "-", "" + guid); SocketManager.GAME_SEND_EXCHANGE_OTHER_MOVE_OK( perso2.get_compte().getGameThread().get_out(), 'O', "-", "" + guid); } else { couple.second = newQua; SocketManager.GAME_SEND_EXCHANGE_MOVE_OK(perso1, 'O', "+", "" + guid + "|" + newQua); SocketManager.GAME_SEND_EXCHANGE_OTHER_MOVE_OK( perso2.get_compte().getGameThread().get_out(), 'O', "+", "" + guid + "|" + newQua + add); } } else if (i == 2) { Couple<Integer, Integer> couple = getCoupleInList(items2, guid); int newQua = couple.second - qua; if (newQua < 1) // Si il n'y a pu d'item { items2.remove(couple); SocketManager.GAME_SEND_EXCHANGE_OTHER_MOVE_OK( perso1.get_compte().getGameThread().get_out(), 'O', "-", "" + guid); SocketManager.GAME_SEND_EXCHANGE_MOVE_OK(perso2, 'O', "-", "" + guid); } else { couple.second = newQua; SocketManager.GAME_SEND_EXCHANGE_OTHER_MOVE_OK( perso1.get_compte().getGameThread().get_out(), 'O', "+", "" + guid + "|" + newQua + add); SocketManager.GAME_SEND_EXCHANGE_MOVE_OK(perso2, 'O', "+", "" + guid + "|" + newQua); } } }
public synchronized void addItem(int guid, int qua, int pguid) { ok1 = false; ok2 = false; Objet obj = World.getObjet(guid); int i = 0; if (perso1.get_GUID() == pguid) i = 1; if (perso2.get_GUID() == pguid) i = 2; if (qua == 1) qua = 1; String str = guid + "|" + qua; if (obj == null) return; String add = "|" + obj.getTemplate().getID() + "|" + obj.parseStatsString(); SocketManager.GAME_SEND_EXCHANGE_OK( perso1.get_compte().getGameThread().get_out(), ok1, perso1.get_GUID()); SocketManager.GAME_SEND_EXCHANGE_OK( perso2.get_compte().getGameThread().get_out(), ok1, perso1.get_GUID()); SocketManager.GAME_SEND_EXCHANGE_OK( perso1.get_compte().getGameThread().get_out(), ok2, perso2.get_GUID()); SocketManager.GAME_SEND_EXCHANGE_OK( perso2.get_compte().getGameThread().get_out(), ok2, perso2.get_GUID()); if (i == 1) { Couple<Integer, Integer> couple = getCoupleInList(items1, guid); if (couple != null) { couple.second += qua; SocketManager.GAME_SEND_EXCHANGE_MOVE_OK( perso1, 'O', "+", "" + guid + "|" + couple.second); SocketManager.GAME_SEND_EXCHANGE_OTHER_MOVE_OK( perso2.get_compte().getGameThread().get_out(), 'O', "+", "" + guid + "|" + couple.second + add); return; } SocketManager.GAME_SEND_EXCHANGE_MOVE_OK(perso1, 'O', "+", str); SocketManager.GAME_SEND_EXCHANGE_OTHER_MOVE_OK( perso2.get_compte().getGameThread().get_out(), 'O', "+", str + add); items1.add(new Couple<Integer, Integer>(guid, qua)); } else if (i == 2) { Couple<Integer, Integer> couple = getCoupleInList(items2, guid); if (couple != null) { couple.second += qua; SocketManager.GAME_SEND_EXCHANGE_MOVE_OK( perso2, 'O', "+", "" + guid + "|" + couple.second); SocketManager.GAME_SEND_EXCHANGE_OTHER_MOVE_OK( perso1.get_compte().getGameThread().get_out(), 'O', "+", "" + guid + "|" + couple.second + add); return; } SocketManager.GAME_SEND_EXCHANGE_MOVE_OK(perso2, 'O', "+", str); SocketManager.GAME_SEND_EXCHANGE_OTHER_MOVE_OK( perso1.get_compte().getGameThread().get_out(), 'O', "+", str + add); items2.add(new Couple<Integer, Integer>(guid, qua)); } }
public synchronized void apply() { // Gestion des Kamas perso1.addKamas((-kamas1 + kamas2)); perso2.addKamas((-kamas2 + kamas1)); for (Couple<Integer, Integer> couple : items1) { if (couple.second == 0) continue; if (!perso1.hasItemGuid( couple.first)) // Si le perso n'a pas l'item (Ne devrait pas arriver) { couple.second = 0; // On met la quantité a 0 pour éviter les problemes continue; } Objet obj = World.getObjet(couple.first); if ((obj.getQuantity() - couple.second) < 1) // S'il ne reste plus d'item apres l'échange { perso1.removeItem(couple.first); couple.second = obj.getQuantity(); SocketManager.GAME_SEND_REMOVE_ITEM_PACKET(perso1, couple.first); if (!perso2.addObjet(obj, true)) // Si le joueur avait un item similaire World.removeItem(couple.first); // On supprime l'item inutile } else { obj.setQuantity(obj.getQuantity() - couple.second); SocketManager.GAME_SEND_OBJECT_QUANTITY_PACKET(perso1, obj); Objet newObj = Objet.getCloneObjet(obj, couple.second); if (perso2.addObjet(newObj, true)) // Si le joueur n'avait pas d'item similaire World.addObjet(newObj, true); // On ajoute l'item au World } } for (Couple<Integer, Integer> couple : items2) { if (couple.second == 0) continue; if (!perso2.hasItemGuid( couple.first)) // Si le perso n'a pas l'item (Ne devrait pas arriver) { couple.second = 0; // On met la quantité a 0 pour éviter les problemes continue; } Objet obj = World.getObjet(couple.first); if ((obj.getQuantity() - couple.second) < 1) // S'il ne reste plus d'item apres l'échange { perso2.removeItem(couple.first); couple.second = obj.getQuantity(); SocketManager.GAME_SEND_REMOVE_ITEM_PACKET(perso2, couple.first); if (!perso1.addObjet(obj, true)) // Si le joueur avait un item similaire World.removeItem(couple.first); // On supprime l'item inutile } else { obj.setQuantity(obj.getQuantity() - couple.second); SocketManager.GAME_SEND_OBJECT_QUANTITY_PACKET(perso2, obj); Objet newObj = Objet.getCloneObjet(obj, couple.second); if (perso1.addObjet(newObj, true)) // Si le joueur n'avait pas d'item similaire World.addObjet(newObj, true); // On ajoute l'item au World } } // Fin perso1.set_isTradingWith(0); perso2.set_isTradingWith(0); perso1.setCurExchange(null); perso2.setCurExchange(null); SocketManager.GAME_SEND_Ow_PACKET(perso1); SocketManager.GAME_SEND_Ow_PACKET(perso2); SocketManager.GAME_SEND_STATS_PACKET(perso1); SocketManager.GAME_SEND_STATS_PACKET(perso2); SocketManager.GAME_SEND_EXCHANGE_VALID(perso1.get_compte().getGameThread().get_out(), 'a'); SocketManager.GAME_SEND_EXCHANGE_VALID(perso2.get_compte().getGameThread().get_out(), 'a'); SQLManager.SAVE_PERSONNAGE(perso1, true); SQLManager.SAVE_PERSONNAGE(perso2, true); }
public synchronized void setKamas(int guid, long k) { ok1 = false; ok2 = false; int i = 0; if (perso1.get_GUID() == guid) i = 1; else if (perso2.get_GUID() == guid) i = 2; SocketManager.GAME_SEND_EXCHANGE_OK( perso1.get_compte().getGameThread().get_out(), ok1, perso1.get_GUID()); SocketManager.GAME_SEND_EXCHANGE_OK( perso2.get_compte().getGameThread().get_out(), ok1, perso1.get_GUID()); SocketManager.GAME_SEND_EXCHANGE_OK( perso1.get_compte().getGameThread().get_out(), ok2, perso2.get_GUID()); SocketManager.GAME_SEND_EXCHANGE_OK( perso2.get_compte().getGameThread().get_out(), ok2, perso2.get_GUID()); if (i == 1) { kamas1 = k; SocketManager.GAME_SEND_EXCHANGE_MOVE_OK(perso1, 'G', "", k + ""); SocketManager.GAME_SEND_EXCHANGE_OTHER_MOVE_OK( perso2.get_compte().getGameThread().get_out(), 'G', "", k + ""); } else if (i == 2) { kamas2 = k; SocketManager.GAME_SEND_EXCHANGE_OTHER_MOVE_OK( perso1.get_compte().getGameThread().get_out(), 'G', "", k + ""); SocketManager.GAME_SEND_EXCHANGE_MOVE_OK(perso2, 'G', "", k + ""); } }
public static void PriestRequest(Personnage perso, Carte carte, int IdPretre) { Personnage Homme = Married.get(0); Personnage Femme = Married.get(1); if (Homme.getWife() != 0) { SocketManager.GAME_SEND_MESSAGE_TO_MAP( carte, Homme.get_name() + " est deja marier!", Ancestra.CONFIG_MOTD_COLOR); return; } if (Femme.getWife() != 0) { SocketManager.GAME_SEND_MESSAGE_TO_MAP( carte, Femme.get_name() + " est deja marier!", Ancestra.CONFIG_MOTD_COLOR); return; } SocketManager.GAME_SEND_cMK_PACKET_TO_MAP( perso.get_curCarte(), "", -1, "Prêtre", perso.get_name() + " acceptez-vous d'épouser " + getMarried((perso.get_sexe() == 1 ? 0 : 1)).get_name() + " ?"); SocketManager.GAME_SEND_WEDDING( carte, 617, (Homme == perso ? Homme.get_GUID() : Femme.get_GUID()), (Homme == perso ? Femme.get_GUID() : Homme.get_GUID()), IdPretre); }