Aller au contenu
Top-Metin2.org - Vous êtes à la recherche d'un serveur Metin 2 ? ×
×
×
  • Créer...

[2013] Revenir à l'ancien système item_proto & mob_proto


FrancH

Messages recommandés

Centre de Téléchargement

Hidden Content

    Give reaction to this post to see the hidden content.
( Interne )

Bonsoir,

 je fais un post pour expliquer comment utiliser la lib proposée par iMer, permettant de supprimer le système avec les fichiers item_proto.txt et mob_proto.txt présent sur les nouveaux files 2013 et de retrouver l'ancien système où on n'avait qu'à se soucier des tables item_proto et mob_proto. A l'issu du petit tutoriel, vous n'aurez plus besoin des fichiers .txt .

 Ce post est à destination des personnes ne voulant pas utiliser le système des fichiers item_proto.txt, ... présent dans le répertoire /db pour la version du core db 33820 mais revenir à l'ancien système utilisant les tables item_proto côté base de donnée. Certaines personnes préfèrent le nouveau système, d'autres l'ancien système. La philosophie du post est donc juste de montrer aux personnes le souhaitant, comment revenir à l'ancien système.

Tout d'abord, téléchargez les lib nécessaires :

libstdc++.so.6

Téléchargement

Vous avez déjà cette lib sur votre ftp dans usr/lib ( FreeBSD 32 bits) ou usr/lib32 (FreeBSD 64 bits) selon la version de FreeBSD que vous utilisez. Il vous suffit donc la remplacer par la version présente ici en téléchargement.

libdb_notxt.so

Téléchargement

C'est la lib qui permet d'interpréter vos tables SQL à la place des fichiers txt. Vous pouvez la placer où vous voulez, dans le répertoire /share par exemple ça sera très bien. Je vous ai mis en upload la dernière version disponible, normalement exempte des bugs des premières versions.

Bien maintenant vous avez remplacé une lib existante et placé une seconde sur votre ftp. Rendez-vous maintenant dans votre script de démarrage du serveur (nommé start.sh si vous ne l'avez pas modifié). On va modifier l'exécution du core db pour qu'il prenne en compte libdb_notxt.so. Pour cela il suffit de remplacer la ligne concernée :

cd ./db/ ./db &

Par

cd ./db && env LD_PRELOAD=/usr/home/metin2/share/libdb_notxt.so ./db &

À noter que selon la version de FreeBSD que vous possédez, cela peut être LD_PRELOAD (FreeBSD 32 bits) ou LD_32_PRELOAD (FreeBSD 64 bits) que vous devez utilisez dans la ligne ci-dessus.

 À noter aussi que cette ligne est présente plusieurs fois dans votre script (car plusieurs options possibles lors du lancement du serveur) donc pensez bien à remplacer les différentes occurrences.

 Et à noter enfin que le chemin que j'ai mis est celui où est placé la lib libdb_notxt.so, peut-être que sur votre serveur ce n'est pas le même chemin selon où vous avez voulu la placer donc modifiez cela en conséquence !

 Si vous rencontrez des soucis, veuillez utiliser le script que je propose à la fin du tuto, en vérifiant bien le chemin de la lib

Il reste maintenant à régler le problème de la compatibilité des tables item_proto et mob_proto car on a enlevé certaines colonnes de ces tables dans nos files, mais la lib de iMer fonctionne pour des tables item_proto et mob_proto non retouchées. Voici donc les tables item_proto et mob_proto adaptées aux files EB 2013 (j'ai ajouté que les colonnes nécessaires pour que la lib de iMer fonctionne et les tables contiennent déjà tous les objets et mobs des files EB 2013) :

 item_proto

 mob_proto

 Si jamais pour une raison X ou Y vous voulez la structure originale des tables files 2013 (par exemple parce que vous utilisez un tool ou convertisseur particulier, ...), les voilà :

 item_proto 2013 original

SET FOREIGN_KEY_CHECKS=0;
-- ----------------------------
-- Table structure for item_proto
-- ----------------------------
CREATE TABLE `item_proto` (
 `vnum` int(11) unsigned NOT NULL DEFAULT '0',
 `name` varbinary(24) NOT NULL DEFAULT 'Noname',
 `locale_name` varbinary(24) NOT NULL DEFAULT 'Noname',
 `type` tinyint(2) NOT NULL DEFAULT '0',
 `subtype` tinyint(2) NOT NULL DEFAULT '0',
 `weight` tinyint(3) DEFAULT '0',
 `size` tinyint(3) DEFAULT '0',
 `antiflag` int(11) DEFAULT '0',
 `flag` int(11) DEFAULT '0',
 `wearflag` int(11) DEFAULT '0',
 `immuneflag` set('PARA','CURSE','STUN','SLEEP','SLOW','POISON','TERROR') NOT NULL DEFAULT '',
 `gold` int(11) DEFAULT '0',
 `shop_buy_price` int(10) unsigned NOT NULL DEFAULT '0',
 `refined_vnum` int(10) unsigned NOT NULL DEFAULT '0',
 `refine_set` smallint(11) unsigned NOT NULL DEFAULT '0',
 `refine_set2` smallint(5) unsigned NOT NULL DEFAULT '0',
 `magic_pct` tinyint(4) NOT NULL DEFAULT '0',
 `limittype0` tinyint(4) DEFAULT '0',
 `limitvalue0` int(11) DEFAULT '0',
 `limittype1` tinyint(4) DEFAULT '0',
 `limitvalue1` int(11) DEFAULT '0',
 `applytype0` tinyint(4) DEFAULT '0',
 `applyvalue0` int(11) DEFAULT '0',
 `applytype1` tinyint(4) DEFAULT '0',
 `applyvalue1` int(11) DEFAULT '0',
 `applytype2` tinyint(4) DEFAULT '0',
 `applyvalue2` int(11) DEFAULT '0',
 `value0` int(11) DEFAULT '0',
 `value1` int(11) DEFAULT '0',
 `value2` int(11) DEFAULT '0',
 `value3` int(11) DEFAULT '0',
 `value4` int(11) DEFAULT '0',
 `value5` int(11) DEFAULT '0',
 `socket0` tinyint(4) DEFAULT '-1',
 `socket1` tinyint(4) DEFAULT '-1',
 `socket2` tinyint(4) DEFAULT '-1',
 `socket3` tinyint(4) DEFAULT '-1',
 `socket4` tinyint(4) DEFAULT '-1',
 `socket5` tinyint(4) DEFAULT '-1',
 `specular` tinyint(4) NOT NULL DEFAULT '0',
 `socket_pct` tinyint(4) NOT NULL DEFAULT '0',
 `addon_type` smallint(6) NOT NULL DEFAULT '0',
 PRIMARY KEY (`vnum`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;

mob_proto 2013 original

SET FOREIGN_KEY_CHECKS=0;
-- ----------------------------
-- Table structure for mob_proto
-- ----------------------------
CREATE TABLE `mob_proto` (
 `vnum` int(11) NOT NULL DEFAULT '0',
 `name` varchar(24) NOT NULL DEFAULT 'Noname',
 `locale_name` varbinary(24) NOT NULL DEFAULT 'Noname',
 `rank` tinyint(2) NOT NULL DEFAULT '0',
 `type` tinyint(2) NOT NULL DEFAULT '0',
 `battle_type` tinyint(1) NOT NULL DEFAULT '0',
 `level` smallint(3) NOT NULL DEFAULT '1',
 `size` enum('SMALL','MEDIUM','BIG') NOT NULL DEFAULT 'SMALL',
 `ai_flag` set('AGGR','NOMOVE','COWARD','NOATTSHINSU','NOATTCHUNJO','NOATTJINNO','ATTMOB','BERSERK','STONESKIN','GODSPEED','DEATHBLOW','REVIVE') DEFAULT NULL,
 `mount_capacity` tinyint(2) NOT NULL DEFAULT '0',
 `setRaceFlag` set('ANIMAL','UNDEAD','DEVIL','HUMAN','ORC','MILGYO','INSECT','FIRE','ICE','DESERT') NOT NULL DEFAULT '',
 `setImmuneFlag` set('STUN','SLOW','FALL','CURSE','POISON','TERROR') NOT NULL DEFAULT '',
 `empire` tinyint(4) NOT NULL DEFAULT '0',
 `folder` varchar(100) NOT NULL DEFAULT '',
 `on_click` tinyint(4) NOT NULL DEFAULT '0',
 `st` smallint(5) unsigned NOT NULL DEFAULT '0',
 `dx` smallint(5) unsigned NOT NULL DEFAULT '0',
 `ht` smallint(5) unsigned NOT NULL DEFAULT '0',
 `iq` smallint(5) unsigned NOT NULL DEFAULT '0',
 `damage_min` smallint(5) unsigned NOT NULL DEFAULT '0',
 `damage_max` smallint(5) unsigned NOT NULL DEFAULT '0',
 `max_hp` int(10) unsigned NOT NULL DEFAULT '0',
 `regen_cycle` tinyint(3) unsigned NOT NULL DEFAULT '0',
 `regen_percent` tinyint(3) unsigned NOT NULL DEFAULT '0',
 `gold_min` int(11) NOT NULL DEFAULT '0',
 `gold_max` int(11) NOT NULL DEFAULT '0',
 `exp` int(10) unsigned NOT NULL DEFAULT '0',
 `def` smallint(5) unsigned NOT NULL DEFAULT '0',
 `attack_speed` smallint(6) unsigned NOT NULL DEFAULT '100',
 `move_speed` smallint(6) unsigned NOT NULL DEFAULT '100',
 `aggressive_hp_pct` tinyint(3) unsigned NOT NULL DEFAULT '0',
 `aggressive_sight` smallint(10) unsigned NOT NULL DEFAULT '0',
 `attack_range` smallint(5) unsigned NOT NULL DEFAULT '0',
 `drop_item` int(10) unsigned NOT NULL DEFAULT '0',
 `resurrection_vnum` int(10) unsigned NOT NULL DEFAULT '0',
 `enchant_curse` tinyint(4) unsigned NOT NULL DEFAULT '0',
 `enchant_slow` tinyint(4) unsigned NOT NULL DEFAULT '0',
 `enchant_poison` tinyint(4) unsigned NOT NULL DEFAULT '0',
 `enchant_stun` tinyint(3) unsigned NOT NULL DEFAULT '0',
 `enchant_critical` tinyint(3) unsigned NOT NULL DEFAULT '0',
 `enchant_penetrate` tinyint(3) unsigned NOT NULL DEFAULT '0',
 `resist_sword` tinyint(4) NOT NULL DEFAULT '0',
 `resist_twohand` tinyint(4) NOT NULL DEFAULT '0',
 `resist_dagger` tinyint(4) NOT NULL DEFAULT '0',
 `resist_bell` tinyint(4) NOT NULL DEFAULT '0',
 `resist_fan` tinyint(4) NOT NULL DEFAULT '0',
 `resist_bow` tinyint(4) NOT NULL DEFAULT '0',
 `resist_fire` tinyint(4) NOT NULL DEFAULT '0',
 `resist_elect` tinyint(4) NOT NULL DEFAULT '0',
 `resist_magic` tinyint(4) NOT NULL DEFAULT '0',
 `resist_wind` tinyint(4) NOT NULL DEFAULT '0',
 `resist_poison` tinyint(4) NOT NULL DEFAULT '0',
 `dam_multiply` float DEFAULT NULL,
 `summon` int(11) DEFAULT NULL,
 `drain_sp` int(11) DEFAULT NULL,
 `mob_color` int(10) unsigned DEFAULT NULL,
 `polymorph_item` int(10) unsigned NOT NULL DEFAULT '0',
 `skill_level0` tinyint(3) unsigned DEFAULT NULL,
 `skill_vnum0` int(10) unsigned DEFAULT NULL,
 `skill_level1` tinyint(3) unsigned DEFAULT NULL,
 `skill_vnum1` int(10) unsigned DEFAULT NULL,
 `skill_level2` tinyint(3) unsigned DEFAULT NULL,
 `skill_vnum2` int(10) unsigned DEFAULT NULL,
 `skill_level3` tinyint(3) unsigned DEFAULT NULL,
 `skill_vnum3` int(10) unsigned DEFAULT NULL,
 `skill_level4` tinyint(3) unsigned DEFAULT NULL,
 `skill_vnum4` int(10) unsigned DEFAULT NULL,
 `sp_berserk` tinyint(4) NOT NULL DEFAULT '0',
 `sp_stoneskin` tinyint(4) NOT NULL DEFAULT '0',
 `sp_godspeed` tinyint(4) NOT NULL DEFAULT '0',
 `sp_deathblow` tinyint(4) NOT NULL DEFAULT '0',
 `sp_revive` tinyint(4) NOT NULL DEFAULT '0',
 PRIMARY KEY (`vnum`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;

Remarque: N'oubliez pas de mettre des priorités suffisantes sur les libs !

 Je re-précise que je ne suis pas à l'origine de la lib, l'auteur est iMer donc merci à lui pour ce partage fort utile si vous êtes réfractaire au nouveau système.

 J'espère n'avoir rien oublié, si c'est le cas dites le moi. Après avoir appliqué ces modifications, les fichiers .txt dans le répertoire /db sont maintenant inutiles, vous pouvez les supprimer (à condition que vous ne lanciez jamais le core db sans précharger la lib avant, cf le script start.sh !).

 Source: EB & EPVP

 Pour toutes questions, rendez-vous dans la catégorie Aide/Questions/Support

  • Love 5
Lien vers le commentaire
Partager sur d’autres sites

  • 4 mois après...
  • 2 mois après...
  • 1 mois après...
  • 2 semaines après...


  • brilliantdiscord_widget
  • Flux d'Activité

    1. 21

      Metin2 en 2020 peut-on en parler?

    2. 0

      METIN2Project

    3. 3

      Ressources - UnPack - Metin2 Client - Officiel

    4. 0

      Barre des tâches d'argent étendue

    5. 16

      Redémarrage automatique des channels

    6. 16

      Multi Logo GM / SGM / GA

    7. 0

      comment extraire les fichiers locale.epk locale.eix sur le serveur officiel ?

    8. 2

      Funky-emu.net -> fr.metin2.dev

  • En ligne récemment

    • Aucun utilisateur enregistré regarde cette page.

Information importante

Conditions d’utilisation / Politique de confidentialité / Règles / Nous avons placé des cookies sur votre appareil pour aider à améliorer ce site. Vous pouvez choisir d’ajuster vos paramètres de cookie, sinon nous supposerons que vous êtes d’accord pour continuer.