Проблема с пикапамы.
#1

Существует статические пикапы через "AddStaticPickup"
Как написано в описанию:
This function doesn't return a pickup id that you can use in, for example, OnPlayerPickUpPickup.
Функция не возвращает ид пикапа, а значит отловить событые как игрок заходит на пикап невозможно.
Суть в том что эти пикапы работают сами по себе.
Достачно указать модель пикапа и оно само будет выполнять определенное действие. (Не настраивается)
Но после установки Анти-Чита данный способ не актуален.
Но есть и другая функция: "CreatePickup" или "CreateDynamicPickup" - в данном случае пикап возвращает свой ид.
А значит можно поставить любое действие когда игрок заходит на пикап.
Я сделал так чтобы выдавало оружие с определенным количеством патронов.
Но вот баг, когда игрок заходит на пикап ему выдает патроны которые выдаются в "AddStaticPickup" + мои патроны что я указал в "OnPlayerPickUpPickup"
В итоге игрока кикает анти-чит. Т.к. игрок получил больше патронов чем указано в выдаче.
Этот баг именно в некоторых типах пикапа (2,3....15,22...), но дело в том что ниодин из типов кроме этих мне не подходит!
Подходит только 2 и 3. Ниодин другой тип я не могу использовать.
Для теста брал тип 23. Работало без бага, но пикап не пропадает.
Делать огромный массив, хранить куча данных о лимитах и т.д. нет желания.
Да еще и пикап не будет пропадать а это очень плохо будет.
Способ: высчитать сколько выдает по стандарту статичный пикап и через "SetPlayerAmmo" убирать эти патроны не подходит.
Т.к. нету доступа к исходному коду анти-чита.
Reply
#2

Когда-то давно тоже встретился с этим багом. Выдавал биту (вроде бы юзал 2-й тип) и никак не мог понять, почему античит кикает.

Я думаю вам придется либо изменить тип пикапа и делать проверку, например, на наличие оружия перед выдачей, либо заменить саму модель пикапа. Хотя ИМХО в любом случае нужно делать проверку на стороне сервера, а не просто выполнять действие пикапа. Перекладывать это на сторону клиента не очень разумно, если выдача оружия влияет на что-то в значительной мере.
Reply
#3

Используй тип 23 и просто удаляй пикап после того как его подняли, одна строчка кода.
Reply
#4

Stepashka,
Пикап находится на ДМ зоне. Для всех игроков
После того как игрок его взял, он не должен его видеть в течение 20-30 секунд. Но при этом его видят и могут поднимать другие люди

stabker,
Как-то не понял что за проверка.
Можно по подробнее и желательно кодом.

Проверка на оружие перед поднятием? Что это даст? Патроны выдаются в любом случае, даже если у тебя до того была пушка или не была.
Происходит так: подбираешь пикап, выдает заданное оружие с заданным количеством патронов (те что я указал в коде), через 0,4 секунд (примерно) выдаются лишние патроны (как в статичном).

Пришел в голову только один вариант:
1. Высчитать количество патронов которые выдают статические пикапы для каждой модели,
2. Когда поднимаешь пикап выдается оружие, получаем GetWeaponData (все пушки игрока).
3. Получаем слот полученной пушки, отнимаем *фейковые* (лишние) патроны выданные багом.
4. Обнуляем все оружие игрока.
5. Выдаем все оружия заново, но выданное оружие пикапом выдаем последним.

Но вот сама проблема, причина почему я до сих пор не тестил данный способ.
Quote:

через 0,4 секунд (примерно) выдаются лишние патроны (как в статичном).

Эти 0,4 секунд... В этом паблике где я выполняю всю эту химию, я не получу данные патроны.
Пускать таймер мне кажется тоже не вариант.... Ведь таймер не точный.
Есть конечно инклюд timerfix (как-то так) но я сомневаюсь все равно что все будет ровно.
Мне кажется могут быть заддержки между выдачей патронов (эти 0,4 сек) и в итоге игрока кикнет просто так....
Reply
#5

Quote:

Пикап находится на ДМ зоне. Для всех игроков
После того как игрок его взял, он не должен его видеть в течение 20-30 секунд. Но при этом его видят и могут поднимать другие люди

Пусть видит, сделай так чтобы он брать не смог оружие
Reply
#6

Vladok, я это имел ввиду >

Quote:
Originally Posted by Jon_De
Посмотреть сообщение
Пусть видит, сделай так чтобы он брать не смог оружие
Тип пикапа измените и храните время последней выдачи оружия (или тому подобное).
Reply
#7

Там и считать нечего, выдаётся стандартное кол-во патронов, как в сингле: 10, 8 и т.п.
Reply
#8

Quote:
Originally Posted by OKStyle
Посмотреть сообщение
Там и считать нечего, выдаётся стандартное кол-во патронов, как в сингле: 10, 8 и т.п.
Более того, это уже реализовано в античите JunkBuster)
Что мешает просто взять это оттуда, так это наверное только то, что его уже нет на офф. форуме)
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)