deez

Ancestrar.Codes

Jun 26th, 2012
205
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 8.73 KB | None | 0 0
  1. // Partage des drops des percepteurs ==> Fight => getGE()
  2. // En fin du for(Fighter F : TEAM2)
  3.  
  4.             if(_type == Constants.FIGHT_TYPE_PVT)
  5.             {
  6.                 minkamas = (int)_perco.getKamas() / TEAM1.size();
  7.                 maxkamas = minkamas;
  8.                 possibleDrops.addAll(_perco.getDrops());    
  9.             }
  10.            
  11. // Percepteur => Percepteur()
  12.     public ArrayList<Drop> getDrops() {
  13.         ArrayList<Drop> toReturn = new ArrayList<World.Drop>();
  14.         for(Objet obj : _objets.values()) {
  15.             toReturn.add(new Drop(obj.getTemplate().getID(),0, 100, obj.getQuantity()));
  16.         }
  17.         return toReturn;
  18.     }
  19.    
  20. // Fix du coup de poing ==> Fight => tryCac()
  21. // Remplacer :
  22.             if(perso.getObjetByPos(Constants.ITEM_POS_ARME) == null)//S'il n'a pas de CaC
  23.             {
  24.  
  25.             }
  26. // Par
  27.             if(perso.getObjetByPos(Constants.ITEM_POS_ARME) == null)//S'il n'a pas de CaC
  28.             {
  29.                     tryCastSpell(caster, World.getSort(0).getStatsByLevel(1), cellID);
  30.             }else
  31.             {
  32.             //Reste de la condition
  33.  
  34. // tryCastSpell()
  35. // Remplacer :
  36.             if(fighter.isHide())showCaseToAll(fighter.getGUID(), fighter.get_fightCell().getID());
  37. // Par
  38.                 if(fighter.isHide())
  39.                 {
  40.                     if(Spell.getSpellID() == 0)// Si le coup est Coup de Poing alors on refait apparaitre le personnage
  41.                     {
  42.                         fighter.unHide(caseID);
  43.                     }else
  44.                     {
  45.                         showCaseToAll(fighter.getGUID(), fighter.get_fightCell().getID());
  46.                     }
  47.                 }
  48.                
  49. // Protecteurs de ressource ==> Metier => JobAction=>endAction() en fin de méthode
  50.                 int maxPercent = 20+(P.getMetierBySkill(_skID).get_lvl()-20);
  51.                 if(P.getMetierBySkill(_skID).get_lvl() >= 20 && Formulas.getRandomValue(1, maxPercent) == maxPercent)
  52.                 {
  53.                     int[][] protectors = JobProtector.JOB_PROTECTORS;
  54.                     for(int i = 0; i < protectors.length; i++)
  55.                     {
  56.                         if(tID == protectors[i][1])
  57.                         {
  58.                             int monsterId = protectors[i][0];
  59.                             int monsterLvl = JobProtector.getProtectorLvl(P.get_lvl());    
  60.                             P.get_curCarte().startFigthVersusMonstres(P, new Monstre.MobGroup(P.get_curCarte()._nextObjectID, cell.getID(), monsterId+","+monsterLvl+","+monsterLvl));
  61.                             break;
  62.                         }
  63.                     }
  64.                 }
  65.             }
  66.         }
  67.  
  68. // JobProtector
  69.     public static final int[][] JOB_PROTECTORS = //{protectorId, itemId}
  70.     {
  71.         {684,289},{684,2018},{685,400},{685,2032},{686,533},{686,1671},{687,401},{687,2021},{688,423},{688,2026},
  72.         {689,532},{689,2029},{690,7018},{691,405},{692,425},{692,2035},{693,39},{694,441},{695,442},{696,443},
  73.         {697,445},{698,444},{699,7032},{700,350},{701,446},{702,313},{703,7033},{704,421},{705,428},{706,395},
  74.         {707,380},{708,593},{709,594},{710,7059},{711,303},{712,473},{713,476},{714,460},{715,2358},{716,2357},
  75.         {717,471},{718,461},{719,7013},{720,7925},{721,474},{722,449},{723,7016},{724,470},{725,7014},{726,1782},
  76.         {726,1790},{727,607},{727,1844},{727,1846},{728,603},{729,598},{730,1757},{730,1759},{731,1750},{732,1847},
  77.         {732,1749},{733,1794},{733,1796},{734,1805},{734,1807},{735,600},{735,1799},{736,1779},{736,1792},{737,1784},
  78.         {737,1788},{738,1801},{738,1803},{739,602},{739,1853}
  79.     };
  80.  
  81.     public static int getProtectorLvl(int lvl)
  82.     {
  83.         if(lvl < 40)
  84.             return 10;
  85.         if(lvl < 80)
  86.             return 20;
  87.         if(lvl < 120)
  88.             return 30;
  89.         if(lvl < 160)
  90.             return 40;
  91.         if(lvl < 200)
  92.             return 50;
  93.         return 10;
  94.     }
  95.    
  96. // Libèrer la monture ==> GameThread => parseMountPacket
  97.             case 'f'://Libère la monture
  98.                 Mount_free();
  99.  
  100.     private void Mount_free()
  101.     {
  102.           if(_perso.getMount() != null && _perso.isOnMount()) _perso.toogleOnMount();
  103.           SocketManager.GAME_SEND_Re_PACKET(_perso, "-", _perso.getMount());
  104.           SQLManager.DELETE_MOUNT(_perso);
  105.     }
  106.    
  107. // SQLManager
  108.         public static void DELETE_MOUNT(Personnage perso)
  109.         {
  110.             String baseQuery = "DELETE FROM mounts_data WHERE id = ?";
  111.             PreparedStatement p;
  112.             try {
  113.                     p = newTransact(baseQuery, othCon);
  114.                    p.setInt(1, perso.getMount().get_id());
  115.                    p.execute();
  116.           } catch (SQLException e) {
  117.            e.printStackTrace();
  118.           }
  119.               World.delDragoByID(perso.getMount().get_id());
  120.               perso.setMountGiveXp(0);
  121.               perso.setMount(null);
  122.               SAVE_PERSONNAGE(perso, true);
  123.         }
  124.        
  125. // Refresh du statue de serveur lors d'une sauvegarde(Je ne sait pas si c'est fait sur la 48) ==> SocketManager
  126.     public static void REALM_SEND_AH_PACKET(PrintWriter out)
  127.     {
  128.       StringBuilder packet = new StringBuilder();
  129.       packet.append("AH").append(1).append(";").append(World.get_state()).append(";110;1").append('\000');
  130.       send(out, packet.toString());
  131.     }
  132.    
  133. // World => SaveAll() Je te laisse les placer
  134.     for (Compte c : Comptes.values())
  135.     {
  136.               if (c.getRealmThread() != null)
  137.                 SocketManager.REALM_SEND_AH_PACKET(c.getRealmThread()._out);
  138.     }
  139.  
  140.  
  141. /* Quelque propositions */
  142. // Carte/SQLManager/Percepteur... : Faire le nombre réservistes par map pour une attaque de percepteur : On compte le nombre de cellID d'attaque et on ajoute ?
  143. // Formulas : Refaire le système de perte d'énergie :/ (A moins que sa soit la formule offi?)
  144. // Fight : Refaire le système de drop et mettre plusieurs StringBuilder
  145. // TryCac() TryCastSpell() CastSpell() GetGE() VerifyAllTeamDead() : Refaire le code plus propre ou alors l'alléger...
  146. // Quand un percepteur se fait attaqué est un personnage est sur une autre map que le percepteur on le remet sur la map où étais le perso avant
  147. // Pour finir les percepteurs il ne manque pas grand chose
  148. // Pour le FM il faudrait revoir ça de zéro :/
  149. // Dinde pas grand chose non plus a part l'élevage
  150. // Système d'énergie super simple à faire :
  151. // Quand le perso n'a plus d'énergie on le met en tombe on lui met les restrictions (AR3K) on lui send l'IM packet : M112 dans GameThread parseGamePacket case 'F' et _perso.FreeMySoul on altère le GM et pour la téléportation au plus proche cimetière :
  152. private void teleportToCemetery()
  153. {
  154.      int[] cemeteryInfos = _curCarte.getSubArea().getArea().getCemetery();
  155.      if(cemeteryInfos.length <= 0)
  156.       return;
  157.      teleport(cemeteryInfos[0], cemeteryInfos[1]);
  158. }
  159. // Faire les modif dans World,SQL area_data : cemetery et on met exemple 7411,100 si le joueur et dans la zone XX etc...
  160. // On send les phoénix les plus proches :
  161. // Constants :
  162. public static final String ALL_PHOENIX = "-11;-54|2;-12|-41;-17|5;-9|25;-4|36;5|12;12|10;19|-10;13|-14;31|-43;0|-60;-3|-58;18|24;-43|27;-33";
  163.  
  164. // SocketManager :
  165. public static void GAME_SEND_INFO_HIGHLIGHT_PACKET(Personnage perso, String args)
  166. {
  167.      String packet = "IH"+args;
  168.      send(perso, packet);
  169. }
  170.  
  171. // On send
  172. SocketManager.GAME_SEND_INFO_HIGHLIGHT_PACKET(this, Constants.ALL_PHOENIX);
  173. // L'abonnement pas très dur,juste à faire le système de perte de temps mais se qui dommage c'est que le temps va se perdre que quand l'émulateur est open a moins que sa soit du genre le site qui gère...
  174. /*
  175. Voici quelque formule officiel,autre bouts de code
  176. L'instant mathématique Initiative :
  177. Initiative = (Total PdV / 4 + Bonus Initiative) * (PdV restants / Total PdV)
  178. Initiative Sacrieur = (Total PdV / 8 + Bonus Initiative) * (PdV restants / Total PdV)
  179.  
  180. L'instant mathématique Tacle :
  181. %Esquive = 300 * (Agi + 25) / (Agi + Agi Ennemi + 50) - 100
  182. */
  183.  
  184.     public static void GAME_OPEN_BUY(Personnage perso)
  185.     {
  186.         //On ouvre la PayZone.
  187.         StringBuilder Packet = new StringBuilder();
  188.         Packet.append("BP+");
  189.         send(perso, Packet.toString());
  190.     }
  191.    
  192.     public static void GAME_CLOSE_BUY(Personnage perso)
  193.     {
  194.         //On ferme la PayZone.
  195.         StringBuilder Packet = new StringBuilder();
  196.         Packet.append("BP+10");
  197.         send(perso, Packet.toString());
  198.     }
  199.  
  200. // Corriger le cheat de càc où on pouvait se mettre 1000 de porté x)
  201. // Fight tryCac() arpès Objet arme perso.getObjetByPos(Constants.ITEM_POS_ARME);
  202. int dist = Pathfinding.getDistanceBetween(_map, caster.getFightCell().getID(), cellID);
  203.    int MaxPO = arme.getTemplate().getPOmax();
  204.    int MinPO = arme.getTemplate().getPOmin();
  205.    if(dist < MinPO || dist > MaxPO)
  206.    {
  207.     //TODO: Y'a t'il un IM ?
  208.     return;
  209.    }
  210. // Il doit y avoir des fautes car j'ai modifier le nom des fonctions exemple : fight_id en fightId...
  211. // Quand on craft un objet on été obliger de fermer/ouvrir le panel de craft pour recrafter l'objet :
  212. // Métier : Recherche :
  213.                 //Baisse des stats ?
  214.                 //OQ82995355|2 Si echec renvoi les runes (une sorte de mise a jour de l'inventaire)
  215.                 //SocketManager.GAME_SEND_OBJECT_QUANTITY_PACKET(_P, mod);
  216. // faut juste ajouter SocketManager.GAME_SEND_OBJECT_QUANTITY_PACKET(_P, mod);
  217. // Augmenter la chance d'FM pour certaine runes
  218. // Ajout un serverId pour chaque gameserver
  219.  
  220. /*
  221. Donc voilà pleins de petit codes qui servent très bien ;)
  222. Pour l'avancement de Ancestra Remake
  223. PS:Je suis prêt à commencer quand vous voulez ;)
  224. */
Advertisement
Add Comment
Please, Sign In to add comment