Фейковый выстрел

diphenyloxalate

Участник
Автор темы
19
10
Версия MoonLoader
.026-beta
Проблема такая, на монсере никак не получается отправить фейковый выстрел. Сервер как-то детектит это и не засчитывает урон.
Код функции для отправки выстрела:
Lua:
function sendBulletSync(playerID, pedID)
    local x, y, z = getCharCoordinates(pedID)
    local pX, pY, pZ = getActiveCameraCoordinates()

    local data = allocateMemory(40)

    setStructElement(data, 0, 1, 1, false)
    setStructElement(data, 1, 2, playerID, false)

    setStructFloatElement(data, 3, pX, false)
    setStructFloatElement(data, 7, pY, false)
    setStructFloatElement(data, 11, pZ, false)

    setStructFloatElement(data, 15, x + rand(), false)
    setStructFloatElement(data, 19, y + rand(), false)
    setStructFloatElement(data, 23, z + rand(), false)

    setStructFloatElement(data, 27, rand(), false)
    setStructFloatElement(data, 31, rand(), false)
    setStructFloatElement(data, 35, rand(), false)

    setStructElement(data, 39, 1, 24, false)

    sampSendBulletData(data)
    freeMemory(data)

    setCharAmmo(1, 24, getAmmoInCharWeapon(1, 24) - 1)

    lua_thread.create(function ()
        wait(1)
        sampSendGiveDamage(playerID, 46.2, 24, 3)
    end)
end

Также пробовал в onSendPlayerSync заменять animationId, animationFlags, keysData (как при реальной стрельбе) - не помогло.
aimSync как я понял ни на что не влияет - даже если его занопать, при реальной стрельбе все ок.
weaponSync отправляется как обычно, из-за вызова setCharAmmo
Уже не знаю, на чем еще можно спалиться. Подкиньте мысль как еще сервер может детектить фейковый выстрел
 

paulohardy

вы еще постите говно? тогда я иду к вам
Всефорумный модератор
1,907
1,283
какой сервер?
так чтобы дамаг проходил, нужно отправлять еще sampSendGiveDamge
правда?
1590503345243.png
 

paulohardy

вы еще постите говно? тогда я иду к вам
Всефорумный модератор
1,907
1,283
На всех 4 не работает.
Не заметил надпись про монсер, попробуй руками прицелиться в момент отправки выстрела, а так же убедись в том, что игрок не за стеной и не на слишком большом расстоянии. Так же замени третью строку на координаты своего педа, у тебя отправка выстрела от камеры, а выстрел то идет от скина
 

diphenyloxalate

Участник
Автор темы
19
10
Так же замени третью строку на координаты своего педа, у тебя отправка выстрела от камеры, а выстрел то идет от скина
getCharCoordinates указывает на центр персонажа, в районе живота. За такую стрельбу сразу кик.
getActiveCameraCoordinates как раз указывает на оригин пули при обычной стрельбе.

а так же убедись в том, что игрок не за стеной и не на слишком большом расстоянии
Пробовал, это все слишком очевидно.
 
Последнее редактирование:

paulohardy

вы еще постите говно? тогда я иду к вам
Всефорумный модератор
1,907
1,283
getActiveCameraCoordinates как раз указывает на оригин пули при обычной стрельбе.
эта функция указывает на координаты камеры, а не на origin выстрела
два выстрела с разным положением камеры:
1590569033501.png