Здравствуйте, гость ( Вход | Регистрация )

 
Ответить в эту темуОткрыть новую тему
> Мининг рандом, Как сделать рандом?
Ronald
сообщение 23.2.2015, 18:53
Сообщение #1


*

Registred
Сообщений: 4
Регистрация: 9.2.2015
Группа: Пользователи
Наличность: 0
Пользователь №: 17.291



Добрый вечер всем!
Суть вопроса вот в чём как сделать чтобы чар капал x3 на y3 рандомно?

Кидаю кусочек скрипта))

for #x -3 3 1
for #y -3 3 1
set lasttargetx charposx +#x
set lasttargety charposy +#y
set lasttargetkind 3
:repeat
send F12 400


Заранее благодарен! (IMG:style_emoticons/default/rolleyes.gif)
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 23.2.2015, 22:22
Сообщение #2


***********

Модератор UOPilot
Сообщений: 9.460
Регистрация: 2.12.2008
Группа: Супермодераторы
Наличность: 27708
Пользователь №: 11.279



В текущем виде никак. Надо переписывать всю функцию и уходить от этих двух for'ов. Наверное самым правильным вариантом будет создание списка всех возможных сочетаний координат, копирование этого списка во второй массив, перемешивание второго массива меняя местами элементы. Вот во время смены мест элементов можно будет использовать рандом, а задав большое количество итераций можно добиться очень высокой уникальности. Хотя в данном случае скорее не уникальности, а равномерности распределения вероятности.


--------------------
Скрипты UOPilot под заказ.
Консультации по UOpilot 15$/час.
Услуги Lua разработчика (не пилот, проекты, постоянка)
Disсоrd:
Kov____
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
cirus
сообщение 23.2.2015, 23:56
Сообщение #3


**********

Elder
Сообщений: 3.480
Регистрация: 18.8.2014
Группа: Пользователи
Наличность: 26540
Пользователь №: 16.971
Возраст: 29



Цитата
В текущем виде никак. Надо переписывать всю функцию и уходить от этих двух for'ов. Наверное самым правильным вариантом будет создание списка всех возможных сочетаний координат, копирование этого списка во второй массив, перемешивание второго массива меняя местами элементы. Вот во время смены мест элементов можно будет использовать рандом, а задав большое количество итераций можно добиться очень высокой уникальности. Хотя в данном случае скорее не уникальности, а равномерности распределения вероятности.

Или во второй массив записывать те координаты, которые уже использовались, а новые координаты сравнивать были они или нет.
Пользователь в онлайне!Delete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 24.2.2015, 0:03
Сообщение #4


***********

Модератор UOPilot
Сообщений: 9.460
Регистрация: 2.12.2008
Группа: Супермодераторы
Наличность: 27708
Пользователь №: 11.279



Цитата
Или во второй массив записывать те координаты, которые уже использовались, а новые координаты сравнивать были они или нет.

Когда останется 1 элемент - будешь прокручивать варианты очень долго.


--------------------
Скрипты UOPilot под заказ.
Консультации по UOpilot 15$/час.
Услуги Lua разработчика (не пилот, проекты, постоянка)
Disсоrd:
Kov____
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
cirus
сообщение 24.2.2015, 14:36
Сообщение #5


**********

Elder
Сообщений: 3.480
Регистрация: 18.8.2014
Группа: Пользователи
Наличность: 26540
Пользователь №: 16.971
Возраст: 29



Цитата
Когда останется 1 элемент - будешь прокручивать варианты очень долго.

Попробовал, согласен, вариант с перемешиванием быстрее и проще.
Пользователь в онлайне!Delete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Ronald
сообщение 24.2.2015, 17:22
Сообщение #6


*

Registred
Сообщений: 4
Регистрация: 9.2.2015
Группа: Пользователи
Наличность: 0
Пользователь №: 17.291



Спасибо за ответы)))буду пробывать колдовать ,хоть и не очень понял))) (IMG:style_emoticons/default/tongue.gif)

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

Заранее благодарен!
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 24.2.2015, 17:42
Сообщение #7


***********

Модератор UOPilot
Сообщений: 9.460
Регистрация: 2.12.2008
Группа: Супермодераторы
Наличность: 27708
Пользователь №: 11.279



проверяйте зарезервированную переменную wght.


--------------------
Скрипты UOPilot под заказ.
Консультации по UOpilot 15$/час.
Услуги Lua разработчика (не пилот, проекты, постоянка)
Disсоrd:
Kov____
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Ronald
сообщение 24.2.2015, 18:23
Сообщение #8


*

Registred
Сообщений: 4
Регистрация: 9.2.2015
Группа: Пользователи
Наличность: 0
Пользователь №: 17.291



Цитата(DarkMaster @ 24.2.2015, 18:42) *

проверяйте зарезервированную переменную wght.


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

вот собстно скрипт,помогите подправить п-жста

set $s1 Тут не осталось руды.
set $s2
set $s3
set $s4
set $s5
set $s6
set $s7
set $s8
set $s9
set $s10
for #x -3 3 1
for #y -3 3 1
set lasttargetx charposx +#x
set lasttargety charposy +#y
set lasttargetkind 3
:repeat
send F12 400
set timer
while_not (lastmsg = $s1) or (lastmsg = $s2) or (lastmsg = $s3) or (lastmsg = $s4) or (lastmsg = $s5) or (lastmsg = $s10) or (lastmsg = $s5) or (lastmsg = $s6) or (lastmsg = $s11) or (lastmsg = $s12) or (timer > 2000)
while_not (lastmsg = $s7) or (lastmsg = $s9) or (lastmsg = $s16) or (timer > 70000)
end_while
end_while
if wght >= 700
repeat 5
alarm
end_repeat
pause_script
end_if
goto repeat
end_while
end_for
end_for
set #walk random (5)
if #walk = 0
repeat 5
send PageUp 200
end_repeat
end_if
if #walk = 1
repeat 5
send PageDown 200
end_repeat
end_if
if #walk = 2
repeat 5
send Home 200
end_repeat
end_if
if #walk = 3
repeat 5
send End 200
end_repeat
end_if
if #walk = 4
repeat 5
send Up 200
end_repeat
end_if
if #walk = 5
repeat 5
send Down 200
end_repeat
end_if
if #walk = 6
repeat 5
send Left 200
end_repeat
end_if
if #walk = 7
repeat 5
send Right 200
end_repeat
end_if
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Ronald
сообщение 24.2.2015, 22:55
Сообщение #9


*

Registred
Сообщений: 4
Регистрация: 9.2.2015
Группа: Пользователи
Наличность: 0
Пользователь №: 17.291



Проблему решил.Тему можно закрыть.Спасибо!
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения

Ответить в эту темуОткрыть новую тему
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0

 

- Текстовая версия | Версия для КПК Сейчас: 28.3.2024, 13:37
Designed by Nickostyle