Server Banner

BBya World

Объявление

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

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

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


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


Список переменных

Сообщений 61 страница 76 из 76

1

Попробую начать составлять список переменных.
Задавать нужно только те переменные, которые будем использовать.
Если переменная задана, то стирать её нельзя, даже, если она в какой-то момент времени будет ненужна.

Переменные для статистики продаж товаров игроками серверу:

в алфавитном порядке

Emerald_money - количество отданных денег (изумрудов) в автомат;
StatsUnsortSell - количество неопознанного товара, проданного игроками серверу;
Trade_Things - счётчик товара, проданного игроками серверу;
StatsExpBottle - количество зелий опыта, переданных игроками серверу (обычно - для прокачки в гильдии);

Переменные для статистики покупки товаров игроками у сервера:

в алфавитном порядке

StatsBottEnchBuy - количество зелий опыта, купленных игроками у сервера;
StatsBricksBuy - количество кирпичных блоков, купленных игроками у сервера;
StatsClayDustBuy - количество глины, купленной игроками у сервера;
StatsDayBuy - количество раз, когда игроки включали утро;
StatsDimondBuy - количество алмазов, купленных игроками у сервера;
StatsEndStoneBuy - количество камня края, купленного игроками у сервера;
StatsExpBuy - количество раз, когда чародей покупал опыт;
StatsGlowDustBuy - количество светопыли, купленной игроками у сервера;
StatsGoldBuy - количество золотых слитков, купленных игроками у сервера;
StatsGunpowdBuy - количество пороха, купленного игроками у сервера;
StatsIceBuy - количество сухого льда, купленного игроками у сервера;
StatsIronBuy - количество железных слитков, купленных игроками у сервера;
StatsLazBlockBuy - количество лазуритовых блоков, купленных игроками у сервера;
StatsMosStoneBuy - количество замшелого булыжника, купленного игроками у сервера;
StatsMyceliumBuy - количество мицелия, купленного игроками у сервера;
StatsNightBuy - количество раз, когда игроки включали ночь;
StatsObsidianBuy - количество обсидиана, купленного игроками у сервера;
StatsPodzolBuy - количество подзола, купленного игроками у сервера;
StatsPoitionSold - количество всевозможных зелий, купленных игроками у сервера (исключая зелья опыта);
StatsQuartzBuy - количество кварца, купленного игроками у сервера;
StatsRainOffBuy - количество раз, когда игроки включали дождь;
StatsRedSandBuy - количество красного песка, купленного игроками у сервера;
StatsRedstoneBuy - количество редстоуна, купленного игроками у сервера;
StatsSpongeBuy - количество губки, купленной игроками у сервера;
StatsSBrickChBuy - количество резного каменного кирпича, купленного игроками у сервера;
StatsSBrickCrBuy - количество потрескавшегося каменного кирпича, купленного игроками у сервера;
StatsSBrickMoBuy - количество замшелого каменного кирпича, купленного игроками у сервера;
StatsWeathClBuy - количество раз, когда игроки отключали дождь;

Всё, что связано с лошадями:
StatsHorseArIBuy - количество Железной брони лошадей, купленной игроками у сервера;
StatsHorseArGBuy - количество Золотой брони лошадей, купленной игроками у сервера;
StatsHorseArDBuy - количество Алмазной брони лошадей, купленной игроками у сервера;
StatsSaddleBuy - количество седел, купленных игроками у сервера;
StatsTagBuy - количество бирок, купленных игроками у сервера;

Переменные квестов:

в алфавитном порядке

qSoul - количество песка души, сданного серверу, для квеста "Обратный эффект";
qSoulStats -количество раз, которое игрок выполнил квест "Обратный эффект";

qEgg - количество яиц, сданных серверу, для квеста "27 фактов о куриных яйцах";
qEggStats -количество раз, которое игрок выполнил квест "27 фактов о куриных яйцах";

Другие переменные:

в алфавитном порядке

Admins - индикатор, что игрок админ;
alarmCode - код охранной системы, который позволит определить техническое помещение, из которого игрок попал в тюрьму (коды для административных построек тут; для частных территорий начинаются с 1 млн. и для каждого игрока уникальны - с привязкой к id профиля на форуме, например, у Доси 1000004, у Бресса - 1000003);
ClanID - переменная кланов;
ExpBottle - количество переданных зелий опыта;
PlayerID - личные ID-игроков (у мультов совпадает с id основного игрока);
meteoCode - код метеостанции, на которую должен вернуться игрок;
MetroSt - код станции, на которую должен приехать игрок;
prisonerCheck - переменная проверки местонахождения заключённого (для воздействия только на тех из них, кто вне тюрьмы, накладывается только на заключённых; использовать только с проверкой на то, что игрок зек!!);

Всё, что связано с гильдиями:
T_Builder - индикатор, что игрок в гильдии строителей (значение этой переменной = уровню строителя);
T_Dwarf - индикатор, что игрок в гильдии гномов (значение этой переменной = уровню гнома);
T_Enchanter - индикатор, что игрок в гильдии чародеев;
T_Paladin - индикатор, что игрок в гильдии Воинов света;
T_PoliceOfficers - индикатор, что игрок в гильдии жандармов;
T_Trader - индикатор, что игрок в гильдии торговцев (значение этой переменной = уровню торговца);

Биржа опыта:
expMarket - хранит количество опыта "у сервера";
expMarketBuy - количество покупок опыта на бирже;
expMarketSell - количество продаж опыта серверу;
expMarketEarn - количество заработанных изумрудов при продаже опыта серверу на бирже;
expMarketSpend - количество потраченных изумрудов при покупке опыта у сервера на бирже;

Счётчики:

.

i_newbie - для индивидуальной работы с каждым новичком вне зависимости от его логаутов и наличия других новичков;
SmertiEffectov - индивидуальный счётчик смертей, используется для кривой схемы выдачи эффекта "Повышение здоровья" за ББ;


Добавление переменной

/scoreboard objectives add <name> dummy [display name ...]

[display name ...] можно в кавычках и по русски но только в игре. (необязательный параметр)
<name> максимум 16 символов

Просмотр имеющихся

/scoreboard objectives list

Удаление

/scoreboard objectives remove <name>

Проверить правильно ли ты пишешь и что писать дальше  набирай:
/scoreboard objectives

он тебе подскажет Usage: /scoreboard objectives <list|add|remove|setdisplay>

Свернутый текст

Действия оператора для работы с нарушителями:

- чтобы посадить игрока в тюрьму: /scoreboard teams join prisoners <Player_Name>

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

- чтобы выпустить игрока из тюрьмы: /scoreboard players set <Player_Name> prisonerCheck -1

Всё остальное автоматика делает сама, действует на всех игроков кроме админов, последовательность действий критична и необратима :)

P.S.: новички после выхода из тюрьмы находятся в режиме игры "выживание"...

Отредактировано Bress Oster (18-07-2013 11:15:08)

61

SmertiEffectov - индивидуальный счётчик смертей, используется для кривой схемы выдачи эффекта "Повышение здоровья" за ББ;

62

i_reclama - для показы рекламы текстовых внутриигровых сообщений (считает до 3600 и сбрасывается на "0");

Предлагаю все счётчики начинать с "i_".

Конкретно этот счётчик работает криво:

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

- я генератором нашей охранной системы увеличиваю всем игрокам в онлайне (только тем, кто в обычном мире - на другие миры не работает) значение этого счётчика на 1;
- /scoreboard players add @a i_reclama 1

- далее, я проверяю всех игроков из онлайна на соответствие условию (достаточно, чтобы хотя бы у одного игрока это условие выполнилось - за это отвечает параметр "c"):
/testfor @a[c=1,score_i_reclama_min=1000]

- если условие выполняется, то я выдаю сообщение о рекламе
tellraw @a {"text":"","extra":[{"text":"Новые возможности текстовой внутриигровой рекламы: ","color":"green","hoverEvent":{"action":"show_text","value":"Если вы сами можете составить такую команду, то ваши возможности не ограничены!"}},{"text":"перейти на сайт.","color":"gold","clickEvent":{"action":"open_url","value":"http://mc.bbcity.ru/viewtopic.php?id=354"}}]}

- и в конце обнуляю всем значение счётчика :)
/scoreboard players set @a i_reclama 0

Есть более няшные способы или только в 1.8 с глобальными переменными? :)

63

Бресс, вопрос:

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

Так вот, мы можем как-то чистить эту БД и нужно ли это делать??

64

Подожди, а зачем ты всем меняешь переменную, а не одну админскую?
Просто если выдавать сообщение всем но в определенное время одновременно, то менять нужно одну переменную
Если наоборот менять всем переменную и выдавать каждому сообщение не одновременно но с равными промежутками, то ты должен был на /tellraw добавить условие, мол выдать тем, у кого всчетчик равен и более 3600.
Причем блок инкриментирующий переменную должен быть независим. Просто прибавляет
И второй независимый блок, который с /tellraw и причем с условием >=3600. А за блоком tellraw стоит зависимый блок через компаратор и задержку, который при срабатывании выдачи сообщения обнулит пременную.

65

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

а не одну админскую?

потому что мы до сих пор не научились проверять значение переменной игрока, который в оффлайне: ситуацию исправят только глобальные переменные или возможность выполнения команды по расписанию из ПУ хостинга


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

66

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

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

тогда

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

на /tellraw добавить условие, мол выдать тем, у кого всчетчик равен и более 3600

вот я к чему. Просто у тебя условия нет в твоем описани(написании команды)

собственно расписал выше схему, которая нам нужна

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

блок инкриментирующий переменную должен быть независим. Просто прибавляет
И второй независимый блок, который с /tellraw и причем с условием >=3600. А за блоком tellraw стоит зависимый блок через компаратор и задержку, который при срабатывании выдачи сообщения обнулит пременную.

Если не понятно могу более на пальцах рассписать

67

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

Подожди, а зачем ты всем меняешь переменную, а не одну админскую?

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

+ в любом случае со временем игроки будут уходить, а инфа в БД оставаться...

Так вот, мы можем как-то чистить эту БД и нужно ли это делать??

Бресс, и всё-таки, вопрос более общий: как нам чистить БД?

Я регулярно подчищаю список игроков, лишние профили на фтп (+ делаю бэкапы), а как чистить лишние записи в БД системы Scoreboard??
Можно ли это делать в игре или через консоль или только спец.редакторами??

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

Если не понятно могу более на пальцах рассписать

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

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

+ согласен, что можно выдавать каждому в отдельности сообщение и следить за каждым в отдельности, но по сути это не нужно: нужно выдать цветное сообщение ссылкой вместо команд tell и say

Отредактировано VELVET (02-04-2014 13:28:45)

68

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

могу более на пальцах рассписать

потом прислал фото, на котором пальцы и на них что-то написанно  :blush:

69

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

потом прислал фото

прислал или пришлёшь?

70

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

как нам чистить БД?

хороший вопрос

Нам по сути надо чистить очки насчитанные на игроков по разным переменным
так вот для этого есть scoreboard players reset <player> - удаляет вообще все результаты в ССИС
не работает всякие @p. Чистить надо по каждому игроку
разом группу людей не получится. Редактором можно но не очень удобно ибо каждая 1 переменная и каждый 1 игрок это 1 записть типа:
Score: 0
Name: azimkiller1
Objective: T_Trader

и таких записей уже свыше 1700.

так что командами будет быстрее. Может TAB поможет

71

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

прислал или пришлёшь?

шутка на тему, "расписал на пальцах"

72

scoreboard players list
можешь почекать кто занесен в систему

73

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

так вот для этого есть scoreboard players reset <player> - удаляет вообще все результаты в ССИС

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

scoreboard players list
Можешь почекать кто занесен в систему

Отлично - я так и хотел (и все остальные вещи тоже чищу ручками): решил уточнить у тебя, спасибо :)

Тогда попробую сегодня почистить от явного хлама БД системы scoreboard.

Как мне сделать бэкап этой БД - тупо файлик scoreboard.dat??
Бэкап нужен только для того, чтобы локально проверить значения переменных у ошибочно удалённого игрока

74

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

Как мне сделать бэкап этой БД - тупо файлик scoreboard.dat??

да, только это файл

75

qEgg - количество яиц, сданных серверу, для квеста "27 фактов о куриных яйцах";
qEggStats -количество раз, которое игрок выполнил квест "27 фактов о куриных яйцах";

76

PlayerID - личные ID-игроков (у мультов совпадает с id основного игрока);


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