SA-MP Forums

Go Back   SA-MP Forums > Non-English > Languages > Русский/Russian

Reply
 
Thread Tools Display Modes
Old 24/05/2015, 07:07 AM   #1
kennydalglish
Big Clucker
 
Join Date: Dec 2014
Posts: 151
Reputation: 8
Default Функция IsCoordinatesLand

Доброго времени суток, хотелось бы узнать как реализовать функцию которая узнавала что координаты находятся на суши?
kennydalglish is offline   Reply With Quote
Old 24/05/2015, 07:17 AM   #2
Stepashka
Godfather
 
Stepashka's Avatar
 
Join Date: Jul 2008
Location: near PC
Posts: 5,465
Reputation: 131
Default Re: Функция IsCoordinatesLand

Определить координаты уровня океана и сверять Z, также добавить поправки на реки и озера.
__________________
Клятва Страуструпа: "Я обязуюсь прилежно комментировать свой код, не использовать goto и следить за состоянием своих потоков и выделяемой памяти. Я обязуюсь не оставлять мусора в системе и избегать однобуквенных переменных. Ресет." © Куч
M&M GM
Status: ON HOLD

Stepashka is offline   Reply With Quote
Old 24/05/2015, 07:32 AM   #3
kennydalglish
Big Clucker
 
Join Date: Dec 2014
Posts: 151
Reputation: 8
Default Re: Функция IsCoordinatesLand

Quote:
Originally Posted by Stepashka View Post
Определить координаты уровня океана и сверять Z, также добавить поправки на реки и озера.
Каким образом узнать координаты океана, нырнуть что ли под дебагом координат в OnPlayerUpdate?
kennydalglish is offline   Reply With Quote
Old 24/05/2015, 07:35 AM   #4
Stepashka
Godfather
 
Stepashka's Avatar
 
Join Date: Jul 2008
Location: near PC
Posts: 5,465
Reputation: 131
Default Re: Функция IsCoordinatesLand

Quote:
Originally Posted by kennydalglish View Post
Каким образом узнать координаты океана, нырнуть что ли под дебагом координат в OnPlayerUpdate?
Можно просто поискать по форуму.
__________________
Клятва Страуструпа: "Я обязуюсь прилежно комментировать свой код, не использовать goto и следить за состоянием своих потоков и выделяемой памяти. Я обязуюсь не оставлять мусора в системе и избегать однобуквенных переменных. Ресет." © Куч
M&M GM
Status: ON HOLD

Stepashka is offline   Reply With Quote
Old 24/05/2015, 07:41 AM   #5
po61
Little Clucker
 
Join Date: Oct 2013
Posts: 27
Reputation: 3
Default Re: Функция IsCoordinatesLand

Quote:
Originally Posted by kennydalglish View Post
Каким образом узнать координаты океана, нырнуть что ли под дебагом координат в OnPlayerUpdate?
пишешь команду с сбором координат
(Вот пример на zcmd/dc_cmd и т.п.)
PHP Code:
CMD:getwaterlevel(playeridparams[]){
    
GetPlayerPos(playeridparams[0],params[1],params[2]);
    
pritnf("%.2f"params[2]);
    return 
1;

po61 is offline   Reply With Quote
Old 24/05/2015, 07:56 AM   #6
Stepashka
Godfather
 
Stepashka's Avatar
 
Join Date: Jul 2008
Location: near PC
Posts: 5,465
Reputation: 131
Default Re: Функция IsCoordinatesLand

Quote:
Originally Posted by po61 View Post
пишешь команду с сбором координат
(Вот пример на zcmd/dc_cmd и т.п.)
PHP Code:
CMD:getwaterlevel(playeridparams[]){
    
GetPlayerPos(playeridparams[0],params[1],params[2]);
    
pritnf("%.2f"params[2]);
    return 
1;


Есть прекрасная встроенная команда. А если приводите код то лушче чистый без использования каких бы то ни было инструментов.
__________________
Клятва Страуструпа: "Я обязуюсь прилежно комментировать свой код, не использовать goto и следить за состоянием своих потоков и выделяемой памяти. Я обязуюсь не оставлять мусора в системе и избегать однобуквенных переменных. Ресет." © Куч
M&M GM
Status: ON HOLD

Stepashka is offline   Reply With Quote
Old 24/05/2015, 08:17 AM   #7
kennydalglish
Big Clucker
 
Join Date: Dec 2014
Posts: 151
Reputation: 8
Default Re: Функция IsCoordinatesLand

Quote:
Originally Posted by Stepashka View Post
Определить координаты уровня океана и сверять Z, также добавить поправки на реки и озера.
Quote:
Originally Posted by Stepashka View Post
Можно просто поискать по форуму.
Ну чего то я по форуму прошелся по запросу "океан", но не чего путного не нашел. Можно ссылочку?
kennydalglish is offline   Reply With Quote
Old 24/05/2015, 08:20 AM   #8
po61
Little Clucker
 
Join Date: Oct 2013
Posts: 27
Reputation: 3
Default Re: Функция IsCoordinatesLand

Quote:
Originally Posted by kennydalglish View Post
Ну чего то я по форуму прошелся по запросу "океан", но не чего путного не нашел. Можно ссылочку?
http://forum.sa-mp.com/showpost.php?...98&postcount=6

// http://forum.sa-mp.com/search.php?searchid=9514574
po61 is offline   Reply With Quote
Old 24/05/2015, 08:37 AM   #9
OKStyle
High-roller
 
OKStyle's Avatar
 
Join Date: May 2008
Location: Russia
Posts: 3,062
Reputation: 117
Default Re: Функция IsCoordinatesLand

А почему бы просто не использовать: !IsPlayerInWater?

Есть 2 варианта: с анимациями и координатами.

Code:
stock IsPlayerInWater(playerid) 
{ 
    if(IsPlayerInAnyVehicle(playerid)) return 0; 
    new animlib[32], animname[32]; 
    GetAnimationName(GetPlayerAnimationIndex(playerid), animlib, sizeof(animlib), animname, sizeof(animname)); 
    return (strfind(animname, "swim", true) != -1 || strfind(animname, "water", true) != -1) ? 1 : 0; 
}
В данном конкретном примере можно и 1 массив удалить, используя для записи только animname, всё равно только последнее значение туда запишется.

Для координат можно использовать функцию http://pastebin.com/kQBbrVzC

Координаты "прямоугольников" воды и бассейнов была тут на форуме.
__________________
O.K.Style™ Laboratory
Kalcor: "... it's makes the game look like it's not GTA. This mod is called San Andreas Multiplayer. It's not a custom game engine which you can script..."
OKStyle is offline   Reply With Quote
Old 24/05/2015, 08:51 AM   #10
Stepashka
Godfather
 
Stepashka's Avatar
 
Join Date: Jul 2008
Location: near PC
Posts: 5,465
Reputation: 131
Default Re: Функция IsCoordinatesLand

Quote:
Originally Posted by OKStyle View Post
А почему бы просто не использовать: !IsPlayerInWater?

Есть 2 варианта: с анимациями и координатами.

Code:
stock IsPlayerInWater(playerid) 
{ 
    if(IsPlayerInAnyVehicle(playerid)) return 0; 
    new animlib[32], animname[32]; 
    GetAnimationName(GetPlayerAnimationIndex(playerid), animlib, sizeof(animlib), animname, sizeof(animname)); 
    return (strfind(animname, "swim", true) != -1 || strfind(animname, "water", true) != -1) ? 1 : 0; 
}
В данном конкретном примере можно и 1 массив удалить, используя для записи только animname, всё равно только последнее значение туда запишется.

Для координат можно использовать функцию http://pastebin.com/kQBbrVzC

Координаты "прямоугольников" воды и бассейнов была тут на форуме.
А кто-то говорил про игрока, вроде вопрос был про координаты?!
__________________
Клятва Страуструпа: "Я обязуюсь прилежно комментировать свой код, не использовать goto и следить за состоянием своих потоков и выделяемой памяти. Я обязуюсь не оставлять мусора в системе и избегать однобуквенных переменных. Ресет." © Куч
M&M GM
Status: ON HOLD

Stepashka is offline   Reply With Quote
Reply

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
Массивы, функция mxstr Русский/Russian 16 30/12/2013 07:43 AM
Функция ShowPlayerDialog через public stabker Русский/Russian 9 27/08/2012 08:55 PM
Функция разделения строки -Stranger- Русский/Russian 3 16/01/2012 06:42 AM
php функция - вывод онлайн игроков Crystal_Speed Русский/Russian 6 14/01/2012 09:06 PM
функция random() Crystal_Speed Русский/Russian 8 18/01/2011 12:14 PM


All times are GMT. The time now is 03:56 PM.


Powered by vBulletin® Version 3.8.6
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.