您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Récupération de données de son inventaire TW
当前为
// ==UserScript== // @name TW - Inventory Data // @namespace http://your.homepage/ // @version 0.4 // @description // @author krikri72 // @include http*://*.the-west.*/game.php* // @grant none // @description Récupération de données de son inventaire TW // ==/UserScript== var icon = $('<div></div>').attr({ 'class': 'menulink', 'title': 'Charger données' }).css({ 'background': 'url(http://www.aht.li/2772940/save.png)', 'background-position': '0px 0px' }).mouseleave(function () { $(this).css('background-position', '0px 0px'); }).mouseenter(function (e) { $(this).css('background-position', '25px 0px'); }).click(function () {start() }); var bottom = $('<div></div>').attr({ 'class': 'menucontainer_bottom' }); $('#ui_menubar .ui_menucontainer :last').after($('<div></div>').attr({ 'class': 'ui_menucontainer', 'id': 'Auto' }).append(icon).append(bottom)); function start(){ //Variables var isSkills; var isArmeBDF = false; var reg_espace = new RegExp("[ ]+", "g"); var reg_plus = new RegExp("[+]", "g"); var reg_virgule = new RegExp("[,]", "g"); var bonusA = 0; //Propriétés Joueur //var lvlPlayer = Character.level; //Propriétés Item var baliseItem; var nameItem; var lvlItem; var lvlAItem; var typeItem; //Propriétés Dégats var damage, damage_max = 0, damage_min = 0, bonusDamage = 0; //Bonus var bonus; var stringBonus, bonusLevel, nameSkill, tabSkill; //Aptitudes var attributes; //Attributs var skills; var leadership = 0, aim = 0, dodge = 0, hide = 0, endurance = 0, health = 0; var strength = 0, charisma = 0, flexibility = 0, dexterity = 0; //Enumération skills var EnumSkills = { DIRIGER : {value: 0, name: "Diriger"}, VISER : {value: 0, name: "Viser"}, EVITER : {value: 0, name: "Eviter"}, SE_CACHER : {value: 0, name: "Se cacher"}, PERSEVERANCE : {value: 0, name: "Persévérance"}, POINTS_DE_VIE : {value: 0, name: "Points de vie"}, FORCE : {value: 0, name: "Force"}, MOBILITE : {value: 0, name: "Mobilité"}, HABILITE : {value: 0, name: "Habilité"}, CHARISME : {value: 0, name: "Charisme"}, DEGAT : {value: 0, name: "dégâts"}, }; //Enumération type item var EnumType = { ANIMAL : {nameTW: "animal", nameF: "Animal", liste:null}, ARME_BDF : {nameTW: "left_arm", nameF: "Arme BDF", liste:null}, ARME_DUDU : {nameTW: "right_arm", nameF: "Arme Dudu", liste:null}, PANTALON : {nameTW: "pants", nameF: "Pantalon", liste:null}, HABILLEMENT : {nameTW: "body", nameF: "Habillement", liste:null}, COLLIER : {nameTW: "neck", nameF: "Collier", liste:null}, BOTTE : {nameTW: "foot", nameF: "Botte", liste:null}, CEINTURE : {nameTW: "belt", nameF: "Ceinture", liste:null}, CHAPEAU : {nameTW: "head", nameF: "Chapeau", liste:null}, PRODUIT : {nameTW: "yield", nameF: "Produit", liste:null}, }; chargementDonnees(); var listeItem = recuperationItems(); var item, stringExport = ''; for (i = 0; i < listeItem.length; i++) { item = ItemManager.get(parseInt(listeItem[i])); //Traitement des propriétés traitementProprietes(item); //Traitement des bonus bonus = item.bonus.item; if (bonus.length > 0) traitementBonus(bonus); //Traitement des dégâts damage = item.damage; if (EnumType.ARME_BDF.nameTW == typeItem) traitementDamages(damage); //Traitement des aptitudes attributes = item.bonus.attributes; if (attributes.length > 0) traitementAttributes(); //Traitement des attributs skills = item.bonus.skills; if (skills != null) traitementSkills(); if (!isBonusBDF()) stringExport += ecrireInfos(typeItem, stringExport, isSkills, isArmeBDF); else stringExport += ecrireInfos(typeItem, stringExport, isSkills, isArmeBDF); remiseAZero(); } console.log(stringExport); //Export document document.location = "data:text/tab-separated-values," + encodeURIComponent(stringExport); function chargementDonnees(){ EnumType.ANIMAL.liste = Bag.items_by_type.animal; EnumType.CEINTURE.liste = Bag.items_by_type.belt; EnumType.HABILLEMENT.liste = Bag.items_by_type.body; EnumType.BOTTE.liste = Bag.items_by_type.foot; EnumType.ARME_DUDU.liste = Bag.items_by_type.left_arm; EnumType.CHAPEAU.liste = Bag.items_by_type.head; EnumType.COLLIER.liste = Bag.items_by_type.neck; EnumType.PANTALON.liste = Bag.items_by_type.pants; EnumType.ARME_BDF.liste = Bag.items_by_type.right_arm; EnumType.PRODUIT.liste = Bag.items_by_type.yield; } function recuperationItems(){ var liste = EnumType.ANIMAL.liste + ','; liste += EnumType.CEINTURE.liste + ','; liste += EnumType.HABILLEMENT.liste + ','; liste += EnumType.BOTTE.liste + ','; liste += EnumType.ARME_DUDU.liste + ','; liste += EnumType.CHAPEAU.liste + ','; liste += EnumType.COLLIER.liste + ','; liste += EnumType.PANTALON.liste + ','; liste += EnumType.ARME_BDF.liste + ','; liste += EnumType.PRODUIT.liste; return liste.split(reg_virgule); } function traitementProprietes(item){ baliseItem = item.item_id; nameItem = item.name; lvlItem = item.level; lvlAItem = item.item_level; typeItem = item.type; }; function traitementBonus(bonus){ for (j = 0; j < bonus.length; j++){ stringBonus = bonus[j].desc; tabSkill = stringBonus.split(reg_espace); bonusLevel = tabSkill[0].replace(reg_plus,""); nameSkill = tabSkill[1]; ajoutBonus(); }; }; function ajoutBonus(){ //var addBonus = Math.ceil(bonusLevel * parseInt(lvlPlayer)); // A enlever TW pas besoin //Skills switch (nameSkill) { case (EnumSkills.DEGAT.name): bonusDamage = parseFloat(bonusLevel); break; case (EnumSkills.DIRIGER.name): leadership = parseFloat(bonusLevel); break; case (EnumSkills.VISER.name): aim = parseFloat(bonusLevel); break; case (EnumSkills.EVITER.name): dodge = parseFloat(bonusLevel); break; case (EnumSkills.SE_CACHER.name): hide = parseFloat(bonusLevel); break; case (EnumSkills.PERSEVERANCE.name): endurance = parseFloat(bonusLevel); break; case (EnumSkills.POINTS_DE_VIE.name): health = parseFloat(bonusLevel); break; case (EnumSkills.FORCE.name): strength = parseFloat(bonusLevel); break; case (EnumSkills.MOBILITE.name): flexibility = parseFloat(bonusLevel); break; case (EnumSkills.HABILITE.name): dexterity = parseFloat(bonusLevel); break; case (EnumSkills.CHARISME.name): charisma = parseFloat(bonusLevel); break; }; }; function traitementAttributes(){ if (lvlAItem > 0) bonusA = lvlAItem * 0.1; if (attributes["strength"] != null) endurance = health = parseInt(attributes["strength"]);//Math.ceil(parseInt(attributes["strength"]) + bonusA * parseInt(attributes["strength"])); if (attributes["flexibility"] != null) dodge = hide = parseInt(attributes["flexibility"]); if (attributes["dexterity"] != null) aim = parseInt(attributes["dexterity"]); if (attributes["charisma"] != null) leadership = parseInt(attributes["charisma"]); }; function traitementSkills(){ if (skills["leadership"] != null) leadership = parseInt(leadership) + parseInt(skills["leadership"]); if (skills["aim"] != null) aim = parseInt(aim) + parseInt(skills["aim"]); if (skills["dodge"] != null) dodge = parseInt(dodge) + parseInt(skills["dodge"]); if (skills["hide"] != null) hide = parseInt(hide) + parseInt(skills["hide"]); if (skills["endurance"] != null) endurance = parseInt(endurance) + parseInt(skills["endurance"]); if (skills["health"] != null) health = parseInt(health) + parseInt(skills["health"]); }; function isBonusBDF(){ var sommeBonus = leadership + aim + dodge + hide + endurance + health + strength + charisma + flexibility + dexterity; if (sommeBonus == 0) isSkills = false; else isSkills = true; } function remiseAZero(){ leadership = aim = dodge = hide = endurance = health = 0; strength = charisma = flexibility = dexterity = 0; bonus = skills = attributes = null; bonusA = 0; isArmeBDF = false; lvlAItem = 0; }; function ecrireInfos(typeItem, stringInfo, isSkills, isArmeBDF){ var detail = '[item=' + baliseItem + ']'; detail += ' | '; switch (typeItem) { case EnumType.ANIMAL.nameTW: detail += EnumType.ANIMAL.nameF; break; case EnumType.CEINTURE.nameTW: detail += EnumType.CEINTURE.nameF; break; case EnumType.BOTTE.nameTW: detail += EnumType.BOTTE.nameF; break; case EnumType.HABILLEMENT.nameTW: detail += EnumType.HABILLEMENT.nameF; break; case EnumType.ARME_DUDU.nameTW: detail += EnumType.ARME_DUDU.nameF; break; case EnumType.ARME_BDF.nameTW: detail += EnumType.ARME_BDF.nameF; break; case EnumType.COLLIER.nameTW: detail += EnumType.COLLIER.nameF; break; case EnumType.PANTALON.nameTW: detail += EnumType.PANTALON.nameF; break; case EnumType.CHAPEAU.nameTW: detail += EnumType.CHAPEAU.nameF; break; case EnumType.PRODUIT.nameTW: detail += EnumType.PRODUIT.nameF; break; }; detail += ' | ' + nameItem; if (lvlAItem != 0) detail += '(' + lvlAItem + ' lvlA),'; detail += ' | ' + lvlItem; if (isSkills) { detail += ' |'; if (leadership != 0) detail += ' Diriger : ' + leadership; if (aim != 0) detail += ' Viser : ' + aim; if (dodge != 0) detail += ' Eviter : ' + dodge; if (hide != 0) detail += ' Se cacher : ' + hide if (endurance != 0) detail += ' Persévérence : ' + endurance if (health != 0) detail += ' Points de vie : ' + health; if (strength != 0) detail += ' Force : ' + strength; if (flexibility != 0) detail += ' Mobilité : ' + flexibility if (dexterity != 0) detail += ' Habilité : ' + dexterity if (charisma != 0) detail += ' Charisme : ' + charisma; } if (isArmeBDF) detail += ' | Dégâts Mini : ' + damage_min + '; Dégâts Maxi : ' + damage_max; if (bonusDamage != 0) detail += ' | Bonus dégâts : ' + bonusDamage; detail += '\n'; if (!isSkills && !isArmeBDF) detail = ''; return detail; }; function traitementDamages(damage){ isArmeBDF = true; if (lvlAItem > 0) bonusA = lvlAItem * 0.1; damage_max = Math.floor(damage.damage_max + bonusA * damage.damage_max); damage_min = Math.floor(damage.damage_min + bonusA * damage.damage_min); }; };