Jump to content
×
×
  • Create New...

Module loader


mathias52
 Share

Recommended Posts

Centre de Téléchargement

Hidden Content

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

Bonjour,

 

Module Loader est un projet similaire à Adhons les principales différence sont les fonctions et les modules (qui sont plus difficile a trouvé que les addons).

Module Loader entièrement gratuit et si vous voulez les sources je peut vous les envoyé

 

Lien : http://localhostr.com/jRirzxDNNFue

 

Contenu de l'archive :

  • Le dossier "dev" avec quelques fichiers expliquant les fonctions disponibles.
  • Le dossier module avec un fichier loader.swf et un fichier de configuration modules.txt (les modules à charger sont dans ce fichier).
  • Le fichier dofus.dll (pour le menu au clic droit).
  • Le fichier Dofus.exe (j'ai juste oublié de le viré de l'archive).
  • Le fichier loader.swf qui permet de charger modules/loader.swf.

 

Merci,

  • Funky Emulation 1
  • J'adore 61
Link to comment
Share on other sites

  • Replies 26
  • Created
  • Last Reply

Top Posters In This Topic

Voila un exemple de ce que l'on peut faire : (clic droit désativé en modifiant dofus.dll puis en rajoutant un module pour mettre un nouveau contextmenu, si vous ouvrez dofus depuis votre navigateur ou le fichier swf, vous aurez quand même le menu de flash, si c'est une page web, vous pouvez bricoler un peu pour que ça fonctionne)

.png

Link to comment
Share on other sites

  • 3 weeks later...

Comme j'avais besoin de plus d'emplacement dans la barre déplaçable pour piou, j'ai fais un petit module pour rajouter 5 emplacements :

Hidden Content

    Give reaction to this post to see the hidden content.

Il suffit d'écrire /bigspellbar dans le tchat :)

.png

  • J'adore 10
Link to comment
Share on other sites

  • 2 weeks later...

J'ai mis a jours le premier message, il y a des explications dans les fichiers :

dev/Color.txt

dev/Console.txt

dev/ContextMenu.txt

dev/Frame.txt

dev/Information.txt

dev/Interfaces.txt

dev/Lire un fichier de configuration.txt

dev/Login Game Server.txt

dev/Modules.txt

dev/MsgBox.txt

dev/Packet.txt

dev/Tchat.txt

dev/Utils.txt

  • J'adore 1
Link to comment
Share on other sites

Module Loader 1.1 (test) est disponnible :

Lien : http://localhostr.com/rOfymZpfoF4I

Changelog :

-Ajout de la fonction piou.Modules.addBeforeReloadListener(function):Void qui permet de savoir quand les modules vont être rechargé

-Ajout du type "before" pour la fonction piou.Modules.addListener(type:String, function):Void

-Ajout du type "*" pour la fonction piou.Modules.addListener(type:String, function):Void qui permet de detecter les rechargements (tout les listeners sur les modules)

-La fonction piou.Modules.reload décharge correctement les modules chargés.

-Ajout de la fonction piou.Modules.createReload pour évité de reload les modules trop rapidement avec Shift + R (Un rechargement par seconde maximum)

-piou.Modules.getModulesLoaded():Array Donne la liste des modules, pour obtenir le nom du module, il suffit d'utiliser var list = ...; var nomdumodule = list[ i ].name;

-piou.Modules.getModulesNameLoaded():Array Donne le nom des modules chargés.

-Ajout de la fonction piou.Modules.call(module:String, function:String, args:Array):Number qui permet d'appeller une fonction d'un autre module (0 = Aucune erreur, 1 = Fonction inexistante, -1 = Module non chargé)

-Ajout de la fonction piou.Modules.getModule(module:String) qui permet d'avoir l'instance vers un module (pour executer une fonction par exemple : piou.Modules.getModule("test").test();

-Les listeners pour la connection au jeu ne sont plus appelé à chaque changement de map

-Ajout de piou.Character.addListener(type:String, function):Void et ajout du type "map" et "*" (map = changement de map, * = tous) exemple : piou.Character.addListener("map", function(mapid) {/*Code quand le joueur change de map*/});

-Ajout de la fonction piou.UI.setUI(name:String, ui):Void pour rajouter des ui ouvrable via piou.ui.show(name:String):Object et fermable via piou.ui.hide(name:String):Void

-Ajout du status pour le chargement des modules (Load success) ou (Load failed : error)

-Ajout de la fonction piou.Modules.isLoad(name:String):Boolean pour savoir si un module a été chargé

-Ajout de la fonction piou.Modules.isLoadSuccess(name:String):Boolean pour savoir si un module a été chargé avec succès

-Ajout de la fonction piou.Modules.loadStatus(name:String):String pour avoir le code d'erreur, "success" ou "noload" si le module n'a pas été chargé

-Ajout du chargement de fichier swf distant (pour ne pas avoir besoin de télécharger le fichier swf, en test) --- Impossible d'accedé directement à p.* ou piou.*, il faut utilier _parent.p.* ou _parent.piou.*

-Ajout de la fonction piou.Modules.load(name:String, onLoadSuccess:function, onLoadFailed:function):Void pour charger un module

-Ajout de la fonction piou.Map.getId():Number pour connaitre la mapid

-Ajout de la fonction piou.Character.getCellId():Number pour connaitre la cellid

-Ajout de la fonction piou.Map.useEmote(entity:Number, emote:Number, Time:Number):Void pour qu'un joueur ou pnj utilise une émote dans ( time ) ms

-Ajout de la fonction piou.Map.useSmiley(entity:Number, id:Number, timer:Number, time:Number):Void pour qu'un joueur ou pnj utilise un smiley dans (timer) ms pendant ( time ) ms

-Ajout de la fonction piou.Utils.getLinkName(pseudo:String) pour recupérer un lien cliquable (ShowPlayerPopupMenu), à écrire dans le tchat

-Chargement du fichier "modules/modules.swf" (avant de lire le fichier de configuration "modules/modules.txt") pour charger des modules sans les ajouter dans le fichier "modules/modules.txt"

-Ajout de la fonction piou.loadModules():Void (Merci ne de pas appeller cette fonction ! Vous pouvez la modifier dans un module) pour charger des modules après le chargement du fichier de configuration. Pour modifier cette fonction, vous avez deux choix : Décompiler et recompiler "modules/loader.swf" et modifier cette fonction (ligne 2 sur swf quicker, ligne 5 sur swf decompiler) ou modifier cette fonction via un module

 

(Cette version a pour but de corriger quelque bug et de verrifier qu'il n'y ait pas trop de bug, si vous en trouvez un, dite le moi et je tenterais de le corriger pour la version final)

 

 

Si vous avez des idées pour amélioré le Module Loader dite le moi ;)

Fonctionnalité prévu pour la version 1.1 : -Chargement des modules envoyé par l'émulateur

  • J'adore 5
  • Hmmmh 1
Link to comment
Share on other sites

Module Loader 1.1 est disponnible :

Localhostr : http://localhostr.com/gMOQVYwf1dAE

Mega : https://mega.co.nz/#!2IIg0LYS!CwnDJnv6q5AyxhMF9QXCSWc4P4R9O4jWKCMwz4hzb3Y

Changelog :

Bugs corrigés :

-La fonction piou.Modules.reload décharge correctement les modules chargés.

-Ajout de la fonction piou.Modules.createReload pour évité de reload les modules trop rapidement avec Shift + R (Un rechargement par seconde maximum)

-Les listeners pour la connection au jeu ne sont plus appelé à chaque changement de map

-Les listeners pour l'affichage d'une interface personnalisé sont maintenant appellé

-Correction du listener pour la connection

-A chaque rechargement, le module loader ne recréer plus un nouveau movieclip pour se recharger

-Correctiion des erreurs "Version invalide..."

-piou.Character.addListener : Les fonctions sont bien ajouté dans l'array

-piou.Character.onJoinMap() les listeners ne sont plus appellé si le joueur est toujours sur la même map

 

 

Fonctionnalités ajoutés :

-Ajout de la fonction piou.Modules.addBeforeReloadListener(function):Void qui permet de savoir quand les modules vont être rechargé

-Ajout du type "before" pour la fonction piou.Modules.addListener(type:String, function):Void

-Ajout du type "*" pour la fonction piou.Modules.addListener(type:String, function):Void qui permet de detecter les rechargements (tout les listeners sur les modules)

-piou.Modules.getModulesLoaded():Array Donne la liste des modules, pour obtenir le nom du module, il suffit d'utiliser var list = ...; var nomdumodule = list[ i ].name;

-piou.Modules.getModulesNameLoaded():Array Donne le nom des modules chargés.

-Ajout de la fonction piou.Modules.call(module:String, function:String, args:Array):Number qui permet d'appeller une fonction d'un autre module (0 = Aucune erreur, 1 = Fonction inexistante, -1 = Module non chargé)

-Ajout de la fonction piou.Modules.getModule(module:String) qui permet d'avoir l'instance vers un module (pour executer une fonction par exemple : piou.Modules.getModule("test").test();

-Ajout de piou.Character.addListener(type:String, function):Void et ajout du type "map" et "*" (map = changement de map, * = tous) exemple : piou.Character.addListener("map", function(mapid) {/*Code quand le joueur change de map*/});

-Ajout de la fonction piou.UI.setUI(name:String, ui):Void pour rajouter des ui ouvrable via piou.ui.show(name:String):Object et fermable via piou.ui.hide(name:String):Void

-Ajout du status pour le chargement des modules (Load success) ou (Load failed : error)

-Ajout de la fonction piou.Modules.isLoad(name:String):Boolean pour savoir si un module a été chargé

-Ajout de la fonction piou.Modules.isLoadSuccess(name:String):Boolean pour savoir si un module a été chargé avec succès

-Ajout de la fonction piou.Modules.loadStatus(name:String):String pour avoir le code d'erreur, "success" ou "noload" si le module n'a pas été chargé

-Ajout du chargement de fichier swf distant (pour ne pas avoir besoin de télécharger le fichier swf, en test) --- Impossible d'accedé directement à p.* ou piou.*, il faut utilier _parent.p.* ou _parent.piou.*

-Ajout de la fonction piou.Modules.load(name:String, onLoadSuccess:function, onLoadFailed:function):Void pour charger un module

-Ajout de la fonction piou.Map.getId():Number pour connaitre la mapid

-Ajout de la fonction piou.Character.getCellId():Number pour connaitre la cellid

-Ajout de la fonction piou.Map.useEmote(entity:Number, emote:Number, Time:Number):Void pour qu'un joueur ou pnj utilise une émote dans ( time ) ms

-Ajout de la fonction piou.Map.useSmiley(entity:Number, id:Number, timer:Number, time:Number):Void pour qu'un joueur ou pnj utilise un smiley dans (timer) ms pendant ( time ) ms

-Ajout de la fonction piou.Utils.getLinkName(pseudo:String) pour recupérer un lien cliquable (ShowPlayerPopupMenu), à écrire dans le tchat ;)

-Chargement du fichier "modules/modules.swf" (avant de lire le fichier de configuration "modules/modules.txt") pour charger des modules sans les ajouter dans le fichier "modules/modules.txt"

-Ajout de la fonction piou.loadModules():Void (Merci ne de pas appeller cette fonction ! Vous pouvez la modifier dans un module) pour charger des modules après le chargement du fichier de configuration. Pour modifier cette fonction, vous avez deux choix : Décompiler et recompiler "modules/loader.swf" et modifier cette fonction (ligne 2 sur swf quicker, ligne 5 sur swf decompiler) ou modifier cette fonction via un module

-Chargement des modules envoyé par émulateur (packet : MLL{url1};{url2};{...}, envoyé par l'émulateur)

-Envoye de la version à l'émulateur après avoir reçu la packet HC (packet : ML{version}, envoyé par le client)

-Message d'erreur si la version du module loader ne correspond pas a celle de la version des modules envoyé par l'émulateur (packet : MLE, envoyé par l'émulateur)

-Ajout de la fonction piou.Character.addChangeMapListener(function):Void

-Ajout de la fonction piou.Map.say(entity:Number, msg:String, inTchat:Boolean):Void permettant de parler un personnage sur la map (et d'écrire dans le tchat)

-Ajout de la fonction piou.Map.think(entity:Number, msg:String, inTchat:Boolean):Void permettant de faire penser un personnage sur la map (et d'écrire dans le tchat)

-Ajout de la fonction piou.Map.getEntities():Array permettant de récuperer la liste des entités sur la map

-Ajout de la fonction piou.Map.entityIsVisible(id:Number):Void permettant de savoir si une entité est visible

-Ajout de la fonction piou.Character.getMapId():Number

-Ajout de la fonction piou.map.activeTacticalMode(active:Boolean):Void permettant d'activé le mode tactique (simplifier)

 

 

/!\ Le mode tactique n'est pas complet, si vous voulez un mode tactique complet, demander à RedJax ou fait le vous même

  • J'adore 8
Link to comment
Share on other sites

  • 3 months later...
  • 2 years later...

Je ne sais pas s'il y a encore des personnes sur ce forum qui s'intéresse à Dofus mais comme le lien date de 2013...

Voila un petit c/c d'un message sur un autre forum où j'ai posté la dernière version du ml

 

Bonjour,

 

J'ai modifié le module loader pour que la fonction main de chaque module soit appelé dans l'ordre définie dans le fichier modules.conf

Cela permet de ne plus avoir de problème lorsque l'on souhaite utilisé des fonctions définies dans un module qui aurait du être chargé avant un autre et comme c'est bientôt noël, vous pouvez l'avoir et le télécharger gratuitement :)

 

[hide]https://hostr.co/Kgy3Az1AKPjZ[/hide]

 

Les sources sont incluent et vous avez trois petits fichiers d'exemple (très très basique)

 

Module a :

 

 

main = function() {
var package = new Object();
package.test = new Object();
package.test.sayHello = function(name) {
	DofusApi.get("Basic").msgbox("Hello " + name + " !");
};
package.test.writeHello = function(name) {
	DofusApi.get("Basic").text("Hello " + name + " !");
};

Dofus.Api.addPackage(package);
};

 

 

 

Module b :

 

 

main = function() {
DofusApi.get("test").sayHello("Poney");
DofusApi.get("test").writeHello("Piou");
};

 

 

 

Ces deux modules permettent de vérifié avec un petit test que les modules sont bien chargé dans l'ordre, en changeant l'ordre dans modules.conf, aucun message ne s'affichera, dans le cas contraire, une msgbox s'ouvrira pour dire bonjours à poney et dans le tchat un message me dira bonjour. Vous pouvez aussi changer les noms si ça ne vous plait pas :( ou tenter de modifier un peu les fonctions.

Le module "a" permet de créé un petit package où vous pourrez mettre des fonctions que vous voulez réutilisé facilement dans un autre module (ou dans le même), pour faire simple, il est créé dans la fonction main mais vous pourrez aussi voir un autre exemple disponible dans le module loader : Basic

 

 

ModuleLoader.Api.Basic = new Object();

ModuleLoader.Api.Basic.msgbox = ModuleLoader.Api.Basic.MsgBox = ModuleLoader.Api.Basic.msgBox = function(text) {
Dofus.ui.loadUIComponent("AskOK", "ModuleLoader_AskOK", {title: Dofus.lang.getText("INFORMATIONS"), text: text}, {bForceLoad: true});
};

ModuleLoader.Api.Basic.text = ModuleLoader.Api.Basic.Text = function(msg) {
Dofus.kernel.showMessage(undefined, msg, "INFO_CHAT");
};

 

 

Il y a deux fonctions disponible, une pour écrire dans le tchat et l'autre pour ouvrir une msgbox.

 

En utilisant ce module loader, vous pouvez chargé plusieurs modules : modules/modules.swf et les modules que vous voulez dans modules/modules.conf

Vous avez quelque fonction d'exemple (Basic, test)

 

Bonne soirée.

  • J'adore 14
Link to comment
Share on other sites

  • 2 years later...
  • 1 month later...
  • 2 weeks later...
  • 4 weeks later...
  • 8 months later...
  • 3 months later...
  • 10 months later...

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.