Re: Карта высот SA-MP -
De[M]oN - 18.01.2010
Quote:
|
Originally Posted by ^Psycho^
Никто не напишет скрипт который сохранит все эти точки в массив координат? Хочу посмотреть на реакцию моего хостера после запуска этого режима. Скрипт вроде бы не сложный, но я трудно себе представляю как это можно грамотно реализовать.
Кстати я тут подумал.. ведь можно вместо плагина который жрёт 70 мегабайт.. создать бота. Помещать бота в определённый участок и находить для него координату Z. Прокатит, не?
|
А зачем тебе массив? В плагине и так данные загружаются из файла в массив, который и занимает 70мб оперативы.
Угу, только бот не тот, который скриптовый NPC сейчас в сампе, а бот построенный на основе игра GTA:SA, иначе ничего толкового из этого не получится.
Re: Карта высот SA-MP -
eakwarp - 18.01.2010
Quote:
|
Originally Posted by DarkByte
Quote:
|
Originally Posted by ^Psycho^
Никто не напишет скрипт который сохранит все эти точки в массив координат? Хочу посмотреть на реакцию моего хостера после запуска этого режима. Скрипт вроде бы не сложный, но я трудно себе представляю как это можно грамотно реализовать.
Кстати я тут подумал.. ведь можно вместо плагина который жрёт 70 мегабайт.. создать бота. Помещать бота в определённый участок и находить для него координату Z. Прокатит, не?
|
А зачем тебе массив? В плагине и так данные загружаются из файла в массив, который и занимает 70мб оперативы.
Угу, только бот не тот, который скриптовый NPC сейчас в сампе, а бот построенный на основе игра GTA:SA, иначе ничего толкового из этого не получится.
|
Большинство хостеров просто недают ставить плагины, он к этому клонит.
Re: Карта высот SA-MP -
^Woozie^ - 18.01.2010
Code:
А зачем тебе массив? В плагине и так данные загружаются из файла в массив, который и занимает 70мб оперативы.
Угу, только бот не тот, который скриптовый NPC сейчас в сампе, а бот построенный на основе игра GTA:SA, иначе ничего толкового из этого не получится.
А если помещать игрока? Например у мну дома есть ноут, я приконнекчу игрока к серверу от ноута и сервер сам будет его ставить куда задано скриптом. Так за пару суток можно создать мега массив.
Re: Карта высот SA-MP -
MX_Master - 18.01.2010
Kye дал бинарный файл с координатами и шагом карты в 1 м и это занимает 70 мб. Уже есть такой же бинарник с шагом карты в 3 метра, куда меньше занимает. Вам достаточно вместо плагина загружать FS аналогичного действия, который как раз и читает в память нужный файл как массив. + в этом фс должна быть открытая функция для получения из этого массива - Z, для любой пары XY. Это как раз-таки и является заменой плагину.
Если кому-то нужен такой FS, я могу попробовать его написать. Возможно, кто-то напишет его раньше меня, т.к. у меня не так много времени.
Re: Карта высот SA-MP -
De[M]oN - 18.01.2010
Quote:
|
Originally Posted by ^Psycho^
А если помещать игрока? Например у мну дома есть ноут, я приконнекчу игрока к серверу от ноута и сервер сам будет его ставить куда задано скриптом. Так за пару суток можно создать мега массив.
|
Если ты засунешь на сервер реального игрока, с виртуальной машины или с ноута, тогда да, без проблем, SetPlayerPosFindZ и поехали

но смысла в этом нет, ибо Kye уже построил карту высот, собственно об этом и данная тема.
Quote:
|
Originally Posted by Eakwarp [Valakas.ru
]
Большинство хостеров просто недают ставить плагины, он к этому клонит.
|
С кодировкой траблы небольшие, но вообще я понял, в принципе скрипт там не сложный будет, счас быстренько чего нибудь сварганю. Но т.к. я не хочу, чтобы amx файл весил 70мб и занимал 70мб оперативной памяти, то все данные будут храниться в файле, от этого сильно быстродействие не упадёт, по крайней мере в плагине было нормально
P.S. скрипт готов, проведу тесты скорости и выложу
Re: Карта высот SA-MP -
MX_Master - 18.01.2010
(:
Если FS, то возможны также все эти же варианты из плагина.
Re: Карта высот SA-MP -
De[M]oN - 18.01.2010
Quote:
|
Originally Posted by MX_Master
(:
Если FS, то возможны также все эти же варианты из плагина.
|
Инклуд

Но все не возможны, ибо в сампе нету динамических массивов, для них есть плагин, но я же пишу без плагинный вариант. По скорости получилось в 2 раза медленнее, чем в плагине.
Code:
#define MAP_ANDREAS_MODE_NOCACHE_FULL 3 //50 sec for 2.000.000 calls of ZMapFindZ
#define MAP_ANDREAS_MODE_NOCACHE_MIN 4 //30 sec for 2.000.000 calls of ZMapFindZ
Но сомневаюсь что кому то этой скорости не хватит

Пока что появились некоторые проблемы с функциями сампа (не думал я, что базовые функции, добавленные в 0.1 версии будут бажными в 0.3...), надеюсь сегодня закончу.
Re: Карта высот SA-MP -
MX_Master - 18.01.2010
а как ты 2 байтовый float получаешь? у pawn же 4 байтовые float
Re: Карта высот SA-MP -
De[M]oN - 18.01.2010
Quote:
|
Originally Posted by MX_Master
а как ты 2 байтовый float получаешь? у pawn же 4 байтовые float
|
там не float, там unsigned short

а нам [beep], мы сделаны из мяса

проблема не в этом, оказалось что функция fseek в сампе нихера не работает, 2 часа епал моск с этим скриптом, а оказалось как обычно =\ скорость упала [beep] как. 55секунд на 250000 вызовов функции. если починят fseek, то будет 50сек на 2млн вызовов, для full и в 2 раза меньше для min.
Re: Карта высот SA-MP -
De[M]oN - 18.01.2010
В общем вот:
http://darkbyte.ath.cx/samp/zmap.inc
Пример использования:
pawn Code:
public OnGameModeInit()
{
//инициализируем карту высот
ZMapInit(MAP_ANDREAS_MODE_NOCACHE_FULL); //нужен SAfull.hmap
//ZMapInit(MAP_ANDREAS_MODE_NOCACHE_MIN); //нужен SAMin.hmap
return 1;
}
public OnGameModeExit()
{
//финализируем карту высот
ZMapInit(MAP_ANDREAS_MODE_NONE);
return 1;
}
И где нибудь в коде
pawn Code:
new Float:X,Float:Y,Float:Z;
new str[100];
GetPlayerPos(playerid,X,Y,Z);
ZMapFindZ(X,Y,Z); //Z - возвращаемый параметр
format(str,sizeof(str),"X:%f Y:%f HiZ:%f",X,Y,Z);
SendClientMessage(playerid,0xFFFFFF,str);
Re: Карта высот SA-MP -
dimonml - 05.05.2010
Я бы не был так категоричен
И 70 мегов из памяти могут легко уйти в своп и от туда доставаться долго, а файл на диске операционная система может подкешировать и все дальнейшие дисковые операции будут происходить с памятью. А на шаред хостингах, там ресурсы сервера еще много кто использует и там все еще сильней усложниться: и доступ к диску могут хотеть сразу многие и к работать с памятью интенсивнее, в результате чего в обоих случаях могут быть тормоза.
В общем тестить нужно под реальной нагрузкой на реальном хостенге/сервере, где будет этот плагин использоваться и еще в то время, когда идет хорошая нагрузка на сервер другими людьми/программами
Re: Карта высот SA-MP -
ZiGGi - 13.01.2014
Есть-ли какие-нибудь редакторы этой карты? Поискал - не нашёл.
И сохранилась у кого-нибудь Pawn реализация от DarkByte?