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

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

  • Страница 7 из 9
  • «
  • 1
  • 2
  • 5
  • 6
  • 7
  • 8
  • 9
  • »
Форум » SourceMod >> CS:Source >> CSGO » Уроки SourceMod (SourcePawn) Скриптинга » Команды/Функции, связанные с игроком (Список, примеры)
Команды/Функции, связанные с игроком
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
Thanks
Судя по коду, если игрок зашел за запрещенный класс, 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
Thanks
Ну это заставляет игрока ввести в консоль команду.
Принудительно невидимо от его имени вводится в консоль.
 
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
Thanks
Цитата 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
Thanks
Потому что
Цитата _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
Thanks
Ну вот, раз нет, значит нельзя =) Если бы 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
Thanks
Цитата www22 ()
вывести оверлейку в определенном месте экране и отловить в этой области нажатие какой-нибудь клавишей ?

https://developer.valvesoftware.com/wiki/Env_screenoverlay
 
www22 Дата: Вторник, 03.09.2019, 14:11:01 | Сообщение # 103
Сообщений: 84
Репутация: -1 [ +/- ]
Цитата _wS_ ()
отловить в этой области нажатие какой-нибудь клавишей ?
Меня больше 2 вопрос интересует , это я уже как бы чутка знаю %))
 
_wS_ Дата: Вторник, 03.09.2019, 17:54:36 | Сообщение # 104
Thanks
Не знаю таких функций, пробуй придумать сам.
Прицел есть, углы, координаты.
 
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
 
Форум » SourceMod >> CS:Source >> CSGO » Уроки SourceMod (SourcePawn) Скриптинга » Команды/Функции, связанные с игроком (Список, примеры)
  • Страница 7 из 9
  • «
  • 1
  • 2
  • 5
  • 6
  • 7
  • 8
  • 9
  • »
Поиск: