// ==UserScript==
// @name Class Management
// @namespace http://www.kubegb.fr/
// @version 1.23
// @description Script Multi-fonction pour le jeu Teacher Story.
// @match http://teacher-story.com
// @match http://teacher-story.com/*
// @require http://ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js
// @copyright 2013, Selliato
// ==/UserScript==
unsafeWindow.GM = window;
var scriptsStr = "CollectionManager#teacher#Rangement des collections#Quelques centaines de tiroirs en plus afin de ranger un peu votre collection d'objets confisqués.;QuestsManager#teacher#Onglet 'Quêtes'#Vos pouvoirs sur-humains vous permettront de voir les objets manquant pour chaque récompense.#select@defaut@Afficher par défaut :@Les quêtes.@1@La collection.@2;JNF#all#James Norray Facts#L'idéal pour vous remémorer vos exploits passés et futures. Les facts proviennent du site James Norray Facts .";
var scriptsList = scriptsStr.split(';');
var collections = new Array();
var quests = new Array();
var newListDiv = '';
var ListDiv;
var collectnum;
var questnum;
var curcollect = 0;
var curquest = 0;
var curnum = 0;
var JNF_loaded = false;
var lastver = 0;
var aupdate;
var updateURL;
var funcList = {};
GM_addStyle("#cfgcm {display: block;background-color: #9CBF60;padding: 0px 10px;border-style: solid;border-color: #8BAE50;border-width: 9px 0px 0px 0px;font-size: 13px;position: absolute;right: 50px;bottom: -32px;height: 23px;}#patchlog ul li {margin-left: 10px;margin-bottom: 15px;padding-left: 20px;background: transparent url(\"http://twinoid.com/img/icons/new.png\") no-repeat 5px 3px;}");
$('.mainWrapper').append("Class Manager ");
if(document.URL.match("/cfgcm"))
{
var page="config";
}
else if(document.URL.match("teacher-story.com/teacher"))
{
var page="teacher";
}
else
{
var page="other";
}
funcList.QuestsManager = function QuestManager()
{
GM_addStyle(".itemQuest{float : left;display: block; width : 30px; height : 30px; text-align : center; margin : 5px; } .itemQuestImg{vertical-align : middle; max-height : 30px; max-width : 30px; margin : auto;} .quest{float : left; width : 47%; margin : 5px;} .questinfo{text-align : center; background-color : #9CBF60; border-top-left-radius: 10px; border-top-right-radius: 10px;} .questinfo img{margin-top : 3px;} .itemQuestL{background-color : #f9d148;border-bottom-left-radius: 10px; border-bottom-right-radius: 10px;}.teacherWrapper .teacherQuest {background-color: #fff;-moz-box-shadow: 2px 2px #DDDDFF;-webkit-box-shadow: 2px 2px #DDDDFF;box-shadow: 2px 2px #DDDDFF;border: 1px solid #DDDDDD;margin-top: -1px;margin-left: 3px;min-height: 280px;padding: 15px 5px;}");
$(".teacherTabs").append("
");
$.ajax( {
type: "GET",
url: "http://kubegb.fr/tsm/xml/items.xml",
dataType: "xml",
success: function(xml) {
$(xml).find('quest').each( function(){
quests[curquest] = new Array();
quests[curquest]['items'] = new Array();
var curItem = 0;
$(this).find('item').each( function(){
quests[curquest]['items'][curItem] = new Array();
quests[curquest]['items'][curItem]['name'] = $(this).attr('name');
quests[curquest]['items'][curItem]['img'] = $(this).attr('img');
quests[curquest]['items'][curItem]['cid'] = curquest;
curItem++
});
quests[curquest]['name'] = $(this).attr('name');
quests[curquest]['img'] = $(this).attr('img');
quests[curquest]['collected'] = 0;
quests[curquest]['id'] = curquest;
quests[curquest]['itemnum'] = curItem;
curquest++;
})
questsLoaded();
$('#questsTab').hide();
}
});
function AddQuest(element, index, array) {
$('.teacherQuest').append('
'+element['name']+'
');
element['items'].forEach(AddItemQuest);
$('#q'+element['id']).append('
');
}
function AddItemQuest(element, index, value) {
find = '[src="'+ element['img']+'"]'
if($('.teacherInv').find(find).length == 0)
$('#q'+element['cid']).append('
');
else
$('#q'+element['cid']).append('
');
}
function questsLoaded(){
quests.forEach(AddQuest);
$('.teacherQuest').append('
');
}
};
funcList.CollectionManager = function CollectionManager()
{
collDIV = '
';
$('.teacherInv').append(collDIV);
contentEval("function switchView(id){choosen=document.getElementById(\"coll\"+id);if(choosen.style.display=='block'){choosen.style.display='none';}else if(choosen.style.display=='none'){choosen.style.display='block';};};");
contentEval("function openAll(){var containers = document.getElementsByClassName('item-container');for(var i=0; i
' + element['name'] + "
');
element['items'].forEach(SearchItems);
num = ' ('+curcollect+'/'+element['itemnum']+')';
$('#h3-'+element['id']).append(num);
if(curcollect == 0)
{
$('#coll'+element['id']).append("Vous ne possédez aucun objet de cette série.");
}
}
function SearchItems(element, index, array) {
find = '[src="'+ element['img']+'"]'
$('.teacherInv').find(find).parent().each(function(index){
item = $(this);
$('#coll'+element['cid']).append(item);
curcollect++;
})
}
function construct()
{
collections.forEach(AddCollection);
}
function contentEval(source) {
// Check for function input.
if ('function' == typeof source) {
// Execute this function with no arguments, by adding parentheses.
// One set around the function, required for valid syntax, and a
// second empty set calls the surrounded function.
source = '(' + source + ')();'
}
// Create a script node holding this source code.
var script = document.createElement('script');
script.setAttribute("type", "application/javascript");
script.textContent = source;
// Insert the script node into the page, so it will run, and immediately
// remove it to clean up.
document.body.appendChild(script);
}
//Configuration
if(page == "config")
{
$('.mainWrapper').empty();
$('.banner').remove();
$('.mainWrapper').append("Configuration de Class Manager ");
$.each(scriptsList, function(index, value) {
script = value.split('#');
if(GM_getValue(script[0]) == 1)
{
$('.mainWrapper').append('Activer : '+script[2]+' ');
}
else
{
$('.mainWrapper').append('Activer : '+script[2]+' ');
}
$('.mainWrapper').append(''+script[3]+'
');
cid = "#"+script[0];
$(cid).bind('click',{id: script[0]},function(event){switchScript(event.data.id)});
if(script[4] != undefined)
{
conf = script[4].split('@')
}
});
$('.mainWrapper').append(' Version de Class Manager : '+GM_info['script']['version']+'
');
}
funcList.JNF = function JNF()
{
if($('#gameInfos').length != 0)
{
$('#gameInfos').after('');
GM_addStyle('#JNF{width: 275px; margin-left : -10px;}');
JNF_loaded = true;
}
if($('#userStats').length != 0)
{
$('#userStats').append(' ');
GM_addStyle('#JNF{margin-left: -10px;}');
JNF_loaded = true;
}
if(JNF_loaded = true)
{
$.ajax( {
type: "GET",
url: "http://jamesnorrayfacts.kubegb.fr/ws.php?order=random&off=1&num=1",
dataType: "xml",
success: function(xml) {
$(xml).find('fact').each( function(){
$(".tid_preRoleplay").append('Fact n°'+$(this).attr('offnumber'));
$(".tid_wroleplay").append($(this).text().replace(/\\/gi, ""));
})
}
})
}
}
$.each(scriptsList, function(index, value) {
script = value.split('#');
if(GM_getValue(script[0]) == undefined)
{
GM_setValue(script[0],1);
}
if(GM_getValue(script[0]) == 1)
{
if (script[0] in funcList && page== script[1]) {
funcList[script[0]]();
}
else if (script[0] in funcList && script[1] == 'all') {
funcList[script[0]]();
}
}
});
function switchScript(id){
if(GM_getValue(id)==1)
{
GM_setValue(id,0);
}
else
{
GM_setValue(id,1)
}
};
$.ajax( {
type: "GET",
url: "http://kubegb.fr/tsm/xml/log.xml",
dataType: "xml",
success: function(xml) {
curnum = 0;
$(xml).find('version').each( function(){
if(GM_info['script']['version'] > lastver )
{
lastver = $(this).attr('v');
if(GM_info['script']['version'] < $(this).attr('v'))
{
aupdate = true;
if($('.banner').length == 0)
{
$(".firstmenu").after('
');
}
$(".banner").append("La version "+lastver+" de Class Manager est maintenant disponible ! Configuration
")
}
if(page == "config")
{
$("#patchlog").append('Derniére version disponible : '+lastver+' ');
if(aupdate == true)
{
$("#patchlog").append("Mettre à jour ")
}
}
}
if(page == "config")
{
$("#patchlog").append('
Version : '+$(this).attr('v')+' ');
}
$(this).find('new').each( function(){
$("ul#"+curnum).append(' '+$(this).text()+' ');
});
curnum++;
}
);
}
}
);