Версия для печати темы
MyDC.ru _ Развлекательные скрипты [PtokaX] _ HiLo 1.0c
Автор: Артём 17.8.2009, 6:54
Название скрипта: HiLo
Версия API:2
Описание: Угадай число которое загадало HiLo
Цитата
- [07:59:14] <[HiLo]> Артём, Хило выбрала ряд между 0 и 100. У вас 6 попыток.
- [07:59:24] <[HiLo]> [ 45 ] + Выше! Только 20 осталось секунд!
- [07:59:28] <[HiLo]> [ 45, 50 ] + Выше yet! Только 16 осталось секунд!
- [07:59:30] <[HiLo]> [ 45, 50, 60 ] + Выше yet! Только 14 осталось секунд!
- [07:59:33] <[HiLo]> [ 45, 50, 60, 70 ] + Выше again! Только 11 осталось секунд!
- [07:59:35] <[HiLo]> [ 45, 50, 60, 70, 80 ] + Выше still! Только 9 осталось секунд!
- [07:59:37] <[HiLo]> [ 45, 50, 60, 70, 80, 90 ] x Конец игры Артём, вы проиграли. Ответ был 87.
Великий Артём, не повезло в любви, а теперь это.
1.) Игрок: Артём Побед: 1 Проигрешей: 8 Точность: 11.11 %
Автор: Mutor , перевод на русский
Артём (прошу сильно не пинать за перевод
)
HiLo_1.0c.lua ( 12.92 килобайт )
: 205 7:34 16.03.2010
Автор: Trans 17.8.2009, 11:29
Такие задачи решаются методом уполовинивания диапазона вариантов.
Например, для случая, показанного выше в логе...Сразу пишешь - 50 (половина диапазона), бот говорит - выше. Пишешь 75. Опять надо выше. Половина оставшегося диапазона - 87 или 88. Если напишешь 87, уже выиграл, если 88 - следующий вариант будет 82 или 83. В любом случае мы неуклонно сужаем диапазон, и через пару попыток угадываем ответ. Путь может оказаться длиннее, но в любом случае быстрее, потому что не гадаешь, а отрабатываешь автоматом половинки диапазона..
Мне так кажется. Проверьте и скажите, так ловчее или нет?
Автор: Qwert 19.8.2009, 7:52
просьба если есть возможность выложи оригинальный вариант скрипта
Автор: Артём 19.8.2009, 8:06
Есть возможность держи.
HiLo_1.lua ( 15 килобайт )
: 38
Автор: Qwert 19.8.2009, 21:23
Спасибо
Автор: Shoo 27.8.2009, 13:44
Более сносный перевод, сегодня с утречка для себя наклепал, заменил бы в главном посте, копирайты не трогал.
Автор: Pro009 27.9.2009, 3:10
Цитата(Артём @ 17.8.2009, 7:54)
Название скрипта: HiLo
Версия API:2
Описание: Угадай число которое загадало HiLo
Автор: Mutor , перевод на русский
Артём (прошу сильно не пинать за перевод
)
[attachment=3076:HiLo_1.0c.lua]
Мне не понравилось начальное меню - это название моего хаба , я хочу чтобы у него нормальное меню было "Игры"
Автор: Jaska 27.9.2009, 5:07
Измени Menu = SetMan.GetString(0),
Автор: Steep 20.10.2009, 8:38
Цитата(Jaska @ 27.9.2009, 6:07)
Измени Menu = SetMan.GetString(0),
у меня таже самая параша,, зделал так как ты написал но серавно пишит название хаба а потом уже моё меню
может ты что то пропуститЛ?
Автор: Wariner 20.10.2009, 14:43
нет, вы не поняли, коллега сказал, что надо изменить эту строчку
Код
Menu = SetMan.GetString(0)
например на
Код
Menu = "Игры"
Автор: Steep 21.10.2009, 17:10
Цитата(Wariner @ 20.10.2009, 15:43)
нет, вы не поняли, коллега сказал, что надо изменить эту строчку
Код
Menu = SetMan.GetString(0)
например на
Код
Menu = "Игры"
вот теперь спс норм обьястнил)
Автор: simbirsk 24.10.2009, 16:10
Никто кроме админов не может играть в эту игру, что мне делать??? Юзеры не видят игру... .
Автор: Артём 24.10.2009, 17:09
simbirsk
Код
Profiles = {
[-1] = {false,"Unregistered User"},
[0] = {true,"Master"},
[1] = {true,"Operator"},
[2] = {true,"Vip"},
[3] = {true,"Registered User"},
видел такую вещицу?
Автор: simbirsk 28.10.2009, 15:01
Что нужно прописать подскажите, чтобы не зарегистрированные и админы видели игру, а лучше все подряд!!!
Автор: Wariner 28.10.2009, 15:28
видимо в выше преведённой таблице сменить все false на true
Автор: simbirsk 28.10.2009, 16:48
ОГРОМНОЕ СПАСИБО!!!!!!!!!!!!!!!!!!!!!!!!!!
Автор: TiGRpp 27.12.2009, 8:16
Цитата(Артём @ 17.8.2009, 7:54)
Автор: Mutor , перевод на русский
Артём (прошу сильно не пинать за перевод
)
Скрипт образует файл Hilo.dat, а поскольку путь сохранения не прописан (я не нашел), то он сохраняется где попало...можно исправить?
Автор: Wariner 27.12.2009, 10:24
почему не прописан? а это
Код
File = "HiLo.dat",
что?
PS: надеюсь сами поправить сможете?
Автор: TiGRpp 27.12.2009, 12:59
Цитата(Wariner @ 27.12.2009, 11:24)
почему не прописан? а это
Код
File = "HiLo.dat",
Спасибо.
Бывает, не увидел, простите...
Автор: Артём 16.3.2010, 8:36
Доперевёл игрушку, в первом посту выложил
Автор: Invisible 16.9.2010, 15:26
Ребят, попробуйте пожалуйста осуществить мною предложенную идейку, через этот скрипт...
1) Если пользователь угадывает Число, то он получает ОПератора на 24 часа.
2) Ему дается ссыграть 5 раз за 24 часа.. "У вас осталос n попыток." Т.е стоит ограничение 5 раз. Если ответил 5 раз неверно, то вылазиет сообщение" "Вы исчерпали все ваши попытки. Следующая ваша игра будет через n время (23:59:59 минут)"
3) Если какой либо пользователь стал ОПератором, то всем пользователям надо ждать пока время оператора не пройдет. Сообщение: "В данный момент существует [user] ОПератор, вы можете ссыграть через n время (23:59:59 минут)"
4) Сообщение во время победы: "Поздравляем [user]. Он получил ключик ОПератора. Его ключ истечет через (23:59:59 минут)"
5) В Таблице Рекордов:
Цитата
1.) Игрок: [Mr]LoL™ Стал ОПератором : 3 Всего попыток: 15
6) Меню Администратора:
a) Изменить попытки (увеличить\уменьшить)
b) Возможность снять оператора, по каким либо причина. И если его снимают с ОПератора, приходит сообщение в Общий чат "Администратор снял ключ ОПератора [user]. Игра Возобновлена." И продолжается игра...
c) Изменить Range от нуля до.. Админа указанного числа.
Автор: Nickolya 17.9.2010, 19:33
Invisible, вряд ли, если только сам... Логики много, делать надо тоже немало, но результат не такой уж и заманчивый. Я бы тебе даже советовал пересмотреть идею, выиграть в такой игре просто, а давать за это оператора не очень рационально.
Автор: Invisible 17.9.2010, 19:51
Nickolya, Такой скрипт я потребовал, чтобы изучить его хорошенько, ты прав логики тут много надо, то чего мне в данный момент не хватает в LUA а мне Логика очень нужна... в готовый код намного быстрее разобраться можно, чем самому писать.
PS сорри за оффтоп
Для таких неопытных писателей как я, я бы предложил Мастерам Lua заполнить http://mydc.ru/topic118.html?hl=%E4%E0%E1%FB+%ED%E5+%E7%E0%E4%E0%E2%E0%F2%FC с небольшими примерами. К примеру.. Функция какая либо и Пример к этой функции. Так намного легче понять.
Допустим
Цитата
Core.GetOnlineNonOps() - Возвращает таблицу со всеми таблицами онлайн пользователей без статуса оператора.
Аналог API 1: ftmHub:GetOnlineNonOperators()
пользователь посмотрит на эту функцию, и скажет...
Цитата
Как ей пользоваться, куда ее писать, как она должна работать...???
Не я только один будем Вам благодарны!
Простите еще раз за оффтоп.
Автор: Nickolya 17.9.2010, 22:46
Все конечно очень хорошо, но это не так тяжело сделать и самому, берем такую функцию (она немного извращена мной)
Код
function SerializeToString(tTable, sTableName, sTab)
local tTableConcat = {}
local sTab = sTab or ""
table.insert(tTableConcat, sTab)
table.insert(tTableConcat, sTableName and sTableName.." = {\r\n" or "return {\r\n")
for key, value in pairs(tTable) do
local sKey = (type(key) == "string") and ("[%q]"):format(key) or ("[%d]"):format(key)
if(type(value) == "table") then
table.insert(tTableConcat, SerializeToString(value, sKey, sTab.."\t"))
else
local sValue = (type(value) == "string") and string.format("%q",value) or tostring(value)
table.insert(tTableConcat, sTab)
table.insert(tTableConcat, "\t")
table.insert(tTableConcat, sKey)
table.insert(tTableConcat, " = ")
table.insert(tTableConcat, sValue)
end
table.insert(tTableConcat, ",\r\n")
end
table.insert(tTableConcat, sTab)
table.insert(tTableConcat, "}")
return table.concat(tTableConcat)
end
И делаем, к примеру, вот так
Код
Core.SendToNick('Invisible', SerializeToString(Core.GetOnlineNonOps(), "Core.GetOnlineNonOps()"))
и смотрим что выходит, так со всем, что нам надо... Лично я учился так.
Автор: sexynapku 14.12.2010, 12:17
Не много изменил скрипт )
только это не получилось изменить ((
почему ? я вроде все норм сделал
Цитата
HiLo Command Help
ЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇ
+hlhelp Помощь
+hilo Начать раунд
+hlscores Получить Баллы
ЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇ
хочу изменить на это
Цитата
Команды
==================================
+hlhelp HiLo Command Help
+hilo Start A Round Of HiLo
+hlscores Get HiLo Scores
==================================
Автор: Enyby 14.12.2010, 18:05
Код
hlhelp = function(user,data)
if user then
local reply = "\n\n\t\tHiLo Command Help\n\t"..string.rep("Ї",35).."\n"
for i,v in pairs(Cmds) do
if i ~= "int" then
local desc,args = Cmds[i]()
reply = reply.."\t+"..string.format("%-15s",i).."\t"..desc.."\n"
end
end
return reply.."\n\t"..string.rep("Ї",35).."\n\n"
else
return "Помощь","",""
end
end,
замени на
Код
hlhelp = function(user,data)
if user then
local reply = "\n\nКоманды\n\t"..string.rep("=",35).."\n"
for i,v in pairs(Cmds) do
if i ~= "int" then
local desc,args = Cmds[i]()
reply = reply.."\t+"..string.format("%-15s",i).."\t"..desc.."\n"
end
end
return reply.."\n\t"..string.rep("=",35).."\n\n"
else
return "Помощь","",""
end
end,
ну и всякие
Код
return "Помощь","",""
на
Код
return "Get HiLo Scores","",""
для каждой команды.
Автор: sexynapku 15.12.2010, 9:32
скинь пожайлуста готовый не могу скопировать
Автор: Enyby 15.12.2010, 12:03
Дожили. Смени браузер, если не можешь текст копировать. Путь я указал, а разжевать да в рот плюнуть, это не ко мне.
Автор: sexynapku 17.12.2010, 17:53
скажите пожайлуста как это убрать
Цитата
[20:43:26] <Палата> HiLo 1.0c for PtokaX Lua 5.1 был остановлен, освобождая 64.00 Kb. памяти.
и еще когда он пишет что был включен
Автор: Saymon 17.12.2010, 18:00
открой скрипт, найди строку и закоментируй
Автор: sexynapku 17.12.2010, 19:57
удалить просто строчку ?
Автор: Saymon 17.12.2010, 20:14
Цитата(Saymon @ 17.12.2010, 18:00)
закоментируй
Тоесть
-- напиши перед этой строкой
Автор: sexynapku 18.12.2010, 10:17
Цитата(Saymon @ 17.12.2010, 21:14)
Тоесть
-- напиши перед этой строкой
что написать ?
Автор: Ksan 18.12.2010, 10:28
Да пристрелили бы его уже что ли, чтоб не мучился так.. :(
Автор: Enyby 18.12.2010, 10:33
"--" (два дефиса) признак комментария. Тебе их нужно написать В НАЧАЛЕ той строки, которую ты хочешь закомментировать.
PS Если у тебя все так туго, я бы задался вопросом, нужно ли оно тебе.
Автор: sexynapku 18.12.2010, 18:06
вот так ? )
Цитата
--OnError(Cfg.Script.." был остановлен, освобождая "..CleanMem().." памяти.")
Автор: Saymon 18.12.2010, 18:11
sexynapku, а мы не знаем, давай-ка уже делай сам!
Автор: Enyby 18.12.2010, 20:51
Два дефиса, за ними пробел. А так все верно.