This is a mobile optimized page that loads fast, if you want to load the real page, click this text.

Проблема Не считывается выстрел из штурмовой винтовки

Amazingevich

Высший разум
BackEnd developer
27 Апр 2021
915
527
164
Хз) Я пока придерживаюсь какой-никакой логике
Тем более по коду у тебя выстрелами даже не пахнет (у тебя всё в рендере лежит и ты не выстрел обрабатываешь, а просто смотришь в оружие и количество патрон)
Ну типо ты хоть стреляй, хоть не стреляй - оно должно работать при выполненных условиях (с условием того что getSelectedPed действительно возвращает тебе хэш твоей рифлы и getAmmoInPed действительно возвращает тебе кол-во пулек по хэшу.

Если это всё соблюдено и всё равно не работает - ну, мэджик) Более шаристые, чем я, пацаны должны подсказать решение, если тут конечно есть подводные камни или моя логика с 0 секунд разработки на раге оказалась ложная)
 

qweqweqwe123123123

Новый участник
24 Июн 2025
29
4
13
сначала из рендера убери вызов mp.events.callRemote('inventory:shotFired', weaponHash); - как тебе сказали раньше
А потом проверь еще раз

ps. кстати, когда у меня в игровую консоль слишком часто/быстро что-то вывожу, то игра багается (когда офаю сервер, то игрок может дальше бегать, но ничего работать не будет), приходится полностью закрывать игру и запускать еще раз
 

podobaet

Новый участник
8 Апр 2025
37
0
16
JavaScript:
mp.events.add('playerWeaponShot', () => {
    const weaponHash = mp.game.weapon.getSelectedPed(mp.players.local.handle);
    if (weaponHash !== 0) {
        mp.events.callRemote('inventory:shotFired', weaponHash);
    }
});

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

qweqweqwe123123123

Новый участник
24 Июн 2025
29
4
13
везде ставь console логи и смотри как работает код, заходит ли он в условия твои
 
Реакции: Amazingevich

podobaet

Новый участник
8 Апр 2025
37
0
16

При выстреле с пистолета получаю такой консоль лог, в БД все переписывается. При выстреле с автомата/СМГ - даже консоль лог не появляется
 

Vermilion

Высший разум
High developer
BackEnd developer
FrontEnd developer
29 Сен 2021
1,575
970
181
35
Попробуй заменить нативку получения текущего оружия

Код:
const weaponHash = mp.game.invoke('0x0A6DB4965674D243', mp.players.local.handle);
 
Реакции: XDeveluxe и Amazingevich

Amazingevich

Высший разум
BackEnd developer
27 Апр 2021
915
527
164
Выброси вообще этот ивент на время из головы.

Тебе нужно убедиться что у тебя в weaponHash приходит нормальный хэш и ты дальше проходишь проверку. Это то, о чем я пишу с первого сообщения тебе)
Проблема не в серверном ивенте, а в том дерьме, что происходит у тебя до его вызова.
 

Vermilion

Высший разум
High developer
BackEnd developer
FrontEnd developer
29 Сен 2021
1,575
970
181
35
Реакции: Inoi

Amazingevich

Высший разум
BackEnd developer
27 Апр 2021
915
527
164
Посмотреть вложение 22734
С пистолетами же приходит нормально
Ты локализуй сначала проблему, а потом ищи способы её решения. Ну приходят и приходят - заебумба. Найди строчку которая у тебя не правильно работает (уже 100500 вариантов накидали выше) и посмотри че можно с этим сделать (также накинули вариант выше).
 

Amazingevich

Высший разум
BackEnd developer
27 Апр 2021
915
527
164
Типо в чем проблема въебать лог после const weaponHash и убедиться что он у тебя не работает? Ты 2 часа уже въебал с вопросом "ну а пистолеты же работают".
Ну значит пистолеты работают, а автоматы не работают и нужно узнавать хэш другим способом (если теория действительно подтвердится).
 
Реакции: Inoi

Vermilion

Высший разум
High developer
BackEnd developer
FrontEnd developer
29 Сен 2021
1,575
970
181
35
Значит будет сервер без автоматов
 
Реакции: qweqweqwe123123123

Amazingevich

Высший разум
BackEnd developer
27 Апр 2021
915
527
164

podobaet

Новый участник
8 Апр 2025
37
0
16

через mp.console хэш автомата выдается корректный

 

Amazingevich

Высший разум
BackEnd developer
27 Апр 2021
915
527
164
Значит мысль с клиентом отбрасываем. Возвращай ивент и смотри первые строки на корректность работы (тоже обложи логами и посмотри че они выводят, вот прямо с первой строчки)

Код:
const data = playerInventories.get(player.id);
if (!data) return;

const weaponItem = data.items.find(item =>
item.weaponHash && mp.joaat(item.weaponHash) === weaponHash
);
if (!weaponItem) return;
 
Реакции: podobaet

akudinov28

Старожил
24 Фев 2021
460
221
106
item.weaponHash && mp.joaat(item.weaponHash) === weaponHash

Проблема в этой проверке, я уверен. Смотри, что у тебя приходит в weaponHash. Смотри, что лежит в item.weaponHash. Смотри, что возвращает mp.joatt(item.weaponHash). Проверяй все типы (у тебя там строгое равенство). Возможно, ты сравниваешь число со строкой.
 
Последнее редактирование:
Реакции: youngBeaver и podobaet