Помогите доработать плагин
sourcegod
Дата: Воскресенье, 15.11.2015, 12:21:04 | Сообщение # 1
Сообщений: 69
Репутация: 0 [ +/- ]
Всем доброго времени, подскажите ошибки в скрипте, суть этого плагина, он должен банить игроков через вип меню
Код
Handle:CreatePlayersMenu(iClient) { decl String:sUserID[16], String:sName[64], Handle:hMenu, i, AdminId:AID; hMenu = CreateMenu(PlayersMenu_Handler); SetMenuExitBackButton(hMenu, true); SetMenuTitle(hMenu, "Выберите Игрока:\n \n", iClient); DisplayMenu(hMenu, iClient, 0); sUserID[0] = 0; for(i = 1; i <= MaxClients; ++i) { if(IsClientInGame(i)) { if(g_bCvar_VIPImmunityMode && VIP_IsClientVIP(i)) { continue; } AID = GetUserAdmin(i); if(g_iCvar_AdminImmunityMode == 0 && AID != INVALID_ADMIN_ID) { continue; } if(g_iCvar_AdminImmunityMode > 0 && GetAdminImmunityLevel(AID) >= g_iCvar_AdminImmunityMode) { continue; } GetClientName(i, sName, sizeof(sName)); IntToString(GetClientUserId(i), sUserID, sizeof(sUserID)); AddMenuItem(hMenu, sUserID, sName); } } if(sUserID[0] == 0) { FormatEx(sName, sizeof(sName), "%T", "No matching clients", iClient); AddMenuItem(hMenu, "", sName, ITEMDRAW_DISABLED); } return hMenu; } public PlayersMenu_Handler(Handle:hMenu, MenuAction:action, iClient, Item) { switch(action) { case MenuAction_Select: { decl String:sUserID[16], UserID; GetMenuItem(hMenu, Item, sUserID, sizeof(sUserID)); UserID = StringToInt(sUserID); if(GetClientOfUserId(UserID) > 0) { SetTrieValue(VIP_GetVIPClientTrie(iClient), "BanTarget", UserID); DisplayMenu(g_hReasonsMenu, iClient, MENU_TIME_FOREVER); } else { PrintToChat(iClient, "[SM] %t", "Player no longer available"); } } } { if(Item == MenuCancel_ExitBack) { VIP_SendClientVIPMenu(iClient); } } if (action != MenuAction_Select) return; decl String:sUserID[16]; GetMenuItem(hMenu, Item, sUserID, sizeof(sUserID)); UserID = StringToInt(sUserID); if(GetClientOfUserId(UserID) > 0) { SetTrieValue(VIP_GetVIPClientTrie(iClient), "BanTarget", UserID); DisplayMenu(g_hReasonsMenu, iClient, MENU_TIME_FOREVER); } SetEntityMoveType(iClient, BANFLAG_AUTHID); }
Цитата
// VIP_Ban_1.sp(153) : error 017: undefined symbol "UserID" // VIP_Ban_1.sp(154) : error 017: undefined symbol "UserID" // VIP_Ban_1.sp(156) : error 017: undefined symbol "UserID" // VIP_Ban_1.sp(160) : warning 213: tag mismatch // // 3 Errors. // // Compilation Time: 0,31 sec
BarD
Дата: Воскресенье, 15.11.2015, 15:39:34 | Сообщение # 2
Сообщений: 943
Репутация: 137 [ +/- ]
Код
Handle:CreatePlayersMenu(iClient) { decl String:sUserID[16], String:sName[64], Handle:hMenu, i, AdminId:AID; hMenu = CreateMenu(PlayersMenu_Handler); SetMenuExitBackButton(hMenu, true); SetMenuTitle(hMenu, "Выберите Игрока:\n \n", iClient); sUserID[0] = 0; for(i = 1; i <= MaxClients; ++i) { if(IsClientInGame(i)) { if(g_bCvar_VIPImmunityMode && VIP_IsClientVIP(i)) { continue; } AID = GetUserAdmin(i); if(g_iCvar_AdminImmunityMode == 0 && AID != INVALID_ADMIN_ID) { continue; } if(g_iCvar_AdminImmunityMode > 0 && GetAdminImmunityLevel(AID) >= g_iCvar_AdminImmunityMode) { continue; } GetClientName(i, sName, sizeof(sName)); IntToString(GetClientUserId(i), sUserID, sizeof(sUserID)); AddMenuItem(hMenu, sUserID, sName); } } if(sUserID[0] == 0) { FormatEx(sName, sizeof(sName), "%T", "No matching clients", iClient); AddMenuItem(hMenu, "", sName, ITEMDRAW_DISABLED); } DisplayMenu(hMenu, iClient, 0); return hMenu; } public PlayersMenu_Handler(Handle:hMenu, MenuAction:action, iClient, Item) { if (action == MenuAction_Select) { decl String:sUserID[16], UserID; GetMenuItem(hMenu, Item, sUserID, sizeof(sUserID)); UserID = StringToInt(sUserID); if(GetClientOfUserId(UserID) > 0) { SetTrieValue(VIP_GetVIPClientTrie(iClient), "BanTarget", UserID); DisplayMenu(g_hReasonsMenu, iClient, MENU_TIME_FOREVER); } else { PrintToChat(iClient, "[SM] %t", "Player no longer available"); } } if(Item == MenuCancel_ExitBack) { VIP_SendClientVIPMenu(iClient); } SetEntityMoveType(iClient, BANFLAG_AUTHID); }
Сообщение отредактировал BarD - Воскресенье, 15.11.2015, 15:45:23
_R1KO_
Дата: Воскресенье, 15.11.2015, 16:12:46 | Сообщение # 3
Сообщений: 200
Репутация: 30 [ +/- ]
а потом будет писать что это его код.
BarD
Дата: Понедельник, 16.11.2015, 13:27:04 | Сообщение # 4
Сообщений: 943
Репутация: 137 [ +/- ]
Цитата sourcegod (
)
КАКОГО ТЭГА НЕ ХВАТАЕТ?
Цитата
warning 213: tag mismatch Несовпадение тегов, например: new String:x[] = 1; Переменная и её значение должны быть одинакового типа (строки, float, int, и тд). _____ by wS
Вообще, я думаю, что BANFLAG_AUTHID - это не элемент функции SetEntityMoveType. Это скорее флаг бана для функции BanClient.
Сообщение отредактировал BarD - Понедельник, 16.11.2015, 13:33:43
sourcegod
Дата: Понедельник, 16.11.2015, 13:50:05 | Сообщение # 5
Сообщений: 69
Репутация: 0 [ +/- ]
BarD, тк а какой элемент для бана?
Jon4ik
Дата: Понедельник, 16.11.2015, 13:59:41 | Сообщение # 6
Сообщений: 278
Репутация: 7 [ +/- ]
sourcegod, Через можно SetEntityMoveType задать только тип движения Из урока:Код
SetEntityMoveType(client, <тип движения>); MOVETYPE_NONE - заморозить MOVETYPE_ISOMETRIC - для игроков MOVETYPE_WALK - движение по земле (для игроков) MOVETYPE_STEP - gravity, special edge handling -- monsters use this MOVETYPE_FLY - полет, джет пак (jet pack) MOVETYPE_FLYGRAVITY - flies through the air + is affected by gravity MOVETYPE_VPHYSICS - uses VPHYSICS for simulation (используется, например, для мяча) MOVETYPE_PUSH - no clip to world, push and crush MOVETYPE_NOCLIP - ноклип, можно летать по карте сквозь все объекты MOVETYPE_LADDER - Used by players only when going onto a ladder MOVETYPE_OBSERVER - Observer movement, depends on player's observer mode MOVETYPE_CUSTOM - Allows the entity to describe its own physics // Например: SetEntityMoveType(client, MOVETYPE_NOCLIP);
Для бана надо использовать По ип BanClient(client, <минут/0=навсегда>, BANFLAG_IP, "причина", "кик-сообщение"); или по стиму BanClient(client, <минут/0=навсегда>, BANFLAG_AUTHID, "причина", "кик-сообщение");
Сообщение отредактировал Jon4ik - Понедельник, 16.11.2015, 14:00:11
sourcegod
Дата: Понедельник, 16.11.2015, 14:17:23 | Сообщение # 7
Сообщений: 69
Репутация: 0 [ +/- ]
Jon4ik, это я знаю, вот как его в код залить нет
Jon4ik
Дата: Понедельник, 16.11.2015, 16:02:22 | Сообщение # 8
Сообщений: 278
Репутация: 7 [ +/- ]
sourcegod, Зачем ты пишешь модуль который уже есть?
sourcegod
Дата: Понедельник, 16.11.2015, 17:04:45 | Сообщение # 9
Сообщений: 69
Репутация: 0 [ +/- ]
Jon4ik, модуля бан нету
Jon4ik
Дата: Понедельник, 16.11.2015, 17:29:52 | Сообщение # 10
Сообщений: 278
Репутация: 7 [ +/- ]
sourcegod
Дата: Понедельник, 16.11.2015, 19:29:23 | Сообщение # 11
Сообщений: 69
Репутация: 0 [ +/- ]
Jon4ik, мдаДобавлено (16.11.2015, 19:28:30) --------------------------------------------- там багов много
Добавлено (16.11.2015, 19:29:23) ---------------------------------------------
Цитата sourcegod (
)
это я знаю, вот как его в код залить нет
Цитата Jon4ik (
)
Для бана надо использовать По ип BanClient(client, <минут/0=навсегда>, BANFLAG_IP, "причина", "кик-сообщение"); или по стиму BanClient(client, <минут/0=навсегда>, BANFLAG_AUTHID, "причина", "кик-сообщение");
тема еще не закрыта, помогите
Jon4ik
Дата: Понедельник, 16.11.2015, 20:47:31 | Сообщение # 12
Сообщений: 278
Репутация: 7 [ +/- ]
sourcegod, Ну так напиши в тему, чтобы поправили плагин
sourcegod
Дата: Понедельник, 16.11.2015, 22:41:10 | Сообщение # 13
Сообщений: 69
Репутация: 0 [ +/- ]
Jon4ik, даже если напишу, я все ровно не пойму как приписывать скрипт для бана, подскажите что-ль Мне то всего лишь нужно это
Jon4ik
Дата: Понедельник, 16.11.2015, 23:39:46 | Сообщение # 14
Сообщений: 278
Репутация: 7 [ +/- ]
sourcegod, У тебя в коде нету получения причины и времени банаДобавлено (16.11.2015, 23:39:46) --------------------------------------------- Попробуй взять за основу basebans
dases2003
Дата: Вторник, 17.11.2015, 12:35:37 | Сообщение # 15
Сообщений: 107
Репутация: 1 [ +/- ]
О боже, во что превратился этот форум... Вы давайте наводки, а не целый код....