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

 



 
          





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





Последние Файлы 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
  • »
Модератор форума: Dima-kun  
GetDistanceBetweenPlayers
ShokkДата: Понедельник, 09.06.2008, 20:07 | Сообщение # 1
Уверенный в себе
Группа: Продвинутые
Сообщений: 293
Награды: 1
Город: Тюмень
Репутация: 3
Замечания: 60%
Статус:
Эта не встроенная функция, нужно делать самому. Измеряет расстояние от игрока до игрока.
Code

forward Float:GetDistanceBetweenPlayers(p1,p2);
public Float:GetDistanceBetweenPlayers(p1,p2){
new Float:x1,Float:y1,Float:z1,Float:x2,Float:y2,Float:z2;
if (!IsPlayerConnected(p1) || !IsPlayerConnected(p2)){
return -1.00;
}
GetPlayerPos(p1,x1,y1,z1);
GetPlayerPos(p2,x2,y2,z2);
return floatsqroot(floatpower(floatabs(floatsub(x2,x1)),2)+floatpower(floatabs(floatsub(y2,y1)),2)+floatpower(floatabs(floatsub(z2,z1)),2));
}

Это вставляем в мод. Вот возможное использование:

Code

if(strcmp(cmd,"/rob",true) == 0)
{
   if(GetDistanceBetweenPlayers(playerid,giveplayerid) < 5)
   {
       /* Выполнить действия */
   }
   else
   {
       SendClientMessage(playerid,0xFFFFFFAA," Игрок слишком далеко, подойди ближе!");
   }
   return 1;
}

Например для команды /rob ограбить игрока.



Ginex Rap - Группа "Ginex" В контакте
www.Ginex-Rap.de - Оффициальный сайт группы Ginex.
OKStyle™Дата: Вторник, 10.06.2008, 06:58 | Сообщение # 2
Мастер джэдай
Группа: I'm V.I.P.
Сообщений: 2444
Награды: 16
Город: Оренбург
Репутация: 1174
Замечания: 40%
Статус:
V4N0M, описание подправь. Не "Расстояние", а "Расстояние между 2мя игроками".


Да потому что когда человек делает на заказ он не старается. © kRiSyo
Кланяимся нофаму королю анимаций =))))))) © Manusya
В MTA - для вас все багоюзеры. Не юзают там +с только EFO и ACF. © SeWeR
YakimДата: Среда, 10.02.2010, 17:12 | Сообщение # 3
Новенький
Группа: Продвинутые
Сообщений: 67
Награды: 3
Город: Simf
Репутация: 8
Замечания: 20%
Статус:
В какой еденице измерения реультат? мне нужны километры, или хотя бы мили, чтобы соблюдать пропорции =)
Dima-kunДата: Среда, 10.02.2010, 17:20 | Сообщение # 4
Группа: Разработчики
Сообщений: 6269
Награды: 72
Репутация: 3512
Замечания: 0%
Статус:
в метрах..измерения идут..


Мои работы:
[INC] Сборник d_includes [LAST],[FS] New Demage Effect,[FS]Авто-Поворотники,
[FS]mp3player,[FS] Fun Chat Game,[FS] Car Buy Syst,[FS] Anti-AirBrk,[INC] d_setpos,
[GM] Game Move v0.1,[FS+include]Super-Armour [0.3z],[FS + Include] Multi Checkpoints
Sage_Kill_SantaДата: Среда, 24.02.2010, 08:54 | Сообщение # 5
Постоялец
Группа: Продвинутые
Сообщений: 303
Награды: 2
Город: Самара
Замечания: 0%
Статус:
DizeL-ZR, а как нибудь еденицу метров можно изменить допустим на км?
SprunkДата: Среда, 24.02.2010, 08:57 | Сообщение # 6
Хостинг-провайдер
Группа: Пользователи
Сообщений: 2451
Награды: 125
Город: Волгоград.
Репутация: 774
Замечания: 100%
Статус:
Sаgе_Kill_Sаntа нет нельзя


pawn.su - Аренда игровых серверов.

Игровой портал Game Entertainment (Game-Ent.ru)

s3apДата: Среда, 24.02.2010, 11:40 | Сообщение # 7
Местный
Группа: Продвинутые
Сообщений: 570
Награды: 7
Город: Саратов
Репутация: 382
Замечания: 80%
Статус:
Swoon, иди в школу
Как бэ GetDistanceBetweenPlayers(p1,p2)%1024 не?

SprunkДата: Среда, 24.02.2010, 12:00 | Сообщение # 8
Хостинг-провайдер
Группа: Пользователи
Сообщений: 2451
Награды: 125
Город: Волгоград.
Репутация: 774
Замечания: 100%
Статус:
Quote (VCOScript)
GetDistanceBetweenPlayers(p1,p2)%1024

оО Буду знать



pawn.su - Аренда игровых серверов.

Игровой портал Game Entertainment (Game-Ent.ru)

RogueДата: Среда, 24.02.2010, 14:41 | Сообщение # 9
Освоившийся
Группа: Пользователи
Сообщений: 128
Награды: 1
Город: Москва
Репутация: 0
Замечания: 0%
Статус:
А как сделать,чтобы когда игрок убил игрока отображалось расстояние с какого он его убил?
Dima-kunДата: Среда, 24.02.2010, 15:48 | Сообщение # 10
Группа: Разработчики
Сообщений: 6269
Награды: 72
Репутация: 3512
Замечания: 0%
Статус:
хз типа такого:

public OnPLayerDeath(playerid,killerid,reason)
{
....
format(string,sizeof(string),"Расстояние:%f",GetDistanceBetweenPlayers(playerid,killerid)) ;
SendClientMessage(playerid,0xffaa0ff,string);
return 1;
}


Мои работы:
[INC] Сборник d_includes [LAST],[FS] New Demage Effect,[FS]Авто-Поворотники,
[FS]mp3player,[FS] Fun Chat Game,[FS] Car Buy Syst,[FS] Anti-AirBrk,[INC] d_setpos,
[GM] Game Move v0.1,[FS+include]Super-Armour [0.3z],[FS + Include] Multi Checkpoints
RogueДата: Среда, 24.02.2010, 17:24 | Сообщение # 11
Освоившийся
Группа: Пользователи
Сообщений: 128
Награды: 1
Город: Москва
Репутация: 0
Замечания: 0%
Статус:
DizeL-ZR, спасибо огромное,всё работает. :)
xSLiMxДата: Среда, 24.02.2010, 18:50 | Сообщение # 12
Мастер джэдай
Группа: I'm V.I.P.
Сообщений: 2163
Награды: 34
Город: Ростов - на - Дону
Репутация: 1429
Замечания: 80%
Статус:
DizeL-ZR, если оно работает (а оно кажись работает (твой код)), то можно замутить Anti-FakeKill. Хоть их оч много, но все же. Главное знать макс видимость снайперки.
_PoNtik_Дата: Пятница, 02.04.2010, 01:37 | Сообщение # 13
Новенький
Группа: Пользователи
Сообщений: 2
Награды: 0
Город: Minsk
Репутация: 0
Замечания: 0%
Статус:
Народ подскажите pls мучаюсь уже пздц скока.
Вот функция сам:
[pwn]forward Float:GetDistanceBetweenPlayers(p1,p2);
public Float:GetDistanceBetweenPlayers(p1,p2){
new Float:x1,Float:y1,Float:z1,Float:x2,Float:y2,Float:z2;
if (!IsPlayerConnected(p1) || !IsPlayerConnected(p2)){
return -1.00;
}
GetPlayerPos(p1,x1,y1,z1);
GetPlayerPos(p2,x2,y2,z2);
return floatsqroot(floatpower(floatabs(floatsub(x2,x1)),2)+floatpower(floatabs(floatsub(y2,y1)),2)+floatpower(floatabs(floatsub(z2,z1)),2));
}[/pwn]

Тут мы задаём кординаты:
GetPlayerPos(p1,x1,y1,z1);
GetPlayerPos(p2,x2,y2,z2);

Как мне сделать вот например кординаты 1 ИД я узнаю через: GetPlayerPos(p1,x1,y1,z1);
А кординаты другие я уже знаю как обайтись без: GetPlayerPos(p2,x2,y2,z2);
Напишите pls функцию. СПС с меня +)

AirKiteДата: Пятница, 02.04.2010, 03:01 | Сообщение # 14
Долгожитель
Группа: I'm V.I.P.
Сообщений: 1671
Награды: 21
Город: Новосибирск
Репутация: 2070
Замечания: 0%
Статус:
Если тебе нужно проверить не дальше ли нужного растояния игрок, то используй встроенную функцию.
IsPlayerInRangeOfPoint(playerid, Float:range, Float:x, Float:y, Float:z);

пример:

Code
if(!strcmp("/stadium",cmdtext))
{
      if(IsPlayerInRangeOfPoint(playerid, 7.0, 2695.6880, -1704.6300, 11.8438))
      {
          SendClientMessage(playerid,0xFFFFFFFF,"You are near the Stadium entrance!");
      }
      return 1;
}

Если нужно получить именно расстояние, тогда можно переделать команду:

Code

forward Float:GetDistancePlayerToCoord(playerid,x,y,z);   
public Float:GetDistancePlayerToCoord(playerid,x,y,z){   
new Float:x1,Float:y1,Float:z1,Float:x2,Float:y2,Float:z2;   
if (!IsPlayerConnected(p1) || !IsPlayerConnected(p2)){   
return -1.00;   
}   
GetPlayerPos(playerid,x1,y1,z1);
return floatsqroot(floatpower(floatabs(floatsub(x,x1)),2)+floatpower(floatabs(floatsub(y,y1)),2)+floatpower(floatabs(floatsub(z,z1)),2));   
}




[1337GAMES] Easy RP
(SAMP SERVER, DEVELOPMENT, NOT SAMP-RP, SMART LIFE)


Jabber: airkite@qip.ru
[Addon] QuickBinder
[FS] Online Players Record


Сообщение отредактировал AirKite - Пятница, 02.04.2010, 03:03
_PoNtik_Дата: Пятница, 02.04.2010, 03:49 | Сообщение # 15
Новенький
Группа: Пользователи
Сообщений: 2
Награды: 0
Город: Minsk
Репутация: 0
Замечания: 0%
Статус:
Сделал вот так:
[pwn]forward Float:GetDistancePlayerToCoord(playerid,x,y,z);

public Float:GetDistancePlayerToCoord(playerid,x,y,z){
new Float:x1,Float:y1,Float:z1;
GetPlayerPos(playerid,x1,y1,z1);
return floatsqroot(floatpower(floatabs(floatsub(x,x1)),2)+floatpower(floatabs(floatsub(y,y1)),2)+floatpower(floatabs(floatsub(z,z1)),2));
}

public OnPlayerUpdate(playerid)
{
new Float:x,Float:y,Float:z;
x = 2823.7051;
y = 2596.9707;
z = 10.8203;
if(GetDistancePlayerToCoord(playerid,x,y,z) < 5)
{
SendClientMessage(playerid, COLOR_RED,"True!");
}
return 1;
}
[/pwn]
Не работает (

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





 


 


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