lots of changes

This commit is contained in:
2026-10-22 16:17:56 +01:00
parent e4a75367aa
commit ac3ffd5be2
53 changed files with 7716 additions and 193 deletions
+90
View File
@@ -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