Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Античит на оружие некорректно устанавливает реальное оружие #15

Closed
NexiusTailer opened this issue Dec 19, 2017 · 3 comments

Comments

@NexiusTailer
Copy link
Contributor

NexiusTailer commented Dec 19, 2017

if (gPlayerWeapons[playerid][slot][e_ID] != weaponid) {
// set right weapon
GivePlayerWeapon(playerid, gPlayerWeapons[playerid][slot][e_ID], 0);
// report
Protection_GivePlayerWarning(playerid, PROTECTION_WEAPON, "weaponid %d != %d", gPlayerWeapons[playerid][slot][e_ID], weaponid);
}

Как видно из названия и кода выше, это не работает, к примеру, если игрок не имел оружия в одном из слотов и вдруг в нём какое-то начитерил (банально взять стандартный собейт и выбрать вкладку "Weapons" для проверки). И это также не будет правильно работать (и наоборот вместе с тем даёт обход на легальный чит патронов), если я, имея оружие с меньшим количеством патронов начитерю в этот слот аналогичное оружие с большим количеством патронов. Как вариант, нужно также обнулять и патроны от предыдущего начитерённого и учитывать все возможные случаи, подобные тем что выше.

@ziggi
Copy link
Member

ziggi commented Dec 19, 2017

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

Согласен.

И это также не будет правильно работать (и наоборот вместе с тем даёт обход на легальный чит патронов), если я, имея оружие с меньшим количеством патронов начитерю в этот слот аналогичное оружие с большим количеством патронов. Как вариант, нужно также обнулять и патроны от предыдущего начитерённого и учитывать все возможные случаи, подобные тем что выше.

Вот тут не понял. Проверка на количество патрон идёт ниже.

@NexiusTailer
Copy link
Contributor Author

NexiusTailer commented Dec 19, 2017

Вот тут не понял. Проверка на количество патрон идёт ниже.

А, эт кажется я уже не заметил, что проверка на патроны не под else if, а под if идёт)
Тогда со вторым вроде как всё нормально. Странно только, что при тесте я смог спокойно начитерить оружие с патронами (Sawn-off shotgun) и ни оружие, ни патроны при этом не обнулялись.

@ziggi
Copy link
Member

ziggi commented Dec 20, 2017

Да проверку на оружие нужно будет сильно переделывать, ибо, как оказалось, GetPlayerWeapon иногда может вернуть 0, даже если оружие в руках есть.
Возможно более надёжнее будет делать проверку в OnPlayerWeaponShot.

ziggi added a commit that referenced this issue Oct 11, 2018
gPlayerZeroBulletsChecks now is a char array
Add additional check for PROTECTION_WEAPON_ZERO_BULLETS value
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants