Команды/Функции, связанные с игроком
| |
www22
|
Дата: Понедельник, 19.08.2019, 19:12:38 | Сообщение # 91 |
|
Сообщений: 84
Репутация: -1 [ +/- ]
|
|
_wS_, так то класс игроку меняется , просто думал еще и оружие поменяется .. То есть по клику по TAB , я вижу что класс изменился . Просто думал мож и с оружием в процессе игры поменяется. Да и потом я его меняю к примеру при захвате флага.. То есть я хотел класс изменить именно в процессе игры вкл. и всё оружие, при определенном событии , скажем захват флага, убийства итд.. А думал будет по проще это всё.
Добавлено (22.08.2019, 16:46:07) --------------------------------------------- Кстати стал смотреть код к примеру брес (противный плагин от Рута) , и вот этот https://forums.alliedmods.net/attachment.php?attachmentid=34598&d=1229208363 .. Не могу понять , зачем используют команду "FakeClientCommand" , Когда и обычный код на выполнение есть ..
Цитата public Action:ChangeClassEvent(Handle:event, const String:name[], bool:dontBroadcast) { if (GetConVarInt(g_Cvar_Enable)) { new client = GetClientOfUserId(GetEventInt(event, "userid")) new class = GetEventInt(event, "class") new String:classstring[64]
if (g_Class[client][class] == 1) { PrintCenterText(client, "%s Class Unavailable", classname[class]) Format(classstring, sizeof(classstring), "joinclass %i", g_PreviousClass[client]) FakeClientCommand(client, classstring) new team = GetClientTeam(client) ShowVGUIPanel(client, team == 3 ? "class_ger" : "class_us") }
} return Plugin_Continue } или в бресе :Цитата case Team_Allies: { // Get the player's team and give proper weapon depends on team
GivePlayerItem(client, melee[Team_Allies-2]); FakeClientCommand(client, "use %s", melee[Team_Allies-2]); } case Team_Axis: {
GivePlayerItem(client, melee[Team_Axis-2]); FakeClientCommand(client, "use %s", melee[Team_Axis-2]); }
Сообщение отредактировал www22 - Четверг, 22.08.2019, 16:48:13 |
|
| |
_wS_
|
Дата: Четверг, 22.08.2019, 19:05:41 | Сообщение # 92 |
|
Судя по коду, если игрок зашел за запрещенный класс, FakeClientCommand меняет ему класс на другой. FakeClientCommand use - чтобы выданное оружие было сразу в руках.
|
|
| |
www22
|
Дата: Четверг, 22.08.2019, 20:15:36 | Сообщение # 93 |
|
Сообщений: 84
Репутация: -1 [ +/- ]
|
|
_wS_, не я имел ввиду , для чего такое делают ? Там же в коде как бы и так всё выдается или запрещается или наоборот .. Потому что , как бы слово "фэйк" = это как бы вымысел же-пустота, а тут такое и выполняет это над игроком. В этом плане я немного недогоню..
Или же это типа дополнительной команды над игроком, как ты описал ?
Сообщение отредактировал www22 - Четверг, 22.08.2019, 20:16:34 |
|
| |
_wS_
|
Дата: Четверг, 22.08.2019, 20:38:13 | Сообщение # 94 |
|
Ну это заставляет игрока ввести в консоль команду. Принудительно невидимо от его имени вводится в консоль.
|
|
| |
www22
|
Дата: Пятница, 23.08.2019, 15:07:36 | Сообщение # 95 |
|
Сообщений: 84
Репутация: -1 [ +/- ]
|
|
_wS_, то есть это не для того , чтобы как бы обезопасить от лагов-глюков итд код? Просто мне это казалось , что этот доп. код , типа для безопасности от лагов и глюков .
А как бы это имел ввиду в своем вопросе ..Добавлено (24.08.2019, 23:16:47) --------------------------------------------- _wS_, Цитата _wS_ ( ) Ну это заставляет игрока ввести в консоль команду. Да у меня тут вопрос , а можно так ввести игроку свою команду , к примеру по рейтам или еще какие нибудь команды "cl_interp" итд..
Сообщение отредактировал www22 - Пятница, 23.08.2019, 17:25:51 |
|
| |
_wS_
|
Дата: Воскресенье, 25.08.2019, 03:16:58 | Сообщение # 96 |
|
Цитата www22 ( ) а можно так ввести игроку свою команду , к примеру по рейтам или еще какие нибудь команды "cl_interp" итд.. Зачем спрашивать, если можно проверить и увидеть. Некоторые команды можно, многие нельзя. findflags SERVER_CAN_EXECUTE
|
|
| |
www22
|
Дата: Воскресенье, 25.08.2019, 10:57:34 | Сообщение # 97 |
|
Сообщений: 84
Репутация: -1 [ +/- ]
|
|
_wS_, я попробовал , что то не сработало . Вот что то типа такого :Код public Action Event_DeathKills(Event hEvent, const char[] sName, bool bDontBroadcast) { new client = GetClientOfUserId(GetEventInt(hEvent, "userid")); FakeClientCommand(client, "cl_interp 0.0"); } Так то cl_interp к примеру, игрок может менять , я проверял в клиенте - всё ОК. Просто может не так расписал.. А то в SP "правописанию" плаваю еще же.. Я к чему решил спросить , я же спрашивал , тебя про проверку кваров , а тут наоборот решил - может не проверять - а принудительно им прописывать квары в клиенте %))Добавлено (25.08.2019, 12:14:32) --------------------------------------------- Да чтож такое , что не нравиться то Код public OnPluginStart() { HookEvent("player_changeclass", Event_ChangeClass); } public Action Event_ChangeClass(Event hEvent, const char[] sName, bool bDontBroadcast) { new client = GetClientOfUserId(GetEventInt(hEvent, "userid")); new String:classstring[64]; Format(classstring, sizeof(classstring), "cl_interp 0.0"); FakeClientCommand(client, classstring); //FakeClientCommand(client, "cl_interp 0.0"); } Добавлено (25.08.2019, 13:15:17) --------------------------------------------- Странно , так менять команду можешь , а через плагин что то никак , вот логи из консоли клиента Цитата Unknown command: cl_interp Unknown command: cl_interp
Сообщение отредактировал www22 - Воскресенье, 25.08.2019, 11:25:53 |
|
| |
_wS_
|
Дата: Воскресенье, 25.08.2019, 19:36:04 | Сообщение # 98 |
|
Потому что
Цитата _wS_ ( ) многие нельзя Те, которые можно: findflags SERVER_CAN_EXECUTE
|
|
| |
www22
|
Дата: Воскресенье, 25.08.2019, 20:01:43 | Сообщение # 99 |
|
Сообщений: 84
Репутация: -1 [ +/- ]
|
|
Цитата _wS_ ( ) Те, которые можно: findflags SERVER_CAN_EXECUTE Да нет там её ,а почему в игре же игрок её может выполнить,даже когда он на сервере, а через плагин нельзя получается. Если так ,то жаль..
|
|
| |
_wS_
|
Дата: Воскресенье, 25.08.2019, 20:26:01 | Сообщение # 100 |
|
Ну вот, раз нет, значит нельзя =) Если бы FakeClientCommand мог делать всё тоже самое, что и сам игрок, то и кс ему крашнуть можно было бы и много зла сотворить, поэтому есть определенный ограниченный белый список команд.
|
|
| |
www22
|
Дата: Воскресенье, 25.08.2019, 22:50:22 | Сообщение # 101 |
|
Сообщений: 84
Репутация: -1 [ +/- ]
|
|
_wS_, Цитата _wS_ ( ) и сам игрок, то и кс ему крашнуть можно было бы Да это понятно , просто странно , игрок же может во время нахождения сервера менять команду , вот и подумал что может бы как то это можно организовать через плагин, если да то может я где накосячил.. я же еще нуб в программинге же %)) А так жаль конечно , что нельзя , было бы мне кажется проще , чтобы игроку через плагин установить нужные квары , как и на сервере установлены . Чтобы не следить или не отпугивать народ киками или банами по поводу некоторых команд прописанных в клиенте %)) Так зашли им просто выставили нужные команды для игры и пусть играет %))
Добавлено (25.08.2019, 22:51:45) --------------------------------------------- стоп , а причем тут сервер , я про клиента и команды у клиента бы хотел так менять %)) Или я что то не до понял ..
Добавлено (25.08.2019, 23:26:15) --------------------------------------------- блин , и правду нельзя поменять cl_interp,через плагин :
Цитата Unknown command: cl_interp FCVAR_SERVER_CAN_EXECUTE prevented server running command: cl_interp Жаль .. Ладно будет тогда по старинке , детектить этот квар у клиента ..
Добавлено (02.09.2019, 12:36:13) --------------------------------------------- Кстати искал один плагин https://forum.myarena.ru/index.php?/topic/29150-edinaia-tema-dlia-poiska-plaginov-sourcemod/?p=349363 , думал есть что то похожее , вообщем интересно стало , а можно как то : 1. вывести оверлейку в определенном месте экране и отловить в этой области нажатие какой-нибудь клавишей ?
Сообщение отредактировал www22 - Понедельник, 02.09.2019, 15:48:43 |
|
| |
_wS_
|
Дата: Вторник, 03.09.2019, 09:36:53 | Сообщение # 102 |
|
|
|
| |
www22
|
Дата: Вторник, 03.09.2019, 14:11:01 | Сообщение # 103 |
|
Сообщений: 84
Репутация: -1 [ +/- ]
|
|
Цитата _wS_ ( ) отловить в этой области нажатие какой-нибудь клавишей ? Меня больше 2 вопрос интересует , это я уже как бы чутка знаю %))
|
|
| |
_wS_
|
Дата: Вторник, 03.09.2019, 17:54:36 | Сообщение # 104 |
|
Не знаю таких функций, пробуй придумать сам. Прицел есть, углы, координаты.
|
|
| |
www22
|
Дата: Вторник, 03.09.2019, 18:33:33 | Сообщение # 105 |
|
Сообщений: 84
Репутация: -1 [ +/- ]
|
|
Цитата _wS_ ( ) Не знаю таких функций, пробуй придумать сам. Прицел есть, углы, координаты. Не ты что шутишь , я вон с трудом некоторые фишки знаю . Даже никак не научусь некоторые простые вещи - типа скачивание файлов.Никак что то. А так интересно просто , есть мысля скажем картинки оверлейки ввиде картинок выводить и присвоить им нумерацию, если только так .. Хотя это так уже , просто интерес взял , можно - получится итд..Добавлено (12.09.2019, 08:38:35) --------------------------------------------- Кстати а можно ли как то узнать респавница игрок еще или нет ? Типа активен игрок или еще возрождается ? Добавлено (13.09.2019, 21:15:56) --------------------------------------------- Блин что то не въехал , а эта команда что делает GetPlayerJingleFile , что джинг файл для игрока подсовывает , если я правильно понял ..
Сообщение отредактировал www22 - Суббота, 07.09.2019, 20:22:45 |
|
| |
|