Команды/Функции, связанные с игроком
| |
_wS_
|
Дата: Четверг, 09.05.2019, 19:16:12 | Сообщение # 76 |
|
Все норм, если 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 |
![Пользователь](http://world-source.ru/groupicon/user_icon.jpg) |
Сообщений: 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 |
|
|
|
| |
www22
|
Дата: Четверг, 09.05.2019, 22:02:07 | Сообщение # 79 |
![Пользователь](http://world-source.ru/groupicon/user_icon.jpg) |
Сообщений: 84
Репутация: -1 [ +/- ]
|
|
_wS_, не не , ты не понял суть плагина наверное . Там дается имя прописанное по мини базе , по стим айди то есть меняется на то имя которое прописал данную игроку по стим айди. По такому принципу плагин робит, пред. пост #65 от AlmazONа. То есть пример : защел игрок с ником Игрок , как он только зашел , по его стиму выдали ему другой автоматом ник скажем ПЕТЯ.
Добавлено (09.05.2019, 22:03:41) ---------------------------------------------
Цитата www22 ( ![Ссылка на цитируемый текст](/.s/img/fr/ic/2/lastpost.gif) ) И если плагин сработал , а плагин опять ему поменяет ник , это как будет, проблем не будут никаких ? Меня что интересует еще , глюков если принудительно менять игроку ник на тот же , не будут никаких ?!
Сообщение отредактировал www22 - Четверг, 09.05.2019, 22:05:16 |
|
| |
_wS_
|
Дата: Четверг, 09.05.2019, 22:31:55 | Сообщение # 80 |
|
Не будет, да и перед сменой сравнить же можно тот же он или нет.
|
|
| |
www22
|
Дата: Четверг, 09.05.2019, 23:33:05 | Сообщение # 81 |
![Пользователь](http://world-source.ru/groupicon/user_icon.jpg) |
Сообщений: 84
Репутация: -1 [ +/- ]
|
|
_wS_, Цитата _wS_ ( ![Ссылка на цитируемый текст](/.s/img/fr/ic/2/lastpost.gif) ) Не будет, да и перед сменой сравнить же можно тот же он или нет. Ну я как бы об этом думал . но а если ник со всякими "кружевами", их как плагин правильно распознает то . А так тоже мысля , но только сравнивать наверное тот который я хочу ник, если только так . Ну это на потом , сейчас по запрету на поднятие надо решить и с флагами - в ХУД окне и на карте. Это как бы главная сейчас задача.
Добавлено (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 |
|
В вики же есть описание. AddCommandListener хукает существующую команду. RegConsoleCmd так же, но если команды нет, создаёт её. Еще есть OnClientCommand.
Цитата www22 ( ![Ссылка на цитируемый текст](/.s/img/fr/ic/2/lastpost.gif) ) И еще с "sm" проверять команду или как ?? Проверять так, как она была создана, если была создана с sm_, то да, хотя не удивлюсь если можно и так и так, протестировать несложно.
|
|
| |
www22
|
Дата: Воскресенье, 12.05.2019, 19:28:02 | Сообщение # 83 |
![Пользователь](http://world-source.ru/groupicon/user_icon.jpg) |
Сообщений: 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 |
|
Правильно и так и так.
|
|
| |
www22
|
Дата: Вторник, 28.05.2019, 18:11:27 | Сообщение # 85 |
![Пользователь](http://world-source.ru/groupicon/user_icon.jpg) |
Сообщений: 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 |
|
Цитата www22 ( ![Ссылка на цитируемый текст](/.s/img/fr/ic/2/lastpost.gif) ) Что то найти не могу , как проверить , является ли игрок админом .. if (GetUserFlagBits(client) & ADMFLAG_?)
|
|
| |
www22
|
Дата: Понедельник, 19.08.2019, 13:15:33 | Сообщение # 87 |
![Пользователь](http://world-source.ru/groupicon/user_icon.jpg) |
Сообщений: 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 |
|
SetEntProp(client, Prop_Send, "m_iPlayerClass", x)
|
|
| |
www22
|
Дата: Понедельник, 19.08.2019, 17:41:46 | Сообщение # 89 |
![Пользователь](http://world-source.ru/groupicon/user_icon.jpg) |
Сообщений: 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 |
|
По идее должно было, ну попробуй заставить игрока вести joinclass x Возможно в твоей игре команда другая find class
|
|
| |
|