Apps Home
|
Create an App
Memnoch91 App
Author:
memnoch91
Description
Source Code
Launch App
Current Users
Created by:
Memnoch91
var Application = { Name: "Memnoch91 Objectifs Multiples", // Nom de l'application Version: 1.00, // Version de l'application Author: "memnoch91", // Auteur de cette version de l'application OriginalAuthor: "memnoch91", // Auteur original de l'application Debug: false, // Indique si l'application est en mode debug HeureDemarrage: null, // Heure de demarrage de l'application Constantes: { Objectifs:2, }, }; var ParametresExcel={ settings_choices:{}, settings_application:{}, } var AideParametres = { parseBoolean: function (str) { return (str.toLowerCase() == "oui" || str.toLowerCase() == "yes" || str.toLowerCase() == "true" || str == true || str==1); } }; var GestionnaireInterval={ Intervals:[], surInterval:function(){ var maintenant = new Date(); maintenant.setMilliseconds(0); for (var intervalId in GestionnaireInterval.Intervals) { if (!(GestionnaireInterval.Intervals[intervalId] instanceof Interval)) { delete GestionnaireInterval.Intervals[intervalId]; continue; } else { var interval = GestionnaireInterval.Intervals[intervalId]; if (maintenant <= interval.recupereDateLimite() && maintenant >= interval.recupereDateLimite()) { interval.surInterval(); interval.recharge(); break; } } } cb.setTimeout(GestionnaireInterval.surInterval, 1000); }, ajouteInterval:function(id,interval){ if(!(interval instanceof Interval)) return false; GestionnaireInterval.Intervals[id]=interval; return true; }, supprimeInterval:function(id){ if(isUndefined(GestionnaireInterval.Intervals[id])) return true; delete GestionnaireInterval.Intervals[id]; if(isUndefined(GestionnaireInterval.Intervals[id])) return true; return false }, initialise:function(){ cb.setTimeout(GestionnaireInterval.surInterval,1000); }, } function Interval(surInterval,secondes){ this.datelimite=null; this.secondes=secondes this.surInterval=surInterval; this.recharge() recharge=function(){ var maintenant=new Date(); maintenant.setSeconds(this.secondes); maintenant.setMilliseconds(0); this.datelimite=maintenant; }; } Interval.prototype.recupereDateLimite = function () { return this.datelimite; }; function ajouteInterval(Id,surInterval,secondes){ return GestionnaireInterval.ajouteInterval(Id,new Interval(surInterval,secondes)); }; function supprimeInterval(id){ return GestionnaireInterval.supprimeInterval(id) } var GestionnaireMinuteur = { Minuteurs: [], surTermine: function () { var maintenant = new Date(); maintenant.setMilliseconds(0); for (var minuteurId in GestionnaireMinuteur.Minuteurs) { if (!(GestionnaireMinuteur.Minuteurs[minuteurId] instanceof Minuteur)) { delete GestionnaireMinuteur.Minuteurs[minuteurId]; continue; } else { var minuteur = GestionnaireMinuteur.Minuteurs[minuteurId]; if (maintenant <= minuteur.recupereDateLimite() && maintenant >= minuteur.recupereDateLimite()) { debugLog("Minuteur {0} correspond à l'heure actuelle, appel de l'événement surTermine".format(minuteurId)); minuteur.surTermine(); delete GestionnaireMinuteur.Minuteurs[minuteurId]; break; } } } cb.setTimeout(GestionnaireMinuteur.surTermine, 1000); }, ajouteMinuteur: function (id, minuteur) { if (!(minuteur instanceof Minuteur)) return false; GestionnaireMinuteur.Minuteurs[id] = minuteur; return true; }, supprimeMinuteur: function (id) { if (isUndefined(GestionnaireMinuteur.Minuteurs[id])) return true; delete GestionnaireMinuteur.Minuteurs[id]; if (isUndefined(GestionnaireMinuteur.Minuteurs[id])) return true; return false }, initialise: function () { cb.setTimeout(GestionnaireMinuteur.surTermine, 1000); }, }; function Minuteur(termine, secondes) { var maintenant = new Date(); maintenant.setSeconds(secondes); maintenant.setMilliseconds(0); this.datelimite = maintenant; this.surTermine = termine; } Minuteur.prototype.recupereDateLimite = function () { return this.datelimite; }; function ajouteMinuteur(Id,surTermine,secondes){ return GestionnaireMinuteur.ajouteMinuteur(Id,new Minuteur(surTermine,secondes)); }; function supprimeMinuteur(id){ return GestionnaireMinuteur.supprimeMinuteur(id) } var ConstantesUtilisateur = { "memnoch91":{Objectifs:3,}, }; if (cb != null) { if (ConstantesUtilisateur[cb.room_slug] != undefined) { Application.Constantes = ConstantesUtilisateur[cb.room_slug]; Application.Constantes.Remplace = true; } } if (cb == null) { var cb = { changeRoomSubject: function (nouveau_sujet) { }, drawPanel: function () { }, log: function (message) { }, onDrawPanel: function (func) { }, onEnter: function (func) { }, onLeave: function (func) { }, onMessage: function (func) { }, onShowStatus: function (func) { }, onTip: function (func) { }, room_slug: '', sendNotice: function (message, destinataire, fond, premierplan, weight, groupe) { }, setTimeout: function (func, msec) { }, settings_choices: [], settings: {}, tipOptions: function (func) { }, limitCam_start: function (message, allowed_users) { }, limitCam_stop: function () { }, limitCam_addUsers: function (allowed_users) { }, limitCam_removeUsers: function (removed_users) { }, limitCam_removeAllUsers: function () { }, limitCam_userHasAccess: function (user) { }, limitCam_allUsersWithAccess: function () { }, limitCam_isRunning: function () { }, }; } var ParametresObjectif = []; for (var gSetting = 1; gSetting <= Application.Constantes.Objectifs; gSetting++) { ParametresObjectif.push({ name: 'objectif_' + gSetting + '_jetons', label: 'Nombre de jetons pour l objectif ' + gSetting + ' : ', type: 'int', minValue: 1, defaultValue: 200, required: (gSetting === 1) }); ParametresObjectif.push({ name: 'objectif_' + gSetting + '_description', label: 'Description de l objectif ' + gSetting + ' : ', type: 'str', minLength: (gSetting === 1 ? 1 : 0), maxLength: 255, required: (gSetting === 1) }); } cb.settings_choices = [ // type ==> int : numerique - choice : choix - str : chaine de caracteres // defaultValue : valeur par defaut // required : true/false //{ name:'temps_visibilite_cadeau',label:'temps offert de visibilite en secondes sans donnation (0=indefini)',type:'int',defaultValue:10,required:true}, ]; cb.settings_choices = cb.settings_choices.concat(ParametresExcel.settings_choices); cb.settings_choices = cb.settings_choices.concat(ParametresObjectif); var settings = { objectifs: [], toString: function () { var settingsStr = ""; for (var prop in this) { if (typeof (this[prop]) == "string" || typeof (this[prop]) == "boolean" || typeof (this[prop]) == "number") { settingsStr += ", " + prop + ": '" + this[prop] + "'"; } } cb.log(settingsStr.substring(2)); return settingsStr.substring(2); } }; function isUndefined(test) { return (test == undefined || test == "" || test == 0); } function getRandomInt(max) { return Math.floor(Math.random() * Math.floor(max)); } function parseOptions() { //settings.message_finalite = cb.settings.message_finalite; //settings.autorise_superuser_diffuser_cmd = AideParametres.parseBoolean(cb.settings.autorise_mod_diffuser_cmd); //settings.masque_total_jetons = AideParametres.parseBoolean(cb.settings.masque_total_jetons); //settings.theme_surbrillance = cb.settings.jeux_couleur_participant.toLowerCase(); //settings.progression_mode_manual = (cb.settings.mode_progression == 'Manuelle'); //settings.frais_entree_show = cb.settings.frais_entree_show; //settings.frais_entree_show_avant = cb.settings.frais_entree_show_avant; //settings.change_sujet_pourboire = AideParametres.parseBoolean(cb.settings.change_sujet_pourboire); //settings.seuil_mur_jaune = cb.settings.seuil_mur_jaune; //settings.suffix_sujet = cb.settings.suffix_sujet; //settings.cahce_utilisateurs_gris = AideParametres.parseBoolean(cb.settings.cahce_utilisateurs_gris); //showPrive.definiPrix(settings.frais_entree_show); //showPrive.definiActive(settings.action_en_finalite == 'show prive'); //showPrive.definiMessage(settings.message_finalite); //showPrive.definiPrixAvantShow(settings.frais_entree_show_avant); for (var gIdx = 1; gIdx <= Application.Constantes.Objectifs; gIdx++) { if (!isUndefined(cb.settings['objectif_' + gIdx + '_description']) && !isUndefined(cb.settings['objectif_' + gIdx + '_jetons'])) { var description = cb.settings['objectif_' + gIdx + '_description']; var hide = false; if (description.substring(0, 2) == "**") { description = description.substring(2); hide = true; } var repeatTest = /^(\d+)\/(.*)/i; var goalRepeat = repeatTest.exec(description); if (goalRepeat != null) { description = goalRepeat[2]; for (var repeat = 0; repeat < goalRepeat[1]; repeat++) { settings.objectifs.push({ index: settings.objectifs.length + 1, description: description, jetons: parseInt(cb.settings['objectif_' + gIdx + '_jetons']), hide: hide, }); } } else { settings.objectifs.push({ index: settings.objectifs.length + 1, description: description, jetons: parseInt(cb.settings['objectif_' + gIdx + '_jetons']), hide: hide, }); } } } } function init() { //MinuteurDeObjectifs.hookOnTimer = function () { minuteurObjectifsurMinuteur(); }; Application.HeureDemarrage = new Date(); parseOptions(); //GestionnaireDeMessage.envoiReussite("Tip Multi-Goal v" + Application.Version + " demarre.", null); //GestionnaireDeMessage.envoiReussite("Tappez '/stats' à tout momment pour les statistique de pourboire, or '/help' pour plus de commandes.", null, Groupes.Moderateurs); if ( Application.Constantes.Overridden !== undefined && Application.Constantes.Overridden ) { //GestionnaireDeMessage.envoiReussite("Des constantes d'application personnalisées sont en vigueur pour votre pièce. Pour modifier des paramètres tels que le nombre d'objectifs, contactez {0}".format(Application.Author), cb.room_slug); } GestionnaireMinuteur.initialise(); GestionnaireInterval.initialise(); //MinuteurDeUtilisateurs.demarreMinuteur(1) //reinnitialiser(); } //if (cb.settings.objectif_1_jetons !== null && cb.settings.objectif_1_jetons !== undefined) { if (!Application.Debug || (Application.Debug && cb.room_slug == Application.Author)) { init(); } else { //GestionnaireDeMessage.envoiErreur("Erreur d'application! Cette version {0} est une compilation DEBUG et ne peut être exécutée que par {1}. Démarrage interrompu!".format(Application.Name, Application.Author), cb.room_slug); } //}
© Copyright Chaturbate 2011- 2024. All Rights Reserved.