|
Проверка на перемещение
|
|
| toneysix | Дата: Воскресенье, 06.03.2011, 23:23 | Сообщение # 16 |
|
Джэдай
Группа:
I'm V.I.P.
Сообщений: 1731
Награды: 77
Город: Салават
Репутация: 1825
Замечания: 0%
Статус: 
| if(GetSpeed(playerid) < 10 && !(IsPlayerInRangeOfPoint(i, 10.0, x[i], y[i], z[i]))) Вот явный пример, когда скорость игрока меньше 10, в то время, он резко меняет позицию, но это условие больше подходит для проверки, чтобы не было ложный сигналов, когда игрок находится в тачке, так как он же может двигаться быстро.
Русскоязычныи портал о MTA/GTA-IV-MP | http://multi-theft-auto.ru
|
| |
|
|
| maximus-vrn | Дата: Понедельник, 07.03.2011, 00:05 | Сообщение # 17 |
|
Уверенный в себе
Группа:
Продвинутые
Сообщений: 174
Награды: 2
Город: Воронеж
Репутация: 13
Замечания: 0%
Статус: 
| Срабатывает неплохо на тп, вот только она ещё срабатывает при смерти.
|
| |
|
|
| toneysix | Дата: Понедельник, 07.03.2011, 01:45 | Сообщение # 18 |
|
Джэдай
Группа:
I'm V.I.P.
Сообщений: 1731
Награды: 77
Город: Салават
Репутация: 1825
Замечания: 0%
Статус: 
| maximus-vrn чтобы не срабатывала при смерти, делай проверку, OnPlayerDeath зануляй переменную, в OnPlayerSpawn восстанавливай.
Русскоязычныи портал о MTA/GTA-IV-MP | http://multi-theft-auto.ru
|
| |
|
|
| stepmex | Дата: Понедельник, 07.03.2011, 11:09 | Сообщение # 19 |
|
Мастер джэдай
Группа:
Продвинутые
Сообщений: 2914
Награды: 35
Город: Е-бург
Репутация: 1032
Замечания: 0%
Статус: 
| Ускорение http://wiki.sa-mp.com/wiki/GetPlayerVelocity Quote (toneysix) maximus-vrn чтобы не срабатывала при смерти, делай проверку, OnPlayerDeath зануляй переменную, в OnPlayerSpawn восстанавливай. http://wiki.sa-mp.com/wiki/GetPlayerState == PLAYER_STATE_SPAWNED
И создал Бог женщину!.. Существо получилось злобное, но симпатичное...
|
| |
|
|
| toneysix | Дата: Понедельник, 07.03.2011, 12:34 | Сообщение # 20 |
|
Джэдай
Группа:
I'm V.I.P.
Сообщений: 1731
Награды: 77
Город: Салават
Репутация: 1825
Замечания: 0%
Статус: 
| stepmex я никогда не доверял этим get функциями, в разных случаях дают искаженные результаты
Русскоязычныи портал о MTA/GTA-IV-MP | http://multi-theft-auto.ru
|
| |
|
|
| maximus-vrn | Дата: Понедельник, 07.03.2011, 13:24 | Сообщение # 21 |
|
Уверенный в себе
Группа:
Продвинутые
Сообщений: 174
Награды: 2
Город: Воронеж
Репутация: 13
Замечания: 0%
Статус: 
| Пробовал с обнулением переменной при смерти, не получилось, проверка срабатывает постоянно пока я после респавна стою на одном месте, как только отхожу с этого места срабатывание прекращается. Если использовать PLAYER_STATE_SPAWNED результат аналогичен предыдущему. Code public AntiSpeed(playerid) { new Float:plocx,Float:plocy,Float:plocz; for(new i=0;i<GetMaxPlayers();i++) { MaxSpeed[i] = GetPlayerSpeed(i); if(MaxSpeed[i] > 380) { new playername[30]; GetPlayerName(i, playername, MAX_PLAYER_NAME); SendClientMessage(i,COLOR_RED,"Превышение максимально возможной скорости!"); Kick(i); printf("[Античит] Игрок %s был кикнут. Зафиксированная скорость %i км/ч", playername, MaxSpeed[i]); } GetPlayerPos(i, plocx, plocy, plocz); if(!(GetPlayerState(i) == PLAYER_STATE_SPAWNED) && (GetPlayerSpeed(i) < 3) && !(IsPlayerInRangeOfPoint(i, 200.0, Antispeedx[i], Antispeedy[i], Antispeedz[i])) && (logged[i] == 1)) { SendClientMessage(i,COLOR_RED,"Телепорт"); } else { Antispeedx[i] = plocx; Antispeedy[i] = plocy; Antispeedz[i] = plocz; } } }
Сообщение отредактировал maximus-vrn - Понедельник, 07.03.2011, 13:25 |
| |
|
|
| toneysix | Дата: Понедельник, 07.03.2011, 14:05 | Сообщение # 22 |
|
Джэдай
Группа:
I'm V.I.P.
Сообщений: 1731
Награды: 77
Город: Салават
Репутация: 1825
Замечания: 0%
Статус: 
| maximus-vrn всё дело в том, что когда игрок умирает, он спавнится на совершенно другой позиции, отличающейся от места, где он погиб, я бы даже рекомендовал сделать так, создать переменную времени задержки проверки анти-чита, к примеру waitTime[playerid] = 3, и когда он погибает, устанавливать переменной значение задержки, например 5 секунд (если таймер по-секундный), но, получение координат должны работать не зависимо от этой переменной, чтобы GetPlayerPos брала его новые координаты в x y z, а проверка, которая проверяет на тп ждала эти пять секунд, пока игрок нормально не заспавнится и координаты, как положено не обновятся. Если 5 секунд будет маловато, то можно сделать 7-8, поэкспериментируй с этим.
Русскоязычныи портал о MTA/GTA-IV-MP | http://multi-theft-auto.ru
|
| |
|
|
| maximus-vrn | Дата: Понедельник, 07.03.2011, 19:19 | Сообщение # 23 |
|
Уверенный в себе
Группа:
Продвинутые
Сообщений: 174
Награды: 2
Город: Воронеж
Репутация: 13
Замечания: 0%
Статус: 
| Сделал на 10 секунд, вроде бы всё нормально, при смерти не срабатывает. Но при входе в здание координаты тоже резко меняются и получается как будто телепорт.
|
| |
|
|
| toneysix | Дата: Понедельник, 07.03.2011, 19:56 | Сообщение # 24 |
|
Джэдай
Группа:
I'm V.I.P.
Сообщений: 1731
Награды: 77
Город: Салават
Репутация: 1825
Замечания: 0%
Статус: 
| maximus-vrn ты должен сделать нестандартную команду по изменению координат SetPlayerPosEx например, там менять координаты, производить запись в массив координат и также делать задержки в переменную.
Русскоязычныи портал о MTA/GTA-IV-MP | http://multi-theft-auto.ru
|
| |
|
|
| maximus-vrn | Дата: Понедельник, 07.03.2011, 20:42 | Сообщение # 25 |
|
Уверенный в себе
Группа:
Продвинутые
Сообщений: 174
Награды: 2
Город: Воронеж
Репутация: 13
Замечания: 0%
Статус: 
| Это уже слишком сложно для меня Спасибо и на этом
|
| |
|
|
| toneysix | Дата: Понедельник, 07.03.2011, 20:54 | Сообщение # 26 |
|
Джэдай
Группа:
I'm V.I.P.
Сообщений: 1731
Награды: 77
Город: Салават
Репутация: 1825
Замечания: 0%
Статус: 
| maximus-vrn в этом нет совершенно ничего сложного, просто создаешь обычную функцию, там будет прямая запись координат в твои переменные, которые получила функция с аргументов. Далее точно также присваиваешь переменной для задержки анти-чита число, например 10, и потом меняешь с помощью стандартной функции SetPlayerPos координаты. Напиши в личку если не понял, скажу свою аську обсудим.
Русскоязычныи портал о MTA/GTA-IV-MP | http://multi-theft-auto.ru
|
| |
|
|