Как создать систему денег на сервере RAGE:MP 1.1?

31YA

New member
Работаю над собственным сервером, что-то начал понимать в разработке, вообщем начало положено, хочу создать денежную систему, но хз как, в бд создал строку money, и bank, пытался добавить админ команду типо setmoney или addmoney безуспешно, но помимо этого надо создать event снятия и начисления денег , вообщем думаю нужен туториал, но на форуме его нет, из-за этого решил обратиться за помощью
 

Drogo

Junior Developer
Скриптер
Для начала тебе необходимо в mp.Player.prototype определить функции получения, назначения денег. Делается это, что бы можно было удобно вызвать функции сразу для игрока (пример: player.setMoney(player.getMoney() + 10 )).
Потом тебе необходимо хранить информацию о деньгах так, что бы её можно было легко получить как в серверной части, так и со стороны клиента. Для этого лучше использовать функции "player.setVariable()" и "player.getVariable()". Так же нужно определить ивенты изменения значений денег, в которых описать запрос об обновлении значений в БД.


Лучше всего тебе будет изучить вышеописанные функции в более простых случаях, а не в комплексе как система денег. Если ты прочитаешь туториал, есть большой шанс того, что материал ты не закрепишь и просто скопируешь приведенный в туториале код.

Материал для изучения: прототипы объектов, сетевые переменные, синтаксис БД и способы обращения к БД с помощью используемого языка.
 

Lev Angel

Developer
Команда форума
Скриптер
Можно еще вот этот ресурс поковырять:
 

seaniwe

Senior Developer
Скриптер
Деньги это просто переменная с числом, так что тут не так уж и трудно.
 

Drogo

Junior Developer
Скриптер
Деньги это просто переменная с числом, так что тут не так уж и трудно.
Тогда вообще все просто числа или символы, просто когда пишется система, нужно продумывать все зависимости и знать как их лучше описывать.
 

Drogo

Junior Developer
Скриптер
А если создать значение в БД и постоянно изменять его?
Его и так придется обновлять в ЬД, просто для более быстрого доступа к значению лучше держать в памяти, обновляя в БД при каждом изменении
 

xf1ne

Trainee
Его и так придется обновлять в ЬД, просто для более быстрого доступа к значению лучше держать в памяти, обновляя в БД при каждом изменении
Что значит держать в памяти? То есть можно куда-то вынести часто используемые данные? А обновлять БД только после выхода с сервера
 

Drogo

Junior Developer
Скриптер
Что значит держать в памяти? То есть можно куда-то вынести часто используемые данные? А обновлять БД только после выхода с сервера
Я создаю в прототипе игрока поля в которые заношу нужные мне данные. Считай обычная переменная, которая находится в оперативной памяти сервера пока игрок онлайн
 

xf1ne

Trainee
Я создаю в прототипе игрока поля в которые заношу нужные мне данные. Считай обычная переменная, которая находится в оперативной памяти сервера пока игрок онлайн
Как я понял, при event 'playerReady' c БД подгружаются данные, их присваивают в переменные, в ходе игрового процесса значение переменной изменяются, а после отключения игрока от сервера новые значения переменных заносятся в БД, или это все работает через Переменные сущности (Entity Variables)?
 

Drogo

Junior Developer
Скриптер
Как я понял, при event 'playerReady' c БД подгружаются данные, их присваивают в переменные, в ходе игрового процесса значение переменной изменяются, а после отключения игрока от сервера новые значения переменных заносятся в БД, или это все работает через Переменные сущности (Entity Variables)?
Entity Variables нужны для автоматической репликации между клиентом и сервером. Тут кому как удобнее, так как вы можете вручную при изменении отсылать клиентам эти изменения. Вообще рекомендуется изменять информацию в бд сразу после изменения, так как может произойти всякое, а во оперативной памяти эти данные нужны для доступа к ним без задержки.
 
Яндекс.Метрика
Верх