Перейти к содержимому

Asummonster

Пользователи
  • Публикации

    420
  • Зарегистрирован

  • Посещение

  • Победитель дней

    12

Сообщения, опубликованные пользователем Asummonster


  1. function os.sleep(timeout)
      checkArg(1, timeout, "number", "nil")
      local deadline = computer.uptime() + (timeout or 0)
      repeat
        computer.pullSignal(deadline - computer.uptime())
      until computer.uptime() >= deadline
    end
    

    Не так сложно было разобрать /boot/02_os.lua


  2. Я думал проблема в передаче самого цвета и его отделении. К примеру, при передаче картинки с экрана монитора удобнее всего было отправлять строку, так как таблица с цветом и символом весила слишком много(больше 8кб и модем просто не хотел отправлять). А НЕО опять агрессивный...


  3. Строка. Вот тебе кодик, очень простой:

     

    function subTheText(text) 
    	texttoreturn={}
    	noExit=true
    	while noExit do
    		startTEXT, stopTEXT=string.find(text, "CSTART") 
    		startC, stopC=string.find(text, "CSTOP") 
    		if startTEXT~=nil and stopTEXT~=nil and startC~=nil and stopC~=nil then
    			if string.sub(text, stopTEXT, stopC)~="" then
    				table.insert(texttoreturn, string.sub(text, stopTEXT+1, stopC-#"CSTOP"))
    			end
    			text=string.sub(text, stopC, #text)
    		else
    			noExit=false
    		end
    	end
    	return texttoreturn
    end
    

     

     

    То есть ты в компе-камере между цветами вставляешь CSTART и CSTOP. То есть "CSTART0x000000CSTOPCSTART0xff0000CSTOPCSTART0x00ff00CSTOPCSTART0x0000ffCSTOP" вернёт {0x000000, 0xff0000, 0x00ff00, 0x0000ff}


  4. o, на американской Вике все верно указано.

    по сути это три графика, начало следующего графика является концом предыдущего (прямая и две параболы разной "крутости")

     

    17*Level --(at levels 0-15)
    1.5*Level^2 - 29.5*Level + 360 --(at levels 16-30)
    3.5*Level^2 - 151.5*Level + 2220 --(at level 31+)
    

    Давай, Монстрик, уже банк опыта должен быть на ИТ.

    Работаю над банком. 


  5. Лучше-бы было это сделать так:

    Мы имеем таблицу с сообщением

    Подменяет функцию pullSignal

    Оставляем туда проверку памяти

    Если свободной памяти <2℅ то глобальная среда очищается(восстанавливается из бекапа, сделанного при загрузке системы)

    Выводит на экран это сообщение, предварительно сохранив сам экран-сделать это можно моим скриншоты ером(как-же без саморекламы?)

    Ждёт ивентов.

    Если ивент==тач ор кей даун зен

    Она восстанавливает экран и запускает sh

    Вот это было-бы приколько


  6. У меня не стоит офис  :blink:


    Алекс, а может по другому сделать?Хранить опыт в уровнях, и снимать все уровни за раз. Присобачить банк опыта к чарилке в банке, и чем больше у тебя уровень в БД, тем больше шанс, что у тебя будет удачный зачар:D


  7. В исходниках покопаться.

     

     

    --ПОДКЛЮЧЕНИЕ КОМПОНЕНТОВ
    component=require("component")
    radar=component.openperipheral_sensor
    cb=component.command_block
    --НАСТРОЙКИ
    background=0x00ff00
    foregroundBANKKEY=0x5A009D
    backgroundBANKKKEY=0x00CCCC
    foregroundPUTKEY=0xBFFF00
    backgroundPUTKEY=0x007BA7
    --НАСТРОЙКИ БАЗЫ ДАННЫХ
    DBLOGIN="myExperience"
    DBPASSWORD="****************************"
    DBUSER="EXP"
    DBNAME="EXP_USERS_XP"
    --ПРОГРУЖЕНИЕ БИБЛИОТЕК
    db=require("mydb")
    --СОЗДАНИЕ БАЗЫ ДАННЫХ
    db.auth(DBLOGIN, DBPASSWORD)
    db.createDataBase(DBUSER, DBNAME)
    --ФУНКЦИИ
    function getUserXP_local(login)
    	ta=radar.getPlayerByName(login).all().player.experience
    	return ta.level, ta.levelProgress, ta.nextLevelXp
    end
    function getUserXP_db(login)
    	_, data = db.readData(DBUSER, DBNAME, login)
    	if data==nil then data=getUserXP_local(login) end
    	return tonumber(data)
    end
    function c(command)
    	cb.setCommand(command)
    	cb.executeCommand()
    end
    function setUserLevel(login, level)
    	userLevel, LevelProgress, nextLevelXP=getUserXP_local(login)
    	if userLevel<level then
    		for i=userLevel, level-1 do
    			_, _, xp = getUserXP_local(login)
    			c("xp "..xp.." "..login)
    		end
    		return true, "up", "Уровень повышен!"
    	elseif userLevel>level then
    		c("xp -18000000 "..login)
    		matt=userLevel-level
    		for i=1, userLevel-matt do
    			_, _, xp = getUserXP_local(login)
    			c("xp "..xp.." "..login)
    		end
    		return true, "down", "Уровень понижен!"
    	else 
    		return false, "У игрока этот же уровень!"
    	end
    end
    function writeLevelToTB(login, level)
    	db.createCollum(DBUSER, DBNAME, login)
    	return table.unpack({db.writeData(DBUSER, DBNAME, login, level)})
    end
    

     

     

    P.S. Кусок, который отвечает за опыт игрока

×
×
  • Создать...