Jump to content

VCXZ

Members
  • Posts

    42
  • Joined

  • Last visited

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

VCXZ's Achievements

Rat

Rat (9/54)

0

Reputation

  1. Еще побродив по интернету, пришел к выводу, что правильнее всего важные действия сразу отображать в БД, а мелкие раз в какое-то время. (думаю, к мелким можно отнести допустим количество патронов у игрока или количество бензина в машине)
  2. Всем привет Читал, что грамотнее всего подключаться к базе данных при старте ресурса, а отключаться при стопе, а не многократно подключаться/отключаться во время игры. Допустим, при старте ресурса мы подключаемся к БД. При заходе игрока на сервер, мы берем из БД его данные и ставим ему через setElementData. А при его выходе с сервера, обновляем данные в БД. Подскажите пожалуйста, будет ли безошибочно работать такой вариант: 1. При "внезапном" отключении игрока в связи с, например, проблемами с его подключением к интернету? 2. При не менее внезапном отключении сервера. Заранее большое спасибо за помощь.
  3. Снова всем привет. Пробую сделать инвентарь с помощью SQLite. Понял, что для точной синхронизации между таблицей аккаунтов и таблицей инвентаря нужно использовать внешний ключ (foreign key). Скажите пожалуйста, возможно ли использовать его в MTA ? И вообще как определить (кроме пробы вручную ), какие возможности есть, а какие ограничены? Спасибо.
  4. Спасибо. Ну да, функция Спасибо. Мне кажется, ссылку на эту страницу нужно добавить на главную https://wiki.multitheftauto.com/wiki/Main_Page или сюда https://wiki.multitheftauto.com/wiki/Sc ... troduction
  5. Всем привет. Не раз на форуме видел сообщения, что нельзя разрешать изменение elementData на клиенте, т.к. в противном случае нечестные игроки будут изменять себе все данные. Скажите пожалуйста, я правильно понимаю, что это небезопасно: --client function ff (data, value) setElementData (localPlayer, data, value) end а это безопасно: --server addEvent ('changeDataFromClient', true) function funcchangeDataFromClient (data, value) setElementData (client, data, value) end addEventHandler ('changeDataFromClient', root, funcchangeDataFromClient) --client function ff (data, value) triggerServerEvent ('changeDataFromClient', localPlayer, data, value) end Заранее спасибо за помощь.
  6. Это тот вариант, что я предполагал в самом начале. (осталось разобраться с (де)сериализацией) Интересно только, почему в elementData можно хранить различные типы данных, а в accountData только строки.
  7. То есть для хранения данных на сервере в любом случае придется использовать базы данных? А возможен ли такой вариант: есть текстовый документ, в котором хранится inventar = { } (со всеми "внутренностями"), который через loadfile подгружается при старте сервера. А потом по новой записывается. Только как таблицу превратить в текст я не знаю. Просто мне очень нравится структура таблиц в lua и поэтому хотел бы использовать их.
  8. Всем привет. Пытаюсь создать систему инвентаря, который будет сохраняться после выхода игрока. Сначала думал использовать accountData. Но меня смущает, что в значениях можно хранить только строки (конечно, строки можно преобразовывать после получения, но это наверное лишняя морока, учитывая, что нужно хранить абсолютно различные данные) Далее отложил этот вопрос и как раз легко и просто сделал некую "систему id", используя таблицы, которая работает следующим образом(может кому пригодится, хотя за правильность ее работы не отвечаю): есть таблица idtableonline = { } при старте ресурса она заполняется следующим образом: function idtableonlineresourceStart () for i = 1, 4002, 1 do idtableonline[i] = false end end addEventHandler("onResourceStart", getResourceRootElement(getThisResource()), idtableonlineresourceStart) Когда игрок логинится, проверяем по этой таблице "свободный id". for i = 1, 4002, 1 do if idtableonline[i] == false then setElementData (client, 'idonline', i) idtableonline[i] = client break end end Когда игрок выходит, удаляем его из таблицы idtableonline. function idtableonlineOnPlayerQuit () local id = getElementData (source, 'idonline') if idtableonline[id] ~= false then idtableonline[id] = false end end addEventHandler ('onPlayerQuit', root, idtableonlineOnPlayerQuit) Это все вроде бы работает, и я подумал, почему бы не сделать на сервере одну огромную таблицу, в которой будет храниться инвентарь всех игроков. Принцип ее работы я предполагаю сделать примерно таким же, как и в примере выше, но без удаления данных при выходе игрока с сервера. Но я не знаю, как сделать, чтобы данные этой таблицы сохранялись при перезапуске сервера. Подскажите пожалуйста, как хранить таблицы на сервере и вообще разумный ли это вариант (в том числе в плане нагрузки на сервер), или нужно использовать accountData или вообще MySQL, в котором я совсем не ориентируюсь. Спасибо.
  9. Спасибо, заменил строчку 5 на "for i, massa in pairs(t) do", теперь работает.
  10. Почему это не работает? Пишет, что massa это таблица. (выполняется на сервере) function giveGruz (player) setElementData (player, "gruz", {[1] = 100, [2] = 50}) local t = getElementData (player, "gruz") for i, massa in pairs{ t } do outputChatBox( i..' '..massa, player ) end end addCommandHandler ('gg', giveGruz)
  11. Спасибо. Еще вроде можно сделать attach и выставить анимацию. Но тут придется для каждой машины координаты вычислять.
  12. Возможно ли изменить максимальное количество пассажиров для транспорта? Узнать можно (getVehicleMaxPassengers) изменить не знаю как. В интернете есть пара упоминаний про setVehicleMaxPassengers, но сейчас этой функции нет.
  13. Всем привет. Пытаюсь сделать на сервере неровности на дороге, нашел, на мой взгляд, подходящие объекты, добавил, но машина/игрок проходят сквозь них. Вроде бы как, проблема в отсутствии коллизии (не совсем пока понимаю, что к чему). Как можно сделать эти объекты осязаемыми? Пример интересующего объекта: id 854 (CJ_urb_rub_3b)
  14. Извиняюсь за нубский вопрос. Сейчас если с нуля погружаться в изучение баз данных, с чего лучше начать? С этого топика viewtopic.php?f=153&t=37482 или https://wiki.multitheftauto.com/wiki/RU/ ... /MTA-MySQL ?
  15. Ребят, не совсем по теме. Наткнулся на видео (гта сан андреас с графикой и физикой как в гта 4, или наоборот, гта 4 с картой и объектами как в gta SA).Представьте какой крутой был бы мультиплеер. Вот только какие нужны компы
×
×
  • Create New...