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

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

Форум » SourceMod >> CS:Source >> CSGO » Уроки SourceMod (SourcePawn) Скриптинга » Команды/Функции, связанные с игроком (Список, примеры)
Команды/Функции, связанные с игроком
_wS_ Дата: Четверг, 09.05.2019, 19:16:12 | Сообщение # 76
Thanks
Все норм, если dod_round_win и dod_round_start вызываются как надо по очереди.
Я бы наверно в OnRoundWin сделал не просто SDKHook(i, SDKHook_WeaponDropPost, Hook_WeaponDropped); а перед хуком унхук:

Код
SDKUnhook(i, SDKHook_WeaponDropPost, Hook_WeaponDropped);
SDKHook(i, SDKHook_WeaponDropPost, Hook_WeaponDropped);

Если ты сделал x одинаковых хуков, то функция Hook_WeaponDropped вызовется x раз.
Не знаю почему автор sdkhooks не учел это (зачем делать хук, если он есть).

И ты не учел момент, что после окончания раунда на сервер может зайти игрок, родиться и выкинуть оружие, его же ты не хукнул.
Лови еще вход игрока, если раунд окончен, хук.
 
www22 Дата: Четверг, 09.05.2019, 19:25:12 | Сообщение # 77
Сообщений: 84
Репутация: -1 [ +/- ]
_wS_, да мне не тот SDK нужен оказывается , мне же просто, чтоб поднять нельзя было. Блин теперь с SDK запутался какой лучше использовать %))
Чтож никак не потяну то эту сложную науку то ..

У нас же это на поднятие SDKHook_WeaponCanUse .А по поводу когда игрок вошел , то у нас вроде это предусмотрено , то есть даже когда тебя убили ты вроде еще раз возродится не можешь в бонусном раунде . Так же и когда игрок вошел на сервер.
===========================================
Тут у меня еще вопрос , решил взять вот этот код
Цитата
https://hlmod.ru/threads/plagin-zapreta-smeny-nika.12846/page-4#post-260077
, он как бы работает всё ок . Но зараза иногда срабатывает 1 раз получается , то есть когда игрок вошел на сервер , иногда конечно срабатывает, иногда нет. То есть я как понял , при смена карты , плагин иногда не срабатывает.
Вообщем вопрос - где еще можно сделать проверку и смену ника ?
И если плагин сработал , а плагин опять ему поменяет ник , это как будет, проблем не будут никаких ?
А то была мысля мож при смене карты, начала раунда опять ему сменить ник %))


Сообщение отредактировал www22 - Четверг, 09.05.2019, 20:58:53
 
_wS_ Дата: Четверг, 09.05.2019, 21:45:31 | Сообщение # 78
Thanks
 
www22 Дата: Четверг, 09.05.2019, 22:02:07 | Сообщение # 79
Сообщений: 84
Репутация: -1 [ +/- ]
_wS_, не не , ты не понял суть плагина наверное . Там дается имя прописанное по мини базе , по стим айди то есть меняется на то имя которое прописал данную игроку по стим айди. По такому принципу плагин робит, пред. пост #65 от AlmazONа.
То есть пример : защел игрок с ником Игрок , как он только зашел , по его стиму выдали ему другой автоматом ник скажем ПЕТЯ.

Добавлено (09.05.2019, 22:03:41)
---------------------------------------------
Цитата www22 ()
И если плагин сработал , а плагин опять ему поменяет ник , это как будет, проблем не будут никаких ?
Меня что интересует еще , глюков если принудительно менять игроку ник на тот же , не будут никаких ?!


Сообщение отредактировал www22 - Четверг, 09.05.2019, 22:05:16
 
_wS_ Дата: Четверг, 09.05.2019, 22:31:55 | Сообщение # 80
Thanks
Не будет, да и перед сменой сравнить же можно тот же он или нет.
 
www22 Дата: Четверг, 09.05.2019, 23:33:05 | Сообщение # 81
Сообщений: 84
Репутация: -1 [ +/- ]
_wS_,
Цитата _wS_ ()
Не будет, да и перед сменой сравнить же можно тот же он или нет.

Ну я как бы об этом думал . но а если ник со всякими "кружевами", их как плагин правильно распознает то . А так тоже мысля , но только сравнивать наверное тот который я хочу ник, если только так . Ну это на потом , сейчас по запрету на поднятие надо решить и с флагами - в ХУД окне и на карте. Это как бы главная сейчас задача.

Добавлено (11.05.2019, 19:40:01)
---------------------------------------------
Что то я запутался , какой командой ловить введенную команду от игрока sm_xxxxx .
1.Через AddCommandListener или RegConsoleCmd , что то понять не могу некоторые моментики, и что лучше , точнее через что проверять команду введенного от игрока ?.
И еще с "sm" проверять команду или как ??


Сообщение отредактировал www22 - Воскресенье, 12.05.2019, 16:56:46
 
_wS_ Дата: Воскресенье, 12.05.2019, 18:45:18 | Сообщение # 82
Thanks
В вики же есть описание.
AddCommandListener хукает существующую команду.
RegConsoleCmd так же, но если команды нет, создаёт её.
Еще есть OnClientCommand.

Цитата www22 ()
И еще с "sm" проверять команду или как ??

Проверять так, как она была создана, если была создана с sm_, то да, хотя не удивлюсь если можно и так и так, протестировать несложно.
 
www22 Дата: Воскресенье, 12.05.2019, 19:28:02 | Сообщение # 83
Сообщений: 84
Репутация: -1 [ +/- ]
_wS_, вот вот она именно с см и создавалась.. хотя другой код нашел там без см команды создаются.
Потому что я так понимаю , команда с см получается же консольной же .
Будем читать вообщем, спасибки !!

Добавлено (28.05.2019, 10:59:39)
---------------------------------------------
Кстати у меня вопрос , а игроки которые в спектрах . над ними выполняются ли какие нибудь команды связанные с оружием к примеру ?
Вообщем есть у меня вот такой код
Код
    // Compare winning team and team of other players to perform weapon changing
    if (IsValidClient(i) && GetClientTeam(i)[color=red] != GetEventInt(event, "team")[/color])
    {
     RestrictWeaponsUsage(i);
    }

Здесь выполняется действия с оружием только проигравшей команде . А как сделать для всех , что никак не пойму .
Убрал это "!= GetEventInt(event, "team")" , так вот вопрос , там же тогда всеми игроками будет что делаться , даже для тех кто в спектрах !?
Вообщем хотелось бы обезопасить выполнение действий-команд в условии для тех кто спектрах . А то тонкости таких незнаю что и как происходить над игроками кто в спектрах. Особенно действия с оружием.

Вообщем как правильно расписать тогда :
Так :
Код
if (IsValidClient(i) && GetClientTeam(i) > 1)
или так :
Код
    if (IsValidClient(i) && (GetClientTeam(i) > 1))


Сообщение отредактировал www22 - Вторник, 28.05.2019, 11:02:19
 
_wS_ Дата: Вторник, 28.05.2019, 16:03:03 | Сообщение # 84
Thanks
Правильно и так и так.
 
www22 Дата: Вторник, 28.05.2019, 18:11:27 | Сообщение # 85
Сообщений: 84
Репутация: -1 [ +/- ]
Ясно . а по поводу вопроса
Цитата
А то тонкости таких незнаю что и как происходить над игроками кто в спектрах. Особенно действия с оружием.

Что и как вообще ?
А то вообще не пойму что происходит с такими игроками , я про тех кто спектрах ?
И как будет влиять на сервер такие действия, будут ли лаги или еще что нехорошее ..

Добавлено (02.06.2019, 21:49:37)
---------------------------------------------
кстати заметил вот эту функцию https://sm.alliedmods.net/new-api/clients/IsClientSourceTV , а давно появилась ?

Тут опять косяк обнаружился с bres , думал мож это как то поможет %))
p.s. как же меня мелкие ошибки уже надоели с ним %)))
А вообще то просто интересно ..

Добавлено (09.06.2019, 18:30:00)
---------------------------------------------
Кстати а когда ты удаляешь оружие , после выигрыша раунда , движок его возвращает , или же надо через плагин его возвращать ?

Добавлено (26.07.2019, 14:34:00)
---------------------------------------------
Что то найти не могу , как проверить , является ли игрок админом ..



Сообщение отредактировал www22 - Понедельник, 03.06.2019, 16:57:18
 
_wS_ Дата: Пятница, 26.07.2019, 21:07:12 | Сообщение # 86
Thanks
Цитата www22 ()
Что то найти не могу , как проверить , является ли игрок админом ..

if (GetUserFlagBits(client) & ADMFLAG_?)
 
www22 Дата: Понедельник, 19.08.2019, 13:15:33 | Сообщение # 87
Сообщений: 84
Репутация: -1 [ +/- ]
_wS_, Хотел спросить , есть такая функция , чтобы узнать класс игрока :
Код
new class = GetEntProp(client, Prop_Send, "m_iPlayerClass")
//0 = Rifleman
//1 = Assault
//2 = Support
//3 = Sniper
//4 = MG
//5 = Rocket

А ты не курсах . мож сам как то использовал что то , чтобы "дать" сменить принудительно через соурсмод класс игроку ?
 
_wS_ Дата: Понедельник, 19.08.2019, 17:14:08 | Сообщение # 88
Thanks
SetEntProp(client, Prop_Send, "m_iPlayerClass", x)
 
www22 Дата: Понедельник, 19.08.2019, 17:41:46 | Сообщение # 89
Сообщений: 84
Репутация: -1 [ +/- ]
_wS_, вот блин, а я Prop_Data пробовал , как в примере про фраги. Сейчас попробую.. Спасибо..

Добавлено (19.08.2019, 17:59:48)
---------------------------------------------
Что то не учел кое что , спасибо всё работает , но оружие же не меняется .. Думал со сменой класса и оружие замениться на то что прописано под тот класс который выдается.. Вообщем думал будет всё по проще ..


Сообщение отредактировал www22 - Понедельник, 19.08.2019, 18:00:17
 
_wS_ Дата: Понедельник, 19.08.2019, 18:49:31 | Сообщение # 90
Thanks
По идее должно было, ну попробуй заставить игрока вести joinclass x
Возможно в твоей игре команда другая
find class
 
Форум » SourceMod >> CS:Source >> CSGO » Уроки SourceMod (SourcePawn) Скриптинга » Команды/Функции, связанные с игроком (Список, примеры)
Поиск: