lots of changes
This commit is contained in:
@@ -0,0 +1,90 @@
|
||||
#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
|
||||
Reference in New Issue
Block a user