PANNEAU DE CONFIGURATION POUR CHANGER D'ÉCRITURE

cs_ScriptingBen Messages postés 57 Date d'inscription samedi 13 septembre 2008 Statut Membre Dernière intervention 2 juin 2010 - 4 févr. 2009 à 20:16
WorldDMT Messages postés 871 Date d'inscription jeudi 6 juillet 2006 Statut Membre Dernière intervention 6 janvier 2012 - 7 janv. 2010 à 11:15
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/49179-panneau-de-configuration-pour-changer-d-ecriture

WorldDMT Messages postés 871 Date d'inscription jeudi 6 juillet 2006 Statut Membre Dernière intervention 6 janvier 2012 1
7 janv. 2010 à 11:15
Salut
je suis avec Uaip

au passage dans ton did 26 ligne 91 je t'ai déjà dis il existe unset %var1 %var2 %var3

une idé je pense que ça doit etre simple tu refait ton code pour le set %var sous cette base:

id de la %var = 1, 3, 4, 12 selon les couleurs que tu aura besoin chez toioir
donc id1 pour le noir, id3 pour le vert, id4 ect...

et id de la 2eme %var = 101, 103, 104, 112
donc id101 pour le noir ect...

avec l'aide de $rigth() tu utilisera un seul set %var

tu peux utiliser $istok() dans ton code c'est tres utile

if ($istok(1.3.4.12,$did,46)) set %premierelettre $+(,$right($did,2))
elseif ($istok(101.103.104.112,$did,46)) set %text $+(,$right($did,2))

pareil pour ton input event utilise aussi $istok

on *:input:*:{
if (!$istok(/•!•=•&•^•-•+•:•;,$left($1-,1),149) {
say $+(%soulettre $+ %premierelettre $+ %graspl $+ $left($1-,1)) $+  $+ %soulettre $+ %graspl $+ %text $+ %grastext $+ %soutext $+ $mid($1-,2))
halt
}
}

et je repete il faut verifier si le chan n'est pas en mode +c
bref a toi de voir le reste il suffit de tapper /help :)

@+
uaip Messages postés 1466 Date d'inscription mardi 20 février 2007 Statut Membre Dernière intervention 7 février 2011
7 janv. 2010 à 00:53
Salut,
Mon Dieu, quand je relis les codes mIRC, je suis largué, depuis le temps... (j'arrive même plus à comprendre l'optimisation que j'avais faite)

Je te cite: "tout en gardant le code de base, c'est à dire chaque événement ou $did prend un paragraphe, je trouve cela plus claire, personnellement."

C'est typiquement le raisonnement qu'il faut avoir pour ne pas progresser. Un scripteur/programmeur ne choisit ses algos en fonction de leur clarté, mais mais de leur efficacité. Donc tu serais prêt à laisser un code s'exécuter en 3s au lieu de 2ms simplement parce-qu'il est "plus clair" ?
Enfin bon, fais comme tu veux.
cs_ScriptingBen Messages postés 57 Date d'inscription samedi 13 septembre 2008 Statut Membre Dernière intervention 2 juin 2010
7 janv. 2010 à 00:13
Bonjour,

Il y a longtemps que je n'ai pas mit à jour ma source, mais je vais le faire prochainement toujours pour aider ceux qui en ont besoin, tout en gardant le code de base, c'est à dire chaque événement ou $did prend un paragraphe, je trouve cela plus claire, personnellement.

Voila, je vous souhaite de bien en profiter, en attendant la mise à jour ;)

Concernant la question de KiMoW, non je n'ai pas fait pour ma part cette fonction, il suffit de rajouter une condition "Si ce mot fait parti des pseudo, blabla".
uaip Messages postés 1466 Date d'inscription mardi 20 février 2007 Statut Membre Dernière intervention 7 février 2011
3 mars 2009 à 16:51
Salut,
Ouai, mais c'est un site de codes-sources ici. On est pas là pour récupérer des codes tout faits, sur demande.

Libre à toi de modifier le code si tu en as envie.
cs_KiMoW Messages postés 11 Date d'inscription mardi 3 mars 2009 Statut Membre Dernière intervention 13 juin 2010
3 mars 2009 à 04:48
il n'y a pas moyen de sorte que quand on tape un nick
il ne fais qu'une seule couleur :x
Prcq quand je fais couleur de la première lettre vert/gras
et la suite orange
quand je tape un pseudo il n'a pas d'HL vu le code de couleur
il n'y a pas moyen de le developper pour regler ce petit porblème svp =)
Merci d'avance ^^
uaip Messages postés 1466 Date d'inscription mardi 20 février 2007 Statut Membre Dernière intervention 7 février 2011
23 févr. 2009 à 12:32
Moi je pense que if ($left($strip($1-),1) != /) suffit.
WorldDMT Messages postés 871 Date d'inscription jeudi 6 juillet 2006 Statut Membre Dernière intervention 6 janvier 2012 1
23 févr. 2009 à 08:11
pour l'input si je tape ";salut les amis" ou "^Salut les amis" j'aurais pas de couleur je pense si c'est pour les emoicons il va faloir autre methode
uaip Messages postés 1466 Date d'inscription mardi 20 février 2007 Statut Membre Dernière intervention 7 février 2011
22 févr. 2009 à 19:26
Salut,
- $dname retourne le nom du dialog en cours (dans mon exemple, c'est ec_couleurs)
Plus d'aide avec /help $dname

- $iif() est un if/else condensé, sous forme d'identifieur. Syntaxe: $iif(condition,result_1,result_2) avec result_2 optionnel
par exemple,echo -a $iif(2 2,oui,non) -> affiche "oui" en echo, car 2 2
echo -a $iif(2 == 3,oui,non) -> affiche "non" en echo, car 2 != 3
Plus d'aide avec /help $iif() (c'est très bien expliqué)

- did -u : décoche une checkbox
- did -f : met un contrôle en focus
- did -c : coche une checkbox
Plus d'aide avec /help /dialog

Il n'y a pas de secret, il faut impérativement d'aider de l'aide "officielle" de mIRC.

Je cite cette aide :

- Concernant le $iif() :
$iif(C,T,F)
Returns T or F depending on whether the evaluation of the Conditional C is true or false.
$iif(1 == 2, yes, no) returns "no"
$iif() returns F if the conditional returns zero, $false, or $null. For any other value $iif() returns T.
If you don't specify the F parameter, $iif returns a T value if the condition is true, and returns nothing if it's false.
$iif(1 == 2, yes) returns nothing
You can find out more about conditionals in the if-then-else section.

- Concernant les flags -u -c et -f :
-f set focus on id
-c check checkbox/radiobutton list/combo line
-u uncheck checkbox/radiobutton list/combo line

Bonne continuation.
cs_ScriptingBen Messages postés 57 Date d'inscription samedi 13 septembre 2008 Statut Membre Dernière intervention 2 juin 2010
22 févr. 2009 à 19:15
deja les -u -f et -c je comprend pas trop , ensuite ça par exemple:

if ($did 21) set % $+ $iif($dialog($dname).tab 100,ec_soulettre,ec_soutext) $iif($did($did).state,)

les $dname , $iif je comprend pas trop ce que c'est , voila =) et merci pour les conseils.
uaip Messages postés 1466 Date d'inscription mardi 20 février 2007 Statut Membre Dernière intervention 7 février 2011
21 févr. 2009 à 18:51
Oui bon, vu que je n'ai pas touché à cet événement, j'aou oublié de remplacer les noms de variables.
Mais bref, j'ai résumé tes 80 lignes en seulement 4, ne nions pas que c'est plus efficace.
N'hésite pas pour les questions si tu ne comprends pas.
uaip Messages postés 1466 Date d'inscription mardi 20 février 2007 Statut Membre Dernière intervention 7 février 2011
21 févr. 2009 à 18:48
Salut,
Non mais, tu ne trouves pas que de la ligne 41 à 120 (tout l'événement dialog, quoi), c'est très moche ?
C'est là qu'on voit que cette source est "débutant". Tu attribues bêtement des id à tes contrôles puis tu enchaines avec des if en cascade. Ce n'est pas du scripting, ça, c'est de la mocheté.
De plus, après tests, le dialog est affreux, pas du tout fluide. Déjà c'est peu intuitif, puis on ne sait pas si les boutons sont cochés ou pas.

if ($did == 1) { /dialog -m couleurs couleurs }
-> ça sert à quoi, vu qu'aucun id n'est 1 ?
Fais aussi gaffe à tes noms de dialog ou variables, %text peut déjà être utilisé par un autre script.
Dernière chose, l'attribut size n'a besoin que de 4 paramètres (et non 5) et il faut une virgule après les values des contrôles (/help /dialog), donc ton "garantis 100% testé..."

Voilà un petit exemple d'optimisation :

;Pour l'ouvir allez ensuite dans votre menubar ;)
menu menubar {
Couleur d'écriture:dialog -m ec_couleurs ec_couleurs
}
dialog -l ec_couleurs {
title "Couleur: Première lettre"
size 1 -1 250 225
tab "Première lettre", 100, 5 5 242 200
tab "Texte", 101

box "Effet de police", 102, 10 30 230 50
check "Gras", 20, 20 50 70 15
check "Souligné", 21, 100 50 70 15

box "Couleur", 103, 10 90 230 100
radio "Rouge" 4, 20 110 60 19
radio "Bleu" 12, 20 130 60 19
radio "Vert" 3, 20 150 60 19
radio "Noir" 1, 100 110 60 19
radio "Gris" 14, 100 130 60 19
radio "Orange" 7, 180 110 60 19
radio "Violet" 6, 180 130 60 19

button "Réinitialiser" 22, 25 202 80 20
button "Tester" 23, 107 202 50 20
button "OK" 24, 160 202 60 20, ok

}
on *:dialog:ec_couleurs:*:*:{
if ($devent == init) {
did -u $dname 20,21
did -c $dname 1
}
elseif ($devent == sclick) {
if (!$did) return
;Mise à jour du title
dialog -t $dname Couleur: $iif($dialog($dname).tab == 100,Première lettre,Texte)
;Choix de la couleur if ($did <14) set % $+ $iif($dialog($dname).tab 100,ec_premierelettre,ec_text) $+(,$did)
;Choix du gras if ($did 20) set % $+ $iif($dialog($dname).tab 100,ec_grasp1,ec_grastext) $iif($did($did).state,)
;Choix du souligné if ($did 21) set % $+ $iif($dialog($dname).tab 100,ec_soulettre,ec_soutext) $iif($did($did).state,)

if ($did == 22) {
did -u $dname 20,21,4,12,3,1,14,7,6
did -c $dname 1
did -f $dname 100
unset %ec_*
echo -at Couleurs réinitialisées - Couleur par défaut
}
if ($did == 23) {
echo -at 4(Test de la couleur) %ec_soulettre $+ %ec_premierelettre $+ %ec_graspl $+ N $+ %ec_soulettre $+ %ec_graspl $+ %ec_text $+ %ec_grastext $+ %ec_soutext $+ at0_Script Color
}
}
}
on *:input:*: {
if ($left($1-,1) != /) && ($left($1-,1) != !) && ($left($1-,1) != =) && ($left($1-,1) != &) && ($left($1-,1) != ^) && ($left($1-,1) != -) && ($left($1-,1) != +) && ($left($1-,1) != :) && ($left($1-,1) != ;) {
say $+(%soulettre $+ %premierelettre $+ %graspl $+ $left($1-,1)) $+  $+ %soulettre $+ %graspl $+ %text $+ %grastext $+ %soutext $+ $mid($1-,2)) $+  | halt
}
}

Je n'ai pas touché à l'événement input, et il reste quelques trucs à améliorer, mais j'ai surtout voulu te montrer comment jouer avec les id au lieu d'utiliser des if en cascade tous moches.

Bonne continuation.
cs_ScriptingBen Messages postés 57 Date d'inscription samedi 13 septembre 2008 Statut Membre Dernière intervention 2 juin 2010
18 févr. 2009 à 17:04
Maintenant c'est bon. (les smiley de base tel que "^^" ou ":)" vont apparaître avec la couleur par défaut ;))
cs_ScriptingBen Messages postés 57 Date d'inscription samedi 13 septembre 2008 Statut Membre Dernière intervention 2 juin 2010
18 févr. 2009 à 16:56
Au faite, j'ai compris ce que $mid ! :) Merci c'est très pratique ^^
cs_ScriptingBen Messages postés 57 Date d'inscription samedi 13 septembre 2008 Statut Membre Dernière intervention 2 juin 2010
18 févr. 2009 à 16:54
salut, merci pour tes conseils :)

1) enfaite il faudrait que tu m'explique ce que "$mid" =) (mais ça marche lol)

2) ensuite j'ai rajouter quelque chose dans mon on input et il y a quelque chose qui ne me plaisait pas mais ces jours j'ai pas trop eu le temps de le modifier voila.
WorldDMT Messages postés 871 Date d'inscription jeudi 6 juillet 2006 Statut Membre Dernière intervention 6 janvier 2012 1
16 févr. 2009 à 11:47
tu a peut etre modifier le code
j'ai bien testé avantde posté mon commentaire :)

et c'est quoi ce truc que tu as fais dans ton input???

tu peux expliquer pourquoi ou a quoi ça sert

tu n'a tjr pas changer le "$right($1-,$calc($len($1-) - 1)))" pourquoi cette complication tu as la possibilité de faire rien que "$mid($1-,2)"

bref j'attend que tu m'explique pourauoi ces 2 lignes dans ton input

@+
cs_ScriptingBen Messages postés 57 Date d'inscription samedi 13 septembre 2008 Statut Membre Dernière intervention 2 juin 2010
15 févr. 2009 à 13:43
En haut du code veuillez rajouter ça:

menu menubar {
Couleur d'écriture:/dialog -m couleurs couleurs
}
cs_ScriptingBen Messages postés 57 Date d'inscription samedi 13 septembre 2008 Statut Membre Dernière intervention 2 juin 2010
15 févr. 2009 à 13:39
Et pour la menu bar c'est exacte j'ai oublié de mettre le code merci de le rappeler :)
cs_ScriptingBen Messages postés 57 Date d'inscription samedi 13 septembre 2008 Statut Membre Dernière intervention 2 juin 2010
15 févr. 2009 à 13:35
Sinon merci pour les conseils =)
cs_ScriptingBen Messages postés 57 Date d'inscription samedi 13 septembre 2008 Statut Membre Dernière intervention 2 juin 2010
15 févr. 2009 à 13:35
Citation:
je mets le code dans ma remote
j'apuille pour la couleur de la premiere lettre je choisi la couleur BLEU et je n'apuille pas sur un autre bouton j'aurai toute la phrase BLEU!!!

Non parce que après [...] $+ %graspl $+ $left($1-,1)) $+ j'ai mit  (le petit L qui stop la couleur).
WorldDMT Messages postés 871 Date d'inscription jeudi 6 juillet 2006 Statut Membre Dernière intervention 6 janvier 2012 1
10 févr. 2009 à 15:39
salut

plus de 120 lignes pour rien

il existe dejà ce type de code sur le site et le codage tres trop basique

en plus on vois de terribles fautes :/

1- ;Pour l'ouvir allez ensuite dans votre menubar ;)

ah wé ou est la ligne qui prouve ça? normalement il doit avoir un menu exp:

menu menubar {
-
le_nom_du_code:dialog -m couleurs couleurs
-
}

là tu aura "le_nom_du_code" dans le menubar

2- if ($did == 1) { /dialog -m couleurs couleurs }

c'est quoi ça??? tu n'a meme pas d'ID qui porte le numero 1 tu pense que c'est ce que tu aura dans le menubar????

3- si au debut je met juste la couleur de la premiere lettre sans apuillé sur un autre bouton tu pense que tu n'aura pas toute la phrase la meme couleur selectionné?

je donne un exemple

je mets le code dans ma remote
j'apuille pour la couleur de la premiere lettre je choisi la couleur BLEU et je n'apuille pas sur un autre bouton j'aurai toute la phrase BLEU!!!

4- pour ton input

au lieu de ça $right($1-,$calc($len($1-) - 1))

tu mets juste ça $mid($1-,2)

5- si le chan est en mode +c tu ne peut plus rien envoyé sur le chan :/

6- juste pour plus d'info pour le $did == 26 au lieu de plusieurs ligne de unset tu fait un seul

if ($did == 26) {
unset %soulettre %premierelettre %graspl %text %grastext %soutext
echo -at Couleurs réinitialisées
}

"- Ta couleur = Noire " ça veux dire quoi ça? :) et si on change de theme??

la couleurs par defau n'est pas tjr noir

regarde ce code essaye de faire pareil c'est plus simple vu que les ADMs ne vois pas qu'il faut supprimer ce code

voilà un code que j'avais posté ya un ptit temp

http://www.ircfr.com/codes/WORLDDMT-TEXT-COLOR_47650.aspx

@+
uaip Messages postés 1466 Date d'inscription mardi 20 février 2007 Statut Membre Dernière intervention 7 février 2011
5 févr. 2009 à 18:44
Salut, pas besoin de { } quand il n'y a qu'une seule instruction, manque un peu de rigueur dans la syntaxe (selon moi, d'autres diront que non) au niveau de la logique if/elseif et des parenthèses de conditions.
Tu aurais pu optimiser ton code pour éviter les if en cascade (c'est très moche).
Bref, niveau débutant, et non expert.

(aucune froideur dans mon message, c'est simplement qu'il y a peu de chose à dire de ta source, car elle est assez "pauvre". Si ta source marche, tant mieux, mais ce n'est pas exactement le but de ce site).
Bonne continuation.
cs_ScriptingBen Messages postés 57 Date d'inscription samedi 13 septembre 2008 Statut Membre Dernière intervention 2 juin 2010
4 févr. 2009 à 20:16
au cas ou , cet addon est tiré de mon script => Nat0_Script vous pouvez modifier seulement le texte du test de couleur.