Apps Home
|
Create an App
Memnoch91a
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: { temps_visibilite_claire_defaut:10, temps_visibilite_cache_defaut:5, Objectifs:2, }, }; String.prototype.format = function () { var newString = String(this); for (var idx = 0; idx < arguments.length; idx++) { newString = newString.replace('{' + idx + '}', arguments[idx]); } return String(newString); }; 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 + '_description', label: 'Description de l objectif ' + gSetting + ' : ', type: 'str', minLength: (gSetting === 1 ? 1 : 0), maxLength: 255, required: (gSetting === 1) }); ParametresObjectif.push({ name: 'objectif_' + gSetting + '_params', label: 'Parametres pour l objectif ' + gSetting + ' (a[;b[;c]]) ou a est le prix, b le nombre de secondes claires, c le nombre de secondes masquées (-1= désactivé,0=défaut): ', type: 'str', defaultValue: "200;0;0", 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}, { name:'temps_visibilite_cadeau',label:'temps offert de visibilite en secondes sans donnation (0=indefini)',type:'int',defaultValue:300,required:true}, { name:'temps_visibilite_claire',label:'temps des cicles de visibilite en secondes sans donnation (0=valeur par defaut 10 secondes)',type:'int',defaultValue:10,required:true,minValue:0}, { name:'temps_visibilite_cache',label:'temps des cicles de non visibilite en secondes sans donnation (0=valeur par defaut de 5 secondes)',type:'int',defaultValue:5,required:true,minValue:0}, { name:'cout_visibilite_minute',label:'nombre de jetons à dépenser par minute de visibilite (0=pas de cicle de visibilite)',type:'int',defaultValue:2,required:true,minValue:0}, { name:'cout_visibilite_perpetuelle',label:'nombre de jetons à dépenser pour une visibilite continue et acces au show prive',type:'int',defaultValue:100,required:true,minValue:0}, ]; cb.settings_choices = cb.settings_choices.concat(ParametresExcel.settings_choices); cb.settings_choices = cb.settings_choices.concat(ParametresObjectif); var settings = { temps_visibilite_cadeau:300, temps_visibilite_claire:10, temps_visibilite_cache:5, cout_visibilite_minute:2, cout_visibilite_perpetuelle:100, 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.temps_visibilite_cadeau=cb.settings.temps_visibilite_cadeau; //settings.temps_visibilite_claire=cb.settings.temps_visibilite_claire; //settings.temps_visibilite_cache=cb.settings.temps_visibilite_cache; //settings.cout_visibilite_minute=cb.settings.cout_visibilite_minute; //settings.cout_visibilite_perpetuelle=cb.settings.cout_visibilite_perpetuelle; //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 + '_params'])) { var description = cb.settings['objectif_' + gIdx + '_description']; var params= cb.settings['objectif_' + gIdx + '_params'].split(';'); var vjetons=parseInt(params[0]); var tempsClaire=settings.temps_visibilite_claire; if(params.length>=2) tempsClaire=parseInt(params[1]); var tempsCache=settings.temps_visibilite_cache; if(params.length>=3) tempsCache=parseInt(params[2]); 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: vjetons, dureeClaire:tempsClaire, dureeCache:tempsCache, hide: hide, }); } } else { settings.objectifs.push({ index: settings.objectifs.length + 1, description: description, jetons: vjetons, dureeClaire:tempsClaire, dureeCache:tempsCache, hide: hide, }); } } } } var Utilisateurs={ utilisateurs:[], ajouteUtilisateur:function(usr){ return this.utilisateur(usr) }, supprimeUtilisateur:function(usr){ if (usr instanceof Utilisateur){ const result = this.utilisateurs.filter(user => user.nom ==usr.nom) if (result.length>0){ this.utilisateurs.splice(this.utilisateurs.findIndex((user) => user.nom == usr.nom),1) } }else if (typeof usr == "string"){ const result = this.utilisateurs.filter(user => user.nom ==usr) if (result.length>0){ this.utilisateurs.splice(this.utilisateurs.findIndex((user) => user.nom == usr),1) } }else{ const result = this.utilisateurs.filter(user => user.nom ==usr.user) if (result.length>0){ this.utilisateurs.splice(this.utilisateurs.findIndex((user) => user.nom == usr.user),1) } } }, utilisateur:function(usr){ if (usr instanceof Utilisateur){ const result = this.utilisateurs.filter(user => user.nom ==usr.nom) if (result.length>0){ result[0].miseAJour(creationUserChatUrbate(usr.nom,usr.fanClub,usr.aJetons,usr.moderateur,usr.aRecemmentDonne,usr.donateurMoyen,usr.grosDonateur,usr.genre)) this.utilisateurs.splice(this.utilisateurs.findIndex((user) => user.nom == usr.nom),1,result[0]) return this.utilisateurs[this.utilisateurs.findIndex((user) => user.nom == usr.nom)] }else{ this.utilisateurs.push(usr) return this.utilisateurs[this.utilisateurs.findIndex((user) => user.nom == usr.nom)] } }else if (typeof usr == "string"){ const result = this.utilisateurs.filter(user => user.nom ==usr) if (result.length>0){ result[0].miseAJour(creationUserChatUrbate(usr,result[0].fanClub,result[0].aJetons,result[0].moderateur,result[0].aRecemmentDonne,result[0].donateurMoyen,result[0].grosDonateur,result[0].genre)) this.utilisateurs.splice(this.utilisateurs.findIndex((user) => user.nom == usr),1,result[0]) return this.utilisateurs[this.utilisateurs.findIndex((user) => user.nom == usr)] }else{ var u=new Utilisateur(creationUserChatUrbate(usr,false,false,false,false,false,false,"m")) this.utilisateurs.push(u) return this.utilisateurs[this.utilisateurs.findIndex((user) => user.nom == usr)] } }else{ const result = this.utilisateurs.filter(user => user.nom ==usr.user) if (result.length>0){ result[0].miseAJour(usr) this.utilisateurs.splice(this.utilisateurs.findIndex((user) => user.nom == usr.user),1,result[0]) return this.utilisateurs[this.utilisateurs.findIndex((user) => user.nom == usr.user)] }else{ var u =new Utilisateur(usr) this.utilisateurs.push(u) return this.utilisateurs[this.utilisateurs.findIndex((user) => user.nom == usr.user)] } } }, reinnitialise:function(){ this.utilisateurs=[] }, listeTotaleUtilisateurs:function(){ return this.utilisateurs }, NombreTotalUtilisateurs:function(){ return this.listeTotaleUtilisateurs().length }, } class Utilisateur { constructor(usr) { // INFORMATIONS SUR L'IDENTITE DU DONATEUR this._nom = usr['user']; this._fanClub = usr['in_fanclub']; this._avecJeton = usr['has_tokens']; this._estModerateur = usr['is_mod']; this._recemmentParticipe = usr['tipped_recently']; this._petiteParticipation = usr['tipped_alot_recently']; this._grosseParticipation = usr['tipped_tons_recently']; this._genre = usr['gender']; // INFORMATIONS SUR L'ACTIVITE DE PRESENCE ET DE DONNATION DE L'UTILISATEUR this._present = true; this.miseAJourExistance(true) } miseAJour(usr,estPresent){ this._nom=usr['user']; this._fanClub=usr['in_fanclub']; this._avecJeton=usr['has_tokens']; this._estModerateur=usr['is_mod']; this._recemmentParticipe=usr['tipped_recently']; this._petiteParticipation=usr['tipped_alot_recently']; this._grosseParticipation=usr['tipped_tons_recently']; this._genre=usr['gender']; this.miseAJourExistance(estPresent); }; miseAJourExistance(estPresent){ this._present=estPresent }; get nom() {return this._nom; } get broadcaster() { return this._nom == cb.room_slug; } get moderateur() { return this._estModerateur; } get fanClub() { return this._fanClub; } get grosDonateur() { return this._grosseParticipation; } get donateurMoyen() { return this._petiteParticipation; } get donateurRecent() { return this._recemmentParticipe; } get donateurPotentiel() { return this._avecJeton; } get sansJeton() { return this.donateurPotentiel == false; } get genre() { return this._genre; } get user() { return creationUserChatUrbate(this.nom, this.fanClub, this.donateurPotentiel, this.estModerateur, this.donateurRecent, this.donateurMoyen, this.grosDonateur, this.genre); } } function creationUserChatUrbate(utilisateurName,fanClub,aJetons,estModerateur,aRecemmentDonne,aBienDonne,aDonneBeaucoup,genre){ var u={ room: cb.room_slug, user: utilisateurName, in_fanclub: fanClub, has_tokens: aJetons, is_mod: estModerateur, tipped_recently: aRecemmentDonne, tipped_alot_recently: aBienDonne, tipped_tons_recently: aDonneBeaucoup, gender: genre } return u } function utilisateur(usr){ return Utilisateurs.utilisateur(usr) } var GestionnaireDeCicles={ aide:function(usr){ var u = utilisateur(usr) } } function reinnitialiser(){ Utilisateurs.reinnitialise() } cb.onEnter(function (user) { Utilisateurs.ajouteUtilisateur(user); var arr = Utilisateurs.listeTotaleUtilisateurs() cb.sendNotice(Utilisateurs.qte) arr.forEach(usr => cb.sendNotice("--> {0} - {1}".format(usr,usr.nom))); //if (user.in_fanclub || user.is_mod) { // showPrive.ajouteUtilisateur(user.user); //} //if (user.user == Application.Author) { // GestionnaireDeMessage.envoiInfo("La version actuelle du Multi-Goal est v{0}".format(Application.Version), Application.Author); //} //Utilisateurs.listeDesUtilisateurs() }); cb.onMessage(function (msg) {}) 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.