Контакты (заказать плагин/исправить ошибки/другое) Поиск

[ вход ]
[ последние сообщения ]

  • Страница 2 из 3
  • «
  • 1
  • 2
  • 3
  • »
Проблема с меню.
Scarface_slv Дата: Среда, 30.01.2013, 00:08:01 | Сообщение # 16
Сообщений: 737
Репутация: 61 [ +/- ]
option измени на param2
 
Sunday Дата: Среда, 30.01.2013, 00:14:47 | Сообщение # 17
Сообщений: 186
Репутация: 24 [ +/- ]
Код
    if (action == MenuAction_End)
  {
   CloseHandle(menu);
  }

  else if (action == MenuAction_Cancel)
  {
   if (param2 == MenuCancel_ExitBack)
   {
    ConsoleCmd(client, 0);
   }
  }


Попробовал так, тоже не возвращается.

Добавлено (30.01.2013, 00:12:54)
---------------------------------------------

Цитата (Scarface_slv)
option измени на param2

Сейчас попробую!

Добавлено (30.01.2013, 00:14:47)
---------------------------------------------
тоже, менюшка просто исчезает.

 
Scarface_slv Дата: Среда, 30.01.2013, 00:29:52 | Сообщение # 18
Сообщений: 737
Репутация: 61 [ +/- ]
Странно такого быть не должно, кинь весь код я посмотрю

Добавлено (30.01.2013, 00:24:38)
---------------------------------------------
Ой я сонный бред несу попробуй добавить не MenuHandler1 а в меню MenuHandler2

Добавлено (30.01.2013, 00:29:52)
---------------------------------------------
и взгляни на пост 14 http://world-source.ru/forum/102-3078-18207-16-1359492663 я подредактировал

 
Sunday Дата: Среда, 30.01.2013, 00:50:45 | Сообщение # 19
Сообщений: 186
Репутация: 24 [ +/- ]
Цитата (Scarface_slv)
попробуй добавить не MenuHandler1 а в меню MenuHandler2


Спасибо Scarface_slv Вы как всегда оказались правы! С этими меню можно легко запутаться! Все работает прекрасно, сейчас буду уже до ума доводить и делать проверки. Если все пойдет как по маслу, завтра днем Выложу весь предварительный код! Там я думаю сразу какие ни будь косячки и свежие идеи найдутся!

Добавлено (30.01.2013, 00:42:58)
---------------------------------------------
Цитата (Scarface_slv)
и взгляни на пост 14 http://world-source.ru/forum/102-3078-18207-16-1359492663 я подредактировал


Спасибо за корректировки, сейчас добавлю!

Добавлено (30.01.2013, 00:50:45)
---------------------------------------------
Немного подредактировал, когда нажимает "Выход", теперь оверлей тоже сбрасывается.

Код
/* Меняем карту */
public MenuHandler2(Handle:menu, MenuAction:action, client, param2)
{
      if (action == MenuAction_End)
      {
       CloseHandle(menu);
      }

      else if (action == MenuAction_Cancel)
      {
       if (param2 == MenuCancel_ExitBack)
       {
        ConsoleCmd(client, 0);
       }

       CreateTimer(0.1, ResetOverlay, client);
      }

      if (action == MenuAction_Select)
      {
       decl String:info[64];
       GetMenuItem(menu, param2, info, sizeof(info));
       decl String:format[70];
       Format(format, sizeof(format), "%s", info);
       ServerCommand("changelevel %s", format);
      }
}

Гости не могут скачивать файлы


Сообщение отредактировал Sunday - Среда, 30.01.2013, 00:52:54
 
Scarface_slv Дата: Среда, 30.01.2013, 09:58:53 | Сообщение # 20
Сообщений: 737
Репутация: 61 [ +/- ]
Думаю можно убрать format в последних строчках и сделать так
ServerCommand("changelevel %s", info);


Сообщение отредактировал Scarface_slv - Среда, 30.01.2013, 09:59:45
 
Meow_1337 Дата: Среда, 30.01.2013, 11:23:29 | Сообщение # 21
Сообщений: 207
Репутация: 11 [ +/- ]
А это случайно не похожий плагин?

Плагин!
 
Meow_1337 Дата: Среда, 30.01.2013, 11:40:41 | Сообщение # 22
Сообщений: 207
Репутация: 11 [ +/- ]
Ну смысл то один, или я что то не до понял?

Тут как бы типо постера вешаешь на него клик и показывает карту.
А у него вроде через админку, но я его не понял задумку.
Но думаю что у него все получится. :)
 
Scarface_slv Дата: Среда, 30.01.2013, 11:50:10 | Сообщение # 23
Сообщений: 737
Репутация: 61 [ +/- ]
А по моему он меняет спрей игроков на серверный спрей
 
Meow_1337 Дата: Среда, 30.01.2013, 12:32:41 | Сообщение # 24
Сообщений: 207
Репутация: 11 [ +/- ]
Scarface_slv, описание видимо не прочитал.
А по видео подумал что связанно с картами :(

Пойду в дота 2.
 
Sunday Дата: Среда, 30.01.2013, 13:36:12 | Сообщение # 25
Сообщений: 186
Репутация: 24 [ +/- ]
до 11 часов утра сидел, пока мозг сам не отрубился и уснул)) Парни получается очень здорово! Осталось сделать проверку на загрузку и в принципе плагин почти готов, сейчас фрапсом отснял. Scarface_slv сейчас фрапсом отснял видео и заливаю на ютубе что бы показать что у Нас получается!

Возник такой вопрос, как проверить:
Подключившийся игрок админ или нет? В он мап старт нужно условие воткнуть, что если игрок админ, то срабатывает параметр:

public OnPluginStart()
{
AddFolderToDownloadsTable("materials/mapige");
}

/*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*/
/* Downloads Files */
/*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*/
stock AddFolderToDownloadsTable(const String:sDirectory[])
{
decl String:sFile[64], String:sPath[512];
new FileType:iType, Handle:hDir = OpenDirectory(sDirectory);
while(ReadDirEntry(hDir, sFile, sizeof(sFile), iType))
{
if(iType == FileType_File)
{
Format(sPath, sizeof(sPath), "%s/%s", sDirectory, sFile);
AddFileToDownloadsTable(sPath);
}
}
}

Пробовал по всякому и опять ступорнулся на этом:

Код

new DownloadsType = 2;

    CreateConVar("sm_downloads_type", "1", "1 = Загружать изображение только Администраторам. 2 = Загружать Всем.", FCVAR_PLUGIN|FCVAR_SPONLY|FCVAR_REPLICATED|FCVAR_NOTIFY);
    new Handle:hDownloadsType = FindConVar("sm_downloads_type");
    DownloadsType = GetConVarInt(hDownloadsType);
    for (new client = 1; client <= MaxClients; client++)
    {
     if (DownloadsType == 1)
     {
      if (Если: то загружать только администраторам) // вот это "если" ума не приложу как проверить.
      {
       AddFolderToDownloadsTable("materials/mapige");
      }
     }
     if (DownloadsType == 2)
     {
      AddFolderToDownloadsTable("materials/mapige");
     }
    }

Добавлено (30.01.2013, 13:36:12)
---------------------------------------------
Вот видео того что получается, смотрите в хорошем качестве:

http://www.youtube.com/watch?v=HCF4tnQVFto


Сообщение отредактировал Sunday - Среда, 30.01.2013, 14:03:57
 
Meow_1337 Дата: Среда, 30.01.2013, 16:03:44 | Сообщение # 26
Сообщений: 207
Репутация: 11 [ +/- ]
Может так?

Код
if((GetUserAdmin(i) != INVALID_ADMIN_ID)


Не уверен :)

Добавлено (30.01.2013, 16:03:44)
---------------------------------------------
Sunday, Вот тебе на, здорово получилось.

Может тут есть пример в reserved slot?

Гости не могут скачивать файлы


Сообщение отредактировал Meow_1337 - Среда, 30.01.2013, 16:07:00
 
Sunday Дата: Среда, 30.01.2013, 16:47:55 | Сообщение # 27
Сообщений: 186
Репутация: 24 [ +/- ]
Цитата (Meow_1337)
Может так?

Код
if((GetUserAdmin(i) != INVALID_ADMIN_ID)

Не уверен :)

Добавлено (30.01.2013, 16:03:44)
---------------------------------------------
Sunday, Вот тебе на, здорово получилось.

Может тут есть пример в reserved slot?

Прикрепления: Reserved_Slot.txt(2Kb)


Спасибо, общими усилиями! Скоро у Нас будет отличный плагин!

Осталось только этот и еще пару моментов доделать сразу выкладываю!

Ищу людей которые сделают скриншоты карт для Контр Страйк, что бы я их смог перегнать для плагина. Я со своей стороны сейчас делаю для Халфлайф все изображения!
 
Meow_1337 Дата: Среда, 30.01.2013, 17:20:50 | Сообщение # 28
Сообщений: 207
Репутация: 11 [ +/- ]
Sunday, не обязательно делать скрины для CSS, кто захочет сделает потом сам.
 
Scarface_slv Дата: Среда, 30.01.2013, 17:48:16 | Сообщение # 29
Сообщений: 737
Репутация: 61 [ +/- ]
Я представление не имею как проверить в OnMapStart игроков, т.к. все игроки переподключаются при смене карты
 
Sunday Дата: Четверг, 31.01.2013, 00:10:36 | Сообщение # 30
Сообщений: 186
Репутация: 24 [ +/- ]
Удивительно, как только уже не пробовал..

Так подгружает на всех:
Код
public OnPluginStart()
{
                      AddFolderToDownloadsTable("materials/mapige");
}

stock AddFolderToDownloadsTable(const String:sDirectory[])
{
               decl String:sFile[64], String:sPath[512];
               new FileType:iType, Handle:hDir = OpenDirectory(sDirectory);
               while(ReadDirEntry(hDir, sFile, sizeof(sFile), iType))                   
               {
                if(iType == FileType_File)
                {
                 Format(sPath, sizeof(sPath), "%s/%s", sDirectory, sFile);
                 AddFileToDownloadsTable(sPath);
                }
               }
}


Так тоже не получается:
Код

stock AddFolderToDownloadsTable(const String:sDirectory[])
{
             for (new client = 1; client <= MaxClients; client++)
             {
              if (!IsClientConnected(client))
              {
               continue;
              }
                          
              new flags = GetUserFlagBits(client);
                          
              if (flags & ADMFLAG_ROOT || flags & ADMFLAG_RESERVATION || flags & ADMFLAG_CHANGEMAP)
              {
               continue;
              }
                         
              decl String:sFile[64], String:sPath[512];
              new FileType:iType, Handle:hDir = OpenDirectory(sDirectory);
              while(ReadDirEntry(hDir, sFile, sizeof(sFile), iType))                 
              {
               if(iType == FileType_File)
               {
                Format(sPath, sizeof(sPath), "%s/%s", sDirectory, sFile);
                AddFileToDownloadsTable(sPath);
               }
              }
             }
}


Добавлено (30.01.2013, 21:30:30)
---------------------------------------------
Цитата (Scarface_slv)
Я представление не имею как проверить в OnMapStart игроков, т.к. все игроки переподключаются при смене карты


Не обязательно в public OnMapStart(), это условие так же выполняет свои функции и в public OnClientConnected(client) а изначально в public OnPluginStart(). Вопрос как проверить правельно админ или игрок, ума не приложу?

Пробывал:
так
Код
  new flags = GetUserFlagBits(client);
                      
            if (flags & ADMFLAG_ROOT || flags & ADMFLAG_RESERVATION || flags & ADMFLAG_CHANGEMAP)
            {
             continue;
            }

так
Код
   new AdminId:admin = FindAdminByIdentity(AUTHMETHOD_STEAM, client);

             if (admin == INVALID_ADMIN_ID)
             {
             // return true;
             }


да много как, что то не так делаю.

Добавлено (30.01.2013, 22:48:47)
---------------------------------------------
Так тоже не получается: grust

Код
#pragma semicolon 1

#include <sourcemod>
#include <sdktools>

public OnClientAuthorized(client)
{
           decl AdminId:aid;
           if( client > -1 )
           {
            aid = GetUserAdmin( client );
            if( GetAdminFlag(aid, Admin_Root))
            {
             AddFolderToDownloadsTable("materials/mapige");
            }
            else
            {

            }
           }
}

stock AddFolderToDownloadsTable(const String:sDirectory[])
{
           decl String:sFile[64], String:sPath[512];
           new FileType:iType, Handle:hDir = OpenDirectory(sDirectory);
           while(ReadDirEntry(hDir, sFile, sizeof(sFile), iType))               
           {
            if(iType == FileType_File)
            {
             Format(sPath, sizeof(sPath), "%s/%s", sDirectory, sFile);
             AddFileToDownloadsTable(sPath);
            }
           }
}


Добавлено (30.01.2013, 23:29:44)
---------------------------------------------
ПОЛУЧИЛОСЬ, ПОСЛЕ ДОЛГИХ ПЛЯСОК С БУБНАМИ ulibka

Код
#pragma semicolon 1

#include <sourcemod>
#include <sdktools>

public OnClientAuthorized(client, const String:steamID[])
{
          new AdminId:admin = FindAdminByIdentity(AUTHMETHOD_STEAM, steamID);
          if(client)
          {
           if (admin == INVALID_ADMIN_ID)
           {
            PrintToServer("Client**********************************************************************");
           }
           else
           {
            PrintToServer("Admin***********************************************************************");
            AddFolderToDownloadsTable("materials/mapige");
           }
          }
}

stock AddFolderToDownloadsTable(const String:sDirectory[])
{
          decl String:sFile[64], String:sPath[512];
          new FileType:iType, Handle:hDir = OpenDirectory(sDirectory);
          while(ReadDirEntry(hDir, sFile, sizeof(sFile), iType))              
          {
           if(iType == FileType_File)
           {
            Format(sPath, sizeof(sPath), "%s/%s", sDirectory, sFile);
            AddFileToDownloadsTable(sPath);
           }
          }
}


Монтирую в основной код, осталось квары добавить и так, еще по мелочам... klas
п.с. вот я нафлудил. xaxa dumaem

Добавлено (31.01.2013, 00:10:36)
---------------------------------------------
Квары готовы, вот что получилось:

Код

#pragma semicolon 1

#include <sourcemod>
#include <sdktools>

new Handle:g_DownloadsType    = INVALID_HANDLE;

public OnPluginStart()
{
   g_DownloadsType = CreateConVar("sm_downloadstype", "1", "1 = Загружать только Админам, 0 = Загружать всем.");
}

public OnClientAuthorized(client, const String:steamID[])
{
   if (GetConVarBool(g_DownloadsType)) {
    new AdminId:admin = FindAdminByIdentity(AUTHMETHOD_STEAM, steamID);

    if (admin != INVALID_ADMIN_ID) {
     AddFolderToDownloadsTable("materials/mapige"); // Downloads Only Admins
    }
   }

   if (!GetConVarBool(g_DownloadsType)) {
    AddFolderToDownloadsTable("materials/mapige"); // Downloads All
   }
}

stock AddFolderToDownloadsTable(const String:sDirectory[]) {
   decl String:sFile[64], String:sPath[512];
   new FileType:iType, Handle:hDir = OpenDirectory(sDirectory);
   while(ReadDirEntry(hDir, sFile, sizeof(sFile), iType))       
   {
    if(iType == FileType_File) {
     Format(sPath, sizeof(sPath), "%s/%s", sDirectory, sFile);
     AddFileToDownloadsTable(sPath);
    }
   }
}


Может кому пригодиться, а то намаялся вроде с такой простой вещью...


Сообщение отредактировал Sunday - Четверг, 31.01.2013, 01:14:43
 
  • Страница 2 из 3
  • «
  • 1
  • 2
  • 3
  • »
Поиск: