Перейти к публикации
Форум - ComputerCraft
whiskas

Мониторинг онлайна (ваниш не спрячет)

Рекомендованные сообщения

Прога показует кто в онлайне из перечисленных игроков

 

код

 

local component = require("component")
local computer = require("computer")
local debug = computer.addUser
local gpu = component.gpu
xresolution=60
gpu.setResolution(xresolution,52)
gpu.setBackground(0x202020)
gpu.setForeground(0xFFDD00)
gpu.fill(1,1,xresolution,75," ")
gpu.set((30-(string.len("DeviceCraft Managment"))/2),2,"DeviceCraft Managment")
gpu.set((30-(string.len("By Durex77"))/2),3,"By Durex77")
status1=" [Online] "
status2=" [Offline]"
owner={'XRASER','BeTePb'}
admin={'SergeyZez','SplittingReality'}
builder={'AnshaABDUL372','MaxonZ',}
tehadmin={'lLuffy'}
trumod={'REAKTOR','iIiIiIiMuSiC_oF'}
modn={'Sierr67','PIXOH','HolltiSS','BuTaMuH4iK','Bazoor','NightmareMoon'}
donmod={'dark321','GangaMstar','Gra4_',}
helper={'Night_Raven','TheRedMan','Duno'}

while true do
d=5
d=d+1
gpu.setForeground(0x8B1A1A)
gpu.set((xresolution/2-(string.len("[Owner]"))/2),d,"[Owner]")
d=d+1

for j = 1, #owner do

d=d+1
name=owner[j]
prov=debug(name)
if prov ~= nil then gpu.setForeground(0x00FF00) gpu.set(((xresolution/2)-4-(string.len(name))/2),d,name..status1) else gpu.setForeground(0xFF0000) gpu.set(((xresolution/2)-4-(string.len(name))/2),d,name..status2) end
computer.removeUser(name)
end

d=d+2
gpu.setForeground(0xCC0000)
gpu.set((xresolution/2-(string.len("[Admin]"))/2),d,"[Admin]")
d=d+1

for j = 1, #admin do

d=d+1
name=admin[j]
prov=debug(name)
if prov ~= nil then gpu.setForeground(0x00FF00) gpu.set(((xresolution/2)-4-(string.len(name))/2),d,name..status1) else gpu.setForeground(0xFF0000) gpu.set(((xresolution/2)-4-(string.len(name))/2),d,name..status2) end
computer.removeUser(name)
end

d=d+2
gpu.setForeground(0x473C8B)
gpu.set((xresolution/2-(string.len("[builder]"))/2),d,"[builder]")
d=d+1

for j = 1, #builder do

d=d+1
name=builder[j]
prov=debug(name)
if prov ~= nil then gpu.setForeground(0x00FF00) gpu.set(((xresolution/2)-4-(string.len(name))/2),d,name..status1) else gpu.setForeground(0xFF0000) gpu.set(((xresolution/2)-4-(string.len(name))/2),d,name..status2) end
computer.removeUser(name)
end

d=d+2
gpu.setForeground(0xCC0000)
gpu.set((xresolution/2-(string.len("[Teh-Admin]"))/2),d,"[Teh-Admin]")
d=d+1

for j = 1, #tehadmin do
d=d+1
name=tehadmin[j]
prov=debug(name)
if prov ~= nil then gpu.setForeground(0x00FF00) gpu.set(((xresolution/2)-4-(string.len(name))/2),d,name..status1) else gpu.setForeground(0xFF0000) gpu.set(((xresolution/2)-4-(string.len(name))/2),d,name..status2) end
computer.removeUser(name)
end


d=d+2
gpu.setForeground(0x0066FF)
gpu.set((xresolution/2-(string.len("[TrueMod]"))/2),d,"[True-Mod]")
d=d+1

for j = 1, #trumod do
d=d+1
name=trumod[j]
prov=debug(name)
if prov ~= nil then gpu.setForeground(0x00FF00) gpu.set(((xresolution/2)-4-(string.len(name))/2),d,name..status1) else gpu.setForeground(0xFF0000) gpu.set(((xresolution/2)-4-(string.len(name))/2),d,name..status2) end
computer.removeUser(name)
end

d=d+2
gpu.setForeground(0xCD2990)
gpu.set((xresolution/2-(string.len("[Modn]"))/2),d,"[Modn]")
d=d+1

for j = 1, #modn do
d=d+1
name=modn[j]
prov=debug(name)
if prov ~= nil then gpu.setForeground(0x00FF00) gpu.set(((xresolution/2)-4-(string.len(name))/2),d,name..status1) else gpu.setForeground(0xFF0000) gpu.set(((xresolution/2)-4-(string.len(name))/2),d,name..status2) end
computer.removeUser(name)
end

d=d+2
gpu.setForeground(0xCC0000)
gpu.set((xresolution/2-(string.len("[Don-Mod]"))/2),d,"[Don-Mod]")
d=d+1

for j = 1, #donmod do
d=d+1
name=donmod[j]
prov=debug(name)
if prov ~= nil then gpu.setForeground(0x00FF00) gpu.set(((xresolution/2)-4-(string.len(name))/2),d,name..status1) else gpu.setForeground(0xFF0000) gpu.set(((xresolution/2)-4-(string.len(name))/2),d,name..status2) end
computer.removeUser(name)
end

d=d+2
gpu.setForeground(0x00FF00)
gpu.set((xresolution/2-(string.len("[Helper]"))/2),d,"[Helper]")
d=d+1

for j = 1, #helper do
d=d+1
name=helper[j]
prov=debug(name)
if prov ~= nil then gpu.setForeground(0x00FF00) gpu.set(((xresolution/2)-4-(string.len(name))/2),d,name..status1) else gpu.setForeground(0xFF0000) gpu.set(((xresolution/2)-4-(string.len(name))/2),d,name..status2) end
computer.removeUser(name)
end


os.sleep(1.5)

end

 

 

 

скрин

 

image.png

 

 

изменить здесь  + настройте под свой сервер групы)  (кто шарит изменит кто не шарит напишите ниже я сам изменю)

 

 

owner={'XRASER','BeTePb'}
admin={'SergeyZez','SplittingReality'}
builder={'AnshaABDUL372','MaxonZ',}
tehadmin={'lLuffy'}
trumod={'REAKTOR','iIiIiIiMuSiC_oF'}
modn={'Sierr67','PIXOH','HolltiSS','BuTaMuH4iK','Bazoor','NightmareMoon'}
donmod={'dark321','GangaMstar','Gra4_',}
helper={'Night_Raven','TheRedMan','Duno'}

 

 

 

 

Нужно чтото изменить или добавить пишите в коменты

Изменено пользователем whiskas
  • Like 2

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Мож потому что я там играю и там ее написал?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Мож потому что я там играю и там ее написал?

Всё равно надо было убрать/замазать....

За это и забанить могут.....

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

а чего там все тру-модеры и билдеры и прочие важные персоны оффлайн? :)

  • Like 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Люблю рыться в чужом коде  :)

Кстати, круто придумано запросами добавить игрока проверять онлайн. Как я до этого не додумался раньше  :smile14:

Изменено пользователем qwertyMAN

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Как я до этого не додумался раньше 

 

а каких ванишей ты сканить собрался? :)  У нас в ванише, и то наверно раз в 100 лет, админ какой-то только может летать в исключительных случаях. А, при желании, он может зайти под совершенно неизвестным тебе ником, и кого тогда ты там будешь на  тру-аддюзеринг проверять?=) 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

local debug = computer.addUser
Эта строчка сильнее других провоцирует у меня расстройство сознания.

Ну, почему «debug»?

 

И далее:

prov=debug(name) 
...
computer.removeUser(name)
И почему тогда не сделано что-то типа:

local bug = computer.removeUser
То есть, сначала обезжучили пользователя, а потом снова его нажучили.
  • Like 8

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

а каких ванишей ты сканить собрался? :)  У нас в ванише, и то наверно раз в 100 лет, админ какой-то только может летать в исключительных случаях. А, при желании, он может зайти под совершенно неизвестным тебе ником, и кого тогда ты там будешь на  тру-аддюзеринг проверять?=) 

Да просто сам факт использования функции не по назначению впечатляет. Можно мониторить онлайн и оповещалки делать. Автоматизировать что то, когда нужный игрок в онлайне, например включать турельку ;) Или просто записывать время входа-выхода игрока, с таймером проверок в минуту.

 

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

А вообще меня удивляет OpenComputers. Получается, я могу передать дискету с "игрой" игроку, дискета заприватит на меня комп и заразит вирусом например комп. И ничто не мешает создать вирус-приват подобный.

При этом, в отличии от линукса, не нужны root права для каких то важных операций, вроде привата компа. Не нужно вбивать sudo и вводить пароль для подтверждения что это действительно ты. И это удивляет. Казалось бы, такой умный мод, а тут дыра огромная в защите компа.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

 

 

Эта строчка сильнее других провоцирует у меня расстройство сознания. Ну, почему «debug»?

ну так решил разраб, это его право)

так то там реюзинга кода для такой простенькой проверки дохренища, конечно. По идее, там нужна какая-то одна функция, чтобы чекать игроков

local function check(nick)
	if computer.addUser(nick) then
		computer.removeUser(nick)
		return true
	end
	return false
end 

и маленький циклик, который проверит и отпринтит таблу юзверей заданных, в которой уже кроме ника, уже и цвета установлены и прочие звания и регалии ссылками на какой-то цветовой пресет. А сейчас, если захочешь поменять цвет, или группу добавить или убрать, или еще что-то, то 98% программки нужно будет переписать.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
local debug = computer.addUser
Эта строчка сильнее других провоцирует у меня расстройство сознания.

Ну, почему «debug»?

 

И далее:

prov=debug(name) 
...
computer.removeUser(name)
И почему тогда не сделано что-то типа:

local bug = computer.removeUser
То есть, сначала обезжучили пользователя, а потом снова его нажучили.

 

сначала прога была на дебаг карточке потом идея пришла как сделать без нее

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Вместо таблицы с юзверями и чекалки можно просто модифицировать какой-нибудь IRC-клиент, чтобы тот запрашивал список игроков у Великого и Ужасного Брота.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

А потом в середине проверки комп вырубается...

  • Like 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Выложу тогда другую, более интересную прогу другого нашего игрока, который не против продвижения программы, но сам бы вряд ли тут написал.

Программа приятнее на вид, чем то что скинул whiskas, и в неё можно добавлять новых юзеров через очки не выключая саму программу.

 

$$AdminAlex - добавить
$$RemoveAAlex - убрать

 

 

Код.

 

--Program was created by realanton12345, 2016.
--All rights reserved.

local ColorAdmin=0xFF0000
local ColorTrueMod=0x0000FF
local ColorMod=0xFF0000
local ColorHelper=0x33CC00

local PSY={}
local admins={}
local truemoderators={}
local moderators={}
local helpers={}

local computer = require("computer")
local term = require("term")
local event = require("event")
local serialization = require('serialization')
local fs = require("filesystem")
local component = require("component")
local gpu = component.gpu
local glass = component.openperipheral_bridge
local running=true
xresolution=60
yresolution=30
gpu.setResolution(xresolution,yresolution) gpu.setBackground(0x000000) gpu.setForeground(0xFFFFFF) gpu.fill(1,1,xresolution,yresolution," ")
gpu.set((xresolution/2-(string.len("Administration"))/2),2,"Администрация")
status1=" online" status2=" offline"

function readLists()
if fs.exists("/Status/PSY.txt") then
local file = io.open("/Status/PSY.txt", "r")
local data = file:read("*a")
PSY = serialization.unserialize(data)
file:close()
end
if fs.exists("/Status/Admins.txt") then
local file = io.open("/Status/Admins.txt", "r")
local data = file:read("*a")
admins = serialization.unserialize(data)
file:close()
end
if fs.exists("/Status/TrueModerators.txt") then
local file = io.open("/Status/TrueModerators.txt", "r")
local data = file:read("*a")
truemoderators = serialization.unserialize(data)
file:close()
end
if fs.exists("/Status/Moderators.txt") then
local file = io.open("/Status/Moderators.txt", "r")
local data = file:read("*a")
moderators = serialization.unserialize(data)
file:close()
end
if fs.exists("/Status/Helpers.txt") then
local file = io.open("/Status/Helpers.txt", "r")
local data = file:read("*a")
helpers = serialization.unserialize(data)
file:close()
end
end

function writeLists()
local file = io.open("/Status/PSY.txt", "w")
local data = serialization.serialize(PSY)
file:write(data)
file:close()
local file = io.open("/Status/Admins.txt", "w")
local data = serialization.serialize(admins)
file:write(data)
file:close()
local file = io.open("/Status/TrueModerators.txt", "w")
local data = serialization.serialize(truemoderators)
file:write(data)
file:close()
local file = io.open("/Status/Moderators.txt", "w")
local data = serialization.serialize(moderators)
file:write(data)
file:close()
local file = io.open("/Status/Helpers.txt", "w")
local data = serialization.serialize(helpers)
file:write(data)
file:close()
end

readLists()

function inserting(com)
a=com
if string.find(a,"Admin") ~= nil then b=string.gsub(a,"Admin","") table.insert(admins,1,b) gpu.fill(1,5,xresolution,yresolution," ")
elseif string.find(a,"PSY") ~= nil then b=string.gsub(a,"PSY","") table.insert(PSY,1,b) gpu.fill(1,5,xresolution,yresolution," ")
elseif string.find(a,"TrueMod") ~= nil then b=string.gsub(a,"TrueMod","") table.insert(truemoderators,1,b) gpu.fill(1,5,xresolution,yresolution," ")
elseif string.find(a,"Mod") ~= nil then b=string.gsub(a,"Mod","") table.insert(moderators,1,b) gpu.fill(1,5,xresolution,yresolution," ")
elseif string.find(a,"Helper") ~= nil then b=string.gsub(a,"Helper","") table.insert(helpers,1,b) gpu.fill(1,5,xresolution,yresolution," ")
elseif string.find(a,"RemoveP") ~= nil then b=string.gsub(a,"RemoveP","") for P=1, #PSY do if PSY[P]==b then table.remove(PSY,P) gpu.fill(1,4,xresolution,yresolution," ") end end
elseif string.find(a,"RemoveA") ~= nil then b=string.gsub(a,"RemoveA","") for admin=1, #admins do if admins[admin]==b then table.remove(admins,admin) gpu.fill(1,5,xresolution,yresolution," ") end end
elseif string.find(a,"RemoveT") ~= nil then b=string.gsub(a,"RemoveT","") for truemod=1, #truemoderators do if truemoderators[truemod]==b then table.remove(truemoderators,truemod) gpu.fill(1,5,xresolution,yresolution," ") end end
elseif string.find(a,"RemoveM") ~= nil then b=string.gsub(a,"RemoveM","") for mod=1, #moderators do if moderators[mod]==b then table.remove(moderators,mod) gpu.fill(1,5,xresolution,yresolution," ") end end
elseif string.find(a,"RemoveH") ~= nil then b=string.gsub(a,"RemoveH","") for help=1, #helpers do if helpers[help]==b then table.remove(helpers,help) gpu.fill(1,5,xresolution,yresolution," ") end end end
end

function list(_,_,nick,_,com)
if com == "STOP" then running=false
elseif com ~= nil and com ~="STOP" then inserting(com) end
end

function Draw(color,group,statusnumber,y)
if y==a then linenumber=a elseif y==t then linenumber=t elseif y==m then linenumber=m elseif y==h then linenumber=h elseif y==p then linenumber=p end
gpu.setForeground(0xFFFFFF)
gpu.set(1,linenumber,'[')
gpu.set(string.len(group)+2,linenumber,']')
gpu.setForeground(color)
gpu.set(2,linenumber,group)
gpu.setForeground(0xFFFFFF)
gpu.set(string.len(group)+4,linenumber,'- ' .. name)
if statusnumber==1 then gpu.setForeground(0x00FF00) gpu.set(xresolution-string.len(status1),linenumber,status1) else gpu.setForeground(0x1a1a1a) gpu.set(xresolution-string.len(status2),linenumber,status2) end
end
while running do
p=4 a=p+#PSY t=p+#admins+#PSY m=p+#admins+#truemoderators+#PSY h=p+#admins+#truemoderators+#moderators+#PSY
event.listen("glasses_chat_command",list)
for i = 1, #PSY do
name=PSY
p=p+1
if computer.addUser(name) ~= nil then Draw(ColorAdmin,'PSY',1,p) else Draw(ColorAdmin,'PSY',0,p) end computer.removeUser(name)
end
for i = 1, #admins do
name=admins
a=a+1
if computer.addUser(name) ~= nil then Draw(ColorAdmin,'Admin',1,a) else Draw(ColorAdmin,'Admin',0,a) end computer.removeUser(name)
end
for i = 1, #truemoderators do
name=truemoderators
t=t+1
if computer.addUser(name) ~= nil then Draw(ColorTrueMod,'TrueMod',1,t) else Draw(ColorTrueMod,'TrueMod',0,t) end computer.removeUser(name)
end
for i = 1, #moderators do
name=moderators
m=m+1
if computer.addUser(name) ~= nil then Draw(ColorMod,'Mod',1,m) else Draw(ColorMod,'Mod',0,m) end computer.removeUser(name)
end
for i = 1, #helpers do
name=helpers
h=h+1
if computer.addUser(name) ~= nil then Draw(ColorHelper,'Helper',1,h) else Draw(ColorHelper,'Helper',0,h) end computer.removeUser(name)
end
os.sleep(0.5)
end
gpu.setResolution(110,55) gpu.setBackground(0x262626) gpu.setForeground(0x00FF00) gpu.fill(1,1,110,55," ") term.setCursor(1,1)
writeLists()

 

 

Скрин

 

0ce6db7059.png

Добавил пару ников с вашего форума)

 

  • Like 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Выложу тогда другую, более интересную прогу другого нашего игрока, который не против продвижения программы, но сам бы вряд ли тут написал.

Программа приятнее на вид, чем то что скинул whiskas, и в неё можно добавлять новых юзеров через очки не выключая саму программу.

 

$$AdminAlex - добавить

$$RemoveAAlex - убрать

 

 

Код.

 

--Program was created by realanton12345, 2016.

--All rights reserved.

 

local ColorAdmin=0xFF0000

local ColorTrueMod=0x0000FF

local ColorMod=0xFF0000

local ColorHelper=0x33CC00

 

local PSY={}

local admins={}

local truemoderators={}

local moderators={}

local helpers={}

 

local computer = require("computer")

local term = require("term")

local event = require("event")

local serialization = require('serialization')

local fs = require("filesystem")

local component = require("component")

local gpu = component.gpu

local glass = component.openperipheral_bridge

local running=true

xresolution=60

yresolution=30

gpu.setResolution(xresolution,yresolution) gpu.setBackground(0x000000) gpu.setForeground(0xFFFFFF) gpu.fill(1,1,xresolution,yresolution," ")

gpu.set((xresolution/2-(string.len("Administration"))/2),2,"Администрация")

status1=" online" status2=" offline"

 

function readLists()

if fs.exists("/Status/PSY.txt") then

local file = io.open("/Status/PSY.txt", "r")

local data = file:read("*a")

PSY = serialization.unserialize(data)

file:close()

end

if fs.exists("/Status/Admins.txt") then

local file = io.open("/Status/Admins.txt", "r")

local data = file:read("*a")

admins = serialization.unserialize(data)

file:close()

end

if fs.exists("/Status/TrueModerators.txt") then

local file = io.open("/Status/TrueModerators.txt", "r")

local data = file:read("*a")

truemoderators = serialization.unserialize(data)

file:close()

end

if fs.exists("/Status/Moderators.txt") then

local file = io.open("/Status/Moderators.txt", "r")

local data = file:read("*a")

moderators = serialization.unserialize(data)

file:close()

end

if fs.exists("/Status/Helpers.txt") then

local file = io.open("/Status/Helpers.txt", "r")

local data = file:read("*a")

helpers = serialization.unserialize(data)

file:close()

end

end

 

function writeLists()

local file = io.open("/Status/PSY.txt", "w")

local data = serialization.serialize(PSY)

file:write(data)

file:close()

local file = io.open("/Status/Admins.txt", "w")

local data = serialization.serialize(admins)

file:write(data)

file:close()

local file = io.open("/Status/TrueModerators.txt", "w")

local data = serialization.serialize(truemoderators)

file:write(data)

file:close()

local file = io.open("/Status/Moderators.txt", "w")

local data = serialization.serialize(moderators)

file:write(data)

file:close()

local file = io.open("/Status/Helpers.txt", "w")

local data = serialization.serialize(helpers)

file:write(data)

file:close()

end

 

readLists()

 

function inserting(com)

a=com

if string.find(a,"Admin") ~= nil then b=string.gsub(a,"Admin","") table.insert(admins,1,b) gpu.fill(1,5,xresolution,yresolution," ")

elseif string.find(a,"PSY") ~= nil then b=string.gsub(a,"PSY","") table.insert(PSY,1,b) gpu.fill(1,5,xresolution,yresolution," ")

elseif string.find(a,"TrueMod") ~= nil then b=string.gsub(a,"TrueMod","") table.insert(truemoderators,1,b) gpu.fill(1,5,xresolution,yresolution," ")

elseif string.find(a,"Mod") ~= nil then b=string.gsub(a,"Mod","") table.insert(moderators,1,b) gpu.fill(1,5,xresolution,yresolution," ")

elseif string.find(a,"Helper") ~= nil then b=string.gsub(a,"Helper","") table.insert(helpers,1,b) gpu.fill(1,5,xresolution,yresolution," ")

elseif string.find(a,"RemoveP") ~= nil then b=string.gsub(a,"RemoveP","") for P=1, #PSY do if PSY[P]==b then table.remove(PSY,P) gpu.fill(1,4,xresolution,yresolution," ") end end

elseif string.find(a,"RemoveA") ~= nil then b=string.gsub(a,"RemoveA","") for admin=1, #admins do if admins[admin]==b then table.remove(admins,admin) gpu.fill(1,5,xresolution,yresolution," ") end end

elseif string.find(a,"RemoveT") ~= nil then b=string.gsub(a,"RemoveT","") for truemod=1, #truemoderators do if truemoderators[truemod]==b then table.remove(truemoderators,truemod) gpu.fill(1,5,xresolution,yresolution," ") end end

elseif string.find(a,"RemoveM") ~= nil then b=string.gsub(a,"RemoveM","") for mod=1, #moderators do if moderators[mod]==b then table.remove(moderators,mod) gpu.fill(1,5,xresolution,yresolution," ") end end

elseif string.find(a,"RemoveH") ~= nil then b=string.gsub(a,"RemoveH","") for help=1, #helpers do if helpers[help]==b then table.remove(helpers,help) gpu.fill(1,5,xresolution,yresolution," ") end end end

end

 

function list(_,_,nick,_,com)

if com == "STOP" then running=false

elseif com ~= nil and com ~="STOP" then inserting(com) end

end

 

function Draw(color,group,statusnumber,y)

if y==a then linenumber=a elseif y==t then linenumber=t elseif y==m then linenumber=m elseif y==h then linenumber=h elseif y==p then linenumber=p end

gpu.setForeground(0xFFFFFF)

gpu.set(1,linenumber,'[')

gpu.set(string.len(group)+2,linenumber,']')

gpu.setForeground(color)

gpu.set(2,linenumber,group)

gpu.setForeground(0xFFFFFF)

gpu.set(string.len(group)+4,linenumber,'- ' .. name)

if statusnumber==1 then gpu.setForeground(0x00FF00) gpu.set(xresolution-string.len(status1),linenumber,status1) else gpu.setForeground(0x1a1a1a) gpu.set(xresolution-string.len(status2),linenumber,status2) end

end

while running do

p=4 a=p+#PSY t=p+#admins+#PSY m=p+#admins+#truemoderators+#PSY h=p+#admins+#truemoderators+#moderators+#PSY

event.listen("glasses_chat_command",list)

for i = 1, #PSY do

name=PSY

p=p+1

if computer.addUser(name) ~= nil then Draw(ColorAdmin,'PSY',1,p) else Draw(ColorAdmin,'PSY',0,p) end computer.removeUser(name)

end

for i = 1, #admins do

name=admins

a=a+1

if computer.addUser(name) ~= nil then Draw(ColorAdmin,'Admin',1,a) else Draw(ColorAdmin,'Admin',0,a) end computer.removeUser(name)

end

for i = 1, #truemoderators do

name=truemoderators

t=t+1

if computer.addUser(name) ~= nil then Draw(ColorTrueMod,'TrueMod',1,t) else Draw(ColorTrueMod,'TrueMod',0,t) end computer.removeUser(name)

end

for i = 1, #moderators do

name=moderators

m=m+1

if computer.addUser(name) ~= nil then Draw(ColorMod,'Mod',1,m) else Draw(ColorMod,'Mod',0,m) end computer.removeUser(name)

end

for i = 1, #helpers do

name=helpers

h=h+1

if computer.addUser(name) ~= nil then Draw(ColorHelper,'Helper',1,h) else Draw(ColorHelper,'Helper',0,h) end computer.removeUser(name)

end

os.sleep(0.5)

end

gpu.setResolution(110,55) gpu.setBackground(0x262626) gpu.setForeground(0x00FF00) gpu.fill(1,1,110,55," ") term.setCursor(1,1)

writeLists()

 

 

Скрин

 

0ce6db7059.png

Добавил пару ников с вашего форума)

 

 

Точно не написал бы ?)

И кто же сказал, что автор не против продвижения ?

Удалить авторские права из проги и выложить её от другого имени - да вы гении)

Изменено пользователем SkyDrive
  • Like 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Это моя программа, и версия фактически копипаст моей самой первой версии, и авторские права везде мои.

И выглядит красивее самая последняя.

P.S. Не стоит выдавать не свой код за свой.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Это моя программа, и версия фактически копипаст моей самой первой версии, и авторские права везде мои.

И выглядит красивее самая последняя.

P.S. Не стоит выдавать не свой код за свой.

 

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

Или может ты объяснишь, как же так вышло, что твоя прога, магическим образом, выглядит в точности как моя ?)

SNIMOK.png

Изменено пользователем SkyDrive

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Прога то простая - шанс, что они окажутся схожими большой. И не надо больше на счёт этого враждовать.  :)

Нормальный программист не станет из-за таких пустяков беспокоится. Написал сам или позаимствовал и дополнил, да какая разница. В этом то и суть свободного ПО. Вместо вражды нужно радоваться, что исходники свободные и возможно они помогли какому-то человеку лучше изучить этот язык программирования. Как по мне, это большой плюс свободного ПО,  :smile9: а вы тут по этому поводу начинаете враждовать.

  • Like 5

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

Или может ты объяснишь, как же так вышло, что твоя прога, магическим образом, выглядит в точности как моя ?)

SNIMOK.png

Твой код был слишком прост, в него нельзя было просто так впилить юзера + отрисовка была не автоматическая и т.д. Насчёт дизайна, как попросили, так и сделано, дизайн можно хоть задом на перёд делать, это самая малая часть кода.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Прога то простая - шанс, что они окажутся схожими большой. И не надо больше на счёт этого враждовать.  :)

Нормальный программист не станет из-за таких пустяков беспокоится. Написал сам или позаимствовал и дополнил, да какая разница. В этом то и суть свободного ПО. Вместо вражды нужно радоваться, что исходники свободные и возможно они помогли какому-то человеку лучше изучить этот язык программирования. Как по мне, это большой плюс свободного ПО,  :smile9: а вы тут по этому поводу начинаете враждовать.

Ты прав, но ты просто не знаешь что было до этого)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Отчасти Кверти прав. Нет смысла ссорится из-за ерунды, опенсорс и т.д.

Но опенсорс тоже имеет лицензии, и авторские права.

Наверное все слышали о гениальном творении под названием Bolgen OS. =)

 

Поэтому, если вы хотите действительно узнать, чей код есть чей - предлагаю Антону тоже залить свой исходник, а затем сверить расхождение побайтно.

Ну или - cut that crap!

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

 

 

Поэтому, если вы хотите действительно узнать, чей код есть чей - предлагаю Антону тоже залить свой исходник, а затем сверить расхождение побайтно. Ну или - cut that crap!

Да кому это нужно. Если бы они написали какую-то большую прогу и сделали их схожими, то тогда я понимаю смысл враждовать. Но тут всего лишь маленькие проги с маленьким смыслом и малым затраченным трудом.

Да такие проги проще переписать самому, чем брать чужие наработки и писать самостоятельно.

 

Кроме того, можно учесть тот факт, что правила написания программ для всех схожие. А это может значить, что чем проще программа, тем больше шансов на то, что две программы от разных разработчиков будут иметь схожий, чуть ли не идентичный, код. Например названия переменных у многих программистов одинаковые, алгоритмы тоже. Что мешает случайно произойти такому событию?

 

Авторское право решает случаи, когда в разных точках планеты используют программу, в котором используется один и тот же алгоритм например генерации простых чисел? Кто их автор? Все люди которые сами составили этот алгоритм? Или может тот человек, что первым высказал мысль о таком алгоритме? К кому относятся права на интеллектуальную собственность программы по нахождению простых чисел, если у n количества авторов идентичный код и все они утверждают, что сами разработали этот алгоритм?

Мне кажется идея свободного ПО как раз и борется за то, чтобы авторское право не было слишком жестоким.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
...

 

Вроде и да, но всё относительно.

Для тебя это простая программа. А для них - серьёзный проект, который потребовал много сил и времени.

Так что если хотят выяснить - пусть выясняют.

Я лишь хотел сказать, что надо выяснять не флудом и метанием кактусов друг в друга, а объективно. Побайтовым сравнением исходников. =)

 

А свободное ПО не отменяет чувства обиды от того, что кто-то нифига не делает, и юзает плоды твоих трудов в своих целях, отрицая твою причастность к общему делу =)

Да, мелочно, но типично по-человечески. =)

Изменено пользователем Totoro
  • Like 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

 

 

кто-то нифига не делает, и юзает плоды твоих трудов в своих целях, отрицая твою причастность к общему делу =)

А я к тому, что всё это авторское право - довольно размытое понятие. И точно определить кто автор нельзя. Взять ту же физику, сколько открытий названы именами двух учёных? Получается авторское право не может противостоять великой силе вероятности. Им приходится признать поражение и считать авторами двух учёных, которые в одно время произвели схожие открытия в разных точках Земли.

 

 

 

юзает плоды твоих трудов в своих целях

Я думал это называется обучением. Что например мешает мне создать клон какой нибудь игры? Я же получается украду идею. Или сыграть на гитаре какую нибудь известную песню. (не кавер, а именно чужую песню) За это меня кто-то посадит? За то что я играю чужую музыку у себя во дворе?

Может ко мне придёт Бетховен и засудит за то, что я сыграл Лунную сонату?

 

Вы бы слышали, как испоганили русские локализаторы известную песню The Animals - House of the Rising Sun

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

Ничего, что в оригинале пелось про вред азартных игр, а в русском аналоге весь смысл песни перевернули. Теперь "дом восходящего солнца" - райский уголок в русской песне. Это может сколько угодно бесить, но это не значит, что надо запрещать и наказывать тех, кто поёт чужие песни.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

А я к тому, что всё это авторское право - довольно размытое понятие. И точно определить кто автор нельзя. Взять ту же физику, сколько открытий названы именами двух учёных? Получается авторское право не может противостоять великой силе вероятности. Им приходится признать поражение и считать авторами двух учёных, которые в одно время произвели схожие открытия в разных точках Земли.

 

Я же не об этом совсем. Тут люди старались, изобретали, вкладывали время и силы. Изобрели вдвоём, или одновременно - в разных частях света.

Тут вообще нет проблемы.

 

Случай о котором говорю я - это если бы Эйнштейн изобрёл теорию относительности, а Вася Пупкин её перепечатал без изменений и выдал за своё открытие.

Ты же не будешь называть теперь теорию относительности - теорией Эйнштейна-Пупкина?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас

×