Баг при смерти
#1

Столкнулся с проблемой такого характера. При убийстве игрока playerid убийцей killerid, и если в момент смерти playerid был в движении, бежал к примеру, продолжает бегать пока еще раз сам себя не убьет. Я использовал такое вот решение
Code:
new pLastAnimIndex[MAX_PLAYERS];
в onplayerupdate
Code:
pLastAnimIndex[playerid] = GetPlayerAnimationIndex(playerid);
и в public OnPlayerDeath
Code:
new animlib[32], animname[32];
GetAnimationName(pLastAnimIndex[playerid],animlib,32,animname,32);
if(strcmp(animlib, "PED", true) != 0) ClearAnimations(playerid);
Теперь playerid продолжает бегать с 0 hp и через секунд 5 умирает, но изредка уже происходит подобное
Reply
#2

Как? Как он продолжает бегать то? Завалили - сразу анимация смерти, ни разу не было такого, чтоб анимация оставалась.
Reply
#3

Такое бывает если игрок перезашел не выходя из игры. Или у него пропало соединение на несколько секунд и у него вылетело. Или даже при рестарте сервера. Вообщем при перезаходе игрока не выходя из игры
Reply
#4

У меня такое часто бывает из-за того, что я в OnPlayerGiveDamage убиваю игрока (хп на 0 изменяю).
Reply
#5

Ап тему.
Описание самого бага:
После того как игрока убивают, у него становится 0 хп, он продолжает бегать и жить, пока он сам себе еще раз не нанесет урон. Другие игроки видят тело, что лежит. После перезахода в игру, баг исчезает. А если еще раз перезайти он может снова появиться, или в следующие разы, когда вы зайдете в GTA он возобновится.

Спустя столько времени я еще 1 человек который встретился с этим багом.
Прошу помощи. Вариант сверху не помогает, использовал много других вариантов - не помогло.
Чистил полностью мод - не помогло. Такое чуство, что баг находится нигде, но почему-то вызывается. Хостер если что рухостер. Может быть и такое, что бага нету пару дней, а потом он опять появляется. 3 месяца ищу решение, ничего не помогает.
Тут я думаю нужно сначало найти причину бага, а потом его фиксить. Я не знаю от чего он вызывается, он рандомный и живет сам по себе.
Прошу помощи прям в теме.(Или же мне в ВК http://vk.com/id113032878 )
Reply
#6

Если игрок в течение 15 секунд после смерти не заспавнился - спавнить его самому
Reply
#7

Принудительно убивать убитого в OnPlayerDeath не пробовали?
Reply
#8

Quote:
Originally Posted by Stepashka
View Post
Принудительно убивать убитого в OnPlayerDeath не пробовали?
Если SetPlayerHealth(playerid, 0) то не поможет, если игрок не заспавнился после смерти его нужно подбрасывать на небольшую высоту и тогда он уже умирает

Как я решил проблему указанную в первом посте:
В моем случае на кнопку пробел вызывалась функция остановки анимации и если игрок во время своей смерти нажимал эту кнопку у него сбивалась анимация смерти вроде как и он продолжал бегать, я просто там добавил проверку, чтобы срабатывало только если игрок со здоровьем > 0 и вроде перестало, однако есть исключения если игрок погибает в огне, он не заспавнится пока его не вынесет за пределы огня и если игрок падает с большой высоты иногда случается такой баг не срабатывает анимация прыжка с парашютом он шлепается об землю и продолжает бегать
Reply
#9

На сервере нет никаких кнопок для сбытия анимации, и вообще включение анимаций.

Баг еще в зтом что иногда просто не вызывается OnPlayerDeath.
GetPlayerHealth показывает что у игрока 100.0 хп
Игрок не может садится в транспорт, приседать.
Не видит еще пикапы.

OnPlayerUpdate не вызывается.
Пробывал делать таймер на 250мс с повтором, там куча химии с хп if(health <1.0) OnPlayerDeath, куча всяких проверок, попытка отключить стандартную смерть, блочить респавн и т.д. - но вот всеравно есть баги иногда ClearAnims + SetHP 0.0 + SetHP 1.0 + SpawnPlayer + ClearAnims + SetHP 2.0
Всеравно иногда игрок не спавнится и нужно повторять SetHP 1.0 + SpawnPlayer пару раз через команду.

Вообщем таймер с проверкой не конает тоже.

Даже если OnPlayerDeath вызывается и сделать таймер на 10 сек респавн, всеравно будут баги т.к. игрок мог быть АФК и т.д.
Reply
#10

У вас установлены читы? Может проблема только у вас такая? Сталкивался с этим если устанавливал mod_sa для того что бы делать античит.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)