05:06
ОбновитьСмайлыУправление мини-чатом
МИНИ-ЧАТ
Главная страница!

 



 
          





Рекомендуем:





Последние Файлы GTA 4 Последние Файлы GTA-MP Реклама
Скрипт GTA 4 элементы Watch... 07.09.2014
Ferrari 360 Spider [EPM con... 13.12.2013
Porsche Cayenne Turbo 2012 ... 13.12.2013
Shelby Terlingua Mustang v1... 13.12.2013
Hamann Lamborghini Gallardo... 27.10.2013
[GM] The Big PEN1:LS v2.00 ... 04.12.2017
Dgun (AvnanceRP,SampRP,Dimo... 19.03.2016
SAMP скрипт SX Events (MySQ... 03.03.2016
Карта ASL мэрия для SAMP се... 03.03.2016
AIM для SA-MP 0.3.7 22.02.2016
  • Страница 1 из 2
  • 1
  • 2
  • »
Модератор форума: AXE, Weddew  
Проверка на перемещение
maximus-vrnДата: Воскресенье, 06.03.2011, 18:03 | Сообщение # 1
Уверенный в себе
Группа: Продвинутые
Сообщений: 174
Награды: 2
Город: Воронеж
Репутация: 13
Замечания: 0%
Статус:
Проверка должна сработать при изменении позиции игрока например на 10 метров, что в данной проверке неверно?
Code
GetPlayerPos(i, plocx, plocy, plocz);
   if (((floatcmp(plocx, x[i]) > 10) || (floatcmp(plocx, x[i]) < -10)) || ((floatcmp(plocy, y[i]) > 10) || (floatcmp(plocy, y[i]) < -10)) || ((floatcmp(plocz, z[i]) > 10) || (floatcmp(plocz, z[i]) < -10)))
   {

stepmexДата: Воскресенье, 06.03.2011, 21:41 | Сообщение # 2
Мастер джэдай
Группа: Продвинутые
Сообщений: 2914
Награды: 35
Город: Е-бург
Репутация: 1032
Замечания: 0%
Статус:
Юзай ускорение.
Если нет ускорения, а координаты изменяются то это ТП



И создал Бог женщину!.. Существо получилось злобное, но симпатичное...
maximus-vrnДата: Воскресенье, 06.03.2011, 21:58 | Сообщение # 3
Уверенный в себе
Группа: Продвинутые
Сообщений: 174
Награды: 2
Город: Воронеж
Репутация: 13
Замечания: 0%
Статус:
Я не античит делаю, хотя тоже не помешало бы. Можно поподробнее про ускорение?
А проверка у меня должна была срабатывать каждые 10 метров, но почему-то не работает.

toneysixДата: Воскресенье, 06.03.2011, 21:58 | Сообщение # 4
Джэдай
Группа: I'm V.I.P.
Сообщений: 1731
Награды: 77
Город: Салават
Репутация: 1825
Замечания: 0%
Статус:
Это же элементарно..
Code

stock GetSpeed(playerid)
{
new Float: posX[3];
if(IsPlayerInAnyVehicle(playerid)) GetVehicleVelocity(GetPlayerVehicleID(playerid), posX[0], posX[1], posX[2]);
else GetPlayerVelocity(playerid, posX[0], posX[1], posX[2]);
return floatround(floatsqroot(posX[0]*posX[0]+posX[1]*posX[1]+posX[2]*posX[2]));
}

Использование:
if(GetSpeed(playerid) < 10)

P.S: При изменение в каком тайм фрейме? Уточни, и что такое xyz, откуда оно берется?


Русскоязычныи портал о MTA/GTA-IV-MP | http://multi-theft-auto.ru

Сообщение отредактировал toneysix - Воскресенье, 06.03.2011, 22:01
maximus-vrnДата: Воскресенье, 06.03.2011, 22:03 | Сообщение # 5
Уверенный в себе
Группа: Продвинутые
Сообщений: 174
Награды: 2
Город: Воронеж
Репутация: 13
Замечания: 0%
Статус:
Эта проверка стоит в таймере и при срабатывании координаты записываются в xyz, при следующим срабатывании настоящие координаты снова сравниваются с xyz.
toneysixДата: Воскресенье, 06.03.2011, 22:08 | Сообщение # 6
Джэдай
Группа: I'm V.I.P.
Сообщений: 1731
Награды: 77
Город: Салават
Репутация: 1825
Замечания: 0%
Статус:
maximus-vrn тогда причем тут floatcmp? Можно обойтись обычными вычислениями, получить координаты игрока, из них вычесть координаты последней точки и также каждую проверить на расстояние.


Русскоязычныи портал о MTA/GTA-IV-MP | http://multi-theft-auto.ru
maximus-vrnДата: Воскресенье, 06.03.2011, 22:11 | Сообщение # 7
Уверенный в себе
Группа: Продвинутые
Сообщений: 174
Награды: 2
Город: Воронеж
Репутация: 13
Замечания: 0%
Статус:
Я и без floatcmp пробовал, но всё равно не срабатывает.
toneysixДата: Воскресенье, 06.03.2011, 22:14 | Сообщение # 8
Джэдай
Группа: I'm V.I.P.
Сообщений: 1731
Награды: 77
Город: Салават
Репутация: 1825
Замечания: 0%
Статус:
maximus-vrn floatcmp вообще не имеет параметров меньше -1 и больше 1, ты что-то напутал в корне.

P.S:

Code
new Float: tempPos[3];
GetPlayerPos(i, tempPos[0], tempPos[1], tempPos[2]);
tempPos[0] -= x[i]; tempPos[1] -= y[i]; tempPos[2] -= z[i];            
if   ((!(tempPos[0] < 10.0) && !(tempPos[0] > -10.0))    
&& (!(tempPos[1] < 10.0) && !(tempPos[1] > -10.0))    
&& (!(tempPos[2] < 10.0) && !(tempPos[2] > -10.0)))
{
// TODO
}

Попробуй так. P.S А не легче вообще использовать стандартную IsPlayerInRangeOfPoint? к примеру if(!IsPlayerInRangeOfPoint(i, 10.0, x[i], y[i], z[i]))


Русскоязычныи портал о MTA/GTA-IV-MP | http://multi-theft-auto.ru

Сообщение отредактировал toneysix - Воскресенье, 06.03.2011, 22:38
maximus-vrnДата: Воскресенье, 06.03.2011, 22:33 | Сообщение # 9
Уверенный в себе
Группа: Продвинутые
Сообщений: 174
Награды: 2
Город: Воронеж
Репутация: 13
Замечания: 0%
Статус:
Да, с floatcmp я напутал.
А что мы делаем этим tempPos[0] -= x[i]; tempPos[1] -= y[i]; tempPos[2] -= z[i]; ? Что это за знак минус перед равно?

toneysixДата: Воскресенье, 06.03.2011, 22:37 | Сообщение # 10
Джэдай
Группа: I'm V.I.P.
Сообщений: 1731
Награды: 77
Город: Салават
Репутация: 1825
Замечания: 0%
Статус:
maximus-vrn это операция присвоения, вместо того, чтобы писать tempPos[0] = tempPos[0] - x[i]; можно написать tempPos[0] -= x[i];
Попробуй использовать функцию IsPlayerInRangeOfPoint, к примеру if(!IsPlayerInRangeOfPoint(i, 10.0, x[i], y[i], z[i]))



Русскоязычныи портал о MTA/GTA-IV-MP | http://multi-theft-auto.ru
maximus-vrnДата: Воскресенье, 06.03.2011, 22:57 | Сообщение # 11
Уверенный в себе
Группа: Продвинутые
Сообщений: 174
Награды: 2
Город: Воронеж
Репутация: 13
Замечания: 0%
Статус:
С IsPlayerInRangeOfPoint всё оказалось проще и всё работает :)

А вот насчёт этого

Code
stock GetSpeed(playerid)  
{  
new Float: posX[3];  
if(IsPlayerInAnyVehicle(playerid)) GetVehicleVelocity(GetPlayerVehicleID(playerid), posX[0], posX[1], posX[2]);  
else GetPlayerVelocity(playerid, posX[0], posX[1], posX[2]);  
return floatround(floatsqroot(posX[0]*posX[0]+posX[1]*posX[1]+posX[2]*posX[2]));  
}

я не совсем понял. GetSpeed это ускорение получается? Поставил проверку с ним в таймер с циклом и у меня эта проверка срабатывает даже если я стою.

toneysixДата: Воскресенье, 06.03.2011, 23:00 | Сообщение # 12
Джэдай
Группа: I'm V.I.P.
Сообщений: 1731
Награды: 77
Город: Салават
Репутация: 1825
Замечания: 0%
Статус:
maximus-vrn смотря какое ты условие поставил, если то, которое дал выше, что если скорость игрока менее 10, то естественно сработает.


Русскоязычныи портал о MTA/GTA-IV-MP | http://multi-theft-auto.ru
maximus-vrnДата: Воскресенье, 06.03.2011, 23:09 | Сообщение # 13
Уверенный в себе
Группа: Продвинутые
Сообщений: 174
Награды: 2
Город: Воронеж
Репутация: 13
Замечания: 0%
Статус:
Да, поставил меньше 10. Значит это скорость, т.е. нужно как-то узнать максимально возможную скорость и поставить в проверку? И при телепортации эта скорость будет превышена, так?
toneysixДата: Воскресенье, 06.03.2011, 23:14 | Сообщение # 14
Джэдай
Группа: I'm V.I.P.
Сообщений: 1731
Награды: 77
Город: Салават
Репутация: 1825
Замечания: 0%
Статус:
maximus-vrn нет, телепортацию определяют далеко не по скорости, по скорости ты можешь определить airbreak, но, airbreak часто работает вместе с телепортом, так, что если будет частое беспрерывное изменение позиции, можно трактовать, как airbreak, но если нет скорости и все-таки координаты изменяются, то это явно тп, с помощью функции можно также написать более точный anti speed hack сравнивая макс.скорость каждой машины с полученной.
P.S? Так все-таки пишешь анти-чит)



Русскоязычныи портал о MTA/GTA-IV-MP | http://multi-theft-auto.ru

Сообщение отредактировал toneysix - Воскресенье, 06.03.2011, 23:20
maximus-vrnДата: Воскресенье, 06.03.2011, 23:19 | Сообщение # 15
Уверенный в себе
Группа: Продвинутые
Сообщений: 174
Награды: 2
Город: Воронеж
Репутация: 13
Замечания: 0%
Статус:
Ясно.
stepmex писал
Quote (stepmex)
Юзай ускорение. Если нет ускорения, а координаты изменяются то это ТП

так вот как определить ускорение?

  • Страница 1 из 2
  • 1
  • 2
  • »
Поиск:





 


 


 
Хостинг от uCoz samp.at.ua