SA-MP Forums Archive
Система лута. - Printable Version

+- SA-MP Forums Archive (https://sampforum.blast.hk)
+-- Forum: Non-English (https://sampforum.blast.hk/forumdisplay.php?fid=9)
+--- Forum: Languages (https://sampforum.blast.hk/forumdisplay.php?fid=33)
+---- Forum: Русский/Russian (https://sampforum.blast.hk/forumdisplay.php?fid=32)
+---- Thread: Система лута. (/showthread.php?tid=586602)



Система лута. - 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 - чекаем зоны в которых находится игрок и достаем данные из них

В итоге никакие массивы тебе не нужны, загружай при старте, сохраняй/добавляй/удаляй сразу как изменили/скинули/взяли