 |
|
 |
|
|
|
Последние Файлы GTA 4 |
Последние Файлы GTA-MP |
Реклама |
|
|
|
|
|
[FS+INC] OnPlayerHitSystem
| |
| toneysix | Дата: Среда, 14.09.2011, 04:59 | Сообщение # 61 |
|
Джэдай
Группа:
I'm V.I.P.
Сообщений: 1731
Награды: 77
Город: Салават
Репутация: 1825
Замечания: 0%
Статус: 
| Quote За 2010 год, с глупым алгоритмом, который прокручивает цикл со сдвигом по 1.0 юниту и проверкой crazy т.е. он буквально прорисовывает траекторию полёта пули (определяет только headshot), не позавидуешь тому кто поставит этот скрипт с онлайном выше 20 человек. Прорисовывает? Это же смешно))) Так называемый вектор рассчитывается чисто математическими формулами векторов, никакой прорисовки не существует, все эти расчеты примитивная работа компьютера, которая выполняется за сотую долю миллисекунд. Далее на счет цикла, цикл будет работать только на тех, кто стреляет, и обновляться он будет раз в 1 секунду, больше не надо. Никто не стреляет - ничего не просчитывается, стреляет один человек, просчет идет только для него, все. Это все работает быстрее, чем что-либо можно себе представить, просто грамотно надо реализовать всего-лишь. Для примера, берем точку (игрок, который стреляет), проводим от неё вектор ко всем видящем точкам (игроки в области видимости данного игрока, по которым возможно стреляет игрок), и получаем результат, на сколько данный вектор отклонен от начальной точки, то есть никак иначе насколько наш вектор отпущенной от начальной точки перпендикулярен данной точки, то есть никак иначе, куда смотрит прицел игрока, это и есть представление нашей точки. Cобственно это все, я изложил в предыдущем посте, на математическом языке.
Русскоязычныи портал о MTA/GTA-IV-MP | http://multi-theft-auto.ru
Сообщение отредактировал toneysix - Среда, 14.09.2011, 05:22 |
| |
|
|
| AirKite | Дата: Среда, 14.09.2011, 06:01 | Сообщение # 62 |
|
Долгожитель
Группа:
I'm V.I.P.
Сообщений: 1671
Награды: 21
Город: Новосибирск
Репутация: 2070
Замечания: 0%
Статус: 
| Quote (toneysix) Прорисовывает? Это же смешно))) Так называемый вектор рассчитывается чисто математическими формулами векторов Под прорисовывает я подразумевал математические расчёты. В debug есть CreateObject, с помощью которого можно наблюдать ту самую траекторию.
Quote (toneysix) Никто не стреляет - ничего не просчитывается, стреляет один человек, просчет идет только для него, все. Это все работает быстрее, чем что-либо можно себе представить, просто грамотно надо реализовать всего-лишь. Для примера, берем точку (игрок, который стреляет), проводим от неё вектор ко всем видящем точкам (игроки в области видимости данного игрока, по которым возможно стреляет игрок), и получаем результат, на сколько данный вектор отклонен от начальной точки, то есть никак иначе насколько наш вектор отпущенной от начальной точки перпендикулярен данной точки, то есть никак иначе, куда смотрит прицел игрока, это и есть представление нашей точки. Cобственно это все, я изложил в предыдущем посте, на математическом языке. Ты правильно говоришь, но совсем не в тему. Ты о правильной реализации. Тот OnPlayerHit что выложен тут, почти так и реализован. Единственное с векторами намудрил чуток
Но речь сейчас не о том, как сделать лучше... или о oph а о скрипте на который ведёт ссылка в посте _Dark_. А именно http://forum.sa-mp.com/showthread.php?t=138791
Сначала открой скрипт, посмотри реализацию. Цикл который прокручивает дистанцию (расчёт конечной точки по вектору камеры) и сверяет позицию точки с позицией игрока
Для ленивых что то качать: Code do { x[0] += (x[1] * 1.0); y[0] += (y[1] * 1.0); z[0] += (z[1] * 1.0);
#if defined DEBUG #if !defined NO_LOS SetTimerEx("DestroyMe", DESTROY_LOS, 0, "i", CreateObject(1239, x[0], y[0], z[0], 0.0, 0.0, 0.0)); #endif #endif
#if !defined FOR_EACH for(new i = 0; i < MAX_PLAYERS; ++i) #if !defined DEBUG if(IsPlayerConnected(i)) #endif #else foreach(HSVictim, i) #endif { if( i != playerid) { GetPlayerPos(i, x[2], y[2], z[2]); if(GetPlayerSpecialAction(i) == SPECIAL_ACTION_DUCK) z[2] -= 0.6; else z[2] += 0.8; if(PointInRangeOfPoint(0.5, x[0], y[0], z[0], x[2], y[2], z[2])) { SetPlayerHealth(i, 0.0); #if defined DEBUG count2 = GetTickCount(); count1 = count2 - count1; printf("\n Player hit\n Max Players Looped: %d\n Max Weapon Range: %.2f\n Distance to Hit: %.2f\n Total execution time: %8d ms",i,range,dist,count1); count1=count2; #endif return 1; } } } dist += 1.0; } while( dist < range );
p.s. Как бы читай тему целиком. А то не в тему что то ответил.
[1337GAMES] Easy RP (SAMP SERVER, DEVELOPMENT, NOT SAMP-RP, SMART LIFE)
Jabber: airkite@qip.ru [Addon] QuickBinder [FS] Online Players Record
Сообщение отредактировал AirKite - Среда, 14.09.2011, 06:03 |
| |
|
|
| toneysix | Дата: Среда, 14.09.2011, 06:16 | Сообщение # 63 |
|
Джэдай
Группа:
I'm V.I.P.
Сообщений: 1731
Награды: 77
Город: Салават
Репутация: 1825
Замечания: 0%
Статус: 
| AirKite я сразу просто не понял, к какому доводу относился твой предыдущий пост по-поводу нагрузки. То, что там ты выше выложил, кроме как отвращения ничего более не вызывает. Проще говоря некачественная порнуха, ну или чтобы особо выразить свои эмоции секс со страхоуепищем xD
Русскоязычныи портал о MTA/GTA-IV-MP | http://multi-theft-auto.ru
|
| |
|
|
| AirKite | Дата: Среда, 14.09.2011, 06:24 | Сообщение # 64 |
|
Долгожитель
Группа:
I'm V.I.P.
Сообщений: 1671
Награды: 21
Город: Новосибирск
Репутация: 2070
Замечания: 0%
Статус: 
| toneysix, это кстати не самый страшный код подобного скрипта на SA-MP форуме.
[1337GAMES] Easy RP (SAMP SERVER, DEVELOPMENT, NOT SAMP-RP, SMART LIFE)
Jabber: airkite@qip.ru [Addon] QuickBinder [FS] Online Players Record
|
| |
|
|
| stepa | Дата: Понедельник, 19.09.2011, 14:05 | Сообщение # 65 |
|
Новенький
Группа:
Продвинутые
Сообщений: 38
Награды: 1
Город: Новосибирск
Репутация: 203
Замечания: 20%
Статус: 
| Теперь этот скрипт стал бесполезным в sa-mp 0.3d Но все равно, скрипт хорош)
М+М - <3 М+Ж - :cool: Ж+Ж - <3
|
| |
|
|
| ZiGGi | Дата: Понедельник, 19.09.2011, 14:23 | Сообщение # 66 |
|
Мастер джэдай
Группа:
Продвинутые
Сообщений: 2652
Награды: 34
Город: St. Petersburg
Репутация: 2102
Замечания: 20%
Статус: 
| Quote (stepa) Теперь этот скрипт стал бесполезным в sa-mp 0.3d Но все равно, скрипт хорош) Ваще-то нет, этот скрипт может определить дистанцию, с которого нанесён урон и часть тела... Разве-что его можно модифицировать для 0.3d...
Бложе [indent]Мой блог Уроки по Pawn[/indent]
Open-GTO [indent]Блог разработчиков GitHub: https://github.com/Open-GTO/Open-GTO Сборки мода с сервером тут[/indent]
|
| |
|
|
| AirKite | Дата: Понедельник, 19.09.2011, 17:48 | Сообщение # 67 |
|
Долгожитель
Группа:
I'm V.I.P.
Сообщений: 1671
Награды: 21
Город: Новосибирск
Репутация: 2070
Замечания: 0%
Статус: 
| Quote (ZiGGi) Разве-что его можно модифицировать для 0.3d... Ну да, на 0.3d его можно переделать ещё проще. Думаю это кто то сделает быстрее меня. Есил нет, то скорее всего напишу INC, ибо по коду там вообще мелочи будут.
[1337GAMES] Easy RP (SAMP SERVER, DEVELOPMENT, NOT SAMP-RP, SMART LIFE)
Jabber: airkite@qip.ru [Addon] QuickBinder [FS] Online Players Record
|
| |
|
|
| KyPaITaTKa_XIX | Дата: Четверг, 27.09.2012, 20:15 | Сообщение # 68 |
|
Новенький
Группа:
Пользователи
Сообщений: 35
Награды: 0
Город: Ganduras
Репутация: -87
Замечания: 20%
Статус: 
| AirKite, я фанат Вашего фс, он уже как три самп версии неизменно служит моему серверу, и я уже даже смирился с тем что я так и не видел исходника (это очень печалит ;( ). Уже прошел год, но никто так и не сделал ничего подобного для 0.3д (а уже и 0.3е), сделайте это чудо на 0.3е, пожалуйста Я буду очень благодарен, и не только я... p.s Напишите ответ, пожалуйста.
|
| |
|
|
| AirKite | Дата: Пятница, 28.09.2012, 02:50 | Сообщение # 69 |
|
Долгожитель
Группа:
I'm V.I.P.
Сообщений: 1671
Награды: 21
Город: Новосибирск
Репутация: 2070
Замечания: 0%
Статус: 
| KyPaITaTKa_XIX, да всё в планах и планах... куча проектов, куча дел. А ещё эта лень... Кто знает, может быть потоки энергии с космоса достигнут меня и я сделаю всё что планировал. В том числе и OPH для 0.3e
[1337GAMES] Easy RP (SAMP SERVER, DEVELOPMENT, NOT SAMP-RP, SMART LIFE)
Jabber: airkite@qip.ru [Addon] QuickBinder [FS] Online Players Record
|
| |
|
|
| KyPaITaTKa_XIX | Дата: Пятница, 28.09.2012, 13:34 | Сообщение # 70 |
|
Новенький
Группа:
Пользователи
Сообщений: 35
Награды: 0
Город: Ganduras
Репутация: -87
Замечания: 20%
Статус: 
| Quote (AirKite) Кто знает, может быть потоки энергии с космоса достигнут меня и я сделаю всё что планировал. В том числе и OPH для 0.3e Что ж, будем расчитывать на Ваши "потоки из космоса"
|
| |
|
|
| Mike2195 | Дата: Суббота, 06.10.2012, 15:39 | Сообщение # 71 |
|
Новенький
Группа:
Пользователи
Сообщений: 24
Награды: 0
Репутация: 10
Замечания: 0%
Статус: 
| +++ за pwn)
Ведётся набор тестеров на игровой сервер BCLRP. Пишите в ICQ - 9978718.
|
| |
|
|
| KoKsS | Дата: Вторник, 09.10.2012, 08:41 | Сообщение # 72 |
|
Новенький
Группа:
Продвинутые
Сообщений: 64
Награды: 0
Город: Москва
Репутация: 17
Замечания: 0%
Статус: 
| Пригодился FS
|
| |
|
|
|
 |
|
 | |
| |
|