|
Проблема с меню.
| |
|
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) --------------------------------------------- Так тоже не получается:
Код #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) --------------------------------------------- ПОЛУЧИЛОСЬ, ПОСЛЕ ДОЛГИХ ПЛЯСОК С БУБНАМИ
Код #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); } } }
Монтирую в основной код, осталось квары добавить и так, еще по мелочам... п.с. вот я нафлудил.
Добавлено (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 |
| |
| |
|