91 lines
2.1 KiB
SourcePawn
91 lines
2.1 KiB
SourcePawn
#if defined _leader_included_
|
|
#endinput
|
|
#endif
|
|
#define _leader_included_
|
|
|
|
/**
|
|
* Returns the current PRIMARY leader.
|
|
*
|
|
* @return Client index of the primary leader (-1 = no leader)
|
|
*/
|
|
native int Leader_CurrentLeader();
|
|
|
|
/**
|
|
* Makes a client the PRIMARY leader. If another primary exists, they are
|
|
* demoted to sub-leader. If the client is already a sub-leader, they are
|
|
* promoted.
|
|
*
|
|
* @param client Client index to be set as primary leader
|
|
*/
|
|
native void Leader_SetLeader(int client);
|
|
|
|
/**
|
|
* Checks if a client is currently a leader (primary or sub-leader).
|
|
*
|
|
* @param client Client index to check
|
|
* @return True if the client is a leader
|
|
*/
|
|
native bool Leader_Is(int client);
|
|
|
|
/**
|
|
* Returns the number of current leaders (primary + sub-leaders).
|
|
*
|
|
* @return Leader count
|
|
*/
|
|
native int Leader_GetLeaderCount();
|
|
|
|
/**
|
|
* Returns the leader at the given roster index.
|
|
*
|
|
* @param index Roster index (0 = primary)
|
|
* @return Client index, or -1 if no leader at that index
|
|
*/
|
|
native int Leader_GetLeader(int index);
|
|
|
|
/**
|
|
* Called after a client becomes a leader.
|
|
*
|
|
* @param client The new leader
|
|
* @param primary True if they became the primary leader
|
|
*/
|
|
forward void Leader_OnLeaderAdded(int client, bool primary);
|
|
|
|
/**
|
|
* Called after a client stops being a leader.
|
|
*
|
|
* @param client The removed leader
|
|
*/
|
|
forward void Leader_OnLeaderRemoved(int client);
|
|
|
|
/**
|
|
* Called when the primary leader changes.
|
|
*
|
|
* @param oldLeader Previous primary (-1 = none)
|
|
* @param newLeader New primary (-1 = none)
|
|
*/
|
|
forward void Leader_OnPrimaryChanged(int oldLeader, int newLeader);
|
|
|
|
#if !defined LEADER3_CORE
|
|
public SharedPlugin __pl_leader =
|
|
{
|
|
name = "leader",
|
|
file = "Leader3.smx",
|
|
#if defined REQUIRE_PLUGIN
|
|
required = 1,
|
|
#else
|
|
required = 0,
|
|
#endif
|
|
};
|
|
|
|
#if !defined REQUIRE_PLUGIN
|
|
public void __pl_leader_SetNTVOptional()
|
|
{
|
|
MarkNativeAsOptional("Leader_CurrentLeader");
|
|
MarkNativeAsOptional("Leader_SetLeader");
|
|
MarkNativeAsOptional("Leader_Is");
|
|
MarkNativeAsOptional("Leader_GetLeaderCount");
|
|
MarkNativeAsOptional("Leader_GetLeader");
|
|
}
|
|
#endif
|
|
#endif // LEADER3_CORE
|