Asummonster
-
Публикации
420 -
Зарегистрирован
-
Посещение
-
Победитель дней
12
Сообщения, опубликованные пользователем Asummonster
-
-
Ага, а Вика предлагает другое число - 18000. Ну ок. Как они там считали, не понятно. Мы получили реальное значение из кода майна, считай, вызовами из ОС.
Ну теперь смотри. У меня 30 лвл и я хочу снять в банк 50% Ты с меня спишешь 15 уровней.
Потом я чарю колбасу на вкусность. У меня остается 1 лвл. Прихожу в банк, забираю свои 15 лвл. Но по факту опыта я верну намного меньше.
Как поступишь?
Хм, вот это я не продумал... Я храню уровни,а надо их переводить в именно в сферки. Реализую.
Ага, а Вика предлагает другое число - 18000. Ну ок. Как они там считали, не понятно. Мы получили реальное значение из кода майна, считай, вызовами из ОС.
Кстати, вот 18000 опыта:

-
22070
-
ну ешкин кот, у тебя же циклы есть в луа и схрон в файл, шлепни 60 уровней или 100.=)
Level: 1 ; EXP: 17 Level: 2 ; EXP: 17 Level: 3 ; EXP: 17 Level: 4 ; EXP: 17 Level: 5 ; EXP: 17 Level: 6 ; EXP: 17 Level: 7 ; EXP: 17 Level: 8 ; EXP: 17 Level: 9 ; EXP: 17 Level: 10 ; EXP: 17 Level: 11 ; EXP: 17 Level: 12 ; EXP: 17 Level: 13 ; EXP: 17 Level: 14 ; EXP: 17 Level: 15 ; EXP: 17 Level: 16 ; EXP: 17 Level: 17 ; EXP: 20 Level: 18 ; EXP: 23 Level: 19 ; EXP: 26 Level: 20 ; EXP: 29 Level: 21 ; EXP: 32 Level: 22 ; EXP: 35 Level: 23 ; EXP: 38 Level: 24 ; EXP: 41 Level: 25 ; EXP: 44 Level: 26 ; EXP: 47 Level: 27 ; EXP: 50 Level: 28 ; EXP: 53 Level: 29 ; EXP: 56 Level: 30 ; EXP: 59 Level: 31 ; EXP: 62 Level: 32 ; EXP: 69 Level: 33 ; EXP: 76 Level: 34 ; EXP: 83 Level: 35 ; EXP: 90 Level: 36 ; EXP: 97 Level: 37 ; EXP: 104 Level: 38 ; EXP: 111 Level: 39 ; EXP: 118 Level: 40 ; EXP: 125 Level: 41 ; EXP: 132 Level: 42 ; EXP: 139 Level: 43 ; EXP: 146 Level: 44 ; EXP: 153 Level: 45 ; EXP: 160 Level: 46 ; EXP: 167 Level: 47 ; EXP: 174 Level: 48 ; EXP: 181 Level: 49 ; EXP: 188 Level: 50 ; EXP: 195 Level: 51 ; EXP: 202 Level: 52 ; EXP: 209 Level: 53 ; EXP: 216 Level: 54 ; EXP: 223 Level: 55 ; EXP: 230 Level: 56 ; EXP: 237 Level: 57 ; EXP: 244 Level: 58 ; EXP: 251 Level: 59 ; EXP: 258 Level: 60 ; EXP: 265 Level: 61 ; EXP: 272 Level: 62 ; EXP: 279 Level: 63 ; EXP: 286 Level: 64 ; EXP: 293 Level: 65 ; EXP: 300 Level: 66 ; EXP: 307 Level: 67 ; EXP: 314 Level: 68 ; EXP: 321 Level: 69 ; EXP: 328 Level: 70 ; EXP: 335 Level: 71 ; EXP: 342 Level: 72 ; EXP: 349 Level: 73 ; EXP: 356 Level: 74 ; EXP: 363 Level: 75 ; EXP: 370 Level: 76 ; EXP: 377 Level: 77 ; EXP: 384 Level: 78 ; EXP: 391 Level: 79 ; EXP: 398 Level: 80 ; EXP: 405 Level: 81 ; EXP: 412 Level: 82 ; EXP: 419 Level: 83 ; EXP: 426 Level: 84 ; EXP: 433 Level: 85 ; EXP: 440 Level: 86 ; EXP: 447 Level: 87 ; EXP: 454 Level: 88 ; EXP: 461 Level: 89 ; EXP: 468 Level: 90 ; EXP: 475 Level: 91 ; EXP: 482 Level: 92 ; EXP: 489 Level: 93 ; EXP: 496 Level: 94 ; EXP: 503 Level: 95 ; EXP: 510 Level: 96 ; EXP: 517 Level: 97 ; EXP: 524 Level: 98 ; EXP: 531 Level: 99 ; EXP: 538 Level: 100 ; EXP: 545
-
1
-
-
А до какого уровня? Их-то миллионы
-
Даааа, чувствую, поорем тут

ГУИ, ерунда. Ты опыт получил? Учитываешь дискретность и его вес на разных уровнях? Как списываешь и добавляешь опыт? Где хранишь пока его?
Опыт получил радаром, храню в своей БД, учитываю разное количество опыта разным уровням,выдаю его через КБ, отнимаю тоже через КБ
-
Quant: Сделал бы,но не умею GUI делать
Asummonster: Я уже сделал, но не могу GUI сделать
Чувствуете разницу? Вот поэтому Quant попал в вайтлист, а Asummonster — нет.
Меня выперли из вайт-листа

-
Я уже сделал, но не могу GUI сделать

-
А как же DataCloud?
Идите свои темы создавайте. А то сейчас мою тему превратите в тему с OpenCloud'ом
-
Я не знаю sql, если Лёха поможет - с радостью.
-
Моя мини-база на сервере почти в 400 строк

-
На сервере функция collons, но в библе её вызывать как collums
-
Оно там все в таблах висит? Если ПК ребутнится, вся база слетит к чертям?
Нет. Это всё лежит в раиде в Лабаратории
Я же не совсем дурак
-
: Column
| но не Collum!
Поставь функции в [inline] теги, поправь форматирование.
А по поводу либы — надо будет затестить как-нибудь. Но мне проще хранить данные в памяти программы или на харде :P
Зайду с компа - поправлю. А то писать хоть что-то на виндус планшете - и врагу не пожелаешь
-
Да это старое правило)Алекса же за менялу не забанили

-
Берусь!)
-
1
-
-
Всем привет!В этой теме я хочу рассказать о своей программе для управления неким подобием базы данных.
Структура хранения файлов такова:
Папка с логинами и паролями
Папка с папками под именем логина, в которой может быть 256 пользователей, у которых может быть 256 баз данных, в которых может быть 256 "колонок" с определёнными данными в них.
Библиотека требует библиотеку OpenNet.
Пройдёмся по методам.
1 метод - аутентификация. - auth(login, password)
Сейчас доступен только 1 аккаунт - test, с паролем test
Зачем он создан? Потому, что чёртов модем не хочет отправлять более 11 пакетов.
Как оно работает?
В таблицу на сервере, в значение с вашим ip добавляются логин и пароль.
2 метод - создание базы данных (А с ней и пользователя, если он не найден!НЕ ПУТАТЬ С ЛОГИНОМ!) -createDataBase (DataBaseUser, DataBaseName)
3 метод - создание "колонки" в базе данных - createCollum(DataBaseUser, DataBaseName, CollumName)
4 метод - запись данных в "колонку" - writeData(DataBaseUser, DataBaseName, CollumName, data)
5 метод - чтение данных из "колонки" - readData(DataBaseUser, DataBaseName, CollumName)
6 метод -получает пользователей - getUsers() возвращает сериализированную таблицу, стринг, или нилл
7 метод - получает базы данных пользователя - getUserDatabases(DataBaseUsers)возвращает сериализированную таблицу, стринг, или нилл
И 8 метод получает колонки пользователя базы данных в базе данных. - getCollums(DataBaseUser, DataBaseName)возвращает сериализированную таблицу, стринг, или нилл.
Код: в открытой бете, можно проверить на сервере.
Код библы:on=require("opennet") myIP=on.getIP() serverIP="myDataBase" function send(...) return {on.sendrec(serverIP, ...)} end db={} function db.auth(login, password) return table.unpack(send("auth", login, password)) end function db.createDataBase(databaseUser, databaseName) data=send("createDataBase", databaseUser, databaseName) return table.unpack(data) end function db.createCollum(databaseUser, databaseName, collumName) return table.unpack(send("createCollum", databaseUser, databaseName, collumName)) end function db.writeData(databaseUser, databaseName, collumName, data) return table.unpack(send("writeData", databaseUser, databaseName, collumName, data)) end function db.readData(databaseUser, databaseName, collumName) return table.unpack(send("readData", databaseUser, databaseName, collumName)) end function db.getUsers() return table.unpack(send("getUsers")) end function db.getUserDatabases(databaseUser) return table.unpack(send("getUserDatabases", databaseUser)) end function db.getCollums(databaseUser, databaseName) return table.unpack(send("getCollons", databaseUser, databaseName)) end return db
Приложение для работы с базой:db=require("mydb") event=require("event") gpu=require("component").gpu serlib=require("serialization") ser=serlib.serialize unser=serlib.unserialize function getDataBaseData() gpu.setForeground(0xffffff) print("Введите имя пользователя БД") dbu=io.read() gpu.setForeground(0xffffff) print("Введите имя БД") dbn=io.read() db.dbn, db.dbu = dbn, dbu gpu.setForeground(0xffffff) end read=io.read function io.read(...) gpu.setForeground(0xff0000) return read(...) end function doAuth() gpu.setForeground(0xffffff) print("Введите логин") login=tostring(io.read()) gpu.setForeground(0xffffff) print("Введите пароль") pass=tostring(io.read()) result, description = db.auth(login, pass) if result==true then print(description) elseif result==false then error(description) end end function printUsage() gpu.setForeground(0x00ff00) print("==============================================================") print("---------------------------AdminDB----------------------------") print("==============================================================") print("D - Создать БД W - Изменить данные") print("C - Добавить колонку U - Список пользователей") print("B - Список БД V - Список колонок") print("R - Прочитать данные из колонки N - Создать новый аккаунт)") print("==============================================================") print("--------------------------------------------------------------") print("==============================================================") end doAuth() printUsage() while true do _,_,_,k=event.pull("key_down") k=require("keyboard").keys[k] if k=="d" then getDataBaseData() gpu.setForeground(0xffffff) print(db.createDataBase(db.dbu, db.dbn)) elseif k=="c" then getDataBaseData() gpu.setForeground(0xffffff) print("Введите имя колонки") cn=io.read() gpu.setForeground(0xffffff) print(db.createCollum(db.dbu, db.dbn, cn)) elseif k=="b" then gpu.setForeground(0xffffff) print("Введите имя пользователя базы данных:") dbu=io.read() gpu.setForeground(0xffffff) _, tablebases=db.getUserDatabases(dbu) if unser(tablebases) then tablebases=unser(tablebases) for i=1, #tablebases do print(tablebases[i]) end else print(tablebases) end elseif k=="w" then gpu.setForeground(0xffffff) print("Введите имя колонки") cn=io.read() gpu.setForeground(0xffffff) print("Введите текст") text=io.read() getDataBaseData() gpu.setForeground(0xffffff) print(db.writeData(db.dbu, db.dbn, cn, text)) elseif k=="u" then gpu.setForeground(0xffffff) local _, users=db.getUsers() if unser(users) then users=unser(users) for i=1, #users do print(users[i]) end else print(users) end elseif k=="v" then getDataBaseData() _, collons=db.getCollums(db.dbu, db.dbn) if unser(collons) then collons=unser(collons) for i=1, #collons do print(collons[i]) end else print(db.getCollums(db.dbu, db.dbn)) end elseif k=="r" then gpu.setForeground(0xffffff) print("Введите колонку:") cn=io.read() getDataBaseData() _, data = db.readData(db.dbu, db.dbn, cn) print(data) end printUsage() end
Надеюсь, это кому-нибудь понадобится! -
Лучше всего, как уже доказала дверь у входа в каморку фингера - Умная дверь Тоторо
-
Какие-то неправильные пчелы(с)AlexCC и Forestry*
-
1
-
-
Небольшой промах. Дрон может взаимодействовать через жидкости, и ставить его можно в чужом привате

-
Не-е-е. Так не пойдет. У тебя сколько блоков, столько записей в таблице. Включая пустоты. Я хочу перенести область размерами 100х100х60. Сколько ж мне жестких дисков понадобится. Давай уплотнять. Скажем, одна запись - прямоугольная область, заполненная однотипными блоками.
То есть, ты хочешь такую-же штуку, как и у крутого в его конвентtре?
-
Asummonster, меня интересует именно упаковка данных. Ты какой способ используешь?
И еще. У тебя как бы особый статус. Пустит ли тебя Алекс на сервер? Я не против, но надо уточнить.
Я использую table.insert(<table>, {x, y, z, world.getBlockId(x, y, z), world.getMetadata(x, y, z)})
А в файл записываю с помощью serialization
-
А как же без нее, конечно, и ид и мета нужны.
Хорошо.
Итак, вот программа:
debug=require("component").debug.getWorld() serlib=require("serialization") ser=serlib.serialize unser=serlib.unserialize args={...} function scan(xstart, ystart, zstart, xstop, ystop, zstop) tableTMP={} for y=ystart, ystop do for x=xstart, xstop do for z=zstart, zstop do tmp={x-xstop, y-ystop, z-zstop, debug.getBlockId(x, y, z), debug.getMetadata(x, y, z)} table.insert(tableTMP, tmp) print(x-xstop, y-ystop, z-zstop) end end end return tableTMP end function saveFile() file=io.open(args[8], "w") file:write(ser(scan(args[2], args[3], args[4], args[5], args[6], args[7]))) file:flush() file:close() end function place(filename, X, Y, Z) home=unser(io.lines(filename)()) for i=1, #home do x, y, z, id, meta = home[i][1]+X, home[i][2]+Y, home[i][3]+Z, home[i][4], home[i][5] debug.setBlock(x, y, z, id, meta) print(x, y, z, id) end end if args[1]==nil then print("Использование: save <xstart> <ystart> <zstart> <xstop> <ystop> <zstop> <filename>\nplace <filename> <x> <y> <z>") elseif args[1]=="save" then saveFile() elseif args[1]=="place" then place(args[2], args[3], args[4], args[5]) endКлючевой момент: все первые значения координат должны быть меньше других.То есть xstart=-150 xstop=-120; xstart=20, xstop=96.
-
Без метадаты - уже готово. Сканирует местность, записывает в файл. Потом читает из файла и сетит блоки дебаг картой
-
Ооооочень медленно...
Сканирование почти готово. Вопрос: важна-ли метадата?

"Банк опыта"
в Выполненные заказы
Опубликовано:
На вику постить не смогу, у меня по какой-то непонятной причине очень провисает gamepedia.