Locate village не работает

Все команды консоли /locate в Minecraft

Доброго времени суток, дорогие читатели! Когда-то я писал статью про то, как в Майнкрафте быстро найти деревню при помощи команд /locate и /tp, и на удивление она по сей день набирает просмотры, хотя я даже и не ожидал такого. Ну, раз вам так интересно знать, как найти деревню, то сегодня я напишу статью, в которой будут все команды /locate, доступные в игре. Начинаем!

Как найти затонувший корабль

В затонувшем корабле можно найти много интересного, в том числе и карту сокровищ, позволяющую найти клад.

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

/locate shipwreck

Как найти клад

Подробно про клад мы говорили в отдельной статье.

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

/locate buriedtreasure

Как найти развалины бастиона

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

Вот команда, чтобы узнать ближайшие координаты бастиона:

/locate bastionremnant

Как найти город Края

Про то, как найти город Края без команд я писал здесь.

А если же вам нужна команда ближаших координат города Края, то вот:

/locate endcity

Как найти адскую крепость.

Ну, а команда, как было написано в той статье, следующая:

/locate fortress

Как найти особняк

Недавно я писал статью про сид на особняк около спавна. Но зачем?

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

/locate mansion

Как найти заброшенную шахту

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

Чтоб узнать координаты ближайшей шахты, пишем следующее:

/locate mineshaft

Как найти подводную крепость

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

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

/locate monument

Как найти аванпост разбойников

Если же вам хочется сразиться с разбойниками, вызвать рейд на деревню, и после победы получить эффект «Герой деревни», то аванпост разбойников — это то, куда вам надо направляться в первую очередь.

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

/locate pillageroutpost

Как найти обломки портала

Разрушенный портал очень полезная вещь. С его помощью вам нужно будет лишь починить этот портал (если, конечно, он не будет где-то в океане), и отправиться в путешествие в Нижний мир, а также собрать с него плачущий обсидиан для крафта якоря возрождения.

Чтоб узнать ближайшие координаты разрушенного портала, пишем:

/locate ruinedportal

Как найти руины

Руины — структура в Майнкрафте, которую можно встретить в океане (а иногда и на суше), в которых можно найти сундуки с различными вещами.

Чтобы узнать координаты близких руин, пишем:

/locate ruins

Как найти крепость

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

Чтобы узнать координаты крепости, пишем

/locate stronghold

Как найти храм

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

Чтобы узнать ближайшие координаты одной из этих структур, пишем:

/locate temple

Как найти деревню

И, наконец, последняя команда — по нахождению деревни. Про находку деревни я говорил в этой статье.

Но все же, напишу эту команду еще раз:

/locate village

А на этом все! Спасибло за внимание и приятной игры!

Источник

Locate village не работает

Возникла ситуация что Locate не желает работать. Причина мне не ясна, т.к. аналогичный код работает в соседней форме.
Поиск ведётся по первичному ключу. Параметр берётся из другого запроса. Причем, если вместо параметра установить конкретное значение — работает. Хотелось бы узнать
1) Где грабли могут быть
2) Есть ли альтернатива Locate. Т.е. необходимо найти запись по перв. ключю. и сделать её активной.


Соловьев ( 2003-06-02 11:00 ) [1]


Шаповалов Кирилл ( 2003-06-02 11:07 ) [2]

блин, нету под рукой оригинала, на память боюсь ошибиться


Sandman25 ( 2003-06-02 11:10 ) [3]

2) Есть ли альтернатива Locate. Т.е. необходимо найти запись по перв. ключю. и сделать её активной.

Пробежаться по записям и остановиться на нужной.

with Table do
begin
DisableControls;
try
First;
while TableField1.asInteger <> SearchingValue do
Next;
finally
EnableControls;
end;
end;


Шаповалов Кирилл ( 2003-06-02 11:10 ) [4]

блин, нету под рукой оригинала, на память боюсь ошибиться


> Шаповалов Кирилл (02.06.03 11:10)

А мы типа тоже бимся ошибиться без кода, прикинь ;-).

> Sandman25 © (02.06.03 11:10)

И можно идти кофе пить. 🙂


Соловьев ( 2003-06-02 11:21 ) [6]


> while TableField1.asInteger <> SearchingValue do
>

.
while not Eof do
begin
if TableField1.asInteger <> SearchingValue then Next
else SysUtils.Abort;
end;
.


Zacho ( 2003-06-02 11:29 ) [7]


> Соловьев © (02.06.03 11:21)

А может более правильно else break; ?


Sandman25 ( 2003-06-02 11:32 ) [8]

VAleksey © (02.06.03 11:17)

Согласен, что для Table нужно задействовать Index. Кстати, можно попробовать двигаться бинарным делением и MoveBy.
Ну а если у нас Query и не упорядочен по искомому полю, то можно только моим «кофейным» способом 🙂

Соловьев © (02.06.03 11:21)

Нет. Иначе после первого же элемента произойдет Abort.


Соловьев ( 2003-06-02 11:32 ) [9]


> Zacho © (02.06.03 11:29

может 🙂 не проверял. писал с головы. )


> Нет. Иначе после первого же элемента произойдет Abort.

если бы было =, то да.


Sandman25 ( 2003-06-02 11:50 ) [11]

Соловьев © (02.06.03 11:35)

Я ошибся. У Вас было очень необычно написано, и я запутался.
Я обычно проверяю на сравнение.
while not Eof do
begin
if Table1Field.Value = aValue then
Break;
Next;
end;


Шаповалов Кирилл ( 2003-06-03 11:02 ) [12]

Соловьев ©
1) TblStudent»а чего ж ещё. не фурычит кароче.

DataMod.tblStudent.Locate(«ID»,DataMod.q_stud.FieldByName(«ID»).asiNTEGER,[]);
И чего? он установит курсор на запись в запросе. а форме8 там всё из tblStudent берётся.


Соловьев ( 2003-06-03 11:10 ) [13]

я забыл твой код тот что ты утром приводил, повтори.


Шаповалов Кирилл ( 2003-06-03 11:13 ) [14]

SELECT Student.ID,Student.Familiya, Student.Imya, Student.Otchestvo, Gruppa.GroupName
FROM «Student.DB» Student
INNER JOIN «Gruppa.DB» Gruppa
ON (Student.GroupID = Gruppa.ID)
WHERE (Student.Familiya LIKE :prmFam)
AND (Student.Imya LIKE :prmIm)
AND (Student.Otchestvo LIKE :prmOtch)
ORDER BY Student.Familiya, Student.Imya, Student.Otchestvo

вызывается он сл. кодом

with DataMod do
begin
q_Stud.close;
q_Stud.ParamByName(«prmFam»).asString:=RusUpCase(Edit1.text)+»%»;
q_Stud.ParamByName(«prmIm»).asString:=RusUpCase(Edit2.text)+»%»;
q_Stud.ParamByName(«prmOtch»).asString:=RusUpCase(Edit3.text)+»%»;
q_stud.Open;
Label5.Caption:=inttostr(q_stud.REcordCount);
if q_stud.REcordCount<>0 then DBgrid1.Enabled:=true;
end;
end;

Результат выводится в DBGrid. после чего обрабатывается клик на строку DBGrid таким образом

IF DataMod.src_q_stud.DataSet.FieldByName(«ID»).asiNTEGER=old_id then
begin
Form8:=TForm8.Create(Application);
// ЭТО ВРЕМЯ!
DataMod.tblStudent.Locate(«ID»,DataMod.src_q_stud.DataSet.FieldByName(«ID»).asiNTEGER,[]);
end
else old_id:=DataMod.src_q_stud.DataSet.FieldByName(«ID»).asiNTEGER;

где Form8 — форма выводящая инфу по студенту.

Проблема в том что не работает. :] Разобрался что в «это время» навигация не осуществляется. Даже методами next prev и т.п.


> Шаповалов Кирилл (03.06.03 11:13)

Странно как-то. Запрос ты делаешь в q_Stud, а Locate — в tblStudent. Похоже в этом и грабли


Соловьев ( 2003-06-03 11:20 ) [16]


> ORDER BY Student.Familiya, Student.Imya, Student.Otchestvo

а зачем?


Шаповалов Кирилл ( 2003-06-03 11:20 ) [17]

Zacho ©
q_stud запрос по таблице tblStudent, ищет студентов по фамилии и т.п. , тыкаешь в dbgrid, открывается окно с информацией по конкретному студенту. для это ищу d tblStudent такой же id как у записи из q_stud на которую кликнули


Соловьев ( 2003-06-03 11:29 ) [18]


> q_stud запрос по таблице tblStudent, ищет студентов по фамилии
> и т.п. , тыкаешь в dbgrid, открывается окно с информацией
> по конкретному студенту. для это ищу d tblStudent такой
> же id как у записи из q_stud на которую кликнули

зачем Locate? у тебя уже автоматически стоит курсор на нужной записи. выведи форму просто с DBText-ми


Sandman25 ( 2003-06-03 11:30 ) [19]

>Разобрался что в «это время» навигация не осуществляется. Даже методами next prev и т.п.

А что пишет? Dataset not active?


Zacho ( 2003-06-03 11:32 ) [20]


> Шаповалов Кирилл (03.06.03 11:20)

src_q_stud — это DataSource, к которому подключен q_Stud ?
А зачем так сложно DataMod.src_q_stud.DataSet.FieldByName(«ID»).asiNTEGER ? Можно просто DataMod.q_stud.FieldByName(«ID»).asiNTEGER
Да и втовем случае вообще достаточно Locate(«ID»,old_id,[]);


Шаповалов Кирилл ( 2003-06-03 11:48 ) [21]

Соловьев ©
q_Stud запрос с результатом из нескольких студентов, а не из одного

ничего не пишет. Я же говорю когда в locate вместо old_id ставить константу — работает.

scr_q_stud — да. можно всё, пробовал. не работает .

to ALL:
Я вот думаю, проблема, возможно,в том что q_stud — запрос по таблице студентов, т.е. курсор стоит на нескольких записях. И таблица какбы задействована, поэтому не фурычить locate по этой табличке. Такое возможно? Как считаете?


Zacho ( 2003-06-03 11:54 ) [22]


> Шаповалов Кирилл (03.06.03 11:48)

Что DataMod.tblStudent.Locate(«ID»,old_id,[]) не работает ? А в tblStudent точно есть запись с ID равным old_id ?


Соловьев ( 2003-06-03 11:54 ) [23]


> tblStudent

какя еще инфа выводится, которой нет в q_stud?
А зачем ты делаешь Locate? не проще ли выполнить еще один запрос?
select *
from student
where/>а в проге на реакцию q_stud.AfterScroll:
with Query2 do
begin
Close;
ParamByName(«id»).AsInteger := DataSet.FieldByName(«id»).AsInteger;
Open
end;


Шаповалов Кирилл ( 2003-06-03 11:59 ) [24]

Zacho ©
точно есть
Соловьев ©
попробую через запрос.
возможно получится, ведь такой запрос установит курсор именно на запись. да.


Zacho ( 2003-06-03 12:04 ) [25]


> Шаповалов Кирилл (03.06.03 11:59)
> точно есть

Тогда Locate должен работать. Проверь еще раз, протрассируй, посмотри что в old_id и есть ли запись с таким ID tblStudent.
Кстати, если tblStudent — TTable а по ID есть индекс, то вместо Locate можно использовать GotoKey. В хелпе есть пример.


Соловьев ( 2003-06-03 12:04 ) [26]


> возможно получится, ведь такой запрос установит курсор именно
> на запись. да.

тебе надо будет повесить на обработку клика по гриду показ формы, а данные о студенте с заданым ID, выдаст запрос Query2


Шаповалов Кирилл ( 2003-06-03 12:06 ) [27]

Zacho ©
Спасибо! Про GotoKey я запамятовал совсем.
Соловьев ©
Тоже отдельное спасибо.

Источник

Читайте также:  Как настроить свой днс сервер
Оцените статью