<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/">
	<channel>
		<title><![CDATA[Communauté Eggdrop - Releases et support]]></title>
		<link>https://forum.eggdrop.fr/</link>
		<description><![CDATA[Communauté Eggdrop - https://forum.eggdrop.fr]]></description>
		<pubDate>Tue, 28 Apr 2026 16:45:47 +0000</pubDate>
		<generator>MyBB</generator>
		<item>
			<title><![CDATA[Nouveaux scripts]]></title>
			<link>https://forum.eggdrop.fr/showthread.php?tid=1846</link>
			<pubDate>Tue, 16 Dec 2025 15:42:04 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://forum.eggdrop.fr/member.php?action=profile&uid=4232">TeuK</a>]]></dc:creator>
			<guid isPermaLink="false">https://forum.eggdrop.fr/showthread.php?tid=1846</guid>
			<description><![CDATA[Hello,<br />
<br />
Deux nouveaux scripts en téléchargement sur le site :<br />
<br />
DansTonchat v1.14.7 (affichage des quote du site bien connu)<br />
chatGPT v1.3.4 (intégration de chatGPT)<br />
<br />
Merci à MenzAgitat pour ses conseils précieux.<br />
<br />
N.B: ces scripts ont été générés en première mouture avec une IA/LLM et ne sont peut-être pas à la hauteur d'un codeur Tcl chevronné.]]></description>
			<content:encoded><![CDATA[Hello,<br />
<br />
Deux nouveaux scripts en téléchargement sur le site :<br />
<br />
DansTonchat v1.14.7 (affichage des quote du site bien connu)<br />
chatGPT v1.3.4 (intégration de chatGPT)<br />
<br />
Merci à MenzAgitat pour ses conseils précieux.<br />
<br />
N.B: ces scripts ont été générés en première mouture avec une IA/LLM et ne sont peut-être pas à la hauteur d'un codeur Tcl chevronné.]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[welcome.tcl (version 2.2)]]></title>
			<link>https://forum.eggdrop.fr/showthread.php?tid=1838</link>
			<pubDate>Sat, 06 Sep 2025 14:48:38 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://forum.eggdrop.fr/member.php?action=profile&uid=2">CrazyCat</a>]]></dc:creator>
			<guid isPermaLink="false">https://forum.eggdrop.fr/showthread.php?tid=1838</guid>
			<description><![CDATA[Ce script salue les personnes qui entrent sur un canal.<br />
<br />
Il y a trois type de messages, pour saluer les nouveaux arrivants, ceux qui reviennent après une courte absence (entre 1 et 24h) et ceux qui reviennent après une longue absence (plus de 24h).<br />
Les durées indiquées sont celles par défaut et peuvent être changées dans le script (globales pour tous les canaux).<br />
<br />
Les messages sont stockés dans un fichier .ini et peuvent comporter 3 variables:<ul class="mycode_list"><li>%n sera remplacé par le pseudo de la personne<br />
</li>
<li>%c sera remplacé par le canal<br />
</li>
<li>%d sera remplacé par la durée<br />
</li>
</ul>
<br />
Il est possible de mettre plusieurs messages par section, et de définir le mode d'utilisation: random (par défaut) affichera aléatoirement l'un des messages de la section concernée, all les affichera tous dans l'ordre.<br />
<br />
<span style="font-weight: bold;" class="mycode_b">configuration et activation</span><br />
<span style="text-decoration: underline;" class="mycode_u">Configuration dans le script</span><ul class="mycode_list"><li><code class="inline-code">time(few)</code> est le délai (en minutes) à partir duquel un utilisateur qui revient sera à nouveau salué<br />
</li>
<li><code class="inline-code">time(long)</code> est le délai (en minutes) à partir duquel on considère qu'il y a longtemps que l'utilisateur est parti<br />
</li>
<li><code class="inline-code">genick</code> est le masque des pseudos génériques pour lesquels vous voulez envoyer un message demandant d'utiliser un pseudo plus personnel<br />
</li>
<li><code class="inline-code">known</code> est une liste de pseudos pour lesquels vous ne voulez pas que les messages soient diffusés<br />
</li>
<li><code class="inline-code">msg(file)</code> est le répertoire (relatif à eggdrop) où sont stockés les .ini<br />
</li>
</ul>
<span style="text-decoration: underline;" class="mycode_u">Activation</span><br />
Pour activer le script, faites simplement <code class="inline-code">.chanset #canal +welcome</code>. Si vous utilisez un eggdrop 1.10.1 ou supérieur, le .ini sera automatiquement généré, sinon vous devrez faire entrer à nouveau le robot sur le canal (un petit kick ou un <code class="inline-code">.chanset #canal +inactive</code> suivi de <code class="inline-code">.chanset #canal -inactive</code>)<br />
Le mode d'affichage des message se fait avec <code class="inline-code">.chanset #canal wmode &lt;all|random&gt;</code><br />
<br />
<span style="font-weight: bold;" class="mycode_b">Utilisation</span><br />
Vous pouvez gérer les messages en commandes privées avec l'eggdrop. Utilisez <code class="inline-code">/msg eggdrop !wlc help</code> pour avoir une aide succinte.<br />
<br />
<span style="text-decoration: underline;" class="mycode_u">Note</span> la commande <code class="inline-code">!wlc move</code> n'est pas implémentée<br />
<br />
<span style="font-weight: bold;" class="mycode_b"><a href="https://scripts.eggdrop.fr/details-Welcome-s255.html" target="_blank" rel="noopener" class="mycode_url">Téléchargement</a></span>]]></description>
			<content:encoded><![CDATA[Ce script salue les personnes qui entrent sur un canal.<br />
<br />
Il y a trois type de messages, pour saluer les nouveaux arrivants, ceux qui reviennent après une courte absence (entre 1 et 24h) et ceux qui reviennent après une longue absence (plus de 24h).<br />
Les durées indiquées sont celles par défaut et peuvent être changées dans le script (globales pour tous les canaux).<br />
<br />
Les messages sont stockés dans un fichier .ini et peuvent comporter 3 variables:<ul class="mycode_list"><li>%n sera remplacé par le pseudo de la personne<br />
</li>
<li>%c sera remplacé par le canal<br />
</li>
<li>%d sera remplacé par la durée<br />
</li>
</ul>
<br />
Il est possible de mettre plusieurs messages par section, et de définir le mode d'utilisation: random (par défaut) affichera aléatoirement l'un des messages de la section concernée, all les affichera tous dans l'ordre.<br />
<br />
<span style="font-weight: bold;" class="mycode_b">configuration et activation</span><br />
<span style="text-decoration: underline;" class="mycode_u">Configuration dans le script</span><ul class="mycode_list"><li><code class="inline-code">time(few)</code> est le délai (en minutes) à partir duquel un utilisateur qui revient sera à nouveau salué<br />
</li>
<li><code class="inline-code">time(long)</code> est le délai (en minutes) à partir duquel on considère qu'il y a longtemps que l'utilisateur est parti<br />
</li>
<li><code class="inline-code">genick</code> est le masque des pseudos génériques pour lesquels vous voulez envoyer un message demandant d'utiliser un pseudo plus personnel<br />
</li>
<li><code class="inline-code">known</code> est une liste de pseudos pour lesquels vous ne voulez pas que les messages soient diffusés<br />
</li>
<li><code class="inline-code">msg(file)</code> est le répertoire (relatif à eggdrop) où sont stockés les .ini<br />
</li>
</ul>
<span style="text-decoration: underline;" class="mycode_u">Activation</span><br />
Pour activer le script, faites simplement <code class="inline-code">.chanset #canal +welcome</code>. Si vous utilisez un eggdrop 1.10.1 ou supérieur, le .ini sera automatiquement généré, sinon vous devrez faire entrer à nouveau le robot sur le canal (un petit kick ou un <code class="inline-code">.chanset #canal +inactive</code> suivi de <code class="inline-code">.chanset #canal -inactive</code>)<br />
Le mode d'affichage des message se fait avec <code class="inline-code">.chanset #canal wmode &lt;all|random&gt;</code><br />
<br />
<span style="font-weight: bold;" class="mycode_b">Utilisation</span><br />
Vous pouvez gérer les messages en commandes privées avec l'eggdrop. Utilisez <code class="inline-code">/msg eggdrop !wlc help</code> pour avoir une aide succinte.<br />
<br />
<span style="text-decoration: underline;" class="mycode_u">Note</span> la commande <code class="inline-code">!wlc move</code> n'est pas implémentée<br />
<br />
<span style="font-weight: bold;" class="mycode_b"><a href="https://scripts.eggdrop.fr/details-Welcome-s255.html" target="_blank" rel="noopener" class="mycode_url">Téléchargement</a></span>]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[IRC Logger v1.0]]></title>
			<link>https://forum.eggdrop.fr/showthread.php?tid=1761</link>
			<pubDate>Tue, 28 Nov 2023 09:53:14 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://forum.eggdrop.fr/member.php?action=profile&uid=2">CrazyCat</a>]]></dc:creator>
			<guid isPermaLink="false">https://forum.eggdrop.fr/showthread.php?tid=1761</guid>
			<description><![CDATA[<span style="font-weight: bold;" class="mycode_b">IRC Logger</span> est un outil de log d'activité des canaux en base de données pour une utilisation (par exemple) sur un site web, pour des statistiques, des phrases aléatoires.<br />
<br />
Il était initialement prévu en tant que module de <a href="https://scripts.eggdrop.fr/details-ChanRelay-s1.html" target="_blank" rel="noopener" class="mycode_url">Chanrelay</a> mais fonctionne parfaitement de manière autonome.<br />
<br />
<span style="font-weight: bold;" class="mycode_b">Pré-requis</span><ul class="mycode_list"><li>package mysqltcl<br />
</li>
<li>package hooks si vous désirez vous en servir comme module d'un autre script<br />
</li>
</ul>
<br />
<span style="font-weight: bold;" class="mycode_b">Fonctionnalités</span><ul class="mycode_list"><li>Peut être utilisé en tant que module (via les hooks)<br />
</li>
<li>Possibilité de logger l'activité de l'eggdrop lui-même, canal par canal<br />
</li>
</ul>
<br />
<div style="text-align: center;" class="mycode_align"><span style="font-weight: bold;" class="mycode_b"><a href="https://scripts.eggdrop.fr/details-IRC+Logger-s265.html" target="_blank" rel="noopener" class="mycode_url">Téléchargement</a></span></div>
<br />
Quelques infos plus ou moins techniques:<br />
Tout d'abord, ce script peut être adapté pour fonctionner avec sqlite3, il avait initialement été conçu comme ça mais cela pose un problème si plusieurs eggdrops utilisent la même base de données, sqlite étant exclusif en écriture.<br />
<br />
Ce script utilise, lorsque cette fonctionnalité IRCv3 est disponible, <code class="inline-code">account-notify</code> afin d'enregistrer le compte NickServ de l'utilisateur plutôt que son pseudonyme à l'instant t. Ainsi, un utilisateur enregistré et identifié sur les services sera toujours désigné par son pseudo principal dans la base de données.<br />
<br />
Concernant les hooks, et donc la partie modulaire, les procédures doivent être appelées par <code class="inline-code">hook call logger &lt;type&gt; &lt;nick&gt; &lt;chan&gt; &lt;text&gt;</code> <span style="font-weight: bold;" class="mycode_b">sauf dans le cas du join</span> qui ne prend que &lt;nick&gt; et &lt;chan&gt; comme arguments.]]></description>
			<content:encoded><![CDATA[<span style="font-weight: bold;" class="mycode_b">IRC Logger</span> est un outil de log d'activité des canaux en base de données pour une utilisation (par exemple) sur un site web, pour des statistiques, des phrases aléatoires.<br />
<br />
Il était initialement prévu en tant que module de <a href="https://scripts.eggdrop.fr/details-ChanRelay-s1.html" target="_blank" rel="noopener" class="mycode_url">Chanrelay</a> mais fonctionne parfaitement de manière autonome.<br />
<br />
<span style="font-weight: bold;" class="mycode_b">Pré-requis</span><ul class="mycode_list"><li>package mysqltcl<br />
</li>
<li>package hooks si vous désirez vous en servir comme module d'un autre script<br />
</li>
</ul>
<br />
<span style="font-weight: bold;" class="mycode_b">Fonctionnalités</span><ul class="mycode_list"><li>Peut être utilisé en tant que module (via les hooks)<br />
</li>
<li>Possibilité de logger l'activité de l'eggdrop lui-même, canal par canal<br />
</li>
</ul>
<br />
<div style="text-align: center;" class="mycode_align"><span style="font-weight: bold;" class="mycode_b"><a href="https://scripts.eggdrop.fr/details-IRC+Logger-s265.html" target="_blank" rel="noopener" class="mycode_url">Téléchargement</a></span></div>
<br />
Quelques infos plus ou moins techniques:<br />
Tout d'abord, ce script peut être adapté pour fonctionner avec sqlite3, il avait initialement été conçu comme ça mais cela pose un problème si plusieurs eggdrops utilisent la même base de données, sqlite étant exclusif en écriture.<br />
<br />
Ce script utilise, lorsque cette fonctionnalité IRCv3 est disponible, <code class="inline-code">account-notify</code> afin d'enregistrer le compte NickServ de l'utilisateur plutôt que son pseudonyme à l'instant t. Ainsi, un utilisateur enregistré et identifié sur les services sera toujours désigné par son pseudo principal dans la base de données.<br />
<br />
Concernant les hooks, et donc la partie modulaire, les procédures doivent être appelées par <code class="inline-code">hook call logger &lt;type&gt; &lt;nick&gt; &lt;chan&gt; &lt;text&gt;</code> <span style="font-weight: bold;" class="mycode_b">sauf dans le cas du join</span> qui ne prend que &lt;nick&gt; et &lt;chan&gt; comme arguments.]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[VDM]]></title>
			<link>https://forum.eggdrop.fr/showthread.php?tid=1756</link>
			<pubDate>Mon, 13 Nov 2023 17:39:04 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://forum.eggdrop.fr/member.php?action=profile&uid=2024">pheeric</a>]]></dc:creator>
			<guid isPermaLink="false">https://forum.eggdrop.fr/showthread.php?tid=1756</guid>
			<description><![CDATA[Bonsoir <img src="https://forum.eggdrop.fr/images/smilies/smiling.png" alt="Smile" title="Smile" class="smilie smilie_4" /><br />
<br />
Comme je le pensais le VDM a buggué..<br />
<br />
le site est peut être inaccessible (je l'ai relancé que ce WE, cela faisait un moment que je en l'avais utilisé), ou le chemin a encore été modifié...<br />
<span style="font-style: italic;" class="mycode_i">&lt;Bot&gt; Aucune information identifiable n'a pu être récupérée. Le site rencontre peut-être un problème ou bien le layout du site a changé©. VDM.</span><br />
<br />
je joins le tcl, si une bonne âme veut y jeter un zoeil, je vous en serais reconnaissant (enfin les utilisateurs) <br />
<br />
Merci a vous<br />
<br />
<!-- start: postbit_attachments_attachment -->
<br /><!-- start: attachment_icon -->
<img src="https://forum.eggdrop.fr/images/attachtypes/tcl-32.png" title="TCL file" border="0" alt=".tcl" />
<!-- end: attachment_icon -->&nbsp;&nbsp;<a href="attachment.php?aid=318" target="_blank" title="">vdm.tcl</a> (Taille : 28.51 Ko / Téléchargements : 1)
<!-- end: postbit_attachments_attachment -->]]></description>
			<content:encoded><![CDATA[Bonsoir <img src="https://forum.eggdrop.fr/images/smilies/smiling.png" alt="Smile" title="Smile" class="smilie smilie_4" /><br />
<br />
Comme je le pensais le VDM a buggué..<br />
<br />
le site est peut être inaccessible (je l'ai relancé que ce WE, cela faisait un moment que je en l'avais utilisé), ou le chemin a encore été modifié...<br />
<span style="font-style: italic;" class="mycode_i">&lt;Bot&gt; Aucune information identifiable n'a pu être récupérée. Le site rencontre peut-être un problème ou bien le layout du site a changé©. VDM.</span><br />
<br />
je joins le tcl, si une bonne âme veut y jeter un zoeil, je vous en serais reconnaissant (enfin les utilisateurs) <br />
<br />
Merci a vous<br />
<br />
<!-- start: postbit_attachments_attachment -->
<br /><!-- start: attachment_icon -->
<img src="https://forum.eggdrop.fr/images/attachtypes/tcl-32.png" title="TCL file" border="0" alt=".tcl" />
<!-- end: attachment_icon -->&nbsp;&nbsp;<a href="attachment.php?aid=318" target="_blank" title="">vdm.tcl</a> (Taille : 28.51 Ko / Téléchargements : 1)
<!-- end: postbit_attachments_attachment -->]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[tcl Horoscope]]></title>
			<link>https://forum.eggdrop.fr/showthread.php?tid=1750</link>
			<pubDate>Thu, 12 Oct 2023 20:20:40 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://forum.eggdrop.fr/member.php?action=profile&uid=2024">pheeric</a>]]></dc:creator>
			<guid isPermaLink="false">https://forum.eggdrop.fr/showthread.php?tid=1750</guid>
			<description><![CDATA[Bonjour a tous,<br />
<br />
Quel dommage que ça ait planté beaucoup de courage pour remonter tout, ça ne va pas être simple... <br />
<br />
Petite question, cela faisait un bail que je n'avais plus testé le tcl horoscope, qui fonctionnait bien il y a quelques temps (1 mois je pense).<br />
Je voulais donc le relancer ..<br />
<br />
Mais lors du test (le .chanset #salon +horo a bien été fait)<br />
!horo verseau<br />
 <br />
En PV je n'ai que ça :<br />
&lt;HORO&gt;  == VERSEAU ==<br />
<br />
Y a t-il eu des changements ?<br />
<br />
horoscopefr.tcl 0.4.1<br />
eggdrop 1.9.0<br />
<br />
Merci <img src="https://forum.eggdrop.fr/images/smilies/smiling.png" alt="Smile" title="Smile" class="smilie smilie_4" />]]></description>
			<content:encoded><![CDATA[Bonjour a tous,<br />
<br />
Quel dommage que ça ait planté beaucoup de courage pour remonter tout, ça ne va pas être simple... <br />
<br />
Petite question, cela faisait un bail que je n'avais plus testé le tcl horoscope, qui fonctionnait bien il y a quelques temps (1 mois je pense).<br />
Je voulais donc le relancer ..<br />
<br />
Mais lors du test (le .chanset #salon +horo a bien été fait)<br />
!horo verseau<br />
 <br />
En PV je n'ai que ça :<br />
&lt;HORO&gt;  == VERSEAU ==<br />
<br />
Y a t-il eu des changements ?<br />
<br />
horoscopefr.tcl 0.4.1<br />
eggdrop 1.9.0<br />
<br />
Merci <img src="https://forum.eggdrop.fr/images/smilies/smiling.png" alt="Smile" title="Smile" class="smilie smilie_4" />]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Chan Access Filter 1.0]]></title>
			<link>https://forum.eggdrop.fr/showthread.php?tid=1731</link>
			<pubDate>Wed, 25 Sep 2019 08:46:08 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://forum.eggdrop.fr/member.php?action=profile&uid=2">CrazyCat</a>]]></dc:creator>
			<guid isPermaLink="false">https://forum.eggdrop.fr/showthread.php?tid=1731</guid>
			<description><![CDATA[<span style="font-weight: bold;" class="mycode_b">Chan Access Filter</span> permet de mettre des restrictions sur les canaux, basées sur le sexe et/ou l'âge de l'utilisateur à condition que le realname de l'utilisateur soit son ASV sous la forme Age / Sexe / Localisation.<br />
Il permet de définir:<ul class="mycode_list"><li>le sexe autorisé (M/F)<br />
</li>
<li>l'âge minimum<br />
</li>
<li>l'âge maximum<br />
</li>
</ul>
<br />
Par défaut, il n'y a aucune restriction d'accès sur les canaux. Elles s'ajoutent en party-line avec la commande <code class="inline-code">.caf</code>:<br />
<div class="codeblock"><div class="title">Code :</div><div class="body" dir="ltr"><code>.caf #chan sex &lt;U/F/M&gt;<br />
.caf #chan min [0-99]<br />
.caf #chan max [0-99]</code></div></div>Il est aussi possible d'utiliser <code class="inline-code">.chanset #canal caf &lt;U/F/M&gt;:[0-99]:[0:99]</code> mais cette méthode est risquée car aucune vérification n'est faite sur les données entrées.<br />
<br />
<span style="font-weight: bold;" class="mycode_b">TODO</span><ul class="mycode_list"><li>Permettre l'utilisation de message spécifique à chaque ban<br />
</li>
<li>inactiver la restriction d'âge max s'il est inférieur à l'âge min<br />
</li>
<li>... vos suggestions<br />
</li>
</ul>
]]></description>
			<content:encoded><![CDATA[<span style="font-weight: bold;" class="mycode_b">Chan Access Filter</span> permet de mettre des restrictions sur les canaux, basées sur le sexe et/ou l'âge de l'utilisateur à condition que le realname de l'utilisateur soit son ASV sous la forme Age / Sexe / Localisation.<br />
Il permet de définir:<ul class="mycode_list"><li>le sexe autorisé (M/F)<br />
</li>
<li>l'âge minimum<br />
</li>
<li>l'âge maximum<br />
</li>
</ul>
<br />
Par défaut, il n'y a aucune restriction d'accès sur les canaux. Elles s'ajoutent en party-line avec la commande <code class="inline-code">.caf</code>:<br />
<div class="codeblock"><div class="title">Code :</div><div class="body" dir="ltr"><code>.caf #chan sex &lt;U/F/M&gt;<br />
.caf #chan min [0-99]<br />
.caf #chan max [0-99]</code></div></div>Il est aussi possible d'utiliser <code class="inline-code">.chanset #canal caf &lt;U/F/M&gt;:[0-99]:[0:99]</code> mais cette méthode est risquée car aucune vérification n'est faite sur les données entrées.<br />
<br />
<span style="font-weight: bold;" class="mycode_b">TODO</span><ul class="mycode_list"><li>Permettre l'utilisation de message spécifique à chaque ban<br />
</li>
<li>inactiver la restriction d'âge max s'il est inférieur à l'âge min<br />
</li>
<li>... vos suggestions<br />
</li>
</ul>
]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Modification MySQLEGGLog]]></title>
			<link>https://forum.eggdrop.fr/showthread.php?tid=1667</link>
			<pubDate>Wed, 01 Mar 2017 08:16:18 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://forum.eggdrop.fr/member.php?action=profile&uid=3454">protec</a>]]></dc:creator>
			<guid isPermaLink="false">https://forum.eggdrop.fr/showthread.php?tid=1667</guid>
			<description><![CDATA[Bonjour, <br />
<br />
j'ai un petit soucis au niveau du script MySQLEGGLog.<br />
en effet si mes bots annonce exactement la même chose au même moment j'ai un doublon dans la base de données et je ne peux donc pas lancer mes scripts.<br />
<br />
comme je ne connais pas trop bien les fonctions peut-on mettre en place un  "ON DUPLICATE KEY UPDATE" afin de justement eviter d'avoir des doublons<br />
car la le script ne crée par d'index et donc c'est génant ou alors crée un index ?<br />
<br />
si quelqu'un connait une solution.<br />
voici le script : <br />
<br />
<div class="codeblock"><div class="title">Code :</div><div class="body" dir="ltr"><code># Use @ your own risk.<br />
# DO use properly configured flood protection.<br />
# It uses the mysqltcl package @ http://www.xdobry.de/mysqltcl<br />
<br />
# this works for freebsd..<br />
#load /usr/local/lib/tcl8.5/mysqltcl/libmysqltcl.so.2<br />
load /usr/lib/tcltk/mysqltcl-3.05/libmysqltcl3.05.so<br />
# channel name is converted to lower case and an md5 hash of it is made..<br />
# why? if anyone knows a better way to handle the weird accented chars problem, lemme know ;-)<br />
<br />
set dst([md5 [string tolower #INFO]]) info_table<br />
set dst([md5 [string tolower #INFO.Admin]]) admin_table<br />
set dst([md5 [string tolower #DEV]]) DEV_table<br />
<br />
set db_handle [mysqlconnect -host localhost -user xxxxx&nbsp;&nbsp;-password xxxx -db HOSTING]<br />
#die "MySQLEGGLOG: RTFM!"<br />
<br />
putlog "MySQLEGGLog v0.5 loaded!"<br />
<br />
# bind pubm &lt;flags&gt; &lt;mask&gt; &lt;proc&gt;<br />
# procname &lt;nick&gt; &lt;user@host&gt; &lt;handle&gt; &lt;channel&gt; &lt;text&gt;<br />
<br />
bind pubm - * egglog_pubmsg<br />
<br />
proc egglog_pubmsg { nick host handle channel text } {<br />
&nbsp;&nbsp;global dst<br />
&nbsp;&nbsp;set channel [string tolower &#36;channel]<br />
&nbsp;&nbsp;if { [info exists dst([md5 &#36;channel])] == 0 } { return 0 }<br />
&nbsp;&nbsp;if { (&#36;handle == "") || (&#36;handle == "*")} {<br />
&nbsp;&nbsp;&nbsp;&nbsp;set handle &#36;nick<br />
&nbsp;&nbsp;}<br />
<br />
&nbsp;&nbsp;global db_handle<br />
&nbsp;&nbsp;set sql "INSERT DELAYED INTO &#36;dst([md5 &#36;channel]) VALUES(now(), "<br />
&nbsp;&nbsp;set nick [ mysqlescape &#36;nick ]<br />
&nbsp;&nbsp;append sql "'&#36;nick', "<br />
&nbsp;&nbsp;set host [ mysqlescape &#36;host ] <br />
&nbsp;&nbsp;append sql "'&#36;host', "<br />
&nbsp;&nbsp;set channel [ mysqlescape &#36;channel ]<br />
&nbsp;&nbsp;append sql "'&#36;channel', "<br />
&nbsp;&nbsp;set text [mysqlescape &#36;text]<br />
&nbsp;&nbsp;append sql "'&#36;text', "<br />
&nbsp;&nbsp;append sql "'PRIVMSG', "<br />
&nbsp;&nbsp;append sql "'') "<br />
&nbsp;&nbsp;set result [mysqlexec &#36;db_handle &#36;sql]<br />
&nbsp;&nbsp;if {&#36;result != 1} {<br />
&nbsp;&nbsp;&nbsp;&nbsp;putlog "Couldn't execute &#36;sql on the server!"<br />
&nbsp;&nbsp;}<br />
}<br />
<br />
# bind notc &lt;flags&gt; &lt;mask&gt; &lt;proc&gt;<br />
# procname &lt;nick&gt; &lt;user@host&gt; &lt;handle&gt; &lt;text&gt; &lt;dest&gt;<br />
<br />
bind notc - * egglog_pubnotc <br />
<br />
proc egglog_pubnotc { nick host handle text dest } {<br />
&nbsp;&nbsp;global dst<br />
&nbsp;&nbsp; set channel [string tolower &#36;dest]<br />
&nbsp;&nbsp;if { [info exists dst([md5 &#36;channel])] == 0 } { return 0 }<br />
if {(&#36;handle == "") || (&#36;handle == "*")} {<br />
&nbsp;&nbsp;&nbsp;&nbsp;set handle &#36;nick<br />
&nbsp;&nbsp;}<br />
global db_handle<br />
&nbsp;&nbsp;set sql "INSERT DELAYED INTO &#36;dst([md5 &#36;channel]) VALUES(now(), "<br />
&nbsp;&nbsp;set nick [ mysqlescape &#36;nick ]<br />
&nbsp;&nbsp;append sql "'&#36;nick', "<br />
&nbsp;&nbsp;set host [ mysqlescape &#36;host ]<br />
&nbsp;&nbsp;append sql "'&#36;host', "<br />
&nbsp;&nbsp;set dest [ mysqlescape &#36;dest ]<br />
&nbsp;&nbsp;append sql "'&#36;dest', "<br />
&nbsp;&nbsp;set text [mysqlescape &#36;text]<br />
&nbsp;&nbsp;append sql "'&#36;text', "<br />
&nbsp;&nbsp;append sql "'NOTICE', "<br />
&nbsp;&nbsp;append sql "'') "<br />
&nbsp;&nbsp;set result [mysqlexec &#36;db_handle &#36;sql]<br />
&nbsp;&nbsp;if {&#36;result != 1} {<br />
&nbsp;&nbsp;&nbsp;&nbsp;putlog "Couldn't execute &#36;sql on the server!"<br />
&nbsp;&nbsp;}<br />
}<br />
<br />
# bind join &lt;flags&gt; &lt;mask&gt; &lt;proc&gt;<br />
# procname &lt;nick&gt; &lt;user@host&gt; &lt;handle&gt; &lt;channel&gt;<br />
<br />
bind join - * egglog_join<br />
<br />
proc egglog_join { nick host handle channel } {<br />
&nbsp;&nbsp;&nbsp;&nbsp;global dst<br />
&nbsp;&nbsp;&nbsp;&nbsp;set channel [string tolower &#36;channel]<br />
&nbsp;&nbsp;if { [info exists dst([md5 &#36;channel])] == 0 } { return 0 }<br />
if {(&#36;handle == "") || (&#36;handle == "*")} {<br />
&nbsp;&nbsp;&nbsp;&nbsp;set handle &#36;nick<br />
&nbsp;&nbsp;}<br />
global db_handle<br />
&nbsp;&nbsp;set sql "INSERT DELAYED INTO &#36;dst([md5 &#36;channel]) VALUES(now(), "<br />
&nbsp;&nbsp;set nick [ mysqlescape &#36;nick ]<br />
&nbsp;&nbsp;append sql "'&#36;nick', "<br />
&nbsp;&nbsp;set host [ mysqlescape &#36;host ]<br />
&nbsp;&nbsp;append sql "'&#36;host', "<br />
&nbsp;&nbsp;set channel [ mysqlescape &#36;channel ]<br />
&nbsp;&nbsp;append sql "'&#36;channel', "<br />
&nbsp;&nbsp;append sql "'', "<br />
&nbsp;&nbsp;append sql "'JOIN',"<br />
&nbsp;&nbsp;append sql "'') "<br />
&nbsp;&nbsp;set result [mysqlexec &#36;db_handle &#36;sql]<br />
&nbsp;&nbsp;if {&#36;result != 1} {<br />
&nbsp;&nbsp;&nbsp;&nbsp;putlog "Couldn't execute &#36;sql on the server!"<br />
&nbsp;&nbsp;}<br />
}<br />
<br />
# bind part &lt;flags&gt; &lt;mask&gt; &lt;proc&gt;<br />
# procname &lt;nick&gt; &lt;user@host&gt; &lt;handle&gt; &lt;channel&gt; &lt;msg&gt;<br />
<br />
bind part - * egglog_part<br />
 <br />
proc egglog_part { nick host handle channel msg} {<br />
&nbsp;&nbsp;&nbsp;&nbsp;global dst<br />
&nbsp;&nbsp;&nbsp;&nbsp;set channel [string tolower &#36;channel]<br />
&nbsp;&nbsp;if { [info exists dst([md5 &#36;channel])] == 0 } { return 0 } <br />
if {(&#36;handle == "") || (&#36;handle == "*")} {<br />
&nbsp;&nbsp;&nbsp;&nbsp;set handle &#36;nick<br />
&nbsp;&nbsp;}<br />
global db_handle<br />
&nbsp;&nbsp;set sql "INSERT DELAYED INTO &#36;dst([md5 &#36;channel]) VALUES(now(), "<br />
&nbsp;&nbsp;set nick [ mysqlescape &#36;nick ]<br />
&nbsp;&nbsp;append sql "'&#36;nick', "<br />
&nbsp;&nbsp;set host [ mysqlescape &#36;host ]<br />
&nbsp;&nbsp;append sql "'&#36;host', "<br />
&nbsp;&nbsp;set channel [ mysqlescape &#36;channel ]<br />
&nbsp;&nbsp;append sql "'&#36;channel', "<br />
&nbsp;&nbsp;set msg [ mysqlescape &#36;msg ]<br />
&nbsp;&nbsp;append sql "'&#36;msg', "<br />
&nbsp;&nbsp;append sql "'PART',"<br />
&nbsp;&nbsp;append sql "'') "<br />
&nbsp;&nbsp;set result [mysqlexec &#36;db_handle &#36;sql]<br />
&nbsp;&nbsp;if {&#36;result != 1} {<br />
&nbsp;&nbsp;&nbsp;&nbsp;putlog "Couldn't execute &#36;sql on the server!"<br />
&nbsp;&nbsp;}<br />
}<br />
<br />
<br />
# bind sign &lt;flags&gt; &lt;mask&gt; &lt;proc&gt;<br />
# procname &lt;nick&gt; &lt;user@host&gt; &lt;handle&gt; &lt;channel&gt; &lt;reason&gt;<br />
<br />
bind sign - * egglog_quit<br />
<br />
proc egglog_quit { nick host handle channel msg} {<br />
&nbsp;&nbsp;&nbsp;&nbsp;global dst<br />
&nbsp;&nbsp;&nbsp;&nbsp;set channel [string tolower &#36;channel]<br />
&nbsp;&nbsp;if { [info exists dst([md5 &#36;channel])] == 0 } { return 0 } <br />
if {(&#36;handle == "") || (&#36;handle == "*")} {<br />
&nbsp;&nbsp;&nbsp;&nbsp;set handle &#36;nick<br />
&nbsp;&nbsp;}<br />
global db_handle<br />
&nbsp;&nbsp;set sql "INSERT DELAYED INTO &#36;dst([md5 &#36;channel]) VALUES(now(), "<br />
&nbsp;&nbsp;set nick [ mysqlescape &#36;nick ]<br />
&nbsp;&nbsp;append sql "'&#36;nick', "<br />
&nbsp;&nbsp;set host [ mysqlescape &#36;host ]<br />
&nbsp;&nbsp;append sql "'&#36;host', "<br />
&nbsp;&nbsp;set channel [ mysqlescape &#36;channel ]<br />
&nbsp;&nbsp;append sql "'&#36;channel', "<br />
&nbsp;&nbsp;set msg [ mysqlescape &#36;msg ]<br />
&nbsp;&nbsp;append sql "'&#36;msg', "<br />
&nbsp;&nbsp;append sql "'QUIT',"<br />
&nbsp;&nbsp;append sql "'') "<br />
&nbsp;&nbsp;set result [mysqlexec &#36;db_handle &#36;sql]<br />
&nbsp;&nbsp;if {&#36;result != 1} {<br />
&nbsp;&nbsp;&nbsp;&nbsp;putlog "Couldn't execute &#36;sql on the server!"<br />
&nbsp;&nbsp;}<br />
}<br />
<br />
# bind topc &lt;flags&gt; &lt;mask&gt; &lt;proc&gt;<br />
# procname &lt;nick&gt; &lt;user@host&gt; &lt;handle&gt; &lt;channel&gt; &lt;topic&gt;<br />
<br />
bind topc - * egglog_topic<br />
<br />
proc egglog_topic { nick host handle channel msg} {<br />
&nbsp;&nbsp;&nbsp;&nbsp;global dst<br />
&nbsp;&nbsp;&nbsp;&nbsp;set channel [string tolower &#36;channel]<br />
&nbsp;&nbsp;if { [info exists dst([md5 &#36;channel])] == 0 } { return 0 } <br />
if {(&#36;handle == "") || (&#36;handle == "*")} {<br />
&nbsp;&nbsp;&nbsp;&nbsp;set handle &#36;nick<br />
&nbsp;&nbsp;}<br />
global db_handle<br />
&nbsp;&nbsp;set sql "INSERT DELAYED INTO &#36;dst([md5 &#36;channel]) VALUES(now(), "<br />
&nbsp;&nbsp;set nick [ mysqlescape &#36;nick ]<br />
&nbsp;&nbsp;append sql "'&#36;nick', "<br />
&nbsp;&nbsp;set host [ mysqlescape &#36;host ]<br />
&nbsp;&nbsp;append sql "'&#36;host', "<br />
&nbsp;&nbsp;set channel [ mysqlescape &#36;channel ]<br />
&nbsp;&nbsp;append sql "'&#36;channel', "<br />
&nbsp;&nbsp;set msg [mysqlescape &#36;msg]<br />
&nbsp;&nbsp;append sql "'&#36;msg', "<br />
&nbsp;&nbsp;append sql "'TOPIC',"<br />
&nbsp;&nbsp;append sql "'') "<br />
&nbsp;&nbsp;set result [mysqlexec &#36;db_handle &#36;sql]<br />
&nbsp;&nbsp;if {&#36;result != 1} {<br />
&nbsp;&nbsp;&nbsp;&nbsp;putlog "Couldn't execute &#36;sql on the server!"<br />
&nbsp;&nbsp;}<br />
}<br />
<br />
# bind kick &lt;flags&gt; &lt;mask&gt; &lt;proc&gt;<br />
# procname &lt;nick&gt; &lt;user@host&gt; &lt;handle&gt; &lt;channel&gt; &lt;target&gt; &lt;reason&gt;<br />
<br />
bind kick - * egglog_kick<br />
<br />
proc egglog_kick { nick host handle channel target action_data } {<br />
&nbsp;&nbsp;&nbsp;&nbsp;global dst<br />
&nbsp;&nbsp;&nbsp;&nbsp;set channel [string tolower &#36;channel]<br />
&nbsp;&nbsp;if { [info exists dst([md5 &#36;channel])] == 0 } { return 0 } <br />
if {(&#36;handle == "") || (&#36;handle == "*")} {<br />
&nbsp;&nbsp;&nbsp;&nbsp;set handle &#36;nick<br />
&nbsp;&nbsp;}<br />
global db_handle<br />
&nbsp;&nbsp;set sql "INSERT DELAYED INTO &#36;dst([md5 &#36;channel]) VALUES(now(), "<br />
&nbsp;&nbsp;set nick [ mysqlescape &#36;nick ]<br />
&nbsp;&nbsp;append sql "'&#36;nick', "<br />
&nbsp;&nbsp;set host [ mysqlescape &#36;host ]<br />
&nbsp;&nbsp;append sql "'&#36;host', "<br />
&nbsp;&nbsp;set channel [ mysqlescape &#36;channel ]<br />
&nbsp;&nbsp;append sql "'&#36;channel', "<br />
&nbsp;&nbsp;set target [ mysqlescape &#36;target ]<br />
&nbsp;&nbsp;append sql "'&#36;target', "<br />
&nbsp;&nbsp;append sql "'KICK',"<br />
&nbsp;&nbsp;set action_data [mysqlescape &#36;action_data ]<br />
&nbsp;&nbsp;append sql "'&#36;action_data') "<br />
&nbsp;&nbsp;set result [mysqlexec &#36;db_handle &#36;sql]<br />
&nbsp;&nbsp;if {&#36;result != 1} {<br />
&nbsp;&nbsp;&nbsp;&nbsp;putlog "Couldn't execute &#36;sql on the server!"<br />
&nbsp;&nbsp;}<br />
}<br />
<br />
# bind nick &lt;flags&gt; &lt;mask&gt; &lt;proc&gt;<br />
# procname &lt;nick&gt; &lt;user@host&gt; &lt;handle&gt; &lt;channel&gt; &lt;newnick&gt;<br />
<br />
bind nick - * egglog_nick<br />
<br />
proc egglog_nick { nick host handle channel newnick } {<br />
&nbsp;&nbsp;&nbsp;&nbsp;global dst<br />
&nbsp;&nbsp;&nbsp;&nbsp;set channel [string tolower &#36;channel]<br />
&nbsp;&nbsp;if { [info exists dst([md5 &#36;channel])] == 0 } { return 0 } <br />
if {(&#36;handle == "") || (&#36;handle == "*")} {<br />
&nbsp;&nbsp;&nbsp;&nbsp;set handle &#36;nick<br />
&nbsp;&nbsp;}<br />
global db_handle<br />
&nbsp;&nbsp;set sql "INSERT DELAYED INTO &#36;dst([md5 &#36;channel]) VALUES(now(), "<br />
&nbsp;&nbsp;set nick [ mysqlescape &#36;nick ]<br />
&nbsp;&nbsp;append sql "'&#36;nick', "<br />
&nbsp;&nbsp;set host [ mysqlescape &#36;host ]<br />
&nbsp;&nbsp;append sql "'&#36;host', "<br />
&nbsp;&nbsp;set channel [ mysqlescape &#36;channel ]<br />
&nbsp;&nbsp;append sql "'&#36;channel', "<br />
&nbsp;&nbsp;set newnick [ mysqlescape &#36;newnick ]<br />
&nbsp;&nbsp;append sql "'&#36;newnick', "<br />
&nbsp;&nbsp;append sql "'NICK',"<br />
&nbsp;&nbsp;append sql "'') "<br />
&nbsp;&nbsp;set result [mysqlexec &#36;db_handle &#36;sql]<br />
&nbsp;&nbsp;if {&#36;result != 1} {<br />
&nbsp;&nbsp;&nbsp;&nbsp;putlog "Couldn't execute &#36;sql on the server!"<br />
&nbsp;&nbsp;}<br />
}<br />
<br />
# bind mode &lt;flags&gt; &lt;mask&gt; &lt;proc&gt;<br />
# proc-name &lt;nick&gt; &lt;user@host&gt; &lt;handle&gt; &lt;channel&gt; &lt;mode-change&gt; &lt;victim&gt;<br />
<br />
bind mode - * egglog_mode<br />
<br />
proc egglog_mode { nick host handle channel modechange victim } {<br />
&nbsp;&nbsp;&nbsp;&nbsp;global dst<br />
&nbsp;&nbsp;&nbsp;&nbsp;set channel [string tolower &#36;channel]<br />
&nbsp;&nbsp;if { [info exists dst([md5 &#36;channel])] == 0 } { return 0 } <br />
if {(&#36;handle == "") || (&#36;handle == "*")} {<br />
&nbsp;&nbsp;&nbsp;&nbsp;set handle &#36;nick<br />
&nbsp;&nbsp;}<br />
global db_handle<br />
&nbsp;&nbsp;set sql "INSERT DELAYED INTO &#36;dst([md5 &#36;channel]) VALUES(now(), "<br />
&nbsp;&nbsp;set nick [ mysqlescape &#36;nick ]<br />
&nbsp;&nbsp;append sql "'&#36;nick', "<br />
&nbsp;&nbsp;set host [ mysqlescape &#36;host ]<br />
&nbsp;&nbsp;append sql "'&#36;host', "<br />
&nbsp;&nbsp;set channel [ mysqlescape &#36;channel ]<br />
&nbsp;&nbsp;append sql "'&#36;channel', "<br />
&nbsp;&nbsp;set modechange [ mysqlescape &#36;modechange ]<br />
&nbsp;&nbsp;append sql "'&#36;modechange', "<br />
&nbsp;&nbsp;append sql "'MODE',"<br />
&nbsp;&nbsp;set victim [ mysqlescape &#36;victim ]<br />
&nbsp;&nbsp;append sql "'&#36;victim') "<br />
&nbsp;&nbsp;set result [mysqlexec &#36;db_handle &#36;sql]<br />
&nbsp;&nbsp;if {&#36;result != 1} {<br />
&nbsp;&nbsp;&nbsp;&nbsp;putlog "Couldn't execute &#36;sql on the server!"<br />
&nbsp;&nbsp;}<br />
}<br />
<br />
# bind ctcp &lt;flags&gt; &lt;keyword&gt; &lt;proc&gt;<br />
# proc-name &lt;nick&gt; &lt;user@host&gt; &lt;handle&gt; &lt;dest&gt; &lt;keyword&gt; &lt;text&gt;<br />
<br />
bind ctcp - * egglog_ctcp<br />
<br />
proc egglog_ctcp { nick host handle dest keyword text } {<br />
&nbsp;&nbsp;&nbsp;&nbsp;global dst<br />
&nbsp;&nbsp;&nbsp;&nbsp;set channel [string tolower &#36;dest]<br />
&nbsp;&nbsp;if { [info exists dst([md5 &#36;channel])] == 0 } { return 0 } <br />
if {(&#36;handle == "") || (&#36;handle == "*")} {<br />
&nbsp;&nbsp;&nbsp;&nbsp;set handle &#36;nick<br />
&nbsp;&nbsp;}<br />
global db_handle<br />
&nbsp;&nbsp;set sql "INSERT DELAYED INTO &#36;dst([md5 &#36;channel]) VALUES(now(), "<br />
&nbsp;&nbsp;set nick [ mysqlescape &#36;nick ]<br />
&nbsp;&nbsp;append sql "'&#36;nick', "<br />
&nbsp;&nbsp;set host [ mysqlescape &#36;host ]<br />
&nbsp;&nbsp;append sql "'&#36;host', "<br />
&nbsp;&nbsp;set dest [ mysqlescape &#36;dest ]<br />
&nbsp;&nbsp;append sql "'&#36;dest', "<br />
&nbsp;&nbsp;set keyword [mysqlescape &#36;keyword]<br />
&nbsp;&nbsp;append sql "'&#36;keyword', "<br />
&nbsp;&nbsp;append sql "'CTCP',"<br />
&nbsp;&nbsp;set text [mysqlescape &#36;text]<br />
&nbsp;&nbsp;append sql "'&#36;text') "<br />
&nbsp;&nbsp;set result [mysqlexec &#36;db_handle &#36;sql]<br />
&nbsp;&nbsp;if {&#36;result != 1} {<br />
&nbsp;&nbsp;&nbsp;&nbsp;putlog "Couldn't execute &#36;sql on the server!"<br />
&nbsp;&nbsp;}<br />
}<br />
<br />
# bind ctcr &lt;flags&gt; &lt;keyword&gt; &lt;proc&gt;<br />
# proc-name &lt;nick&gt; &lt;user@host&gt; &lt;handle&gt; &lt;dest&gt; &lt;keyword&gt; &lt;text&gt;<br />
<br />
bind ctcr - * egglog_ctcpreply<br />
<br />
proc egglog_ctcpreply { nick host handle dest keyword text } {<br />
&nbsp;&nbsp;&nbsp;&nbsp;global dst<br />
&nbsp;&nbsp;&nbsp;&nbsp;set channel [string tolower &#36;dest]<br />
&nbsp;&nbsp;if { [info exists dst([md5 &#36;channel])] == 0 } { return 0 } <br />
if {(&#36;handle == "") || (&#36;handle == "*")} {<br />
&nbsp;&nbsp;&nbsp;&nbsp;set handle &#36;nick<br />
&nbsp;&nbsp;}<br />
global db_handle<br />
&nbsp;&nbsp;set sql "INSERT DELAYED INTO &#36;dst([md5 &#36;channel]) VALUES(now(), "<br />
&nbsp;&nbsp;set nick [ mysqlescape &#36;nick ]<br />
&nbsp;&nbsp;append sql "'&#36;nick', "<br />
&nbsp;&nbsp;set host [ mysqlescape &#36;host ]<br />
&nbsp;&nbsp;append sql "'&#36;host', "<br />
&nbsp;&nbsp;set dest [ mysqlescape &#36;dest ]<br />
&nbsp;&nbsp;append sql "'&#36;dest', "<br />
&nbsp;&nbsp;set keyword [mysqlescape &#36;keyword]<br />
&nbsp;&nbsp;append sql "'&#36;keyword', "<br />
&nbsp;&nbsp;append sql "'CTCP-REPLY',"<br />
&nbsp;&nbsp;set text [mysqlescape &#36;text]<br />
&nbsp;&nbsp;append sql "'&#36;text') "<br />
&nbsp;&nbsp;set result [mysqlexec &#36;db_handle &#36;sql]<br />
&nbsp;&nbsp;if {&#36;result != 1} {<br />
&nbsp;&nbsp;&nbsp;&nbsp;putlog "Couldn't execute &#36;sql on the server!"<br />
&nbsp;&nbsp;}<br />
}<br />
<br />
# bind splt &lt;flags&gt; &lt;mask&gt; &lt;proc&gt;<br />
# procname &lt;nick&gt; &lt;user@host&gt; &lt;handle&gt; &lt;channel&gt;<br />
<br />
bind splt - * egglog_split<br />
<br />
proc egglog_split { nick host handle channel } {<br />
&nbsp;&nbsp;&nbsp;&nbsp;global dst<br />
&nbsp;&nbsp;&nbsp;&nbsp;set channel [string tolower &#36;channel]<br />
&nbsp;&nbsp;if { [info exists dst([md5 &#36;channel])] == 0 } { return 0 } <br />
if {(&#36;handle == "") || (&#36;handle == "*")} {<br />
&nbsp;&nbsp;&nbsp;&nbsp;set handle &#36;nick<br />
&nbsp;&nbsp;}<br />
global db_handle<br />
&nbsp;&nbsp;set sql "INSERT DELAYED INTO &#36;dst([md5 &#36;channel]) VALUES(now(), "<br />
&nbsp;&nbsp;set nick [ mysqlescape &#36;nick ]<br />
&nbsp;&nbsp;append sql "'&#36;nick', "<br />
&nbsp;&nbsp;set host [ mysqlescape &#36;host ]<br />
&nbsp;&nbsp;append sql "'&#36;host', "<br />
&nbsp;&nbsp;set channel [ mysqlescape &#36;channel ]<br />
&nbsp;&nbsp;append sql "'&#36;channel', "<br />
&nbsp;&nbsp;append sql "'', "<br />
&nbsp;&nbsp;append sql "'NETSPLIT',"<br />
&nbsp;&nbsp;append sql "'') "<br />
&nbsp;&nbsp;set result [mysqlexec &#36;db_handle &#36;sql]<br />
&nbsp;&nbsp;if {&#36;result != 1} {<br />
&nbsp;&nbsp;&nbsp;&nbsp;putlog "Couldn't execute &#36;sql on the server!"<br />
&nbsp;&nbsp;}<br />
}<br />
<br />
# bind rejn &lt;flags&gt; &lt;mask&gt; &lt;proc&gt;<br />
# procname &lt;nick&gt; &lt;user@host&gt; &lt;handle&gt; &lt;channel&gt;<br />
<br />
bind rejn - * egglog_rejoin<br />
<br />
proc egglog_rejoin { nick host handle channel } {<br />
&nbsp;&nbsp;&nbsp;&nbsp;global dst<br />
&nbsp;&nbsp; set channel [string tolower &#36;channel]<br />
&nbsp;&nbsp;if { [info exists dst([md5 &#36;channel])] == 0 } { return 0 } <br />
if {(&#36;handle == "") || (&#36;handle == "*")} {<br />
&nbsp;&nbsp;&nbsp;&nbsp;set handle &#36;nick<br />
&nbsp;&nbsp;}<br />
global db_handle<br />
&nbsp;&nbsp;set sql "INSERT DELAYED INTO &#36;dst([md5 &#36;channel]) VALUES(now(), "<br />
&nbsp;&nbsp;set nick [ mysqlescape &#36;nick ]<br />
&nbsp;&nbsp;append sql "'&#36;nick', "<br />
&nbsp;&nbsp;set host [ mysqlescape &#36;host ]<br />
&nbsp;&nbsp;append sql "'&#36;host', "<br />
&nbsp;&nbsp;set channel [ mysqlescape &#36;channel ]<br />
&nbsp;&nbsp;append sql "'&#36;channel', "<br />
&nbsp;&nbsp;append sql "'', "<br />
&nbsp;&nbsp;append sql "'REJOIN',"<br />
&nbsp;&nbsp;append sql "'') "<br />
&nbsp;&nbsp;set result [mysqlexec &#36;db_handle &#36;sql]<br />
&nbsp;&nbsp;if {&#36;result != 1} {<br />
&nbsp;&nbsp;&nbsp;&nbsp;putlog "Couldn't execute &#36;sql on the server!"<br />
&nbsp;&nbsp;}<br />
}</code></div></div><br />
Merci pour votre aide]]></description>
			<content:encoded><![CDATA[Bonjour, <br />
<br />
j'ai un petit soucis au niveau du script MySQLEGGLog.<br />
en effet si mes bots annonce exactement la même chose au même moment j'ai un doublon dans la base de données et je ne peux donc pas lancer mes scripts.<br />
<br />
comme je ne connais pas trop bien les fonctions peut-on mettre en place un  "ON DUPLICATE KEY UPDATE" afin de justement eviter d'avoir des doublons<br />
car la le script ne crée par d'index et donc c'est génant ou alors crée un index ?<br />
<br />
si quelqu'un connait une solution.<br />
voici le script : <br />
<br />
<div class="codeblock"><div class="title">Code :</div><div class="body" dir="ltr"><code># Use @ your own risk.<br />
# DO use properly configured flood protection.<br />
# It uses the mysqltcl package @ http://www.xdobry.de/mysqltcl<br />
<br />
# this works for freebsd..<br />
#load /usr/local/lib/tcl8.5/mysqltcl/libmysqltcl.so.2<br />
load /usr/lib/tcltk/mysqltcl-3.05/libmysqltcl3.05.so<br />
# channel name is converted to lower case and an md5 hash of it is made..<br />
# why? if anyone knows a better way to handle the weird accented chars problem, lemme know ;-)<br />
<br />
set dst([md5 [string tolower #INFO]]) info_table<br />
set dst([md5 [string tolower #INFO.Admin]]) admin_table<br />
set dst([md5 [string tolower #DEV]]) DEV_table<br />
<br />
set db_handle [mysqlconnect -host localhost -user xxxxx&nbsp;&nbsp;-password xxxx -db HOSTING]<br />
#die "MySQLEGGLOG: RTFM!"<br />
<br />
putlog "MySQLEGGLog v0.5 loaded!"<br />
<br />
# bind pubm &lt;flags&gt; &lt;mask&gt; &lt;proc&gt;<br />
# procname &lt;nick&gt; &lt;user@host&gt; &lt;handle&gt; &lt;channel&gt; &lt;text&gt;<br />
<br />
bind pubm - * egglog_pubmsg<br />
<br />
proc egglog_pubmsg { nick host handle channel text } {<br />
&nbsp;&nbsp;global dst<br />
&nbsp;&nbsp;set channel [string tolower &#36;channel]<br />
&nbsp;&nbsp;if { [info exists dst([md5 &#36;channel])] == 0 } { return 0 }<br />
&nbsp;&nbsp;if { (&#36;handle == "") || (&#36;handle == "*")} {<br />
&nbsp;&nbsp;&nbsp;&nbsp;set handle &#36;nick<br />
&nbsp;&nbsp;}<br />
<br />
&nbsp;&nbsp;global db_handle<br />
&nbsp;&nbsp;set sql "INSERT DELAYED INTO &#36;dst([md5 &#36;channel]) VALUES(now(), "<br />
&nbsp;&nbsp;set nick [ mysqlescape &#36;nick ]<br />
&nbsp;&nbsp;append sql "'&#36;nick', "<br />
&nbsp;&nbsp;set host [ mysqlescape &#36;host ] <br />
&nbsp;&nbsp;append sql "'&#36;host', "<br />
&nbsp;&nbsp;set channel [ mysqlescape &#36;channel ]<br />
&nbsp;&nbsp;append sql "'&#36;channel', "<br />
&nbsp;&nbsp;set text [mysqlescape &#36;text]<br />
&nbsp;&nbsp;append sql "'&#36;text', "<br />
&nbsp;&nbsp;append sql "'PRIVMSG', "<br />
&nbsp;&nbsp;append sql "'') "<br />
&nbsp;&nbsp;set result [mysqlexec &#36;db_handle &#36;sql]<br />
&nbsp;&nbsp;if {&#36;result != 1} {<br />
&nbsp;&nbsp;&nbsp;&nbsp;putlog "Couldn't execute &#36;sql on the server!"<br />
&nbsp;&nbsp;}<br />
}<br />
<br />
# bind notc &lt;flags&gt; &lt;mask&gt; &lt;proc&gt;<br />
# procname &lt;nick&gt; &lt;user@host&gt; &lt;handle&gt; &lt;text&gt; &lt;dest&gt;<br />
<br />
bind notc - * egglog_pubnotc <br />
<br />
proc egglog_pubnotc { nick host handle text dest } {<br />
&nbsp;&nbsp;global dst<br />
&nbsp;&nbsp; set channel [string tolower &#36;dest]<br />
&nbsp;&nbsp;if { [info exists dst([md5 &#36;channel])] == 0 } { return 0 }<br />
if {(&#36;handle == "") || (&#36;handle == "*")} {<br />
&nbsp;&nbsp;&nbsp;&nbsp;set handle &#36;nick<br />
&nbsp;&nbsp;}<br />
global db_handle<br />
&nbsp;&nbsp;set sql "INSERT DELAYED INTO &#36;dst([md5 &#36;channel]) VALUES(now(), "<br />
&nbsp;&nbsp;set nick [ mysqlescape &#36;nick ]<br />
&nbsp;&nbsp;append sql "'&#36;nick', "<br />
&nbsp;&nbsp;set host [ mysqlescape &#36;host ]<br />
&nbsp;&nbsp;append sql "'&#36;host', "<br />
&nbsp;&nbsp;set dest [ mysqlescape &#36;dest ]<br />
&nbsp;&nbsp;append sql "'&#36;dest', "<br />
&nbsp;&nbsp;set text [mysqlescape &#36;text]<br />
&nbsp;&nbsp;append sql "'&#36;text', "<br />
&nbsp;&nbsp;append sql "'NOTICE', "<br />
&nbsp;&nbsp;append sql "'') "<br />
&nbsp;&nbsp;set result [mysqlexec &#36;db_handle &#36;sql]<br />
&nbsp;&nbsp;if {&#36;result != 1} {<br />
&nbsp;&nbsp;&nbsp;&nbsp;putlog "Couldn't execute &#36;sql on the server!"<br />
&nbsp;&nbsp;}<br />
}<br />
<br />
# bind join &lt;flags&gt; &lt;mask&gt; &lt;proc&gt;<br />
# procname &lt;nick&gt; &lt;user@host&gt; &lt;handle&gt; &lt;channel&gt;<br />
<br />
bind join - * egglog_join<br />
<br />
proc egglog_join { nick host handle channel } {<br />
&nbsp;&nbsp;&nbsp;&nbsp;global dst<br />
&nbsp;&nbsp;&nbsp;&nbsp;set channel [string tolower &#36;channel]<br />
&nbsp;&nbsp;if { [info exists dst([md5 &#36;channel])] == 0 } { return 0 }<br />
if {(&#36;handle == "") || (&#36;handle == "*")} {<br />
&nbsp;&nbsp;&nbsp;&nbsp;set handle &#36;nick<br />
&nbsp;&nbsp;}<br />
global db_handle<br />
&nbsp;&nbsp;set sql "INSERT DELAYED INTO &#36;dst([md5 &#36;channel]) VALUES(now(), "<br />
&nbsp;&nbsp;set nick [ mysqlescape &#36;nick ]<br />
&nbsp;&nbsp;append sql "'&#36;nick', "<br />
&nbsp;&nbsp;set host [ mysqlescape &#36;host ]<br />
&nbsp;&nbsp;append sql "'&#36;host', "<br />
&nbsp;&nbsp;set channel [ mysqlescape &#36;channel ]<br />
&nbsp;&nbsp;append sql "'&#36;channel', "<br />
&nbsp;&nbsp;append sql "'', "<br />
&nbsp;&nbsp;append sql "'JOIN',"<br />
&nbsp;&nbsp;append sql "'') "<br />
&nbsp;&nbsp;set result [mysqlexec &#36;db_handle &#36;sql]<br />
&nbsp;&nbsp;if {&#36;result != 1} {<br />
&nbsp;&nbsp;&nbsp;&nbsp;putlog "Couldn't execute &#36;sql on the server!"<br />
&nbsp;&nbsp;}<br />
}<br />
<br />
# bind part &lt;flags&gt; &lt;mask&gt; &lt;proc&gt;<br />
# procname &lt;nick&gt; &lt;user@host&gt; &lt;handle&gt; &lt;channel&gt; &lt;msg&gt;<br />
<br />
bind part - * egglog_part<br />
 <br />
proc egglog_part { nick host handle channel msg} {<br />
&nbsp;&nbsp;&nbsp;&nbsp;global dst<br />
&nbsp;&nbsp;&nbsp;&nbsp;set channel [string tolower &#36;channel]<br />
&nbsp;&nbsp;if { [info exists dst([md5 &#36;channel])] == 0 } { return 0 } <br />
if {(&#36;handle == "") || (&#36;handle == "*")} {<br />
&nbsp;&nbsp;&nbsp;&nbsp;set handle &#36;nick<br />
&nbsp;&nbsp;}<br />
global db_handle<br />
&nbsp;&nbsp;set sql "INSERT DELAYED INTO &#36;dst([md5 &#36;channel]) VALUES(now(), "<br />
&nbsp;&nbsp;set nick [ mysqlescape &#36;nick ]<br />
&nbsp;&nbsp;append sql "'&#36;nick', "<br />
&nbsp;&nbsp;set host [ mysqlescape &#36;host ]<br />
&nbsp;&nbsp;append sql "'&#36;host', "<br />
&nbsp;&nbsp;set channel [ mysqlescape &#36;channel ]<br />
&nbsp;&nbsp;append sql "'&#36;channel', "<br />
&nbsp;&nbsp;set msg [ mysqlescape &#36;msg ]<br />
&nbsp;&nbsp;append sql "'&#36;msg', "<br />
&nbsp;&nbsp;append sql "'PART',"<br />
&nbsp;&nbsp;append sql "'') "<br />
&nbsp;&nbsp;set result [mysqlexec &#36;db_handle &#36;sql]<br />
&nbsp;&nbsp;if {&#36;result != 1} {<br />
&nbsp;&nbsp;&nbsp;&nbsp;putlog "Couldn't execute &#36;sql on the server!"<br />
&nbsp;&nbsp;}<br />
}<br />
<br />
<br />
# bind sign &lt;flags&gt; &lt;mask&gt; &lt;proc&gt;<br />
# procname &lt;nick&gt; &lt;user@host&gt; &lt;handle&gt; &lt;channel&gt; &lt;reason&gt;<br />
<br />
bind sign - * egglog_quit<br />
<br />
proc egglog_quit { nick host handle channel msg} {<br />
&nbsp;&nbsp;&nbsp;&nbsp;global dst<br />
&nbsp;&nbsp;&nbsp;&nbsp;set channel [string tolower &#36;channel]<br />
&nbsp;&nbsp;if { [info exists dst([md5 &#36;channel])] == 0 } { return 0 } <br />
if {(&#36;handle == "") || (&#36;handle == "*")} {<br />
&nbsp;&nbsp;&nbsp;&nbsp;set handle &#36;nick<br />
&nbsp;&nbsp;}<br />
global db_handle<br />
&nbsp;&nbsp;set sql "INSERT DELAYED INTO &#36;dst([md5 &#36;channel]) VALUES(now(), "<br />
&nbsp;&nbsp;set nick [ mysqlescape &#36;nick ]<br />
&nbsp;&nbsp;append sql "'&#36;nick', "<br />
&nbsp;&nbsp;set host [ mysqlescape &#36;host ]<br />
&nbsp;&nbsp;append sql "'&#36;host', "<br />
&nbsp;&nbsp;set channel [ mysqlescape &#36;channel ]<br />
&nbsp;&nbsp;append sql "'&#36;channel', "<br />
&nbsp;&nbsp;set msg [ mysqlescape &#36;msg ]<br />
&nbsp;&nbsp;append sql "'&#36;msg', "<br />
&nbsp;&nbsp;append sql "'QUIT',"<br />
&nbsp;&nbsp;append sql "'') "<br />
&nbsp;&nbsp;set result [mysqlexec &#36;db_handle &#36;sql]<br />
&nbsp;&nbsp;if {&#36;result != 1} {<br />
&nbsp;&nbsp;&nbsp;&nbsp;putlog "Couldn't execute &#36;sql on the server!"<br />
&nbsp;&nbsp;}<br />
}<br />
<br />
# bind topc &lt;flags&gt; &lt;mask&gt; &lt;proc&gt;<br />
# procname &lt;nick&gt; &lt;user@host&gt; &lt;handle&gt; &lt;channel&gt; &lt;topic&gt;<br />
<br />
bind topc - * egglog_topic<br />
<br />
proc egglog_topic { nick host handle channel msg} {<br />
&nbsp;&nbsp;&nbsp;&nbsp;global dst<br />
&nbsp;&nbsp;&nbsp;&nbsp;set channel [string tolower &#36;channel]<br />
&nbsp;&nbsp;if { [info exists dst([md5 &#36;channel])] == 0 } { return 0 } <br />
if {(&#36;handle == "") || (&#36;handle == "*")} {<br />
&nbsp;&nbsp;&nbsp;&nbsp;set handle &#36;nick<br />
&nbsp;&nbsp;}<br />
global db_handle<br />
&nbsp;&nbsp;set sql "INSERT DELAYED INTO &#36;dst([md5 &#36;channel]) VALUES(now(), "<br />
&nbsp;&nbsp;set nick [ mysqlescape &#36;nick ]<br />
&nbsp;&nbsp;append sql "'&#36;nick', "<br />
&nbsp;&nbsp;set host [ mysqlescape &#36;host ]<br />
&nbsp;&nbsp;append sql "'&#36;host', "<br />
&nbsp;&nbsp;set channel [ mysqlescape &#36;channel ]<br />
&nbsp;&nbsp;append sql "'&#36;channel', "<br />
&nbsp;&nbsp;set msg [mysqlescape &#36;msg]<br />
&nbsp;&nbsp;append sql "'&#36;msg', "<br />
&nbsp;&nbsp;append sql "'TOPIC',"<br />
&nbsp;&nbsp;append sql "'') "<br />
&nbsp;&nbsp;set result [mysqlexec &#36;db_handle &#36;sql]<br />
&nbsp;&nbsp;if {&#36;result != 1} {<br />
&nbsp;&nbsp;&nbsp;&nbsp;putlog "Couldn't execute &#36;sql on the server!"<br />
&nbsp;&nbsp;}<br />
}<br />
<br />
# bind kick &lt;flags&gt; &lt;mask&gt; &lt;proc&gt;<br />
# procname &lt;nick&gt; &lt;user@host&gt; &lt;handle&gt; &lt;channel&gt; &lt;target&gt; &lt;reason&gt;<br />
<br />
bind kick - * egglog_kick<br />
<br />
proc egglog_kick { nick host handle channel target action_data } {<br />
&nbsp;&nbsp;&nbsp;&nbsp;global dst<br />
&nbsp;&nbsp;&nbsp;&nbsp;set channel [string tolower &#36;channel]<br />
&nbsp;&nbsp;if { [info exists dst([md5 &#36;channel])] == 0 } { return 0 } <br />
if {(&#36;handle == "") || (&#36;handle == "*")} {<br />
&nbsp;&nbsp;&nbsp;&nbsp;set handle &#36;nick<br />
&nbsp;&nbsp;}<br />
global db_handle<br />
&nbsp;&nbsp;set sql "INSERT DELAYED INTO &#36;dst([md5 &#36;channel]) VALUES(now(), "<br />
&nbsp;&nbsp;set nick [ mysqlescape &#36;nick ]<br />
&nbsp;&nbsp;append sql "'&#36;nick', "<br />
&nbsp;&nbsp;set host [ mysqlescape &#36;host ]<br />
&nbsp;&nbsp;append sql "'&#36;host', "<br />
&nbsp;&nbsp;set channel [ mysqlescape &#36;channel ]<br />
&nbsp;&nbsp;append sql "'&#36;channel', "<br />
&nbsp;&nbsp;set target [ mysqlescape &#36;target ]<br />
&nbsp;&nbsp;append sql "'&#36;target', "<br />
&nbsp;&nbsp;append sql "'KICK',"<br />
&nbsp;&nbsp;set action_data [mysqlescape &#36;action_data ]<br />
&nbsp;&nbsp;append sql "'&#36;action_data') "<br />
&nbsp;&nbsp;set result [mysqlexec &#36;db_handle &#36;sql]<br />
&nbsp;&nbsp;if {&#36;result != 1} {<br />
&nbsp;&nbsp;&nbsp;&nbsp;putlog "Couldn't execute &#36;sql on the server!"<br />
&nbsp;&nbsp;}<br />
}<br />
<br />
# bind nick &lt;flags&gt; &lt;mask&gt; &lt;proc&gt;<br />
# procname &lt;nick&gt; &lt;user@host&gt; &lt;handle&gt; &lt;channel&gt; &lt;newnick&gt;<br />
<br />
bind nick - * egglog_nick<br />
<br />
proc egglog_nick { nick host handle channel newnick } {<br />
&nbsp;&nbsp;&nbsp;&nbsp;global dst<br />
&nbsp;&nbsp;&nbsp;&nbsp;set channel [string tolower &#36;channel]<br />
&nbsp;&nbsp;if { [info exists dst([md5 &#36;channel])] == 0 } { return 0 } <br />
if {(&#36;handle == "") || (&#36;handle == "*")} {<br />
&nbsp;&nbsp;&nbsp;&nbsp;set handle &#36;nick<br />
&nbsp;&nbsp;}<br />
global db_handle<br />
&nbsp;&nbsp;set sql "INSERT DELAYED INTO &#36;dst([md5 &#36;channel]) VALUES(now(), "<br />
&nbsp;&nbsp;set nick [ mysqlescape &#36;nick ]<br />
&nbsp;&nbsp;append sql "'&#36;nick', "<br />
&nbsp;&nbsp;set host [ mysqlescape &#36;host ]<br />
&nbsp;&nbsp;append sql "'&#36;host', "<br />
&nbsp;&nbsp;set channel [ mysqlescape &#36;channel ]<br />
&nbsp;&nbsp;append sql "'&#36;channel', "<br />
&nbsp;&nbsp;set newnick [ mysqlescape &#36;newnick ]<br />
&nbsp;&nbsp;append sql "'&#36;newnick', "<br />
&nbsp;&nbsp;append sql "'NICK',"<br />
&nbsp;&nbsp;append sql "'') "<br />
&nbsp;&nbsp;set result [mysqlexec &#36;db_handle &#36;sql]<br />
&nbsp;&nbsp;if {&#36;result != 1} {<br />
&nbsp;&nbsp;&nbsp;&nbsp;putlog "Couldn't execute &#36;sql on the server!"<br />
&nbsp;&nbsp;}<br />
}<br />
<br />
# bind mode &lt;flags&gt; &lt;mask&gt; &lt;proc&gt;<br />
# proc-name &lt;nick&gt; &lt;user@host&gt; &lt;handle&gt; &lt;channel&gt; &lt;mode-change&gt; &lt;victim&gt;<br />
<br />
bind mode - * egglog_mode<br />
<br />
proc egglog_mode { nick host handle channel modechange victim } {<br />
&nbsp;&nbsp;&nbsp;&nbsp;global dst<br />
&nbsp;&nbsp;&nbsp;&nbsp;set channel [string tolower &#36;channel]<br />
&nbsp;&nbsp;if { [info exists dst([md5 &#36;channel])] == 0 } { return 0 } <br />
if {(&#36;handle == "") || (&#36;handle == "*")} {<br />
&nbsp;&nbsp;&nbsp;&nbsp;set handle &#36;nick<br />
&nbsp;&nbsp;}<br />
global db_handle<br />
&nbsp;&nbsp;set sql "INSERT DELAYED INTO &#36;dst([md5 &#36;channel]) VALUES(now(), "<br />
&nbsp;&nbsp;set nick [ mysqlescape &#36;nick ]<br />
&nbsp;&nbsp;append sql "'&#36;nick', "<br />
&nbsp;&nbsp;set host [ mysqlescape &#36;host ]<br />
&nbsp;&nbsp;append sql "'&#36;host', "<br />
&nbsp;&nbsp;set channel [ mysqlescape &#36;channel ]<br />
&nbsp;&nbsp;append sql "'&#36;channel', "<br />
&nbsp;&nbsp;set modechange [ mysqlescape &#36;modechange ]<br />
&nbsp;&nbsp;append sql "'&#36;modechange', "<br />
&nbsp;&nbsp;append sql "'MODE',"<br />
&nbsp;&nbsp;set victim [ mysqlescape &#36;victim ]<br />
&nbsp;&nbsp;append sql "'&#36;victim') "<br />
&nbsp;&nbsp;set result [mysqlexec &#36;db_handle &#36;sql]<br />
&nbsp;&nbsp;if {&#36;result != 1} {<br />
&nbsp;&nbsp;&nbsp;&nbsp;putlog "Couldn't execute &#36;sql on the server!"<br />
&nbsp;&nbsp;}<br />
}<br />
<br />
# bind ctcp &lt;flags&gt; &lt;keyword&gt; &lt;proc&gt;<br />
# proc-name &lt;nick&gt; &lt;user@host&gt; &lt;handle&gt; &lt;dest&gt; &lt;keyword&gt; &lt;text&gt;<br />
<br />
bind ctcp - * egglog_ctcp<br />
<br />
proc egglog_ctcp { nick host handle dest keyword text } {<br />
&nbsp;&nbsp;&nbsp;&nbsp;global dst<br />
&nbsp;&nbsp;&nbsp;&nbsp;set channel [string tolower &#36;dest]<br />
&nbsp;&nbsp;if { [info exists dst([md5 &#36;channel])] == 0 } { return 0 } <br />
if {(&#36;handle == "") || (&#36;handle == "*")} {<br />
&nbsp;&nbsp;&nbsp;&nbsp;set handle &#36;nick<br />
&nbsp;&nbsp;}<br />
global db_handle<br />
&nbsp;&nbsp;set sql "INSERT DELAYED INTO &#36;dst([md5 &#36;channel]) VALUES(now(), "<br />
&nbsp;&nbsp;set nick [ mysqlescape &#36;nick ]<br />
&nbsp;&nbsp;append sql "'&#36;nick', "<br />
&nbsp;&nbsp;set host [ mysqlescape &#36;host ]<br />
&nbsp;&nbsp;append sql "'&#36;host', "<br />
&nbsp;&nbsp;set dest [ mysqlescape &#36;dest ]<br />
&nbsp;&nbsp;append sql "'&#36;dest', "<br />
&nbsp;&nbsp;set keyword [mysqlescape &#36;keyword]<br />
&nbsp;&nbsp;append sql "'&#36;keyword', "<br />
&nbsp;&nbsp;append sql "'CTCP',"<br />
&nbsp;&nbsp;set text [mysqlescape &#36;text]<br />
&nbsp;&nbsp;append sql "'&#36;text') "<br />
&nbsp;&nbsp;set result [mysqlexec &#36;db_handle &#36;sql]<br />
&nbsp;&nbsp;if {&#36;result != 1} {<br />
&nbsp;&nbsp;&nbsp;&nbsp;putlog "Couldn't execute &#36;sql on the server!"<br />
&nbsp;&nbsp;}<br />
}<br />
<br />
# bind ctcr &lt;flags&gt; &lt;keyword&gt; &lt;proc&gt;<br />
# proc-name &lt;nick&gt; &lt;user@host&gt; &lt;handle&gt; &lt;dest&gt; &lt;keyword&gt; &lt;text&gt;<br />
<br />
bind ctcr - * egglog_ctcpreply<br />
<br />
proc egglog_ctcpreply { nick host handle dest keyword text } {<br />
&nbsp;&nbsp;&nbsp;&nbsp;global dst<br />
&nbsp;&nbsp;&nbsp;&nbsp;set channel [string tolower &#36;dest]<br />
&nbsp;&nbsp;if { [info exists dst([md5 &#36;channel])] == 0 } { return 0 } <br />
if {(&#36;handle == "") || (&#36;handle == "*")} {<br />
&nbsp;&nbsp;&nbsp;&nbsp;set handle &#36;nick<br />
&nbsp;&nbsp;}<br />
global db_handle<br />
&nbsp;&nbsp;set sql "INSERT DELAYED INTO &#36;dst([md5 &#36;channel]) VALUES(now(), "<br />
&nbsp;&nbsp;set nick [ mysqlescape &#36;nick ]<br />
&nbsp;&nbsp;append sql "'&#36;nick', "<br />
&nbsp;&nbsp;set host [ mysqlescape &#36;host ]<br />
&nbsp;&nbsp;append sql "'&#36;host', "<br />
&nbsp;&nbsp;set dest [ mysqlescape &#36;dest ]<br />
&nbsp;&nbsp;append sql "'&#36;dest', "<br />
&nbsp;&nbsp;set keyword [mysqlescape &#36;keyword]<br />
&nbsp;&nbsp;append sql "'&#36;keyword', "<br />
&nbsp;&nbsp;append sql "'CTCP-REPLY',"<br />
&nbsp;&nbsp;set text [mysqlescape &#36;text]<br />
&nbsp;&nbsp;append sql "'&#36;text') "<br />
&nbsp;&nbsp;set result [mysqlexec &#36;db_handle &#36;sql]<br />
&nbsp;&nbsp;if {&#36;result != 1} {<br />
&nbsp;&nbsp;&nbsp;&nbsp;putlog "Couldn't execute &#36;sql on the server!"<br />
&nbsp;&nbsp;}<br />
}<br />
<br />
# bind splt &lt;flags&gt; &lt;mask&gt; &lt;proc&gt;<br />
# procname &lt;nick&gt; &lt;user@host&gt; &lt;handle&gt; &lt;channel&gt;<br />
<br />
bind splt - * egglog_split<br />
<br />
proc egglog_split { nick host handle channel } {<br />
&nbsp;&nbsp;&nbsp;&nbsp;global dst<br />
&nbsp;&nbsp;&nbsp;&nbsp;set channel [string tolower &#36;channel]<br />
&nbsp;&nbsp;if { [info exists dst([md5 &#36;channel])] == 0 } { return 0 } <br />
if {(&#36;handle == "") || (&#36;handle == "*")} {<br />
&nbsp;&nbsp;&nbsp;&nbsp;set handle &#36;nick<br />
&nbsp;&nbsp;}<br />
global db_handle<br />
&nbsp;&nbsp;set sql "INSERT DELAYED INTO &#36;dst([md5 &#36;channel]) VALUES(now(), "<br />
&nbsp;&nbsp;set nick [ mysqlescape &#36;nick ]<br />
&nbsp;&nbsp;append sql "'&#36;nick', "<br />
&nbsp;&nbsp;set host [ mysqlescape &#36;host ]<br />
&nbsp;&nbsp;append sql "'&#36;host', "<br />
&nbsp;&nbsp;set channel [ mysqlescape &#36;channel ]<br />
&nbsp;&nbsp;append sql "'&#36;channel', "<br />
&nbsp;&nbsp;append sql "'', "<br />
&nbsp;&nbsp;append sql "'NETSPLIT',"<br />
&nbsp;&nbsp;append sql "'') "<br />
&nbsp;&nbsp;set result [mysqlexec &#36;db_handle &#36;sql]<br />
&nbsp;&nbsp;if {&#36;result != 1} {<br />
&nbsp;&nbsp;&nbsp;&nbsp;putlog "Couldn't execute &#36;sql on the server!"<br />
&nbsp;&nbsp;}<br />
}<br />
<br />
# bind rejn &lt;flags&gt; &lt;mask&gt; &lt;proc&gt;<br />
# procname &lt;nick&gt; &lt;user@host&gt; &lt;handle&gt; &lt;channel&gt;<br />
<br />
bind rejn - * egglog_rejoin<br />
<br />
proc egglog_rejoin { nick host handle channel } {<br />
&nbsp;&nbsp;&nbsp;&nbsp;global dst<br />
&nbsp;&nbsp; set channel [string tolower &#36;channel]<br />
&nbsp;&nbsp;if { [info exists dst([md5 &#36;channel])] == 0 } { return 0 } <br />
if {(&#36;handle == "") || (&#36;handle == "*")} {<br />
&nbsp;&nbsp;&nbsp;&nbsp;set handle &#36;nick<br />
&nbsp;&nbsp;}<br />
global db_handle<br />
&nbsp;&nbsp;set sql "INSERT DELAYED INTO &#36;dst([md5 &#36;channel]) VALUES(now(), "<br />
&nbsp;&nbsp;set nick [ mysqlescape &#36;nick ]<br />
&nbsp;&nbsp;append sql "'&#36;nick', "<br />
&nbsp;&nbsp;set host [ mysqlescape &#36;host ]<br />
&nbsp;&nbsp;append sql "'&#36;host', "<br />
&nbsp;&nbsp;set channel [ mysqlescape &#36;channel ]<br />
&nbsp;&nbsp;append sql "'&#36;channel', "<br />
&nbsp;&nbsp;append sql "'', "<br />
&nbsp;&nbsp;append sql "'REJOIN',"<br />
&nbsp;&nbsp;append sql "'') "<br />
&nbsp;&nbsp;set result [mysqlexec &#36;db_handle &#36;sql]<br />
&nbsp;&nbsp;if {&#36;result != 1} {<br />
&nbsp;&nbsp;&nbsp;&nbsp;putlog "Couldn't execute &#36;sql on the server!"<br />
&nbsp;&nbsp;}<br />
}</code></div></div><br />
Merci pour votre aide]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Automatic Translator (version actuelle : 1.03)]]></title>
			<link>https://forum.eggdrop.fr/showthread.php?tid=1618</link>
			<pubDate>Fri, 08 Apr 2016 23:09:44 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://forum.eggdrop.fr/member.php?action=profile&uid=324">MenzAgitat</a>]]></dc:creator>
			<guid isPermaLink="false">https://forum.eggdrop.fr/showthread.php?tid=1618</guid>
			<description><![CDATA[<div style="text-align: center;" class="mycode_align"> </div>
<div style="text-align: center;" class="mycode_align">
<span style="font-size: xx-large;" class="mycode_size"><span style="text-decoration: underline;" class="mycode_u">Automatic Translator</span></span><br />
</div>
<br />
<span style="font-size: large;" class="mycode_size"><span style="text-decoration: underline;" class="mycode_u">Description</span></span><br />
<br />
Automatic Translator est un traducteur fonctionnant grâce à l'API de Yandex et permettant de traduire des textes en 63 langues différentes.<br />
<br />
Il fait également office d'interprète en vous permettant de traduire automatiquement et presqu'instantanément tout ce que dit un utilisateur.<br />
<br />
<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="text-decoration: underline;" class="mycode_u">Fonctionnalités</span></span><br />
<ul class="mycode_list"><li>Support multilingue (packs de langue français et anglais fournis).<br />
</li>
<li>Traduction de 63 langues différentes.<br />
</li>
<li>Quota de 1 000 000 de caractères par jour ou 10 000 000 par mois avec la version gratuite de l'API de Yandex (info datée du 09/04/2016).<br />
</li>
<li>L'interprète peut détecter automatiquement la langue d'origine et la traduire dans la langue de votre choix.<br />
</li>
<li>L'interprète automatique ne tentera pas de traduire les commandes.<br />
</li>
<li>L'interprète automatique ne traduira que ce qui nécessite de l'être.<br />
</li>
<li>L'interprète automatique ne tentera pas de traduire les nicks des utilisateurs présents s'ils sont utilisés dans une phrase.<br />
</li>
<li>La connexion à l'API se fait de manière asynchrone.<br />
</li>
<li>Anti-flood.<br />
</li>
<li>Possibilité de configurer des commandes alternatives.<br />
</li>
</ul>
<br />
<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="text-decoration: underline;" class="mycode_u">Screenshots</span></span><br />
<br />
<img src="http://i.imgur.com/80mvOaj.png" loading="lazy"  alt="[Image: 80mvOaj.png]" class="mycode_img" /><br />
<br />
<img src="http://i.imgur.com/PkgMI9k.png" loading="lazy"  alt="[Image: PkgMI9k.png]" class="mycode_img" /><br />
<br />
<img src="http://i.imgur.com/ZmJuHlA.png" loading="lazy"  alt="[Image: ZmJuHlA.png]" class="mycode_img" /><br />
<br />
<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="text-decoration: underline;" class="mycode_u">Syntaxe</span></span><br />
<br />
<span style="font-weight: bold;" class="mycode_b">!traduire</span> <span style="color: #808080;" class="mycode_color">[[</span>depuis-<span style="color: #808080;" class="mycode_color">]</span>vers<span style="color: #808080;" class="mycode_color">] &lt;</span>texte<span style="color: #808080;" class="mycode_color">&gt;</span><br />
Traduit le texte spécifié.<br />
<br />
<span style="font-weight: bold;" class="mycode_b">!translate lang</span>   ou   <span style="font-weight: bold;" class="mycode_b">!autotranslate lang</span><br />
Affiche la liste détaillée des langues supportées.<br />
<br />
<span style="font-weight: bold;" class="mycode_b">!autotranslate</span> <span style="color: #808080;" class="mycode_color">&lt;</span>nick<span style="color: #808080;" class="mycode_color">&gt; [[</span>depuis-<span style="color: #808080;" class="mycode_color">]</span>vers<span style="color: #808080;" class="mycode_color">]</span><br />
Active l'interprète automatique sur l'utilisateur spécifié.<br />
<br />
<span style="font-weight: bold;" class="mycode_b">!autotranslate</span> <span style="color: #808080;" class="mycode_color">&lt;</span>nick<span style="color: #808080;" class="mycode_color">&gt;</span> off<br />
Désactive l'interprète automatique sur l'utilisateur spécifié.<br />
<br />
<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="text-decoration: underline;" class="mycode_u">Langues supportées</span></span><br />
<br />
af (Afrikaans), ar (Arabe), az (Azéri), be (Biélorusse), bg (Bulgare), bs (Bosnien), ca (Catalan), cs (Tchèque), cy (Gallois), da (Danois), de (Allemand), el (Grec), en (Anglais), es (Espagnol), et (Estonien), eu (Basque), fa (Perse), fi (Finnois), fr (Français), ga (Irlandais), gl (Galicien), he (Hébreu), hr (Croate), ht (Haïtien Créole), hu (Hongrois), hy (Arménien), id (Indonésien), is (Islandais), it (Italien), ja (Japonais), ka (Géorgien), kk (Kazakh), ko (Coréen), ky (Kirghize), la (Latin), lt (Lituanien), lv (Letton), mg (Malgache), mk (Macédonien), mn (Mongolien), ms (Malais), mt (Maltais), nl (Néerlandais), no (Norvégien), pl (Polonais), pt (Portuguais), ro (Roumain), ru (Russe), sk (Slovaque), sl (Slovène), sq (Albanais), sr (Serbe), sv (Suédois), sw (Swahili), tg (Tadjik), th (Thaï), tl (Tagalog), tr (Turc), tt (Tatar), uk (Ukrainien), uz (Ouzbek), vi (Vietnamien), zh (Chinois)<br />
<br />
<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="text-decoration: underline;" class="mycode_u">Installation et activation</span></span><br />
<br />
L'API de Yandex étant accessible uniquement via HTTPS, vous aurez besoin des packages tls et json.<br />
<br />
Pour un Eggdrop sous Linux :<ul class="mycode_list"><li>Installez le package tls en tapant : apt-get install tcl-tls<br />
</li>
<li>Installez Tcllib en tapant : apt-get install tcllib<br />
</li>
<li>Redémarrez votre Eggdrop<br />
</li>
</ul>
<br />
Pour un Windrop sous Windows :<ul class="mycode_list"><li>Téléchargez Tcllib (<a href="http://www.tcl.tk/software/tcllib/" target="_blank" rel="noopener" class="mycode_url">http://www.tcl.tk/software/tcllib/</a>) et mettez le contenu du répertoire modules/json/ dans répertoire_de_votre_egg/lib/tcl8.5/json/<br />
</li>
<li>En ce qui concerne le support TLS, vous n'avez malheureusement pas de chance car il semble qu'il n'existe pas de version réellement stable de ce package Tcl sous Windows.<br />
Celles que j'ai essayées fonctionnaient au mieux une fois de temps en temps.<br />
Une autre solution s'offre à vous mais nécessite que vous possédiez un hébergement web sur lequel vous pouvez exécuter du php.<br />
Mettez simplement le fichier .php qui est fourni avec ce script sur votre hébergement, puis cherchez la ligne suivante au début du fichier Automatic_Translator.tcl :<br />
<span style="font-style: italic;" class="mycode_i">variable API_url "https://translate.yandex.net/api/v1.5/tr.json/translate?"</span><br />
et remplacez-la par :<br />
<span style="font-style: italic;" class="mycode_i">variable API_url "http://www.VOTRE.HEBERGEMENT/CHEMIN_VERS_LE_FICHIER/automatic_translator_http_bridge.php?"</span><br />
en prenant évidemment soin de remplacer <span style="font-style: italic;" class="mycode_i">VOTRE.HEBERGEMENT</span> et <span style="font-style: italic;" class="mycode_i">CHEMIN_VERS_LE_FICHIER</span> par les informations appropriées.<br />
</li>
</ul>
<br />
Pour activer Automatic Translator sur un chan, vous devez taper ceci en partyline de l'Eggdrop :<br />
     .chanset #NomDuChan +AutoTranslator<br />
et ceci pour le désactiver :<br />
     .chanset #NomDuChan -AutoTranslator<br />
Attention aux majuscules !<br />
<br />
<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="text-decoration: underline;" class="mycode_u">Problèmes connus</span></span><br />
<ul class="mycode_list"><li>Les langues utilisant des caractères unicode posent problème en entrée : L'API de Yandex ne supporte pas que certains caractères soient envoyés sous forme hexadécimale (conséquence de l'URL encoding) mais l'Eggdrop semble ne pas savoir envoyer proprement ce genre de caractères au serveur.<br />
Problème constaté avec le package http mais aussi en connexion manuelle par socket.<br />
</li>
</ul>
<br />
<br />
<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="text-decoration: underline;" class="mycode_u">Changelog</span></span><br />
<br />
<span style="font-weight: bold;" class="mycode_b">1.0</span><ul class="mycode_list"><li>Première version.<br />
</li>
</ul>
<span style="font-weight: bold;" class="mycode_b">v1.01</span><ul class="mycode_list"><li>Correction : le paramètre tls_workaround était mal implémenté et ne fonctionnait pas.<br />
</li>
<li>Modification : afin d'afficher au maximum les messages d'erreur dans la bonne langue, certains messages d'erreur concernant le chargement des packages requis ont été ajoutés aux packs de langues.<br />
</li>
</ul>
<span style="font-weight: bold;" class="mycode_b">v1.02</span><ul class="mycode_list"><li>Correction : le paramètre autotranslate_cmds avait été mal orthographié dans le fichier .cfg, ce qui provoquait une erreur au démarrage du script.<br />
Cela vient du fait que la config utilisée pour les releases est un peu différentes des réglages que j'utilise couramment chez moi.<br />
</li>
<li>Correction : l'adjonction du préfixe indiquant les langues traduites au début du texte traduit corrompait le charset de certaines langues unicode.<br />
</li>
<li>Correction : les codes de styles (couleurs, gras, ...) sont maintenant filtrés avant soumission du texte à Yandex.<br />
</li>
<li>Modification : la version requise pour le package tls est passée de la v1.6 à la v1.5<br />
</li>
<li>Modification : la version requise pour le package json est passée de la v1.3.0 à la v1.0<br />
</li>
<li>Modification : la description du paramètre fix_charset a été modifiée.<br />
Vous devez activer cette option si vous avez un Eggdrop v1.8<br />
</li>
</ul>
<span style="color: #ff3333;" class="mycode_color"><span style="font-weight: bold;" class="mycode_b">v1.03</span></span><ul class="mycode_list"><li>Correction : le système de préservation des nicks dans l'interprète automatique était susceptible de corrompre un charset unicode lors de la substitution.<br />
</li>
</ul>
<br />
<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="text-decoration: underline;" class="mycode_u">Téléchargement</span></span> <br />
<br />
<a href="http://scripts.eggdrop.fr/details-Automatic+Translator-s232.html" target="_blank" rel="noopener" class="mycode_url"><span style="text-decoration: underline;" class="mycode_u"><span style="font-weight: bold;" class="mycode_b">Automatic Translator v1.03</span></span></a><br />
<br />
<br />
Laissez vos commentaires / questions / suggestions / rapports de bugs.<br />
<br />
Vous pouvez trouver une liste de mes autres releases <a href="http://www.boulets.oqp.me/tcl/scripts/index.html" target="_blank" rel="noopener" class="mycode_url">ici</a><br />
<div style="text-align: center;" class="mycode_align"> </div>]]></description>
			<content:encoded><![CDATA[<div style="text-align: center;" class="mycode_align"> </div>
<div style="text-align: center;" class="mycode_align">
<span style="font-size: xx-large;" class="mycode_size"><span style="text-decoration: underline;" class="mycode_u">Automatic Translator</span></span><br />
</div>
<br />
<span style="font-size: large;" class="mycode_size"><span style="text-decoration: underline;" class="mycode_u">Description</span></span><br />
<br />
Automatic Translator est un traducteur fonctionnant grâce à l'API de Yandex et permettant de traduire des textes en 63 langues différentes.<br />
<br />
Il fait également office d'interprète en vous permettant de traduire automatiquement et presqu'instantanément tout ce que dit un utilisateur.<br />
<br />
<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="text-decoration: underline;" class="mycode_u">Fonctionnalités</span></span><br />
<ul class="mycode_list"><li>Support multilingue (packs de langue français et anglais fournis).<br />
</li>
<li>Traduction de 63 langues différentes.<br />
</li>
<li>Quota de 1 000 000 de caractères par jour ou 10 000 000 par mois avec la version gratuite de l'API de Yandex (info datée du 09/04/2016).<br />
</li>
<li>L'interprète peut détecter automatiquement la langue d'origine et la traduire dans la langue de votre choix.<br />
</li>
<li>L'interprète automatique ne tentera pas de traduire les commandes.<br />
</li>
<li>L'interprète automatique ne traduira que ce qui nécessite de l'être.<br />
</li>
<li>L'interprète automatique ne tentera pas de traduire les nicks des utilisateurs présents s'ils sont utilisés dans une phrase.<br />
</li>
<li>La connexion à l'API se fait de manière asynchrone.<br />
</li>
<li>Anti-flood.<br />
</li>
<li>Possibilité de configurer des commandes alternatives.<br />
</li>
</ul>
<br />
<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="text-decoration: underline;" class="mycode_u">Screenshots</span></span><br />
<br />
<img src="http://i.imgur.com/80mvOaj.png" loading="lazy"  alt="[Image: 80mvOaj.png]" class="mycode_img" /><br />
<br />
<img src="http://i.imgur.com/PkgMI9k.png" loading="lazy"  alt="[Image: PkgMI9k.png]" class="mycode_img" /><br />
<br />
<img src="http://i.imgur.com/ZmJuHlA.png" loading="lazy"  alt="[Image: ZmJuHlA.png]" class="mycode_img" /><br />
<br />
<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="text-decoration: underline;" class="mycode_u">Syntaxe</span></span><br />
<br />
<span style="font-weight: bold;" class="mycode_b">!traduire</span> <span style="color: #808080;" class="mycode_color">[[</span>depuis-<span style="color: #808080;" class="mycode_color">]</span>vers<span style="color: #808080;" class="mycode_color">] &lt;</span>texte<span style="color: #808080;" class="mycode_color">&gt;</span><br />
Traduit le texte spécifié.<br />
<br />
<span style="font-weight: bold;" class="mycode_b">!translate lang</span>   ou   <span style="font-weight: bold;" class="mycode_b">!autotranslate lang</span><br />
Affiche la liste détaillée des langues supportées.<br />
<br />
<span style="font-weight: bold;" class="mycode_b">!autotranslate</span> <span style="color: #808080;" class="mycode_color">&lt;</span>nick<span style="color: #808080;" class="mycode_color">&gt; [[</span>depuis-<span style="color: #808080;" class="mycode_color">]</span>vers<span style="color: #808080;" class="mycode_color">]</span><br />
Active l'interprète automatique sur l'utilisateur spécifié.<br />
<br />
<span style="font-weight: bold;" class="mycode_b">!autotranslate</span> <span style="color: #808080;" class="mycode_color">&lt;</span>nick<span style="color: #808080;" class="mycode_color">&gt;</span> off<br />
Désactive l'interprète automatique sur l'utilisateur spécifié.<br />
<br />
<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="text-decoration: underline;" class="mycode_u">Langues supportées</span></span><br />
<br />
af (Afrikaans), ar (Arabe), az (Azéri), be (Biélorusse), bg (Bulgare), bs (Bosnien), ca (Catalan), cs (Tchèque), cy (Gallois), da (Danois), de (Allemand), el (Grec), en (Anglais), es (Espagnol), et (Estonien), eu (Basque), fa (Perse), fi (Finnois), fr (Français), ga (Irlandais), gl (Galicien), he (Hébreu), hr (Croate), ht (Haïtien Créole), hu (Hongrois), hy (Arménien), id (Indonésien), is (Islandais), it (Italien), ja (Japonais), ka (Géorgien), kk (Kazakh), ko (Coréen), ky (Kirghize), la (Latin), lt (Lituanien), lv (Letton), mg (Malgache), mk (Macédonien), mn (Mongolien), ms (Malais), mt (Maltais), nl (Néerlandais), no (Norvégien), pl (Polonais), pt (Portuguais), ro (Roumain), ru (Russe), sk (Slovaque), sl (Slovène), sq (Albanais), sr (Serbe), sv (Suédois), sw (Swahili), tg (Tadjik), th (Thaï), tl (Tagalog), tr (Turc), tt (Tatar), uk (Ukrainien), uz (Ouzbek), vi (Vietnamien), zh (Chinois)<br />
<br />
<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="text-decoration: underline;" class="mycode_u">Installation et activation</span></span><br />
<br />
L'API de Yandex étant accessible uniquement via HTTPS, vous aurez besoin des packages tls et json.<br />
<br />
Pour un Eggdrop sous Linux :<ul class="mycode_list"><li>Installez le package tls en tapant : apt-get install tcl-tls<br />
</li>
<li>Installez Tcllib en tapant : apt-get install tcllib<br />
</li>
<li>Redémarrez votre Eggdrop<br />
</li>
</ul>
<br />
Pour un Windrop sous Windows :<ul class="mycode_list"><li>Téléchargez Tcllib (<a href="http://www.tcl.tk/software/tcllib/" target="_blank" rel="noopener" class="mycode_url">http://www.tcl.tk/software/tcllib/</a>) et mettez le contenu du répertoire modules/json/ dans répertoire_de_votre_egg/lib/tcl8.5/json/<br />
</li>
<li>En ce qui concerne le support TLS, vous n'avez malheureusement pas de chance car il semble qu'il n'existe pas de version réellement stable de ce package Tcl sous Windows.<br />
Celles que j'ai essayées fonctionnaient au mieux une fois de temps en temps.<br />
Une autre solution s'offre à vous mais nécessite que vous possédiez un hébergement web sur lequel vous pouvez exécuter du php.<br />
Mettez simplement le fichier .php qui est fourni avec ce script sur votre hébergement, puis cherchez la ligne suivante au début du fichier Automatic_Translator.tcl :<br />
<span style="font-style: italic;" class="mycode_i">variable API_url "https://translate.yandex.net/api/v1.5/tr.json/translate?"</span><br />
et remplacez-la par :<br />
<span style="font-style: italic;" class="mycode_i">variable API_url "http://www.VOTRE.HEBERGEMENT/CHEMIN_VERS_LE_FICHIER/automatic_translator_http_bridge.php?"</span><br />
en prenant évidemment soin de remplacer <span style="font-style: italic;" class="mycode_i">VOTRE.HEBERGEMENT</span> et <span style="font-style: italic;" class="mycode_i">CHEMIN_VERS_LE_FICHIER</span> par les informations appropriées.<br />
</li>
</ul>
<br />
Pour activer Automatic Translator sur un chan, vous devez taper ceci en partyline de l'Eggdrop :<br />
     .chanset #NomDuChan +AutoTranslator<br />
et ceci pour le désactiver :<br />
     .chanset #NomDuChan -AutoTranslator<br />
Attention aux majuscules !<br />
<br />
<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="text-decoration: underline;" class="mycode_u">Problèmes connus</span></span><br />
<ul class="mycode_list"><li>Les langues utilisant des caractères unicode posent problème en entrée : L'API de Yandex ne supporte pas que certains caractères soient envoyés sous forme hexadécimale (conséquence de l'URL encoding) mais l'Eggdrop semble ne pas savoir envoyer proprement ce genre de caractères au serveur.<br />
Problème constaté avec le package http mais aussi en connexion manuelle par socket.<br />
</li>
</ul>
<br />
<br />
<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="text-decoration: underline;" class="mycode_u">Changelog</span></span><br />
<br />
<span style="font-weight: bold;" class="mycode_b">1.0</span><ul class="mycode_list"><li>Première version.<br />
</li>
</ul>
<span style="font-weight: bold;" class="mycode_b">v1.01</span><ul class="mycode_list"><li>Correction : le paramètre tls_workaround était mal implémenté et ne fonctionnait pas.<br />
</li>
<li>Modification : afin d'afficher au maximum les messages d'erreur dans la bonne langue, certains messages d'erreur concernant le chargement des packages requis ont été ajoutés aux packs de langues.<br />
</li>
</ul>
<span style="font-weight: bold;" class="mycode_b">v1.02</span><ul class="mycode_list"><li>Correction : le paramètre autotranslate_cmds avait été mal orthographié dans le fichier .cfg, ce qui provoquait une erreur au démarrage du script.<br />
Cela vient du fait que la config utilisée pour les releases est un peu différentes des réglages que j'utilise couramment chez moi.<br />
</li>
<li>Correction : l'adjonction du préfixe indiquant les langues traduites au début du texte traduit corrompait le charset de certaines langues unicode.<br />
</li>
<li>Correction : les codes de styles (couleurs, gras, ...) sont maintenant filtrés avant soumission du texte à Yandex.<br />
</li>
<li>Modification : la version requise pour le package tls est passée de la v1.6 à la v1.5<br />
</li>
<li>Modification : la version requise pour le package json est passée de la v1.3.0 à la v1.0<br />
</li>
<li>Modification : la description du paramètre fix_charset a été modifiée.<br />
Vous devez activer cette option si vous avez un Eggdrop v1.8<br />
</li>
</ul>
<span style="color: #ff3333;" class="mycode_color"><span style="font-weight: bold;" class="mycode_b">v1.03</span></span><ul class="mycode_list"><li>Correction : le système de préservation des nicks dans l'interprète automatique était susceptible de corrompre un charset unicode lors de la substitution.<br />
</li>
</ul>
<br />
<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="text-decoration: underline;" class="mycode_u">Téléchargement</span></span> <br />
<br />
<a href="http://scripts.eggdrop.fr/details-Automatic+Translator-s232.html" target="_blank" rel="noopener" class="mycode_url"><span style="text-decoration: underline;" class="mycode_u"><span style="font-weight: bold;" class="mycode_b">Automatic Translator v1.03</span></span></a><br />
<br />
<br />
Laissez vos commentaires / questions / suggestions / rapports de bugs.<br />
<br />
Vous pouvez trouver une liste de mes autres releases <a href="http://www.boulets.oqp.me/tcl/scripts/index.html" target="_blank" rel="noopener" class="mycode_url">ici</a><br />
<div style="text-align: center;" class="mycode_align"> </div>]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Erratum (version actuelle : 1.02)]]></title>
			<link>https://forum.eggdrop.fr/showthread.php?tid=1617</link>
			<pubDate>Thu, 31 Mar 2016 19:20:23 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://forum.eggdrop.fr/member.php?action=profile&uid=324">MenzAgitat</a>]]></dc:creator>
			<guid isPermaLink="false">https://forum.eggdrop.fr/showthread.php?tid=1617</guid>
			<description><![CDATA[<div style="text-align: center;" class="mycode_align"> </div>
<div style="text-align: center;" class="mycode_align">
<span style="font-size: xx-large;" class="mycode_size"><span style="text-decoration: underline;" class="mycode_u">Erratum</span></span><br />
</div>
<br />
<span style="font-size: large;" class="mycode_size"><span style="text-decoration: underline;" class="mycode_u">Description</span></span><br />
<br />
Erratum permet de corriger ce qui a été dit auparavant sur un chan.<br />
<br />
L'objectif peut être de corriger les fautes d'orthographe faites par d'autres, ou encore de leur faire dire autre chose que ce qu'ils avaient voulu dire.<br />
<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="text-decoration: underline;" class="mycode_u">Exemples</span></span><br />
<br />
&lt;untel&gt; comment sa va ?<br />
&lt;MenzAgitat&gt; !erratum sa/ça<br />
&lt;Eggdrop&gt; <span style="text-decoration: underline;" class="mycode_u">Correction</span> : &lt;untel&gt; comment <span style="font-weight: bold;" class="mycode_b">ça</span> va ?<br />
<br />
&lt;untel&gt; cc coman sa va ?<br />
&lt;MenzAgitat&gt; !erratum cc/coucou/coman/comment/sa/ça<br />
&lt;Eggdrop&gt; <span style="text-decoration: underline;" class="mycode_u">Correction</span> : &lt;untel&gt; <span style="font-weight: bold;" class="mycode_b">coucou comment ça</span> va ?<br />
<br />
&lt;untel&gt; je me sens mieux<br />
&lt;MenzAgitat&gt; mieux/plus pisser<br />
&lt;Eggdrop&gt; <span style="text-decoration: underline;" class="mycode_u">Correction</span> : &lt;untel&gt; je me sens <span style="font-weight: bold;" class="mycode_b">plus pisser</span><br />
<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="text-decoration: underline;" class="mycode_u">Syntaxe</span></span><br />
<br />
<span style="font-weight: bold;" class="mycode_b">!erratum</span> <span style="color: #808080;" class="mycode_color">&lt;</span>mot/remplacement<span style="color: #808080;" class="mycode_color">[</span>/mot/remplacement<span style="color: #808080;" class="mycode_color">[</span>/...<span style="color: #808080;" class="mycode_color">]]]]&gt;&lt;![CDATA[&gt;</span><br />
<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="text-decoration: underline;" class="mycode_u">Activation</span></span><br />
<br />
Pour activer Erratum sur un chan, vous devez taper ceci en partyline de<br />
l'Eggdrop :<br />
.chanset #NomDuChan +erratum<br />
et ceci pour le désactiver :<br />
.chanset #NomDuChan -erratum<br />
<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="text-decoration: underline;" class="mycode_u">Changelog</span> :</span><br />
<blockquote class="mycode_quote"><cite>Citation :</cite><span style="font-weight: bold;" class="mycode_b">1.0</span><ul class="mycode_list"><li>Première version.<br />
</li>
</ul>
<span style="font-weight: bold;" class="mycode_b">1.01</span><ul class="mycode_list"><li>L'utilisation de majuscules dans la commande empêchait le filtrage de fonctionner correctement.<br />
</li>
<li>Une notification s'affichait en partyline à chaque utilisation de la commande.<br />
</li>
</ul>
<span style="color: #ff0000;" class="mycode_color"><span style="font-weight: bold;" class="mycode_b">1.02</span></span><ul class="mycode_list"><li>Correction : le script refusait de se charger sur les Eggdrops v1.8+<br />
</li>
<li>Correction : le catalogue de messages n'était pas déchargé de la mémoire par la procédure de désallocation des ressources.<br />
</li>
</ul>
</blockquote>
<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="text-decoration: underline;" class="mycode_u">Téléchargement</span></span> <br />
<br />
<a href="https://scripts.eggdrop.fr/details-Erratum-s231.html" target="_blank" rel="noopener" class="mycode_url"><span style="text-decoration: underline;" class="mycode_u"><span style="font-weight: bold;" class="mycode_b">Erratum v1.02</span></span></a><br />
<br />
<br />
Laissez vos commentaires / questions / suggestions / rapports de bugs.<br />
<br />
Vous pouvez trouver une liste de mes autres releases <a href="http://www.boulets.oqp.me/tcl/scripts/index.html" target="_blank" rel="noopener" class="mycode_url">ici</a><br />
<div style="text-align: center;" class="mycode_align"> </div>]]></description>
			<content:encoded><![CDATA[<div style="text-align: center;" class="mycode_align"> </div>
<div style="text-align: center;" class="mycode_align">
<span style="font-size: xx-large;" class="mycode_size"><span style="text-decoration: underline;" class="mycode_u">Erratum</span></span><br />
</div>
<br />
<span style="font-size: large;" class="mycode_size"><span style="text-decoration: underline;" class="mycode_u">Description</span></span><br />
<br />
Erratum permet de corriger ce qui a été dit auparavant sur un chan.<br />
<br />
L'objectif peut être de corriger les fautes d'orthographe faites par d'autres, ou encore de leur faire dire autre chose que ce qu'ils avaient voulu dire.<br />
<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="text-decoration: underline;" class="mycode_u">Exemples</span></span><br />
<br />
&lt;untel&gt; comment sa va ?<br />
&lt;MenzAgitat&gt; !erratum sa/ça<br />
&lt;Eggdrop&gt; <span style="text-decoration: underline;" class="mycode_u">Correction</span> : &lt;untel&gt; comment <span style="font-weight: bold;" class="mycode_b">ça</span> va ?<br />
<br />
&lt;untel&gt; cc coman sa va ?<br />
&lt;MenzAgitat&gt; !erratum cc/coucou/coman/comment/sa/ça<br />
&lt;Eggdrop&gt; <span style="text-decoration: underline;" class="mycode_u">Correction</span> : &lt;untel&gt; <span style="font-weight: bold;" class="mycode_b">coucou comment ça</span> va ?<br />
<br />
&lt;untel&gt; je me sens mieux<br />
&lt;MenzAgitat&gt; mieux/plus pisser<br />
&lt;Eggdrop&gt; <span style="text-decoration: underline;" class="mycode_u">Correction</span> : &lt;untel&gt; je me sens <span style="font-weight: bold;" class="mycode_b">plus pisser</span><br />
<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="text-decoration: underline;" class="mycode_u">Syntaxe</span></span><br />
<br />
<span style="font-weight: bold;" class="mycode_b">!erratum</span> <span style="color: #808080;" class="mycode_color">&lt;</span>mot/remplacement<span style="color: #808080;" class="mycode_color">[</span>/mot/remplacement<span style="color: #808080;" class="mycode_color">[</span>/...<span style="color: #808080;" class="mycode_color">]]]]&gt;&lt;![CDATA[&gt;</span><br />
<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="text-decoration: underline;" class="mycode_u">Activation</span></span><br />
<br />
Pour activer Erratum sur un chan, vous devez taper ceci en partyline de<br />
l'Eggdrop :<br />
.chanset #NomDuChan +erratum<br />
et ceci pour le désactiver :<br />
.chanset #NomDuChan -erratum<br />
<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="text-decoration: underline;" class="mycode_u">Changelog</span> :</span><br />
<blockquote class="mycode_quote"><cite>Citation :</cite><span style="font-weight: bold;" class="mycode_b">1.0</span><ul class="mycode_list"><li>Première version.<br />
</li>
</ul>
<span style="font-weight: bold;" class="mycode_b">1.01</span><ul class="mycode_list"><li>L'utilisation de majuscules dans la commande empêchait le filtrage de fonctionner correctement.<br />
</li>
<li>Une notification s'affichait en partyline à chaque utilisation de la commande.<br />
</li>
</ul>
<span style="color: #ff0000;" class="mycode_color"><span style="font-weight: bold;" class="mycode_b">1.02</span></span><ul class="mycode_list"><li>Correction : le script refusait de se charger sur les Eggdrops v1.8+<br />
</li>
<li>Correction : le catalogue de messages n'était pas déchargé de la mémoire par la procédure de désallocation des ressources.<br />
</li>
</ul>
</blockquote>
<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="text-decoration: underline;" class="mycode_u">Téléchargement</span></span> <br />
<br />
<a href="https://scripts.eggdrop.fr/details-Erratum-s231.html" target="_blank" rel="noopener" class="mycode_url"><span style="text-decoration: underline;" class="mycode_u"><span style="font-weight: bold;" class="mycode_b">Erratum v1.02</span></span></a><br />
<br />
<br />
Laissez vos commentaires / questions / suggestions / rapports de bugs.<br />
<br />
Vous pouvez trouver une liste de mes autres releases <a href="http://www.boulets.oqp.me/tcl/scripts/index.html" target="_blank" rel="noopener" class="mycode_url">ici</a><br />
<div style="text-align: center;" class="mycode_align"> </div>]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[horoscope]]></title>
			<link>https://forum.eggdrop.fr/showthread.php?tid=1607</link>
			<pubDate>Wed, 13 Jan 2016 16:30:43 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://forum.eggdrop.fr/member.php?action=profile&uid=3613">MisterS</a>]]></dc:creator>
			<guid isPermaLink="false">https://forum.eggdrop.fr/showthread.php?tid=1607</guid>
			<description><![CDATA[bonjour <br />
<br />
je vien vous voir parce que le script, Horoscope français par Destiny n'a plus l'air de fonctionner.<br />
ya t'il quelqu'un qui pourrai me dire si le site doue provien l'horoscope si il fonctionne encore ou pas<br />
depuis quelque jours il ne fonctionne plus.<br />
<br />
merci <img src="https://forum.eggdrop.fr/images/smilies/smiling.png" alt="Smile" title="Smile" class="smilie smilie_4" />]]></description>
			<content:encoded><![CDATA[bonjour <br />
<br />
je vien vous voir parce que le script, Horoscope français par Destiny n'a plus l'air de fonctionner.<br />
ya t'il quelqu'un qui pourrai me dire si le site doue provien l'horoscope si il fonctionne encore ou pas<br />
depuis quelque jours il ne fonctionne plus.<br />
<br />
merci <img src="https://forum.eggdrop.fr/images/smilies/smiling.png" alt="Smile" title="Smile" class="smilie smilie_4" />]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Duck Hunt  (version actuelle : 2.11)]]></title>
			<link>https://forum.eggdrop.fr/showthread.php?tid=1597</link>
			<pubDate>Thu, 05 Nov 2015 11:51:47 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://forum.eggdrop.fr/member.php?action=profile&uid=324">MenzAgitat</a>]]></dc:creator>
			<guid isPermaLink="false">https://forum.eggdrop.fr/showthread.php?tid=1597</guid>
			<description><![CDATA[<div style="text-align: center;" class="mycode_align"> </div>
<div style="text-align: center;" class="mycode_align">
<span style="font-size: xx-large;" class="mycode_size"><span style="text-decoration: underline;" class="mycode_u">Duck Hunt</span></span><br />
<span style="font-size: small;" class="mycode_size">(le jeu qui rend adduckt)</span><br />
</div>
<br />
<div style="text-align: center;" class="mycode_align"><img src="http://img15.hostingpics.net/pics/565507Duckhunting.jpg" loading="lazy"  alt="[Image: 565507Duckhunting.jpg]" class="mycode_img" /></div>
<br />
<span style="font-size: x-large;" class="mycode_size"><span style="text-decoration: underline;" class="mycode_u">Description</span></span><br />
<br />
Duck Hunt est un FPS pour IRC.<br />
<br />
De temps en temps, un canard s'envole et les joueurs doivent l'abattre le plus rapidement possible.<br />
<br />
<br />
<span style="font-size: x-large;" class="mycode_size"><span style="text-decoration: underline;" class="mycode_u">Fonctionnalités</span></span><br />
<br />
- Support multilingue (packs de langue français et anglais fournis).<br />
- Très nombreux paramètres de configuration.<br />
- Possibilité de spécifier des heures durant lesquelles les canards dorment.<br />
- Les canards s'échappent au bout d'un moment ou lorsqu'ils sont effrayés.<br />
- Les canards peuvent être générés aléatoiement afin de déjouer la détection par les HL et les scripts.<br />
- Super-canards plus difficiles à tuer et rapportant beaucoup d'xp à celui qui parvient à les avoir.<br />
- Gestion des munitions et du nombre de chargeurs, le joueur doit penser à recharger son fusil.<br />
- Accidents de chasse mettant en jeu la vie des autres chasseurs.<br />
- Les risques d'accident augmentent s'il y plus de monde sur le chan.<br />
- Les fusils peuvent être confisqués automatiquement lorsque le chasseur commet une erreur.<br />
- Les balles peuvent ricocher.<br />
- Gain et perte de points d'xp, pénalités croissantes avec le niveau.<br />
- 40 niveaux de progression basés sur l'xp, auxquels sont associés 40 titres.<br />
- Karma (parce qu'il y a les bons chasseurs et les mauvais chasseurs).<br />
- Statistiques améliorables (précision, armure, déflexion, risque d'enrayement, nombre et taille des chargeurs).<br />
- Possibilité de modifier facilement la table de progression et même d'ajouter de nouveaux niveaux.<br />
- Magasin proposant un choix de 23 objets spéciaux à acheter contre de l'xp.<br />
- Vous pourrez parfois trouver des choses intéressantes en fouillant les buissons autour d'un canard que vous avez abattu.<br />
- La restitution des armes confisquées et le réapprovisionnement en munitions sont automatisés.<br />
- Possibilité de désarmer un joueur de façon temporaire ou permanente.<br />
- Suivi des changements de nick, gestion des conflits, protection de niveau 1 contre les tentatives de vol de scores.<br />
- Création de logs datés afin de suivre avec précision l'activité des chasseurs.<br />
- Exportation des données et des statistiques des joueurs dans un tableau, possibilité de tri selon 34 critères différents.<br />
- Nombreuses commandes d'administration.<br />
- Backup quotidien de la base de données.<br />
- Antiflood individuel / global.<br />
<br />
... et plus encore !<br />
<br />
<br />
<span style="font-size: x-large;" class="mycode_size"><span style="text-decoration: underline;" class="mycode_u">Aperçu</span></span><br />
<br />
<img src="http://i.imgur.com/3rKSyxE.png" loading="lazy"  alt="[Image: 3rKSyxE.png]" class="mycode_img" /><br />
<br />
<br />
<span style="font-size: x-large;" class="mycode_size"><span style="text-decoration: underline;" class="mycode_u">Activation</span></span><br />
<br />
Pour activer Duck Hunt sur un chan, vous devez taper ceci en partyline de l'Eggdrop :<br />
     <span style="font-style: italic;" class="mycode_i">.chanset #NomDuChan +DuckHunt</span><br />
et ceci pour le désactiver :<br />
     <span style="font-style: italic;" class="mycode_i">.chanset #NomDuChan -DuckHunt</span><br />
Attention aux majuscules !<br />
<br />
<br />
<span style="font-size: x-large;" class="mycode_size"><span style="text-decoration: underline;" class="mycode_u">Commandes et syntaxe</span></span><br />
<br />
<span style="text-decoration: underline;" class="mycode_u">Commandes des joueurs</span> :<br />
<br />
<span style="font-style: italic;" class="mycode_i">!bang</span><br />
Tire un coup de fusil.<br />
<br />
<span style="font-style: italic;" class="mycode_i">!reload</span><br />
Recharge ou décoince le fusil s'il est enrayé.<br />
<br />
<span style="font-style: italic;" class="mycode_i">!lastduck</span><br />
Affiche le temps écoulé depuis le dernier envol de canard.<br />
<br />
<span style="font-style: italic;" class="mycode_i">!duckstats [nick]</span><br />
Affiche les statistiques d'un utilisateur.<br />
<br />
<span style="font-style: italic;" class="mycode_i">!shop [id [cible]]</span><br />
Affiche une liste des objets qu'il est possible d'acheter ou effectue un achat si "id" est spécifié.<br />
Certains objets nécessitent qu'un joueur cible soit aussi spécifié.<br />
<br />
<span style="text-decoration: underline;" class="mycode_u">Commandes d'administration</span> :<br />
<br />
<span style="font-style: italic;" class="mycode_i">lastduck &lt;chan&gt;</span><br />
Affiche le temps écoulé depuis le dernier envol de canard.<br />
(Commande par message privé à l'Eggdrop)<br />
<br />
<span style="font-style: italic;" class="mycode_i">ducklaunch &lt;chan&gt; [golden_duck]</span><br />
Déclenche l'envol d'un canard sur le chan spécifié.<br />
"golden_duck" détermine s'il s'agit d'un super-canard ou d'un canard normal et peut valoir 0 (normal) ou 1 (super-canard).<br />
Si "golden_duck" est omis, il vaudra 0 par défaut.<br />
(Commande par message privé à l'Eggdrop)<br />
<br />
<span style="font-style: italic;" class="mycode_i">duckplanning &lt;chan&gt;</span><br />
Affiche la planification des envols de canards pour la journée en cours sur le chan spécifié.<br />
(Commande par message privé à l'Eggdrop)<br />
<br />
<span style="font-style: italic;" class="mycode_i">duckreplanning &lt;chan&gt;</span><br />
Recalcule une planification différente pour la journée en cours sur le chan spécifié.<br />
(Commande par message privé à l'Eggdrop)<br />
<br />
<span style="font-style: italic;" class="mycode_i">ducklist &lt;chan&gt; [argument de recherche]</span><br />
Affiche la liste des profils utilisateur sur le chan spécifié ou effectue une recherche dans celle-ci.<br />
(Commande par message privé à l'Eggdrop)<br />
<br />
<span style="font-style: italic;" class="mycode_i">duckrename &lt;chan&gt; &lt;ancien nick&gt; &lt;nouveau nick&gt;</span><br />
Renomme le profil de statistiques d'un utilisateur.<br />
(Commande par message privé à l'Eggdrop)<br />
<br />
<span style="font-style: italic;" class="mycode_i">duckfusion &lt;chan&gt; &lt;nick destination&gt; &lt;nick source 1&gt; [nick source 2] [...]</span><br />
Fusionne les statistiques de plusieurs profils utilisateur.<br />
Les statistiques de tous les nicks source seront fusionnées dans le nick destination.<br />
(Commande par message privé à l'Eggdrop)<br />
<br />
<span style="font-style: italic;" class="mycode_i">duckdelete &lt;chan&gt; &lt;nick&gt;</span><br />
Supprime le profil de statistiques d'un utilisateur.<br />
(Commande par message privé à l'Eggdrop)<br />
<br />
<span style="font-style: italic;" class="mycode_i">!unarm [-static] &lt;nick&gt;</span><br />
Désarme un joueur.<br />
Le paramètre -static permet de s'assurer qu'il ne sera pas réarmé lors de la prochaine restitution automatique des armes.<br />
<br />
<span style="font-style: italic;" class="mycode_i">!rearm &lt;nick&gt;</span><br />
Rend son fusil à un joueur qui a été désarmé automatiquement ou manuellement.<br />
<br />
<span style="font-style: italic;" class="mycode_i">duckexport [critère de tri]</span><br />
Exporte les données des joueurs sous forme de tableau dans un fichier texte.<br />
Le critère de tri peut valoir nick, last_activity, xp, level, xp_lvl_up, gun, ammo, max_ammo, ammo_clips, max_clips, accuracy, effective_accuracy, deflection, defense, jamming, jammed, jammed_nbr, confisc, ducks, golden_ducks, missed, empty, accidents, wild_shots, total_ammo, shot_at, neutralized, deflected, deaths, best_time, average_reflex_time, karma, rank ou items.<br />
Si aucun critère de tri n'est spécifié, le tableau sera trié par nick.<br />
(Commande par message privé à l'Eggdrop)<br />
<br />
<br />
<span style="font-size: x-large;" class="mycode_size"><span style="text-decoration: underline;" class="mycode_u">Changelog</span> :</span><br />
<blockquote class="mycode_quote"><cite>Citation :</cite><span style="font-weight: bold;" class="mycode_b">1.0</span><ul class="mycode_list"><li>Première version.<br />
</li>
</ul>
<span style="font-weight: bold;" class="mycode_b">2.0</span><ul class="mycode_list"><li>Correction : ajout d'un système empêchant un lancement multiple de canards si method = 2 et qu'un timer drift de l'Eggdrop se produit à une heure d'envol planifié.<br />
</li>
<li>Correction : le message d'erreur affiché était incorrect si le package msgcat n'était pas trouvé.<br />
</li>
<li>Correction : le script limitait les envols de canards à 24 par jour maximum si method = 2.<br />
</li>
<li>Correction : dans certaines circonstances, la fusion de statistiques ne conservait pas le meilleur temps.<br />
</li>
<li>Correction : la fusion de statistiques calculait le nombre de munitions restantes de manière incorrecte.<br />
</li>
<li>Correction : l'utilisation de la commande duckreplanning provoquait une erreur si la langue du script était définie en anglais.<br />
</li>
<li>Correction : une ligne présente sur le rapport généré par la commande duckexport avait été oubliée dans le pack de langue et restait en français quelle que soit la langue choisie.<br />
</li>
<li>Correction : "déflect." a été changé en "deflect" dans le pack de langue anglais. Ce mot est utilisé dans le rapport généré par la commande duckexport.<br />
</li>
<li>Correction : la planification / dé-planification automatique des heures d'envol ne fonctionnait pas correctement si la casse n'était pas respectée en définissant le flag DuckHunt sur un chan.<br />
</li>
<li>Modification : les pénalités d'xp en cas de tir manqué / tir sauvage et accident de chasse varient désormais selon le niveau du joueur.<br />
Le réglage de ces valeurs se fait maintenant par le paramètre de configuration level_grantings et les paramètres xp_miss, xp_wild_fire et xp_accident ont disparu.<br />
</li>
<li>Modification : les paramètres de configuration default_precision, default_defense, default_deflection, default_weapon_jamming_odds, default_ammos_in_clip et default_ammo_clips_per_day ont disparu.<br />
Ces réglages se font maintenant depuis le paramètre level_grantings.<br />
Les paramètres de configuration unlimited_ammo_per_clip et unlimited_ammo_clips ont été ajoutées afin de permettre des munitions illimitées.<br />
</li>
<li>Modification : la statistique "précision effective" a été renommée en "efficacité des tirs" pour plus de précision quant à sa signification réelle.<br />
</li>
<li>Modification : le serveur est maintenant indiqué sur le tableau généré par la commande duckexport.<br />
</li>
<li>Modification : afin d'éviter le spoil, la colonne "titres" a été supprimée de la table de progression dans le fichier table_de_progression.html.<br />
</li>
<li>Modification : le paramètre de configuration cheat_prevention a été renommé en hl_prevention.<br />
</li>
<li>Modification : le tableau généré par la commande duckexport est désormais trié par ordre alphabétique sur les nicks avant d'appliquer l'ordre de tri souhaité.<br />
</li>
<li>Modification : la variable de chan "lastduck" a été renommée en "DuckHunt-LastDuck".<br />
</li>
<li>Modification : afin de réduire les risques de dispersion des statistiques des joueurs sur plusieurs nicks, le changement de nick d'un chasseur vers un nick ne possédant pas de stats ne déclenche plus un transfert immédiat.<br />
</li>
<li>Ajout : Super-canards apparaissant rarement, difficiles à tuer, impossibles à effrayer, rapportant beaucoup d'xp à celui qui parvient à le tuer.<br />
Une nouvelle statistique de chasse a été ajoutée pour les comptabiliser.<br />
Veuillez noter que la syntaxe de la commande ducklaunch s'est enrichie afin de permettre de lancer aussi des super-canards.<br />
</li>
<li>Ajout : magasin avec un choix de 23 objets spéciaux différents à acheter contre de l'xp.<br />
</li>
<li>Ajout : vous pourrez parfois trouver des objets en fouillant les buissons après avoir abattu un canard.<br />
</li>
<li>Ajout : nouveau paramètre de configuration confiscation_enforcment_on_fusion permettant d'activer / désactiver le système anti-contournement de confiscation d'armes (voir explications dans le fichier .cfg).<br />
</li>
<li>Ajout : nouveau paramètre de configuration xp_lucky_shot permettant de définir un bonus d'xp en cas de "lucky shot".<br />
</li>
<li>Ajout : nouveau paramètre de configuration blacklisted_handles permettant de définir une liste de handles qui ne seront pas autorisés à utiliser les commandes du jeu.<br />
</li>
<li>Ajout : les logs du jeu sont maintenant beaucoup plus complets.<br />
</li>
<li>Ajout : la date de la dernière activité de chaque joueur est désormais enregistée et peut servir de critère de tri lors de l'exportation des stats avec la commande duckexport.<br />
</li>
<li>Ajout : un fond d'écran réalisé par Roger sur le thème du jeu a été ajouté.<br />
</li>
</ul>
<span style="font-weight: bold;" class="mycode_b">2.1</span><ul class="mycode_list"><li>Correction : dans le cas où un joueur possédait un détecteur de canards, les transferts de stats en attente pour tous les joueurs sur tous les chans étaient automatiquement traités.<br />
</li>
<li>Correction : une entrée incomplète pouvait occasionnellement être créée pour un joueur en raison d'un problème avec le fonctionnement du détecteur de canards.<br />
</li>
<li>Correction : un canard qui s'enfuyait provoquait parfois une erreur.<br />
</li>
<li>Correction : erreur d'accord dans "1 point d'xp supplémentaires" avec un trèfle à 4 feuilles +1<br />
</li>
<li>Correction : une erreur se produisait lorsque plusieurs canards étaient en vol et que certains étaient effrayés.<br />
</li>
<li>Modification : le nom du joueur est désormais cité dans la notice envoyée par le détecteur de canards afin d'avoir toutes les chances d'attirer son attention.<br />
</li>
<li>Modification : le type de munitions utilisé est désormais clairement indiqué lorsqu'un super-canard est abattu.<br />
</li>
<li>Modification : le type de munitions utilisé influence le bruit des tirs.<br />
Par exemple, les munitions explosives feront *BOUM*.<br />
</li>
<li>Modification : utiliser la commande !shop sans acheter ne met plus à jour la date de dernière activité du joueur.<br />
</li>
<li>Ajout : la mémoire des transferts de stats en attente est désormais écrite dans un fichier afin de persister lors du rechargement du script ou au redémarrage de l'Eggdrop.<br />
Deux nouveaux paramètres de configuration ont été ajoutés à cet effet : pending_transfers_file et pending_transfers_file_max_age.<br />
</li>
<li>Ajout : nouveau paramètre de configuration successful_shots_scares_ducks permettant de choisir si les tirs réussis doivent également effrayer les canards en vol ou non.<br />
</li>
<li>Ajout : nouveau paramètre de configuration decoys_can_attract_golden_ducks vous permettant de choisir si les appeaux peuvent ou non attirer des super-canards.<br />
</li>
<li>Quelques optimisations mineures.<br />
</li>
</ul>
<span style="color: #ff0000;" class="mycode_color"><span style="font-weight: bold;" class="mycode_b">2.11</span></span><ul class="mycode_list"><li>Correction : une erreur se produisait lors de l'utilisation de la commande ducklaunch sur un chan ne possédant pas encore de statistiques dans la db.<br />
</li>
<li>Modification : la longueur de certains messages a été réduite afin de retarder le plus possible le phénomène de fake-lag lorsque beaucoups de messages sont envoyés au serveur dans un court laps de temps.<br />
</li>
</ul>
</blockquote>
<br />
<br />
<span style="font-size: x-large;" class="mycode_size"><span style="text-decoration: underline;" class="mycode_u">Téléchargement</span></span> <br />
<br />
<a href="http://scripts.eggdrop.fr/details-Duck+Hunt-s228.html" target="_blank" rel="noopener" class="mycode_url"><span style="text-decoration: underline;" class="mycode_u"><span style="font-weight: bold;" class="mycode_b">Duck Hunt v2.11</span></span></a><br />
<br />
Vous pouvez trouver une liste de mes autres releases <a href="http://www.boulets.oqp.me/tcl/scripts/index.html" target="_blank" rel="noopener" class="mycode_url">ici</a><br />
<br />
<br />
Laissez vos commentaires / questions / suggestions / rapports de bugs.<br />
<br />
Et n'oubliez pas : <a href="https://www.youtube.com/watch?v=4kJ4ojtHJ4M" target="_blank" rel="noopener" class="mycode_url">https://www.youtube.com/watch?v=4kJ4ojtHJ4M</a><br />
<div style="text-align: center;" class="mycode_align"> </div>]]></description>
			<content:encoded><![CDATA[<div style="text-align: center;" class="mycode_align"> </div>
<div style="text-align: center;" class="mycode_align">
<span style="font-size: xx-large;" class="mycode_size"><span style="text-decoration: underline;" class="mycode_u">Duck Hunt</span></span><br />
<span style="font-size: small;" class="mycode_size">(le jeu qui rend adduckt)</span><br />
</div>
<br />
<div style="text-align: center;" class="mycode_align"><img src="http://img15.hostingpics.net/pics/565507Duckhunting.jpg" loading="lazy"  alt="[Image: 565507Duckhunting.jpg]" class="mycode_img" /></div>
<br />
<span style="font-size: x-large;" class="mycode_size"><span style="text-decoration: underline;" class="mycode_u">Description</span></span><br />
<br />
Duck Hunt est un FPS pour IRC.<br />
<br />
De temps en temps, un canard s'envole et les joueurs doivent l'abattre le plus rapidement possible.<br />
<br />
<br />
<span style="font-size: x-large;" class="mycode_size"><span style="text-decoration: underline;" class="mycode_u">Fonctionnalités</span></span><br />
<br />
- Support multilingue (packs de langue français et anglais fournis).<br />
- Très nombreux paramètres de configuration.<br />
- Possibilité de spécifier des heures durant lesquelles les canards dorment.<br />
- Les canards s'échappent au bout d'un moment ou lorsqu'ils sont effrayés.<br />
- Les canards peuvent être générés aléatoiement afin de déjouer la détection par les HL et les scripts.<br />
- Super-canards plus difficiles à tuer et rapportant beaucoup d'xp à celui qui parvient à les avoir.<br />
- Gestion des munitions et du nombre de chargeurs, le joueur doit penser à recharger son fusil.<br />
- Accidents de chasse mettant en jeu la vie des autres chasseurs.<br />
- Les risques d'accident augmentent s'il y plus de monde sur le chan.<br />
- Les fusils peuvent être confisqués automatiquement lorsque le chasseur commet une erreur.<br />
- Les balles peuvent ricocher.<br />
- Gain et perte de points d'xp, pénalités croissantes avec le niveau.<br />
- 40 niveaux de progression basés sur l'xp, auxquels sont associés 40 titres.<br />
- Karma (parce qu'il y a les bons chasseurs et les mauvais chasseurs).<br />
- Statistiques améliorables (précision, armure, déflexion, risque d'enrayement, nombre et taille des chargeurs).<br />
- Possibilité de modifier facilement la table de progression et même d'ajouter de nouveaux niveaux.<br />
- Magasin proposant un choix de 23 objets spéciaux à acheter contre de l'xp.<br />
- Vous pourrez parfois trouver des choses intéressantes en fouillant les buissons autour d'un canard que vous avez abattu.<br />
- La restitution des armes confisquées et le réapprovisionnement en munitions sont automatisés.<br />
- Possibilité de désarmer un joueur de façon temporaire ou permanente.<br />
- Suivi des changements de nick, gestion des conflits, protection de niveau 1 contre les tentatives de vol de scores.<br />
- Création de logs datés afin de suivre avec précision l'activité des chasseurs.<br />
- Exportation des données et des statistiques des joueurs dans un tableau, possibilité de tri selon 34 critères différents.<br />
- Nombreuses commandes d'administration.<br />
- Backup quotidien de la base de données.<br />
- Antiflood individuel / global.<br />
<br />
... et plus encore !<br />
<br />
<br />
<span style="font-size: x-large;" class="mycode_size"><span style="text-decoration: underline;" class="mycode_u">Aperçu</span></span><br />
<br />
<img src="http://i.imgur.com/3rKSyxE.png" loading="lazy"  alt="[Image: 3rKSyxE.png]" class="mycode_img" /><br />
<br />
<br />
<span style="font-size: x-large;" class="mycode_size"><span style="text-decoration: underline;" class="mycode_u">Activation</span></span><br />
<br />
Pour activer Duck Hunt sur un chan, vous devez taper ceci en partyline de l'Eggdrop :<br />
     <span style="font-style: italic;" class="mycode_i">.chanset #NomDuChan +DuckHunt</span><br />
et ceci pour le désactiver :<br />
     <span style="font-style: italic;" class="mycode_i">.chanset #NomDuChan -DuckHunt</span><br />
Attention aux majuscules !<br />
<br />
<br />
<span style="font-size: x-large;" class="mycode_size"><span style="text-decoration: underline;" class="mycode_u">Commandes et syntaxe</span></span><br />
<br />
<span style="text-decoration: underline;" class="mycode_u">Commandes des joueurs</span> :<br />
<br />
<span style="font-style: italic;" class="mycode_i">!bang</span><br />
Tire un coup de fusil.<br />
<br />
<span style="font-style: italic;" class="mycode_i">!reload</span><br />
Recharge ou décoince le fusil s'il est enrayé.<br />
<br />
<span style="font-style: italic;" class="mycode_i">!lastduck</span><br />
Affiche le temps écoulé depuis le dernier envol de canard.<br />
<br />
<span style="font-style: italic;" class="mycode_i">!duckstats [nick]</span><br />
Affiche les statistiques d'un utilisateur.<br />
<br />
<span style="font-style: italic;" class="mycode_i">!shop [id [cible]]</span><br />
Affiche une liste des objets qu'il est possible d'acheter ou effectue un achat si "id" est spécifié.<br />
Certains objets nécessitent qu'un joueur cible soit aussi spécifié.<br />
<br />
<span style="text-decoration: underline;" class="mycode_u">Commandes d'administration</span> :<br />
<br />
<span style="font-style: italic;" class="mycode_i">lastduck &lt;chan&gt;</span><br />
Affiche le temps écoulé depuis le dernier envol de canard.<br />
(Commande par message privé à l'Eggdrop)<br />
<br />
<span style="font-style: italic;" class="mycode_i">ducklaunch &lt;chan&gt; [golden_duck]</span><br />
Déclenche l'envol d'un canard sur le chan spécifié.<br />
"golden_duck" détermine s'il s'agit d'un super-canard ou d'un canard normal et peut valoir 0 (normal) ou 1 (super-canard).<br />
Si "golden_duck" est omis, il vaudra 0 par défaut.<br />
(Commande par message privé à l'Eggdrop)<br />
<br />
<span style="font-style: italic;" class="mycode_i">duckplanning &lt;chan&gt;</span><br />
Affiche la planification des envols de canards pour la journée en cours sur le chan spécifié.<br />
(Commande par message privé à l'Eggdrop)<br />
<br />
<span style="font-style: italic;" class="mycode_i">duckreplanning &lt;chan&gt;</span><br />
Recalcule une planification différente pour la journée en cours sur le chan spécifié.<br />
(Commande par message privé à l'Eggdrop)<br />
<br />
<span style="font-style: italic;" class="mycode_i">ducklist &lt;chan&gt; [argument de recherche]</span><br />
Affiche la liste des profils utilisateur sur le chan spécifié ou effectue une recherche dans celle-ci.<br />
(Commande par message privé à l'Eggdrop)<br />
<br />
<span style="font-style: italic;" class="mycode_i">duckrename &lt;chan&gt; &lt;ancien nick&gt; &lt;nouveau nick&gt;</span><br />
Renomme le profil de statistiques d'un utilisateur.<br />
(Commande par message privé à l'Eggdrop)<br />
<br />
<span style="font-style: italic;" class="mycode_i">duckfusion &lt;chan&gt; &lt;nick destination&gt; &lt;nick source 1&gt; [nick source 2] [...]</span><br />
Fusionne les statistiques de plusieurs profils utilisateur.<br />
Les statistiques de tous les nicks source seront fusionnées dans le nick destination.<br />
(Commande par message privé à l'Eggdrop)<br />
<br />
<span style="font-style: italic;" class="mycode_i">duckdelete &lt;chan&gt; &lt;nick&gt;</span><br />
Supprime le profil de statistiques d'un utilisateur.<br />
(Commande par message privé à l'Eggdrop)<br />
<br />
<span style="font-style: italic;" class="mycode_i">!unarm [-static] &lt;nick&gt;</span><br />
Désarme un joueur.<br />
Le paramètre -static permet de s'assurer qu'il ne sera pas réarmé lors de la prochaine restitution automatique des armes.<br />
<br />
<span style="font-style: italic;" class="mycode_i">!rearm &lt;nick&gt;</span><br />
Rend son fusil à un joueur qui a été désarmé automatiquement ou manuellement.<br />
<br />
<span style="font-style: italic;" class="mycode_i">duckexport [critère de tri]</span><br />
Exporte les données des joueurs sous forme de tableau dans un fichier texte.<br />
Le critère de tri peut valoir nick, last_activity, xp, level, xp_lvl_up, gun, ammo, max_ammo, ammo_clips, max_clips, accuracy, effective_accuracy, deflection, defense, jamming, jammed, jammed_nbr, confisc, ducks, golden_ducks, missed, empty, accidents, wild_shots, total_ammo, shot_at, neutralized, deflected, deaths, best_time, average_reflex_time, karma, rank ou items.<br />
Si aucun critère de tri n'est spécifié, le tableau sera trié par nick.<br />
(Commande par message privé à l'Eggdrop)<br />
<br />
<br />
<span style="font-size: x-large;" class="mycode_size"><span style="text-decoration: underline;" class="mycode_u">Changelog</span> :</span><br />
<blockquote class="mycode_quote"><cite>Citation :</cite><span style="font-weight: bold;" class="mycode_b">1.0</span><ul class="mycode_list"><li>Première version.<br />
</li>
</ul>
<span style="font-weight: bold;" class="mycode_b">2.0</span><ul class="mycode_list"><li>Correction : ajout d'un système empêchant un lancement multiple de canards si method = 2 et qu'un timer drift de l'Eggdrop se produit à une heure d'envol planifié.<br />
</li>
<li>Correction : le message d'erreur affiché était incorrect si le package msgcat n'était pas trouvé.<br />
</li>
<li>Correction : le script limitait les envols de canards à 24 par jour maximum si method = 2.<br />
</li>
<li>Correction : dans certaines circonstances, la fusion de statistiques ne conservait pas le meilleur temps.<br />
</li>
<li>Correction : la fusion de statistiques calculait le nombre de munitions restantes de manière incorrecte.<br />
</li>
<li>Correction : l'utilisation de la commande duckreplanning provoquait une erreur si la langue du script était définie en anglais.<br />
</li>
<li>Correction : une ligne présente sur le rapport généré par la commande duckexport avait été oubliée dans le pack de langue et restait en français quelle que soit la langue choisie.<br />
</li>
<li>Correction : "déflect." a été changé en "deflect" dans le pack de langue anglais. Ce mot est utilisé dans le rapport généré par la commande duckexport.<br />
</li>
<li>Correction : la planification / dé-planification automatique des heures d'envol ne fonctionnait pas correctement si la casse n'était pas respectée en définissant le flag DuckHunt sur un chan.<br />
</li>
<li>Modification : les pénalités d'xp en cas de tir manqué / tir sauvage et accident de chasse varient désormais selon le niveau du joueur.<br />
Le réglage de ces valeurs se fait maintenant par le paramètre de configuration level_grantings et les paramètres xp_miss, xp_wild_fire et xp_accident ont disparu.<br />
</li>
<li>Modification : les paramètres de configuration default_precision, default_defense, default_deflection, default_weapon_jamming_odds, default_ammos_in_clip et default_ammo_clips_per_day ont disparu.<br />
Ces réglages se font maintenant depuis le paramètre level_grantings.<br />
Les paramètres de configuration unlimited_ammo_per_clip et unlimited_ammo_clips ont été ajoutées afin de permettre des munitions illimitées.<br />
</li>
<li>Modification : la statistique "précision effective" a été renommée en "efficacité des tirs" pour plus de précision quant à sa signification réelle.<br />
</li>
<li>Modification : le serveur est maintenant indiqué sur le tableau généré par la commande duckexport.<br />
</li>
<li>Modification : afin d'éviter le spoil, la colonne "titres" a été supprimée de la table de progression dans le fichier table_de_progression.html.<br />
</li>
<li>Modification : le paramètre de configuration cheat_prevention a été renommé en hl_prevention.<br />
</li>
<li>Modification : le tableau généré par la commande duckexport est désormais trié par ordre alphabétique sur les nicks avant d'appliquer l'ordre de tri souhaité.<br />
</li>
<li>Modification : la variable de chan "lastduck" a été renommée en "DuckHunt-LastDuck".<br />
</li>
<li>Modification : afin de réduire les risques de dispersion des statistiques des joueurs sur plusieurs nicks, le changement de nick d'un chasseur vers un nick ne possédant pas de stats ne déclenche plus un transfert immédiat.<br />
</li>
<li>Ajout : Super-canards apparaissant rarement, difficiles à tuer, impossibles à effrayer, rapportant beaucoup d'xp à celui qui parvient à le tuer.<br />
Une nouvelle statistique de chasse a été ajoutée pour les comptabiliser.<br />
Veuillez noter que la syntaxe de la commande ducklaunch s'est enrichie afin de permettre de lancer aussi des super-canards.<br />
</li>
<li>Ajout : magasin avec un choix de 23 objets spéciaux différents à acheter contre de l'xp.<br />
</li>
<li>Ajout : vous pourrez parfois trouver des objets en fouillant les buissons après avoir abattu un canard.<br />
</li>
<li>Ajout : nouveau paramètre de configuration confiscation_enforcment_on_fusion permettant d'activer / désactiver le système anti-contournement de confiscation d'armes (voir explications dans le fichier .cfg).<br />
</li>
<li>Ajout : nouveau paramètre de configuration xp_lucky_shot permettant de définir un bonus d'xp en cas de "lucky shot".<br />
</li>
<li>Ajout : nouveau paramètre de configuration blacklisted_handles permettant de définir une liste de handles qui ne seront pas autorisés à utiliser les commandes du jeu.<br />
</li>
<li>Ajout : les logs du jeu sont maintenant beaucoup plus complets.<br />
</li>
<li>Ajout : la date de la dernière activité de chaque joueur est désormais enregistée et peut servir de critère de tri lors de l'exportation des stats avec la commande duckexport.<br />
</li>
<li>Ajout : un fond d'écran réalisé par Roger sur le thème du jeu a été ajouté.<br />
</li>
</ul>
<span style="font-weight: bold;" class="mycode_b">2.1</span><ul class="mycode_list"><li>Correction : dans le cas où un joueur possédait un détecteur de canards, les transferts de stats en attente pour tous les joueurs sur tous les chans étaient automatiquement traités.<br />
</li>
<li>Correction : une entrée incomplète pouvait occasionnellement être créée pour un joueur en raison d'un problème avec le fonctionnement du détecteur de canards.<br />
</li>
<li>Correction : un canard qui s'enfuyait provoquait parfois une erreur.<br />
</li>
<li>Correction : erreur d'accord dans "1 point d'xp supplémentaires" avec un trèfle à 4 feuilles +1<br />
</li>
<li>Correction : une erreur se produisait lorsque plusieurs canards étaient en vol et que certains étaient effrayés.<br />
</li>
<li>Modification : le nom du joueur est désormais cité dans la notice envoyée par le détecteur de canards afin d'avoir toutes les chances d'attirer son attention.<br />
</li>
<li>Modification : le type de munitions utilisé est désormais clairement indiqué lorsqu'un super-canard est abattu.<br />
</li>
<li>Modification : le type de munitions utilisé influence le bruit des tirs.<br />
Par exemple, les munitions explosives feront *BOUM*.<br />
</li>
<li>Modification : utiliser la commande !shop sans acheter ne met plus à jour la date de dernière activité du joueur.<br />
</li>
<li>Ajout : la mémoire des transferts de stats en attente est désormais écrite dans un fichier afin de persister lors du rechargement du script ou au redémarrage de l'Eggdrop.<br />
Deux nouveaux paramètres de configuration ont été ajoutés à cet effet : pending_transfers_file et pending_transfers_file_max_age.<br />
</li>
<li>Ajout : nouveau paramètre de configuration successful_shots_scares_ducks permettant de choisir si les tirs réussis doivent également effrayer les canards en vol ou non.<br />
</li>
<li>Ajout : nouveau paramètre de configuration decoys_can_attract_golden_ducks vous permettant de choisir si les appeaux peuvent ou non attirer des super-canards.<br />
</li>
<li>Quelques optimisations mineures.<br />
</li>
</ul>
<span style="color: #ff0000;" class="mycode_color"><span style="font-weight: bold;" class="mycode_b">2.11</span></span><ul class="mycode_list"><li>Correction : une erreur se produisait lors de l'utilisation de la commande ducklaunch sur un chan ne possédant pas encore de statistiques dans la db.<br />
</li>
<li>Modification : la longueur de certains messages a été réduite afin de retarder le plus possible le phénomène de fake-lag lorsque beaucoups de messages sont envoyés au serveur dans un court laps de temps.<br />
</li>
</ul>
</blockquote>
<br />
<br />
<span style="font-size: x-large;" class="mycode_size"><span style="text-decoration: underline;" class="mycode_u">Téléchargement</span></span> <br />
<br />
<a href="http://scripts.eggdrop.fr/details-Duck+Hunt-s228.html" target="_blank" rel="noopener" class="mycode_url"><span style="text-decoration: underline;" class="mycode_u"><span style="font-weight: bold;" class="mycode_b">Duck Hunt v2.11</span></span></a><br />
<br />
Vous pouvez trouver une liste de mes autres releases <a href="http://www.boulets.oqp.me/tcl/scripts/index.html" target="_blank" rel="noopener" class="mycode_url">ici</a><br />
<br />
<br />
Laissez vos commentaires / questions / suggestions / rapports de bugs.<br />
<br />
Et n'oubliez pas : <a href="https://www.youtube.com/watch?v=4kJ4ojtHJ4M" target="_blank" rel="noopener" class="mycode_url">https://www.youtube.com/watch?v=4kJ4ojtHJ4M</a><br />
<div style="text-align: center;" class="mycode_align"> </div>]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Knock-out  (version actuelle : 1.02)]]></title>
			<link>https://forum.eggdrop.fr/showthread.php?tid=1590</link>
			<pubDate>Wed, 19 Aug 2015 17:54:02 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://forum.eggdrop.fr/member.php?action=profile&uid=324">MenzAgitat</a>]]></dc:creator>
			<guid isPermaLink="false">https://forum.eggdrop.fr/showthread.php?tid=1590</guid>
			<description><![CDATA[<span style="font-size: large;" class="mycode_size"><span style="text-decoration: underline;" class="mycode_u">Description</span></span><br />
<br />
Knock-out permet de passer vos nerfs sur n'importe qui ou n'importe quoi en le renversant avec rage.<br />
Il est inspiré du plugin lita-flip pour le bot Lita, qui est un bot IRC écrit en ruby.<br />
<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="text-decoration: underline;" class="mycode_u">Activation</span></span><br />
<br />
Pour activer Knock-out sur un chan, vous devez taper ceci en partyline de l'Eggdrop :<br />
     .chanset #NomDuChan +ko<br />
et ceci pour le désactiver :<br />
     .chanset #NomDuChan -ko<br />
<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="text-decoration: underline;" class="mycode_u">Exemple</span> :</span><br />
<br />
<blockquote class="mycode_quote"><cite>Citation :</cite>&lt;MenzAgitat&gt; !ko CrazyCat<br />
&lt;Boole&gt; (╯°□°)╯︵ ʇɐɔʎzɐɹɔ</blockquote>
<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="text-decoration: underline;" class="mycode_u">Changelog</span> :</span><br />
<blockquote class="mycode_quote"><cite>Citation :</cite><span style="font-weight: bold;" class="mycode_b">1.0</span><ul class="mycode_list"><li>1ère version<br />
</li>
</ul>
<span style="font-weight: bold;" class="mycode_b">1.01</span><ul class="mycode_list"><li>Ajout : les caractères ; _ ^ ` sont maintenant supportés.<br />
</li>
<li>Ajout : un message d'aide à la syntaxe est affiché si la commande est utilisée sans arguments.<br />
</li>
<li>Correction : le caractère ! n'était pas converti correctement.<br />
</li>
</ul>
<span style="color: #ff0000;" class="mycode_color"><span style="font-weight: bold;" class="mycode_b">1.02</span></span><ul class="mycode_list"><li>Ajout : le caractère . est maintenant supporté.<br />
</li>
</ul>
</blockquote>
<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="text-decoration: underline;" class="mycode_u">Téléchargement</span></span><br />
<br />
<a href="http://scripts.eggdrop.fr/details-Knock-out-s227.html" target="_blank" rel="noopener" class="mycode_url"><span style="text-decoration: underline;" class="mycode_u">Knock-out v1.02</span></a><br />
<br />
Vous pouvez trouver une liste de mes autres releases <a href="http://wiki.eggdrop.fr/Utilisateur:MenzAgitat" target="_blank" rel="noopener" class="mycode_url"><span style="text-decoration: underline;" class="mycode_u"><span style="font-weight: bold;" class="mycode_b">ici</span></span></a><br />
<br />
<br />
Laissez vos commentaires / suggestions / rapports de bugs...]]></description>
			<content:encoded><![CDATA[<span style="font-size: large;" class="mycode_size"><span style="text-decoration: underline;" class="mycode_u">Description</span></span><br />
<br />
Knock-out permet de passer vos nerfs sur n'importe qui ou n'importe quoi en le renversant avec rage.<br />
Il est inspiré du plugin lita-flip pour le bot Lita, qui est un bot IRC écrit en ruby.<br />
<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="text-decoration: underline;" class="mycode_u">Activation</span></span><br />
<br />
Pour activer Knock-out sur un chan, vous devez taper ceci en partyline de l'Eggdrop :<br />
     .chanset #NomDuChan +ko<br />
et ceci pour le désactiver :<br />
     .chanset #NomDuChan -ko<br />
<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="text-decoration: underline;" class="mycode_u">Exemple</span> :</span><br />
<br />
<blockquote class="mycode_quote"><cite>Citation :</cite>&lt;MenzAgitat&gt; !ko CrazyCat<br />
&lt;Boole&gt; (╯°□°)╯︵ ʇɐɔʎzɐɹɔ</blockquote>
<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="text-decoration: underline;" class="mycode_u">Changelog</span> :</span><br />
<blockquote class="mycode_quote"><cite>Citation :</cite><span style="font-weight: bold;" class="mycode_b">1.0</span><ul class="mycode_list"><li>1ère version<br />
</li>
</ul>
<span style="font-weight: bold;" class="mycode_b">1.01</span><ul class="mycode_list"><li>Ajout : les caractères ; _ ^ ` sont maintenant supportés.<br />
</li>
<li>Ajout : un message d'aide à la syntaxe est affiché si la commande est utilisée sans arguments.<br />
</li>
<li>Correction : le caractère ! n'était pas converti correctement.<br />
</li>
</ul>
<span style="color: #ff0000;" class="mycode_color"><span style="font-weight: bold;" class="mycode_b">1.02</span></span><ul class="mycode_list"><li>Ajout : le caractère . est maintenant supporté.<br />
</li>
</ul>
</blockquote>
<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="text-decoration: underline;" class="mycode_u">Téléchargement</span></span><br />
<br />
<a href="http://scripts.eggdrop.fr/details-Knock-out-s227.html" target="_blank" rel="noopener" class="mycode_url"><span style="text-decoration: underline;" class="mycode_u">Knock-out v1.02</span></a><br />
<br />
Vous pouvez trouver une liste de mes autres releases <a href="http://wiki.eggdrop.fr/Utilisateur:MenzAgitat" target="_blank" rel="noopener" class="mycode_url"><span style="text-decoration: underline;" class="mycode_u"><span style="font-weight: bold;" class="mycode_b">ici</span></span></a><br />
<br />
<br />
Laissez vos commentaires / suggestions / rapports de bugs...]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Eggdrop Censor (version actuelle : 1.02)]]></title>
			<link>https://forum.eggdrop.fr/showthread.php?tid=1588</link>
			<pubDate>Wed, 12 Aug 2015 19:41:46 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://forum.eggdrop.fr/member.php?action=profile&uid=324">MenzAgitat</a>]]></dc:creator>
			<guid isPermaLink="false">https://forum.eggdrop.fr/showthread.php?tid=1588</guid>
			<description><![CDATA[<span style="font-size: large;" class="mycode_size"><span style="text-decoration: underline;" class="mycode_u">Description</span></span><br />
<br />
Eggdrop Censor vous permet de vous assurer que votre Eggdrop ne risque pas de divulguer certaines informations ou de dire certaines choses que vous ne souhaitez pas le voir dire.<br />
<br />
Il est probable que vous ne vouliez pas qu'il dévoile son adresse ip, ce qui peut arriver facilement si vous utilisez certains scripts en tapant par exemple <span style="font-style: italic;" class="mycode_i">!google myip</span> ou <span style="font-style: italic;" class="mycode_i">!wolfram who am I ?</span>.<br />
<br />
Vous pourriez aussi vouloir l'empêcher de dire certains badwords provoquant immédiatement un Gline sur votre serveur IRC, ou encore l'empêcher de dire des grossièretés ou d'utiliser des commandes s'il est équipé d'une I.A. qui peut apprendre.<br />
<br />
Vous pourriez même vouloir l'empêcher de HL quelqu'un.<br />
<br />
Les possibilités sont nombreuses, à vous d'en imaginer d'autres.<br />
<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="text-decoration: underline;" class="mycode_u">Fonctionnement</span></span><br />
<br />
Eggdrop Censor substitue automatiquement les termes que vous souhaitez censurer par un texte de votre choix.<br />
Cette substitution est effectuée à la volée en interceptant tout message envoyé au serveur par l'Eggdrop, puis en le réenvoyant une fois la censure appliquée.<br />
<br />
Cette censure s'applique aux messages et notices envoyés à un chan ou à un utilisateur (PRIVMSG et NOTICE); elle ne s'applique donc pas à la partyline.<br />
<br />
Il est possible d'utiliser des expressions régulières dans vos chaînes de détection, ou des chaînes de caractères simples.<br />
<br />
Pour activer Eggdrop Censor sur un chan, vous devez taper ceci en partyline de l'Eggdrop :<br />
     <span style="font-style: italic;" class="mycode_i">.chanset #NomDuChan +EggCensor</span><br />
et ceci pour le désactiver :<br />
     <span style="font-style: italic;" class="mycode_i">.chanset #NomDuChan -EggCensor</span><br />
Attention aux majuscules !<br />
En ce qui concerne l'activation ou la désactivation de la censure sur les messages qui sont envoyés à un nick et non pas à un chan (notices y compris), veuillez vous reporter au paramètre de configuration <span style="font-style: italic;" class="mycode_i">enable_censorship_for_private_msgs</span>.<br />
<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="text-decoration: underline;" class="mycode_u">Exemples</span> :</span><br />
<br />
<blockquote class="mycode_quote"><cite>Citation :</cite>&lt;MenzAgitat&gt; !wolfram who am i ?<br />
&lt;Boole&gt; <span style="text-decoration: underline;" class="mycode_u">Input interpretation</span>: current geoIP location 07| <span style="text-decoration: underline;" class="mycode_u">IP address</span>: IPv4 address <span style="font-weight: bold;" class="mycode_b">[CENSURE]</span> | IPv6 <span style="font-weight: bold;" class="mycode_b">[CENSURE]</span> | (as seen by Wolfram Alpha) | IP address regisantrt: name | Free SAS | location | Grenoble, Rhone-Alpes, France<br />
<br />
&lt;MenzAgitat&gt; .tcl putquick "PRIVMSG #testchan :t'es vraiment qu'un connard"<br />
&lt;Boole&gt; t'es vraiment qu'un bisounours<br />
&lt;Boole&gt; Tcl: 1</blockquote>
<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="text-decoration: underline;" class="mycode_u">Changelog</span> :</span><br />
<blockquote class="mycode_quote"><cite>Citation :</cite><span style="font-weight: bold;" class="mycode_b">1.0</span><ul class="mycode_list"><li>1ère version<br />
</li>
</ul>
<span style="font-weight: bold;" class="mycode_b">1.01</span><ul class="mycode_list"><li>Correction : les caractères unicode étaient corrompus au passage par le censeur.<br />
</li>
</ul>
<span style="font-weight: bold;" class="mycode_b"><span style="color: #ff3333;" class="mycode_color">1.02</span></span><ul class="mycode_list"><li>Correction : le format de fichier du script est passé en utf-8 afin de gérer proprement les caractères accentués dans les expressions censurées.<br />
</li>
</ul>
</blockquote>
<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="text-decoration: underline;" class="mycode_u">Téléchargement</span></span><br />
<br />
<a href="http://scripts.eggdrop.fr/details-Eggdrop+Censor-s225.html" target="_blank" rel="noopener" class="mycode_url"><span style="text-decoration: underline;" class="mycode_u">Eggdrop Censor v1.02</span></a><br />
<br />
Vous pouvez trouver une liste de mes autres releases <a href="http://wiki.eggdrop.fr/Utilisateur:MenzAgitat" target="_blank" rel="noopener" class="mycode_url"><span style="text-decoration: underline;" class="mycode_u"><span style="font-weight: bold;" class="mycode_b">ici</span></span></a><br />
<br />
<br />
Laissez vos commentaires / suggestions / rapports de bugs...]]></description>
			<content:encoded><![CDATA[<span style="font-size: large;" class="mycode_size"><span style="text-decoration: underline;" class="mycode_u">Description</span></span><br />
<br />
Eggdrop Censor vous permet de vous assurer que votre Eggdrop ne risque pas de divulguer certaines informations ou de dire certaines choses que vous ne souhaitez pas le voir dire.<br />
<br />
Il est probable que vous ne vouliez pas qu'il dévoile son adresse ip, ce qui peut arriver facilement si vous utilisez certains scripts en tapant par exemple <span style="font-style: italic;" class="mycode_i">!google myip</span> ou <span style="font-style: italic;" class="mycode_i">!wolfram who am I ?</span>.<br />
<br />
Vous pourriez aussi vouloir l'empêcher de dire certains badwords provoquant immédiatement un Gline sur votre serveur IRC, ou encore l'empêcher de dire des grossièretés ou d'utiliser des commandes s'il est équipé d'une I.A. qui peut apprendre.<br />
<br />
Vous pourriez même vouloir l'empêcher de HL quelqu'un.<br />
<br />
Les possibilités sont nombreuses, à vous d'en imaginer d'autres.<br />
<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="text-decoration: underline;" class="mycode_u">Fonctionnement</span></span><br />
<br />
Eggdrop Censor substitue automatiquement les termes que vous souhaitez censurer par un texte de votre choix.<br />
Cette substitution est effectuée à la volée en interceptant tout message envoyé au serveur par l'Eggdrop, puis en le réenvoyant une fois la censure appliquée.<br />
<br />
Cette censure s'applique aux messages et notices envoyés à un chan ou à un utilisateur (PRIVMSG et NOTICE); elle ne s'applique donc pas à la partyline.<br />
<br />
Il est possible d'utiliser des expressions régulières dans vos chaînes de détection, ou des chaînes de caractères simples.<br />
<br />
Pour activer Eggdrop Censor sur un chan, vous devez taper ceci en partyline de l'Eggdrop :<br />
     <span style="font-style: italic;" class="mycode_i">.chanset #NomDuChan +EggCensor</span><br />
et ceci pour le désactiver :<br />
     <span style="font-style: italic;" class="mycode_i">.chanset #NomDuChan -EggCensor</span><br />
Attention aux majuscules !<br />
En ce qui concerne l'activation ou la désactivation de la censure sur les messages qui sont envoyés à un nick et non pas à un chan (notices y compris), veuillez vous reporter au paramètre de configuration <span style="font-style: italic;" class="mycode_i">enable_censorship_for_private_msgs</span>.<br />
<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="text-decoration: underline;" class="mycode_u">Exemples</span> :</span><br />
<br />
<blockquote class="mycode_quote"><cite>Citation :</cite>&lt;MenzAgitat&gt; !wolfram who am i ?<br />
&lt;Boole&gt; <span style="text-decoration: underline;" class="mycode_u">Input interpretation</span>: current geoIP location 07| <span style="text-decoration: underline;" class="mycode_u">IP address</span>: IPv4 address <span style="font-weight: bold;" class="mycode_b">[CENSURE]</span> | IPv6 <span style="font-weight: bold;" class="mycode_b">[CENSURE]</span> | (as seen by Wolfram Alpha) | IP address regisantrt: name | Free SAS | location | Grenoble, Rhone-Alpes, France<br />
<br />
&lt;MenzAgitat&gt; .tcl putquick "PRIVMSG #testchan :t'es vraiment qu'un connard"<br />
&lt;Boole&gt; t'es vraiment qu'un bisounours<br />
&lt;Boole&gt; Tcl: 1</blockquote>
<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="text-decoration: underline;" class="mycode_u">Changelog</span> :</span><br />
<blockquote class="mycode_quote"><cite>Citation :</cite><span style="font-weight: bold;" class="mycode_b">1.0</span><ul class="mycode_list"><li>1ère version<br />
</li>
</ul>
<span style="font-weight: bold;" class="mycode_b">1.01</span><ul class="mycode_list"><li>Correction : les caractères unicode étaient corrompus au passage par le censeur.<br />
</li>
</ul>
<span style="font-weight: bold;" class="mycode_b"><span style="color: #ff3333;" class="mycode_color">1.02</span></span><ul class="mycode_list"><li>Correction : le format de fichier du script est passé en utf-8 afin de gérer proprement les caractères accentués dans les expressions censurées.<br />
</li>
</ul>
</blockquote>
<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="text-decoration: underline;" class="mycode_u">Téléchargement</span></span><br />
<br />
<a href="http://scripts.eggdrop.fr/details-Eggdrop+Censor-s225.html" target="_blank" rel="noopener" class="mycode_url"><span style="text-decoration: underline;" class="mycode_u">Eggdrop Censor v1.02</span></a><br />
<br />
Vous pouvez trouver une liste de mes autres releases <a href="http://wiki.eggdrop.fr/Utilisateur:MenzAgitat" target="_blank" rel="noopener" class="mycode_url"><span style="text-decoration: underline;" class="mycode_u"><span style="font-weight: bold;" class="mycode_b">ici</span></span></a><br />
<br />
<br />
Laissez vos commentaires / suggestions / rapports de bugs...]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[[Librairie] HaploPhone (ex Menz Agitat's Soundex) (version actuelle : 3.0)]]></title>
			<link>https://forum.eggdrop.fr/showthread.php?tid=1583</link>
			<pubDate>Tue, 16 Jun 2015 18:49:25 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://forum.eggdrop.fr/member.php?action=profile&uid=324">MenzAgitat</a>]]></dc:creator>
			<guid isPermaLink="false">https://forum.eggdrop.fr/showthread.php?tid=1583</guid>
			<description><![CDATA[ <br />
<span style="font-size: large;" class="mycode_size"><span style="text-decoration: underline;" class="mycode_u">Description</span></span><br />
<br />
HaploPhone est un algorithme phonétique inspiré du fonctionnement de Soundex ( <a href="http://fr.wikipedia.org/wiki/Soundex" target="_blank" rel="noopener" class="mycode_url">http://fr.wikipedia.org/wiki/Soundex</a> ).<br />
<br />
Il est cependant bien plus précis que l'algorithme d'origine car il a été spécifiquement conçu pour tenir compte des règles complexes de la prononciation française et retourne une valeur phonétique simplifiée plutôt qu'une valeur alphanumérique de longueur fixe.<br />
Il existe 13 phonèmes simplifiés différents : A B E I J K L M R S T U et V.<br />
Reportez-vous à la table de correspondance basique des phonèmes plus bas pour savoir à quoi ils correspondent.<br />
<br />
Il est possible d'appliquer un certain nombre de filtres et de règles, comme par exemple de supprimer toutes les voyelles, de ne les supprimer qu'en fin de mot, ou encore de générer une chaîne de caractères de longueur fixe.<br />
De plus, HaploPhone étant capable de traiter des séquences de mots en une seule fois, vous n'êtes pas obligé de les lui soumettre un par un.<br />
<br />
Ce programme a été conçu à force d'expérimentations et d'essais / erreurs, et ne prétend pas avoir une approche scientifique. Néanmoins, de nombreux textes et mots lui ont été soumis afin d'en parfaire le fonctionnement.<br />
Il se base sur un nombre conséquent de règles et d'exceptions et non pas sur le contexte, ce qui ne lui permettra pas de faire la différence entre "couvent" du verbe couver et l'édifice religieux homonyme.<br />
Certaines concessions ont donc dû être faites et en cas de conflit, la prononciation la plus courante sera retenue.<br />
<br />
L'intérêt de ce genre d'algorithme est par exemple de comparer 2 phrases orthographiées différemment et de pouvoir déterminer si elles sont équivalentes ou non d'un point de vue phonétique.<br />
Ce principe est utilisé par les correcteurs orthographiques, les moteurs de recherche qui s'en servent pour faire des suggestions, et présente un intérêt en ce qui concerne l'intelligence artificielle.<br />
<br />
Pour son fonctionnement interne, ce script utilise certains caractères en guise de marqueurs. Vous devrez donc veiller à ce qu'ils ne soient jamais utilisés dans les chaînes de caractères que vous lui soumettrez.<br />
Ces cinq caractères réservés sont les suivants : ‹ › “ ” …<br />
<br />
Ce script pourvoit l'eggdrop du package HaploPhone 3.0<br />
<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="text-decoration: underline;" class="mycode_u">Syntaxe</span></span><br />
<br />
::HaploPhone::process <span style="color: #A9A9A9;" class="mycode_color">[</span>-makespaces<span style="color: #A9A9A9;" class="mycode_color">] [</span>-keepchars <span style="color: #A9A9A9;" class="mycode_color">&lt;</span>caractères à préserver<span style="color: #A9A9A9;" class="mycode_color">&gt;] [</span>-filters nnn<span style="color: #A9A9A9;" class="mycode_color">] [</span>-length n<span style="color: #A9A9A9;" class="mycode_color">] &lt;</span>chaîne de caractères<span style="color: #A9A9A9;" class="mycode_color">&gt;</span><br />
<br />
<span style="font-style: italic;" class="mycode_i">-makespaces</span> provoque le remplacement de tous les caractères qui ne sont pas des lettres par des espaces.<br />
<br />
<span style="font-style: italic;" class="mycode_i">-keepchars</span> force le HaploPhone à préserver les caractères que vous spécifiez.<br />
Par défaut, tous les caractères qui ne sont pas des lettres sont filtrés.<br />
Les caractères que vous excluez doivent être proprement échappés si nécessaire, notamment les caractères suivants : } { ] [ " &#36; \<br />
<br />
<span style="font-style: italic;" class="mycode_i">-filters</span> permet de définir les modes de filtrage.<br />
<span style="font-style: italic;" class="mycode_i">nnn</span> est une succession de 3 chiffres ayant chacun une signification et pouvant prendre plusieurs valeurs.<br />
  1er chiffre : mode de traitement des voyelles (vaut 1, 2 ou 3).<br />
      1- Traitement standard des voyelles.<br />
      2- Toutes les voyelles sont remplacées par le caractère générique "A", à l'exception des E en fin de mot.<br />
      3- Toutes les voyelles sont supprimées. Si un mot n'est constitué que de voyelles, retourne "A".<br />
  2ème chiffre : mode de traitement des voyelles en fin de mot (vaut 1 ou 2).<br />
      1- Les "E" sont supprimés en fin de mot, sauf s'il ne reste qu'une lettre.<br />
      2- Toutes les voyelles sont supprimées en fin de mot, sauf s'il ne reste qu'une lettre.<br />
  3ème chiffre : mode de gestion des successions de voyelles (vaut 1 ou 2).<br />
      1- Gestion standard des successions de voyelles.<br />
      2- Si plusieurs voyelles se suivent, on ne conserve que la 1ère.<br />
En l'absence de l'argument -filters, les valeurs par défaut sont 111.<br />
<br />
<span style="font-style: italic;" class="mycode_i">-length</span> permet de définir une longueur fixe pour la valeur phonétique retournée par chaque mot.<br />
Si length est spécifié et qu'un mot est trop long, il sera tronqué pour atteindre la bonne longueur.<br />
Si length est spécifié et qu'un mot est trop court, il sera complété par des 0 pour atteindre la bonne longueur.<br />
Si length n'est pas spécifié ou vaut 0, la valeur aura une longueur variable dépendant de la longueur du mot.<br />
<br />
L'ordre des arguments n'est pas important.<br />
<br />
Dans le but d'accroître la rapidité d'exécution, la validité de la syntaxe de la commande n'est pas vérifiée. Veillez donc à la respecter scrupuleusement, sans quoi le script ne fonctionnera pas comme prévu et vous n'en serez pas explicitement averti.<br />
<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="text-decoration: underline;" class="mycode_u">Exemples</span></span><br />
<br />
Penons un exemple :<br />
<div class="codeblock"><div class="title">Code :</div><div class="body" dir="ltr"><code>::HaploPhone::process "ceci est un test qui fonctionne !"<br />
-&gt; SESIEATESTKIVAKSIAM</code></div></div><br />
Péservation du découpage :<br />
<div class="codeblock"><div class="title">Code :</div><div class="body" dir="ltr"><code>::HaploPhone::process -makespaces "ceci est un test qui fonctionne !"<br />
-&gt; SESI E A TEST KI VAKSIAM</code></div></div><br />
En écrivant n'importe comment, on arrive au même résultat :<br />
<div class="codeblock"><div class="title">Code :</div><div class="body" dir="ltr"><code>::HaploPhone::process -makespaces "seussies aie hein teiste ki fonksione"<br />
-&gt; SESI E A TEST KI VAKSIAM</code></div></div><br />
On peut conserver les caractères qu'on veut :<br />
<div class="codeblock"><div class="title">Code :</div><div class="body" dir="ltr"><code>::HaploPhone::process -makespaces -keepchars ",!" "ceci est un test, qui fonctionne !"<br />
-&gt; SESI E A TEST, KI VAKSIAM !</code></div></div><br />
Essayons un autre exemple pour voir comment les filtres fonctionnent.<br />
En l'absence du paramètres -filters, c'est comme si on avait -filters 111, ce qui signifie qu'on supprime les E en fin de mot :<br />
<div class="codeblock"><div class="title">Code :</div><div class="body" dir="ltr"><code>::HaploPhone::process -makespaces "oui je crache les noyaux moins loin que vous"<br />
-&gt; UI J KRAJ L MUAIA MUA LUA K VU</code></div></div><br />
Toutes les voyelles sont remplacées par le caractère générique "A", à l'exception des E en fin de mot :<br />
<div class="codeblock"><div class="title">Code :</div><div class="body" dir="ltr"><code>::HaploPhone::process -makespaces -filters 211 "oui je crache les noyaux moins loin que vous"<br />
-&gt; A J KRAJ L MA MA LA K VA</code></div></div><br />
Toutes les voyelles sont supprimées. Si un mot n'est constitué que de voyelles, retourne "A" :<br />
<div class="codeblock"><div class="title">Code :</div><div class="body" dir="ltr"><code>::HaploPhone::process -makespaces -filters 311 "oui je crache les noyaux moins loin que vous"<br />
-&gt; A J KRJ L M M L K V</code></div></div><br />
Toutes les voyelles sont supprimées en fin de mot, sauf s'il ne reste qu'une lettre :<br />
<div class="codeblock"><div class="title">Code :</div><div class="body" dir="ltr"><code>::HaploPhone::process -makespaces -filters 121 "oui je crache les noyaux moins loin que vous"<br />
-&gt; U J KRAJ L M M L K V</code></div></div><br />
Si plusieurs voyelles se suivent, on ne conserve que la 1ère :<br />
<div class="codeblock"><div class="title">Code :</div><div class="body" dir="ltr"><code>::HaploPhone::process -makespaces -filters 112 "oui je crache les noyaux moins loin que vous"<br />
-&gt; U J KRAJ L MU MU LU K VU</code></div></div><br />
Longueur fixée à 4 :<br />
<div class="codeblock"><div class="title">Code :</div><div class="body" dir="ltr"><code>::HaploPhone::process -makespaces -length 4 "oui je crache les noyaux moins loin que vous"<br />
-&gt; UI00 J000 KRAJ L000 MUAI MUA0 LUA0 K000 VU00</code></div></div><br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="text-decoration: underline;" class="mycode_u">Table de correspondance basique des phonèmes</span></span><br />
<br />
A = A / O / AN / IN / ON<br />
B = B / P<br />
E = E / AI / OE<br />
I = I<br />
J = J / CH / TCH<br />
K = K / GU<br />
L = L<br />
M = M / N<br />
R = R<br />
S = S / X / Z (dans certains cas seulement pour X, dans les autres cas il équivaut à KS)<br />
T = T / D<br />
U = U / OU<br />
V = V / F<br />
<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="text-decoration: underline;" class="mycode_u">Changelog</span> :</span><br />
<br />
<blockquote class="mycode_quote"><cite>Citation :</cite><span style="color: #FF0000;" class="mycode_color"><span style="font-weight: bold;" class="mycode_b">3.0</span></span><ul class="mycode_list"><li>Le terme "soundex" désignant un algorithme spécifique qui n'a plus rien à voir avec ce que fait ce script, ce dernier change de nom pour HaploPhone.<br />
</li>
<li>Modification radicale du fonctionnement du script en vue de le rendre plus précis et plus fiable. La plupart des exceptions et subtilités de prononciation de la langue française sont maintenant prises en compte.<br />
</li>
<li>Le script ne retourne désormais plus une valeur numérique mais une valeur phonétique simplifiée.<br />
</li>
<li>Les chiffres sont désormais filtrés par défaut, au même titre que les autres caractères non-alphabétiques.<br />
</li>
<li>Ajout des nouveaux paramètres -makespaces -filters et -length.<br />
</li>
<li>Ajout : une aide à la syntaxe est donnée dans l'erreur retournée par la commande ::HaploPhone::process si elle est utilisée sans arguments.<br />
</li>
<li>Le paramètre -keepspaces a été abandonné puisque le même effet peut être obtenu avec -keepchars ou -makespaces<br />
</li>
</ul>
</blockquote>
<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="text-decoration: underline;" class="mycode_u">Téléchargement</span> :</span> <a href="http://scripts.eggdrop.fr/details-HaploPhone-s216.html" target="_blank" rel="noopener" class="mycode_url"><span style="text-decoration: underline;" class="mycode_u">HaploPhone  v3.0</span></a><br />
<br />
lien vers l'ancienne version : <a href="http://scripts.eggdrop.fr/details-MenzAgitat%27s+Soundex-s141.html" target="_blank" rel="noopener" class="mycode_url"><span style="text-decoration: underline;" class="mycode_u">Menz Agitat's Soundex</span></a><br />
<br />
Vous pouvez trouver une liste de mes autres releases <a href="http://wiki.eggdrop.fr/Utilisateur:MenzAgitat" target="_blank" rel="noopener" class="mycode_url"><span style="text-decoration: underline;" class="mycode_u"><span style="font-weight: bold;" class="mycode_b">ici</span></span></a><br />
<br />
<br />
Laissez vos commentaires / suggestions / rapports de bugs.<br />
 ]]></description>
			<content:encoded><![CDATA[ <br />
<span style="font-size: large;" class="mycode_size"><span style="text-decoration: underline;" class="mycode_u">Description</span></span><br />
<br />
HaploPhone est un algorithme phonétique inspiré du fonctionnement de Soundex ( <a href="http://fr.wikipedia.org/wiki/Soundex" target="_blank" rel="noopener" class="mycode_url">http://fr.wikipedia.org/wiki/Soundex</a> ).<br />
<br />
Il est cependant bien plus précis que l'algorithme d'origine car il a été spécifiquement conçu pour tenir compte des règles complexes de la prononciation française et retourne une valeur phonétique simplifiée plutôt qu'une valeur alphanumérique de longueur fixe.<br />
Il existe 13 phonèmes simplifiés différents : A B E I J K L M R S T U et V.<br />
Reportez-vous à la table de correspondance basique des phonèmes plus bas pour savoir à quoi ils correspondent.<br />
<br />
Il est possible d'appliquer un certain nombre de filtres et de règles, comme par exemple de supprimer toutes les voyelles, de ne les supprimer qu'en fin de mot, ou encore de générer une chaîne de caractères de longueur fixe.<br />
De plus, HaploPhone étant capable de traiter des séquences de mots en une seule fois, vous n'êtes pas obligé de les lui soumettre un par un.<br />
<br />
Ce programme a été conçu à force d'expérimentations et d'essais / erreurs, et ne prétend pas avoir une approche scientifique. Néanmoins, de nombreux textes et mots lui ont été soumis afin d'en parfaire le fonctionnement.<br />
Il se base sur un nombre conséquent de règles et d'exceptions et non pas sur le contexte, ce qui ne lui permettra pas de faire la différence entre "couvent" du verbe couver et l'édifice religieux homonyme.<br />
Certaines concessions ont donc dû être faites et en cas de conflit, la prononciation la plus courante sera retenue.<br />
<br />
L'intérêt de ce genre d'algorithme est par exemple de comparer 2 phrases orthographiées différemment et de pouvoir déterminer si elles sont équivalentes ou non d'un point de vue phonétique.<br />
Ce principe est utilisé par les correcteurs orthographiques, les moteurs de recherche qui s'en servent pour faire des suggestions, et présente un intérêt en ce qui concerne l'intelligence artificielle.<br />
<br />
Pour son fonctionnement interne, ce script utilise certains caractères en guise de marqueurs. Vous devrez donc veiller à ce qu'ils ne soient jamais utilisés dans les chaînes de caractères que vous lui soumettrez.<br />
Ces cinq caractères réservés sont les suivants : ‹ › “ ” …<br />
<br />
Ce script pourvoit l'eggdrop du package HaploPhone 3.0<br />
<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="text-decoration: underline;" class="mycode_u">Syntaxe</span></span><br />
<br />
::HaploPhone::process <span style="color: #A9A9A9;" class="mycode_color">[</span>-makespaces<span style="color: #A9A9A9;" class="mycode_color">] [</span>-keepchars <span style="color: #A9A9A9;" class="mycode_color">&lt;</span>caractères à préserver<span style="color: #A9A9A9;" class="mycode_color">&gt;] [</span>-filters nnn<span style="color: #A9A9A9;" class="mycode_color">] [</span>-length n<span style="color: #A9A9A9;" class="mycode_color">] &lt;</span>chaîne de caractères<span style="color: #A9A9A9;" class="mycode_color">&gt;</span><br />
<br />
<span style="font-style: italic;" class="mycode_i">-makespaces</span> provoque le remplacement de tous les caractères qui ne sont pas des lettres par des espaces.<br />
<br />
<span style="font-style: italic;" class="mycode_i">-keepchars</span> force le HaploPhone à préserver les caractères que vous spécifiez.<br />
Par défaut, tous les caractères qui ne sont pas des lettres sont filtrés.<br />
Les caractères que vous excluez doivent être proprement échappés si nécessaire, notamment les caractères suivants : } { ] [ " &#36; \<br />
<br />
<span style="font-style: italic;" class="mycode_i">-filters</span> permet de définir les modes de filtrage.<br />
<span style="font-style: italic;" class="mycode_i">nnn</span> est une succession de 3 chiffres ayant chacun une signification et pouvant prendre plusieurs valeurs.<br />
  1er chiffre : mode de traitement des voyelles (vaut 1, 2 ou 3).<br />
      1- Traitement standard des voyelles.<br />
      2- Toutes les voyelles sont remplacées par le caractère générique "A", à l'exception des E en fin de mot.<br />
      3- Toutes les voyelles sont supprimées. Si un mot n'est constitué que de voyelles, retourne "A".<br />
  2ème chiffre : mode de traitement des voyelles en fin de mot (vaut 1 ou 2).<br />
      1- Les "E" sont supprimés en fin de mot, sauf s'il ne reste qu'une lettre.<br />
      2- Toutes les voyelles sont supprimées en fin de mot, sauf s'il ne reste qu'une lettre.<br />
  3ème chiffre : mode de gestion des successions de voyelles (vaut 1 ou 2).<br />
      1- Gestion standard des successions de voyelles.<br />
      2- Si plusieurs voyelles se suivent, on ne conserve que la 1ère.<br />
En l'absence de l'argument -filters, les valeurs par défaut sont 111.<br />
<br />
<span style="font-style: italic;" class="mycode_i">-length</span> permet de définir une longueur fixe pour la valeur phonétique retournée par chaque mot.<br />
Si length est spécifié et qu'un mot est trop long, il sera tronqué pour atteindre la bonne longueur.<br />
Si length est spécifié et qu'un mot est trop court, il sera complété par des 0 pour atteindre la bonne longueur.<br />
Si length n'est pas spécifié ou vaut 0, la valeur aura une longueur variable dépendant de la longueur du mot.<br />
<br />
L'ordre des arguments n'est pas important.<br />
<br />
Dans le but d'accroître la rapidité d'exécution, la validité de la syntaxe de la commande n'est pas vérifiée. Veillez donc à la respecter scrupuleusement, sans quoi le script ne fonctionnera pas comme prévu et vous n'en serez pas explicitement averti.<br />
<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="text-decoration: underline;" class="mycode_u">Exemples</span></span><br />
<br />
Penons un exemple :<br />
<div class="codeblock"><div class="title">Code :</div><div class="body" dir="ltr"><code>::HaploPhone::process "ceci est un test qui fonctionne !"<br />
-&gt; SESIEATESTKIVAKSIAM</code></div></div><br />
Péservation du découpage :<br />
<div class="codeblock"><div class="title">Code :</div><div class="body" dir="ltr"><code>::HaploPhone::process -makespaces "ceci est un test qui fonctionne !"<br />
-&gt; SESI E A TEST KI VAKSIAM</code></div></div><br />
En écrivant n'importe comment, on arrive au même résultat :<br />
<div class="codeblock"><div class="title">Code :</div><div class="body" dir="ltr"><code>::HaploPhone::process -makespaces "seussies aie hein teiste ki fonksione"<br />
-&gt; SESI E A TEST KI VAKSIAM</code></div></div><br />
On peut conserver les caractères qu'on veut :<br />
<div class="codeblock"><div class="title">Code :</div><div class="body" dir="ltr"><code>::HaploPhone::process -makespaces -keepchars ",!" "ceci est un test, qui fonctionne !"<br />
-&gt; SESI E A TEST, KI VAKSIAM !</code></div></div><br />
Essayons un autre exemple pour voir comment les filtres fonctionnent.<br />
En l'absence du paramètres -filters, c'est comme si on avait -filters 111, ce qui signifie qu'on supprime les E en fin de mot :<br />
<div class="codeblock"><div class="title">Code :</div><div class="body" dir="ltr"><code>::HaploPhone::process -makespaces "oui je crache les noyaux moins loin que vous"<br />
-&gt; UI J KRAJ L MUAIA MUA LUA K VU</code></div></div><br />
Toutes les voyelles sont remplacées par le caractère générique "A", à l'exception des E en fin de mot :<br />
<div class="codeblock"><div class="title">Code :</div><div class="body" dir="ltr"><code>::HaploPhone::process -makespaces -filters 211 "oui je crache les noyaux moins loin que vous"<br />
-&gt; A J KRAJ L MA MA LA K VA</code></div></div><br />
Toutes les voyelles sont supprimées. Si un mot n'est constitué que de voyelles, retourne "A" :<br />
<div class="codeblock"><div class="title">Code :</div><div class="body" dir="ltr"><code>::HaploPhone::process -makespaces -filters 311 "oui je crache les noyaux moins loin que vous"<br />
-&gt; A J KRJ L M M L K V</code></div></div><br />
Toutes les voyelles sont supprimées en fin de mot, sauf s'il ne reste qu'une lettre :<br />
<div class="codeblock"><div class="title">Code :</div><div class="body" dir="ltr"><code>::HaploPhone::process -makespaces -filters 121 "oui je crache les noyaux moins loin que vous"<br />
-&gt; U J KRAJ L M M L K V</code></div></div><br />
Si plusieurs voyelles se suivent, on ne conserve que la 1ère :<br />
<div class="codeblock"><div class="title">Code :</div><div class="body" dir="ltr"><code>::HaploPhone::process -makespaces -filters 112 "oui je crache les noyaux moins loin que vous"<br />
-&gt; U J KRAJ L MU MU LU K VU</code></div></div><br />
Longueur fixée à 4 :<br />
<div class="codeblock"><div class="title">Code :</div><div class="body" dir="ltr"><code>::HaploPhone::process -makespaces -length 4 "oui je crache les noyaux moins loin que vous"<br />
-&gt; UI00 J000 KRAJ L000 MUAI MUA0 LUA0 K000 VU00</code></div></div><br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="text-decoration: underline;" class="mycode_u">Table de correspondance basique des phonèmes</span></span><br />
<br />
A = A / O / AN / IN / ON<br />
B = B / P<br />
E = E / AI / OE<br />
I = I<br />
J = J / CH / TCH<br />
K = K / GU<br />
L = L<br />
M = M / N<br />
R = R<br />
S = S / X / Z (dans certains cas seulement pour X, dans les autres cas il équivaut à KS)<br />
T = T / D<br />
U = U / OU<br />
V = V / F<br />
<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="text-decoration: underline;" class="mycode_u">Changelog</span> :</span><br />
<br />
<blockquote class="mycode_quote"><cite>Citation :</cite><span style="color: #FF0000;" class="mycode_color"><span style="font-weight: bold;" class="mycode_b">3.0</span></span><ul class="mycode_list"><li>Le terme "soundex" désignant un algorithme spécifique qui n'a plus rien à voir avec ce que fait ce script, ce dernier change de nom pour HaploPhone.<br />
</li>
<li>Modification radicale du fonctionnement du script en vue de le rendre plus précis et plus fiable. La plupart des exceptions et subtilités de prononciation de la langue française sont maintenant prises en compte.<br />
</li>
<li>Le script ne retourne désormais plus une valeur numérique mais une valeur phonétique simplifiée.<br />
</li>
<li>Les chiffres sont désormais filtrés par défaut, au même titre que les autres caractères non-alphabétiques.<br />
</li>
<li>Ajout des nouveaux paramètres -makespaces -filters et -length.<br />
</li>
<li>Ajout : une aide à la syntaxe est donnée dans l'erreur retournée par la commande ::HaploPhone::process si elle est utilisée sans arguments.<br />
</li>
<li>Le paramètre -keepspaces a été abandonné puisque le même effet peut être obtenu avec -keepchars ou -makespaces<br />
</li>
</ul>
</blockquote>
<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="text-decoration: underline;" class="mycode_u">Téléchargement</span> :</span> <a href="http://scripts.eggdrop.fr/details-HaploPhone-s216.html" target="_blank" rel="noopener" class="mycode_url"><span style="text-decoration: underline;" class="mycode_u">HaploPhone  v3.0</span></a><br />
<br />
lien vers l'ancienne version : <a href="http://scripts.eggdrop.fr/details-MenzAgitat%27s+Soundex-s141.html" target="_blank" rel="noopener" class="mycode_url"><span style="text-decoration: underline;" class="mycode_u">Menz Agitat's Soundex</span></a><br />
<br />
Vous pouvez trouver une liste de mes autres releases <a href="http://wiki.eggdrop.fr/Utilisateur:MenzAgitat" target="_blank" rel="noopener" class="mycode_url"><span style="text-decoration: underline;" class="mycode_u"><span style="font-weight: bold;" class="mycode_b">ici</span></span></a><br />
<br />
<br />
Laissez vos commentaires / suggestions / rapports de bugs.<br />
 ]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[NoColorNorSpacesBeforeCommands  (version actuelle : 1.01)]]></title>
			<link>https://forum.eggdrop.fr/showthread.php?tid=1521</link>
			<pubDate>Thu, 17 Apr 2014 11:01:10 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://forum.eggdrop.fr/member.php?action=profile&uid=324">MenzAgitat</a>]]></dc:creator>
			<guid isPermaLink="false">https://forum.eggdrop.fr/showthread.php?tid=1521</guid>
			<description><![CDATA[ <br />
<span style="font-size: medium;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b"><span style="text-decoration: underline;" class="mycode_u">Description</span></span></span><br />
<br />
Ce script enverra un message informatif à quiconque tentera de taper une commande en couleur, gras, souligné, ou avec un espace indésirable avant ou après.<br />
Ce message est destiné à rappeler aux utilisateurs quelques règles de base pour utiliser les commandes sur IRC, et ainsi éviter les commentaires comme :<br />
<blockquote class="mycode_quote"><cite>Citation :</cite>&lt;KeViN2000&gt; <span style="font-weight: bold;" class="mycode_b"><span style="color: #FF4500;" class="mycode_color"><span style="text-decoration: underline;" class="mycode_u">S</span></span><span style="color: #C71585;" class="mycode_color">a</span> <span style="color: #FF4500;" class="mycode_color"><span style="text-decoration: underline;" class="mycode_u">m</span></span><span style="color: #C71585;" class="mycode_color">arch</span> <span style="color: #FF4500;" class="mycode_color"><span style="text-decoration: underline;" class="mycode_u">p</span></span><span style="color: #C71585;" class="mycode_color">a</span> <span style="color: #FF4500;" class="mycode_color"><span style="text-decoration: underline;" class="mycode_u">7</span></span> <span style="color: #FF4500;" class="mycode_color"><span style="text-decoration: underline;" class="mycode_u">c</span></span><span style="color: #C71585;" class="mycode_color">ommende</span> <span style="color: #FF4500;" class="mycode_color"><span style="text-decoration: underline;" class="mycode_u">d</span></span><span style="color: #C71585;" class="mycode_color">e</span> <span style="color: #FF4500;" class="mycode_color"><span style="text-decoration: underline;" class="mycode_u">m</span></span><span style="color: #C71585;" class="mycode_color">erd</span> <span style="color: #FF4500;" class="mycode_color"><span style="text-decoration: underline;" class="mycode_u">l</span></span><span style="color: #C71585;" class="mycode_color">ooool</span> <span style="color: #FF4500;" class="mycode_color"><span style="text-decoration: underline;" class="mycode_u">m</span></span><span style="color: #C71585;" class="mycode_color">drrrrrrrrdrrrrdxpldrrrrrdptdrrr!!!!</span></span></blockquote>
<br />
<br />
<span style="font-size: medium;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b"><span style="text-decoration: underline;" class="mycode_u">Exemples</span></span></span><br />
<br />
<blockquote class="mycode_quote"><cite>Citation :</cite>&lt;MenzAgitat&gt; <span style="color: #32CD32;" class="mycode_color"><span style="font-weight: bold;" class="mycode_b">!test</span></span><br />
-Eggdrop- <span style="color: #FF4500;" class="mycode_color">:::</span> Vous avez utilisé des codes de styles dans une commande (couleurs, gras, soulignement, etc...). Veuillez notez que certaines commandes ne fonctionneront pas dans ces conditions. Merci d'écrire normalement.<br />
<br />
&lt;MenzAgitat&gt;   !test<br />
-Eggdrop- <span style="color: #FF4500;" class="mycode_color">:::</span> Un espace en trop a été détecté devant votre commande. Veuillez noter que certaines commandes ne fonctionneront pas avec un espace devant.<br />
<br />
&lt;MenzAgitat&gt; !test  <br />
-Eggdrop- <span style="color: #FF4500;" class="mycode_color">:::</span> Un espace en trop a été détecté à la fin de votre ligne de commande. Veuillez noter que cela peut perturber voire empêcher le fonctionnement correct de certaines commandes.</blockquote>
<br />
<br />
<span style="font-size: medium;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b"><span style="text-decoration: underline;" class="mycode_u">Changelog</span></span></span><br />
<br />
<blockquote class="mycode_quote"><cite>Citation :</cite><span style="font-size: x-small;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">v1.0</span><ul class="mycode_list"><li>1ère version</li>
</ul>
<span style="font-weight: bold;" class="mycode_b"><span style="color: #FF4500;" class="mycode_color">v1.01</span></span><ul class="mycode_list"><li>Correction : un bug dans le code provoquait une erreur.</li>
</ul>
</span></blockquote>
<br />
<br />
<span style="font-size: medium;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b"><span style="text-decoration: underline;" class="mycode_u">Téléchargement</span> :</span></span><br />
<br />
<a href="http://scripts.eggdrop.fr/details-NoColorsNorSpacesBeforeCommands-s206.html" target="_blank" rel="noopener" class="mycode_url"><span style="font-weight: bold;" class="mycode_b"><span style="text-decoration: underline;" class="mycode_u">NoColorNorSpacesBeforeCommands v1.01</span></span></a><br />
<br />
Vous pouvez trouver une liste de mes autres releases <a href="http://wiki.eggdrop.fr/Utilisateur:MenzAgitat" target="_blank" rel="noopener" class="mycode_url"><span style="text-decoration: underline;" class="mycode_u"><span style="font-weight: bold;" class="mycode_b">ici</span></span></a><br />
<br />
<br />
Laissez vos commentaires / suggestions / rapports de bugs ici...<br />
 ]]></description>
			<content:encoded><![CDATA[ <br />
<span style="font-size: medium;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b"><span style="text-decoration: underline;" class="mycode_u">Description</span></span></span><br />
<br />
Ce script enverra un message informatif à quiconque tentera de taper une commande en couleur, gras, souligné, ou avec un espace indésirable avant ou après.<br />
Ce message est destiné à rappeler aux utilisateurs quelques règles de base pour utiliser les commandes sur IRC, et ainsi éviter les commentaires comme :<br />
<blockquote class="mycode_quote"><cite>Citation :</cite>&lt;KeViN2000&gt; <span style="font-weight: bold;" class="mycode_b"><span style="color: #FF4500;" class="mycode_color"><span style="text-decoration: underline;" class="mycode_u">S</span></span><span style="color: #C71585;" class="mycode_color">a</span> <span style="color: #FF4500;" class="mycode_color"><span style="text-decoration: underline;" class="mycode_u">m</span></span><span style="color: #C71585;" class="mycode_color">arch</span> <span style="color: #FF4500;" class="mycode_color"><span style="text-decoration: underline;" class="mycode_u">p</span></span><span style="color: #C71585;" class="mycode_color">a</span> <span style="color: #FF4500;" class="mycode_color"><span style="text-decoration: underline;" class="mycode_u">7</span></span> <span style="color: #FF4500;" class="mycode_color"><span style="text-decoration: underline;" class="mycode_u">c</span></span><span style="color: #C71585;" class="mycode_color">ommende</span> <span style="color: #FF4500;" class="mycode_color"><span style="text-decoration: underline;" class="mycode_u">d</span></span><span style="color: #C71585;" class="mycode_color">e</span> <span style="color: #FF4500;" class="mycode_color"><span style="text-decoration: underline;" class="mycode_u">m</span></span><span style="color: #C71585;" class="mycode_color">erd</span> <span style="color: #FF4500;" class="mycode_color"><span style="text-decoration: underline;" class="mycode_u">l</span></span><span style="color: #C71585;" class="mycode_color">ooool</span> <span style="color: #FF4500;" class="mycode_color"><span style="text-decoration: underline;" class="mycode_u">m</span></span><span style="color: #C71585;" class="mycode_color">drrrrrrrrdrrrrdxpldrrrrrdptdrrr!!!!</span></span></blockquote>
<br />
<br />
<span style="font-size: medium;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b"><span style="text-decoration: underline;" class="mycode_u">Exemples</span></span></span><br />
<br />
<blockquote class="mycode_quote"><cite>Citation :</cite>&lt;MenzAgitat&gt; <span style="color: #32CD32;" class="mycode_color"><span style="font-weight: bold;" class="mycode_b">!test</span></span><br />
-Eggdrop- <span style="color: #FF4500;" class="mycode_color">:::</span> Vous avez utilisé des codes de styles dans une commande (couleurs, gras, soulignement, etc...). Veuillez notez que certaines commandes ne fonctionneront pas dans ces conditions. Merci d'écrire normalement.<br />
<br />
&lt;MenzAgitat&gt;   !test<br />
-Eggdrop- <span style="color: #FF4500;" class="mycode_color">:::</span> Un espace en trop a été détecté devant votre commande. Veuillez noter que certaines commandes ne fonctionneront pas avec un espace devant.<br />
<br />
&lt;MenzAgitat&gt; !test  <br />
-Eggdrop- <span style="color: #FF4500;" class="mycode_color">:::</span> Un espace en trop a été détecté à la fin de votre ligne de commande. Veuillez noter que cela peut perturber voire empêcher le fonctionnement correct de certaines commandes.</blockquote>
<br />
<br />
<span style="font-size: medium;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b"><span style="text-decoration: underline;" class="mycode_u">Changelog</span></span></span><br />
<br />
<blockquote class="mycode_quote"><cite>Citation :</cite><span style="font-size: x-small;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">v1.0</span><ul class="mycode_list"><li>1ère version</li>
</ul>
<span style="font-weight: bold;" class="mycode_b"><span style="color: #FF4500;" class="mycode_color">v1.01</span></span><ul class="mycode_list"><li>Correction : un bug dans le code provoquait une erreur.</li>
</ul>
</span></blockquote>
<br />
<br />
<span style="font-size: medium;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b"><span style="text-decoration: underline;" class="mycode_u">Téléchargement</span> :</span></span><br />
<br />
<a href="http://scripts.eggdrop.fr/details-NoColorsNorSpacesBeforeCommands-s206.html" target="_blank" rel="noopener" class="mycode_url"><span style="font-weight: bold;" class="mycode_b"><span style="text-decoration: underline;" class="mycode_u">NoColorNorSpacesBeforeCommands v1.01</span></span></a><br />
<br />
Vous pouvez trouver une liste de mes autres releases <a href="http://wiki.eggdrop.fr/Utilisateur:MenzAgitat" target="_blank" rel="noopener" class="mycode_url"><span style="text-decoration: underline;" class="mycode_u"><span style="font-weight: bold;" class="mycode_b">ici</span></span></a><br />
<br />
<br />
Laissez vos commentaires / suggestions / rapports de bugs ici...<br />
 ]]></content:encoded>
		</item>
	</channel>
</rss>