<?xml version="1.0"?>
<rss version="2.0"><channel><title>R&#xE9;alisations Latest Topics</title><link>https://forum.supreme-elite.fr/forum/139-r%C3%A9alisations/</link><description>R&#xE9;alisations Latest Topics</description><language>en</language><item><title>QuickDefuse traduit en Fran&#xE7;ais</title><link>https://forum.supreme-elite.fr/topic/16841-quickdefuse-traduit-en-fran%C3%A3%C2%A7ais/</link><description><![CDATA[<p>Coucou,</p><p> </p><p>J'ai traduit le plugin QuickDefuse en Fr pour ma team au début et là je l'ai retrouvé dans mes archives avec le sp ! Donc je vous le file faites en bonne usage ! Plugin de base : <a href="https://forums.alliedmods.net/showthread.php?p=520661" rel="external nofollow">https://forums.alliedmods.net/showthread.php?p=520661</a></p><p> </p><p> </p><p>Et les fichiers modifiés :</p><p> </p><p><a href="https://forum.supreme-elite.fr/applications/core/interface/file/attachment.php?id=1843" data-fileid="1843" data-fileext="smx" rel="">QuickDefuse.smx</a></p><p><a href="https://forum.supreme-elite.fr/applications/core/interface/file/attachment.php?id=1842" data-fileid="1842" data-fileext="sp" rel="">QuickDefuse.sp</a></p>]]></description><guid isPermaLink="false">16841</guid><pubDate>Sat, 20 Sep 2014 07:57:18 +0000</pubDate></item><item><title>[GIFT] Plugin finit et en manque d'id&#xE9;e donc venez ! :p</title><link>https://forum.supreme-elite.fr/topic/18201-gift-plugin-finit-et-en-manque-did%C3%A3%C2%A9e-donc-venez-p/</link><description><![CDATA[<p>Coucou tout le monde,</p><p> </p><p>Ça fait quelques temps que je travaille sur mon !gift et je vous le propose à vous ! Donc veuillez me dire toutes vos idées, bugs !</p><p> </p><p></p><p>-- OPTIMISÉ POUR BAJAIL V6 --</p>Bonus :<p> </p><p>Vie +/-</p><p>USP</p><p>Glock</p><p>Vitesse +/-</p><p>Mal de tête</p><p>Rien</p><p>Lancé de cut</p><p>Jailvip</p><p>Gravité +/-</p><p>Être malade</p><p>Droit à un autre !gift</p><p>P'tite loterie à vous de voir si vous la laissez ^^</p><p>Tour de magie</p><p>Dégâts +/-</p><p>Spy</p><p>Regen HP</p><p>Size +/-</p><p>Voler de vos propres ailes</p><p> </p><p>Changelog</p><p> </p><p></p><p> </p><blockquote data-ipsquote="" class="ipsQuote"><div>V3.0 : Release<p> </p><p>V4.0 : Spy optimisé grâce à Kriax,</p><p>Ajout : - Regen d'hp</p><p>            - Size +/-</p><p>            - Voler de vos propres ailes</p><p>Fichier translations OK</p></div></blockquote><p> </p><p>-----------------------------------------------------------------------</p><p> </p><p>Idées futures : Balle illimité, !respawn.</p><p> </p><p>-----------------------------------------------------------------------</p><p> </p><p>Base du plugin de dertione.</p><p> </p><p>Pour le spy pensez à bien changer le skin <img alt=";)" src="https://forum.supreme-elite.fr/uploads/emoticons/default_wink.png" loading="lazy"></p><p> </p><p>Donc voilà tout pour mon deuxième plug-in dans ce language j'espère qui vous plaira et sachez que mon orthographe n'est pas au TOP donc vous pouvez me corriger et si vous avez des idées pour améliorer le code ou des idées de bonus supplémentaire dîtes les à la suite du sujet ! <img alt=":P" src="https://forum.supreme-elite.fr/uploads/emoticons/default_blum.gif" loading="lazy"></p><p> </p><p>Cordialement,</p><p> </p><p>Had3s99</p><p><a href="https://forum.supreme-elite.fr/applications/core/interface/file/attachment.php?id=1907" data-fileid="1907" data-fileext="zip" rel="">Gift.zip</a></p>]]></description><guid isPermaLink="false">18201</guid><pubDate>Sun, 06 Sep 2015 16:20:33 +0000</pubDate></item><item><title>Plugin de gift (cadeau au hasard) - v0.3</title><link>https://forum.supreme-elite.fr/topic/5665-plugin-de-gift-cadeau-au-hasard-v03/</link><description><![CDATA[<div style="text-align:center;"><p><span style="font-size:10px;">Voici une version </span><span style="font-size:10px;"><strong>relativement customisable</strong></span><span style="font-size:10px;"> d'un plugin </span><span style="font-size:10px;"><strong>/gift</strong></span><span style="font-size:10px;"> (permet de recevoir un bonus ou un malus au hasard) adaptable sur quelques mods. Il est particulièrement intéressant pour les système VIP</span></p><p><span style="font-size:10px;"> </span></p><p><span style="font-size:10px;">Il y a actuellement </span><span style="font-size:10px;"><strong>15 types de "cadeaux" différents</strong></span><span style="font-size:10px;"> (d'autre seront implémentés prochainement). Pour chacun d'entre eux, vous pouvez les </span><span style="font-size:10px;"><strong>activer/désactiver</strong></span><span style="font-size:10px;">, définir leur </span><span style="font-size:10px;"><strong>probabilité</strong></span><span style="font-size:10px;">, </span><span style="font-size:10px;"><strong>configurer les messages</strong></span><span style="font-size:10px;">, les rattacher qu'a </span><span style="font-size:10px;"><strong>un seul groupe (T/CT) ou les 2</strong></span><span style="font-size:10px;">. De plus, il y a quelques spécificités selon le type.</span></p><p><span style="font-size:10px;"> </span></p><p><span style="font-size:10px;">Sinon, vous pouvez aussi paramétrer le </span><span style="font-size:10px;"><strong>préfixe des messages</strong></span><span style="font-size:10px;">, le </span><span style="font-size:10px;"><strong>flag minimum</strong></span><span style="font-size:10px;"> pour avoir accès à la commande /gift, le </span><span style="font-size:10px;"><strong>nombre de gift autorisés par map</strong></span><span style="font-size:10px;"> (actuellement, il y a une limite à 1 par round, elle sera paramétrable plus tard) et enfin les </span><span style="font-size:10px;"><strong>messages de base</strong></span><span style="font-size:10px;">.</span></p></div><p></p><p> </p><p> </p><p><span style="font-size:12px;"><span style="color:#000080;"><strong>Liste des types de cadeaux</strong></span></span></p><p> </p><p><em>V0.1 :</em></p><p> "¢ <strong>Health </strong>:</p><p>Permet de donner un bonus ou malus de vie. Vous pouvez configurer la vie retirée/ajoutée et s'il y a le côté bonus ou malus ou les 2 (attention, dans ce cas-ci, la probabilité compte pour les 2, et elle est donc divisée par 2 (moitié bonus, moitié malus)).</p><p> "¢ <strong>Speed </strong>:</p><p>Permet de donner un bonus ou malus de vitesse. Vous pouvez configurer le taux de vitesse modifié, le temps de modification et s'il y a le côté bonus ou malus ou les 2.</p><p> "¢ <strong>Blind </strong>:</p><p>Permet de donner un malus de visibilité. Vous pouvez configurer le taux d'aveuglement ainsi que la durée d'aveuglement</p><p> "¢ <strong>Burn </strong>:</p><p>Permet de donner un malus "brûler vif". Vous pouvez configurer le temps de "brûlure"</p><p> "¢ <strong>Kevlar </strong>:</p><p>Permer de donner un bonus de kevlar. Vous pouvez configurer la quantité de kevlar (attention, elle remplacera le kevlar actuel du joueur).</p><p> "¢ <strong>Primary Weapon</strong> :</p><p>Permet de donner un bonus d'arme principal. Vous pouvez configurer l'arme donnée (cf liste des codes d'arme plus bas). Les chargeurs sont pour le moment remplit tous les 2.</p><p> "¢ <strong>Secondary Weapon</strong> :</p><p>Permet de donner un bonus d'arme secondaire. Vous pouvez configurer l'arme donnée (cf liste des codes d'arme plus bas). Les chargeurs sont pour le moment remplit tous les 2.</p><p> "¢ <strong>Nades </strong>:</p><p>Permet de donner un bonus de grenades. Vous pouvez configurer les grenades données (l'explication est dans le cfg)</p><p> "¢ <strong>Medik </strong>:</p><p>Permet de donner un bonus de medikit. Vous pouvez configurer le rayon d'action et la quantité de vie soignée (ne dépasse pas la barre des 100 HP)</p><p> "¢ <strong>Beacon </strong>:</p><p>Permet de donner un bonus de balisage. Vous pouvez configurer le temps que dure la balise.</p><p> "¢ <strong>Spy </strong>:</p><p>Permet de donner un bonus de skin espion. Vous pouvez configurer les skins espion T et CT, ainsi que les skin normaux (qu'auront les joueurs a la fin du skin espion) et la durée du skin espion.</p><p> "¢ <strong>Damage </strong>:</p><p>Permet de donner un bonus ou un malus de dégâts. Vous pouvez configurer si c'est un bonus ou un malus ou les 2 ainsi que le pourcentage de dégâts supplémentaires/retirés.</p><p><em> "¢ </em><em><strong>Nothing </strong></em><em>:</em></p><p><em>Permet de ne pas donner de bonus. La probabilité est paramétrable, et ceci pour les T et les CTs.</em></p><p> </p><p><em>V0.2 :</em></p><p> "¢ <strong>Extra VIP </strong>:</p><p>Permet de donner un bonus de temps VIP. Vous pouvez configurer les accès SQL, les intitulés de la table et le temps de VIP donné en bonus.</p><p> "¢ <strong>Disguise </strong>:</p><p>Permet de donner un bonus/malus de skin. Vous pouvez configurer le skin en question</p><p> </p><p><em>V0.3 :</em></p><p> "¢ <strong>Double-Jump </strong>:</p><p>Permet de donner un bonus de double saut, soit la possibilité d'effectuer un deuxième saut en l'air. La probabilité est paramétrable, et ceci pour les T et les CTs.</p><p> </p><p> </p><p><span style="font-size:12px;"><span style="color:#000080;"><strong>Quelques détails</strong></span></span></p><p> </p><p> "¢ Certains tags de couleurs sont disponibles dans les messages (ceux de l'extension colors), a savoir {default}, {green}, {lightgreen}, {teamcolor} (rouge pour T, bleu pour CT). Attentions, certains ne se marient pas ensemble et la couleur du message sera buggé (peut-être même qu'il n'apparaitra pas).</p><p> "¢ Le fichier de config se crée automatiquement au chargement du plugin. Il se trouvera dans cstrike/cfg/sourcemod/plugin_gift.cfg. De base, tous les gifts sont désactivés.</p><p> "¢ Ne changez pas les CVars IG, mais manuellement. Sinon, au changement de map, elle seront remises à zero.</p><p> "¢ Concernant les skins, le plugin ne les fera pas télécharger de lui-même. Ils doivent être installés côté client et serveur, donc vous devez les faire télécharger via un plugin annexe (facilement trouvable sur sourcemod.net)</p><p>"¢ La somme des probabilités ne doit pas nécessairement être égale à 1. Sachez que le plugin lance un dé entre 1 et la somme totale des probabilités des gifts activés. Donc mettez simplement les entiers que vous souhaitez.</p><p> </p><p>Si vous avez une idée de gift en tête, n'hésitez pas a la suggérer</p><p> </p><p> </p><p><span style="font-size:12px;"><span style="color:#000080;"><strong>Bugs répertoriés</strong></span></span></p><p> </p><p> </p><p><span style="font-size:12px;"><span style="color:#000080;"><strong>Dépendances</strong></span></span></p><p> </p><p>"¢ plugin sourceban (pour les flags, plus simple que manuellement)</p><p>"¢ plugin funcommands (pour les commandes /beacon, /blind, /burn, donc IMPÉRATIF)</p><p>"¢ extension sdkhooks (pour le gift de type Damage), logiquement fournit de base avec sourcemod</p><p> </p><p> </p><p><span style="font-size:12px;"><span style="color:#000080;"><strong>Changelog</strong></span></span></p><p> </p><p>"¢ Version 0.4 : Correctifs de l'affichage du tag</p><p>"¢ Version 0.3 : Correctifs du bug Kevlar + bug Tag et 1 nouveau gift</p><p>"¢ Version 0.2 : Inclusion d'un fichier de trad + 2 nouveaux gifts</p><p>"¢ Version 0.1 : First release</p><p> </p><p><span style="font-size:12px;"><span style="color:#000080;"><strong>Prochainement</strong></span></span></p><p> </p><p>"¢ D'autres types de cadeau</p><p>"¢ <span style="text-decoration:line-through;">Système de langage/traduction (et retirer toutes les cvars de message)</span></p><p>"¢ Intégration de sons et effets sonores</p><p>"¢ <span style="text-decoration:line-through;">Mise au propre du fichier de config</span></p><p>"¢ Une doc plus propre et détaillée</p><p>"¢ Une commande root (/giftlist) pour avoir la liste des gifts activés avec leur proba</p><p> </p><p> </p><p> </p><p>Je fournirais la source une fois le code propre, les bugs globalement fixé et les warnings corrigés. Bref, à la version 1.0</p><p> </p><p> </p><p><span style="color:#FF0000;">Plugin v0.4</span> : <a href="https://forum.supreme-elite.fr/applications/core/interface/file/attachment.php?id=842" data-fileid="842" data-fileext="smx" rel="">gift.smx</a></p><p><span style="color:#FF0000;">Fichier de traductions v0.4</span> : <a href="https://forum.supreme-elite.fr/applications/core/interface/file/attachment.php?id=838" data-fileid="838" data-fileext="txt" rel="">gift.phrases.txt</a></p><p>Plugin v0.1 : <a href="https://forum.supreme-elite.fr/applications/core/interface/file/attachment.php?id=727" data-fileid="727" data-fileext="smx" rel="">gift.smx</a></p><p> </p><p>PS : Je suis ouvert a toute suggestion (de gift notamment)/remarque/critique. Je publierais d'autres plugins par la suite, certains crées par le passé, d'autre codés sur le fil et spécialement pour.</p>]]></description><guid isPermaLink="false">5665</guid><pubDate>Fri, 22 Apr 2011 11:51:49 +0000</pubDate></item><item><title>[Plugin] Anges vs D&#xE9;mons</title><link>https://forum.supreme-elite.fr/topic/18020-plugin-anges-vs-d%C3%A3%C2%A9mons/</link><description><![CDATA[<p>Salut les SE, je voulais me mettre au sourcemod pour cet été, donc j'ai commencé à apprendre le sourcepawn y a une semaine et je viens de finir mon premier plugin, donc je vous le met à disposition pour ceux que ça interesse, si vous voyez des bugs dites le moi, car bon c'est mon premier plguin ca doit être full de bug <img alt=":hap:" src="https://forum.supreme-elite.fr/uploads/emoticons/default_hap.gif" loading="lazy"></p><p> </p><p>Donc c'est un plugin Anges Vs Démons, je me suis basé sur les règles du Anges vs Démons d'un autre serveur pour le faire, ca m'a prit à peu près une semaine à faire.</p><p> </p><p>Pour le server.cfg je vous conseille de desactiver le team balance, le buytime, mettez à 4 minutes chaque round (j'ai réglé à 4 minutes que sa stop dans mon plugin <img alt=":hap:" src="https://forum.supreme-elite.fr/uploads/emoticons/default_hap.gif" loading="lazy"> , je trouvais ça un peu perte de temps de faire un système de fichier de config). </p><p> </p><p> </p><p>Voici les fichiers (Plugins, Models, Sound, Materials), car j'utilise quelque plugins modifiés que j'ai trouver sur internet (NoBlock, ObjectiveRemover, Nobuyzone, poisonsmoke, cssthrowingknives), moi j'ai fais Box2 deagle et ange.</p>]]></description><guid isPermaLink="false">18020</guid><pubDate>Sat, 11 Jul 2015 22:19:31 +0000</pubDate></item><item><title>Plugin !rent BaJail</title><link>https://forum.supreme-elite.fr/topic/16840-plugin-rent-bajail/</link><description><![CDATA[<p>Hey,<br><br>J'espère que vous allez bien ! Je poste mon premier plugin fais main ! J'espère que cela va vous plaire pour tout bug dîtes le moi... Je suis un débutant sourcespawn et je souhaite remercié Dertione pour les files qui m'a aidé énormément ! Pour ce qui connaisse le sourcespawn dîtes moi comment m'améliorer au niveau de mon code ! :'P<br><br>Le but du plugin est de taper !rent (seulement pour les terros) et que le terro se rende cela est seulement pour les vips flag r de base, (P'tit bug des fois c'est que la commande puisse être utiliser à l'infini ! <img alt=":(" src="https://forum.supreme-elite.fr/uploads/emoticons/default_sad.png" loading="lazy"></p><p><a href="https://forum.supreme-elite.fr/applications/core/interface/file/attachment.php?id=1840" data-fileid="1840" data-fileext="smx" rel="">rent.smx</a></p><p><a href="https://forum.supreme-elite.fr/applications/core/interface/file/attachment.php?id=1841" data-fileid="1841" data-fileext="sp" rel="">rent.sp</a></p>]]></description><guid isPermaLink="false">16840</guid><pubDate>Sat, 20 Sep 2014 07:47:53 +0000</pubDate></item><item><title>[CSS] Mod Call Of Duty</title><link>https://forum.supreme-elite.fr/topic/16712-css-mod-call-of-duty/</link><description><![CDATA[<p>Yo,<br /><br />Voici un plugin que j'avais fais pour une soirée sur le FFA (qui était un mode call of duty, c'est à dire avec série d'élimination) et les récompenses étaient ultra fun (si je me rappelle bien, c'est une simple rocket qui était influencer par la gravité après rocket plasma qui n'est pas influencé par la gravité, mine qui rebondit et explose en faisant des dégâts de zones et attirant tout le monde, la rocket téléguidé c'est à dire que quand vous la lancez, votre vue n'est plus sur votre perso mais sur la rocket et vous la contrôlez et pour finir un genre de bombe nucléaire faisant beaucoup de dégâts et faisant trembler toute la map).</p><p> </p><p>Ce code n'a pas été fait entièrement par moi. Toutes les armes viennent du entcontrol (que vous aurez besoin pour compiler sur votre PC et vous aurez besoin de l'extension entcontrol sur votre serveur pour que le plugin fonctionne). Je me suis occupé de coder le reste, c'est à dire la gestion du mod.</p><p> <br />Ce partage est à titre d'apprentissage pour les futurs sourcepawner.<br />Pour toutes questions, je suis là pour répondre sur le poste (et uniquement sur le poste, que tout le monde puissent profiter des possibles questions-réponses):</p><p> </p><p><a href="https://forums.alliedmods.net/showthread.php?t=157075" rel="external nofollow">https://forums.alliedmods.net/showthread.php?t=157075</a></p><p> </p><p> </p><div class="ipsSpoiler" data-ipsspoiler=""><div class="ipsSpoiler_header"><span></span></div><div class="ipsSpoiler_contents"><p> </p><pre class="ipsCode prettyprint">
#include &lt;sourcemod&gt;
#include &lt;sdktools&gt;
#include &lt;sdkhooks&gt;
#include &lt;entcontrol&gt;
#include "stocks.sp"

#define PLUGIN_VERSION "1.56"

#define INVISIBLE 	{255, 255, 255,  0}
#define VISIBLE   	{255, 255, 255, 255}

// -- Globals
// - Some variables
new Handle:kv = INVALID_HANDLE;
new Handle:kvEnts = INVALID_HANDLE;
new gObj[MAXPLAYERS+1];
new gSelectedEntity[MAXPLAYERS+1]; // This is not the grabbed-entity!
new Float:gSavedPos[MAXPLAYERS+1][3];
new Float:gDistance[MAXPLAYERS+1];
new Float:gNextPickup[MAXPLAYERS+1];
new Handle:gTimer;
new Handle:gTimerHudInfo;
new gCollisionOffset;
//new gSelectedEntitySprite;
new gLeaderOffset;
new fakeClient;
new gLaser1;

// Admin Flags
new Handle:gAdminFlagGrab = INVALID_HANDLE;
new Handle:gAdminFlagGrabPlayer = INVALID_HANDLE;
new Handle:gAdminFlagHUD = INVALID_HANDLE;
new Handle:gAdminCanGrabSelf = INVALID_HANDLE;
new Handle:gAdminCanModSelf = INVALID_HANDLE;
new Handle:gNoneAdminsUseGrab = INVALID_HANDLE;

// Spraytrace
new Float:SprayPos[MAXPLAYERS + 1][3];
new String:SprayName[MAXPLAYERS + 1][64];

// Game
new GameType:game;

// Extensions
new bool:SDKHooksLoaded;
new bool:EntControlExtLoaded;



new Handle:gAdminFlagWeapons;

new gSmoke1;
new gHalo1;
new gGlow1;
new gExplosive1;
new bool:g_bHEStuning[MAXPLAYERS+1];


public InitWeapons()
{
	gLaser1 = PrecacheModel("materials/sprites/laser.vmt");
	gSmoke1 = PrecacheModel("materials/effects/fire_cloud1.vmt");
	gHalo1 = PrecacheModel("materials/sprites/halo01.vmt");
	gGlow1 = PrecacheModel("sprites/blueglow2.vmt", true);
	gExplosive1 = PrecacheModel("materials/sprites/sprite_fire01.vmt");
	
	PrecacheModel("models/props_wasteland/rockgranite03b.mdl");
	
	PrecacheSound("weapons/ar2/fire1.wav");
	PrecacheSound("weapons/rpg/rocketfire1.wav");
	PrecacheSound("weapons/explode3.wav");
	PrecacheSound("weapons/physcannon/energy_disintegrate4.wav");
	PrecacheSound("weapons/physcannon/energy_sing_explosion2.wav");
	PrecacheSound("ambient/explosions/citadel_end_explosion2.wav");
	PrecacheSound("ambient/explosions/citadel_end_explosion1.wav");
	PrecacheSound("ambient/energy/weld1.wav");
	PrecacheSound("weapons/flaregun/fire.wav");
}


public OnPluginStart()
{
	HookEvent("player_spawn", Event_PlayerSpawn);
}


public Event_PlayerSpawn(Handle:event,String:name[], bool:dontBroadcast)
{
	new client = GetClientOfUserId(GetEventInt(event,"userid"));
	g_bHEStuning[client]=false;
}
	

public Action:OnPlayerRunCmd(client, &amp;buttons, &amp;impulse, Float:vel[3], Float:angles[3], &amp;weapon)
{
if(IsPlayerAlive(client))
{
if(buttons == IN_USE &amp;&amp; g_bHEStuning[client]==false)
{
	PrintToChat(client, "Vous pouvez de nouveau bouger");
	g_bHEStuning[client]=true;
	CreateTimer(0.5, TimerStopStun, client);
}
}
}



public Action:TimerStopStun(Handle:timer, any:client)
{
	g_bHEStuning[client]=false;
}













/* 
	------------------------------------------------------------------------------------------
	Command_Rocket
	Rocketlauncher
	------------------------------------------------------------------------------------------
*/


stock RocketAttack(client)
{
	decl Float:clienteyeangle[3], Float:anglevector[3], Float:clienteyeposition[3], Float:resultposition[3], entity;
	GetClientEyeAngles(client, clienteyeangle);
	GetClientEyePosition(client, clienteyeposition);
	GetAngleVectors(clienteyeangle, anglevector, NULL_VECTOR, NULL_VECTOR);
	NormalizeVector(anglevector, anglevector);
	//ScaleVector(anglevector, 10.0);
	AddVectors(clienteyeposition, anglevector, resultposition);
	NormalizeVector(anglevector, anglevector);
	ScaleVector(anglevector, 1500.0);

	if (game == CSS)
	{
		entity = CreateEntityByName("hegrenade_projectile");
		SetEntityMoveType(entity, MOVETYPE_FLY);
	}
	else if (game == TF)
	{
		entity = CreateEntityByName("tf_projectile_rocket");
		SetEntityMoveType(entity, MOVETYPE_FLY);
	}
	else
	{
		entity = CreateEntityByName("npc_grenade_frag");
		SetEntityMoveType(entity, MOVETYPE_VPHYSICS);
	}

	SetEntPropEnt(entity, Prop_Send, "m_hOwnerEntity", client);
	setm_takedamage(entity, DAMAGE_NO);
	DispatchSpawn(entity);
	new Float:vecmax[3] = {4.0, 4.0, 4.0};
	new Float:vecmin[3] = {-4.0, -4.0, -4.0};
	SetEntPropVector(entity, Prop_Send, "m_vecMins", vecmin);
	SetEntPropVector(entity, Prop_Send, "m_vecMaxs", vecmax);
	
	SetEntPropEnt(entity, Prop_Send, "m_hOwnerEntity", client);
	SetEntityModel(entity, "models/weapons/w_missile_launch.mdl");
	TeleportEntity(entity, resultposition, clienteyeangle, anglevector);

	new gascloud = CreateEntityByName("env_rockettrail");
	DispatchKeyValueVector(gascloud,"Origin", resultposition);
	DispatchKeyValueVector(gascloud,"Angles", clienteyeangle);
	new Float:smokecolor[3] = {1.0, 1.0, 1.0};
	SetEntPropVector(gascloud, Prop_Send, "m_StartColor", smokecolor);
	SetEntPropFloat(gascloud, Prop_Send, "m_Opacity", 0.5);
	SetEntPropFloat(gascloud, Prop_Send, "m_SpawnRate", 100.0);
	SetEntPropFloat(gascloud, Prop_Send, "m_ParticleLifetime", 0.5);
	SetEntPropFloat(gascloud, Prop_Send, "m_StartSize", 5.0);
	SetEntPropFloat(gascloud, Prop_Send, "m_EndSize", 30.0);
	SetEntPropFloat(gascloud, Prop_Send, "m_SpawnRadius", 0.0);
	SetEntPropFloat(gascloud, Prop_Send, "m_MinSpeed", 0.0);
	SetEntPropFloat(gascloud, Prop_Send, "m_MaxSpeed", 10.0);
	SetEntPropFloat(gascloud, Prop_Send, "m_flFlareScale", 1.0);
	DispatchSpawn(gascloud);
	decl String:steamid[64];
	GetClientAuthString(client, steamid, 64);
	Format(steamid, 64, "%s%f", steamid, GetGameTime());
	DispatchKeyValue(entity, "targetname", steamid);
	SetVariantString(steamid);
	AcceptEntityInput(gascloud, "SetParent");
	SetEntPropEnt(entity, Prop_Send, "m_hEffectEntity", gascloud);

	EmitSoundToAll("weapons/rpg/rocketfire1.wav", client, SNDCHAN_AUTO, SNDLEVEL_NORMAL, SND_NOFLAGS, SNDVOL_NORMAL, SNDPITCH_NORMAL, -1, clienteyeposition);
	SDKHook(entity, SDKHook_StartTouch, RocketTouchHook);
	SDKHook(entity, SDKHook_OnTakeDamage, RocketDamageHook);
	
	new Handle:datapack = CreateDataPack();
	WritePackCell(datapack, EntIndexToEntRef(entity));
	CreateTimer(0.1, RocketSeekThink, datapack, TIMER_REPEAT | TIMER_FLAG_NO_MAPCHANGE | TIMER_DATA_HNDL_CLOSE);
	setm_takedamage(entity, DAMAGE_YES);
 
	new Float:angle[3] = {0.0, 0.0, 0.0};

	angle[0] = -6.0;
	angle[1] = GetRandomFloat(-2.0, 2.0);

	makeviewpunch(client, angle);
}

public Action:RocketTouchHook(entity, other)
{
	if(other != 0)
	{
		if(other == GetEntPropEnt(entity, Prop_Send, "m_hOwnerEntity"))
			return (Plugin_Continue);
		else if(!IsEntityCollidable(other, true, true, true))
			return (Plugin_Continue);
	}

	RocketActive(entity);

	return (Plugin_Continue);
}

public Action:RocketDamageHook(entity, &amp;attacker, &amp;inflictor, &amp;Float:damage, &amp;damagetype)
{
	if(GetEntProp(entity, Prop_Data, "m_takedamage") == DAMAGE_YES)
		RocketActive(entity);

	return (Plugin_Continue);
}

public Action:RocketSeekThink(Handle:Timer, Handle:data)
{
	decl entity, client;
	ResetPack(data);
	entity = ReadPackCell(data);
	entity = EntRefToEntIndex(entity);

	if(entity != -1)
	{
		client = GetEntPropEnt(entity, Prop_Send, "m_hOwnerEntity");

		if(IsClientConnectedIngame(client))
		{
			if(IsPlayerAlive(client))
			{
				decl Float:cleyepos[3], Float:cleyeangle[3], Float:resultposition[3], Float:rocketposition[3], Float:vecangle[3], Float:angle[3];

				GetClientEyePosition(client, cleyepos);
				GetClientEyeAngles(client, cleyeangle);

				new Handle:traceresulthandle = INVALID_HANDLE;

				traceresulthandle = TR_TraceRayFilterEx(cleyepos, cleyeangle, MASK_SOLID, RayType_Infinite, tracerayfilterrocket, client);

				if(TR_DidHit(traceresulthandle) == true)
				{
					TR_GetEndPosition(resultposition, traceresulthandle);
					GetEntPropVector(entity, Prop_Send, "m_vecOrigin", rocketposition);

					MakeVectorFromPoints(rocketposition, resultposition, vecangle);
					NormalizeVector(vecangle, vecangle);
					GetVectorAngles(vecangle, angle);
					ScaleVector(vecangle, 1500.0);
					TeleportEntity(entity, NULL_VECTOR, angle, vecangle);
				}

				CloseHandle(traceresulthandle);
			}
		}
		return (Plugin_Continue);
	}
	else
		return (Plugin_Stop);
}

stock RocketActive(entity)
{
	SDKUnhook(entity, SDKHook_StartTouch, RocketTouchHook);
	SDKUnhook(entity, SDKHook_OnTakeDamage, RocketDamageHook);

	if(GetEntProp(entity, Prop_Data, "m_takedamage") == DAMAGE_YES)
	{
		setm_takedamage(entity, DAMAGE_NO);
		decl Float:entityposition[3];
		GetEntPropVector(entity, Prop_Send, "m_vecOrigin", entityposition);
		new client = GetEntPropEnt(entity, Prop_Send, "m_hOwnerEntity");

		new gasentity = GetEntPropEnt(entity, Prop_Send, "m_hEffectEntity");
		AcceptEntityInput(gasentity, "kill");
		AcceptEntityInput(entity, "Kill");
		entityposition[2] = entityposition[2] + 15.0;

		makeexplosion(IsClientConnectedIngame(client) ? client : 0, -1, entityposition, "", 200);

		EmitSoundToAll("weapons/explode3.wav", 0, SNDCHAN_AUTO, SNDLEVEL_NORMAL, SND_NOFLAGS, SNDVOL_NORMAL, SNDPITCH_NORMAL, -1, entityposition);
	}
}

/* 
	------------------------------------------------------------------------------------------
	Command_Plasma
	Plasma
	------------------------------------------------------------------------------------------
*/


stock PlasmaAttack(client)
{
	decl Float:clienteyeangle[3], Float:anglevector[3], Float:clienteyeposition[3], Float:resultposition[3], entity;
	GetClientEyeAngles(client, clienteyeangle);
	GetClientEyePosition(client, clienteyeposition);
	GetAngleVectors(clienteyeangle, anglevector, NULL_VECTOR, NULL_VECTOR);
	NormalizeVector(anglevector, anglevector);
	//ScaleVector(anglevector, 10.0);
	AddVectors(clienteyeposition, anglevector, resultposition);
	NormalizeVector(anglevector, anglevector);
	ScaleVector(anglevector, 4500.0);

	if (game == CSS)
		entity = CreateEntityByName("hegrenade_projectile");
	else if (game == TF)
		entity = CreateEntityByName("tf_projectile_rocket");
	
	SetEntPropEnt(entity, Prop_Send, "m_hOwnerEntity", client);
	setm_takedamage(entity, DAMAGE_NO);
	DispatchSpawn(entity);
	new Float:vecmax[3] = {4.0, 4.0, 4.0};
	new Float:vecmin[3] = {-4.0, -4.0, -4.0};
	SetEntPropVector(entity, Prop_Send, "m_vecMins", vecmin);
	SetEntPropVector(entity, Prop_Send, "m_vecMaxs", vecmax);
	SetEntityMoveType(entity, MOVETYPE_FLY);
	SetEntPropEnt(entity, Prop_Send, "m_hOwnerEntity", client);
	SetEntityModel(entity, "models/weapons/w_missile_launch.mdl");
	TeleportEntity(entity, resultposition, clienteyeangle, anglevector);

	new gascloud = CreateEntityByName("env_rockettrail");
	DispatchKeyValueVector(gascloud,"Origin", resultposition);
	DispatchKeyValueVector(gascloud,"Angles", clienteyeangle);
	new Float:smokecolor[3] = {0.4, 1.0, 1.0};
	SetEntPropVector(gascloud, Prop_Send, "m_StartColor", smokecolor);
	SetEntPropFloat(gascloud, Prop_Send, "m_Opacity", 0.2);
	SetEntPropFloat(gascloud, Prop_Send, "m_SpawnRate", 10.0);
	SetEntPropFloat(gascloud, Prop_Send, "m_ParticleLifetime", 0.1);
	SetEntPropFloat(gascloud, Prop_Send, "m_StartSize", 1.0);
	SetEntPropFloat(gascloud, Prop_Send, "m_EndSize", 3.0);
	SetEntPropFloat(gascloud, Prop_Send, "m_SpawnRadius", 0.0);
	SetEntPropFloat(gascloud, Prop_Send, "m_MinSpeed", 0.0);
	SetEntPropFloat(gascloud, Prop_Send, "m_MaxSpeed", 10.0);
	SetEntPropFloat(gascloud, Prop_Send, "m_flFlareScale", 1.0);
	DispatchSpawn(gascloud);
	decl String:steamid[64];
	GetClientAuthString(client, steamid, 64);
	Format(steamid, 64, "%s%f", steamid, GetGameTime());
	DispatchKeyValue(entity, "targetname", steamid);
	SetVariantString(steamid);
	AcceptEntityInput(gascloud, "SetParent");
	SetEntPropEnt(entity, Prop_Send, "m_hEffectEntity", gascloud);

	EmitSoundToAll("weapons/Irifle/irifle_fire2.wav", client, SNDCHAN_AUTO, SNDLEVEL_NORMAL, SND_NOFLAGS, SNDVOL_NORMAL, SNDPITCH_NORMAL, -1, clienteyeposition);
	SDKHook(entity, SDKHook_StartTouch, PlasmaTouchHook);
	SDKHook(entity, SDKHook_OnTakeDamage, PlasmaDamageHook);

	new Handle:datapack = CreateDataPack();
	WritePackCell(datapack, EntIndexToEntRef(entity));
	CreateTimer(0.1, PlasmaSeekThink, datapack, TIMER_REPEAT | TIMER_FLAG_NO_MAPCHANGE | TIMER_DATA_HNDL_CLOSE);
	setm_takedamage(entity, DAMAGE_YES);

	new Float:angle[3] = {0.0, 0.0, 0.0};

	angle[0] = -6.0;
	angle[1] = GetRandomFloat(-2.0, 2.0);

	makeviewpunch(client, angle);
}

public Action:PlasmaTouchHook(entity, other)
{
	if(other != 0)
	{
		if(other == GetEntPropEnt(entity, Prop_Send, "m_hOwnerEntity"))
			return (Plugin_Continue);
		else if(!IsEntityCollidable(other, true, true, true))
			return (Plugin_Continue);
	}

	PlasmaActive(entity);

	return (Plugin_Continue);
}

public Action:PlasmaDamageHook(entity, &amp;attacker, &amp;inflictor, &amp;Float:damage, &amp;damagetype)
{
	if(GetEntProp(entity, Prop_Data, "m_takedamage") == DAMAGE_YES)
		PlasmaActive(entity);

	return (Plugin_Continue);
}

public Action:PlasmaSeekThink(Handle:Timer, Handle:data)
{
	decl entity, client;
	ResetPack(data);
	entity = ReadPackCell(data);
	entity = EntRefToEntIndex(entity);

	if(entity != -1)
	{
		client = GetEntPropEnt(entity, Prop_Send, "m_hOwnerEntity");

		if(IsClientConnectedIngame(client))
		{
			if(IsPlayerAlive(client))
			{
				decl Float:cleyepos[3], Float:cleyeangle[3], Float:resultposition[3], Float:rocketposition[3], Float:vecangle[3], Float:angle[3];

				GetClientEyePosition(client, cleyepos);
				GetClientEyeAngles(client, cleyeangle);

				new Handle:traceresulthandle = INVALID_HANDLE;

				traceresulthandle = TR_TraceRayFilterEx(cleyepos, cleyeangle, MASK_SOLID, RayType_Infinite, tracerayfilterrocket, client);

				if(TR_DidHit(traceresulthandle) == true)
				{
					TR_GetEndPosition(resultposition, traceresulthandle);
					GetEntPropVector(entity, Prop_Send, "m_vecOrigin", rocketposition);

					MakeVectorFromPoints(rocketposition, resultposition, vecangle);
					NormalizeVector(vecangle, vecangle);
					GetVectorAngles(vecangle, angle);
					ScaleVector(vecangle, 4500.0);
					TeleportEntity(entity, NULL_VECTOR, angle, vecangle);
				}
				CloseHandle(traceresulthandle);
			}
		}
		return (Plugin_Continue);
	}
	else
		return (Plugin_Stop);
}

stock PlasmaActive(entity)
{
	SDKUnhook(entity, SDKHook_StartTouch, PlasmaTouchHook);
	SDKUnhook(entity, SDKHook_OnTakeDamage, PlasmaDamageHook);

	if(GetEntProp(entity, Prop_Data, "m_takedamage") == DAMAGE_YES)
	{
		setm_takedamage(entity, DAMAGE_NO);
		decl Float:entityposition[3];
		GetEntPropVector(entity, Prop_Send, "m_vecOrigin", entityposition);
		new client = GetEntPropEnt(entity, Prop_Send, "m_hOwnerEntity");

		new gasentity = GetEntPropEnt(entity, Prop_Send, "m_hEffectEntity");
		AcceptEntityInput(gasentity, "kill");
		AcceptEntityInput(entity, "Kill");
		entityposition[2] = entityposition[2] + 15.0;

		makeexplosion(IsClientConnectedIngame(client) ? client : 0, -1, entityposition, "", 25);

		EmitSoundToAll("weapons/physcannon/energy_sing_explosion2.wav", 0, SNDCHAN_AUTO, SNDLEVEL_NORMAL, SND_NOFLAGS, SNDVOL_NORMAL, SNDPITCH_NORMAL, -1, entityposition);
	}
}

// - Mine


stock MineAttack(client)
{
	decl Float:cleyepos[3], Float:cleyeangle[3];
	
	GetClientEyePosition(client, cleyepos);
	GetClientEyeAngles(client, cleyeangle);

	new entity;
	if (game == CSS)
		entity = CreateEntityByName("hegrenade_projectile");
	else if (game == TF)
		entity = CreateEntityByName("tf_projectile_pipe");
	
	SetEntPropEnt(entity, Prop_Send, "m_hOwnerEntity", client);
	DispatchSpawn(entity);
	
	setm_takedamage(entity, DAMAGE_YES);
	
	SetEntPropEnt(entity, Prop_Send, "m_hOwnerEntity", client);
	SetEntityModel(entity, "models/items/battery.mdl");
	TeleportEntity(entity, cleyepos, cleyeangle, cleyeangle);

	SetEntProp(entity, Prop_Data, "m_iHealth", 1);
	
	CreateTimer(10.0, StartMine, entity, TIMER_FLAG_NO_MAPCHANGE);
	
	SDKHook(entity, SDKHook_StartTouch, MineTouchHook);				
	SDKHook(entity, SDKHook_OnTakeDamage, MineDamageHook);
}

public Action:StartMine(Handle:Timer, any:entity)
{
	MineActive(entity);
}

public Action:MineTouchHook(entity, other)
{
	decl Float:entityposition[3];
	GetEntPropVector(entity, Prop_Send, "m_vecOrigin", entityposition);	
	
	new laserent = CreateEntityByName("point_tesla");
	DispatchKeyValue(laserent, "m_flRadius", "100.0");
	DispatchKeyValue(laserent, "m_SoundName", "DoSpark");
	DispatchKeyValue(laserent, "beamcount_min", "42");
	DispatchKeyValue(laserent, "beamcount_max", "62");
	DispatchKeyValue(laserent, "texture", "sprites/physbeam.vmt");
	DispatchKeyValue(laserent, "m_Color", "255 255 255");
	DispatchKeyValue(laserent, "thick_min", "10.0");
	DispatchKeyValue(laserent, "thick_max", "11.0");
	DispatchKeyValue(laserent, "lifetime_min", "0.3");
	DispatchKeyValue(laserent, "lifetime_max", "0.3");
	DispatchKeyValue(laserent, "interval_min", "0.1");
	DispatchKeyValue(laserent, "interval_max", "0.2");
	DispatchSpawn(laserent);
	
	TeleportEntity(laserent, entityposition, NULL_VECTOR, NULL_VECTOR);
	
	AcceptEntityInput(laserent, "TurnOn");  
	AcceptEntityInput(laserent, "DoSpark");    
		
	if(other != 0)
	{
		if(other == GetEntPropEnt(entity, Prop_Send, "m_hOwnerEntity"))
			return (Plugin_Continue);
		else if(!IsEntityCollidable(other, true, true, true))
			return (Plugin_Continue);
			
		MineActive(entity);
	}

	return (Plugin_Continue);
}

public Action:MineDamageHook(entity, &amp;attacker, &amp;inflictor, &amp;Float:damage, &amp;damagetype)
{
	MineActive(entity);
	
	return (Plugin_Handled);
}

stock MineActive(entity)
{
	SDKUnhook(entity, SDKHook_StartTouch, MineTouchHook);
	SDKUnhook(entity, SDKHook_OnTakeDamage, MineDamageHook);

	if(IsValidEntity(entity) &amp;&amp; IsValidEdict(entity))
	{ 
		setm_takedamage(entity, DAMAGE_NO);
		decl Float:entityposition[3];
		GetEntPropVector(entity, Prop_Send, "m_vecOrigin", entityposition);
		new client = GetEntPropEnt(entity, Prop_Send, "m_hOwnerEntity");

		AcceptEntityInput(entity, "Kill");
		
		DrawIonBeam(entityposition);
		TE_SetupBeamRingPoint(entityposition, 0.0, 500.0, gGlow1, gHalo1, 0, 0, 0.5, 10.0, 2.0, {255, 255, 255, 255}, 0, 0);
		TE_SendToAll();
		TE_SetupBeamRingPoint(entityposition, 0.0, 500.0, gGlow1, gHalo1, 0, 0, 0.7, 10.0, 2.0, {255, 255, 255, 255}, 0, 0);
		TE_SendToAll();
		TE_SetupBeamRingPoint(entityposition, 0.0, 500.0, gGlow1, gHalo1, 0, 0, 0.9, 10.0, 2.0, {255, 255, 255, 255}, 0, 0);
		TE_SendToAll();
		TE_SetupBeamRingPoint(entityposition, 0.0, 500.0, gGlow1, gHalo1, 0, 0, 1.4, 10.0, 2.0, {255, 255, 255, 255}, 0, 0);
		TE_SendToAll();

		// Light
		new ent = CreateEntityByName("light_dynamic");

		DispatchKeyValue(ent, "_light", "120 120 255 255");
		DispatchKeyValue(ent, "brightness", "5");
		DispatchKeyValueFloat(ent, "spotlight_radius", 500.0);
		DispatchKeyValueFloat(ent, "distance", 500.0);
		DispatchKeyValue(ent, "style", "6");
		
		// SetEntityMoveType(ent, MOVETYPE_NOCLIP); 
		DispatchSpawn(ent);
		AcceptEntityInput(ent, "TurnOn");
		
		TeleportEntity(ent, entityposition, NULL_VECTOR, NULL_VECTOR);
		
		RemoveEntity(ent, 1.0);
		
		entityposition[2] += 15.0;
		makeexplosion(IsClientConnectedIngame(client) ? client : 0, -1, entityposition, "", 300);
		
		env_shake(entityposition, 120.0, 1000.0, 3.0, 250.0);
		
		EmitSoundToAll("weapons/physcannon/energy_disintegrate4.wav", 0, SNDCHAN_AUTO, SNDLEVEL_NORMAL, SND_NOFLAGS, SNDVOL_NORMAL, SNDPITCH_NORMAL, -1, entityposition);
		
		// Knockback
		new Float:vReturn[3], Float:vClientPosition[3], Float:dist;
		for (new i = 1; i &lt;= MaxClients; i++)
		{
			if (IsClientConnected(i) &amp;&amp; IsClientInGame(i) &amp;&amp; IsPlayerAlive(i))
			{	
				GetClientEyePosition(i, vClientPosition);

				dist = GetVectorDistance(vClientPosition, entityposition, false);
				if (dist &lt; 1000.0)
				{
					MakeVectorFromPoints(entityposition, vClientPosition, vReturn);
					NormalizeVector(vReturn, vReturn);
					ScaleVector(vReturn, -5000.0);

					TeleportEntity(i, NULL_VECTOR, NULL_VECTOR, vReturn);
				}
			}
		}
	}
}

/*
	------------------------------------------------------------------------------------------
	Command_IonCannon
	Shoots the ioncannon
	Idea by Peace-Maker
	------------------------------------------------------------------------------------------
*/
stock Command_IonCannon(client)
{
	
	decl Float:vAngles[3];
	decl Float:vOrigin[3];
	decl Float:vStart[3];
	
	GetClientEyePosition(client, vOrigin);
	GetClientEyeAngles(client, vAngles);
	
	new Handle:trace = TR_TraceRayFilterEx(vOrigin, vAngles, MASK_SHOT, RayType_Infinite, TraceEntityFilterPlayer);
    	
	if(TR_DidHit(trace))
	{   	 
   	 	TR_GetEndPosition(vStart, trace);

		CloseHandle(trace);

		new Handle:data = CreateDataPack();
		WritePackFloat(data, vStart[0]);
		WritePackFloat(data, vStart[1]);
		WritePackFloat(data, vStart[2]);
		WritePackCell(data, 320); // Distance
		WritePackFloat(data, 0.0); // nphi
		ResetPack(data);

		IonAttack(data);
	}
	else
	{
		PrintHintText(client, "%t", "Wrong entity"); 
		CloseHandle(trace);
	}

	return (Plugin_Handled);
}

public DrawIonBeam(Float:startPosition[3])
{
	decl Float:position[3];
	position[0] = startPosition[0];
	position[1] = startPosition[1];
	position[2] = startPosition[2] + 1500.0;	

	TE_SetupBeamPoints(startPosition, position, gLaser1, 0, 0, 0, 0.15, 25.0, 25.0, 0, 1.0, {0, 150, 255, 255}, 3 );
	TE_SendToAll();
	position[2] -= 1490.0;
	TE_SetupSmoke(startPosition, gSmoke1, 10.0, 2);
	TE_SendToAll();
	TE_SetupGlowSprite(startPosition, gGlow1, 1.0, 1.0, 255);
	TE_SendToAll();
}

public IonAttack(Handle:data)
{	
	new Float:startPosition[3];
	new Float:position[3];
	startPosition[0] = ReadPackFloat(data);
	startPosition[1] = ReadPackFloat(data);
	startPosition[2] = ReadPackFloat(data);
	new distance = ReadPackCell(data);
	new Float:nphi = ReadPackFloat(data);
	
	if (distance &gt; 0)
	{
		EmitSoundToAll("ambient/energy/weld1.wav", 0, SNDCHAN_AUTO, SNDLEVEL_NORMAL, SND_NOFLAGS, SNDVOL_NORMAL, SNDPITCH_NORMAL, -1, startPosition);
		
		// Stage 1
		new Float:s=Sine(nphi/360*6.28)*distance;
		new Float:c=Cosine(nphi/360*6.28)*distance;
		
		position[0] = startPosition[0];
		position[1] = startPosition[1];
		position[2] = startPosition[2];
		
		position[0] += s;
		position[1] += c;
		DrawIonBeam(position);

		position[0] = startPosition[0];
		position[1] = startPosition[1];
		position[0] -= s;
		position[1] -= c;
		DrawIonBeam(position);
		
		// Stage 2
		s=Sine((nphi+45.0)/360*6.28)*distance;
		c=Cosine((nphi+45.0)/360*6.28)*distance;
		
		position[0] = startPosition[0];
		position[1] = startPosition[1];
		position[0] += s;
		position[1] += c;
		DrawIonBeam(position);
		
		position[0] = startPosition[0];
		position[1] = startPosition[1];
		position[0] -= s;
		position[1] -= c;
		DrawIonBeam(position);
		
		// Stage 3
		s=Sine((nphi+90.0)/360*6.28)*distance;
		c=Cosine((nphi+90.0)/360*6.28)*distance;
		
		position[0] = startPosition[0];
		position[1] = startPosition[1];
		position[0] += s;
		position[1] += c;
		DrawIonBeam(position);
		
		position[0] = startPosition[0];
		position[1] = startPosition[1];
		position[0] -= s;
		position[1] -= c;
		DrawIonBeam(position);
		
		// Stage 3
		s=Sine((nphi+135.0)/360*6.28)*distance;
		c=Cosine((nphi+135.0)/360*6.28)*distance;
		
		position[0] = startPosition[0];
		position[1] = startPosition[1];
		position[0] += s;
		position[1] += c;
		DrawIonBeam(position);
		
		position[0] = startPosition[0];
		position[1] = startPosition[1];
		position[0] -= s;
		position[1] -= c;
		DrawIonBeam(position);

		if (nphi &gt;= 360)
			nphi = 0.0;
		else
			nphi += 5.0;
	}
	distance -= 5;
	
	new Handle:nData = CreateDataPack();
	WritePackFloat(nData, startPosition[0]);
	WritePackFloat(nData, startPosition[1]);
	WritePackFloat(nData, startPosition[2]);
	WritePackCell(nData, distance);
	WritePackFloat(nData, nphi);
	ResetPack(nData);

	if (distance &gt; -50)
		CreateTimer(0.1, DrawIon, nData, TIMER_FLAG_NO_MAPCHANGE|TIMER_DATA_HNDL_CLOSE);
	else
	{
		position[0] = startPosition[0];
		position[1] = startPosition[1];
		position[2] += 1500.0;
		TE_SetupBeamPoints(startPosition, position, gLaser1, 0, 0, 0, 5.0, 30.0, 30.0, 0, 1.0, {255, 255, 255, 255}, 3);
		TE_SendToAll();
		TE_SetupBeamPoints(startPosition, position, gLaser1, 0, 0, 0, 4.0, 50.0, 50.0, 0, 1.0, {200, 255, 255, 255}, 3);
		TE_SendToAll();
		TE_SetupBeamPoints(startPosition, position, gLaser1, 0, 0, 0, 3.0, 80.0, 80.0, 0, 1.0, {100, 255, 255, 255}, 3);
		TE_SendToAll();
		TE_SetupBeamPoints(startPosition, position, gLaser1, 0, 0, 0, 2.0, 100.0, 100.0, 0, 1.0, {0, 255, 255, 255}, 3);
		TE_SendToAll();
		
		TE_SetupSmoke(startPosition, gSmoke1, 350.0, 15);
		TE_SendToAll();
		TE_SetupGlowSprite(startPosition, gGlow1, 3.0, 15.0, 255);
		TE_SendToAll();

		makeexplosion(0, -1, startPosition, "", 500);

		position[2] = startPosition[2] + 50.0;
		new Float:fDirection[3] = {-90.0,0.0,0.0};
		env_shooter(fDirection, 25.0, 0.1, fDirection, 800.0, 120.0, 120.0, position, "models/props_wasteland/rockgranite03b.mdl");

		env_shake(startPosition, 120.0, 10000.0, 15.0, 250.0);

		TE_SetupExplosion(startPosition, gExplosive1, 10.0, 1, 0, 0, 5000);
		TE_SendToAll();
		
		TE_SetupBeamRingPoint(position, 0.0, 1500.0, gGlow1, gHalo1, 0, 0, 0.5, 100.0, 5.0, {150, 255, 255, 255}, 0, 0);
		TE_SendToAll();
		TE_SetupBeamRingPoint(position, 0.0, 1500.0, gGlow1, gHalo1, 0, 0, 5.0, 100.0, 5.0, {255, 255, 255, 255}, 0, 0);
		TE_SendToAll();
		TE_SetupBeamRingPoint(position, 0.0, 1500.0, gGlow1, gHalo1, 0, 0, 2.5, 100.0, 5.0, {255, 255, 255, 255}, 0, 0);
		TE_SendToAll();
		TE_SetupBeamRingPoint(position, 0.0, 1500.0, gGlow1, gHalo1, 0, 0, 6.0, 100.0, 5.0, {255, 255, 255, 255}, 0, 0);
		TE_SendToAll();

		// Light
		new ent = CreateEntityByName("light_dynamic");

		DispatchKeyValue(ent, "_light", "255 255 255 255");
		DispatchKeyValue(ent, "brightness", "5");
		DispatchKeyValueFloat(ent, "spotlight_radius", 500.0);
		DispatchKeyValueFloat(ent, "distance", 500.0);
		DispatchKeyValue(ent, "style", "6");

		// SetEntityMoveType(ent, MOVETYPE_NOCLIP); 
		DispatchSpawn(ent);
		AcceptEntityInput(ent, "TurnOn");
	
		TeleportEntity(ent, position, NULL_VECTOR, NULL_VECTOR);
		
		RemoveEntity(ent, 3.0);
		
		// Sound
		EmitSoundToAll("ambient/explosions/citadel_end_explosion1.wav", 0, SNDCHAN_AUTO, SNDLEVEL_NORMAL, SND_NOFLAGS, SNDVOL_NORMAL, SNDPITCH_NORMAL, -1, startPosition);
		EmitSoundToAll("ambient/explosions/citadel_end_explosion2.wav", 0, SNDCHAN_AUTO, SNDLEVEL_NORMAL, SND_NOFLAGS, SNDVOL_NORMAL, SNDPITCH_NORMAL, -1, startPosition);	

		// Blend
		sendfademsg(0, 10, 200, FFADE_OUT, 255, 255, 255, 150);	
		
		// Knockback
		new Float:vReturn[3], Float:vClientPosition[3], Float:dist;
		for (new i = 1; i &lt;= MaxClients; i++)
		{
			if (IsClientConnected(i) &amp;&amp; IsClientInGame(i) &amp;&amp; IsPlayerAlive(i))
			{	
				GetClientEyePosition(i, vClientPosition);

				dist = GetVectorDistance(vClientPosition, position, false);
				if (dist &lt; 1000.0)
				{
					MakeVectorFromPoints(position, vClientPosition, vReturn);
					NormalizeVector(vReturn, vReturn);
					ScaleVector(vReturn, 10000.0 - dist*10);

					TeleportEntity(i, NULL_VECTOR, NULL_VECTOR, vReturn);
				}
			}
		}
	}
}

public Action:DrawIon(Handle:Timer, any:data)
{
	IonAttack(data);
	
	return (Plugin_Stop);
}

/* 
	------------------------------------------------------------------------------------------
	Command_Bullet
	Shoots the sentrygun projectile
	------------------------------------------------------------------------------------------
*/
stock Command_Bullet(client)
{

	decl Float:clienteyeangle[3], Float:clienteyeposition[3];
	GetClientEyePosition(client, clienteyeposition);
	GetClientEyeAngles(client, clienteyeangle);
	SentryShootProjectile(clienteyeposition, clienteyeangle);
	
	return (Plugin_Handled);
}

stock SentryShootProjectile(Float:pos[3], Float:angle[3])
{
	decl Float:anglevector[3], Float:resultposition[3], entity;
		
	GetAngleVectors(angle, anglevector, NULL_VECTOR, NULL_VECTOR);
	NormalizeVector(anglevector, anglevector);
	ScaleVector(anglevector, 100.0);
	AddVectors(pos, anglevector, resultposition);
	NormalizeVector(anglevector, anglevector);
	ScaleVector(anglevector, 2500.0);

	if (game == CSS)
		entity = CreateEntityByName("hegrenade_projectile");
	else if (game == TF)
		entity = CreateEntityByName("tf_projectile_pipe");
		
	//setm_takedamage(entity, DAMAGE_NO);
	setm_takedamage(entity, DAMAGE_YES);
	DispatchSpawn(entity);
	/*
	new Float:vecmax[3] = {4.0, 4.0, 4.0};
	new Float:vecmin[3] = {-4.0, -4.0, -4.0};
	SetEntPropVector(entity, Prop_Send, "m_vecMins", vecmin);
	SetEntPropVector(entity, Prop_Send, "m_vecMaxs", vecmax);
	*/
	SetEntityMoveType(entity, MOVETYPE_FLY);
	SetEntityModel(entity, "models/weapons/w_missile_launch.mdl");
	
	TeleportEntity(entity, resultposition, angle, anglevector);

	EmitSoundToAll("weapons/ar2/fire1.wav", 0, SNDCHAN_AUTO, SNDLEVEL_NORMAL, SND_NOFLAGS, SNDVOL_NORMAL, SNDPITCH_NORMAL, -1, pos);
	SDKHook(entity, SDKHook_StartTouch, SentryProjectileTouchHook);
	SDKHook(entity, SDKHook_OnTakeDamage, SentryProjectileDamageHook);

	setm_takedamage(entity, DAMAGE_YES);
}

public Action:SentryProjectileTouchHook(entity, other)
{
	SentryProjectileActive(entity, other);

	return (Plugin_Continue);
}

public Action:SentryProjectileDamageHook(entity, &amp;attacker, &amp;inflictor, &amp;Float:damage, &amp;damagetype)
{
	SentryProjectileActive(entity, 0);

	return (Plugin_Continue);
}

stock SentryProjectileActive(entity, other)
{
	SDKUnhook(entity, SDKHook_StartTouch, SentryProjectileTouchHook);
	SDKUnhook(entity, SDKHook_OnTakeDamage, SentryProjectileDamageHook);

	decl Float:entityposition[3];
	GetEntPropVector(entity, Prop_Send, "m_vecOrigin", entityposition);

	AcceptEntityInput(entity, "Kill");
	//entityposition[2] = entityposition[2] + 15.0;

	MakeDamage(0, other, 5, DMG_BULLET, 500.0, entityposition);
	// makeexplosion(0, -1, entityposition, "", 25);
}


/* 
	------------------------------------------------------------------------------------------
	ShootSimplePlasmaProjectile
	Shoots the soldier plasma projectile
	------------------------------------------------------------------------------------------
*/
stock ShootSimplePlasmaProjectile(Float:pos[3], Float:angle[3])
{
	decl Float:anglevector[3], Float:resultposition[3], entity;
		
	GetAngleVectors(angle, anglevector, NULL_VECTOR, NULL_VECTOR);
	NormalizeVector(anglevector, anglevector);
	ScaleVector(anglevector, 100.0);
	AddVectors(pos, anglevector, resultposition);
	NormalizeVector(anglevector, anglevector);
	ScaleVector(anglevector, 1000.0);

	if (game == CSS)
		entity = CreateEntityByName("hegrenade_projectile");
	else if (game == TF)
		entity = CreateEntityByName("tf_projectile_pipe");
		
	//setm_takedamage(entity, DAMAGE_NO);
	setm_takedamage(entity, DAMAGE_YES);
	DispatchSpawn(entity);

	SetEntityMoveType(entity, MOVETYPE_FLY);
	SetEntityModel(entity, "models/weapons/w_missile_launch.mdl");
	
	TeleportEntity(entity, resultposition, angle, anglevector);

	new gascloud = CreateEntityByName("env_rockettrail");
	DispatchKeyValueVector(gascloud,"Origin", resultposition);
	DispatchKeyValueVector(gascloud,"Angles", angle);
	new Float:smokecolor[3] = {0.4, 1.0, 1.0};
	SetEntPropVector(gascloud, Prop_Send, "m_StartColor", smokecolor);
	SetEntPropFloat(gascloud, Prop_Send, "m_Opacity", 0.2);
	SetEntPropFloat(gascloud, Prop_Send, "m_SpawnRate", 10.0);
	SetEntPropFloat(gascloud, Prop_Send, "m_ParticleLifetime", 0.1);
	SetEntPropFloat(gascloud, Prop_Send, "m_StartSize", 1.0);
	SetEntPropFloat(gascloud, Prop_Send, "m_EndSize", 3.0);
	SetEntPropFloat(gascloud, Prop_Send, "m_SpawnRadius", 0.0);
	SetEntPropFloat(gascloud, Prop_Send, "m_MinSpeed", 0.0);
	SetEntPropFloat(gascloud, Prop_Send, "m_MaxSpeed", 10.0);
	SetEntPropFloat(gascloud, Prop_Send, "m_flFlareScale", 1.0);
	DispatchSpawn(gascloud);
	
	decl String:entIndex[64];
	IntToString(entity, entIndex, sizeof(entIndex));
	DispatchKeyValue(entity, "targetname", entIndex);
	SetVariantString(entIndex);
	AcceptEntityInput(gascloud, "SetParent");
	
	SetEntPropEnt(entity, Prop_Send, "m_hEffectEntity", gascloud);
	
	EmitSoundToAll("weapons/flaregun/fire.wav", 0, SNDCHAN_AUTO, SNDLEVEL_NORMAL, SND_NOFLAGS, SNDVOL_NORMAL, SNDPITCH_NORMAL, -1, pos);
	SDKHook(entity, SDKHook_StartTouch, SPProjectileTouchHook);
	SDKHook(entity, SDKHook_OnTakeDamage, SPProjectileDamageHook);

	setm_takedamage(entity, DAMAGE_YES);
}

public Action:SPProjectileTouchHook(entity, other)
{
	SPProjectileActive(entity, other);

	return (Plugin_Continue);
}

public Action:SPProjectileDamageHook(entity, &amp;attacker, &amp;inflictor, &amp;Float:damage, &amp;damagetype)
{
	SPProjectileActive(entity, 0);

	return (Plugin_Continue);
}

stock SPProjectileActive(entity, other)
{
	SDKUnhook(entity, SDKHook_StartTouch, SPProjectileTouchHook);
	SDKUnhook(entity, SDKHook_OnTakeDamage, SPProjectileDamageHook);

	decl Float:entityposition[3];
	GetEntPropVector(entity, Prop_Send, "m_vecOrigin", entityposition);
	
	new gasentity = GetEntPropEnt(entity, Prop_Send, "m_hEffectEntity");
	AcceptEntityInput(gasentity, "kill");
	AcceptEntityInput(entity, "Kill");

	MakeDamage(0, other, 30, DMG_BULLET, 500.0, entityposition);
	EmitSoundToAll("weapons/physcannon/energy_sing_explosion2.wav", 0, SNDCHAN_AUTO, SNDLEVEL_NORMAL, SND_NOFLAGS, SNDVOL_NORMAL, SNDPITCH_NORMAL, -1, entityposition);
}






public OnAllPluginsLoaded()
{
	if (LibraryExists("pluginautoupdate"))
		AutoUpdate_AddPlugin("www.exp-clan.com", "/entcontrol.xml", PLUGIN_VERSION);
}

public OnPluginEnd() 
{
	if (LibraryExists("pluginautoupdate"))
		AutoUpdate_RemovePlugin();
}

public OnEventShutdown()
{
	UnhookEvent("player_death", OnPlayerDeath);
	UnhookEvent("player_spawn", OnPlayerSpawn);
	
	// Cstrike only
	if (game == CSS)
	{
		UnhookEvent("round_start", OnRoundStart);
		UnhookEvent("round_end", OnRoundEnd);
	}
	else if (game == TF)
		UnhookEvent("teamplay_round_win", OnRoundEnd);
	else if (game == DOD)
		UnhookEvent("dod_round_win", OnRoundEnd);
}

public OnMapStart()
{
	// Check for SDKHOOKS
	if (GetExtensionFileStatus("sdkhooks.ext") != 1)
		LogError("SDKHooks NOT LOADED! Entcontrol is not fully working! Status: %i", GetExtensionFileStatus("sdkhooks.ext"));
	else
		SDKHooksLoaded = true;

	// Check for the EntControl-Ext
	if (GetExtensionFileStatus("entcontrol.ext") != 1)
		LogError("The EntControl Extension IS NOT LOADED! Entcontrol is not fully working! Status: %i", GetExtensionFileStatus("entcontrol.ext"));
	else
		EntControlExtLoaded = true;
	
	SetConVarString(FindConVar("sm_entcontrol_version"), PLUGIN_VERSION);
	
	// LaserBeam
	gLaser1 = PrecacheModel("materials/sprites/laser.vmt");
	PrecacheModel("models/items/battery.mdl", false);
	PrecacheModel("models/weapons/w_missile_launch.mdl", false);
	PrecacheSound("weapons/Irifle/irifle_fire2.wav", false);

	// Grabbing Sound
	// weapons/physcannon/physcannon_charge.wav
	PrecacheSound("buttons/combine_button5.wav");
	
	//gSelectedEntitySprite = PrecacheModel("models/extras/info_speech.mdl");
	
	// start timer
	gTimer = CreateTimer(0.1, UpdateObjects, INVALID_HANDLE, TIMER_REPEAT);
	
	if (game == CSS || game == TF)
		gTimerHudInfo = CreateTimer(1.0, UpdateHudInfoExtended, INVALID_HANDLE, TIMER_REPEAT);
	//else
		//gTimerHudInfo = CreateTimer(1.0, UpdateHudInfoSimple, INVALID_HANDLE, TIMER_REPEAT);
	
	InitWeapons();
	
	InitNPCs();
	
	// Hostage
	PrecacheSound("physics/glass/glass_sheet_break3.wav");
	
	kv = CreateKeyValues("EntControl");
	decl String:file[256];
	BuildPath(Path_SM, file, sizeof(file), "configs/entcontrol.cfg");
	if (!FileToKeyValues(kv, file))
	{
		CloseHandle(kv);
		
		LogError("%s NOT loaded! You NEED that file!", file);
	}
	
	kvEnts = CreateKeyValues("EntControl_Entities");
	BuildPath(Path_SM, file, sizeof(file), "configs/entcontrol_entities.cfg");
	if (!FileToKeyValues(kvEnts, file))
	{
		CloseHandle(kvEnts);
		
		LogError("%s NOT loaded! You NEED that file!", file);
	}
	
	BuildMenu();
}

public Action:OnRoundStart(Handle:event, const String:name[], bool:dontBroadcast)
{
	CreateTimer(1.0, SpawnNPCs, INVALID_HANDLE, TIMER_FLAG_NO_MAPCHANGE);
	CreateTimer(1.0, SpawnEntities, INVALID_HANDLE, TIMER_FLAG_NO_MAPCHANGE);
}

public Action:OnRoundEnd(Handle:event, const String:name[], bool:dontBroadcast)
{
	if (fakeClient)
		KickClient(fakeClient);

	// This HACK will fix a few bugs ... -.-
	ServerCommand("sm plugins reload entcontrol");
}

public OnMapEnd()
{
	CloseHandle(gTimer);
	CloseHandle(gTimerHudInfo);

	FreeMenu();
}

public OnClientPutInServer(client)
{
	if(client)
	{ 
		gObj[client] = -1;
		gSelectedEntity[client] = -1;
		gDistance[client] = 0.0;
		gSavedPos[client][0] = 0.0;
		gSavedPos[client][1] = 0.0;
		gSavedPos[client][2] = 0.0;
		gNextPickup[client] = 0.0;

		SprayPos[client][0] = 0.0;
		SprayPos[client][1] = 0.0;
		SprayPos[client][2] = 0.0;
		strcopy(SprayName[client], sizeof(SprayName[]), "");
	}
}

public OnClientDisconnect(client) 
{
	SprayPos[client][0] = 0.0;
	SprayPos[client][1] = 0.0;
	SprayPos[client][2] = 0.0;
	strcopy(SprayName[client], sizeof(SprayName[]), "");
}

// Hostage improvements
public OnEntityCreated(entity, const String:classname[])
{
	if (StrEqual(classname, "hostage_entity"))
		SDKHook(entity, SDKHook_Touch, OnHostageTouch);
}

// Improve the hostage AI !!! xD
public Action:OnHostageTouch(hostage, other)
{
	if (other)
	{
		new String:edictname[32];
		GetEdictClassname(other, edictname, 32);

		if (StrEqual("func_breakable", edictname) || StrEqual("func_breakable_surf", edictname))
		{
			decl Float:vEntPosition[3];
			GetEntPropVector(hostage, Prop_Send, "m_vecOrigin", vEntPosition);
			BaseNPC_PlaySound("physics/glass/glass_sheet_break3.wav", vEntPosition);
			
			AcceptEntityInput(other, "Break");
		}
		else if ((StrEqual(edictname, "prop_physics")
				|| StrEqual(edictname, "prop_physics_multiplayer")
				|| StrEqual(edictname, "func_physbox"))
				&amp;&amp; Entity_GetHealth(other))
		{
			AcceptEntityInput(other, "Break");
		}
	}

	return (Plugin_Continue);
}

public Action:OnPlayerSpawn(Handle:event, const String:name[], bool:dontBroadcast)
{
	new client;
	client = GetClientOfUserId(GetEventInt(event, "userid"));

	// reset object held
	gObj[client] = -1;

	return (Plugin_Continue);
}

public Action:OnPlayerDeath(Handle:event, const String:name[], bool:dontBroadcast)
{
	new client;
	client = GetClientOfUserId(GetEventInt(event, "userid"));

	// reset object held
	gObj[client] = -1;

	return (Plugin_Continue);
}

/*
*	Spray Trace
*
*	Originally by Nican
*	Re-released and updated with permission by Lebson506th
*/
public Action:OnPlayerSpray(const String:te_name[],const clients[],client_count,Float:delay) 
{
	new client = TE_ReadNum("m_nPlayer");

	if(client &amp;&amp; IsClientInGame(client))
	{
		TE_ReadVector("m_vecOrigin", SprayPos[client]);

		GetClientName(client, SprayName[client], 64);
	}
}
// Spray-Trace end

/*
	------------------------------------------------------------------------------------------
	COMMANDS
	------------------------------------------------------------------------------------------
*/
public Action:OnPlayerRunCmd(client, &amp;buttons, &amp;impulse, Float:vel[3], Float:angles[3], &amp;weapon)
{
	if (GetConVarBool(gNoneAdminsUseGrab))
	{
		if ((buttons &amp; IN_ATTACK || buttons &amp; IN_ATTACK2) &amp;&amp; gObj[client] &gt;= 1)
		{
			gObj[client] = -1;
		}
		else if (buttons &amp; IN_USE &amp;&amp; (gNextPickup[client] &lt; GetGameTime()) &amp;&amp; IsPlayerAlive(client))
		{
			gNextPickup[client] = GetGameTime() + 1.0;
			
			if (gObj[client] &gt;= 1)
			{
				new Float:vecDir[3], Float:vecPos[3], Float:vecVel[3];
				new Float:viewang[3];

				// get client info
				GetClientEyeAngles(client, viewang);
				GetAngleVectors(viewang, vecDir, NULL_VECTOR, NULL_VECTOR);
				GetClientEyePosition(client, vecPos);
				
				// update object 
				vecPos[0]+=vecDir[0]*100.0;
				vecPos[1]+=vecDir[1]*100.0;
				vecPos[2]+=vecDir[2]*100.0;

				GetEntPropVector(gObj[client], Prop_Send, "m_vecOrigin", vecDir);

				SubtractVectors(vecPos, vecDir, vecVel);
				ScaleVector(vecVel, 10.0);
				TeleportEntity(gObj[client], NULL_VECTOR, NULL_VECTOR, vecVel);

				gObj[client] = -1;
			}
			else
			{
				new ent;
				new Float:VecPos_Ent[3], Float:VecPos_Client[3];
				
				ent = TraceToEntity(client); // GetClientAimTarget(client);

				if (IsValidEntity(ent) &amp;&amp; IsValidEdict(ent))
				{
					new String:edictname[64];
					GetEdictClassname(ent, edictname, 64);
					if (StrEqual(edictname, "prop_physics") || StrEqual(edictname, "prop_physics_multiplayer") || StrEqual(edictname, "func_physbox"))
					{
						GetClientEyePosition(client, VecPos_Client);
						GetEntPropVector(ent, Prop_Send, "m_vecOrigin", VecPos_Ent);
						if(GetVectorDistance(VecPos_Client, VecPos_Ent) &lt;= 128.0)
						{
							gObj[client] = ent;
							gDistance[client] = 40.0;
						}
					}
				}
			}
		}
	}
}

stock GrabSomething(client)
{
	if (CanUseCMD(client, gAdminFlagGrab))
	{
		new ent;
		new Float:VecPos_Ent[3], Float:VecPos_Client[3];
		
		if (GetConVarBool(gAdminCanGrabSelf)) // I know this might be slow ... but we need the ability to change the cvar every time
			ent = GetObject(client);
		else
			ent = GetObject(client, false);
		
		if (ent == -1)
			return;

		// only grab physics entities
		new String:edictname[128];
		GetEdictClassname(ent, edictname, 128);

		if (StrEqual(edictname, "player"))
		{
			if (!CanUseCMD(client, gAdminFlagGrabPlayer))
				return;
			
			PrintHintText(ent, "Admin %N is grabbing you", client);

			LogAction(client, ent, "%L grabbed %L", client, ent);
		}
		else
		{
			LogAction(client, 0, "%L grabbed %s", client, edictname);

			if (StrEqual(edictname, "prop_physics") || StrEqual(edictname, "prop_physics_multiplayer"))
			{
				// Convert to prop_physics_override
				if (IsValidEdict(ent) &amp;&amp; IsValidEntity(ent)) 
				{
					ent = ReplacePhysicsEntity(ent);
				}
			}
		}

		if (GetEntityMoveType(ent) == MOVETYPE_NONE)
		{
			if (strncmp("player", edictname, 5, false)!=0)
			{
				SetEntityMoveType(ent, MOVETYPE_VPHYSICS);

				PrintHintText(client, "Object ist now Unfreezed");
			}
			else
			{
				SetEntityMoveType(ent, MOVETYPE_WALK);
				return;
			}
		}

		gObj[client] = ent;

		GetEntPropVector(ent, Prop_Send, "m_vecOrigin", VecPos_Ent);
		GetClientEyePosition(client, VecPos_Client);
		gDistance[client] = GetVectorDistance(VecPos_Ent, VecPos_Client, false);

		new Float:position[3];
		TeleportEntity(ent, NULL_VECTOR, NULL_VECTOR, position);
		
		EmitSoundToClient(client, "buttons/combine_button5.wav");
	}
}

public Action:Command_Grab(client, args)
{
	GrabSomething(client);

	return (Plugin_Handled);
}

public Action:Command_UnGrab(client, args)
{
	gObj[client] = -1;
	return (Plugin_Handled);
}

public Action:Command_GrabToggle(client, args)
{
	if (gObj[client] != -1)
		gObj[client] = -1;
	else
		GrabSomething(client);
	
	return (Plugin_Handled);
}

public Action:Command_Show_Info(client, args)
{
	if (client)
		ShowMOTDPanel(client, "EntControl-Information", "http://www.exp-clan.com/entcontrol.html", 2);

	return (Plugin_Handled);
}

public Action:Command_Report_Bugs(client, args)
{
 	decl String:steamID[32];
 	decl String:url[120];
 
 	steamID[0] = '\0'; // Ripped from somewhere ... SourceIRC ? Oo

 	GetClientAuthString(client, steamID, sizeof(steamID));

	Format(url, sizeof(url), "http://www.exp-clan.com/mantisbt/bug_report_page.php?Server=19&amp;SteamID=%s", steamID);

	ShowMOTDPanel(client, "Bug-Report", url, 2);
	ShowMOTDPanel(client, "Bug-Report", url, 2);

	return (Plugin_Handled);
}


/* 
	------------------------------------------------------------------------------------------
	MAIN TIMER/LOOP CODE
	------------------------------------------------------------------------------------------
*/
public Action:UpdateObjects(Handle:timer)
{
	new Float:vecDir[3], Float:vecPos[3], Float:vecVel[3];
	new Float:viewang[3];

	for (new i=1; i &lt; MaxClients; i++)
	{
		if (ValidGrab(i))
		{
			// get client info
			GetClientEyeAngles(i, viewang);
			GetAngleVectors(viewang, vecDir, NULL_VECTOR, NULL_VECTOR);
			GetClientEyePosition(i, vecPos);

			// update object
			vecPos[0]+=vecDir[0]*gDistance[i];
			vecPos[1]+=vecDir[1]*gDistance[i];
			vecPos[2]+=vecDir[2]*gDistance[i];
			
			GetEntPropVector(gObj[i], Prop_Send, "m_vecOrigin", vecDir);
			
			SubtractVectors(vecPos, vecDir, vecVel);
			ScaleVector(vecVel, 10.0);
			
			TeleportEntity(gObj[i], NULL_VECTOR, NULL_VECTOR, vecVel);
		}
	}
	
	return (Plugin_Continue);
}

public Action:UpdateHudInfoExtended(Handle:timer)
{
	new Float:vecPos[3];
	
	for (new i=1; i &lt; MaxClients; i++)
	{
		if (IsClientConnected(i) &amp;&amp; IsClientInGame(i) &amp;&amp; !IsFakeClient(i))
		{
			if (CanUseCMD(i, gAdminFlagHUD, false)) // This might be a little slow
			{
				GetPlayerEye(i, vecPos);

				for (new i2 = 1; i2 &lt; MaxClients; i2++) 
				{
					if (GetVectorDistance(vecPos, SprayPos[i2]) &lt;= 40.0)
					{
						decl String:szText[250];
						Format(szText, sizeof(szText), "Sprayer: %s", SprayName[i2]);
    
						new Handle:hBuffer = StartMessageOne("KeyHintText", i);
						BfWriteByte(hBuffer, 1);
						BfWriteString(hBuffer, szText);
						EndMessage();

						break;
					}
				}

				// find entity
				new ent = GetObject(i, false);
				if (ent != -1)
				{
					new String:edictname[128];
					GetEdictClassname(ent, edictname, 128);

					if (StrEqual(edictname, "player"))
						GetClientName(ent, edictname, sizeof(edictname));

					decl String:szText[64];
					Format(szText, sizeof(szText), "%s(%i)\nHP: %i", edictname, ent, GetEntProp(ent, Prop_Data, "m_iHealth"));
    
					new Handle:hBuffer = StartMessageOne("KeyHintText", i);
					BfWriteByte(hBuffer, 1);
					BfWriteString(hBuffer, szText);
					EndMessage();
					
					/*
					if (gSelectedEntity[i] != -1)
					{
						new Float:vEntPosition[3];
						GetEntPropVector(gSelectedEntity[i], Prop_Send, "m_vecOrigin", vEntPosition);
						vEntPosition[2] += 20.0;
						TE_SetupGlowSprite(vEntPosition, gSelectedEntitySprite, 1.0, 1.0, 255);
						TE_SendToClient(i);
					}
					*/
				}
			}
		}
	}
	
	return (Plugin_Continue);
}

public Action:UpdateHudInfoSimple(Handle:timer)
{
	new Float:vecPos[3];
	
	for (new i=1; i &lt; MaxClients; i++)
	{
		if (IsClientConnected(i) &amp;&amp; IsClientInGame(i) &amp;&amp; !IsFakeClient(i))
		{
			if (CanUseCMD(i, gAdminFlagHUD, false)) // This might be a little slow
			{
				GetPlayerEye(i, vecPos);

				for (new i2 = 1; i2 &lt; MaxClients; i2++) 
				{
					if (GetVectorDistance(vecPos, SprayPos[i2]) &lt;= 40.0)
					{
						decl String:szText[250];
						Format(szText, sizeof(szText), "Sprayer: %s", SprayName[i2]);
    
						PrintCenterText(i, szText);

						break;
					}
				}

				// find entity
				new ent = GetObject(i, false);
				if (ent != -1)
				{
					new String:edictname[128];
					GetEdictClassname(ent, edictname, 128);

					if (StrEqual(edictname, "player"))
						GetClientName(ent, edictname, sizeof(edictname));
    
					PrintCenterText(i, edictname);
				}
			}
		}
	}
	
	return (Plugin_Continue);
}


 </pre><p> </p></div></div><p> </p>]]></description><guid isPermaLink="false">16712</guid><pubDate>Fri, 29 Aug 2014 08:36:18 +0000</pubDate></item><item><title>[STORE] menu Hub compatible store</title><link>https://forum.supreme-elite.fr/topic/16711-store-menu-hub-compatible-store/</link><description><![CDATA[<p>Yo tout le monde,</p><p> </p><p>Comme il y a déjà pas mal de hub qui fonctionne avec le store de partager sur le net, je vous partages le mien que j'avais réalisé l'année dernière ^^. Ce partage est à titre d'apprentissage pour les futurs sourcepawner afin qu'ils sachent utiliser l'API store et le text afficher à droite (comme dans le jail).</p><p>Pour toutes questions, je suis là pour répondre sur le poste (et uniquement sur le poste, que tout le monde puissent profiter des possibles questions-réponses):</p><p> </p><p> </p><div class="ipsSpoiler" data-ipsspoiler=""><div class="ipsSpoiler_header"><span></span></div><div class="ipsSpoiler_contents"><p> </p><pre class="ipsCode prettyprint">
#include &lt;sourcemod&gt;
#include &lt;store&gt;
#include &lt;smlib&gt;

new Handle:WelcomeTimers;
new String:NameOfItem[10][STORE_MAX_DISPLAY_NAME_LENGTH];
new String:NameOfCategory[10][STORE_MAX_DISPLAY_NAME_LENGTH];

public Plugin:myinfo =
{
	name        = "[Store] My Items",
	author      = "Dertione",
	version     = "1.0",
};


public OnClientPutInServer(client)
{
	WelcomeTimers = CreateTimer(2.0, Store_menu, client, TIMER_REPEAT);
}


public OnClientDisconnect(client)
{
	KillTimer(WelcomeTimers);
	WelcomeTimers = INVALID_HANDLE;
}

public Action:Store_menu(Handle:timer, any:client)
{
	new Handle:hPack = CreateDataPack();
	WritePackCell(hPack, GetClientSerial(client));
	
	new Handle:Filter = CreateTrie();
	SetTrieValue(Filter, "loadout_id", Store_GetClientLoadout(client));
	Store_GetUserItems(Filter, Store_GetClientAccountID(client), Store_GetClientLoadout(client), GetUserItemsCallback, hPack);
	Store_ReloadItemCache();
}

public GetUserItemsCallback(ids[], bool:equipped[], itemCount[], count, loadoutId, any:pack)
{
	ResetPack(pack);
	
	new Serial = ReadPackCell(pack);
	
	CloseHandle(pack);
	
	new client = GetClientFromSerial(Serial);
	new i = 0;
	new String:Vip_flag[10][STORE_MAX_DISPLAY_NAME_LENGTH];
	
	if(GetUserFlagBits(client) &amp; ADMFLAG_CUSTOM1)
	{
		Vip_flag[0] = "Abonnement Vip : ON";
	}
	else
	{	
		Vip_flag[0] = " Abonnement Vip : OFF";
	}
	
	for (new item = 0; item &lt; count; item++)
	{
		if (equipped[item])
		{
			decl String:sDisplayName[STORE_MAX_DISPLAY_NAME_LENGTH];
			Store_GetItemDisplayName(ids[item], sDisplayName, sizeof(sDisplayName));
			NameOfItem[i]=sDisplayName;
			ids[item] = Store_GetItemCategory(ids[item]);
			Store_GetCategoryDisplayName(ids[item], sDisplayName, sizeof(sDisplayName));
			NameOfCategory[i]=sDisplayName;
			i++;
			
		}
	}
	if(i==0)
	{
		
	}
	else if(i==1)
	{
		Client_PrintKeyHintText(client,"[MGF] STATS\n%s\n%s : %s",Vip_flag[0],NameOfCategory[0],NameOfItem[0]);
	}
	else if(i==2)
	{
		Client_PrintKeyHintText(client,"[MGF] STATS\n%s\n%s : %s\n%s : %s",Vip_flag[0],NameOfCategory[0],NameOfItem[0],NameOfCategory[1],NameOfItem[1]);
	}
	else if(i==3)
	{
		Client_PrintKeyHintText(client,"[MGF] STATS\n%s\n%s : %s\n%s : %s\n%s : %s",Vip_flag[0],NameOfCategory[0],NameOfItem[0],NameOfCategory[1],NameOfItem[1],NameOfCategory[2],NameOfItem[2]);
	}
	else if(i==4)
	{
		Client_PrintKeyHintText(client,"[MGF] STATS\n%s\n%s : %s\n%s : %s\n%s : %s\n%s : %s",Vip_flag[0],NameOfCategory[0],NameOfItem[0],NameOfCategory[1],NameOfItem[1],NameOfCategory[2],NameOfItem[2],NameOfCategory[3],NameOfItem[3]);
	}
	else if(i==5)
	{
		Client_PrintKeyHintText(client,"[MGF] STATS\n%s\n%s : %s\n%s : %s\n%s : %s\n%s : %s\n%s : %s",Vip_flag[0],NameOfCategory[0],NameOfItem[0],NameOfCategory[1],NameOfItem[1],NameOfCategory[2],NameOfItem[2],NameOfCategory[3],NameOfItem[3],NameOfCategory[4],NameOfItem[4]);
	}
	else if(i==6)
	{
		Client_PrintKeyHintText(client,"[MGF] STATS\n%s\n%s : %s\n%s : %s\n%s : %s\n%s : %s\n%s : %s\n%s : %s",Vip_flag[0],NameOfCategory[0],NameOfItem[0],NameOfCategory[1],NameOfItem[1],NameOfCategory[2],NameOfItem[2],NameOfCategory[3],NameOfItem[3],NameOfCategory[4],NameOfItem[4],NameOfCategory[5],NameOfItem[5]);
	}
	else if(i==7)
	{
		Client_PrintKeyHintText(client,"[MGF] STATS\n%s\n%s : %s\n%s : %s\n%s : %s\n%s : %s\n%s : %s\n%s : %s\n%s : %s",Vip_flag[0],NameOfCategory[0],NameOfItem[0],NameOfCategory[1],NameOfItem[1],NameOfCategory[2],NameOfItem[2],NameOfCategory[3],NameOfItem[3],NameOfCategory[4],NameOfItem[4],NameOfCategory[5],NameOfItem[5],NameOfCategory[6],NameOfItem[6]);
	}
	else if(i==8)
	{
		Client_PrintKeyHintText(client,"[MGF] STATS\n%s\n%s : %s\n%s : %s\n%s : %s\n%s : %s\n%s : %s\n%s : %s\n%s : %s\n%s : %s",Vip_flag[0],NameOfCategory[0],NameOfItem[0],NameOfCategory[1],NameOfItem[1],NameOfCategory[2],NameOfItem[2],NameOfCategory[3],NameOfItem[3],NameOfCategory[4],NameOfItem[4],NameOfCategory[5],NameOfItem[5],NameOfCategory[6],NameOfItem[6],NameOfCategory[7],NameOfItem[7]);
	}
	else if(i==9)
	{
		Client_PrintKeyHintText(client,"[MGF] STATS\n%s\n%s : %s\n%s : %s\n%s : %s\n%s : %s\n%s : %s\n%s : %s\n%s : %s\n%s : %s\n%s : %s",Vip_flag[0],NameOfCategory[0],NameOfItem[0],NameOfCategory[1],NameOfItem[1],NameOfCategory[2],NameOfItem[2],NameOfCategory[3],NameOfItem[3],NameOfCategory[4],NameOfItem[4],NameOfCategory[5],NameOfItem[5],NameOfCategory[6],NameOfItem[6],NameOfCategory[7],NameOfItem[7],NameOfCategory[8],NameOfItem[8]);
	}
	else
	{
		Client_PrintKeyHintText(client,"[MGF] STATS\n%s\n%s : %s\n%s : %s\n%s : %s\n%s : %s\n%s : %s\n%s : %s\n%s : %s\n%s : %s\n%s : %s\n%s : %s\n",Vip_flag[0],NameOfCategory[0],NameOfItem[0],NameOfCategory[1],NameOfItem[1],NameOfCategory[2],NameOfItem[2],NameOfCategory[3],NameOfItem[3],NameOfCategory[4],NameOfItem[4],NameOfCategory[5],NameOfItem[5],NameOfCategory[6],NameOfItem[6],NameOfCategory[7],NameOfItem[7],NameOfCategory[8],NameOfItem[8],NameOfCategory[9],NameOfItem[9]);
	}

} </pre><p> </p></div></div><p> </p>]]></description><guid isPermaLink="false">16711</guid><pubDate>Fri, 29 Aug 2014 08:01:52 +0000</pubDate></item><item><title>zombie riot france ces plugin "gameplay" l4d</title><link>https://forum.supreme-elite.fr/topic/14233-zombie-riot-france-ces-plugin-gameplay-l4d/</link><description><![CDATA[<p>delete</p>]]></description><guid isPermaLink="false">14233</guid><pubDate>Thu, 26 Sep 2013 18:41:22 +0000</pubDate></item><item><title>Plugin de spawn protect v1.0</title><link>https://forum.supreme-elite.fr/topic/14222-plugin-de-spawn-protect-v10/</link><description><![CDATA[<p>Je partages un ancien plugin qui ne m'ai plus d'utilité et qui est assez simple pour les personnes qui veulent regarder le code. Il est commenté.</p><p> </p><p>Ce plugin consiste a protéger une personne dans les 45 premiers secondes du round même si elle arrive au début ou a 30 secondes, la personne sera protéger vis à vis du temps du round et pas autre chose. Ce plugin a été spécifiquement pour quelqu'un donc c'est pour cela que la durer est aussi important de base mais elle peut être changer facilement grâce à un fichier de configuration.</p><p> </p><p><span style="color:#006400;"><u><span style="font-family:tahoma, helvetica, arial, sans-serif;font-size:12px;"><strong>Cvars :</strong></span></u></span><br /><br /><span style="font-family:'lucida sans unicode', 'lucida grande', sans-serif;"><span style="color:rgb(71,71,71);font-size:12px;">Un fichier de configuration sera automatiquement crée ici : cstrike/cfg/sourcemod/plugin_spawn_protect.cfg</span></span><br /><br /><span style="color:rgb(71,71,71);font-family:tahoma, helvetica, arial, sans-serif;font-size:12px;">"¢ <span style="font-family:'lucida sans unicode', 'lucida grande', sans-serif;"><b>g_TimerRound </b></span></span><span style="font-family:'lucida sans unicode', 'lucida grande', sans-serif;"><span style="color:rgb(71,71,71);font-size:12px;">: 45.0 par défaut - Temps du spawn protect générale (en secondes)</span></span><br /><br /><br /><span style="color:#006400;"><u><span style="font-family:tahoma, helvetica, arial, sans-serif;font-size:12px;"><strong>Bugs :</strong></span></u></span><br /><br /><span style="font-family:'lucida sans unicode', 'lucida grande', sans-serif;"><span style="color:rgb(71,71,71);font-size:12px;">Aucun</span></span><br /><br /><br /><strong>1.0</strong><br /><span style="color:rgb(71,71,71);font-family:tahoma, helvetica, arial, sans-serif;font-size:12px;">First release</span></p><p><a href="https://forum.supreme-elite.fr/applications/core/interface/file/attachment.php?id=1741" data-fileid="1741" data-fileext="sp" rel="">spawn_protect.sp</a></p><p><a href="https://forum.supreme-elite.fr/applications/core/interface/file/attachment.php?id=1742" data-fileid="1742" data-fileext="smx" rel="">spawn_protect.smx</a></p>]]></description><guid isPermaLink="false">14222</guid><pubDate>Tue, 24 Sep 2013 21:32:57 +0000</pubDate></item><item><title>Plugin d'essai de premium - v1.0</title><link>https://forum.supreme-elite.fr/topic/9415-plugin-dessai-de-premium-v10/</link><description><![CDATA[<p>Voici un plugin qui permet d'attribuer un flag temporaire (en jours) à un joueur via une commande /premium, et ce une unique fois par compte steam. Si le joueur a déjà ce flag (admin/vip), il n'aura pas accès a cet avantage. Cela dit, il peut l'utiliser s'il vient a perdre ses accès.</p><p> </p><p>Il est prérequis de créer une table spécifique. Voici la requête SQL nécessaire :</p><p></p><pre class="ipsCode">
CREATE TABLE IF NOT EXISTS `free_premium`(
 `Steamid` varchar(32) NOT NULL,
 `Fin` int(11) NOT NULL,
 PRIMARY KEY (`Steamid`))
</pre><div></div><p></p><p> </p><p> </p><p><span style="color:#483D8B;"><span style="font-size:12px;"><strong>Cvars</strong></span></span></p><p>Un fichier de cvar est automatiquement crée a l'url : cstrike/cfg/sourcemod/plugin_raifp.cfg.</p><p> </p><p> "¢ <strong>premium_flag</strong> : "custom6" par défaut - Flag requit pour avoir accès au premium de test (UNIQUEMENT LES CUSTOM)</p><p> "¢ <strong>premium_website</strong> : "<a href="http://vip.supreme-elite.fr" rel="external nofollow">http://vip.supreme-elite.fr"</a> par défaut - Site web pour l'abonnement VIP (indiqué lorsque l'essai se termine)</p><p> "¢ <strong>premium_duration</strong> : 3 par défaut - Durée, en jours, du premium de test</p><p> "¢ <strong>premium_db</strong> : "vip" par défaut - Nom du profil database pour l'accès SQL (indiqué dans configs/database.cfg)</p><p> </p><p>Le joueur recevra, sur chaque serveur où se situe le plugin, le flag indiqué lors de sa connection a partir du moment ou il a tapé la commande /premium. Après X jours de test, il ne recevra plus ce flag et n'aura plus accès à la commande.</p><p> </p><p> </p><p><span style="color:#483D8B;"><span style="font-size:12px;"><strong>Bugs</strong></span></span></p><p>Pas répertorié</p><p> </p><p> </p><p><span style="color:#483D8B;"><span style="font-size:12px;"><strong>To do</strong></span></span></p><p>"¢ Permettre l'application de plusieurs flags, et autre que les custom</p><p>"¢ Un fichier de langage pour les textes</p><p> </p><p> </p><p><span style="color:#483D8B;"><span style="font-size:12px;"><strong>Changelog</strong></span></span></p><p><strong>1.0</strong> - First release</p><p> </p><p> </p><p>Script : <a href="https://forum.supreme-elite.fr/applications/core/interface/file/attachment.php?id=1248" data-fileid="1248" data-fileext="sp" rel="">premium.sp</a></p><p>Plugin : <a href="https://forum.supreme-elite.fr/applications/core/interface/file/attachment.php?id=1247" data-fileid="1247" data-fileext="smx" rel="">premium.smx</a></p><p> </p><p>Enjoy !</p><p> </p><p>PS : n'hésitez pas a proposer des suggestions <img alt=";)" src="https://forum.supreme-elite.fr/uploads/emoticons/default_wink.png" loading="lazy">.</p>]]></description><guid isPermaLink="false">9415</guid><pubDate>Tue, 08 May 2012 23:10:12 +0000</pubDate></item><item><title>[PARTAGE] Warmup unlimited</title><link>https://forum.supreme-elite.fr/topic/13046-partage-warmup-unlimited/</link><description><![CDATA[<p>Salut, je partage un warmup que j'ai réaliser pour le zm:ua car celui du plugin zombie reloaded est complètement planté.<br />C'est assez simple comme warmup, c'est surtout pour attendre les retardataires.<br /> <br />surtout vérifiez bien que le temps de votre warmup est inférieur au temps d'apparition du premier zombie, sinon le plugin zombiereloaded plantera.<br /> <br /> <br />Il est entièrement commenté pour ce qui désire jeter un coup d'Å“il ou apprendre le sourcepawn.<br /> <br />Pour toutes questions n'hésitez pas à poster ici.<br /> <br /> <br />il se peut qu'il y ait des bug avec le plugin zombie reloaded car je ne sais plus si c'est la bonne version de la source mais le principale est la, si vous voulez vraiment le plugin tout fait je le mettrais en pièce jointe.</p><p><a href="https://forum.supreme-elite.fr/applications/core/interface/file/attachment.php?id=1685" data-fileid="1685" data-fileext="sp" rel="">warmupunlimited.sp</a></p>]]></description><guid isPermaLink="false">13046</guid><pubDate>Fri, 03 May 2013 12:41:28 +0000</pubDate></item><item><title>Menu Vip V1.3</title><link>https://forum.supreme-elite.fr/topic/9690-menu-vip-v13/</link><description><![CDATA[<p><strong>Salut,</strong></p><p><strong> </strong></p><p><strong>Rapellez-vous de mon</strong><strong><span style="color:#0000cd;"> Vip Menu V1</span></strong><strong> (Vous le trouverez sur ce lien : </strong><a href="http://forum.verygames.net/showthread.php?63365-PARTAGE-Mes-plugins-Excuses" rel="external nofollow"><strong>http://forum.verygames.net/showthread.php?63365-PARTAGE-Mes-plugins-Excuses</strong></a><strong>)</strong></p><p><strong>Oui mon simple </strong><strong><span style="color:#0000cd;">Menu Vip</span></strong><strong> qui fesais quelques trucs </strong><strong><span style="color:#ff0000;">avec quelques bugs</span></strong><strong> U_U, </strong><strong><span style="color:#008000;">mon merveilleur Vip Menu</span></strong><strong> qui offrais des avantages sans que l'ont puissent </strong><strong><span style="color:#0000ff;">activer ou désactiver</span></strong><strong> ces avantages.</strong></p><p><strong>Et bien, ce </strong><strong><span style="color:#0000ff;">Menu Vip</span></strong><strong> </strong><strong><span style="color:#ff0000;">est à jour</span></strong><strong>.</strong></p><p><strong> </strong></p><p><strong>Quand </strong><strong><span style="color:#ff0000;">Golden</span></strong><strong> m'as apprit que je devais crée un autre type de menu pour</strong><strong><span style="color:#0000ff;"> l'activation - désactivation</span></strong><strong> de mes avantages, cela ma motiver à apprendre.</strong></p><p><strong><span style="color:#008000;">Et oui, maintenant vous pouvez choisir quels avantages vous voulez activer ou désactiver</span></strong><strong><span style="color:#ff0000;"> (cette fonction n'est pas tester, enfin je m'en rapel plus ^^" )</span></strong></p><p><strong><span style="color:#ff8c00;">J'ai aussi ajouter deux trois petits truc sympa </span></strong><img alt=";)" src="https://forum.supreme-elite.fr/uploads/emoticons/default_wink.png" loading="lazy"></p><p> </p><p><span style="color:#ff0000;"><strong>Voici la liste des avantages : </strong></span></p><p><strong><span style="color:#0000ff;">- Avoir de la vie</span></strong></p><p><strong><span style="color:#0000ff;">- Avoir de l'armure</span></strong></p><p><strong><span style="color:#0000ff;">- Avoir un Usp</span></strong></p><p><strong><span style="color:#0000ff;">- Avoir une grenade</span></strong></p><p><strong><span style="color:#0000ff;">- Avoir une fumigène</span></strong></p><p><strong><span style="color:#0000ff;">- Avoir de l'argent</span></strong></p><p><strong><span style="color:#0000ff;">- Avoir de la vitesse</span></strong></p><p><strong><span style="color:#0000ff;">- Avoir de la gravité</span></strong></p><p><strong><span style="color:#0000ff;">- Avoir de la régénération</span></strong></p><p> </p><p><span style="color:#0000ff;"><strong>Il y à aussi un advert qui dit ceci :</strong></span></p><p><span style="color:#0000ff;"><strong>"</strong></span><span style="color:#008000;"><strong>Avantagez-vous et devenez VIP dès maintenant ! </strong></span><span style="color:#0000FF;"><strong>"</strong></span></p><p><span style="color:#0000FF;"><strong>Il est activable et désactivable.</strong></span></p><p><strong><span style="color:#ff0000;">IL FAUT LE FLAG O </span></strong></p><p> </p><p><strong><span style="color:#0000ff;">Comme toujours, il offre un tag VIP "</span></strong><strong><span style="color:#008000;">.::VIP::</span></strong><strong><span style="color:#0000FF;">." qui est aussi changable par les Cvars.</span></strong></p><p><strong><span style="color:#0000ff;">Devant les adverts, ce trouve un préfix "</span></strong><strong><span style="color:#008000;">[VIP]</span></strong><strong><span style="color:#0000FF;">" dans les Cvars, ce petit préfix qui est changable aussi via les Cvars</span></strong>.</p><p> </p><p><strong><span style="color:#ff0000;">Vue que il y à des includes, je vous est fais un fichier .rar que vous pouvez télécharger.</span></strong></p><p><strong><span style="color:#ffd700;">Télécharger le ici :</span></strong> <a href="https://forum.supreme-elite.fr/applications/core/interface/file/attachment.php?id=1286" data-fileid="1286" data-fileext="zip" rel="">VipMenuV1.3.zip</a></p><p> </p><p><strong><span style="color:#800080;">Je remercie Golden qui ma apprit comment utiliser ce type de menu malgré le peut de temps qu'il avais à me consacré.</span></strong></p><p><strong><span style="color:#4b0082;">Ghost qui ma aider pour la régénération et qui m'aide pour mettre la transparance, sans oublier que le préfix fonctionne grâce à lui.</span></strong></p><p><strong><span style="color:#800080;">Et Raiden qui ma apprit comment pouvoir activer un menu qu'une seul fois par round.</span></strong></p><p> </p><p><span style="color:#ee82ee;"><strong>Si vous avez quelque idées pour les avantages, n'hasité pas.</strong></span></p><p> </p><p><strong><span style="color:#ff8c00;">Je passe de la V1.2 à la V1.3 directement, car la 1.2 était priver </span></strong><span>http://forum.verygames.net/images/smilies/icon_smile.gif</span></p><p><strong> </strong></p><p><strong><span style="color:#b22222;">Kriax</span></strong>.</p>]]></description><guid isPermaLink="false">9690</guid><pubDate>Thu, 07 Jun 2012 12:01:27 +0000</pubDate></item><item><title>Plugin !block [FFA]</title><link>https://forum.supreme-elite.fr/topic/11169-plugin-block-ffa/</link><description><![CDATA[<p>Salut salut,Notre chère ami Kabrina, m'a demandé de faire un plugin block, permettant aux admin et au VIP d'être en block pendant 5 secondes. Ce qui permet utiliser le potentiel des maps au maximum (genre de_nuke, pour monter sur le scillo jaune, c'est plus facile avec quelqu'un).</p><p> </p><p> </p><p><strong>Description :</strong></p><p>Permet d'être en block pendant 5 secondes, une fois par round.</p><p>Il autorise les flags ADMFLAG_CUSTOM6 et ADMFLAG_BAN .</p><p>La commande est : "sm_block"  ou !block</p><p> </p><p> </p><p> </p><p><strong>Bugs : </strong>Pas de bug répertorier !</p><p> </p><p> </p><p> </p><p> </p><p><span style="color:#483D8B;"><span style="font-family:tahoma, helvetica, arial, sans-serif;"><span style="font-size:12px;"><strong>Changelog</strong></span></span></span></p><p> </p><p><strong>1.0</strong><span style="color:#474747;"><span style="font-family:tahoma, helvetica, arial, sans-serif;"><span style="font-size:12px;"> - First release</span></span></span></p><p><span style="color:#474747;"><span style="font-family:tahoma, helvetica, arial, sans-serif;"><span style="font-size:12px;">Fichier script et plugin mis en pièce jointe.</span></span></span></p><p> </p><p><strong>1.1</strong><span style="color:#474747;"><span style="font-family:tahoma, helvetica, arial, sans-serif;"><span style="font-size:12px;"> - Second release</span></span></span></p><p><span style="color:#474747;"><span style="font-family:tahoma, helvetica, arial, sans-serif;"><span style="font-size:12px;">Fichier script et plugin mis en pièce jointe et mise à jour de l'event "round_start" =&gt; "player_spawn".</span></span></span></p><p> </p><p><strong>1.2</strong><span style="color:#474747;"><span style="font-family:tahoma, helvetica, arial, sans-serif;"><span style="font-size:12px;"> - Third release</span></span></span></p><p><span style="font-family:tahoma, helvetica, arial, sans-serif;"><span style="color:#474747;"><span style="font-size:12px;">!block non utilisable durant les 15 premières secondes du round.</span></span></span></p><p><span style="color:#474747;"><span style="font-family:tahoma, helvetica, arial, sans-serif;"><span style="font-size:12px;">!block restreind à un par round, impossible de retry.</span></span></span></p><p><span style="color:#474747;"><span style="font-family:tahoma, helvetica, arial, sans-serif;"><span style="font-size:12px;">petit warning :</span></span></span></p><p><span style="color:#000000;"><span style="font-size:12px;">/home/groups/sourcemod/upload_tmp/php9qrFgK.sp(47) : warning 217: loose indentation</span></span></p><p><a href="https://forum.supreme-elite.fr/applications/core/interface/file/attachment.php?id=1382" data-fileid="1382" data-fileext="sp" rel="">block.sp</a></p><p><a href="https://forum.supreme-elite.fr/applications/core/interface/file/attachment.php?id=1383" data-fileid="1383" data-fileext="smx" rel="">block.smx</a></p><p><a href="https://forum.supreme-elite.fr/applications/core/interface/file/attachment.php?id=1384" data-fileid="1384" data-fileext="sp" rel="">block1_2.sp</a></p><p><a href="https://forum.supreme-elite.fr/applications/core/interface/file/attachment.php?id=1385" data-fileid="1385" data-fileext="smx" rel="">block1_2.smx</a></p>]]></description><guid isPermaLink="false">11169</guid><pubDate>Mon, 15 Oct 2012 21:04:51 +0000</pubDate></item><item><title>Auto Give Cash</title><link>https://forum.supreme-elite.fr/topic/9698-auto-give-cash/</link><description><![CDATA[<p><strong><span style="color:#000080;">Salut,</span></strong></p><p><strong><span style="color:#000080;"> </span></strong></p><p><strong><span style="color:#000080;">Je m'entraine à crée des Timer dans mes plugins histoire de les maitrisés.</span></strong></p><p><strong><span style="color:#000080;">Donc j'ai crée un petit</span></strong><strong><span style="color:#0000FF;"> Auto Give Cash</span></strong><strong>.</strong></p><p><strong> </strong></p><p><strong><span style="color:#ff0000;">Que fais t-il ?</span></strong></p><p><strong> </strong></p><p><strong><span style="color:#ee82ee;">Toute les X secondes, il donne de l'argent.</span></strong></p><p><strong><span style="color:#800080;">--&gt; L'argent est modifiable.</span></strong></p><p><strong><span style="color:#800080;">--&gt; Le temps aussi</span></strong></p><p><strong><span style="color:#ee82ee;">Un advert s'affiche, pour ne pas flooder le chat :</span></strong></p><p><strong><span style="color:#800080;">--&gt; Vous pouvez l'activer et le désactiver.</span></strong></p><p><strong><span style="color:#ee82ee;">Devant l'advert il y à un prefix:</span></strong></p><p><strong><span style="color:#800080;">--&gt; Il est modifiable.</span></strong></p><p><strong> </strong></p><p><strong><span style="color:#008000;">À compiler bien sure, mais il y à l'</span></strong><strong><span style="color:#0000ff;">include colors</span></strong><strong><span style="color:#008000;">.</span></strong></p><p><strong><span style="color:#008000;">Enfin la </span></strong><strong><span style="color:#0000ff;">compilation</span></strong><strong><span style="color:#008000;"> en </span></strong><strong><span style="color:#0000ff;">local</span></strong><strong><span style="color:#008000;"> ne devrais pas </span></strong><strong><span style="color:#ff0000;">causé de problèmes</span></strong><strong><span style="color:#008000;">.</span></strong></p><p> </p><p><span style="color:#696969;"><strong>Si il doit pourrir sur mon ordinateur, je préfère le partager malgré que il est minuscule.</strong></span></p><p> </p><p><strong><span style="color:#000000;">Kr</span></strong><strong><span style="color:#ffff00;">i</span></strong><strong><span style="color:#ff0000;">ax</span></strong><strong>.</strong></p><p> </p><p></p><pre class="ipsCode">
#include &lt;sourcemod&gt;
#include &lt;colors&gt;
#include &lt;sdktools&gt;
#include &lt;cstrike&gt;

#pragma semicolon 1

new Handle:g_iMoney = INVALID_HANDLE;
new iMoney = 0;

new Handle:Active_Advert = INVALID_HANDLE;
new Advert =0;

new Handle:Advert_TagTeam = INVALID_HANDLE;
new String:TagTeam[64];

new Handle:Give_Time;
new Handle:Give_Timer;

#define VERSION "1.0"

public Plugin:myinfo =
{
name = "Auto Give Cash",
author = "Kriax",
description = "Donne du cash à tout le monde automatiquement",
version = VERSION,
url = "",
};

public OnPluginStart()
{	
Give_Time = CreateConVar("sm_time", "10.0", "Après combien de secondes l'argent est donner");
Give_Timer = CreateTimer(GetConVarFloat(Give_Time), GiveCash, _, TIMER_REPEAT);

g_iMoney = CreateConVar( "sm_money", "16000", "Quantité d'argent donner");

Active_Advert = CreateConVar( "sm_advert", "1", "Active l'advert d'information !");
Advert_TagTeam = CreateConVar( "sm_tagteam", "[Auto-Cash]", "Préfix qui s'afficheras dans vos phrases automatiques");

AutoExecConfig(true, "auto_give_cash");

HookConVarChange(Give_Time, Give_Time_Inerval);
}

public OnConfigsExecuted()
{
Advert = GetConVarInt(Active_Advert);
iMoney = GetConVarInt(g_iMoney);
GetConVarString(Advert_TagTeam, TagTeam, sizeof(TagTeam));
}

public Give_Time_Inerval(Handle:convar, const String:oldValue[], const String:newValue[])
{
KillTimer(Give_Timer);

Give_Timer = CreateTimer(GetConVarFloat(Give_Time), GiveCash, _, TIMER_REPEAT);
}

public Action:GiveCash(Handle:timer)
{
for(new client = 1; client &lt;= MaxClients;client++)
{
	if (IsClientInGame(client) &amp;&amp; IsPlayerAlive(client) &amp;&amp; GetClientTeam(client) &gt; 1 &amp;&amp; ADMFLAG_CUSTOM1)
	{
		if (g_iMoney != INVALID_HANDLE)
		SetEntProp(client, Prop_Send, "m_iAccount", iMoney);
		if (Advert == 1)
		{
			CPrintToChat( client, "{green}%s {lightgreen}Vous avez reçus votre argent.", TagTeam);
		}
	}
}
}
</pre><div></div><p></p>]]></description><guid isPermaLink="false">9698</guid><pubDate>Thu, 07 Jun 2012 19:44:11 +0000</pubDate></item><item><title>Menu Bhop Vip V1.3</title><link>https://forum.supreme-elite.fr/topic/9689-menu-bhop-vip-v13/</link><description><![CDATA[<p></p><div style="text-align:center;"><p><strong>Salut,</strong></p><p><strong> </strong></p><p><strong>Je trouve que mon menu</strong><strong><span style="color:#008000;"> Bhop Vip V1.0</span></strong><strong> est un peut limiter U_U</strong></p><p><strong>Donc une mise à jour à été faite ^^</strong></p><p><strong> </strong></p><p><strong>Voici ce que fais la </strong><strong><span style="color:#008000;">V1.3</span></strong><strong><span style="color:#ff0000;"> (La v1.2 était priver)</span></strong></p><p><strong><span style="color:#0000ff;">- Donne de la grande gravité</span></strong></p><p><strong><span style="color:#0000ff;">- Donne de la gravité moyenne</span></strong></p><p><strong><span style="color:#0000ff;">- Donne de la gravité normal</span></strong></p><p><strong><span style="color:#0000ff;">- Donne de la petite gravité</span></strong></p><p><strong><span style="color:#0000ff;">- Donne un scout</span></strong></p><p><strong><span style="color:#0000ff;">- Sauvegarde la position</span></strong></p><p><strong><span style="color:#0000ff;">- Téléporte à la position </span></strong></p><p><strong>Cela rien que pour le menu.</strong></p><p><strong>Pour ouvrir ce menu il faut tapez </strong><strong><span style="color:#008000;">!bhopvip</span></strong><strong> et avoir le </strong><strong><span style="color:#008000;">flag O</span></strong></p><p><strong> </strong></p><p><strong>Comme je sais que il y auras des flemmards, j'ai aussi fais </strong><strong><span style="color:#008000;">des petits raccourcis</span></strong><strong> :</strong></p><p><strong><span style="color:#0000ff;">- !vipsav : Sauvegarde la position</span></strong></p><p><strong><span style="color:#0000ff;">- !viptel : Téléporte à la position</span></strong></p><p><strong><span style="color:#0000ff;">- !vipscout : Donne un scout.</span></strong></p><p><strong> </strong></p><p><strong>Tout est </strong><strong><span style="color:#0000ff;">activable - désactivable</span></strong><strong> via les Cvars.</strong></p><p><strong>Et il y à aussi le</strong><strong><span style="color:#0000ff;"> préfix</span></strong><strong> des adverts que </strong><strong><span style="color:#0000ff;">on peut changer via les Cvars</span></strong></p><p><strong> </strong></p><p><strong><span style="color:#800080;">Merci Ghost, ton PREFIX via les adverts m'aide beacoup</span></strong></p><p><strong><span style="color:#800080;">Merci Golden, le menu PARAM m'aide beacoup aussi</span></strong></p><p><strong><span style="color:#800080;">Merci, non plus personne ^^</span></strong></p><p><strong> </strong></p><p><strong><span style="color:#ff8c00;">@Piti Mouton : Oui j'aime les couleurs &lt;3</span></strong></p><p><strong> </strong></p><p><strong><span style="color:#FF0000;">/!\ PLUGIN NON TESTER - MAIS IL DEVRAIS FONCTIONNER /!\</span></strong></p><p><span style="color:#ff0000;"><strong>/!\ PLUGIN À COMPILER /!\</strong></span></p><p> </p><p></p><div><br />#pragma semicolon 1<br /><br />#include &lt;sourcemod&gt;<br />#include &lt;sdktools&gt;<br />#include &lt;cstrike&gt;<br />#include &lt;colors&gt;<br />	<br />new Utilisation[64+1];<br />new Float:Joueur[64+1][3];<br /><br />#define INFO_VERSION "1.3"<br /><br />public Plugin:myinfo =<br />{<br />	name = "Vip Menu",<br />	author = "Kriax",<br />	description = "Menu VIP offrant des avantages VIP sur le flag O",<br />	version = "INFO_VERSION",<br />	url = "",<br />};<br /><br />new Handle:Active_Grande_Gravite = INVALID_HANDLE;<br />new Grande = 0;<br /><br />new Handle:Active_Moyenne_Gravite = INVALID_HANDLE;<br />new Moyenne = 0;<br /><br />new Handle:Active_Normale_Gravite = INVALID_HANDLE;<br />new Normale = 0;<br /><br />new Handle:Active_Petite_Gravite = INVALID_HANDLE;<br />new Petite = 0;<br /><br />new Handle:Active_Scout = INVALID_HANDLE;<br />new Scout = 0;<br /><br />new Handle:Active_Teleportation = INVALID_HANDLE;<br />new Teleportation = 0;<br /><br />new Handle:Advert_TagTeam = INVALID_HANDLE;<br />new String:TagTeam[64];<br /><br />new Handle:Active_Advert = INVALID_HANDLE;<br />new Advert = 0;<br /><br />public OnPluginStart()<br />{<br />	HookEvent("player_spawn", OnPlayerSpawn);<br /><br />	RegAdminCmd("bhopvip", menuvip, ADMFLAG_CUSTOM1, "Affiche les avantages VIP");<br />	<br />	Active_Grande_Gravite = CreateConVar( "sm_grande_gravité", "1", "Active la grande gravité");<br />	Active_Moyenne_Gravite = CreateConVar( "sm_moyenne_gravité", "1", "Active la gravité moyenne");<br />	Active_Normale_Gravite = CreateConVar( "sm_normale_gravité", "1", "Active le gravité normale");<br />	Active_Petite_Gravite = CreateConVar( "sm_petite_gravité", "1", "Active la petite gravité");<br />	Active_Scout = CreateConVar( "sm_scout", "1", "Active le scout");<br />	Active_Teleportation = CreateConVar( "sm_téléportation", "1", "Active la téléportation");<br />	Active_Advert = CreateConVar("sm_adverts", "1", "Active l'advert d'information pour les commandes.");<br />	<br />	Advert_TagTeam = CreateConVar( "sm_vip_tagteam", ".::VIP::.", "Préfix qui s'afficheras dans vos phrases automatiques");<br />	<br />	AddCommandListener(OnPlayerSay, "say");<br /><br />	AutoExecConfig(true, "vip_menu");<br />}<br /><br />public OnMapStart()<br />{<br />	CreateTimer(120.0, advert, _,TIMER_REPEAT|TIMER_FLAG_NO_MAPCHANGE);<br />}<br /><br />public OnConfigsExecuted()<br />{<br />	Grande = GetConVarInt(Active_Grande_Gravite);<br />	Moyenne = GetConVarInt(Active_Moyenne_Gravite);<br />	Normale = GetConVarInt(Active_Normale_Gravite);<br />	Petite = GetConVarInt(Active_Petite_Gravite);<br />	Scout = GetConVarInt(Active_Scout);<br />	Teleportation = GetConVarInt(Active_Teleportation);<br />	Advert = GetConVarInt(Active_Advert);<br />	GetConVarString(Advert_TagTeam, TagTeam, sizeof(TagTeam));<br />}<br /><br />public Action:OnPlayerSpawn(Handle:event, const String:name[], bool:dontBroadcast)<br />{<br />	new client = GetClientOfUserId(GetEventInt(event, "userid"));<br />	if (IsClientInGame(client) &amp;&amp; IsPlayerAlive(client) &amp;&amp; GetClientTeam(client) &gt; 1)<br />	{<br />		CPrintToChat(client, "{green}%s {lightgreen}Tapez {green}!bhopvip {lightgreen}pour ouvrir votre menu {green}VIP.", TagTeam);<br />	}<br />}<br /><br />public Action:menuvip(client, args)<br />{<br />	if (IsClientInGame(client) &amp;&amp; IsPlayerAlive(client) &amp;&amp; (GetClientTeam(client))&gt;1)<br />	{<br />		new Handle:menu = CreateMenu(bhopvip);<br />		SetMenuTitle(menu, ".::Menu Vip::.");<br />		if (Grande == 1)<br />		{<br />			AddMenuItem(menu, "Grande", "Grande gravité");<br />		}<br />		if(Moyenne == 1)<br />		{<br />			AddMenuItem(menu, "Moyenne", "Gravité moyenne");<br />		}<br />		if (Normale == 1)<br />		{<br />			AddMenuItem(menu, "Normale", "Gravité normale");<br />		}<br />		if (Petite == 1)<br />		{<br />			AddMenuItem(menu, "Petite", "Petite gravité");<br />		}<br />		if (Scout == 1)<br />		{<br />			AddMenuItem(menu, "Scout", "Avoir un scout");<br />		}<br />		if (Teleportation == 1)<br />		{<br />			AddMenuItem(menu, "Position", "Sauvegarde");<br />		}<br />		if (Teleportation == 1)<br />		{<br />			AddMenuItem(menu, "Teleportation", "Téléportation");<br />		}<br />		SetMenuExitButton(menu, true);<br />		DisplayMenu(menu, client, MENU_TIME_FOREVER);<br />	}<br />	else<br />	{<br />		CPrintToChat(client, "{green}%s {lightgreen}Vous ne pouvez utiliser ce menu que si tu est dans une équipe", TagTeam);<br />	}<br />	return Plugin_Handled;<br />}<br /><br />public bhopvip(Handle:menu, MenuAction:action, client, param2)<br />{<br />	if ( action == MenuAction_Select )<br />	{<br />		new String:info[64];<br />		GetMenuItem(menu, param2, info, sizeof(info));<br />		if(StrEqual(info, "Grande"))<br />		{<br />			CPrintToChat(client, "{green}%s {lightgreen}Vous avez choisi la {green}Grande {lightgreen}gravité.", TagTeam);<br />			SetEntityGravity(client, 2.0);<br />		}<br />		if(StrEqual(info, "Moyenne"))<br />		{<br />			CPrintToChat(client, "{green}%s {lightgreen}Vous avez choisi la {lightgreen}gravité {green}Moyenne.", TagTeam);<br />			SetEntityGravity(client, 1.5);<br />		}<br />		if(StrEqual(info, "Normale"))<br />		{<br />			CPrintToChat(client, "{green}%s {lightgreen}Vous avez choisi la {lightgreen}gravité {green}Normal.", TagTeam);<br />			SetEntityGravity(client, 1.0);<br />		}<br />		if(StrEqual(info, "Petite"))<br />		{<br />			CPrintToChat(client, "{green}%s {lightgreen}Vous avez choisi la {green}Petite {lightgreen}gravité.", TagTeam);<br />			SetEntityGravity(client, 0.5);<br />		}<br />		if(StrEqual(info, "Scout"))<br />		{<br />			CPrintToChat(client, "{green}%s {lightgreen}Vous avez reçus un {green}scout.", TagTeam);<br />			GivePlayerItem(client, "weapon_scout");<br />		}<br />		if(StrEqual(info, "Sauvegarde"))<br />		{<br />			CPrintToChat(client, "{green}%s {lightgreen}Vous avez {green}sauvegarder {lightgreen}votre position.", TagTeam);<br />			Utilisation[client] = 1;<br />			SauvegardeLaPosition(client);<br />		}<br />		if(StrEqual(info, "Teleportation"))<br />		{<br />			CPrintToChat(client, "{green}%s lightgreen}Vous avez été{green}téléporter.", TagTeam);<br />			TeleporteLeJoueur(client);<br />		}<br />	}<br />	else if (action == MenuAction_End )<br />	{<br />		CloseHandle(menu);<br />	}  <br />}<br /><br />public SauvegardeLaPosition(client)<br />{<br />	Utilisation[client] = 1;<br />	GetClientAbsOrigin(client,Joueur[client]);<br />}<br /><br />public TeleporteLeJoueur(client)<br />{<br />	if (Utilisation[client] == 0)<br />	return;<br />	TeleportEntity(client, Joueur[client], NULL_VECTOR, NULL_VECTOR);<br />}<br /><br />public Action:OnPlayerSay(client, const String:command[], argc)<br />{<br />	if (IsClientInGame(client) &amp;&amp; IsPlayerAlive(client) &amp;&amp; GetClientTeam(client) &gt; 1 &amp;&amp; ADMFLAG_CUSTOM1)<br />	{<br />		decl String:message[32];<br />		GetCmdArgString(message, sizeof(message));<br />		StripQuotes(message);<br />		if(StrEqual(message, "!vipsav")&amp;&amp; ADMFLAG_CUSTOM1)<br />		{<br />			CPrintToChat(client, "{green}%s {lightgreen}Vous avez {green}sauvegarder {lightgreen}votre position.", TagTeam);<br />			Utilisation[client] = 1;<br />			SauvegardeLaPosition(client);<br />		}<br />		if(StrEqual(message, "!viptel"))<br />		{<br />			CPrintToChat(client, "{green}%s lightgreen}Vous avez été{green}téléporter.", TagTeam);<br />			TeleporteLeJoueur(client);<br />		}<br />		if(StrEqual(message, "!vipscout"))<br />		{<br />			GivePlayerItem(client, "weapon_scout");<br />			CPrintToChat(client, "{green}%s {lightgreen}Vous avez reçus un {green}scout.", TagTeam);<br />		}<br />	}<br />	else if (GetClientTeam(client) &gt; 1)<br />	{<br />		PrintToChat(client, "{green}%s {lightgreen}Vous devez être dans une équipe !");<br />	}<br />}<br /><br />public Action:advert(Handle:timer)<br />{<br />	for(new client = 1; client &lt;= MaxClients;client++)<br />	{<br />		if (Advert == 1)<br />		{<br />			if (IsClientInGame(client) &amp;&amp; IsPlayerAlive(client) &amp;&amp; GetClientTeam(client) &gt; 1 &amp;&amp; ADMFLAG_CUSTOM1)<br />			{<br />				CPrintToChat( client, "{green}%s {lightgreen}Tapez {green}!vipsav {lightgreen}pour sauvegarder votre position, {green}!viptel {lightgreen}pour vous téléporter à votre position précédente et {green}!vipscout {lightgreen}pour avoir un {green}Scout.", TagTeam);<br />			}<br />		}<br />	}<br />}<br /></div><pre class="ipsCode"></pre><div></div></div><p></p><p></p>]]></description><guid isPermaLink="false">9689</guid><pubDate>Thu, 07 Jun 2012 11:59:29 +0000</pubDate></item><item><title>!he</title><link>https://forum.supreme-elite.fr/topic/9516-he/</link><description><![CDATA[<p><strong>Salut,</strong></p><p><strong> </strong></p><p><strong>Je viens de terminer un de mes plugins.</strong></p><p><strong>Je m'ennuiyais et j'avais aucune idée.</strong></p><p><strong> </strong></p><p><strong>Donc sa ma occuper même pas 5minutes :'(</strong></p><p> </p><p><span style="color:#0000ff;"><span style="font-size:18px;"><strong>Expliquations : </strong></span></span></p><p><strong>Ces un plugin qui permet au CT d'avoir une grenade en écrivant dans le chat</strong> <span style="color:#0000ff;"><strong>!he</strong></span></p><p><strong>Si vous êtes en spectateur ou en Terro, une phrase s'afficheras.</strong></p><p><strong>--&gt; </strong><strong><span style="color:#0000ff;">Vous devez être en CT pour avoir accès à cette commande</span></strong> <strong>&lt;--</strong></p><p> </p><p><strong>Ces disponnible en </strong><strong><span style="color:#0000ff;">téléchargement</span></strong><strong>, je vous met le code source </strong><strong><span style="color:#0000ff;">directement</span></strong><strong> sur </strong><strong><span style="color:#0000ff;">le post</span></strong><strong>.</strong></p><p> </p><p></p><pre class="ipsCode">
#include &lt;sourcemod&gt;
#include &lt;cstrike&gt;
#include &lt;sdktools&gt;

public Plugin:myinfo =
{
name = "!HE",
author = "Kriax",
description = "Done une HE au CT --&gt; !HE",
version = "1.0",
url = ""
}

public OnPluginStart()
{
	AddCommandListener(OnPlayerSay, "say");
}

public Action:OnPlayerSay(client, const String:command[], argc)
{
if (IsPlayerAlive(client) &amp;&amp; GetClientTeam(client) == 3)
{
	decl String:message[32];
	GetCmdArgString(message, sizeof(message));
	StripQuotes(message);
	if(StrEqual(message, "!he"))
	{
		GivePlayerItem(client, "weapon_hegrenade");
	}
}
else if (GetClientTeam(client) &lt; 3)
{
	PrintToChat(client, "Vous devez être en CT pour avoir accès à cette commande");
}

}
</pre><div></div><p></p><p> </p><p><strong><span style="color:#000000;">Kr</span></strong><strong><span style="color:#ffff00;">i</span></strong><strong><span style="color:#ff0000;">ax</span></strong><strong>.</strong></p><p><a href="https://forum.supreme-elite.fr/applications/core/interface/file/attachment.php?id=1262" data-fileid="1262" data-fileext="smx" rel="">HeForCt.smx</a></p><p><a href="https://forum.supreme-elite.fr/applications/core/interface/file/attachment.php?id=1263" data-fileid="1263" data-fileext="sp" rel="">HeForCt.sp</a></p>]]></description><guid isPermaLink="false">9516</guid><pubDate>Fri, 18 May 2012 17:02:39 +0000</pubDate></item><item><title>[PARTAGE] Mes Premiers Plugins</title><link>https://forum.supreme-elite.fr/topic/9475-partage-mes-premiers-plugins/</link><description><![CDATA[<p><strong>Bonjour,</strong></p><p> </p><p><strong>Avant toute chose, je me présente.</strong></p><p><strong>Je suis Kriax, je suis agé de 16ans et un apprentit coder SourcePawn et EsShell.</strong></p><p><strong>Je suis une personnes qui passe du temps au seins de la communauté Verygames.</strong></p><p><strong>Aide, Tuto, Partage,...</strong></p><p> </p><p><strong>Je met ici mes premiers script que je crée de temps à autre qui me servent, et qui j'éspère serviras dans la futur pour les autres.</strong></p><p><strong>Aucun de mes plugins n'est sortis officiellement sur le forum Sourcemod ou eventscript.</strong></p><p> </p><p><strong>Mais j'ai actuellement deux de mes projets qui le seront.</strong></p><p> </p><p><strong>Cela fais maintenant 1mois que je code en Shell (mais j'ai mit Eventscript de coté) et 3semaine en Sourcepawn.</strong></p><p><strong>SI j'ai mit Shell de coté ces parce que je trouve que les Sourcepawn est moin compliquer et plus évident à comprendre. </strong></p><p><strong>Comme on dit, tout language de programmation à ces qualité et ces défault. ( Je tiens sa d'un père programmeur).</strong></p><p> </p><p><strong>Assez parler de moi et place au PARTAGE !!</strong></p><p> </p><p><span style="font-size:18px;"><em><strong><span style="color:#FF0000;">BONUS VIP</span></strong></em></span> :</p><p><span style="color:#0000ff;"><strong>Mon premier script est un script pour VIP.</strong></span></p><p><span style="color:#0000FF;"><strong>Il permet de donner des avantages au respawn.</strong></span></p><p><span style="color:#0000FF;"><strong>Pour avoir accès au aventage il faut le </strong></span><span style="color:#ff0000;"><strong>flag O</strong></span></p><p><strong><span style="color:#0000ff;">Voici les avantages : </span></strong></p><p><strong><span style="color:#008000;">- Donne de la vie</span></strong></p><p><strong><span style="color:#008000;">- Donne de l'armure</span></strong></p><p><strong><span style="color:#008000;">- Donne un Usp</span></strong></p><p><strong><span style="color:#008000;">- Donne une HE</span></strong></p><p><strong><span style="color:#008000;">- Donne une smoke</span></strong></p><p><strong><span style="color:#008000;">- Donne une flash.</span></strong></p><p><strong><span style="color:#0000ff;">Tout est activable via les Cvars qui ce crée.</span></strong></p><p><strong><span style="color:#0000FF;">Pour la vie et l'armure, vous pouvez choisir les valeurs via les Cvars.</span></strong></p><p> </p><p><span style="font-size:18px;"><em><strong><span style="color:#FF0000;">Menu Bhop Vip</span></strong></em></span> :</p><p><span style="color:#0000ff;"><strong>Mon deuxième script est un script pour VIP.</strong></span></p><p><span style="color:#0000ff;"><strong>Il ouvre un menu qui modifier la gravité des VIP --&gt; </strong></span><span style="color:#ff0000;"><strong>!bhopvip</strong></span></p><p><span style="color:#0000FF;"><strong>Pour avoir accès au menu il faut le </strong></span><span style="color:#ff0000;"><strong>flag O</strong></span></p><p><strong><span style="color:#008000;">- Petite Gravité</span></strong></p><p><strong><span style="color:#008000;">- Moyenne </span></strong><strong><span style="color:#008000;">Gravité</span></strong></p><p><strong><span style="color:#008000;">- Normal </span></strong><strong><span style="color:#008000;">Gravité</span></strong></p><p><strong><span style="color:#008000;">- Grande </span></strong><strong><span style="color:#008000;">Gravité</span></strong></p><p> </p><p><span style="font-size:18px;"><em><strong><span style="color:#FF0000;">Info Bombe</span></strong></em></span> :</p><p><span style="color:#0000ff;"><strong>Mon troisième script est un Eventscript.</strong></span></p><p><span style="color:#0000FF;"><strong>Il permet de dire dans le chat les évènements de la bombe.</strong></span></p><p><span style="color:#0000FF;"><strong>Quand elle est posé, quand elle est jeter,...</strong></span></p><p> </p><p><span style="font-size:18px;"><em><strong><span style="color:#FF0000;">Info &amp; Dommage</span></strong></em></span> :</p><p><span style="color:#0000ff;"><strong>Mon quatrième script est un Eventscript.</strong></span></p><p><span style="color:#0000FF;"><strong>Il permet de dire dans le chat ou vous êtes touchez.</strong></span></p><p><span style="color:#0000FF;"><strong>Il le dit à la personne.</strong></span></p><p><span style="color:#0000FF;"><strong>Quand vous êtes morts, il dit pas qui vous avez été tuer et avec quel arme.</strong></span></p><p><span style="color:#0000FF;"><strong>Il inclus aussi un ShowDommage.</strong></span></p><p><strong><span style="color:#0000ff;">Quand vous êtes touchez, il joue un petit son.</span></strong></p><p> </p><p><span style="font-size:18px;"><em><strong><span style="color:#FF0000;">Desarm &amp; Scout</span></strong></em></span> :</p><p><span style="color:#0000ff;"><strong>Mon cinquième plugins est un petit plugin partique pour les serveurs Bhop.</strong></span></p><p><span style="color:#0000FF;"><strong>Une fois que le joueur respawn il est désarmé.</strong></span></p><p><span style="color:#0000FF;"><strong>Ce n'est pas tout, une fois désarmé, un cut et un scout lui est donner.</strong></span></p><p> </p><p><strong>Si je réussis à coder en Sourcepawn ces grâce au personnes qui m'aide.</strong></p><p><strong>Golden, Inex, Ghost, Alex,...</strong></p><p><strong>Je remercie ces personnes pour passez du temps à m'expliquer et à m'aider.</strong></p><p> </p><p><strong>Mes plugins ne sont pas à la hauteur des codeurs que vous possédé.</strong></p><p><strong>Mais je suis fier de ce que je fais et ces pour ça que je les partages ici et sur le forum Verygames.</strong></p><p> </p><p><span style="color:#0000ff;"><strong>Si la plupart de mes plugins sont sur un Flag, ces parce que je suis leader d'une team et que j'ai besoins de plugin.</strong></span></p><p><span style="color:#0000ff;"><strong>Quand je ne trouve pas, je crée et je partage.</strong></span></p><p> </p><p><strong><span style="color:#000000;">Kr</span></strong><strong><span style="color:#ffff00;">i</span></strong><strong><span style="color:#ff0000;">ax</span></strong><strong>.</strong></p><p> </p><p><strong>Ah en fait, je ne savais pas ou faire mon partage donc je le met dans réalisation ^^"</strong></p><p><a href="https://forum.supreme-elite.fr/applications/core/interface/file/attachment.php?id=1253" data-fileid="1253" data-fileext="zip" rel="">BonusVip.zip</a></p><p><a href="https://forum.supreme-elite.fr/applications/core/interface/file/attachment.php?id=1254" data-fileid="1254" data-fileext="zip" rel="">MenuBhopVip.zip</a></p><p><a href="https://forum.supreme-elite.fr/applications/core/interface/file/attachment.php?id=1255" data-fileid="1255" data-fileext="zip" rel="">InfoBombe.zip</a></p><p><a href="https://forum.supreme-elite.fr/applications/core/interface/file/attachment.php?id=1259" data-fileid="1259" data-fileext="zip" rel="">InfoAndDommage.zip</a></p><p><a href="https://forum.supreme-elite.fr/applications/core/interface/file/attachment.php?id=1260" data-fileid="1260" data-fileext="zip" rel="">DesarmScout.zip</a></p>]]></description><guid isPermaLink="false">9475</guid><pubDate>Mon, 14 May 2012 16:08:48 +0000</pubDate></item><item><title>[R&#xC9;GL&#xC9;] Anti camp (sp&#xE9;cial aim texture)</title><link>https://forum.supreme-elite.fr/topic/3105-r%C3%A3%E2%80%B0gl%C3%A3%E2%80%B0-anti-camp-sp%C3%A3%C2%A9cial-aim-texture/</link><description><![CDATA[<p><span style="font-family:'Comic Sans MS';"> :whistling: Super crapule est de retour</span></p><p><span style="font-family:'Comic Sans MS';"> </span></p><p><span style="font-family:'Comic Sans MS';">Bon voilà j'ai un systeme anti-camp un peut plus déveloper que les autres proposé :</span></p><p><span style="font-family:'Comic Sans MS';"> </span></p><p><a href="http://forums.alliedmods.net/showthread.php?p=980904" rel="external nofollow"><span style="font-family:'Comic Sans MS';">http://forums.alliedmods.net/showthread.php?p=980904</span></a></p><p><span style="font-family:'Comic Sans MS';"> </span></p><p><span style="font-family:'Comic Sans MS';">(Pas de commentaire sur le désaprouvé Raijojp  :sweat: )</span></p><p><span style="font-family:'Comic Sans MS';"> </span></p><p><span style="font-family:'Comic Sans MS';">Mais voilà sur le dust2 personne s'en plein, mais l'aim il trouve que c'est pas assez sévère comme plugin. Le système de kick m'intéresse mais c'est un peut direct aussi j'aurai voulu savoir si il y aurai moyen que au bout d'un certains temps le joueurs enfaite est enfoncé dans le sol j'ai vu qu'il y avait une commande grâce a ce plugin </span><a href="https://forums.alliedmods.net/showthread.php?t=57448" rel="external nofollow"><span style="font-family:'Comic Sans MS';">https://forums.alliedmods.net/showthread.php?t=57448</span></a><span style="font-family:'Comic Sans MS';"> .</span></p><p><span style="font-family:'Comic Sans MS';"> </span></p><p><span style="font-family:'Comic Sans MS';">Donc en gros pour résumer :</span></p><p><span style="font-family:'Comic Sans MS';"> </span></p><p><span style="font-family:'Comic Sans MS';">- Enfonce dans le sol avec un temps a definir (trouve un truc pour qu'il s'en sorte aussi genre sauter 2 fois)</span></p><p><span style="font-family:'Comic Sans MS';">- Prévention par message au bout de la 4 eme fois multilangue fr = en</span></p><p><span style="font-family:'Comic Sans MS';">-  5 fois fois kick avec le message vous camper trop.</span></p><p><span style="font-family:'Comic Sans MS';"> </span></p><p><span style="font-family:'Comic Sans MS';">Enfin je ne sais pas du tout si c'est possible mais je propose  </span><img alt=":wacko:" src="https://forum.supreme-elite.fr/uploads/emoticons/default_wacko.png" loading="lazy"><span style="font-family:'Comic Sans MS';"> </span></p><p><span style="font-family:'Comic Sans MS';"> </span></p><p><span style="font-family:'Comic Sans MS';">Merci d'avance  :thumbsup: </span></p>]]></description><guid isPermaLink="false">3105</guid><pubDate>Tue, 22 Jun 2010 14:49:09 +0000</pubDate></item><item><title>[R&#xC9;GL&#xC9;] Nombres de survivants</title><link>https://forum.supreme-elite.fr/topic/3046-r%C3%A3%E2%80%B0gl%C3%A3%E2%80%B0-nombres-de-survivants/</link><description><![CDATA[<p>Bonjour à tous <img alt=":drinks:" src="https://forum.supreme-elite.fr/uploads/emoticons/default_drinks.gif" loading="lazy">,</p><p> </p><p>Je viens vous re-demander de l'aide pour un plugin encore une fois.</p><p>Si cela est possible, j'aimerai bien avoir l'équivalent de ce plugin: <a href="http://addons.eventscripts.com/addons/view/Nombre_survivants" rel="external nofollow">http://addons.eventscripts.com/addons/view/Nombre_survivants</a> en Sourcemod :whistling: </p><p> </p><p>Merci à vous les amis :thumbsup:</p>]]></description><guid isPermaLink="false">3046</guid><pubDate>Tue, 15 Jun 2010 16:45:56 +0000</pubDate></item><item><title>[R&#xC9;GL&#xC2;&#x8D;&#xC9;] Restriction awp/joueur/round + Restriction flash</title><link>https://forum.supreme-elite.fr/topic/4179-r%C3%A3%E2%80%B0gl%C3%A2%C2%8D%C3%A3%E2%80%B0-restriction-awpjoueurround-restriction-flash/</link><description><![CDATA[<p>Bonjour tout le monde <img alt=":)" src="https://forum.supreme-elite.fr/uploads/emoticons/default_smile.png" loading="lazy"></p><p> </p><p>Alors voilà, je souhaiterai en fait un plugin qui permetterai de restreindre l'utilisation de l'awp.</p><p>Exemple un joueur qui prend l'awp, puisse l'utiliser 2round , et ne puisse plus le prendre pendant 2 round... </p><p>Je sais qu'il existe il me semble sous mani admin plugin, mais sous sourcemod je n'ai rien trouvé.</p><p> </p><p>Ah oui aussi concernant la restriction d'une flash par joueur que Raijojp m'avait proposé sur le forum des aigles hurlants, si ca tiens toujours je suis ok <img alt=":)" src="https://forum.supreme-elite.fr/uploads/emoticons/default_smile.png" loading="lazy"></p><p> </p><p>Merci d'avance si cela se fait, sinon je comprendrai que vous avez pas mal de taff en ce moment <img alt=";)" src="https://forum.supreme-elite.fr/uploads/emoticons/default_wink.png" loading="lazy"></p><p> </p><p>++</p>]]></description><guid isPermaLink="false">4179</guid><pubDate>Sun, 21 Nov 2010 19:42:43 +0000</pubDate></item><item><title>Skin SE</title><link>https://forum.supreme-elite.fr/topic/6564-skin-se/</link><description><![CDATA[<p>Bonjour,</p><p> </p><p>Je mets ici mon mega trop bon plugin, mais encore trop rigide pour être partagé!</p><p>Donc en gros, il donne:</p><p> </p><p>aux T non vip et T vip un skin choisi aléatoirement.</p><p>aux CT le skin de base</p><p>aux CT vip un skin aléatoire avec possibilité de le changer avec la commande !models</p><p> </p><p>Si d'autres gens veulent l'utiliser, la partie qui gère les CT (le !models plus particulièrement) est écrit en dur.</p><p>On peut prendre 16models par équipe, le plugin gère le dl</p><p> </p><p>le plugin a 4fichiers:</p><p></p><p></p><div style="margin-left:25px;">	cstrike/addons/sourcemod/plugins/sm_skinapp.smx</div><p></p><div style="margin-left:25px;">	cstrike/addons/sourcemod/configs/models_ct.ini</div><p></p><div style="margin-left:25px;">	cstrike/addons/sourcemod/configs/models_t.ini</div><p></p><div style="margin-left:25px;">	cstrike/addons/sourcemod/configs/models_tvip.ini</div><p></p><p> </p><p>au fur et à mesure des version je ferais réduire ce nombre à 2.</p><p> </p><p> </p><p>Le plugin n'a pas encore été testé pour les vip.</p><p> </p><p><a href="https://forum.supreme-elite.fr/applications/core/interface/file/attachment.php?id=932" data-fileid="932" data-fileext="smx" rel="">skinse.smx</a></p>]]></description><guid isPermaLink="false">6564</guid><pubDate>Tue, 12 Jul 2011 10:17:44 +0000</pubDate></item><item><title>Plugin JailBreak</title><link>https://forum.supreme-elite.fr/topic/6337-plugin-jailbreak/</link><description><![CDATA[<p>Bonjour,</p><p> </p><p>voici mon premier plugin, mais comme moi aussi je veux me la peter je vous le mets à disposition!</p><p>Son fonctionnement est simple, il cache le nom des Terros qui tuent les CT sous certaines conditions.</p><p> </p><p>Le pseudo réapparait si un T dépasse un score de tué (par défaut 2 modifiable dans le .cfg), les points sont distribués de la manière suivante:</p><p> </p><p>Meurtre par couteau: 1pts</p><p>Meurtre par arme/grenade: 2pts</p><p> </p><p>CAD: les 2premiers morts par couteau ou la première mort par arme à feu est dissimulée.</p><p> </p><p>Plugin: <a href="https://forum.supreme-elite.fr/applications/core/interface/file/attachment.php?id=881" data-fileid="881" data-fileext="smx" rel="">HidePrisoner.smx</a></p><p>Source: <a href="https://forum.supreme-elite.fr/applications/core/interface/file/attachment.php?id=882" data-fileid="882" data-fileext="sp" rel="">HidePrisoner.sp</a></p><p> </p><p>Have fun</p><p>Wylloh</p>]]></description><guid isPermaLink="false">6337</guid><pubDate>Sun, 19 Jun 2011 22:37:31 +0000</pubDate></item><item><title>Plugin de grenade paralysante - v1.0</title><link>https://forum.supreme-elite.fr/topic/6075-plugin-de-grenade-paralysante-v10/</link><description><![CDATA[<p>Voici un plugin qui permet d'activer un effet paralysant aux grenades (he, flash ou smoke au choix). La grenade paralysera l'ensemble des joueurs ennemis dans un certain rayon. Le joueur paralysé subit une secousse et divers rayons lumineux apparaissent autour de lui.</p><p> </p><p> </p><p><span style="color:#483D8B;"><span style="font-size:12px;"><strong>Cvars</strong></span></span></p><p> </p><p>Un fichier de cvar est automatiquement crée au chemin : cstrike/cfg/sourcemod/plugin_raisn.txt.</p><p> </p><p> "¢ <strong>stunnade_flag</strong> : 0 par défaut - Flag nécessaire pour avoir accès a la grenade paralysante (0 = tout le monde)</p><p> "¢ <strong>stunnade_nade</strong> : hegrenade par défaut - Type de grenade qui servira a paralyser</p><p> "¢ <strong>stunnade_CT</strong> : 1 par défaut - Empêcher (0)/Autoriser (1) les CTs à avoir les grenades paralysantes</p><p> "¢ <strong>stunnade_T</strong> : 0 par défaut - Empêcher (0)/Autoriser (1) les Ts à avoir les grenades paralysantes</p><p> "¢ <strong>stunnade_radius</strong> : 250 par défaut - Rayon d'effet de la grenade</p><p> "¢ <strong>stunnade_delay</strong> : 8.0 par défaut - Durée de la paralysie</p><p> "¢ <strong>stunnade_amplitude</strong> : 50.0 par défaut - Amplitude de la secousse</p><p> "¢ <strong>stunnade_notify</strong> : 1 par défaut -  Bloquer (0)/Autoriser (1) les notifications</p><p> "¢ <strong>stunnade_shake</strong> : 1 par défaut - Bloquer (0)/Autoriser (1) la secousse</p><p> "¢ <strong>stunnade_ve</strong> : 1 par défaut -  Bloquer (0)/Autoriser (1) les effets visuels</p><p> "¢ <strong>stunnade_sound</strong> : 1 par défaut -  Bloquer (0)/Autoriser (1) l'effet sonore</p><p> </p><p> </p><p><span style="color:#483D8B;"><span style="font-size:12px;"><strong>Bugs</strong></span></span></p><p> </p><p>Aucun répertorié</p><p> </p><p> </p><p><span style="color:#483D8B;"><span style="font-size:12px;"><strong>Changelog</strong></span></span></p><p> </p><p><strong>1.0</strong></p><p>First release</p><p> </p><p> </p><p><span style="color:#FF0000;"><strong>Un merci a mon Petit Renard pour son aide (son code même) concernant l'effet visuel et sonore des rayons</strong></span></p><p> </p><p> </p><p> </p><p>Plugin : <a href="https://forum.supreme-elite.fr/applications/core/interface/file/attachment.php?id=801" data-fileid="801" data-fileext="smx" rel="">stunnade.smx</a></p><p>Script : <a href="https://forum.supreme-elite.fr/applications/core/interface/file/attachment.php?id=800" data-fileid="800" data-fileext="sp" rel="">stunnade.sp</a></p><p> </p><p>Enjoy !</p><p> </p><p>PS : n'hésitez pas a proposer des suggestions <img alt=";)" src="https://forum.supreme-elite.fr/uploads/emoticons/default_wink.png" loading="lazy">.</p>]]></description><guid isPermaLink="false">6075</guid><pubDate>Thu, 02 Jun 2011 06:45:35 +0000</pubDate></item><item><title>Plugin de restriction d'HE pour un laps de temps - v1.0</title><link>https://forum.supreme-elite.fr/topic/5695-plugin-de-restriction-dhe-pour-un-laps-de-temps-v10/</link><description><![CDATA[<p>Voici un plugin qui permet de restreindre l'utilisation d'he pendant un laps de temps a partir du début du round (<a href="https://forum.supreme-elite.fr/topic/5597-no-he-spawn-v2/" rel="">demande</a> de nikedu45 &amp; D4rk)</p><p> </p><p> </p><p><span style="color:#483D8B;"><span style="font-size:12px;"><strong>Cvars</strong></span></span></p><p> </p><p>Un fichier de cvar est automatiquement crée au chemin : cstrike/cfg/sourcemod/plugin_nohespawn.txt.</p><p> </p><p> "¢ <strong>nohe_delay</strong> : 5 par défaut - Délai de blocage des HE a partir du début du round (en secondes)</p><p> "¢ <strong>nohe_rsnot</strong> : 1 par défaut - 0/1 Active ou désactive la notification en début de round</p><p> "¢ <strong>nohe_usenot</strong> : 1 par défaut - 0/1 Active ou désactive la notification lors de l'utilisation d'he</p><p> </p><p>Les notification lors de l'utilisation d'he sont limitées (1 par seconde si le joueur spam le lancement d'he)</p><p> </p><p> </p><p><span style="color:#483D8B;"><span style="font-size:12px;"><strong>Bugs</strong></span></span></p><p> </p><p>Aucun repertorié</p><p> </p><p> </p><p><span style="color:#483D8B;"><span style="font-size:12px;"><strong>Changelog</strong></span></span></p><p> </p><p><strong>1.1</strong></p><p>Correction d'un message d'erreur en boucle</p><p>Petit modif sur une des notification (seconde sans s pour 1)</p><p> </p><p><strong>1.0</strong></p><p>First release</p><p> </p><p> </p><p>Plugin : <a href="https://forum.supreme-elite.fr/applications/core/interface/file/attachment.php?id=755" data-fileid="755" data-fileext="smx" rel="">block_hespawn.smx</a></p><p>Script : <a href="https://forum.supreme-elite.fr/applications/core/interface/file/attachment.php?id=754" data-fileid="754" data-fileext="sp" rel="">block_hespawn.sp</a></p><p> </p><p>Enjoy !</p><p> </p><p>PS : n'hésitez pas a proposer des suggestions <img alt=";)" src="https://forum.supreme-elite.fr/uploads/emoticons/default_wink.png" loading="lazy">.</p>]]></description><guid isPermaLink="false">5695</guid><pubDate>Mon, 25 Apr 2011 00:44:16 +0000</pubDate></item><item><title>Addons !ztele</title><link>https://forum.supreme-elite.fr/topic/4968-addons-ztele/</link><description><![CDATA[<p>Yop a Raijojp sa fait longtemps ^^</p><p> </p><p>Bon voilà mes membres veulent un zm, mais certaines options du mod pour moi sont pas terrible comme le !ztele avec les 3 seconde a attendre et ce n'est pas assez rapide le temps de tapez tout dans le tchat, donc je viens vers toi pour te demander la reconversion d'un plugin Eventscript pour sm. </p><p> </p><p><a href="http://addons.eventscripts.com/addons/view/zbbg" rel="external nofollow">http://addons.eventscripts.com/addons/view/zbbg</a></p><p> </p><p>Je veut laissez le !ztele habituel du plugin pour certains qui sont habitué à l'utiliser.</p><p> </p><p>Enfaîte j'aimerai juste un plugin qui autorise que les Tero à se Tp en écrivant 0 dans le tchat (Et ouai l'habitude du zm fog), si possible juste mettre un petit truc anti flood pour les TP. Et que les CT peuvent l'utiliser 5 seconde a partir du début du round, avec une petit phrase pour quand on c'est TP et quand c'est interdit.</p><p> </p><p>Ps: Pensez vous pouvoir partager votre plugin des armes? psycko m'a dit de demander directement ici.</p><p> </p><p>Merci d'avance  :thumbsup:</p>]]></description><guid isPermaLink="false">4968</guid><pubDate>Thu, 03 Mar 2011 17:23:12 +0000</pubDate></item></channel></rss>
