SOUNDS MANAGER PERSONALISABLE

Signaler
Messages postés
2087
Date d'inscription
jeudi 12 décembre 2002
Statut
Modérateur
Dernière intervention
30 janvier 2011
-
Clrore
Messages postés
10
Date d'inscription
samedi 3 mai 2008
Statut
Membre
Dernière intervention
11 mai 2008
-
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/37330-sounds-manager-personalisable

Clrore
Messages postés
10
Date d'inscription
samedi 3 mai 2008
Statut
Membre
Dernière intervention
11 mai 2008

ah ouais, effectivement,
inattention, erreur et boulette de ma part.. :/

Sinon, je maintiens ce que j'ai dit : excellent ce code ^^
cs_lebaronrouge
Messages postés
289
Date d'inscription
lundi 8 mars 2004
Statut
Membre
Dernière intervention
14 février 2009

j'ai vérifié j'ai tellement scripté d'autres trucs que je l'ai laissé tel quel encore ce code.... je vais m'y remettre ^^'
cs_lebaronrouge
Messages postés
289
Date d'inscription
lundi 8 mars 2004
Statut
Membre
Dernière intervention
14 février 2009

effectivement ^^'
cs_wims
Messages postés
2466
Date d'inscription
vendredi 23 juillet 2004
Statut
Membre
Dernière intervention
1 août 2010
1
Hum en fait /sounds n'est pas censé mettre les son sur on, c'est /sound sans "s", donc il n'y a rien a changé, faut juste savoir tapé les bonnes commandes =]
cs_lebaronrouge
Messages postés
289
Date d'inscription
lundi 8 mars 2004
Statut
Membre
Dernière intervention
14 février 2009

tient mon code ressurgit du placard,je me rappel même plus si je l'ai finis optimisé,je vais jeter un oeil...

C'est vrai que j'avais pas fais attention à ce détail comme ne pas mettre un nom d'alias qui corresponde déja à une option mirc...
cs_wims
Messages postés
2466
Date d'inscription
vendredi 23 juillet 2004
Statut
Membre
Dernière intervention
1 août 2010
1
change le nom de l'alias ligne 121, remplace sounds par smp et tape /smp :)
Clrore
Messages postés
10
Date d'inscription
samedi 3 mai 2008
Statut
Membre
Dernière intervention
11 mai 2008

* Sound requests are on

voilà tout ce qui s'affiche dans la fenetre de texte...
je n'ai pas la fenetre de configuration de sons comme sur
le screenshot de l'auteur du code....
autres pistes s'il vous plait ?
cs_wims
Messages postés
2466
Date d'inscription
vendredi 23 juillet 2004
Statut
Membre
Dernière intervention
1 août 2010
1
Suffit de taper /sounds dans une editbox de mirc (là ou tu écris)
Clrore
Messages postés
10
Date d'inscription
samedi 3 mai 2008
Statut
Membre
Dernière intervention
11 mai 2008

ça très prometteur, vraiment.

Je vais passer pour un... naze... mais... comment on fait apparaitre la fenetre de configuration des sons une fois le code copié dans 'remote' s'il vous plait ?

( je sais, plus noob que moi.... y a pas )
cs_lebaronrouge
Messages postés
289
Date d'inscription
lundi 8 mars 2004
Statut
Membre
Dernière intervention
14 février 2009

ha bin effectivement nickel chrome ca marche , merci à toi je viens d'apprendre une autre variable bien pratique pour racourcir encore mon code RCA arKanis ;o)
Je continue ma quête du code le + court possible pour cet addon :p
RCA ArKanis
Messages postés
1287
Date d'inscription
mercredi 21 avril 2004
Statut
Membre
Dernière intervention
21 février 2009

pas de while pour ça à mon avis :
if ($did isnum 113-122) { splay %sound [ $+ [ $calc($did - 112) ] ] }

ta ligne $did($dname,%f) splay $($+(%,sound,%g),2) ne veut rien dire ^^
le premier mot de chaque ligne, c'est le nom de la fonction qu'elle utilisera. Sur cette ligne, c'est un nombre ...

en plus tu as alias splay, alors que cet alias est déjà utilisé par mIRC ...
cs_lebaronrouge
Messages postés
289
Date d'inscription
lundi 8 mars 2004
Statut
Membre
Dernière intervention
14 février 2009

arf rien a faire j'ai beau tester dans tous les sens je n'arrive pas à remplacer le reste des variables par des whiles pourtant je reprend le même principe que au dessus mais je bloque ca me renvoi des erreurs.

if ($did == 113) { splay %sound1 }
if ($did == 114) { splay %sound2 }
if ($did == 115) { splay %sound3 }
if ($did == 116) { splay %sound4 }
if ($did == 117) { splay %sound5 }
if ($did == 118) { splay %sound6 }
if ($did == 119) { splay %sound7 }
if ($did == 120) { splay %sound8 }
if ($did == 121) { splay %sound9 }
if ($did == 122) { splay %sound10 }

je remplace par :

alias splay {
var %f 113 ,%g 1 ,%h = 122
while (%f <= %h) {
$did($dname,%f) splay $($+(%,sound,%g),2)
inc %f
inc %g
}
}
et autres variantes genres : $did($dname) %f - $did($dname),%f) etc , j'ai que des erreur de invalides parameters et unknow commands >< , le principe étant le même à part l'action à effectuer (jouer le son correspondant) rien à faire je trouve pas , j'ai capté le principe des whiles mais pas encore bien l'application des placements et noms des variables à mettre pour que ca marche , genre ou mettre exactement les () et les % et les , =(
cs_lebaronrouge
Messages postés
289
Date d'inscription
lundi 8 mars 2004
Statut
Membre
Dernière intervention
14 février 2009

bon j'entame la conversion des autres variables selon le même principe , je me tape des erreurs a gogo mais je persever lol , dur dur
cs_lebaronrouge
Messages postés
289
Date d'inscription
lundi 8 mars 2004
Statut
Membre
Dernière intervention
14 février 2009

j'avais compris que mirc collait pas la variable mais je galerais sur le système de $+ qui ne prenait pas en compte non plus , éffectivement j'aurais du penser à faire une variable sous la forme $($+(%,sound,%b),2) ... je vais voir ca merci à toi de m'aider à faire avancer mon shmilblik wims ;o)
cs_wims
Messages postés
2466
Date d'inscription
vendredi 23 juillet 2004
Statut
Membre
Dernière intervention
1 août 2010
1
Bah en regardant bien, tu aurai vu que mirc ne collait pas la variable %b et donc qu'il affichait %sound et %b dans l'id.
Comme %sound n'existe pas il te met juste %b
Remplace did -a $dname %a %sound $+ %b par did -a $dname %a $($+(%,sound,%b),2) ...
cs_lebaronrouge
Messages postés
289
Date d'inscription
lundi 8 mars 2004
Statut
Membre
Dernière intervention
14 février 2009

oui voila ce que ca m'affiche dans le dialogue ( j'ai pas oublié les accolade) :

http://lebaronrouge1.free.fr/lol/sounderor.png

il m'affiche des chiffre au lieu du nom du son selectionné dans les id
cs_wims
Messages postés
2466
Date d'inscription
vendredi 23 juillet 2004
Statut
Membre
Dernière intervention
1 août 2010
1
bah il manque l'accolade } qui ferme la while mais sinon ca devrait marcher, ya des erreurs ?
cs_lebaronrouge
Messages postés
289
Date d'inscription
lundi 8 mars 2004
Statut
Membre
Dernière intervention
14 février 2009

j'ai viré la colonne que j'ai c/c la au dessus pour mettre a la place le code que tu proposait pour tester , a savoir :

var %a 43 ,%b 1 ,%c = 52
while (%a <= %c) {
did -a $dname %a %sound $+ %b
inc %a
inc %b

j'ai bien compris le principe de l'incrémentation via le var et le while qui le fait fonctionner je dois merde juste sur la mise en pratique mais bon je débute en while la :)
cs_wims
Messages postés
2466
Date d'inscription
vendredi 23 juillet 2004
Statut
Membre
Dernière intervention
1 août 2010
1
euh tu a remplacé tout tes did -a par quoi dans l'init ?
cs_lebaronrouge
Messages postés
289
Date d'inscription
lundi 8 mars 2004
Statut
Membre
Dernière intervention
14 février 2009

parce que la ca me renvoi dans chaques id un chiffre qui va de 1 a 10 au lieu de m'afficher le nom du son sété par la selection lors de l'affichage du dialogue :s
cs_lebaronrouge
Messages postés
289
Date d'inscription
lundi 8 mars 2004
Statut
Membre
Dernière intervention
14 février 2009

did -a $dname 43 %sound1
did -a $dname 44 %sound2
did -a $dname 45 %sound3
did -a $dname 46 %sound4
did -a $dname 47 %sound5
did -a $dname 48 %sound6
did -a $dname 49 %sound7
did -a $dname 50 %sound8
did -a $dname 51 %sound9
did -a $dname 52 %sound10
correspondent à l'init du dialogue , on peut utiliser directement des while dans un init de dialogue??? ou faut faire un alias?
cs_lebaronrouge
Messages postés
289
Date d'inscription
lundi 8 mars 2004
Statut
Membre
Dernière intervention
14 février 2009

id du code réorganisé arkanis ;)
cs_lebaronrouge
Messages postés
289
Date d'inscription
lundi 8 mars 2004
Statut
Membre
Dernière intervention
14 février 2009

ha bin oui mais la j'ai déja du mal alors je vais y aller petit hein ;)puis uen fois que j'aurais réussis à optimiser ce code ci avec les while je pourrais faire de même aux autres de mon script qui conteitn pas mal de code long et répétitif comme celui-ci , et que je voudrais donc optimiser aussi au maximum :)
RCA ArKanis
Messages postés
1287
Date d'inscription
mercredi 21 avril 2004
Statut
Membre
Dernière intervention
21 février 2009

pas forcement croissant
et les deux bornes peuvent varier toutes les deux

on pourrait très bien avoir :
var %a 1, %b 10
while %a <= %b {
inc %a
dec %b
}

voir même aucune incrémentation :
var %ok = 1
while %ok {
if (condition) { ... }
else unset %ok
}

des boucles infinies existent, mais elles font planter ton mIRC (hehe :D) t'en feras un jour, t'inquiètes pas :)
fais ctrl + pause pour stopper ton code avant que mIRC ne soit planté

après, t'auras aussi des boucles dans des boucles (qui elles même peuvent être dans des boucles :D)
enfin bref, c'est vraiment un outil très important et utile, faut absolument t'y mettre si tu veux faire de beaux codes rapides et courts
cs_lebaronrouge
Messages postés
289
Date d'inscription
lundi 8 mars 2004
Statut
Membre
Dernière intervention
14 février 2009

ok donc en fait on peut utiliser plusieur var dans la même boucle tant que celles ci se suivent dans un ordre croissant corect et s'incrémentent donc au fur et à mesure de la boucle afin de passer de la premiere à la suivante et ceci jusque la derniere :)
Merci à toi de consacrer de ton temps à m'aider c'est très bien expliqué (pas comme mac abber et son commentaire aussi constructif et utile qu'un frigidaire au pôle nord).
Je vais donc m'atteler à mettre ton aide en pratique (faut que j'y arrive ca me servira grandement), encore merci ;o)
cs_wims
Messages postés
2466
Date d'inscription
vendredi 23 juillet 2004
Statut
Membre
Dernière intervention
1 août 2010
1
Le but de l'optimisation c'est d'avoir les id ds l'ordre pour pouvoir boucler. je te detaille le code si tu veux :

;on déclare la var %a qui est egal au premier id ou l'on va boucler
;on déclare la var %b qui sera la var utilisé pour %sound
;on déclare la var %c qui définis la fin de la boucle
var %a 43 ,%b 1 ,%c = 52
;tant que %a <= %c ( au debut tant que 43 <= 52 donc )
while (%a <= %c) {
;on ajoute l'info corespondante
did -a $dname %a %sound $+ %b
;on incremente %a pour qu'il arrive jusqu'a "tant que 53 <= 53
inc %a
;on incremente %b car on l'utilise pour afficher les differente variable %sound
inc %b
}

Il te suffit juste de placer les id qui recoive le meme traitement avec seulement un parametre de difference dans l'ordre
cs_lebaronrouge
Messages postés
289
Date d'inscription
lundi 8 mars 2004
Statut
Membre
Dernière intervention
14 février 2009

merci a toi wims pour ce coup de main constructif,je vais tenter d'optimiser comme ca mais faut déja que je comprenne que sont les %a %c %b 1 , car la c'est un peu chinois même si j'ai tout à fait compris le principe qui permet d'obtenir la même chose que mon code mais en évitant de repeter chaque long bout de code pour chaque mêmes actions ;)
Mc_AbBeR
Messages postés
301
Date d'inscription
mercredi 15 juin 2005
Statut
Membre
Dernière intervention
19 février 2007

Les couleurs sont moches.. Ton code est beaucoup trop long, apprend les picwin :)
cs_wims
Messages postés
2466
Date d'inscription
vendredi 23 juillet 2004
Statut
Membre
Dernière intervention
1 août 2010
1
ON *:op:#:{
if ($opnick $me) && (%soundf on) {
.splay %sound6
}
}

devient : on *:op:#:if (($opnick == $me) && (%soundf)) .splay %sound6

devient on *:op:#:if ($opnick == $me && %soundf) .splay %sound6
:x

Pour optimiser ton code tu devrai réorganiser tout tes id, comme ca sur un sclick au lieu de vérifié 20 fois ou ta cliké tu fait tj la meme action en remplacant le dernier parametre

par exemple ici :

# did -a $dname 43 %sound1
# did -a $dname 44 %sound2
# did -a $dname 45 %sound4
# did -a $dname 46 %sound3
# did -a $dname 47 %sound6
# did -a $dname 48 %sound5
# did -a $dname 49 %sound8
# did -a $dname 50 %sound7
# did -a $dname 51 %sound10
# did -a $dname 52 %sound9

fait en sorte que %sound1 corresponde a l'id 43 et %sound10 a l'id 52 et ca donne
var %a 43 ,%b 1 ,%c = 52
while (%a <= %c) {
did -a $dname %a %sound $+ %b
inc %a
inc %b
}

c'est le meme principe ici :

# if ($did == 96) { splay %sound1 }
# if ($did == 114) { splay %sound2 }
# if ($did == 115) { splay %sound3 }
# if ($did == 116) { splay %sound4 }
# if ($did == 117) { splay %sound5 }
# if ($did == 118) { splay %sound6 }
# if ($did == 119) { splay %sound7 }
# if ($did == 120) { splay %sound8 }
# if ($did == 121) { splay %sound9 }
# if ($did == 122) { splay %sound10 }

et egalement le meme ici

# if ($mouse.x isnum 140-210 && $mouse.y isnum 40-60) {
# did -r $dname 43 | unset %sound1 {
# set %sound1 $$sfile( sounds\*.mp3, Choix du son, add) | did -a $dname 43 %sound1
# }
# }
# if ($mouse.x isnum 140-210 && $mouse.y isnum 70-90) {
# did -r $dname 44 | unset %sound2 {
# set %sound2 $$sfile( sounds\*.mp3, Choix du son, add) | did -a $dname 44 %sound2
# }
# }
# if ($mouse.x isnum 140-210 && $mouse.y isnum 100-120) {
# did -r $dname 46 | unset %sound3 {
# set %sound3 $$sfile( sounds\*.mp3, Choix du son, add) | did -a $dname 46 %sound3
# }
# }
# if ($mouse.x isnum 140-210 && $mouse.y isnum 130-150) {
# did -r $dname 45 | unset %sound4 {
# set %sound4 $$sfile( sounds\*.mp3, Choix du son, add) | did -a $dname 45 %sound4
# }
# }
# if ($mouse.x isnum 140-210 && $mouse.y isnum 160-180) {
# did -r $dname 48 | unset %sound5 {
# set %sound5 $$sfile( sounds\*.mp3, Choix du son, add) | did -a $dname 48 %sound5
# }
# }
# if ($mouse.x isnum 140-210 && $mouse.y isnum 195-215) {
# did -r $dname 47 | unset %sound6 {
# set %sound6 $$sfile( sounds\*.mp3, Choix du son, add) | did -a $dname 47 %sound6
# }
# }
# if ($mouse.x isnum 140-210 && $mouse.y isnum 225-245) {
# did -r $dname 50 | unset %sound7 {
# set %sound7 $$sfile( sounds\*.mp3, Choix du son, add) | did -a $dname 50 %sound7
# }
# }
# if ($mouse.x isnum 140-210 && $mouse.y isnum 265-285) {
# did -r $dname 49 | unset %sound8 {
# set %sound8 $$sfile( sounds\*.mp3, Choix du son, add) | did -a $dname 49 %sound8
# }
# }
# if ($mouse.x isnum 140-210 && $mouse.y isnum 295-315) {
# did -r $dname 52 | unset %sound9 {
# set %sound9 $$sfile( sounds\*.mp3, Choix du son, add) | did -a $dname 52 %sound9
# }
# }
# if ($mouse.x isnum 140-210 && $mouse.y isnum 325-345) {
# did -r $dname 51 | unset %sound10 {
# set %sound10 $$sfile( sounds\*.mp3, Choix du son, add) | did -a $dname 51 %sound10
# }
# }
cs_lebaronrouge
Messages postés
289
Date d'inscription
lundi 8 mars 2004
Statut
Membre
Dernière intervention
14 février 2009

ok c'est fait j'ai compris le principe me reste à reussir la mise en oeuvre par rapprt à mon code la c'est pas gagné :s
RCA ArKanis
Messages postés
1287
Date d'inscription
mercredi 21 avril 2004
Statut
Membre
Dernière intervention
21 février 2009

bien sûr :
/help /while
peut-être que de connaître la traduction de while t'aiderait : tant que

sinon regarde des sources sur ce site, pas mal utilisent des boucle while
cs_lebaronrouge
Messages postés
289
Date d'inscription
lundi 8 mars 2004
Statut
Membre
Dernière intervention
14 février 2009

voila qui est fait ;)

Je suis partant pour apprendre encore a l'optimiser et jeter un oeil au while comme conseillé par sorndrixer , mais je n'y connais rien à ca, un peu d'aide? :)
cs_lebaronrouge
Messages postés
289
Date d'inscription
lundi 8 mars 2004
Statut
Membre
Dernière intervention
14 février 2009

rha mince j'ai pas posté le bon ><
RCA ArKanis
Messages postés
1287
Date d'inscription
mercredi 21 avril 2004
Statut
Membre
Dernière intervention
21 février 2009

t'en as oublié plein.
par ex :
ON *:op:#:{
if ($opnick $me) && (%soundf on) {
.splay %sound6
}
}

devient : on *:op:#:if (($opnick == $me) && (%soundf)) .splay %sound6

pareil avec les autres
cs_lebaronrouge
Messages postés
289
Date d'inscription
lundi 8 mars 2004
Statut
Membre
Dernière intervention
14 février 2009

voila c'est fait arkanis ;) merci , autres propositions d'optimisations bienvenues :)
RCA ArKanis
Messages postés
1287
Date d'inscription
mercredi 21 avril 2004
Statut
Membre
Dernière intervention
21 février 2009

remplace tes set %soundc on par set %soundc 1
tes if ( %soundd == off ) par if (!%soundd)
tes elseif ( %soundh == on ) par elseif (%soundh) voir par else { ... }
tes if (%soundi == on) par if (%soundi) ...
cs_lebaronrouge
Messages postés
289
Date d'inscription
lundi 8 mars 2004
Statut
Membre
Dernière intervention
14 février 2009

Merci pour vos commantaires :)
SornDrixer je suis conscient que le coté couleur peut ne pas plaire à tout le monde mais bon un dialogue classique je trouve ca triste.
Pour l'optimisation du code je ne demande qu'à apprendre , les /while je ne maitrise pas du tout encore malheureusement. Un petit exemple que je fasse une maj? ;)
Arkanis je ne saisis pas : "pense pour tes variables %soundi, %soundf, etc ... d'utiliser 1 et 0, c'est bcp plus court" ???
Quand au choix limité à 10 events , j'aurais pus biensur ajouter des emplacements libres de choix pour y entrer ce que l'on veut selon ses gouts , mais en dehors de ces 10 events je ne vois pas trop lesquelles? hormis sil l'on veut par exemple pouvoir faire réagir ce code sur des pseudos ou mots choisis de facon personnelles :)
Mon but étant avant d'apprendre c'est pour cette raison que j'ai posté en débutant et je serais ravis d'optimiser ce code en apprenant comment :)
fjxokt
Messages postés
840
Date d'inscription
vendredi 28 janvier 2005
Statut
Membre
Dernière intervention
25 février 2009

ça dépend pour qui...
RCA ArKanis
Messages postés
1287
Date d'inscription
mercredi 21 avril 2004
Statut
Membre
Dernière intervention
21 février 2009

ben, une solution serait de faire fabriquer ton code à l'aide d'un autre code
tu fais écrire dans un fichier que tu load après. Ca reste très largement abordable
fjxokt
Messages postés
840
Date d'inscription
vendredi 28 janvier 2005
Statut
Membre
Dernière intervention
25 février 2009

un petit combo avec le choix de l'event, ça c'est du concept ;-)
un pb: il serait impossible de créer un code "universel" (pas possible de faire un on *:%var:)
Pas grand chose à dire à part que j'ai rarement vu un dialog aussi laid !
Le code pourrait également être réduit de moitié (les boucles voyons!)
cs_SornDrixer
Messages postés
2087
Date d'inscription
jeudi 12 décembre 2002
Statut
Modérateur
Dernière intervention
30 janvier 2011
2
RCA ArKanis : et il y a que 10 events dans mIRC ? ;) on devrait pouvoir associer l'event de NOTRE CHOIX au son de notre choix, et ne pas être limit à 10 events pré-choisi.
RCA ArKanis
Messages postés
1287
Date d'inscription
mercredi 21 avril 2004
Statut
Membre
Dernière intervention
21 février 2009

sorn, les 10 sons, ce sont parce qu'il y a 10 events (highlight, ...)

m'enfin c'est vrai, le code est très long alors qu'il se répète souvent

les if ($nick == Barman), t'aurais pu les zapper quand tu as collé ici :/

pense pour tes variables %soundi, %soundf, etc ... d'utiliser 1 et 0, c'est bcp plus court
tes if (%variable == on) deviendront if (%variable), et tes if (%variable != on) deviendront if (!%variable)

du coup, t'aurais set %variable 1 et set %variable 0 (voir unset %variable)

plutôt original et au moins t'as fais un dialog ^^ (les picwins c'est mieux si tu veux utiliser des couleurs)
cs_SornDrixer
Messages postés
2087
Date d'inscription
jeudi 12 décembre 2002
Statut
Modérateur
Dernière intervention
30 janvier 2011
2
Dommage, j'avais plus de 10 sons à ajouter, je passe donc mon chemin (comprendre par là qu'il serait bien d'en gérer un nombre illimité)

Ton utilisation de MDX est inutile, tout le monde n'aime pas les couleurs que tu as choisies (fond violet et flèche verte ôO, 2 couleurs qui vont pas vraiment ensemble je pense), et ca encombre inutilement le ZIP.

Pour résumer, en 2 conseils :
- apprend les boucles (/while), ton code sera plus complet et 10 fois plus court (tu as tellement de ligne redondante là)
- oublie MDX (ou alors utilise le, mais dans un cas NECESSAIRE, pour faire une listview, une treeview, etc)

Bonne continuation, en espérant voir une MAJ de ton code ;)