// ==UserScript==
// @name TW-Collections
// @description TW-Collections - see history
// @include http*://*.the-west.*/game.php*
// @author Dun
// @version 1.4.6.3
// @history 1.4.6.3 rev. TW 2.29
// @history 1.4.6.2 rev. TW 2.26
// @history 1.4.6.1 rev. TW 2.24
// @history 1.4.6 add Ro translation
// @history 1.4.5 correcting a bug on current market bid
// @history 1.4.4 Correct bugs & update 2.23 & add upgradeables search in inventory
// @history 1.4.3 Correct refresh bug
// @history 1.4.2 update for TW 2.21
// @history 1.4.1 correct bugs and add include for beta
// @history 1.4.0.2 remove personnal frienset from sets list
// @history 1.4.0 add Set Window and crafting items icons
// @history 1.3.9 correct for es translation
// @history 1.3.8 miscelaneous changes - update link to patebin (thanks to Tom Robert )
// @history 1.3.7 correct bug for double item wearing - reactivate update
// @history 1.3.6 correct translations links
// @history 1.3.5 correct bugs save & trader icons
// @history 1.3.4 correct bugs save settings
// @history 1.3.3.9 correct bugs for 2.1, deactivate update since userscript is dead
// @history 1.3.3.8 update TW version 2.1
// @history 1.3.3.7 maj for 2.09
// @history 1.3.3.6 correcting tips in mobile trader
// @history 1.3.3.5 add vertical scrollbar in set & collection selectboxs
// @history 1.3.3.4 maj 2.08 & optimisation chargement items de collections
// @history 1.3.3.3 Fix ended bids
// @history 1.3.3.2 correct End bids on collector list, add setting for deactivate menu mouse hover
// @history 1.3.3 Mod. listcolector: recherche dans le marché add direct link to market / mobile trader, add filters
// @history 1.3.2.1 Fix inventory bug
// @history 1.3.2 fix for the the mobile trader link, add the new TW items of the achieved collections, add pictures on collections list
// @history 1.3.1.3 fix for the shop display
// @history 1.3.1.2 corrections
// @history 1.3.1.1 corrections
// @history 1.3.1 correction pour le nouveau marchand ambulant + patch TWDB new
// @history 1.3.0 correction trad en + ajout lien forum
// @history 1.2.9 correction trad en et logout sans confirmation + ajout trad Slovak
// @history 1.2.7 correction trad en et logout sans confirmation
// @history 1.2.7 ajout filtres inventaires, correction
// @history 1.2.7 modification du systeme de langue et de l'updater, simplification suppression rapport, etc...
// @history 1.2.6.1 correction affichage TW api
// @history 1.2.6 correction lang et changement de nom
// @history 1.2.5 corrections ... or not :)
// @history 1.2.4 Création d'une barre d'outils dans l'inventaire (recettes, sets, consommables,doublons)
// @history 1.2.3 ajout d'un bouton doublon dans l'inventaire et correction bug lang
// @history 1.2.2 passage 2.0.6
// @history 1.2.1 passage 2.0.5
// @history 1.2.0 correction bugs maj + Traduction italienne (grazie tw81)
// @history 1.1.9 correction attente TWDB....
// @nocompat Chrome
// @grant none
// @namespace https://gf.qytechs.cn/users/2196
// ==/UserScript==
//
(function(e) {
var t = document.createElement("script");
t.type = "application/javascript";
t.textContent = "(" + e + ")();";
document.body.appendChild(t);
t.parentNode.removeChild(t);
})
(function() {
if (/.+\.the-west\..*\/game\.php.*/.test(window.location.href)) {
TWT = {
DEBUG : false,
LANG : {},
info : {
lang : 'en',
version : '1.4.6.3',
min_gameversion : '2.0',
max_gameversion : '2.29',
idscript : '1670'
},
languages : [ {
short_name : 'fr',
name : 'Francais',
translator : 'Dun',
version : '1.4.0'
}, {
short_name : 'en',
name : 'English',
translator : 'Dun',
version : '1.4.0'
} ],
images : {
cup : "/images/icons/achv_points.png",
logout : "data:image/jpg;base64,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",
twdb_iconNew : "data:image/png;base64,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",
traderImg : "data:image/jpeg;base64,/9j/4AAQSkZJRgABAQEAYABgAAD/2wBDAAIBAQEBAQIBAQECAgICAgQDAgICAgUEBAMEBgUGBgYFBgYGBwkIBgcJBwYGCAsICQoKCgoKBggLDAsKDAkKCgr/2wBDAQICAgICAgUDAwUKBwYHCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgr/wAARCAAUABQDASIAAhEBAxEB/8QAGAABAQEBAQAAAAAAAAAAAAAAAAgGBAf/xAAoEAACAQMEAgEDBQAAAAAAAAABAgMEBQYABxESEyIhCBRBMTIzQkP/xAAXAQEBAQEAAAAAAAAAAAAAAAAFAwQH/8QAJREBAAIBAwQBBQEAAAAAAAAAAQIRAwAEURITITFhIjJBkaGx/9oADAMBAAIRAxEAPwCzsr3ZqcwrZ446eojpYzykVNTuY2JcIZZCrKSo/cQG9V9jyCNZbNZd1dvJhd7NFEQ0qSwLJP4lVPcPCrop5Kle3aRf7AN0AZxg9uMvXHN0qy03ZJqWakeOZZJPGfNG0aq0kRZgU6NCyOAOP4jyew45MUxHJtsIb/kWZbwPlEF9t1PLRQxUJhWCKPvKKmY9zxKxk95OVAABJYk64jk3O7nMg3RJtFOktDgugWxG3jzty5p9yeVmEgOmKfcvsvzVfCJ/lGbOfUfie5O3tBmFROszVSc+V06s3Hx7KRyrA8gr+CCNNTz9PuN33IcBlym3xVTU94vVdcKX7qDxyeGadpI2dQB1ZkZXK8AgvwfkHTT+HsyxRcmSpUWeqdIY9/vSAGDqOb9/PrXoO82DYxJFBf5rYGqFk7xOsjRtFIVA7o6FXRuPUlWHK/B5HxrB2/aDF83ySltuZVtzutGKtpoqGuuLyQRuSf8AM+sgHYhVkDhQfUDTTRnZwu5hLpLTjhK1XeqbiUT19P8ATz+/zzqobJYLVZLelut1KEiT9Ofkk/kk/knTTTV4gxF0urFo8Gv/2Q=="
},
menu_callback : {
goHome : "TaskQueue.add(new TaskWalk(Character.homeTown.town_id,'town'))",
goToDaily1 : 'Map.center(1920, 2176);',
goToDaily2 : 'Map.center(28288,16768);',
ownSaloon : 'SaloonWindow.open(Character.homeTown.town_id);',
openMarket : 'MarketWindow.open(Character.homeTown.town_id);',
mobileTrader : "west.window.shop.open().showCategory('trader');",
forum : "ForumWindow.open();",
listNeeded : 'TWT.WindowCollection.open();',
openOptions : "TWT.Options.open('setting')"
},
css : {
style : "position:relative;top:0px;left:0px;width:12px;height:12px;padding:0px;border:0px;margin:0px;",
styleT : "position:absolute;top:4px;left:3px;width:15px;height:15px;padding:0px;border:0px;margin:0px;",
styleN : "position:absolute;top:120px;left:25px;padding:0px;border:0px;margin:0px;",
styleDB : "position:absolute;top:0px;left:0px;padding:0px;border:0px;margin:0px;"
},
langPatchs : {
cs : {
link : "https://gf.qytechs.cn/cs/scripts/7260",
texte : "Czech - čeština",
author : "Dr.Keeper"
},
es : {
link : "https://gf.qytechs.cn/es/scripts/7313",
texte : "Spanish - Español",
author : "pepe100"
},
de : {
link : "https://gf.qytechs.cn/de/scripts/1672",
texte : "German - Deutsch",
author : "Hanya"
},
it : {
link : "https://gf.qytechs.cn/it/scripts/1675",
texte : "Italian - Italiano",
author : "tw81"
},
hu : {
link : "https://gf.qytechs.cn/scripts/7261",
texte : "Hungarian - Magyar",
author : "Zoltan80"
},
sl : {
link : "https://gf.qytechs.cn/scripts/7259",
texte : "Slovak - Slovenčina",
author : "Surge"
},
pl : {
link : "https://gf.qytechs.cn/pl/scripts/1674",
texte : "Polish - Polski",
author : "Dun from Darius II mod"
},
pt : {
link : "https://gf.qytechs.cn/pt-BR/scripts/7312",
texte : "Portuguese - Português",
author : "VSaantiago"
},
ru : {
link : "https://gf.qytechs.cn/ru/scripts/7271",
texte : "Russian - Pу́сский",
author : "Anch665"
},
ro : {
link : "https://gf.qytechs.cn/scripts/9037",
texte : "Romana",
author : "Peta"
}
},
langs : {
fr : {
description : "<center><BR /><b>TW Collections</b><br>Astuces et signalement des items manquants des collections<br>Liste des items manquants des collections<br>Frais bancaires en survol avant dépot<br>Divers raccourcis et fonctions<br> Suppressions des rapports<br> Frais bancaires<br>Doublons dans l'inventaire<br>etc...</center>",
Options : {
tab : {
setting : 'Réglages'
},
checkbox_text : {
box : {
title : 'Raccourcis menus',
options : {
goHome : 'Aller à sa ville',
goToDaily1 : 'Aller à la ville abandonnée',
goToDaily2 : 'Aller au village de Waupee',
ownSaloon : 'Ouvrir votre saloon',
openMarket : 'Ouvrir le marché',
mobileTrader : 'Ouvrir le marchand ambulant',
forum : 'Ouvrir le forum',
listNeeded : 'Items manquants des collections'
}
},
collection : {
title : 'Collections',
options : {
gereNewItems : 'Gérer les nouveaux items des succés déjà obtenus',
patchsell : 'Signalement des items manquants aux collections dans l\'inventaire',
patchtrader : 'Signalement des items nécessaires aux collections chez les marchands',
patchmarket : 'Signalement des items nécessaires aux collections dans le marché',
filterMarket : 'Filtre dans le marché pour n\'afficher que les items manquants des collections',
showmiss : 'Items manquants des collections sur survol'
}
},
inventory : {
title : 'Boutons supplémentaires dans l\'inventaire',
options : {
doublons : 'Bouton de recherche des doublons',
useables : 'Bouton de recherche des consommables',
recipe : 'Bouton de recherche des recettes',
sets : 'Liste de recherche des sets',
sum : "Cumul des prix de vente marchand sur recherche"
}
},
miscellaneous : {
title : 'Divers',
options : {
lang : 'Language',
logout : 'Bouton déconnexion directe',
deleteAllReports : 'Action pour supprimer tous les rapports',
showFees : 'Frais bancaire en survol',
popupTWT : 'Ouverture du menu du script Collections au survol'
}
},
craft : {
title : 'Artisanat',
options : {
filterMarket : 'Recherche des items de craft dans le marché'
// filterMiniMap : 'Recherche des items de craft dans la minimap'
}
},
twdbadds : {
title : 'Add-on Clothcalc',
options : {
filterBuyMarket : 'Filtre dans le marché pour n\'afficher que les items manquants <a target=\'_blanck\' href="http://tw-db.info/?strana=userscript">(twdb add)</a>'
}
}
},
message : {
title : 'Information',
message : 'Préférences appliquées',
reloadButton : 'Recharger cette page',
gameButton : 'Aller sur le jeu',
indispo : 'Option indisponible (Collections terminées ou script non diponible)',
more : 'Autres ?',
moreTip : 'Ouvrir la page des traductions'
},
update : {
title : ' Mise à jour',
updok : 'Le script TW Collection est à jour',
updscript : 'Une nouvelle version du script TW Collections est disponible<br/>Mettre à jour ?',
updlangmaj : 'Une mise à jour est disponible pour une ou plusieurs langues utilisées avec le script TW Collections.<br/>Cliquez sur les liens ci dessous pour mettre à jour ?',
upddaily : 'Journalières',
updweek : 'Hebdomadaire',
updnever : 'Jamais',
checknow : 'Verifier les mises à jour ?',
upderror : 'Impossible de mettre le script TW Collections à jour, vous devez installer le script ou la langue manuellement'
},
saveButton : 'Sauvegarder'
},
Craft : {
titleMarket : 'Rechercher cet item dans les ventes du marché',
titleMinimap : 'Afficher le travail correspondant dans la minimap'
},
ToolBox : {
title : 'Fonctionnalités',
list : {
openOptions : 'Paramètres de l´outil'
}
},
Doublons : {
tip : 'Afficher uniquement les doublons',
current : 'Recherche courante',
upgradeable:'Ameliorables',
noset : 'Sans items de sets',
sellable : 'Vendables',
auctionable : 'Commercialisables',
tipuse : 'Afficher uniquement les consommables',
tiprecipe : 'Afficher uniquement les recettes',
tipsets : 'Afficher uniquement les items de sets',
sellGain : '$ prix marchand '
},
Logout : {
title : 'Déconnecter'
},
AllReportsDelete : {
button : 'Tout supprimer',
title : 'Supprimer tous les rapports',
work : 'Job',
progress : 'Etat d\'avancement',
userConfirm : 'Confirmation utilisateur',
loadPage : 'Charger la page',
deleteReports : 'Supprimer les rapports',
confirmText : 'Etes-vous sur de vouloir supprimer tous les rapports ?',
deleteYes : 'Oui, supprimer',
deleteNo : 'Non, ne pas supprimer',
status : {
title : 'Statut',
wait : 'Patienter',
successful : 'Réussi',
fail : 'Erreur',
error : 'Erreur'
}
},
fees : {
tipText : 'Frais á %1% : $%2'
},
twdbadds : {
buyFilterTip : 'Montrer seulement les items manquants',
buyFilterLabel : 'Items manquants'
},
collection : {
miss : "Manquants : ",
colTabTitle : "Collections",
setTabTitle : "Sets",
thText : '%1 item%2 manquant%3',
thEncours : 'Vous avez une enchère en cours pour cet article',
thFetch : 'Vous pouvez récuperer cet article au marché de %1',
allOpt : 'Tous',
listText : 'Liste des items manquants des collections',
listSetText : 'Liste des items manquants des Sets',
collectionFilterTip : 'Montrer seulement les items de collection',
collectionFilterLabel : 'Collections seules',
select : 'Sélectionner ...',
filters : 'Filtres',
atTrader : 'Vendu par le marchand ambulant',
atBid : 'Enchères en cours',
atCurBid : 'Enchères terminées',
searchMarket : 'Rechercher dans le marché',
atTraderTitle : 'Affichez les items en vente chez le marchand ambulant',
atBidTitle : 'Affichez les items en cours d\'enchère',
atCurBidTitle : 'Affichez les items récupèrables aux enchères',
patchsell : {
title : "Cet item est nécessaire pour une collection en cours"
}
}
},
en : {
description : "<center><BR /><b>TW-Collections</b><br>Tips and reporting missing items collections <br>list of collection needed items<BR> Bank fees on mouseover <br> Various shortcuts"
+ "<br>All reports deletion<br> Fees in bank <br> Additional buttons in inventory (duplicates,useables, recipes, sets) <br>etc ...",
Options : {
tab : {
setting : 'Settings'
},
checkbox_text : {
box : {
title : 'Features / Menus',
options : {
goHome : 'Travel to town',
goToDaily1 : 'Ghost Town',
goToDaily2 : 'Waupee Indian Camp ',
ownSaloon : 'Open saloon',
openMarket : 'Open Market',
mobileTrader : 'Open Mobile Trader',
forum : 'Open forum',
listNeeded : 'Collector\'s items needed'
}
},
collection : {
title : 'Collections',
options : {
gereNewItems : 'Manage the new items added on succeeded achievements',
patchsell : 'Signal missing items in inventory',
patchtrader : 'Signal missing items on Traders',
patchmarket : 'Signal missing items on Market',
showmiss : 'List for missing items on tip',
filterMarket : 'Market filter : show only missing items (collections)'
}
},
inventory : {
title : 'Buttons in inventory',
options : {
doublons : 'Add button for duplicates search',
useables : 'Add button for useables search',
recipe : 'Add button for recipes search',
sets : 'Add button for sets list',
sum : 'Show sell sum on search based on merchant prices'
}
},
miscellaneous : {
title : 'Miscellaneous',
options : {
lang : 'Language',
logout : 'Add Logout button',
deleteAllReports : 'Add suppress all reports action',
showFees : 'Add Bank Fees on Mouseover',
popupTWT : 'Open menu of TW Collections on mouse hover'
}
},
craft : {
title : 'Craft',
options : {
filterMarket : 'Icon for searching craft item in the market'
// filterMiniMap : 'Icon for searching craft item job in the minimap'
}
},
twdbadds : {
title : 'Clothcalc Add-on',
options : {
filterBuyMarket : 'Market filter : show only marked missing items <a target=\'_blanck\' href="http://tw-db.info/?strana=userscript">(twdb add)</a>'
}
}
},
message : {
title : 'Information',
message : 'Preferences have been applied.',
reloadButton : 'Reload this page',
gameButton : 'Return to the game',
indispo : 'Setting unavailable (Collections completed or script not available)',
more : 'More ?',
moreTip : 'Open the translations tips page'
},
update : {
title : 'Update',
upddaily : 'Every day',
updweek : 'Every week',
updnever : 'Never',
checknow : 'Check update now ?',
updok : "The TW Collection's script is up to date",
updlangmaj : 'An update is available for one or more languages of the TW Collections script.<BR>Clic on the links bellow to upgrade.',
updscript : 'An update is available for the script TW Collections<br/>Upgrade ?',
upderror : 'Unable to upgrade, you should install the script or language manually'
},
saveButton : 'Save'
},
Craft : {
titleMarket : 'Search this item in the market',
titleMinimap : 'Find corresponding job in the minimap'
},
ToolBox : {
title : 'Features',
list : {
openOptions : 'Settings'
}
},
Doublons : {
tip : 'Show only duplicates',
current : 'Current search',
upgradeable:'Upgradeables',
noset : 'Without set items',
sellable : 'Sellables',
auctionable : 'Auctionables',
tipuse : 'Show only useables',
tiprecipe : 'Show only recipes',
tipsets : 'Show only set items',
sellGain : '$ from the merchant'
},
Logout : {
title : 'Logout'
},
AllReportsDelete : {
button : 'Suppress all',
title : 'Suppress all reports',
work : 'Job',
progress : 'Progress',
userConfirm : 'User Confirm',
loadPage : 'Load Page',
deleteReports : 'Delete reports',
confirmText : 'Supress all reports - Are you sure ?',
deleteYes : 'Yes, delete',
deleteNo : 'No, don\'t delete',
status : {
title : 'Status',
wait : 'Wait',
successful : 'Réussi',
fail : 'Error',
error : 'Error'
}
},
fees : {
tipText : '%1% Fees: $%2'
},
twdbadds : {
buyFilterTip : 'Show only missing items',
buyFilterLabel : 'Missing items'
},
collection : {
miss : "Missing : ",
colTabTitle : "Collections",
setTabTitle : "Sets",
thText : '%1 missing item%2',
thEncours : 'You have a bid for this item',
thFetch : 'You may retrieve this item at the market of %1',
allOpt : 'All',
collectionFilterTip : 'Show only collections items',
collectionFilterLabel : 'Collections only',
select : 'Select ...',
listText : 'Collector\'s items needed',
listSetText : 'Set\'s items needed',
filters : 'Filters',
atTrader : 'Sold by mobile trader',
atBid : 'Current bids',
atCurBid : 'Ended bids',
atTraderTitle : 'Show items on sale at the mobile trader',
atBidTitle : 'Show currents bids',
atCurBidTitle : 'Show items retrievable at market',
searchMarket : 'Search in the market',
patchsell : {
title : "Items needed to complete collections"
}
}
}
},
getLanguage : function() {
var detected_lang;
try {
detected_lang = TWT.scriptStorage
.getItem('TWT.Cache.miscellaneous.lang');
if (!isDefined(detected_lang)) {
detected_lang = Game.locale.match(/(\S*)_/)[1]; // basé
// sur
// la
// langue
// du
// serveur
}
if (!isDefined(detected_lang)) {
detected_lang = TWT.info.lang; // Nouveau
}
} catch (ex) {
detected_lang = TWT.info.lang; // béta (w1/w2) ...
} finally {
var langue = TWT.langs[detected_lang];
if (!isDefined(langue)) { // langue non connue ou
// chargement des patchs
// lang non fait
langue = TWT.langs[TWT.info.lang];
var saved_descr = localStorage
.getItem('TWT.Cache.description');
if (isDefined(saved_descr)) {
langue.description = saved_descr; // permet
// d'initialiser
// l'api
// avec
// la
// traductin
}
EventHandler.listen('twt_lang_started_'
+ detected_lang, function() {
TWT.getLanguage();
return EventHandler.ONE_TIME_EVENT; // Unique
});
} else {
TWT.info.lang = detected_lang;
}
return langue;
}
},
addMissedTrad : function(enTrObj, langTrObj) {
if (!isDefined(langTrObj)) {
langTrObj = {};
}
$
.each(
enTrObj,
function(ind, item) {
if (jQuery.type(item) == "object") {
langTrObj[ind] = TWT
.addMissedTrad(item,
langTrObj[ind]);
} else {
if (jQuery.type(langTrObj[ind]) == "undefined") {
langTrObj[ind] = enTrObj[ind];
}
}
});
return langTrObj;
},
isGreasyLang : function(lang) {
var oldIdLangs = [ "179395", "179358", "179298",
"178773", "180784", "182959", "179302" ];
if ($.inArray(lang.idscript, oldIdLangs) > -1) {
// old script lang
var dlg = new west.gui.Dialog(
"Unmaintained language script for TW Collection",
"<div><b>You are using an obsolete version of '"
+ lang.name
+ "' language script for TW Collection.</b>"
+ "<br /><br />You should manually uninstall this script and "
+ "<br /><a target='_blanck' href='"
+ TWT.langPatchs[lang.short_name].link
+ "'>"
+ "Install the correct version of "
+ lang.name + " script.</a>"
+ "</div>",
west.gui.Dialog.SYS_WARNING).setModal(true,
false, {
bg : "../images/curtain_bg.png",
opacity : 0.4
}).addButton(west.gui.Dialog.SYS_OK).show();
return false;
} else {
return true;
}
},
addPatchLang : function(lang) {
try {
if (TWT.isGreasyLang(lang)) {
TWT.langs[lang.short_name] = lang.translation;
TWT.languages.push( {
'short_name' : lang.short_name,
'name' : lang.name,
'translator' : lang.translator,
'version' : lang.version,
'script' : lang.idscript
});
TWT.langs[lang.short_name] = TWT.addMissedTrad(
TWT.langs["en"],
TWT.langs[lang.short_name]);
EventHandler.signal('twt_lang_started_'
+ lang.short_name);
}
} catch (e) {
ErrorLog.log(e);
}
},
checkIsValidLang : function() {
var selLang = TWT.langs[TWT.Settings.checked.miscellaneous.lang] || undefined;
if (!isDefined(selLang)) {
TWT.Options.open('translate');
TWT.Settings.checked.miscellaneous.lang = TWT.info.lang;
TWT.scriptStorage.setItem(
'TWT.Cache.miscellaneous.lang',
TWT.info.lang);
}
},
init : function() {
try {
EventHandler.signal("twt.init"); // Signalement
// pour les
// patchs de
// langues
var that = this;
var timeout = 0;
this.interval = setInterval(
function() {
var loading = false;
if (isDefined(Character.playerId)
&& Character.playerId == 0) {
loading = false;
} else if (!isDefined(ItemManager)) {
loading = false;
} else if (isDefined(ItemManager.initialized)
&& !ItemManager.initialized) {
loading = false;
} else if (isDefined(window.TWDB)) { // null
// !=
// TWDB
// &&
// 'undefined'
// !=
// typeof
// TWDB)
// {
if (!window.TWDB.ClothCalc.ready) { // Attente
// des
// injections
// TWDB
loading = false;
// si TWDB se plante on arrete
// au bout de 20 secondes
timeout++;
if (timeout > 20) {
ErrorLog
.log('Stop interval, chargement de TWDB non possible ?');
TWT.isTWDBHere=true; //(pas forcement pret mais présent)
loading = true;
}
} else {
TWT.isTWDBHere=true;
loading = true;
}
} else {
loading = true;
}
if (loading) {
clearInterval(that.interval);
if (TWT.scriptStorage == null) {
TWT.scriptStorage = new Storage(
"local",
"Storage."
+ TWT.info.idscript);
}
TWT.LANG = TWT.getLanguage();
// TWT.isTWDBHere = isDefined(window.TWDB)
// && window.TWDB.ClothCalc.ready;
TWT.Settings.init();
TWT.checkIsValidLang();
if (!TWT.DEBUG) {
ScriptUpdater.check(
TWT.info.idscript,
TWT.info.version);
// Register
TWT.api();
// TWT.news();
} else {
window.DEBUG = true;
}
TWT.ready = true;
EventHandler.signal('twt.ready');
}
}, 500);
} catch (e) {
ErrorLog.log("Erreur d'initialisation", e);
ErrorLog.showLog();
TWT.ready = false;
}
},
Commons : {
searchMarket : function(id) {
if (!isNaN(id)) {
var objS = ItemManager.get(id);
id = objS.name;
}
MarketWindow.open(Character.homeTown.town_id);
MarketWindow.showTab('buy');
$("div.market-buy .iSearchbox input",
MarketWindow.DOM).val(id);
$('span.iconBut_mpb_refresh', MarketWindow.DOM)
.click();
},
searchMiniMap : function(id) {
var objS = ItemManager.get(id);
MinimapWindow.clickQuicklink(objS.name,
"task-finish-job");
},
addMarketBuyLink : function(itemId) {
var imgMrket = $(
'<img class="TWTcraftitem opmarket" id="'
+ itemId
+ '" style="background: url(\'/images/window/market/market_icons2.png\') repeat-x scroll 0 0 transparent;cursor: pointer;display: inline-block;position:absolute;top:4px;left:3px;width:15px;height:15px;padding:0px;border:0px;margin:0px;background-position: -17px 0;" '
+ 'title="'
+ TWT.LANG.Craft.titleMarket
+ '" />')
.click(
function(e) {
TWT.Commons
.searchMarket(e.target.attributes['id'].value);
});
return imgMrket;
},
addMiniMapIcon : function(itemId) {
var imgMiniMap = $(
'<img class="TWTcraftitem opmap" id="'
+ itemId
+ '" style="cursor: pointer;display: inline-block;position:absolute;top:20px;left:3px;width:15px;height:15px;padding:0px;border:0px;margin:0px;" '
+ 'src="/images/icons/compass.png"'
+ 'title="'
+ TWT.LANG.Craft.titleMinimap
+ '" />')
.click(
function(e) {
TWT.Commons
.searchMiniMap(e.target.attributes['id'].value);
});
return imgMiniMap;
}
},
Settings : {
checked : {},
shouldRefresh : {},
init : function() {
if (!isDefined(TWT.scriptStorage
.getItem('TWT.Cache.Metacol.finished'))) {
// Recuperation des collections restantes
// TWT.MetaCol.init();
} else {
TWT.MetaCol.finished = TWT.scriptStorage
.getItem('TWT.Cache.Metacol.finished');
}
$
.each(
TWT.LANG.Options.checkbox_text,
function(ind1, val) {
TWT.Settings.checked[ind1] = [];
$
.each(
TWT.LANG.Options.checkbox_text[ind1]['options'],
function(ind2,
detail) {
var attended;
// if
// (TWT.MetaCol.finished
// && (ind1
// ==
// 'collection'
// || ind2
// ==
// 'listNeeded'))
// {
// //
// Desactivation
// // des
// //
// options
// // de
// //
// collections
// // si
// // elles
// // sont
// //
// terminées
//
// attended
// = '0';
// } else {
attended = TWT.scriptStorage
.getItem('TWT.Cache.'
+ ind1
+ '.'
+ ind2);
// }
if (!isDefined(attended)) {
if (ind2 == 'lang') {
attended = TWT.info.lang;
} else {
attended = '1';
}
;
TWT.scriptStorage
.setItem(
'TWT.Cache.'
+ ind1
+ '.'
+ ind2,
attended);
}
TWT.Settings.checked[ind1][ind2] = attended;
});
});
TWT.Settings.apply();
},
getValue : function(what) {
return eval('TWT.Settings.checked.' + what);
},
isChecked : function(what) {
return TWT.Settings.getValue(what) == "1";
},
refresh : function(tabOpt) {
var refreshed = false;
try {
for ( var key in tabOpt) {
if (tabOpt.hasOwnProperty(key)) {
var val = tabOpt[key];
if (val != TWT.Settings.getValue(key)) {
TWT.scriptStorage.setItem(
'TWT.Cache.' + key, val);
var det = key.split('.');
TWT.Settings.checked[det[0]][det[1]] = val;
EventHandler.signal(key);
refreshed = true;
}
}
}
;
TWT.LANG = TWT.langs[TWT.Settings
.getValue('miscellaneous.lang')]
|| TWT.langs["en"];
EventHandler.signal('collection.bagupdate');
} catch (e) {
ErrorLog.log('Erreur refresh ', e);
}
return refreshed;
},
apply : function() {
TWT.LANG = TWT.langs[TWT.Settings
.getValue('miscellaneous.lang')]
|| TWT.langs[TWT.info.lang];
TWT.MenuBox.initListener();
TWT.MenuBox.create();
TWT.Injecteur.startListen();
TWT.Logout.initListener();
if (TWT.Settings.isChecked('inventory.doublons')
|| TWT.Settings
.isChecked('inventory.useables')
|| TWT.Settings
.isChecked('inventory.recipe')
|| TWT.Settings.isChecked('inventory.sets')
) {
TWT.Inventaire.create();
} else {
TWT.Inventaire.detach();
}
TWT.CraftHandler.initListener();
TWT.BankFees.initListener();
TWT.AllReportsDelete.initListener();
if (TWT.Settings.isChecked('craft.filterMarket')
|| TWT.Settings
.isChecked('craft.filterMiniMap')) {
TWT.CraftHandler.init();
TWT.CraftHandler.inject();
}
if (TWT.Settings.isChecked('miscellaneous.logout'))
TWT.Logout.create();
if ((!TWT.MetaCol.finished) || TWT.isTWDBHere) {
TWT.Market.initListener();
if (TWT.Settings
.isChecked("twdbadds.filterBuyMarket")
|| TWT.Settings
.isChecked('collection.filterMarket')) {
TWT.Market.init();
TWT.Market.inject();
}
}
if (!TWT.MetaCol.finished) {
TWT.CollectionsHandler.initListener();
if (TWT.Settings
.isChecked('collection.patchsell')
|| TWT.Settings
.isChecked('collection.patchmarket')
|| TWT.Settings
.isChecked('collection.showmiss')) {
// EventHandler.signal('collection.bagupdate');
TWT.CollectionsHandler.init();
TWT.CollectionsHandler.inject();
TWT.CollectionsHandler.attachFilter();
}
}
if (TWT.Settings
.isChecked('miscellaneous.showFees')) {
TWT.BankFees.attach();
}
if (TWT.Settings
.isChecked('miscellaneous.deleteAllReports')) {
TWT.AllReportsDelete.addStyle();
TWT.AllReportsDelete.attach();
}
}
},
Options : {
open : function(window) {
TWT.Options.Windows = wman.open('TWTToolWindow')
.addClass('noreload').setMiniTitle(
TWT.LANG.Options.tab.setting)
.addTab(TWT.LANG.Options.tab.setting,
'TabSetting',
TWT.Options.setting.open).addTab(
'Translations', 'TabTranslate',
TWT.Options.translate.open);
$('<div></div>')
.attr( {
'id' : 'ToolWindowBody'
})
.css( {
'margin-left' : '20px',
'margin-right' : '20px'
})
.appendTo(
'.TWTToolWindow .tw2gui_window_content_pane');
if (window == 'setting') {
TWT.Options.setting.open();
} else {
TWT.Options.translate.open();
}
},
translate : {
open : function() {
var txtArea = '<div style="width:650px;margin-left:15px;margin-top:20px;height:250px;font-size:16px;text-align:justify;padding-bottom:50px;">'
+ '<h4 style="margin-bottom:20px;"><center>The translation\'s system of the TW Collections script has changed</center></h4>'
+ "TW Collections script contains just the french and english languages, if you need a different translation you must install one of the script below and reload the TW page<BR><BR>"
+ "<div style='text-align: center;overflow: auto; height: 165px;font-size:15px;'>";
var langPatchs = TWT.langPatchs;
$.each(langPatchs, function(lang) {
txtArea += "<a target='_blanck' href='"
+ langPatchs[lang].link + "'>"
+ langPatchs[lang].texte + " by "
+ langPatchs[lang].author
+ "</a><br>";
});
txtArea += "</div><br>If you want to create your own translation, you can go to <a target=\'_blanck\' href=\'https://gf.qytechs.cn/fr/scripts/1670-tw-collections\'> the home page of the script</a> for more explanations";
+'</div>';
TWT.Options.Windows.activateTab('TabTranslate')
.$("div.tw2gui_window_content_pane")
.empty();
TWT.Options.Windows
.setTitle("Translations for TW Collections");
TWT.Options.Windows
.appendToContentPane(txtArea);
TWT.Options.Windows.appendToContentPane(TWT
.getDunMp());
}
},
setting : {
open : function() {
TWT.Options.Windows.activateTab('TabSetting')
.$("div.tw2gui_window_content_pane")
.empty();
TWT.Options.Windows
.setTitle(TWT.LANG.Options.tab.setting);
var save_button = new west.gui.Button(
TWT.LANG.Options.saveButton,
TWT.Options.save);
var l0 = TWT.Options.createLanguage();
var l01 = TWT.Options.createMAJ();
var l1 = TWT.Options.getContent();
var l2 = $('<div style="text-align:center;"/>')
.append(save_button.getMainDiv());
TWT.Options.Windows
.appendToContentPane($(
'<div id="divopts" style="font-weight: bolder;width: 683px;left:10px;" class="daily_activity-list"/>')
.append(l0).append(l01).append(
l1).append(l2));
$("#divopts", TWT.Options.Windows.getMainDiv())
.css("width: 674px;");
TWT.Options.Windows.appendToContentPane(TWT
.getDunMp());
$(".fancytable div.trows div.tbody").css( {
"min-height" : "30px"
});
}
},
getContent : function() {
var scrollbar = new west.gui.Scrollpane;
$
.each(
TWT.LANG.Options.checkbox_text,
function(key) {
var table = new west.gui.Table(
true)
.setId(
'paramtwt_table_'
+ key)
.createEmptyMessage(
'! No Parameters !')
.addColumn(
"settings_"
+ key)
.appendToThCell(
"head",
"settings_"
+ key,
TWT.LANG.Options.checkbox_text[key]['title'],
"<span style='font-size:12pt;padding-left:25px;'>"
+ TWT.LANG.Options.checkbox_text[key]['title']
+ "</span>");
$
.each(
TWT.LANG.Options.checkbox_text[key]['options'],
function(i) {
if (i != 'lang') {
var checkB;
if ((TWT.MetaCol.finished && (key == 'collection' || i == 'listNeeded'))
|| ((key == 'twdbadds') && !TWT.isTWDBHere)) {
checkB = $(
"<span title='"
+ TWT.LANG.Options.message.indispo
+ "' style='color: #808080;font-style: italic;font-size:11pt;padding-left:10px;' />")
.append(
TWT.LANG.Options.checkbox_text[key]['options'][i]);
} else {
checkB = new west.gui.Checkbox()
.setTitle(
TWT.LANG.Options.checkbox_text[key]['options'][i])
.setLabel(
"<span style='font-size:11pt;padding-left:10px;'>"
+ TWT.LANG.Options.checkbox_text[key]['options'][i]
+ "</span>")
.setSelected(
TWT.Settings
.isChecked(key
+ '.'
+ i))
.setId(
'setting_'
+ key
+ '_'
+ i)
.getMainDiv();
}
table
.appendRow(
checkB,
'');
}
});
scrollbar.appendContent(table
.getMainDiv());
});
$(scrollbar.getMainDiv()).css( {
"height" : "300px",
"margin-top" : "5px;",
"font-weight" : "normal"
});
return $(scrollbar.getMainDiv());
},
createLanguage : function() {
TWT.Options.lang_box = new west.gui.Combobox;
for ( var i = 0; i < TWT.languages.length; i++) {
TWT.Options.lang_box.addItem(
TWT.languages[i].short_name,
TWT.languages[i].name);
}
TWT.Options.lang_box.select(TWT.Settings
.getValue('miscellaneous.lang'));
var more_button = new west.gui.Button(
TWT.LANG.Options.message.more,
TWT.Options.translate.open, this, this,
TWT.LANG.Options.message.moreTip);
return $("<span />")
.append(
TWT.LANG.Options.checkbox_text.miscellaneous.options.lang
+ " : ").append(
TWT.Options.lang_box.getMainDiv())
.append(more_button.getMainDiv());
},
createMAJ : function() {
TWT.Options.maj_box = new west.gui.Combobox;
TWT.Options.maj_box.addItem(0,
TWT.LANG.Options.update.updnever);
// TWT.Options.maj_box.addItem(3600000,"every
// hour");
// TWT.Options.maj_box.addItem(21600000,"every 6
// hours");
TWT.Options.maj_box.addItem(86400000,
TWT.LANG.Options.update.upddaily);
TWT.Options.maj_box.addItem(604800000,
TWT.LANG.Options.update.updweek);
TWT.Options.maj_box.select(ScriptUpdater
.getInterval());
var maj_button = $('<span title="'
+ TWT.LANG.Options.update.checknow
+ '" style="background-color: transparent; background-attachment: scroll; background-clip: border-box;'
+ 'background-image: url(./images/interface/character/menuicons.jpg); background-position: 0px -250px; '
+ 'cursor: pointer; position: absolute; height: 25px; width: 25px; margin: 4px;" />');
maj_button.click(function(e) {
TWT.Options.Windows.showLoader();
EventHandler.listen("scriptmaj.ok", function() {
new UserMessage(
TWT.LANG.Options.update.updok,
UserMessage.TYPE_SUCCESS).show();
return EventHandler.ONE_TIME_EVENT;
});
ScriptUpdater.forceCheck(TWT.info.idscript,
TWT.info.version);
TWT.Options.Windows.hideLoader();
});
TWT.Options.maj_box.select(ScriptUpdater
.getInterval());
return $("<span style='text-align:left;'/>")
.append(
" "
+ TWT.LANG.Options.update.title
+ " : ").append(
TWT.Options.maj_box.getMainDiv())
.append(maj_button);
},
save : function() {
TWT.Options.Windows.showLoader();
var tblSave = new Array();
$
.each(
TWT.LANG.Options.checkbox_text,
function(key) {
$
.each(
TWT.LANG.Options.checkbox_text[key]['options'],
function(i) {
if (i != 'lang') {
tblSave[key
+ '.'
+ i] = $(
'#setting_'
+ key
+ '_'
+ i)
.hasClass(
"tw2gui_checkbox_checked");
}
});
});
tblSave['miscellaneous.lang'] = TWT.Options.lang_box
.getValue();
ScriptUpdater.setInterval(TWT.Options.maj_box
.getValue());
TWT.Settings.refresh(tblSave);
TWT.Options.Windows.hideLoader();
new UserMessage(TWT.LANG.Options.message.message,
UserMessage.TYPE_SUCCESS).show();
wman.close('TWTToolWindow');
}
},
MenuBox : {
selectbox : null,
initListener : function() {
EventHandler.listen('miscellaneous.popupTWT',
function() {
$('#TWT_Icon').remove();
TWT.MenuBox.create();
});
},
create : function() {
$('#TWT_Icon').remove();
var a = $('<div></div>').attr( {
'class' : 'menulink',
'title' : TWT.LANG.ToolBox.title
}).css( {
'background-position' : '0px -100px'
}).mouseleave(
function() {
$(this).css("background-position",
"0px -100px");
}).click(function(e) {
TWT.MenuBox.open(e);
});
if (TWT.Settings
.isChecked('miscellaneous.popupTWT')) {
a.mouseenter(function(e) {
$(this).css("background-position",
"-25px -100px");
TWT.MenuBox.open(e);
});
}
var b = $('<div></div>').attr( {
'class' : 'menucontainer_bottom'
});
$('#ui_menubar .ui_menucontainer :first').after(
$('<div></div>').attr( {
'class' : 'ui_menucontainer',
'id' : 'TWT_Icon'
}).append(a).append(b));
},
open : function(e) {
if (isDefined(this.selectbox)) {
this.selectbox.items = [];
} else {
this.selectbox = new west.gui.Selectbox(true);
this.selectbox.setWidth(250).addListener(
function(key) {
if (key == 99) {
eval(TWT.menu_callback['openOptions']);
} else {
eval(TWT.menu_callback[key]);
}
});
}
var that = this;
$.each(
TWT.LANG.Options.checkbox_text.box.options,
function(indexB, keyB) {
if (TWT.Settings.isChecked('box.'
+ indexB))
that.selectbox
.addItem(indexB, keyB);
});
this.selectbox.addItem(99,
TWT.LANG.ToolBox.list.openOptions);
this.selectbox.show(e);
this.selectbox.setPosition(e.clientX,
e.clientY - 25);
$(this.selectbox.elContent).mouseleave(function() {
that.selectbox.hide();
});
}
},
MetaCol : {
group : [],
groupSorted : [],
marketEC : {},
all : {},
inProgress : {},
erreur : false,
ready : false,
dirty : true,
getMarketEC : function() {
$
.ajax( {
url : 'game.php?window=building_market&action=fetch_bids&h='
+ Player.h,
type : 'POST',
data : {},
dataType : 'json',
async : false,
success : function(json) {
if (json.error)
return new UserMessage(
json.msg,
UserMessage.TYPE_ERROR)
.show();
var result = json.msg.search_result;
TWT.MetaCol.marketEC = [];
for ( var i = 0; i < result.length; i++) {
var item = ItemManager
.get(result[i].item_id);
if(isDefined(item)){
TWT.MetaCol.marketEC[$
.trim(item.name)] = result[i];
}
}
}
});
},
populateInProgress : function(all) {
try {
var tmpArr = all["achievements"]["progress"];
if (TWT.Settings
.isChecked('collection.gereNewItems')) {
$.merge(tmpArr,
all["achievements"]["finished"]);
}
$
.each(
tmpArr,
function(index, value) {
var itemsImg = [];
var rex = /<span.*?([\s\S]*?)<\/span>/gm;
var match;
while (match = rex
.exec(value.meta)) {
var val = match[1];
var srcI = /<img.*?src="(.*?)"/
.exec(val)[1];
var ident = $
.trim(value.title);
var strManquant = "";
var name = /<img.*?alt="(.*?)"/
.exec(val)[1];
var shoudBuy = (val
.indexOf("locked") > -1);
TWT.MetaCol.inProgress[name] = {
shouldBuy : (val
.indexOf("locked") > -1),
src : srcI,
img : srcI
.match(/\S*.\/(\S*png)/)[1],
group : ident
};
if (shoudBuy) {
if (!isDefined(TWT.MetaCol.group[ident])) {
TWT.MetaCol.group[ident] = [];
}
TWT.MetaCol.group[ident]
.push(name);
}
}
});
var sortable = [];
for ( var group in TWT.MetaCol.group) {
sortable.push( [ group,
TWT.MetaCol.group[group] ]);
}
sortable.sort(function(a, b) {
var x = a[0];
var y = b[0];
if (typeof x === 'string'
&& typeof x === 'string') {
return x.localeCompare(y);
}
return ((x < y) ? -1 : ((x > y) ? 1 : 0));
});
TWT.MetaCol.groupSorted = sortable;
// DEBUG
// TWT.MetaCol.inProgress['Gibus marron'] = {
// shouldBuy : true,
// src : 'dirty',
// img : 'dirty',
// group : 'Gibus'
//
// };
// TWT.MetaCol.group['Gibus'].push('Gibus
// marron');
TWT.MetaCol.dirty = false;
} catch (e) {
this.erreur = "Initialisation des Collections impossible";
ErrorLog.log(e, this.erreur);
ErrorLog.showLog();
}
},
sort : function(array, key) {
return array.sort(function(a, b) {
var x = a[key];
var y = b[key];
return ((x < y) ? -1 : ((x > y) ? 1 : 0));
});
},
init : function() {
if (this.ready == false) {
TWT.MetaCol.setCol = [];
TWT.MetaCol.setsProgress = [];
TWT.MetaCol.groupSet = [];
TWT.MetaCol.all = {};
TWT.MetaCol.group = {};
TWT.MetaCol.inProgress = {};
var that = this;
$
.ajax( {
url : 'game.php?window=achievement&action=get_list&h='
+ Player.h,
type : 'POST',
data : {
'folder' : 'collections',
'playerid' : Character.playerId
},
dataType : 'json',
async : false,
success : function(data_return) {
var all = eval(data_return);
if (all["achievements"]["progress"].length > 0
|| TWT.Settings
.isChecked('collection.gereNewItems')) {
TWT.MetaCol.all = all;
TWT.MetaCol.getMarketEC();
TWT.MetaCol
.populateInProgress(eval(data_return));
TWT.MetaCol.ready = true;
} else {
EventHandler
.signal('collections_finished');
TWT.MetaCol.finished = true;
TWT.scriptStorage
.setItem(
'TWT.Cache.Metacol.finished',
true);
}
}
});
// init des items de sets manquants
var sets = west.storage.ItemSetManager.getAll();
sets = TWT.MetaCol.sort(sets, "name");
for ( var jj = 0; jj < sets.length; jj++) {
var set = sets[jj];
var items = set.getItems();
var detSet = [];
var isFriend = false;
for ( var zz = 0; zz < items.length; zz++) {
var item = ItemManager
.getByBaseId(items[zz]);
if (!isDefined(item)) {
ErrorLog.log("Erreur sur "
+ items[zz] + " "
+ set.name);
} else {
if (item.short
.indexOf("friendset_") == -1) {
var weared = Wear
.carries(item.item_base_id);
var bagItem = Bag
.getItemByItemId(item.item_id);
if (!weared
&& !(isDefined(bagItem))) {
detSet.push(item.name);
TWT.MetaCol.setsProgress[item.name] = item.image;
}
} else {
isFriend = true;
break;
}
}
}
;
if (detSet.length > 0 && !isFriend) {
TWT.MetaCol.setCol.push( [ set.name,
detSet ]);
TWT.MetaCol.groupSet[set.name] = detSet;
}
}
;
}
},
isFinished : function(name) {
if (TWT.MetaCol.finished)
return true;
var item = TWT.MetaCol.inProgress[$.trim(name)];
if (!isDefined(item)) {
return true;
} else if (isDefined(TWT.MetaCol.group[item.group])
&& TWT.MetaCol.group[item.group][0] == true) {
return true;
} else if (!isDefined(TWT.MetaCol.group[item.group])) {
return true;
} else
return false;
},
shouldBuy : function(name) {
var item = TWT.MetaCol.inProgress[$.trim(name)];
var marketed = TWT.MetaCol.marketEC[$.trim(name)];
if (isDefined(item) && !isDefined(marketed)) {
return item.shouldBuy;
} else {
return false;
}
},
getBuyItems : function(name, withbr) {
try {
if (TWT.Settings
.isChecked('collection.showmiss')) {
var br = (withbr) ? "<BR>" : " - ";
var item = TWT.MetaCol.inProgress[$
.trim(name)];
if (isDefined(item)) {
var manquants = TWT.MetaCol.group[item.group];
if (isDefined(manquants)
&& manquants.length > 0) {
var strManq = br;
$.each(manquants,
function(inD, val) {
strManq += "[ " + val
+ " ]" + br;
});
return strManq += " ";
} else {
return "";
}
}
}
} catch (e) {
this.erreur = "Impossible de recenser les items manquants pour "
+ name;
ErrorLog.log(e, this.erreur);
}
return "";
},
remove : function(arr, name) {
name = $.trim(name);
var x, _i, _len, _results;
_results = [];
for (_i = 0, _len = arr.length; _i < _len; _i++) {
x = arr[_i];
if (x != name) {
_results.push(x);
}
}
return _results;
}
},
WindowCollection : {
scrollbar : null,
totalGroup : 0,
cbTrader : null,
cbBid : null,
cbCurBid : null,
getAllAnchors : function(what, group) {
var that = this;
if (!isDefined(what)) {
what = TWT.MetaCol.groupSorted;
group = TWT.MetaCol.group;
}
var textinput = new west.gui.Textfield().maxlength(
12).setPlaceholder(
TWT.LANG.collection.select).setWidth(165);
var anchors = new west.gui.Selectbox();
anchors.setWidth(200);
$(anchors.elContent).css( {
"max-height" : "270px",
"width" : "250px",
"overflow-y" : 'auto'
});
anchors.addItem(TWT.LANG.collection.allOpt,
TWT.LANG.collection.allOpt);
$.each(what, function(ind2, val) {
anchors.addItem(val[0], val[0]);
});
anchors.addItem("99999", " ");
anchors.addListener(function(e) {
var str = "";
textinput.setValue(e);
var arrtmp = {};
if (e == TWT.LANG.collection.allOpt) {
arrtmp = what;
} else {
arrtmp[0] = [ e, group[e] ];
}
that.scrollbar.scrollToTop();
var opt = that.getDiv(arrtmp);
$('#showbox').html(opt);
that.switchOff();
return true;
});
textinput.click(function(e) {
anchors.show(e);
});
return textinput.getMainDiv();
},
initTrader : function() {
var check = -1;
var model = west.window.shop.model
.getCategory('trader');
if (isDefined(model)) {
var timeTrader = model.getRefreshTimeout();
check = timeTrader
- Math.round(new Date() / 1000);
var traderInv = west.window.shop.model._data.inventory.trader;
west.window.shop.model._data.trader_timeout = timeTrader;
}
if (check < 0) {
$
.ajax( {
url : 'game.php?window=shop_trader&mode=index',
type : 'POST',
dataType : 'json',
async : false,
success : function(data_return) {
var all = eval(data_return);
traderInv = all["inventory"]["trader"];
west.window.shop.model._data.inventory.trader = all["inventory"]["trader"];
west.window.shop.model._data.trader_timeout = all["traderTime"];
}
});
}
var traderItems = [];
$.each(traderInv, function(i, item) {
var obj = item.item_data;
if (!isDefined(obj)) {
obj = ItemManager.get(item.item_id);
}
traderItems[obj.name.trim()] = item;
});
return traderItems;
},
getDiv : function(what) {
// var goSearch = function(what) {
// MarketWindow.open(Character.homeTown.town_id);
// MarketWindow.showTab('buy');
// $("div.market-buy .iSearchbox input",
// MarketWindow.DOM).val(what);
// $('span.iconBut_mpb_refresh', MarketWindow.DOM)
// .click();
// };
var traderItems = this.initTrader();
var that = this;
var total = 0;
var divMain = $("<br /><table width='100%' cellpading=10 cellspacing=10 style='font-style: bold; -webkit-user-select: text !important; -khtml-user-select: text !important; -moz-user-select: text !important; -ms-user-select: text !important; user-select: text !important;' />");
$
.each(
what,
function(ind2, valGroup) {
var imod = 0;
//
var bigTR = $('<tr/>');
bigTR.attr('class',
'questlog_entrie');
bigTR.css( {
'color' : '#113355'
});
bigTR.attr('id', $
.trim(valGroup[0]));
bigTR
.append($('<td />')
.append(
$
.trim(valGroup[0]))
);
divMain.append(bigTR);
$
.each(
valGroup[1],
function(ind3,
val) {
var tr = $('<tr style="font-weight:bold;font-style:italic;"></tr>');
var td = $('<td class="achieve_list"/>');
var span = $("<span />");
var img = $("<img class='resizedImage' />");
if (isDefined(TWT.MetaCol.inProgress[val])) {
img
.attr(
'src',
TWT.MetaCol.inProgress[val].src);
} else {
if (isDefined(TWT.MetaCol.setsProgress[val])) {
img
.attr(
'src',
TWT.MetaCol.setsProgress[val]);
}
}
img
.attr(
"title",
TWT.LANG.collection.searchMarket);
img
.css(
"cursor",
"pointer");
img
.click(function() {
TWT.Commons
.searchMarket(val);
});
span
.append(
img)
.append(
" ")
.append(
val);
if (isDefined(traderItems[val
.trim()])) {
tr
.addClass('hasTrader');
var divTrader = $('<img src="'
+ TWT.images.traderImg
+ '" style="cursor: pointer;display: inline-block;" '
+ 'title="'
+ TWT.LANG.collection.atTrader
+ '" />');
divTrader
.click(function() {
west.window.shop
.open()
.showCategory(
"trader");
});
span
.append(
" ")
.append(
divTrader);
}
var item = TWT.MetaCol.marketEC[$
.trim(val)];
if (isDefined(item)) {
var imsell = '';
var sp = '';
if (item.auction_ends_in < 0) {
tr
.addClass('hasCurrentBid');
imsell = $(' <span '
+ 'title="'
+ TWT.LANG.collection.thFetch
.replace(
'%1',
item.market_town_name)
+ '" '
+ 'style="background: url(\'/images/market/fetch.png\') '
+ 'repeat-x scroll 0 0 transparent;cursor: pointer;'
+ 'height: 12px; display: inline-block;width: 12px;"> </span>');
item.isFinished = true;
} else {
tr
.addClass('hasBid');
sp = $(' <span '
+ 'title="'
+ TWT.LANG.collection.thEncours
+ '" '
+ 'style="background: url(\'/images/window/market/market_icons2.png\') '
+ 'repeat-x scroll 0 0 transparent;cursor: pointer;'
+ 'height: 16px; background-position: -16px 0;display: inline-block;width: 16px;"> </span>');
}
span
.append(
' ')
.append(
sp)
.append(
' ')
.append(
imsell)
.click(
function() {
MarketWindow
.open(
Character.homeTown.town_id,
'offer');
MarketWindow
.showTab('offer');
});
}
td
.append(span);
td
.appendTo(tr);
divMain
.append(tr);
imod++;
});
total += imod;
}
);
var s = (total > 1) ? 's' : '';
$('#thliste').text(
TWT.LANG.collection.thText.replace('%2', s)
.replace('%3', s).replace('%1',
total));
return divMain;
},
switchOff : function() {
var that = TWT.WindowCollection;
if (that.cbTrader.isSelected()
|| that.cbBid.isSelected()
|| that.cbCurBid.isSelected()) {
$('tr', $('#rightPane')).css('display', 'none');
if (that.cbTrader.isSelected()) {
$('.hasTrader', $('#rightPane')).css(
'display', '');
}
if (that.cbBid.isSelected()) {
$('.hasBid', $('#rightPane')).css(
'display', '');
}
if (that.cbCurBid.isSelected()) {
$('.hasCurrentBid', $('#rightPane')).css(
'display', '');
}
} else {
$('tr', $('#rightPane')).css('display', '');
}
},
getFiltres : function() {
this.cbTrader = new west.gui.Checkbox(
TWT.LANG.collection.atTrader, '',
this.switchOff)
.setTitle(TWT.LANG.collection.atTraderTitle);
this.cbBid = new west.gui.Checkbox(
TWT.LANG.collection.atBid, '',
this.switchOff)
.setTitle(TWT.LANG.collection.atBidTitle);
this.cbCurBid = new west.gui.Checkbox(
TWT.LANG.collection.atCurBid, '',
this.switchOff)
.setTitle(TWT.LANG.collection.atCurBidTitle);
var cbox = $('<div class="jobs_basisbox"><h3>'
+ TWT.LANG.collection.filters
+ '</h3></div>');
cbox.append(this.cbTrader.getMainDiv(), '<br />',
'<div class="jobs_divider_checkbox" />');
cbox.append(this.cbBid.getMainDiv(), '<br />',
'<div class="jobs_divider_checkbox" />');
cbox.append(this.cbCurBid.getMainDiv(), '<br />');
return cbox;
},
open : function() {
if (!TWT.MetaCol.ready) {
TWT.MetaCol.init();
this.interval = setInterval(function() {
if (TWT.MetaCol.ready)
clearInterval(this.interval);
}, 200);
}
this.Window = wman.open('WindowCollection',
TWT.LANG.collection.listText).setMiniTitle(
TWT.LANG.collection.listText);
this.Window.addTab(TWT.LANG.collection.colTabTitle,
"TabCols", this.openCols);
this.Window.addTab(TWT.LANG.collection.setTabTitle,
"TabSets", this.openSets);
if (window == 'sets') {
this.openSets();
} else {
this.openCols();
}
},
openSets : function() {
TWT.WindowCollection.Window.activateTab('TabSets')
.$("div.tw2gui_window_content_pane")
.empty();
TWT.WindowCollection.Window
.setTitle(TWT.LANG.collection.listSetText);
var rightPane = $('<div id="rightPane"/>').css( {
'height' : '100%',
'left' : '199px',
'position' : 'absolute',
'top' : '15px',
'width' : '450px'
});
var leftPane = $('<div id="leftPane" />').css( {
'position' : 'absolute',
'top' : '15px',
'height' : '100%',
'width' : '190px'
});
var divide = $('<div class="jobs_divider" />');
divide.css( {
'top' : '0px',
'height' : '375px'
});
$('<div id="WindowSetsBody" />')
.append(leftPane)
.append(divide)
.append(rightPane)
.appendTo(
'.WindowCollection .tw2gui_window_content_pane');
TWT.WindowCollection.Window.showLoader();
TWT.MetaCol.getMarketEC();
var showbox = $('<div style="max-height: 370px;"></div>');
this.scrollbar = new west.gui.Scrollpane;
this.scrollbar.scrollToTop();
$(this.scrollbar.getMainDiv()).css( {
'height' : '320px',
'top' : '5px'
});
this.scrollbar
.appendContent($('<div id="showbox" align="center"></div>'));
showbox.append(this.scrollbar.getMainDiv());
var th = $('<div id="thliste" />');
th.css( {
'text-align' : 'center',
'font-weight' : 'bolder'
});
$('#rightPane').append(th);
$('#rightPane').append(showbox);
$('#leftPane').append(
TWT.WindowCollection.getAllAnchors(
TWT.MetaCol.setCol,
TWT.MetaCol.groupSet));
var divMain = TWT.WindowCollection
.getDiv(TWT.MetaCol.setCol);
$('#showbox').html(divMain);
TWT.WindowCollection.Window.hideLoader();
},
openCols : function() {
TWT.WindowCollection.Window.activateTab('TabCols')
.$("div.tw2gui_window_content_pane")
.empty();
TWT.WindowCollection.Window
.setTitle(TWT.LANG.collection.listText);
var rightPane = $('<div id="rightPane"/>').css( {
'height' : '100%',
'left' : '199px',
'position' : 'absolute',
'top' : '15px',
'width' : '450px'
});
var leftPane = $('<div id="leftPane" />').css( {
'position' : 'absolute',
'top' : '15px',
'height' : '380px',
'width' : '190px'
});
var divide = $('<div class="jobs_divider" />');
divide.css( {
'top' : '0px',
'height' : '375px'
});
$('<div id="WindowCollectionBody" />')
.append(leftPane)
.append(divide)
.append(rightPane)
.appendTo(
'.WindowCollection .tw2gui_window_content_pane');
TWT.WindowCollection.Window.showLoader();
TWT.MetaCol.getMarketEC();
var showbox = $('<div style="max-height: 370px;"></div>');
this.scrollbar = new west.gui.Scrollpane;
this.scrollbar.scrollToTop();
$(this.scrollbar.getMainDiv()).css( {
'height' : '320px',
'top' : '5px'
});
this.scrollbar
.appendContent($('<div id="showbox" align="center"></div>'));
showbox.append(this.scrollbar.getMainDiv());
var th = $('<div id="thliste" />');
th.css( {
'text-align' : 'center',
'font-weight' : 'bolder'
});
$('#leftPane').append(
TWT.WindowCollection.getAllAnchors());
$('#leftPane').append(
TWT.WindowCollection.getFiltres());
// $('<div style="text-align: left;"></div>')
// .append(this.getAllAnchors())) ;
$('#rightPane').append(th);
$('#rightPane').append(showbox);
var divMain = TWT.WindowCollection
.getDiv(TWT.MetaCol.groupSorted);
$('#showbox').html(divMain);
TWT.WindowCollection.Window.hideLoader();
}
},
Injecteur : {
divsnif : [],
methodes : [],
winTabInjected : [],
init : function(id, name, callback) {
if (!isDefined(this.methodes[id])) {
this.methodes[id] = {
attached : false,
id : id,
name : name,
callback : callback,
original : eval(name)
};
}
;
},
addWinTabListen : function(who, callback, tab) {
if (!isDefined(TWT.Injecteur.winTabInjected[who
+ '_' + tab])) {
TWT.Injecteur.winTabInjected[who] = {
who : who,
tab : tab,
callback : callback
};
}
},
startListen : function() {
EventHandler
.listen(
'WINDOW_OPENED',
function(e) {
if (isDefined(TWT.Injecteur.winTabInjected[e])) {
var inj = TWT.Injecteur.winTabInjected[e];
TWT.Injecteur.detecteWin(
inj.who,
inj.callback,
inj.tab);
}
});
},
detecteWin : function(who, callback, tab) {
var u = wman.getById(who);
if (isDefined(u)) {
u.addEventListener(TWE('WINDOW_CLOSE'),
function(e) {
u.removeEventListener(
TWE('WINDOW_TAB_CLICK'),
callback(u));
u.removeEventListener(
TWE('WINDOW_CLOSE'),
callback);
}, u, who);
if (isDefined(tab)) {
u
.addEventListener(
TWE('WINDOW_TAB_CLICK'),
function(e) {
if (u.currentActiveTabId == tab) {
callback(u);
}
}, u, who);
} else {
callback(u);
}
}
},
detecteWinOff : function(who) {
TWT.Injecteur.winTabInjected[who] = null;
},
divsniffer : function(who, callback) {
if (isDefined(TWT.Injecteur.divsnif[who])) {
return false;
} else {
$('#windows')
.on(
'DOMNodeInserted',
'.' + who,
function(e) {
try {
var opendiv = e.currentTarget;
if (opendiv.attributes['class'].nodeValue
.indexOf(who) > -1) {
var divBuy = $(
'div[class="'
+ who
+ '"]')
.contents();
callback($(opendiv));
}
} catch (e) {
ErrorLog.log(e);
}
});
TWT.Injecteur.divsnif[who] = 'true';
}
},
divsnifferoff : function(who) {
$('#windows').off('DOMNodeInserted', '.' + who);
// console.log('div sniffer off');
TWT.Injecteur.divsnif[who] = undefined;
},
inject : function(id) {
try {
if (isDefined(this.methodes[id])
&& !this.methodes[id].attached) {
this.methodes[id].attached = true;
return this.methodes[id].callback();
}
;
} catch (e) {
ErrorLog.log(e, 'Erreur injection ' + id);
this.restore(id);
}
},
restore : function(id) {
try {
this.methodes[id].attached = false;
eval("(function ($) {" + this.methodes[id].name
+ '=' + this.methodes[id].original
+ "})($);");
return this.methodes[id].original;
} catch (e) {
ErrorLog.log(e, 'Erreur retauration ' + id);
}
},
injectedMethods : {
injectItemTrader : function() {
west.game.shop.item.view.prototype.injectTWTips = function(
item) {
if (TWT.MetaCol.dirty) {
TWT.CollectionsHandler.refresh();
}
var obj = this.getModel();
var name = $.trim(obj.getName());
var divMain = "<p/>"; // itemTraderFunction.bind(this)();
item.find(".TWTSuccess").remove();
if (TWT.MetaCol.shouldBuy(name)) {
var titre = TWT.MetaCol.getBuyItems(
name, true);
divMain = '<img class="TWTSuccess"'
+ 'style="'
+ TWT.css.styleN
+ '" title="'
+ TWT.LANG.collection.patchsell.title
+ titre + '" src="'
+ TWT.images.cup + '" />';
}
return divMain;
};
var modifiedFunc = west.game.shop.item.view.prototype.render
.toString();
modifiedFunc = modifiedFunc
.toString()
.replace(
'return $item;',
"$item.append(that.injectTWTips($item)); return $item;");
eval("west.game.shop.item.view.prototype.render="
+ modifiedFunc);
},
injectSell : function() {
tw2widget["InventoryItem"].prototype.injectSell = function(
that) {
if (TWT.MetaCol.dirty) {
TWT.CollectionsHandler.refresh();
}
var name = $.trim(that.obj.name);
that.divMain.find('.TWTSuccessSell')
.remove();
if (!TWT.MetaCol.isFinished(name)) {
that.divMain
.append('<img class="TWTSuccessSell"'
+ 'style="'
+ TWT.css.styleT
+ '" title="'
+ TWT.LANG.collection.patchsell.title
+ TWT.MetaCol
.getBuyItems(
name,
true)
+ '"'
+ ' src="'
+ TWT.images.cup
+ '" />');
}
if (TWT.MetaCol.dirty) {
TWT.CollectionsHandler.refresh();
}
return that.divMain;
};
var modifiedFunc = tw2widget["InventoryItem"].prototype.getMainDiv
.toString();
modifiedFunc = modifiedFunc
.replace('return this.divMain;',
"; this.injectSell(this); return this.divMain;");
eval("tw2widget['InventoryItem'].prototype.getMainDiv = "
+ modifiedFunc);
},
injectMarket : function() {
try {
MarketWindow.injectTWTTips = function (obj) {
if (TWT.MetaCol.dirty) {
TWT.CollectionsHandler.refresh();
}
var divMain = '';
if (TWT.MetaCol.shouldBuy($.trim(obj.name))) {
divMain = '<img class="TWTSuccess" style="'
+ TWT.css.style
+ '" title="'
+ TWT.LANG.collection.patchsell.title
+ ' '
+ TWT.MetaCol.getBuyItems(obj.name, false)
+ '"'
+ ' src="'
+ TWT.images.cup
+ '" />';
}
;
return divMain;
};
var modifiedFunc = MarketWindow.getClearName
//tw2widget["TraderItem"].prototype.getMainDiv
.toString();
modifiedFunc = modifiedFunc.replace(/return/g, 'return this.injectTWTTips(obj)+');
eval('MarketWindow.getClearName=' + modifiedFunc);
} catch (e) {
ErrorLog.log(e, 'Erreur inject market');
throw (e);
}
},
injectFilterMarket : function() {
MarketWindow.Buy.updateCategory = function(
category, data) {
// searchbox
var marketUpdFunc = MarketWindow.Buy.updateCategory;
return function(category, data) {
try {
marketUpdFunc.bind(this)(category,
data);
if (!TWT.MetaCol.finished) {
if ($(
'#buyFilterIsCollect.tw2gui_checkbox_checked',
MarketWindow.DOM).length > 0) {
$(
'p.accordion_contentRow:not(:has(.TWTSuccess))',
MarketWindow.DOM)
.css('display',
'none');
}
}
// TWDB add
if (TWT.isTWDBHere
&& TWT.Settings
.isChecked("twdbadds.filterBuyMarket")) {
if ($(
'#buyFilterIsCollect2.tw2gui_checkbox_checked',
MarketWindow.DOM).length > 0) {
$(
'p.accordion_contentRow:not(:has(.TWDBcollector)):not(:has(.TWDBbuyTip))',
MarketWindow.DOM)
.css('display',
'none');
}
}
} catch (e) {
ErrorLog.log(e,
'Erreur update category');
marketUpdFunc.bind(this)(category,
data);
}
};
}();
},
injectBagUpdate : function() {
try {
Bag.updateChanges = function(changes, from) {
var bagFunction = Bag.updateChanges;
return function(changes, from) {
bagFunction.bind(this)(changes,
from);
EventHandler
.signal('inventory_dun_changed');
};
}();
} catch (e) {
ErrorLog.log('Injection Bag updater error',
e);
ErrorLog.show();
}
},
injectTrader : function() {
tw2widget["TraderItem"].prototype.injectTWTips = function() {
if (TWT.MetaCol.dirty) {
TWT.CollectionsHandler.refresh();
}
var name = $.trim(this.obj.name);
this.divMain.find(".TWTSuccess").remove();
if (TWT.MetaCol.shouldBuy(name)) {
this.divMain
.append('<img class="TWTSuccess"'
+ 'style="'
+ TWT.css.styleT
+ '" title="'
+ TWT.LANG.collection.patchsell.title
+ TWT.MetaCol
.getBuyItems(
name,
true)
+ '"'
+ ' src="'
+ TWT.images.cup
+ '" />');
}
return this.divMain;
};
var modifiedFunc = tw2widget["TraderItem"].prototype.getMainDiv
.toString();
modifiedFunc = modifiedFunc
.replace('return this.divMain;',
"this.divMain = this.injectTWTips(); return this.divMain;");
eval("tw2widget['TraderItem'].prototype.getMainDiv ="+ modifiedFunc);
},
injectCraftFilterUpdate : function() {
Crafting.updateResources = function() {
var craftUpdFunc = Crafting.updateResources;
return function() {
var d = $(".TWTcraftitem");
var tbl = {};
$
.each(
d,
function(int, im) {
var path = im.parentElement.parentElement.id;
var chem = "#"
+ path
+ " .item_crafting";
if (!isDefined(tbl[path])) {
tbl[path] = {
'csspath' : chem,
'insert' : im.id
};
}
});
craftUpdFunc.bind(this)();
$
.each(
tbl,
function(oi, obj) {
$(obj.csspath)
.append(
TWT.Commons
.addMarketBuyLink(obj.insert));
// .append(
// TWT.Commons
// .addMiniMapIcon(obj.insert));
});
};
}();
},
injectCraftFilterMarket : function() {
Crafting.addRecipe = function(recipe) {
var craftFunction = Crafting.addRecipe;
return function(recipe) {
craftFunction.bind(this)(recipe);
var recipeObj = ItemManager
.get(recipe.item_id);
$
.each(
recipeObj.resources,
function(ind, obj) {
if (TWT.Settings
.isChecked("craft.filterMarket")) {
$(
"#resources_"
+ recipeObj.item_id
+ "_"
+ obj.item
+ " .item")
.append(
TWT.Commons
.addMarketBuyLink(obj.item));
}
// if (TWT.Settings
// .isChecked("craft.filterMiniMap")) {
// $(
// "#resources_"
// + recipeObj.item_id
// + "_"
// + obj.item
// + " .item")
// .append(
// TWT.Commons
// .addMiniMapIcon(obj.item));
//
// }
//
});
};
}();
}
}
},
CraftHandler : {
initListener : function() {
// EventHandler
// .listen(
// 'craft.filterMiniMap',
// function() {
//
// if (TWT.Settings
// .isChecked('craft.filterMiniMap')) {
//
// TWT.CraftHandler.init();
// TWT.Injecteur
// .inject('craft.filterMarket');
// TWT.Injecteur
// .inject('craft.filterUpdate');
//
// } else {
// if (!TWT.Settings
// .isChecked('craft.filterMarket')) {
// Crafting.addRecipe = TWT.Injecteur
// .restore('craft.filterMarket');
// Crafting.updateResources = TWT.Injecteur
// .restore('craft.filterUpdate');
//
// }
// }
// });
EventHandler
.listen(
'craft.filterMarket',
function() {
if (TWT.Settings
.isChecked('craft.filterMarket')) {
TWT.CraftHandler.init();
TWT.Injecteur
.inject('craft.filterMarket');
TWT.Injecteur
.inject('craft.filterUpdate');
} else {
// if (!TWT.Settings
// .isChecked('craft.filterMiniMap')) {
Crafting.addRecipe = TWT.Injecteur
.restore('craft.filterMarket');
Crafting.updateResources = TWT.Injecteur
.restore('craft.filterUpdate');
// }
}
});
},
init : function() {
TWT.Injecteur
.init(
'craft.filterMarket',
'Crafting.addRecipe',
TWT.Injecteur.injectedMethods.injectCraftFilterMarket);
TWT.Injecteur
.init(
'craft.filterUpdate',
'Crafting.updateResources',
TWT.Injecteur.injectedMethods.injectCraftFilterUpdate);
},
inject : function() {
try {
if (TWT.Settings
.isChecked('craft.filterMarket')
// || TWT.Settings
// .isChecked('craft.filterMiniMap')
) {
TWT.Injecteur.inject('craft.filterMarket');
TWT.Injecteur.inject('craft.filterUpdate');
}
return true;
} catch (e) {
ErrorLog
.log(
"Erreur Injection des meacute;thodes craft",
e);
this.erreur = e;
}
}
},
Market : {
inject : function() {
try {
if (TWT.Settings
.isChecked('collection.filterMarket')
|| TWT.Settings
.isChecked('twdbadds.filterBuyMarket')) {
TWT.Injecteur
.addWinTabListen(
'marketplace',
TWT.Market.addCheckBoxMarket,
'buy');
TWT.Injecteur
.inject('collection.filterMarket');
}
return true;
} catch (e) {
ErrorLog.log(
"Erreur Injection des meacute;thodes ",
e);
this.erreur = e;
}
},
initListener : function() {
EventHandler
.listen(
'collection.filterMarket',
function() {
if (TWT.Settings
.isChecked('collection.filterMarket')
|| TWT.Settings
.isChecked('twdbadds.filterBuyMarket')) {
TWT.Injecteur
.addWinTabListen(
'marketplace',
TWT.Market.addCheckBoxMarket,
'buy'); // TWT.Injecteur.divsniffer('marketplace-buy',
// TWT.Market.addCheckBoxMarket);
TWT.Injecteur
.inject('collection.filterMarket');
} else {
MarketWindow.Buy.updateCategory = TWT.Injecteur
.restore('collection.filterMarket');
// '
// TWT.Injecteur.divsnifferoff('marketplace-buy');'
// TWT.Injecteur.detecteWinOff('marketplace');
}
});
EventHandler
.listen(
'twdbadds.filterBuyMarket',
function() {
if (TWT.Settings
.isChecked('collection.filterMarket')
|| TWT.Settings
.isChecked('twdbadds.filterBuyMarket')) {
TWT.Injecteur
.addWinTabListen(
'marketplace',
TWT.Market.addCheckBoxMarket,
'buy');
// TWT.Injecteur.divsniffer('marketplace-buy',
// TWT.Market.addCheckBoxMarket);
TWT.Injecteur
.inject('collection.filterMarket');
} else {
MarketWindow.Buy.updateCategory = TWT.Injecteur
.restore('collection.filterMarket');
// TWT.Injecteur.divsnifferoff('marketplace-buy');
}
});
},
init : function() {
TWT.Injecteur
.init(
'collection.filterMarket',
'MarketWindow.Buy.updateCategory',
TWT.Injecteur.injectedMethods.injectFilterMarket);
},
addCheckBoxMarket : function(div) {
if ($('#buyFilterIsCollect').length == 0) {
if ((!TWT.MetaCol.finished)
&& TWT.Settings
.isChecked("collection.filterMarket")) {
$('.searchbox').css('margin-top', '-5px');
TWT.Market.insertedCB = new west.gui.Checkbox(
'<img src="'
+ TWT.images.cup
+ '" /> '
+ TWT.LANG.collection.collectionFilterLabel,
false,
function() {
if (this.isSelected()) {
if (isDefined(TWT.Market.insertedCB2))
TWT.Market.insertedCB2
.setSelected(false);
$(
'p.accordion_contentRow:not(:has(.TWTSuccess))',
MarketWindow.DOM)
.css('display',
'none');
} else {
$(
'p.accordion_contentRow:not(:has(.TWTSuccess))',
MarketWindow.DOM)
.css('display', '');
}
});
TWT.Market.insertedCB.setSelected(false);
TWT.Market.insertedCB
.setId('buyFilterIsCollect');
TWT.Market.insertedCB
.setTooltip(TWT.LANG.collection.collectionFilterTip);
$('.searchbox').append(
TWT.Market.insertedCB.getMainDiv());
}
}
if (TWT.isTWDBHere
&& TWT.Settings
.isChecked("twdbadds.filterBuyMarket")) { // TWDB
// add
if ($('#buyFilterIsCollect2').length == 0) {
$('.searchbox').css('margin-bottom', '5px');
TWT.Market.insertedCB2 = new west.gui.Checkbox(
'<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACMAAAAjCAYAAAAe2bNZAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAC/tJREFUeNp0WAlUFFcWvVXdTTc0NIuogLiAgsYtJm4kGk3UqMkYM3GiUXN0TDJGj6NRo7gko+JuTGLiEhN3x2VwGz1x1MQxQeNKiGCjAm4IAooI0ghN02vVvP+7quk2mTqnqKLr1//vv3vfe/eV8GKfvmgeHY7pk8bC6XRDEABRFMEOj0fiV1EUINNVliR+L7BBfocke5+x3/XBRpjzC6MijdrquJhm3uc0QJYbT7aISGdQkA6bdh5Cwa27SE1NhTYrKwvduyShT/f2qLPWQ6MRodVqwFZ3ujzMBPpNQxNKcHs8CNJq+RhmHP8jyHC7ZXru4b+bYhJ6lRYVr/ktJ/u1d5fMqrPZHXxT7GSGqBthl5BgA1asfgCz2YyKigqIQUFBfDEPLcZ2wE6Ph071XmKLecgQ5TlN6FYmV99hV5fLBV14tFCVlbs66UxGn7KHjyf9mpMHnU7Hx7B32OmiudR1yDSItLbX+yI4HmwyWfK6j/7wh95dKDgI4Dt6Gh7vOO8bQYZgmtg45dbqL/pbfsjA8NimqVsOHG/BFlHnYie7lxS4JAVa9RDZVBxLzglZ8b2ykDpI8E7o98g7XhaUCcnlMW2SS3fsXll15izcBGXSjZvNtA5H2uETpxFqDPHuXFC4SO+oG+fz+tYRoLhNUrAUfGawe3WsAK9nBHh/Y6ckk+sJHkOTWK01t2Bb4RdrwrTBIRAMelhy8/F2SNB7h06eHVhR+RgaMoaNVwNEUHjjf4jqjepCQXG9vw/UKGCTyWj0osxIGxJGTBdXXJ01p6+rzgrotDyyJOKKmHFe81p88/VfbT8YrqfI8QIqQKsROVSM8P7uFhvvGZn8/mUekPwGiizKtD6icPppdAiNbjXqxpLlqTXmqxBDCA56R2TQkVG1VdXompP7THSQbuPOf/8IU5gxcLMyfBz1GiP4k1H2EpLBo5ilhiPPNbLkcyMbERLT6tniLdu3lO1JhyY0lBtRTc/qTCYIzKBQIx5mX8Wrt26NleobtqUfzwhmaYNTQQ6wIxAm1VxfYvJ5RCB3ChxGrcY7ETkZwdHNYh+f+uVQwbKVJjEkGAKNk5wu2N9+A1Gj34RktUGgvMSelf98Ds+fPvt+eFVNxr6T57uXlj/iCc8boX7GyAp2Ag9B+IGkklkI5BB5RxceabLmFR/OnZHaTqK8IRB8DJ46um97PR9RKd1Rn9gKMiU8vghF06Mr12DauiulS+Hd8zlXbiw5ffm6yU7Gq9ne5xlRsVA9/agb6ElmiCki2FHy+IB58kcpbksN5Rc9NA4nbDRp2fhRyHVLKN99CM3nT4ccF0vkdnKva4KDYautQ83OdEPbo8cWGG4XZf18wTyu+olVCDDGW1vkgFCGIASkb58h5bUHciZ9NKS+pARagsBCu8t7rgtE4sKA5ASMSN+I+1GRqKeFwwf15d4ReZQSsSnCZCK55VoBsPbb9oknTu565/WBmSHG4I4eBqkvrP2znBJJ3BBOfw90EVEme0nVkZzxE4dZ7xYhyGgE7HbYB7yMQWuWoG7YYFz+8juguAwjp05El5d6o8WYt1AbHweJFlIjUKb7UKKFnbz2ZW6Ba+naLQ8abHZekjQ6qk0xzZpg3DvDeGYU0Fi1eXalSQzRzeOs+fe+z54w6RVbcTH0pjBYyRCLqEECXQ1lD9B1ynuoahmH/MxsSJWVEC5mo+Xg/vB06gTb6fNMAkCgBGkk/uQnJmD5I0veuZLy2TpRXNxgdzwcOnQotP6JjS0uKt6QPG5otEEIaR7/XNWps/tyZ8xJdlZXI5iwryFoyocMRnSXDniycy/qdu/Ho6t5eGHxfGDIK5Cp9p15byYsldWIpIyMmhpoqXZ5SFIciGzi2pR5dXeXdq1XXPjP1sLln2/G9z+ceSq0fdFDhrjJkOAwhMUljb6/Y3+GeeKUZHftE+gJmidkSPHgAejVNgEdb99Bsxd6UxYOhvNuMbJHf4Cyucugr65FyjdfwnLZjMJN20DJBXVJiVgqaR58dyFn2sz3R07+5ejWwp49usJO5FcPLfxCmMNCXjLGttHBISwzT5895/7edIikO0hrQCJIPB2S8caH76LmTiFOfLMZho4d0Ilgc9RayZNalP9wCvW2BkTGtwTu36cMHYWCpLZYfrv0V4Ijdf/mFedGDBsEG41x1Nt+n/Q4RyU3gvQGmFo907HhZsnPmSNGzrm391/QUhbV0SK1lEMamkUj6l4JKmenIS6xNVJ2rUffMSMhmyJQOqg/ZOJeUFgobJevoCx9P4zhJmQkt8P0y3n745pHjzp3dOu5P78+AI+ra7j+eVqS8KTnoFxgiIqBsWnC1HubdlwkQ16yXL0ObXg4tLLMhZT1r6M5H2yWJ7AW3Ebe/JVI6dwBTqMWDym6WuiDEEnweRrs3N2hFEVH4uI8y8/lrHl7cL+J/z30bUlC6xZcTQZSw88Yg0Gv7dk75QX3nYqffhszbv21BYvCOWfII7zWEEcK9Xq0KbqHzn8ahOqhA9FAiU7Ov4lLw8chqX0iolYvREP7jhBLyqkmURogD+1s0tSx4dzlRbMnjZ2357sVdSxCbWSoSgv/zOszJqFNq+iE5lEbz3w6b2D9+QvQEVSSluoGhS2TifXvjEDn7V+htE1LXNyyF8l/GwPt2BEkH92wF5Xg2tRP0KPbc+hAxlp+yoChVTy2RzZp+OeF7PlL5k5e8VnadJfd4SDp6g6AxSPJT0kVQGO3O63HTp0+ni1qPRFdO3Zua9AbBIJCUopBC8K2U9+eSJkwCrr4eOiowLXu1wt5+behvVcKkRapOHYSTy5dQmiLWOyJbmbfdT77k1WLpn89Z9oE1FLBZBleoo0xgcUMYoHC9IyBoN13+EfcKSoFyzOikxbr06tb2aqF0+ccs9T1/4fdc+hR7+4IJfIJxKW66wXImjwXxZlXEErG6c0FaBlmwisbVgDTJvPMKVOSM1EOIY64d5zPXrJywbS1c2d+4OWHKgsFf3EgeA2DEKhnZKWnGTa4H35KX5c7/M1XRy6+UTzm+8TEYmNyIpcNblJwxbMXw1lVCXNhIY6O+hC6i2Z0cLhJKlhhJH5ltGqFdWey1qb+ffzn82ZNlOsp1NWFmbzwCX14xbkkyb+PJtUwK+2C3c6eMg5HtqzcZ7bZ+39jNB0P6dkNVN7QUFiE4rlL0WnAS4gYPRLmGfNQtHUbDBT2+RS+yzNz08e+NSSNOOJmhkgKIRgkslr4BPjE2x8SWC2OTM+wELZYapHYJh6HN68qiW3b+i+7TBGHTBTCAhU3J3GpcsN26I6egExV2kBRVkOZdVlB0aUenZJSN3+90Npgd/LeCIGK0gcL106Bzc4fyE5FLjCXOihFs+7x67SZDmNM0w8uJbW7ZmoSBYGysD3HjCfXqTmjaJPjYvBFje0+jf94z7fL7+tI97J3GQ5q06fKV05apQNhB5uftywBGlj1IFN6ijDljCfjbJT+F06bUHvdLU229unlElxuUv86LkUNVH0PmyJcl/JuL9y5YXEm8ybLI4KiuEW16ZPh68vYe0y3qJ5SZW6gMbxQy0pP5GW/RvDuhin68W8NuXhSp18f/mxHqk8OBNOObya0xqZM845PZry/642hL6O2rt77/lPwcMEmeY3jHQhr5vwMeaqjVHbCc0Bjjva+IMBa34B+vbqhaXzcssIOSSVGgsIZH4t1RQ+uPd8pedmnsya6a0nVqS2wr0NVvONROk4Z/kJfaXGV6HrKM4KiZ1TpqQzkTRt4mR87fJDlioRF4a/2x0GIjpslD5ZsXD2/lLUeqijjHaOfY9iGJCXT8tZWUGHxNnIaMZDMWrU7MFK1lSmbuogXPJH5tbhu+i0xuQ1efrHHnoMXsj7eX3Dmxmf/mHqkd//ekAmeCJIQXqi9XFM9zaKTkZp9iWCphvNSUvIMjWEaWqN8heDGuFxOFNy4gwVL13KtqhjOB6vtCjNQr9fR1eNet/PgBHuD01lRUelZMH+Vb5xiTSMUsncOxju2oOD7WOCFj5UInU6D3Gs3+HAuKdLS0kgVkixQhM4ffPXw8YBFg5F2w3bNxqtftv7f4Z1LaGSG3Cj+1TaXzce8N3z4cPxPgAEA6JcjmcJQzpoAAAAASUVORK5CYII="'
+ ' style="width:18px;height:18px"/>'
+ TWT.LANG.twdbadds.buyFilterLabel,
false,
function() {
if (this.isSelected()) {
if (isDefined(TWT.Market.insertedCB))
TWT.Market.insertedCB
.setSelected(false);
$(
'p.accordion_contentRow:not(:has(.TWDBcollector)):not(:has(.TWDBbuyTip))',
MarketWindow.DOM)
.css('display',
'none');
} else {
$(
'p.accordion_contentRow:not(:has(.TWDBcollector)):not(:has(.TWDBbuyTip))',
MarketWindow.DOM)
.css('display', '');
}
});
TWT.Market.insertedCB2.setSelected(false);
TWT.Market.insertedCB2
.setId('buyFilterIsCollect2');
TWT.Market.insertedCB2
.setTooltip(TWT.LANG.twdbadds.buyFilterTip);
$('.searchbox')
.append(
TWT.Market.insertedCB2
.getMainDiv());
}
}
$('.searchbox').css('margin-bottom', '10px');
}
},
CollectionsHandler : {
interval : 0,
erreur : false,
ready : false,
saveFunction : {},
attachFilter : function() {
// this.detachFilter();
TWT.CollectionsHandler.init();
},
callRefresh : function(e) {
TWT.MetaCol.dirty = true;
window.setTimeout(function() {
TWT.CollectionsHandler.refresh();
}, 500);
},
hasOneChecked : function() {
var boolC = TWT.Settings
.isChecked('collection.filterMarket')
|| TWT.Settings
.isChecked('collection.patchtrader')
|| TWT.Settings
.isChecked('collection.patchsell')
|| TWT.Settings
.isChecked('collection.patchmarket')
|| TWT.Settings
.isChecked('collection.showmiss')
|| TWT.Settings
.isChecked('collection.listNeeded');
return boolC;
},
initListener : function() {
try {
EventHandler
.listen(
'collection.bagupdate',
function() {
if (TWT.CollectionsHandler
.hasOneChecked()) {
TWT.Injecteur
.init(
'collection.patchtbagupdate',
'Bag.updateChanges',
TWT.Injecteur.injectedMethods.injectBagUpdate);
TWT.Injecteur
.inject('collection.patchtbagupdate');
} else {
Bag.updateChanges = TWT.Injecteur
.restore('collection.patchtbagupdate');
EventHandler
.unlisten(
'inventory_dun_changed',
TWT.CollectionsHandler.callRefresh);
}
});
EventHandler
.listen(
'collection.gereNewItems',
function() {
TWT.MetaCol.ready = false;
TWT.MetaCol.init();
this.interval = setInterval(
function() {
if (TWT.MetaCol.ready)
clearInterval(this.interval);
}, 200);
});
EventHandler
.listen(
'collection.patchtrader',
function() {
if (TWT.Settings
.isChecked('collection.patchtrader')) {
if (!TWT.MetaCol.ready)
TWT.MetaCol.init();
TWT.Injecteur
.inject('collection.patchitemtrader');
TWT.Injecteur
.inject('collection.patchtrader');
} else {
TWT.Injecteur
.restore('collection.patchitemtrader');
TWT.Injecteur
.restore('collection.patchtrader');
}
});
EventHandler
.listen(
'collection.patchsell',
function() {
if (TWT.Settings
.isChecked('collection.patchsell')) {
if (!TWT.MetaCol.ready)
TWT.MetaCol.init();
document.styleSheets[0]
.deleteRule(999);
TWT.Injecteur
.inject('collection.patchsell');
} else {
TWT.Injecteur
.restore('collection.patchsell');
$('.TWTSuccessSell')
.css('display',
'none');
document.styleSheets[0]
.insertRule(
".TWTSuccessSell { display:none; }",
999);
}
});
EventHandler
.listen(
'collection.patchmarket',
function() {
if (TWT.Settings
.isChecked('collection.patchmarket')) {
if (!TWT.MetaCol.ready)
TWT.MetaCol.init();
TWT.Injecteur
.inject('collection.patchmarket');
} else {
TWT.Injecteur
.restore('collection.patchmarket');
}
});
} catch (e) {
ErrorLog.log(
'Erreur listener CollectionHandler', e);
throw e;
}
},
init : function() {
EventHandler.listen('inventory_dun_changed',
TWT.CollectionsHandler.callRefresh);
// if (ItemManager.isLoaded()) {
// TWT.CollectionsHandler.initInject();
//
// }else{
// EventHandler.listen('itemmanager_loaded',
// function(){
//
// TWT.CollectionsHandler.initInject();
// TWT.CollectionsHandler.inject();
//
// });
//
// }
// }
// ,
// initInject : function(){
TWT.Injecteur.init('collection.patchmarket',
'MarketWindow.getClearName',
TWT.Injecteur.injectedMethods.injectMarket);
TWT.Injecteur
.init(
'collection.patchsell',
'tw2widget["InventoryItem"].prototype.getMainDiv',
TWT.Injecteur.injectedMethods.injectSell);
TWT.Injecteur
.init(
'collection.patchtbagupdate',
'Bag.updateChanges',
TWT.Injecteur.injectedMethods.injectBagUpdate);
TWT.Injecteur.inject('collection.patchtbagupdate');
TWT.Injecteur
.init(
'collection.patchitemtrader',
'west.game.shop.item.view.prototype.render',
TWT.Injecteur.injectedMethods.injectItemTrader);
TWT.Injecteur
.init(
'collection.patchtrader',
'tw2widget["TraderItem"].prototype.getMainDiv',
TWT.Injecteur.injectedMethods.injectTrader);
// }
},
refresh : function() {
var items = Bag.items_by_id;
$
.each(
items,
function(ind, val) {
$
.each(
val,
function(ind2,
val2) {
if (val2) {
var name = $
.trim(val2.name);
var item = TWT.MetaCol.inProgress[name];
if (isDefined(item)) {
item.shouldBuy = false;
var manquants = TWT.MetaCol.group[item.group];
if (isDefined(manquants)) {
TWT.MetaCol.group[item.group] = TWT.MetaCol
.remove(
manquants,
name);
if (TWT.MetaCol.group[item.group].length == 0) {
TWT.MetaCol.group[item.group][0] = true;
}
}
}
}
});
});
TWT.MetaCol.dirty = false;
},
inject : function() {
try {
TWT.MetaCol.init();
if (!TWT.MetaCol.finished) {
if (TWT.MetaCol.ready) {
if (TWT.Settings
.isChecked('collection.patchtrader')) {
TWT.Injecteur
.inject('collection.patchtrader');
TWT.Injecteur
.inject('collection.patchitemtrader');
}
if (TWT.Settings
.isChecked('collection.patchsell')) {
TWT.Injecteur
.inject('collection.patchsell');
}
if (TWT.Settings
.isChecked('collection.patchmarket')) {
TWT.Injecteur
.inject('collection.patchmarket');
}
}
}
return true;
} catch (e) {
ErrorLog
.log(
"Erreur Injection des meacute;thodes collections ",
e);
this.erreur = e;
console
.log("TWT : Erreur injection collections");
console.log(e);
}
}
},
Inventaire : {
create : function() {
TWT.Inventaire.attach();
},
attach : function() {
EventHandler.listen("inventory_ready",
TWT.Inventaire.addCheckBoxBag, "dblbag");
},
detach : function() {
EventHandler.unlisten("inventory_ready",
TWT.Inventaire.addCheckBoxBag, "dblbag");
$('#bagFilterIsCollect', Inventory.DOM).remove();
},
searchDoublons : function(filtre) {
var searchTxt = "";
var searchVal = $('#inventory_search',
Inventory.DOM).val();
if (searchVal.lenght == 0
|| Inventory.category != 'set') {
searchVal = ".*";
} else {
searchTxt = (searchVal.lenght == 0) ? "" : " ("
+ searchVal + ")";
}
var res = Bag.search(searchVal);
$('#inventory_search', Inventory.DOM).val("");
var doubles = [];
var sell = 0;
$
.each(
res,
function(ind1, item) {
if (item.obj.type != 'yield'
&& ($
.inArray(
item
.getType(),
Inventory
.getCategoryTypes(Inventory.category)) > -1
|| Inventory.category == 'set' || Inventory.category == 'new')) {
var count = item.getCount();
// Si porté -> doublon donc
// on ajoute 1 item
var weared = Wear
.carries(item.obj.item_base_id);
if (weared) {
count += 1;
}
if (count > 1) {
switch (filtre) {
case 'upgradeable':
if (count<3 || !item.obj.upgradeable ) {
item = null;
}
break;
case 'nosets':
if (item.obj.set != null) {
item = null;
}
break;
case 'sellable':
if (!item.obj.sellable) {
item = null;
}
break;
case 'auctionable':
if (!item.obj.auctionable) {
item = null;
}
break;
default:
break;
}
if (isDefined(item)) {
doubles.push(item);
sell += (item
.getSellPrice())
* (count - 1);
}
}
} else {
}
});
var lastCat = Inventory.category;
Inventory.showSearchResult(doubles || []);
if (TWT.Settings.isChecked('inventory.sum')) {
$('#sumsearch', Inventory.DOM).remove();
$('#bagFilterIsCollect', Inventory.DOM)
.after(
"<div title='"
+ sell
+ TWT.LANG.Doublons.sellGain
+ searchTxt
+ "' id='sumsearch' style='text-align: center; position: inherit; z-index: 4;"
+ "font-weight: bold; color: black; font-size: 11px; width:"
+ "100%;top:362px; '>"
+ sell
+ TWT.LANG.Doublons.sellGain
+ "</div>");
}
},
searchSpeciales : function(what) {
$('#inventory_search', Inventory.DOM).val(what);
var res = Bag.search(what);
Inventory.showSearchResult(res || []);
return res;
},
getDetSearchBox : function() {
if (isDefined(west.storage.ItemSetManager)) {
var selSets = new west.gui.Selectbox();
selSets.setWidth(200);
$(selSets.elContent).css( {
"max-height" : "270px",
"width" : "250px",
"overflow-y" : 'auto'
});
TWT.selAdded = [];
selSets.addItem('all',
TWT.LANG.collection.allOpt);
selSets.addItem('current',
TWT.LANG.Doublons.current);
selSets.addItem('upgradeable',
TWT.LANG.Doublons.upgradeable);
selSets.addItem('nosets',
TWT.LANG.Doublons.noset);
selSets.addItem('sellable',
TWT.LANG.Doublons.sellable);
selSets.addItem('auctionable',
TWT.LANG.Doublons.auctionable);
selSets.addListener(function(e) {
switch (e) {
case 'all':
$('#inventory_search', Inventory.DOM)
.val("");
break;
default:
break;
}
TWT.Inventaire.searchDoublons(e);
return true;
});
return selSets;
}
return selSets;
},
getSetNamesBox : function(setsCache) {
if (isDefined(west.storage.ItemSetManager)) {
var selSets = new west.gui.Selectbox();
selSets.setWidth(200);
$(selSets.elContent).css( {
"max-height" : "270px",
"width" : "250px",
"overflow-y" : 'auto'
});
TWT.selAdded = [];
selSets.addItem('setitems',
TWT.LANG.collection.allOpt);
$
.each(
setsCache,
function(ind2, item) {
var itemsSet = west.storage.ItemSetManager
.get(item.obj.set);
if (!isDefined(TWT.selAdded[itemsSet.name])) {
TWT.selAdded[itemsSet.name] = true;
selSets.addItem(
itemsSet.name,
itemsSet.name);
}
});
selSets.addListener(function(e) {
TWT.Inventaire.searchSpeciales(e);
return true;
});
return selSets;
}
return selSets;
},
addCheckBoxBag : function(div) {
if ($('#bagFilterIsCollect', Inventory.DOM).length == 0) {
var setsCache = Bag.search('setitems');
setsCache.sort(function(a, b) {
var x = west.storage.ItemSetManager
.get(a.obj.set).name;
var y = west.storage.ItemSetManager
.get(b.obj.set).name;
if (typeof x === 'string'
&& typeof x === 'string') {
return x.localeCompare(y);
}
return ((x < y) ? -1 : ((x > y) ? 1 : 0));
});
var selBox = TWT.Inventaire
.getSetNamesBox(setsCache);
var spanD = $('<div id="bagFilterIsCollect" '
+ 'style="display: flex; position: inherit;"/>');
if (TWT.Settings
.isChecked('inventory.doublons')) {
var insertedCB = $(
"<span title='"
+ TWT.LANG.Doublons.tip
+ "' id='inventory_doublons'"
+ '" style="cursor: pointer; position: relative; margin-right: 4px;" />')
.append(
"<img class='tw2gui-iconset tw2gui-icon-dollar' "
+ " src='./images/tw2gui/pixel-vfl3z5WfW.gif' alt='' title=''>");
insertedCB.click(function(e) {
$('#sumsearch').remove();
TWT.Inventaire.getDetSearchBox()
.show(e);
});
// insertedCB.click(TWT.Inventaire.searchDoublons);
spanD.append(insertedCB);
}
if (TWT.Settings
.isChecked('inventory.useables')) {
var insertedCB2 = $('<span title="'
+ TWT.LANG.Doublons.tipuse
+ '" id="inventory_useables"'
+ '" style="cursor: pointer; position: relative; margin-right: 4px;">'
+ "<img class='tw2gui-iconset tw2gui-icon-consumable' "
+ " src='./images/tw2gui/pixel-vfl3z5WfW.gif' alt='' title=''></span>");
insertedCB2.click(function() {
$('#sumsearch').remove();
TWT.Inventaire
.searchSpeciales('useable');
});
spanD.append(insertedCB2);
}
if (TWT.Settings.isChecked('inventory.recipe')) {
var insertedCB3 = $('<span title="'
+ TWT.LANG.Doublons.tiprecipe
+ '" id="inventory_recipe"'
+ '" style="position: relative;background-color: transparent; background-attachment: scroll; background-clip: border-box; cursor: pointer; bottom: inherit; " >'
+ '<img src="./images/items/recipe/recipe_smith.png" width="20px" height="20px" /></span>');
insertedCB3.click(function() {
$('#sumsearch').remove();
TWT.Inventaire
.searchSpeciales('recipe');
});
spanD.append(insertedCB3);
}
if (TWT.Settings.isChecked('inventory.sets')) {
var insertedCB4 = $('<span title="'
+ TWT.LANG.Doublons.tipsets
+ '" id="inventory_sets"'
+ '" style="cursor: pointer; position: relative; margin-right: 4px;" >'
+ "<img style='cursor: pointer;' class='tw2gui-iconset tw2gui-icon-shirt' "
+ " src='./images/tw2gui/pixel-vfl3z5WfW.gif' alt='' title=''></span>");
insertedCB4.click(function(e) {
$('#sumsearch').remove();
selBox.show(e);
});
spanD.append(insertedCB4);
}
$('.filters', Inventory.DOM).before(spanD);
}
}
},
Logout : {
initListener : function() {
EventHandler
.listen(
'miscellaneous.logout',
function() {
$('#TWTOOL_Logout').remove();
if (TWT.Settings
.isChecked('miscellaneous.logout')) {
TWT.Logout.create();
}
;
});
},
create : function() {
var a = $('<div></div>').attr( {
'class' : 'menulink',
'title' : TWT.LANG.Logout.title
}).css(
{
'background-image' : 'url('
+ TWT.images.logout + ')'
}).mouseenter(
function() {
$(this).css("background-position",
"-25px 0px");
}).mouseleave(function() {
$(this).css("background-position", "0px 0px");
}).click(function() {
TWT.Logout.logout();
});
var b = $('<div></div>').attr( {
'class' : 'menucontainer_bottom'
});
$('<div></div>').attr( {
'class' : 'ui_menucontainer',
'id' : 'TWTOOL_Logout'
}).append(a).append(b).appendTo('#ui_menubar');
},
logout : function() {
// Player.logout();
$(window.location).attr(
'href',
'game.php?window=logout&action=logout&h='
+ Player.h);
}
},
BankFees : {
attach : function() {
TWT.Injecteur.divsniffer('wood-footer',
TWT.BankFees.init);
// TWT.Injecteur.addWinTabListen(/^bank-\d+/,TWT.BankFees.init,'balance');
},
detach : function() {
TWT.Injecteur.divsnifferoff('wood-footer');
// TWT.Injecteur.detecteWinOff(/^bank-\d+/);
},
initListener : function() {
EventHandler
.listen(
'miscellaneous.showFees',
function() {
if (TWT.Settings
.isChecked('miscellaneous.showFees')) {
TWT.BankFees.attach();
} else {
TWT.BankFees.detach();
}
});
},
calcFrais : function(montant, taux) {
tauxPourc = Number(taux.replace(/% ?/g, ""));
var fraisArrondi = Math
.ceil((montant * tauxPourc) / 100);
var txtFrais = TWT.LANG.fees.tipText.replace('%1',
tauxPourc).replace('%2', fraisArrondi);//
return txtFrais;
},
init : function(e) {
var depotLink = $('.wood-footer:first .deposit');
if (depotLink && (!depotLink.attr('id'))) {
var frais = $(
'div.town_data_value div.bank-fee')
.text();
var numFrais = 1 + 0.01 * Number(frais.replace(
/% ?/g, ""));
depotLink.attr('id', 'depo_changed');
var balance = $('.wood-footer:first #tb_balance_input_'
+ BankWindow.townid);
var that = this;
balance.mouseover(function() {
var fraisArrondi = Math
.ceil((balance.val() - balance
.val()
/ numFrais));
var txtFrais = TWT.BankFees.calcFrais(
balance.val(), frais); //
balance.attr('title', txtFrais);
});
var amount = $('#amount');
if (amount) {
amount.mouseover(function() {
var txtFrais = TWT.BankFees.calcFrais(
amount.val(),
BankWindow.Transfer.fee
.toString());
amount.attr('title', txtFrais);
});
}
}
}
},
AllReportsDelete : {
addStyle : function() {
var css = ".window_AllReportsDelete .window_inside { width:540px; position:absolute; left:5px; top:2px; }"
+ ".window_AllReportsDelete .cell_what { width:170px; } "
+ ".window_AllReportsDelete .tbody .cell_what { padding-left:6px; } .window_AllReportsDelete .tbody .row { left:0px; }"
+ ".window_AllReportsDelete .cell_progress { text-align:center; width:330px; } "
+ "div#ui_menubar { z-index: 100000;}";
$(
'<style id="TWTOOL_CSS" type="text/css" >'
+ css + '</style>')
.appendTo('head');
},
saveFunction : MessagesWindow.Report._initContent,
attachedFunction : '',
attach : function() {
MessagesWindow.Report._initContent = function(data) {
var msgFunc = MessagesWindow.Report._initContent;
return function(data) {
msgFunc.bind(this)(data);
$('.actionprompt',
MessagesWindow.Report.DOM)
.append(
"<a href='javascript:TWT.AllReportsDelete.init();'>"
+ TWT.LANG.AllReportsDelete.button
+ "</a>");
};
}();
TWT.AllReportsDelete.attachedFunction = MessagesWindow.Report._initContent
.toString();
EventHandler.listen('report.dom.created',
TWT.AllReportsDelete.addButton);
},
detach : function() {
MessagesWindow.Report._initContent = TWT.AllReportsDelete.saveFunction;
EventHandler.unlisten('report.dom.created',
TWT.AllReportsDelete.addButton);
},
initListener : function() {
EventHandler
.listen(
'miscellaneous.deleteAllReports',
function() {
if (TWT.Settings
.isChecked('miscellaneous.deleteAllReports')) {
TWT.AllReportsDelete
.attach();
} else {
TWT.AllReportsDelete
.detach();
}
});
},
init : function() {
new west.gui.Dialog(
TWT.LANG.AllReportsDelete.userConfirm,
TWT.LANG.AllReportsDelete.confirmText, "ok")
.setModal(true, false, {
bg : "../images/curtain_bg.png",
opacity : 0.4
})
.addButton(
TWT.LANG.AllReportsDelete.deleteYes,
function() {
TWT.AllReportsDelete.status_close = true;
$('div.tw2gui_dialog_text')
.html(
'<p>Suppression en cours.....<br /></p><span id="sppage" />');
$('div.tw2gui_dialog_actions')
.css( {
'display' : 'none'
});
TWT.AllReportsDelete
.delete_all();
})
.addButton(
TWT.LANG.AllReportsDelete.deleteNo,
function() {
TWT.AllReportsDelete.status_close = false;
}).show();
},
reports_id : [],
progress_page : 1,
delete_all : function() {
var that = this;
for ( var i = 0; i < MessagesWindow.Report.pageCount; i++) {
$('#sppage')
.html(
'<p>Page '
+ that.progress_page
+ '/'
+ MessagesWindow.Report.pageCount
+ '</p>');
$
.ajax( {
url : 'game.php?window=reports&action=get_reports&h='
+ Player.h,
type : 'POST',
data : {
'folder' : MessagesWindow.Report.currentFolder,
'page' : that.progress_page
},
dataType : 'json',
async : false,
success : function(data_return) {
for ( var j = 0; j < data_return['reports'].length; j++) {
that.reports_id
.push(data_return['reports'][j]['report_id']);
}
that.progress_page += 1;
}
});
}
var that = this;
$
.ajax( {
url : 'game.php?window=reports&action=delete_reports&h='
+ Player.h,
type : 'POST',
data : {
'deleted' : 'false',
'reports' : TWT.AllReportsDelete.reports_id
.join(", ")
},
dataType : 'json',
async : false,
success : function(data_return) {
if (data_return['error'])
that.status_close = false;
}
});
MessagesWindow.showTab('report');
}
},
getDunMp : function() {
if (Game.worldName == 'Monde 1'
|| Game.worldName == 'Monde 3'
|| Game.worldName == 'Alamogordo'
|| Game.worldName == 'Death Valley') {
return "<div style='text-align:right;padding-right: 5px; padding-top: 15px;'><a href=\"javascript:MessagesWindow.open(\'telegram\', {insert_to: \'Dun\'})\">by Dun</a></div>";
} else {
if (Game.worldName == 'World 1') {
return "<div style='text-align:right;padding-right: 5px; padding-top: 15px;'><a href=\"javascript:MessagesWindow.open(\'telegram\', {insert_to: \'Duncol\'})\">by Dun</a></div>";
}
return "";
}
;
},
api : function() {
var TWApi = TheWestApi
.register('TW_Collections', 'TW Collections',
TWT.info.min_gameversion,
TWT.info.max_gameversion, 'Dun - v'
+ TWT.info.version,
'https://gf.qytechs.cn/scripts/1670-tw-collections');
var set_button = new west.gui.Button(
TWT.LANG.Options.tab.setting, function() {
TWT.Options.open('setting');
}, this, this, "Open the Settings page");
var more_button = new west.gui.Button(
TWT.LANG.Options.checkbox_text.miscellaneous.options.lang,
function() {
TWT.Options.open('translate');
}, this, this, "Open the Translation tips page");
TWApi
.setGui($(
"<div id='twtApiContent' style=' font-family: comic sans ms;font-size: 12pt;padding-top: 10px;text-align: right;'>"
+ TWT.LANG.description
+ "</div>").append(
set_button.getMainDiv()).append(
more_button.getMainDiv()).after(
TWT.getDunMp()));
}
};
ScriptUpdater = {
id : null, // : TWT.info.idscript,
version : null, // : TWT.info.version,
scriptId : null,
scriptCurrentVersion : null,
scriptUpdUrl : "http://pastebin.com/raw.php?i=W4fYvHcM", // "https://gf.qytechs.cn/de/scripts/1669/code.user.js",
scriptCallbackFunction : null,
scriptStorage : null,
initialize : function(scriptId, scriptCurrentVersion,
scriptCallbackFunction, scriptUseNotice,
scriptForceNotice) {
ScriptUpdater.scriptId = scriptId;
ScriptUpdater.scriptCurrentVersion = scriptCurrentVersion;
if (ScriptUpdater.scriptStorage == null) {
ScriptUpdater.scriptStorage = new Storage("local",
"ScriptUpdater." + scriptId);
}
},
setValue : function(key, value) {
if (ScriptUpdater.scriptStorage == null) {
ScriptUpdater.scriptStorage = new Storage("local",
"ScriptUpdater." + scriptId);
}
ScriptUpdater.scriptStorage.setItem(key, value);
},
getValue : function(key, defaultValue) {
if (ScriptUpdater.scriptStorage != null) {
return ScriptUpdater.scriptStorage.getItem(key,
defaultValue);
} else {
return defaultValue;
}
},
checkLanguages : function() {
// Update languages
try {
var strLang = "";
$
.each(
TWT.languages,
function(ind, language) {
if (isDefined(language.script)) {
if (TWT
.isGreasyLang(language)) {
if (language.version < ScriptUpdater.scrnv[language.script]) {
strLang += "<br><a href='https://gf.qytechs.cn/scripts/"
+ language.script
+ '/code.user.js\'>'
+ language.name
+ "</a>";
}
}
}
});
if (strLang.length > 0) {
ScriptUpdater.scrnv.isAJ = false;
var parent = new west.gui.Dialog(
TWT.LANG.Options.update.title,
"<div><br>"
+ TWT.LANG.Options.update.updlangmaj
+ "<br><center>" + strLang
+ "</center></div>")
.setIcon(
west.gui.Dialog.SYS_INFORMATION)
.setModal(
true,
false,
{
bg : "http://www.the-west.fr/images/curtain_bg.png",
opacity : 0.7
})
.addButton(
'TW Collection page',
function() {
parent.hide();
window
.open(
"https://gf.qytechs.cn/scripts/"
+ ScriptUpdater.scriptId,
'_blanck');
}).addButton('Close');
parent.show();
} else {
// ScriptUpdater.scrnv.isAJ=true;
}
} catch (e) {
new UserMessage(TWT.LANG.Options.update.upderror,
UserMessage.TYPE_ERROR).show();
ErrorLog.log('Update error', e);
}
},
checkRemoteScript : function() {
// Update
try {
if (TWT.DEBUG) {
ScriptUpdater.scrnv = {
7258 : '1.3.9', // twt
7260 : '1.3.5', // cz
3405 : '1.0.8', // es
1672 : '1.0.8', // de
1675 : '1.0.8', // it
7261 : '1.3.5', // hu
7259 : '1.3.5', // sk
1674 : '1.0.8', // pl
7312 : '1.0.2', // br
7271 : '1.3.5', // ru
news : '<h4 style="margin-bottom:20px;">News : </h4>'
+ "Debug d'affichage des mises a jour<BR><BR>"
};
}
var gocheck = function() {
ScriptUpdater.scrnv.isAJ = false;
if (ScriptUpdater.scriptCurrentVersion < ScriptUpdater.scrnv[ScriptUpdater.scriptId]) {
// ScriptUpdater.scrnv.isAJ=false;
var strNew = ScriptUpdater.scrnv['news']
|| '';
var parent = new west.gui.Dialog(
TWT.LANG.Options.update.title,
"<div style='"
+ ((strNew.length > 0) ? "width:650px;height:250px;"
: "")
+ "font-size:16px;text-align:justify;'><BR>"
+ TWT.LANG.Options.update.updscript
// +
// ScriptUpdater.scrnv[ScriptUpdater.scriptId]
+ "<div id='boxnews' style='margin-top:20px;font-size:14px;font-style: italic;'>"
+ strNew + "</div></div>")
.setIcon(
west.gui.Dialog.SYS_QUESTION)
.setModal(
true,
false,
{
bg : "http://www.the-west.fr/images/curtain_bg.png",
opacity : 0.7
})
.addButton(
'yes',
function() {
parent.hide();
window
.open(
"https://gf.qytechs.cn/scripts/1670-tw-collections/code/TW-Collections.user.js",
'_self');
})
.addButton('no', function() {
parent.hide();
})
.addButton(
'Script page',
function() {
parent.hide();
window
.open(
"https://gf.qytechs.cn/scripts/"
+ ScriptUpdater.scriptId,
'_blanck');
});
parent.show();
} else {
ScriptUpdater.scrnv.isAJ = true;
}
ScriptUpdater.checkLanguages();
var date = new Date();
ScriptUpdater.setValue("lastCheck",
parseInt(date.getTime()));
if (ScriptUpdater.scrnv.isAJ) {
EventHandler.signal("scriptmaj.ok");
}
};
if (TWT.DEBUG) {
gocheck();
} else {
ScriptUpdater.scrnv = [];
$
.getScript(ScriptUpdater.scriptUpdUrl,
gocheck);
}
} catch (e) {
new UserMessage(TWT.LANG.Options.update.upderror,
UserMessage.TYPE_ERROR).show();
ErrorLog.log('Update error', e);
}
},
getLastCheck : function() {
return ScriptUpdater.getValue("lastCheck", 0);
},
getInterval : function() {
var interval = ScriptUpdater.getValue("interval", 0);
return (typeof (interval) == "undefined" || !interval
.toString().match(/^\d+$/)) ? 0
: parseInt(interval.toString());
},
setInterval : function(interval) {
ScriptUpdater.setValue("interval", parseInt(interval));
},
check : function(scriptId, scriptVersion,
scriptCallbackFunction) {
ScriptUpdater.initialize(scriptId, scriptVersion,
scriptCallbackFunction, true, false);
var date = new Date();
if (ScriptUpdater.getInterval() > 1) {
if ((date.getTime() - ScriptUpdater.getLastCheck()) > ScriptUpdater
.getInterval()) {
ScriptUpdater.checkRemoteScript();
}
}
},
forceCheck : function(scriptId, scriptVersion,
scriptCallbackFunction) {
ScriptUpdater.initialize(scriptId, scriptVersion,
scriptCallbackFunction, true, false);
ScriptUpdater.checkRemoteScript();
}
};
/***************************************************************
* DOM Storage Wrapper Class
*
* Public members: ctor({"session"|"local"}[, <namespace>])
* setItem(<key>, <value>) getItem(<key>, <default value>)
* removeItem(<key>) keys()
**************************************************************/
function Storage(type, namespace) {
var object = this;
if (typeof (type) != "string")
type = "session";
switch (type) {
case "local": {
object.storage = localStorage;
}
break;
case "session": {
object.storage = sessionStorage;
}
break;
default: {
object.storage = sessionStorage;
}
break;
}
if (!namespace
|| (typeof (namespace) != "string" && typeof (namespace) != "number"))
namespace = "ScriptStorage";
object.namespace = [ namespace, "." ].join("");
object.setItem = function(key, value) {
try {
object.storage.setItem(escape( [ object.namespace,
key ].join("")), JSON.stringify(value));
} catch (e) {
}
};
object.getItem = function(key, defaultValue) {
try {
var value = object.storage.getItem(escape( [
object.namespace, key ].join("")));
if (value)
return eval(value);
else
return defaultValue;
} catch (e) {
return defaultValue;
}
};
object.removeItem = function(key) {
try {
object.storage
.removeItem(escape(collection.craftfilterMarket[
object.namespace, key].join("")));
} catch (e) {
}
};
object.keys = function() {
var array = [];
var indDun = 0;
do {
try {
var key = unescape(object.storage.key(indDun++));
if (key.indexOf(object.namespace) == 0
&& object.storage.getItem(key))
array.push(key
.slice(object.namespace.length));
} catch (e) {
break;
}
} while (true);
return array;
};
}
;
TWT.init();
}
});