Карта высот SA-MP
#21

Quote:
Originally Posted by ^Psycho^
Никто не напишет скрипт который сохранит все эти точки в массив координат? Хочу посмотреть на реакцию моего хостера после запуска этого режима. Скрипт вроде бы не сложный, но я трудно себе представляю как это можно грамотно реализовать.


Кстати я тут подумал.. ведь можно вместо плагина который жрёт 70 мегабайт.. создать бота. Помещать бота в определённый участок и находить для него координату Z. Прокатит, не?
А зачем тебе массив? В плагине и так данные загружаются из файла в массив, который и занимает 70мб оперативы.
Угу, только бот не тот, который скриптовый NPC сейчас в сампе, а бот построенный на основе игра GTA:SA, иначе ничего толкового из этого не получится.
Reply
#22

Quote:
Originally Posted by DarkByte
Quote:
Originally Posted by ^Psycho^
Никто не напишет скрипт который сохранит все эти точки в массив координат? Хочу посмотреть на реакцию моего хостера после запуска этого режима. Скрипт вроде бы не сложный, но я трудно себе представляю как это можно грамотно реализовать.


Кстати я тут подумал.. ведь можно вместо плагина который жрёт 70 мегабайт.. создать бота. Помещать бота в определённый участок и находить для него координату Z. Прокатит, не?
А зачем тебе массив? В плагине и так данные загружаются из файла в массив, который и занимает 70мб оперативы.
Угу, только бот не тот, который скриптовый NPC сейчас в сампе, а бот построенный на основе игра GTA:SA, иначе ничего толкового из этого не получится.
Большинство хостеров просто недают ставить плагины, он к этому клонит.
Reply
#23

Code:
А зачем тебе массив? В плагине и так данные загружаются из файла в массив, который и занимает 70мб оперативы.
Угу, только бот не тот, который скриптовый NPC сейчас в сампе, а бот построенный на основе игра GTA:SA, иначе ничего толкового из этого не получится.
А если помещать игрока? Например у мну дома есть ноут, я приконнекчу игрока к серверу от ноута и сервер сам будет его ставить куда задано скриптом. Так за пару суток можно создать мега массив.
Reply
#24

Kye дал бинарный файл с координатами и шагом карты в 1 м и это занимает 70 мб. Уже есть такой же бинарник с шагом карты в 3 метра, куда меньше занимает. Вам достаточно вместо плагина загружать FS аналогичного действия, который как раз и читает в память нужный файл как массив. + в этом фс должна быть открытая функция для получения из этого массива - Z, для любой пары XY. Это как раз-таки и является заменой плагину.

Если кому-то нужен такой FS, я могу попробовать его написать. Возможно, кто-то напишет его раньше меня, т.к. у меня не так много времени.
Reply
#25

Quote:
Originally Posted by ^Psycho^
А если помещать игрока? Например у мну дома есть ноут, я приконнекчу игрока к серверу от ноута и сервер сам будет его ставить куда задано скриптом. Так за пару суток можно создать мега массив.
Если ты засунешь на сервер реального игрока, с виртуальной машины или с ноута, тогда да, без проблем, SetPlayerPosFindZ и поехали но смысла в этом нет, ибо Kye уже построил карту высот, собственно об этом и данная тема.
Quote:
Originally Posted by Eakwarp [Valakas.ru
]
Большинство хостеров просто недают ставить плагины, он к этому клонит.
С кодировкой траблы небольшие, но вообще я понял, в принципе скрипт там не сложный будет, счас быстренько чего нибудь сварганю. Но т.к. я не хочу, чтобы amx файл весил 70мб и занимал 70мб оперативной памяти, то все данные будут храниться в файле, от этого сильно быстродействие не упадёт, по крайней мере в плагине было нормально

P.S. скрипт готов, проведу тесты скорости и выложу
Reply
#26

(:

Если FS, то возможны также все эти же варианты из плагина.
Reply
#27

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...), надеюсь сегодня закончу.
Reply
#28

а как ты 2 байтовый float получаешь? у pawn же 4 байтовые float
Reply
#29

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.
Reply
#30

В общем вот: 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);
Reply
#31

Я бы не был так категоричен

И 70 мегов из памяти могут легко уйти в своп и от туда доставаться долго, а файл на диске операционная система может подкешировать и все дальнейшие дисковые операции будут происходить с памятью. А на шаред хостингах, там ресурсы сервера еще много кто использует и там все еще сильней усложниться: и доступ к диску могут хотеть сразу многие и к работать с памятью интенсивнее, в результате чего в обоих случаях могут быть тормоза.

В общем тестить нужно под реальной нагрузкой на реальном хостенге/сервере, где будет этот плагин использоваться и еще в то время, когда идет хорошая нагрузка на сервер другими людьми/программами
Reply
#32

Есть-ли какие-нибудь редакторы этой карты? Поискал - не нашёл.
И сохранилась у кого-нибудь Pawn реализация от DarkByte?
Reply


Forum Jump:


Users browsing this thread: 3 Guest(s)