Server Banner

BBya World

Объявление

Мы переехали на новый форум: forum.bbyaworld.com

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.


Вы здесь » BBya World » Раздел модераторов » Рынок опыта


Рынок опыта

Сообщений 1 страница 17 из 17

1

Чувак, я придумал клёвую штуку!!

Мы можем организовать торговлю опытом между игроками, причём оч. навороченную!!
И, по-моему, это будет намного интереснее, чем просто механизм хранения опыта: по крайней мере, есть вероятность начала чего-то вроде "игры на бирже опыта" )))))

Как всегда, для игроков всё просто:

- любой игрок может продать свой накопленный опыт (кроме чародеев);
- любой игрок может купить опыт, который продали другие игроки (в том числе и чародеи);
- любой игрок может проверить сколько опыта есть в наличии (видимо, шёпотом);

Как это реализовать:

- можно изменить хижину опыта, в которой больше не будет обмена опыта на зелья, т.к. более выгодно будет менять его на изумруды;
- нужна переменная, которая будет отвечать за хранение "опыта" (например, "eMarket");
- система счёта и выдачи будет аналогична существующим;

Особенности системы:

- значение переменной может быть как положительным так и отрицательным;
- опыт будет скупаться и продаваться в виде числового значения, а не уровней;
- стоимость покупки и продажи будем меняться сама в зависимости от спроса и предложения  :D
- игрок может продавать опыт до тех пор, пока его уровень опыта больше или равен 33 (т.к., 33 уровня - это 1032 единицы опыта);
- игрок может покупать опыт до бесконечности, пока кидает туда изумруды!!  :D
- приёмник изумрудов должен быть скоростным и отсасывать в две воронки + по два счётчика на канал (как в шлакоприёмнике);

Как будет формироваться цена (сейчас сформулирую, потом отбалансируем):
(исходим из того, что 1000 единиц опыта - это чуть больше 33 уровней)

- предлагаю оперировать 1000-ей единиц опыта;
- по-любому нужно будет придумывать систему условий, основанную на командных блоках (и делается это элементарно - простой проверкой значения переменной, в которой хранится опыт "eMarket");

- при "300 001 < eMarket < ∞": продажа опыта серверу - 1 изумруд за 1000 единиц опыта, покупка опыта у сервера - 10 изумрудов за 1000 единиц опыта;
- при "150 001 < eMarket < 300 000": продажа опыта серверу - 2 изумруда за 1000 единиц опыта, покупка опыта у сервера - 12 изумрудов за 1000 единиц опыта;
- при "50 001 < eMarket < 150 000": продажа опыта серверу - 3 изумруда за 1000 единиц опыта, покупка опыта у сервера - 14 изумрудов за 1000 единиц опыта;

- при "-50 000 < eMarket < 50 000": продажа опыта серверу - 4 изумруда за 1000 единиц опыта, покупка опыта у сервера - 16 изумрудов за 1000 единиц опыта;

- при "-150 000 < eMarket < -50 001": продажа опыта серверу - 5 изумрудов за 1000 единиц опыта, покупка опыта у сервера - 20 изумрудов за 1000 единиц опыта;
- при "-300 000 < eMarket < -150 001": продажа опыта серверу - 6 изумрудов за 1000 единиц опыта, покупка опыта у сервера - 24 изумруда за 1000 единиц опыта;
- при "-600 000 < eMarket < -300 001": продажа опыта серверу - 7 изумрудов за 1000 единиц опыта, покупка опыта у сервера - 32 изумруда за 1000 единиц опыта;
- при "-999 999 < eMarket < -600 001": продажа опыта серверу - 8 изумрудов за 1000 единиц опыта, покупка опыта у сервера - 48 изумрудов за 1000 единиц опыта;
- при "-∞ < eMarket < -1 000 000": продажа опыта серверу - 9 изумрудов за 1000 единиц опыта, покупка опыта у сервера - 64 изумруда за 1000 единиц опыта;

Нужны несколько блоков статистического учёта:

- отдельный блок и отдельная переменная (eMarketBuy) на количество покупок опыта;
- отдельный блок и отдельная переменная (eMarketSell) на количество продаж опыта;
- отдельная система блоков и одна переменная (eMarketEarn) на количество заработанных изумрудов при продаже опыта серверу;
- отдельная система блоков и одна переменная (eMarketSpend) на количество потраченных переменных при покупке опыта у сервера;

P.S.: как следствие, должны появиться игроки, которые будут пытаться заработать на покупке/продаже/добыче опыта и такими игроками могут стать участники гильдии "Мародёров", которые могут получать опыт за фраги ))))

P.P.S: также, в будущем можно будет использовать эту систему ценообразования в новом торговом центре, который будет принимать не только шлак по единой цене, но и продаваемые сервером товары по такому же принципу, который описан тут...

Табличка цен в зависимости от запасов опыта:

.

- по горизонтали: количество изумрудов, необходимое для покупки у сервера 1000 единиц опыта;
- по вертикали: количество изумрудов, выдаваемое игроку в инвентарь пир продаже серверу 1000 единиц опыта;

64

48

32

24

20

16

14

12

10

9

-∞ < eMarket < -1 000 000

8

-999 999 < eMarket < -600 001

7

-600 000 < eMarket < -300 001

6

-300 000 < eMarket < -150 001

5

-150 000 < eMarket < -50 001

4

-50 000 < eMarket < 50 000

3

50 001 < eMarket < 150 000

2

150 001 < eMarket < 300 000

1

300 001 < eMarket < ∞

2

VELVET написал(а):

- любой игрок может продать свой накопленный опыт (кроме чародеев);

как и

VELVET написал(а):

любой игрок может купить опыт, который продали другие игроки (в том числе и чародеи);

как все в одной кабинке?

VELVET написал(а):

- любой игрок может проверить сколько опыта есть в наличии (видимо, шёпотом);

невозвожно. В игре реализованна индикация переменных только 3мя способами. Боковая панель, TAB, и над игроком. Выводить сообщениями нельзя. Возможно в 1.7 тот новая рассширенная возможность выдавать сообщения эту возможность даст но я точно не знаю.

VELVET написал(а):

- значение переменной может быть как положительным так и отрицательным;

VELVET написал(а):

- игрок может покупать опыт до бесконечности, пока кидает туда изумрудные блоки!!

при том:

VELVET написал(а):

- любой игрок может купить опыт, который продали другие игроки

в логике запутался

3

Bress Oster написал(а):

как все в одной кабинке?

даже думать не хочу - давай используем для этого "Хижину опыта"
уберём обмен опыта на зелья и заменим на эту новую фишку :)

Bress Oster написал(а):

невозвожно. В игре реализованна индикация переменных только 3мя способами.

в общем, это фигня и мелочи - что-нибудь придумаем )))
Например, можно по нажатию кнопки выводить инфу в боковую панель на 5 сек, чтобы её видели все игроки: думаю, что это будет полезной инфой для всех

Кроме того, нам не надо выводить значение переменной!!
Нам нужно только проверять диапазон, в котором находится значение переменной "ExperienceMarket": в зависимости от этого нужно выдавать обычное текстовое сообщение со стоимостью покупки/продажи :)

Кстати, сообщение может выдаваться также как и при входе в метро, но только не генератором, а при проходе, например, по нажимной плите...

Bress Oster написал(а):

в логике запутался

не придирайся :)
логика проста:

- опыт можно продавать в любых количествах;
- опыт можно покупать в любых количествах;
- чем больше опыта продаётся, тем меньше за него платит сервер и тем дешевле его покупать у сервера;
- чем больше опыта покупается, тем дороже он стоит при покупке у сервера и тем выгоднее его продавать серверу;


Чел, все нюансы - это мелочи...
Как тебе идея в общем??

По-моему, оч. крутая :)

4

В общем, я начну работы в "Хижине опыта":

- сделаю интерфейс пользователя с кнопкой для продажи опыта и с приёмником для покупки опыта;
- проведу сигналы и сделаю зигзагообразные админиумовые трубопроводы;
- продумаю систему защиты от входа других игроков в рабочее помещение;
- сделаю просторное подвальное помещение защищённое админиумом;

5

То есть из всего этого получается ты хочешь ввести торговлю абсолютно по типу кабинки чародеев но с регулированием цен по принципу спроса-предложения?

А цены в блоках?

6

Bress Oster написал(а):

ты хочешь ввести торговлю абсолютно по типу кабинки чародеев но с регулированием цен по принципу спроса-предложения?

ммм...
пока нет: пока просто хочу запустить что-то вроде "биржи опыта" и отработать схему ценообразования в зависимости от спроса и предложения...

Bress Oster написал(а):

А цены в блоках?

хотел в блоках, но не получается, т.к. не хочу менять количество опыта при сделках - хочу оставить это значение неизменным и гибко менять цену в изумрудах...

не могу сформулировать, почему важно, чтобы количество опыта не менялось...


Нужна будет твоя помощь с механизмом закрывания двери при входе:

- по умолчанию дверь будет всегда открыта;
- внутри будет установлена нажимная плита;
- при проходе по нажимной плите дверь должна будет закрываться с помощью твоего изобретения);
- при повторном проходе по этой нажимной плите дверь снова должна будет открыться и замереть в таком положении;

Поможешь? :)

7

Bress Oster написал(а):

То есть из всего этого получается ты хочешь ввести торговлю абсолютно по типу кабинки чародеев но с регулированием цен по принципу спроса-предложения?

блин, или - да: хочу именно это...

VELVET написал(а):

В общем, я начну работы в "Хижине опыта":

- сделаю интерфейс пользователя с кнопкой для продажи опыта и с приёмником для покупки опыта;
- проведу сигналы и сделаю зигзагообразные админиумовые трубопроводы;
- продумаю систему защиты от входа других игроков в рабочее помещение;
- сделаю просторное подвальное помещение защищённое админиумом;

это сделал


завтра постараюсь прикрутить скоростные счётчики изумрудов со сжигателями всякой дряни

+ если получится, то и всю логику размещу: как для покупки опыта, так и для его продажи...

Алгоритм продажи опыта примерно такой - после нажатия кнопки:
(все командные блоки работают на ближайшего игрока чётко в одной клетке - самой близкой к кнопке)

- первые два параллельных командных блока проверяют является ли игрок чародеем: если "нет", то сигнал идёт дальше; если "да" - то выдаётся сообщение об ошибке;
- следующая пара параллельных командных блоков проверяет, достаточно ли опыта у игрока: если >=33, то сигнал идёт дальше, если меньше - то выдаётся сообщение об ошибке;
- итак, сигнал идёт дальше одновременно на 9 параллельных ветвей: каждая из этих ветвей соответствует своему диапазону значений переменной "eMarket";
- на ветвях стоят просто блоки, подключенные последовательно (с промежутком из красной пыли; по-моему, так можно выполнять следующий блок только, если выполнился предыдущий);

- 1 командный блок (на всех ветвях): срабатывает только один командный блок, который проверяет соответствие текущего значения переменной "eMarket" у игрока BByaAdmin, заданному условию для текущей ветви (только, если текущее значение соответствует заданным условиям, сигнал идёт дальше по своей ветви);
- 2 командный блок (на всех ветвях): отнимает 1000 единиц опыта у игрока (если у него 33 и более уровней опыта; выполняется только, если сработал первый командный блок);
- 3 командный блок (на всех ветвях, выполняется только, если сигнал прошёл через второй блок): прибавляет к переменной "eMarket" игрока BByaAdmin 1000 единиц;
- 4 командный блок (на всех ветвях): выдаёт игроку необходимое количество изумрудов, соответствующее данной ветви;
- 5 командный блок (на всех ветвях, статистический): прибавляет количество изумрудов, выдаваемое этой ветвью, к переменной "eMarketEarn" игрока BByaAdmin;
- 6 командный блок (на всех ветвях, статистический): увеличивает на 1 значение переменной "eMarketBuy" игрока BByaAdmin;

- далее сигнал со всех ветвей идёт снова в один командный блок, который сообщает об успешном завершении операции;
- после этого сразу выполняется ещё один командный блок, который показывает в боковой панели для всех игроков значение переменной "eMarket" игрока BByaAdmin (эдакий "индекс опыта", по которому все игроки узнают, что произошла ещё одна сделка и узнают текущее значение этого "индекса опыта" :) ).

Алгоритм покупки опыта примерно такой:

- игрок кладёт необходимое количество изумрудов в приёмник в виде двойного сундука;
- изумруды начинают отсасываться в счётчки, а всякий шлак в сжигатели (счётчики идентичны тем, что в здании торговли с сервером по приёму шлака, но использующие переменную "Emerald_Money" обслуживаемого игрока);
- после каждого срабатывания счётчика (= 1 изумруд), значение переменной "Emerald_Money" увеличивается на единицу;
- одновременно с каждого счётчика сигнал идёт на 9 параллельных линий выдачи опыта игроку;

- 1 командный блок (на всех ветвях): срабатывает только один командный блок, который проверяет соответствие текущего значения переменной "eMarket" у игрока BByaAdmin, заданному условию для текущей ветви (только, если текущее значение соответствует заданным условиям, сигнал идёт дальше по своей ветви);
- 2 блок (на каждой линии, срабатывает только в случае срабатывания предыдущего блока): уменьшает значение переменной "Emerald_Money" обслуживаемого игрока на заданное количество единиц, соответствующее условиям данной ветви;
- 3 блок (на каждой линии, срабатывает только в случае срабатывания предыдущего блока): выдаёт игроку 1000 единиц опыта;
- 4 блок (на каждой линии, статистический): прибавляет в переменную "eMarketSpend" игрока BByaAdmin количество изумрудов, "вычитаемое" данной ветвью из переменной "Emerald_Money" обслуживаемого игрока;
- 5 блок (на каждой линии, статистический): прибавляет в переменную "eMarketSell" игрока BByaAdmin единицу (означает ещё одну сделку по покупке опыта);

- далее сигнал со всех ветвей идёт снова в один командный блок, который сообщает об успешном завершении операции;
- после этого сразу выполняется ещё один командный блок, который показывает в боковой панели для всех игроков значение переменной "eMarket" игрока BByaAdmin (эдакий "индекс опыта", по которому все игроки узнают, что произошла ещё одна сделка и узнают текущее значение этого "индекса опыта" :) ).

В общем, всё это надо сделать без генераторов + возможно, где-то придётся использовать прерыватели, чтобы сигналы были короткими...

8

VELVET написал(а):

- при проходе по нажимной плите дверь должна будет закрываться с помощью твоего изобретения);

это мегаустаревшее и геморное изобретение. Очень давно использую такую схему  В этой схеме можно сделать одно изменение: вместо блока между поршнями и ямки с факелом можно установить просто блок редстоуна

9

Bress Oster написал(а):

это мегаустаревшее и геморное изобретение. Очень давно использую такую схему  В этой схеме можно сделать одно изменение: вместо блока между поршнями и ямки с факелом можно установить просто блок редстоуна

Вот!
Спасибо за правильную ссылку :)

10

Чел, слушай, а я только сейчас понял, что мы ни разу не пользовались проверкой значения переменной у конкретного игрока, которого может даже не быть в игре!!

Мы всегда проверяли только значение переменных игроков, которые находятся в заданной области...
+ в зависимости от условий изменяли значения "глобальных переменных" для BByaAdmin'a (например, всю статистику).

А для биржи опыта мне нужно проверять значения "глобальных переменных": как мне проверить значение переменной у, например, игрока BByaAdmin и пустить сигнал далее??

Такая строка подойдёт??

/testfor @p[name=bbyaadmin,score_eMarket=50000,score_eMarket_min=-50000]

Типа, получится ли у меня проверить значение перменной для игрока, которого даже нет в игре с помощью такой строки??
В данной строке я хочу проверить, находится ли значение переменной "eMarket" у игрока BByaAdmin в диапазоне от -50 тыс. до +50 тыс...

11

Как видишь решения пока нет. всякие score счытывают игрока онлайн

12

Задал вопрос...

В любом случае, мы всё равно можем запустить систему покупки/продажи опыта - просто по фиксированным ценам: одни игроки смогут продавать опыт, другие - покупать :)

Стоимость 1000 единиц опыта:

- при продаже серверу = 8 изумрудов;
- при покупке у сервера = 16 изумрудов;

13

Это да, но задачка со считыванием переменной с офлайн игрока не имеет пока решения. Блин, надо перицию выдвинуть, чтобы глобальные переменные ввели и   =!  профиксили. "Неравно" не работает по сей день.
А дальше вводить язык програмирования или язык экспрешенов. Блоки, срабатывающие от своей собственной тактовой частоты. Короче много фишек нужно.

14

А ещё значение переменной можно хранить в ПВС-ПЦ_4: думаю, что при желании, мы сможем доработать её для этих целей :D

+ ещё один вариант: если можно задавать значение переменной сразу для всех игроков, то и считывать её можно у любого игрока ;)

Тут обсуждают эту проблему: причём какой-то чел накатал какой-то кривой способ, который что-то позволяет сделать, но я не оч. понял что именно ))))

15

VELVET написал(а):

значение переменной можно хранить в ПВС-ПЦ_4

фигня!!

Слушай, Бресс, а ведь есть же "счётчики на воронках"???
100% есть!!

Но проблема в том, что по-моему нет простых счётчиков которые могут как увеличивать так и уменьшать своё значение...
В любом случае, нам нужен счётчик на воронках: он будет достаточно простым и компактным, чтобы запустить биржу опыта с изменяемой ценой в зависимости от спроса и предложения - я уже всё придумал :)

Главное - скажи: можем ли мы "отсчитывать" по одному предмету за импульс?

16

VELVET написал(а):

можем ли мы "отсчитывать" по одному предмету за импульс?

не очень понимаю конкретно что нужно. Но по сути контур, что дог последним построил и есть счетчик по одному предмету за имрульс. Только контур зациклен и поэтому отсчитывает все предметы.

17

Bress Oster написал(а):

не очень понимаю конкретно что нужно

блин, не - нужен не просто счётчик, а запоминающее устройство, как ПВС-ПЦ, только более компактный! :)

И для целей "запоминания" отлично подходит система на воронках и двух двойных сундуках, которую я вчера продумал по дороге домой...
Но для этого нужно, чтобы мы могли с помощью воронок перекладывать предметы из сундуков строго по одному!!

К сожалению, сегодня в игру заходить не могу - оч. много работы: только теория ))))


Фишка в том, что нам надо отслеживать количество сделок: если больше продаж опыта серверу, то нужно увеличивать значение в этом "счётчике", если же больше покупок у сервера, то значение надо уменьшать...
И в зависимости от заполненности сундука компаратор будет выдавать нужную длину сигнала, от которой мы будем забирать сигнал на командные блоки...

Два двойных сундука (это по 1728 сделок в каждую сторону, каждая из которых = покупке или продаже 1000 единиц опыта) нужны как раз для того, чтобы свободно перемещать содержимое между ними в любую сторону.
Но измерять мы будем только один из этих сундуков!
Изначально он будет заполнен на половину - это будет равнозначно "0" :)

Чем больше сундук будет заполняться из другого сундука (также заполненного на половину), значит - тем больше сделок по продаже опыта серверу.
Чем меньше предметов в сундуке будет оставаться, значит - игроки больше покупают опыт...

Как-то так...

Может, есть более простое запоминающее устройство на воронках?? :)

Отредактировано VELVET (18-10-2013 12:15:22)


Вы здесь » BBya World » Раздел модераторов » Рынок опыта