Salut,
Dans mes débuts en SourcePawn, j'arrêtais pas de galéré avec les entités, se rappeller celle qui donne de la vitesse, de l'armure, de l'argent, ...
Je cache pas que c'est encore le cas, connaitre le nom de chaque entité par coeur c'est pas pour moi.
Donc j'ai créé une petite include qui aideras surement quelques débutants, ou même ceux qui métrise le SourcePawn.
Personnellement je gagne un minimum de temps avec cette include, à la place de créé les boucles, j'utilise se que mon include fait par exemple.
L'include permet de :
Les fonctions :
Je vous l'accorde, le nom des fonctions ne sont pas magnifiques.
Leur utilité son quand même utile, je reprend par exemple la première fonction qui est utile pour un plugin de dernière volonté ou dernier ct.
Ne vous demander pas pourquoi ces fonctions et pas d'autre, c'est simplement car je m'en sert énormément c'est temps-ci, et à côté j'ai aussi fait dans la logique.
> Je vais pas faire une fonction qui vas reprendre de la vitesse ...
Voici le plugin pour savoir comment utilisé les fonctions.
Si vous avez des idées pour ajouté quelque truc hésitez pas.
Lien du téléchargement : include_kriax.zip
KriKri.
Dans mes débuts en SourcePawn, j'arrêtais pas de galéré avec les entités, se rappeller celle qui donne de la vitesse, de l'armure, de l'argent, ...
Je cache pas que c'est encore le cas, connaitre le nom de chaque entité par coeur c'est pas pour moi.
Donc j'ai créé une petite include qui aideras surement quelques débutants, ou même ceux qui métrise le SourcePawn.
Personnellement je gagne un minimum de temps avec cette include, à la place de créé les boucles, j'utilise se que mon include fait par exemple.
L'include permet de :
Code:
- Reprendre le nombre de personne en vie dans une team
- Reprendre le nombre de personne morte dans une team
- Reprendre le nombre de personne total dans une team
- Reprendre le nombre de joueur sur le serveur qui ne sont pas en spectateur
- Reprendre le nombre de joueur sur le serveur
- Donner de l'armure
- Donner de l'argent
- Reprendre l'argent
- Donner de la vitesse
- Donner une taille (Merci @lex92)
- Désarmer (Merci Delachambre)
Code PHP:
stock Team_GetPlayerAlive(team)
stock Team_GetPlayerDeath(team)
stock Team_GetPlayer(team)
stock All_GetPlayer()
stock All_GetPlayerWithSpect()
stock All_GetPlayerAlive()
stock All_GetPlayerDeath()
stock SetClientArmor(client, amount)
stock GetClientCash(client)
stock SetClientCash(client, amount)
stock SetClientSpeed(client, Float:amount)
stock SetClientSize(client, Float:value)
stock Client_Disarm(client)
Leur utilité son quand même utile, je reprend par exemple la première fonction qui est utile pour un plugin de dernière volonté ou dernier ct.
Ne vous demander pas pourquoi ces fonctions et pas d'autre, c'est simplement car je m'en sert énormément c'est temps-ci, et à côté j'ai aussi fait dans la logique.
> Je vais pas faire une fonction qui vas reprendre de la vitesse ...
Code PHP:
stock Team_GetPlayerAlive(team)
{
new count;
for(new i=1; i <= GetMaxClients(); i++)
{
if (IsClientInGame(i) && IsPlayerAlive(i) && GetClientTeam(i) == team)
{
count++;
}
}
return count;
}
Code PHP:
stock Team_GetPlayerDeath(team)
{
new count;
for(new i=1; i <= GetMaxClients(); i++)
{
if (IsClientInGame(i) && !IsPlayerAlive(i) && GetClientTeam(i) == team)
{
count++;
}
}
return count;
}
Code PHP:
stock Team_GetPlayer(team)
{
new count;
for(new i=1; i <= GetMaxClients(); i++)
{
if (IsClientInGame(i) && GetClientTeam(i) == team)
{
count++;
}
}
return count;
}
Code PHP:
stock All_GetPlayer()
{
new count;
for(new i=1; i <= GetMaxClients(); i++)
{
if (IsClientInGame(i) && GetClientTeam(i) > 1)
{
count++;
}
}
return count;
}
Code PHP:
stock All_GetPlayerWithSpect()
{
new count;
for(new i=1; i <= GetMaxClients(); i++)
{
if (IsClientInGame(i) && GetClientTeam(i) > 1)
{
count++;
}
}
return count;
}
Code PHP:
stock All_GetPlayerAlive()
{
new count;
for(new i=1; i <= GetMaxClients(); i++)
{
if (IsClientInGame(i) && GetClientTeam(i) > 1 && IsPlayerAlive(i))
{
count++;
}
}
return count;
}
Code PHP:
stock All_GetPlayerDeath()
{
new count;
for(new i=1; i <= GetMaxClients(); i++)
{
if (IsClientInGame(i) && GetClientTeam(i) > 1 && !IsPlayerAlive(i))
{
count++;
}
}
return count;
}
Code PHP:
stock SetClientArmor(client, amount)
{
SetEntProp(client, Prop_Send, "m_ArmorValue", amount)
}
Code PHP:
stock SetClientCash(client, amount)
{
SetEntProp(client, Prop_Send, "m_iAccount", amount);
}
Code PHP:
stock GetClientCash(client)
{
new amount = GetEntProp(client, Prop_Send, "m_ArmorValue");
return amount;
}
Code PHP:
stock SetClientSpeed(client, Float:amount)
{
SetEntPropFloat(client, Prop_Data, "m_flLaggedMovementValue", amount);
}
Code PHP:
stock SetClientSize(client, Float:value)
{
SetEntPropFloat(client, Prop_Send, "m_flModelScale", value);
}
Code PHP:
stock Client_Disarm(client)
{
new index;
for (new i = 0; i < 6; i++)
{
if (i < 6 && (index = GetPlayerWeaponSlot(client, i)) != -1)
{
RemovePlayerItem(client, index);
}
}
}
Code PHP:
#include <sourcemod>
#include <kriax>
public OnPluginStart()
{
HookEvent("player_spawn", Event_PlayerSpawn);
RegConsoleCmd("sm_player1", CMD_Player1);
RegConsoleCmd("sm_player2", CMD_Player2);
RegConsoleCmd("sm_player3", CMD_Player3);
RegConsoleCmd("sm_player4", CMD_Player4);
RegConsoleCmd("sm_player5", CMD_Player5);
RegConsoleCmd("sm_player6", CMD_Player6);
RegConsoleCmd("sm_player7", CMD_Player7);
RegConsoleCmd("sm_armor", CMD_Armor);
RegConsoleCmd("sm_cash1", CMD_Cash1);
RegConsoleCmd("sm_cash2", CMD_Cash2);
RegConsoleCmd("sm_cash3", CMD_Cash3);
RegConsoleCmd("sm_speed", CMD_Speed);
RegConsoleCmd("sm_size", CMD_Size);
}
/* Désarmement du client lorsqu'il respawn */
public Action:Event_PlayerSpawn(Handle:event, const String:name[], bool:dontBroadcast)
{
new client = GetClientOfUserId(GetEventInt(event, "userid"));
Client_Disarm(client);
}
/* Nombre de personnes vivante dans une team */
public Action:CMD_Player1(client, args)
{
new iTAlive = Team_GetPlayerAlive(2);
new iCTAlive = Team_GetPlayerAlive(3);
PrintToChat(client, "Il y à %i T en vie et %i CT en vie", iTAlive, iCTAlive);
}
/* Nombre de personnes mortes dans une team */
public Action:CMD_Player2(client, args)
{
new iTDeath = Team_GetPlayerDeath(2);
new iCTDeath = Team_GetPlayerDeath(3);
PrintToChat(client, "Il y à %i T mort et %i CT mort", iTDeath, iCTDeath);
}
/* Nombre de personne total dans une taem */
public Action:CMD_Player3(client, args)
{
new iTTotal = Team_GetPlayer(2);
new iCTTotal = Team_GetPlayer(3);
PrintToChat(client, "Il y à %i T au total et %i CT au total", iTTotal, iCTTotal);
}
/* Reprend le nombre de personne total qui ne sont pas en spectateur */
public Action:CMD_Player4(client, args)
{
new iPlayer = All_GetPlayer();
PrintToChat(client, "Il y à %i joueurs qui ne sont pas en spectateur", iPlayer);
}
/* Reprend le nombre de personne total avec les spectateurs */
public Action:CMD_Player5(client, args)
{
new iPlayer = All_GetPlayerWithSpect();
PrintToChat(client, "Il y à %i joueurs qui sont sur le serveur", iPlayer);
}
/* Reprend le nombre de personne total en vie */
public Action:CMD_Player6(client, args)
{
new iPlayerAlive = All_GetPlayerAlive();
PrintToChat(client, "Il y à %i joueurs en vie", iPlayerAlive);
}
/* Reprend le nombre de personne total mortes*/
public Action:CMD_Player7(client, args)
{
new iPlayerDeath = All_GetPlayerDeath();
PrintToChat(client, "Il y à %i joueurs morts", iPlayerDeath);
}
/* Donne de l'armure */
public Action:CMD_Armor(client, args)
{
SetClientArmor(client, 100);
}
/* Reprend l'argent */
public Action:CMD_Cash1(client, args)
{
new iCash = GetClientCash(client);
PrintToChat(client, "Vous avez %i$", iCash);
}
/* Donne de l'argent */
public Action:CMD_Cash2(client, args)
{
SetClientCash(client, 16000);
}
/* Je combine les deux */
public Action:CMD_Cash3(client, args)
{
new iCash = GetClientCash(client);
SetClientCash(client, iCash + 5000);
}
/* Je donne de la vitesse */
public Action:CMD_Speed(client, args)
{
SetClientSpeed(client, 1.2);
}
/* Je change la taille */
public Action:CMD_Size(client, args)
{
SetClientSize(client, 1.2);
}
Lien du téléchargement : include_kriax.zip
KriKri.