Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

MyDC.ru _ Развлекательные скрипты [PtokaX] _ HiLo 1.0c

Автор: Артём 17.8.2009, 6:54

Название скрипта: HiLo
Версия API:2
Описание: Угадай число которое загадало HiLo big_smile.gif

Цитата
- [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 , перевод на русский Артём (прошу сильно не пинать за перевод confuse.gif )

 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. В любом случае мы неуклонно сужаем диапазон, и через пару попыток угадываем ответ. Путь может оказаться длиннее, но в любом случае быстрее, потому что не гадаешь, а отрабатываешь автоматом половинки диапазона..
Мне так кажется. Проверьте и скажите, так ловчее или нет? big_smile.gif

Автор: Qwert 19.8.2009, 7:52

просьба если есть возможность выложи оригинальный вариант скрипта

Автор: Артём 19.8.2009, 8:06

Есть возможность big_smile.gif держи.
 HiLo_1.lua ( 15 килобайт ) : 38

Автор: Qwert 19.8.2009, 21:23

Спасибо secret_smile.gif

Автор: Shoo 27.8.2009, 13:44

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

 HiLo_1.lua ( 14.94 килобайт ) : 78
 

Автор: Pro009 27.9.2009, 3:10

Цитата(Артём @ 17.8.2009, 7:54) *
Название скрипта: HiLo
Версия API:2
Описание: Угадай число которое загадало HiLo big_smile.gif

Автор: Mutor , перевод на русский Артём (прошу сильно не пинать за перевод confuse.gif )

[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"},

видел такую вещицу? bad_smile.gif

Автор: 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 , перевод на русский Артём (прошу сильно не пинать за перевод confuse.gif )

Скрипт образует файл 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

Доперевёл игрушку, в первом посту выложил big_smile.gif

Автор: 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 от нуля до.. Админа указанного числа.
big_smile.gif

Автор: Nickolya 17.9.2010, 19:33

Invisible, вряд ли, если только сам... Логики много, делать надо тоже немало, но результат не такой уж и заманчивый. Я бы тебе даже советовал пересмотреть идею, выиграть в такой игре просто, а давать за это оператора не очень рационально.

Автор: Invisible 17.9.2010, 19:51

Nickolya, Такой скрипт я потребовал, чтобы изучить его хорошенько, ты прав логики тут много надо, то чего мне в данный момент не хватает в LUA big_smile1.gif а мне Логика очень нужна... в готовый код намного быстрее разобраться можно, чем самому писать.

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

==================================



 ________.lua ( 12.85 килобайт ) : 2
 

Автор: 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

открой скрипт, найди строку и закоментируй bad_smile.gif

Автор: sexynapku 17.12.2010, 19:57

удалить просто строчку ?

Автор: Saymon 17.12.2010, 20:14

Цитата(Saymon @ 17.12.2010, 18:00) *
закоментируй

Тоесть -- напиши перед этой строкой eyes_droped.gif

Автор: sexynapku 18.12.2010, 10:17

Цитата(Saymon @ 17.12.2010, 21:14) *
Тоесть -- напиши перед этой строкой eyes_droped.gif

что написать ?

Автор: 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

Два дефиса, за ними пробел. А так все верно.