Jump to content
  • Chmurka
  • Boróweczka
  • Jabłuszko
  • Limonka
  • Czekoladka
  • Węgielek
encode

[CS:GO] Lista adminów online

Recommended Posts

Plugin az sie prosi o:

  • RegConsoleCmd("sm_admins", XXXX) zamiast RegConsoleCmd("say", XXXX);
  • Podzielenie go na mniejsze funkcje

Bede marudzil, ale nie najlepiej napisany plugin ?

 

p.s.

To nie jest atak, tylko informacja co mozesz poprawic ?

Edited by plx211

Share this post


Link to post
Share on other sites

Dawno nie pisalem w sourcepawn ?

Nie testowane:

#include <sourcemod>

ConVar cvarPluginEnable;
ConVar cvarShowMode;

enum ShowModeType {
  ShowMode_Chat = 1,
  ShowMode_Menu,
  ShowMode_Count
};

public void OnPluginStart() {
  RegConsoleCmd("sm_admins", onCmdAdmins);

  cvarPluginEnable = CreateConVar("adminlist_on", "1", "turns on and off admin list, 1=on ,0=off");
  cvarShowMode = CreateConVar("adminlist_mode", "1", "Output in: 1 - chat, 2 - menu");
}

public Action onCmdAdmins(int client, int args) {
  if (!cvarPluginEnable.BoolValue) {
    return Plugin_Handled;
  }

  int admin[MAXPLAYERS];
  int count = 0;
  
  for (int clientID = 1; clientID <= GetMaxClients(); ++clientID) {
    if (IsClientInGame(clientID) && GetUserAdmin(clientID) != INVALID_ADMIN_ID) {
      admin[count++] = clientID
    }
  } 

  show(client, admin, count);
  return Plugin_Continue;
}

void show(int client, int[] admin, int count) {
  switch (cvarShowMode.IntValue) {
    case ShowMode_Chat:
      showOnChat(client, admin, count);
    case ShowMode_Menu:
      showOnMenu(client, admin, count);
  }
}

void showOnChat(int client, int[] admin, int adminCount) {
  PrintToChat(client, "Lista adminow online:");

  for (int i = 0; i < adminCount; ++i) {
    PrintToChat(client, "%N", admin[i]);
  }
}

void showOnMenu(int client, int[] admin, int adminCount) {
  Menu menu = new Menu(menuHandler);
  menu.SetTitle("Lista adminow online:");

  char buffer[MAX_NAME_LENGTH + 1];
  for (int i = 0; i < adminCount; ++i) {
    Format(buffer, sizeof(buffer), "%N", admin[i]);
    menu.AddItem("", buffer);
  }

  menu.ExitButton = true;
  menu.Display(client, 15);
}

public int menuHandler(Menu menu, MenuAction action, int client, int options) {
  if (action == MenuAction_End) {
    delete menu;
  }
}

 

  • Lubię to! 2

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


  • Recently Browsing   0 members

    No registered users viewing this page.

Nasza historia

Na początku byliśmy małą grupą internetowych znajomych, którzy stwierdzili, że potrzebne jest solidne forum, na którym znajdą się ludzie z dużą wiedzą programistyczną ukierunkowaną na CS:GO. Pomysł powstał na początku 2018 roku, a parę miesięcy później, 19 kwietnia, powstała ta strona internetowa. Jako alternatywna odpowiedź na inne tego typu miejsca, poważnie podeszliśmy do tematu, najpierw tłumacząc angielską dokumentację SourceMod'a na język polski, a potem pisząc rozległe poradniki i wypełniając forum najpotrzebniejszymi rzeczami dla właścicieli serwerów i programistów. Cała nasza Ekipa jest dumna z pracy jaką w to włożyliśmy i cieszymy się że zbierają się wokół nas zarówno ludzie znający tematy sourcepawn'a i konfiguracji, jak i również nowe twarze w tym "biznesie", którym z chęcią niesiemy wiedzę oraz pomoc w rozwiązywaniu problemów.

Największe modyfikacje serwerowe

×
×
  • Create New...