Система лута. -
Daea - 23.08.2015
Привет всем. Делаю систему лута и хочу совместить её с системой дропа. Нужно выделить 10.000 ячеек. Епить, у меня даже Pawno зависло... Есть другие варианты, как можно реализовать это?
Re: Система лута. -
eakwarp - 23.08.2015
А с чего у вас с буффера на каких-то 10 тысяч "ячеек" что-то зависло? Или привыкли компилить мелкие говномоды за пару секунд?
Re: Система лута. -
Daea - 23.08.2015
Ты "типа" выпендреться решил, да?
Мод компилируется сам по себе ~6 минут. Но вот незадача.. прошло уже 10 минут...
Т.е. ничего такого не должно быть?
Просто есть вариант проверять ближайший лут - стримером.
Или это лучше делать через IsPlayerInRangeOfPoint?
Re: Система лута. -
Daea - 23.08.2015
new DObjects[10000][d_Info]
Re: Система лута. -
TN0 - 23.08.2015
Зачем столько ячеек?
Сделай 500 ячеек и обновляй их.
К примеру: записал ID лута, количество, дату в unixtime. Потом если все 500 ячеек заняты, то ищешь ячейку с самым мелким unixtime и меняешь лут. И оптимизация, и никто из игроков не будет бомбить типа "куда мой лут пропал, только скинул". Кстати, хорошо я придумал. Нужно себе такую же систему сделать.
P.S. Делал давно на 10000 ячеек и система работала плюсом со SQLITE. Может ты просто криво что-то написал. У меня всё работало отлично и компилировалось быстро.
Re: Система лута. -
Daea - 23.08.2015
Хорошо, спасибо большое. Нет, ничего кривого. Только-только начал surv писать. Просто 3 города и 500 лута маловато.
Хм. А как Вашим способом можно будет определить ближайший лут?

Вот, например, как я подберу вещь, которая уже давно там лежит.
Re: Система лута. -
Romz - 23.08.2015
Проблема кривых рук.
Re: Система лута. -
TN0 - 23.08.2015
Quote:
Originally Posted by Daea
Хорошо, спасибо большое. Нет, ничего кривого. Только-только начал surv писать. Просто 3 города и 500 лута маловато.
Хм. А как Вашим способом можно будет определить ближайший лут? 
Вот, например, как я подберу вещь, которая уже давно там лежит.
|
Я использую динамические зоны.
Хотя раньше использовал IsPlayerRangeOfPoint и делал игроку 10 слотов, которые выводил в диалог.
Пример: если около игрока к примеру 20 объектов, то он будет выдавать в диалог только 10.
Ну это пять же мой нубо-способ. Попробуй сам что-то придумать. А на счёт 500 слотов — ну сделай 1000 или 2000. Ну 10000 это слишком много, как по мне.
Re: Система лута. -
Daea - 23.08.2015
invalid array size (negative, zero or out of bounds)
Re: Система лута. -
Richard_Gere - 23.08.2015
CreateDynamicSphere + Streamer_SetArrayData + E_STREAMER_EXTRA_ID - создаем лут и записываем о нём данные в стример
GetPlayerNumberDynamicAreas + GetPlayerDynamicAreas + Streamer_GetArrayData - чекаем зоны в которых находится игрок и достаем данные из них
В итоге никакие массивы тебе не нужны, загружай при старте, сохраняй/добавляй/удаляй сразу как изменили/скинули/взяли