- 1
Админ - уебок, хранивший пароли открытым текстом
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
0
Админ - уебок, хранивший пароли открытым текстом
Чекайте свои мыла в утечках, ебланы
0
Удалите мой аккаунт
Удалите мой аккаунт
0
-- add crafting exp
function addCExp(amount)
...
-- add cooking exp
function addCexp(amount)
если петух скопипастил твой код, и сделал две такие функции, то сколько раз за час интенсивного кодинга ты их перепутаешь?
(язык изменён)
0
local function isEven(number)
local code = "return "
for i = 1, number do
code = code .. "false"
if i ~= number then
code = code .. " =="
end
end
return load(code)()
end
print("Enter number: ")
if isEven(tonumber(io.read())) then
print("Number is even")
else
print("Number is odd")
end
Определяет чётность числа. Работает для чисел >= 1 (Желательно <= 1000, чем лучше компьютер, тем больше)
0
Уи-и-и!
Хрюк-хрюк-хрюк-хрюк
0
local victim_say={"Конец мне приходит...", "Помираю я... Помоги...", "Браток, помоги!",
"Аптечку! Дай аптечку!","Врача, батенька.", "Под пулю я попал.", "Я ранен!","Слышь, браток, помоги!","Хана мне приходит","Сегодня не мой день...","Заболел я."}
local vs=#victim_say
local actor_say={"Тебе плохо? Может, врача вызвать?", "Могу дать номер знакомого врача.", "Мда, скорая не успеет.",
"Не беспокойся, все там будем!","Корми червей, падла.","Умри!","Дойдёшь до больницы?","Извини, я не доктор.","Выкручивайся сам","Мне некогда"}
local ds=#actor_say
local victim_ans={"Ну и подонок же ты, Меченый.", "Проваливай!", "Обойдусь сам!", "Помощь от тебя была бы хуже смерти. Проваливай!","Я ещё доберусь до тебя!", "Подонок!", "Моя смерть будет на твоей совести.","Встретимся в аду.","Просто уходи.","Я ещё вернусь...","Это ещё не конец."}
local va=#victim_ans
local victim_tnk={"Спасибо! Ты меня спас!", "Благодарю! Признаться, не ожидал.", "Спасибо, Меченый!", "Спасибо за помощь!","Я ещё живой? Это благодаря тебе!", "Ты мой спаситель!", "Моя смерть была бы на твоей совести","Я твой должник!","Ты ждешь благодарности?","На твоем месте я бы тебя пристрелил","Мерси за помощь!"}
local vt=#victim_tnk
function init_intro_dialogb(dlg)
local k,v = 0,0
local phr = dlg:AddPhrase("","0","",-10000)
phr = dlg:AddPhrase("","1","0",-10000)
local id=math.random(vs)
local ph=dlg:AddPhrase(victim_say[id],"333","1",-10000)
local ps = ph:GetPhraseScript()
ps:AddPrecondition("dialogs.is_wounded")
ph = dlg:AddPhrase("(Лечение)","444","333",-10000)
ps = ph:GetPhraseScript()
ps:AddAction("doctor.heal")
local id=math.random(vt)
ph = dlg:AddPhrase(victim_tnk[id],"555","444",-10000)
--ps = ph:GetPhraseScript()
-- ps:AddAction("dialogs.break_dialog")
local id=math.random(ds)
local ph=dlg:AddPhrase(actor_say[id],"666","333",-10000)
local id=math.random(va)
local ph=dlg:AddPhrase(victim_ans[id],"777","666",-10000)
for k,v in pairs(phrase.intro) do
phr = dlg:AddPhrase(v.name, v.phr_id, "1", -10000)
if phr then
local phrase_script = phr:GetPhraseScript()
phrase_script:AddPrecondition("dialog_manager.precondition_intro")
--' Этот экшн запоминает последнюю фразу, чтобы персонаж говорил одно и то же.
--' Для фразы просьбы о помощи его добавлять не надо.
if v.wounded == "false" then
phrase_script:AddAction("dialog_manager.phrase_action_intro")
end
end
end
end
Лечения раненых в Сталкере ТЧН. В диалоге с ранен(н)ым показывается как пункт "вылечить" так и рандомное издевательство, вроде "могу дать номер своего врача"
0
Блять, какое же lua говно блять...
0
Писать однострочный код это плохо? А если в одном файле совместить серверную и клиентскую часть? Пример аддона из Garry's Mod https://steamcommunity.com/sharedfiles/filedetails/?id=2754127067
AddCSLua("cl_init.lua")
if istable( xdestore ) then if xdestore.Menu then xdestore.Menu:Remove() end if xdestore.Unlock then xdestore.Unlock:Remove() end
if xdestore.Namer then xdestore.Namer:Remove() end if xdestore.Lock then xdestore.Lock:Remove() end end xdestore = {} xdestore.Players = {}
util.AddNetworkString( "XDEST_MenuS2COpen" ) util.AddNetworkString( "XDEST_MenuS2CClose" ) util.AddNetworkString( "XDEST_SendRes" )
util.AddNetworkString( "XDEST_MenuS2CUpdate" ) util.AddNetworkString( "XDEST_MenuS2CResult" ) util.AddNetworkString( "XDEST_MenuC2SClose" )
util.AddNetworkString( "XDEST_LockReset" ) util.AddNetworkString( "XDEST_MenuC2SAction" ) util.AddNetworkString( "XDEST_SendSnd" ) util.AddNetworkString( "XDEST_SendHint" )
xdestore.AmmoMdl = {
[ "AR2" ] = "models/items/combine_rifle_cartridge01.mdl",
[ "AR2AltFire" ] = "models/items/combine_rifle_ammo01.mdl",
[ "Pistol" ] = "models/items/boxsrounds.mdl",
[ "SMG1" ] = "models/items/boxmrounds.mdl",
[ "357" ] = "models/items/357ammo.mdl",
[ "XBowBolt" ] = "models/items/crossbowrounds.mdl",
[ "Buckshot" ] = "models/items/boxbuckshot.mdl",
[ "RPG_Round" ] = "models/weapons/w_missile_closed.mdl",
[ "SMG1_Grenade" ] = "models/items/ar2_grenade.mdl",
[ "Grenade" ] = "models/items/grenadeammo.mdl",
[ "slam" ] = "models/weapons/w_slam.mdl"
}
xdestore.NonSWEP = {
[ "weapon_357" ] = "models/weapons/w_357.mdl",
[ "weapon_pistol" ] = "models/weapons/w_pistol.mdl",
[ "weapon_bugbait" ] = "models/weapons/w_bugbait.mdl",
[ "weapon_crossbow" ] = "models/weapons/w_crossbow.mdl",
[ "weapon_crowbar" ] = "models/weapons/w_crowbar.mdl",
[ "weapon_frag" ] = "models/weapons/w_grenade.mdl",
[ "weapon_physcannon" ] = "models/weapons/w_physics.mdl",
[ "weapon_ar2" ] = "models/weapons/w_irifle.mdl",
[ "weapon_rpg" ] = "models/weapons/w_rocket_launcher.mdl",
[ "weapon_slam" ] = "models/weapons/w_slam.mdl",
[ "weapon_shotgun" ] = "models/weapons/w_shotgun.mdl",
[ "weapon_smg1" ] = "models/weapons/w_smg1.mdl",
[ "weapon_stunstick" ] = "models/weapons/w_stunbaton.mdl",
[ "weapon_alyxgun" ] = "models/weapons/w_alyx_gun.mdl",
[ "weapon_annabelle" ] = "models/weapons/w_annabelle.mdl",
[ "weapon_physgun" ] = "models/weapons/w_physics.mdl"
}
xdestore.ValidAct = { [ "Take" ] = true, [ "Move" ] = true, [ "Store" ] = true, [ "Rename" ] = true, [ "TakeAll" ] = true, [ "Split" ] = true, [ "Lock" ] = true, [ "Unlock" ] = true }
xdestore.ActToNum = { "Take", "Move", "Store", "TakeAll", "Rename", "Split", "Lock", "Unlock" }
xdestore.LockType = { "Simple", "Complex", "Question", "Key Weapon", "Group", "Personal" }
net.Receive( "XDEST_MenuS2COpen", function() local int = net.ReadFloat() local tab = net.ReadString() local con = net.ReadString()
local ent = net.ReadEntity() xdestore:OpenMenu( ply, int, tab, con, ent ) end )
net.Receive( "XDEST_MenuS2CClose", function() if xdestore.Menu then xdestore.Menu:Remove() end if xdestore.Namer then xdestore.Namer:Remove() end
if xdestore.Lock then xdestore.Lock:Remove() end if xdestore.Unlock then xdestore.Unlock:Remove() end end )
net.Receive( "XDEST_MenuS2CUpdate", function()
local tab = util.JSONToTable( net.ReadString() ) local con = util.JSONToTable( net.ReadString() ) local aa = net.ReadBool() local bb = net.ReadBool()
if IsValid( xdestore.Menu ) then xdestore.Menu.V_DataStat = tab xdestore.Menu.V_DataCont = con xdestore.Menu:UpdateItems( aa, bb ) end
end )
net.Receive( "XDEST_MenuC2SClose", function( len, ply ) if len > 32 or !IsValid( ply ) then return end
local int = net.ReadFloat() if IsValid( ply ) and ply:IsPlayer() and !ply:IsBot() and isnumber( int ) then xdestore:CloseMenu( ply, int ) end
end )
net.Receive( "XDEST_MenuC2SAction", function( len, ply ) if len >= 4096 or !IsValid( ply ) then return end
if isnumber( ply.XDEST_Cool ) and ply.XDEST_Cool > CurTime() then xdestore:SendHint( ply, "You are doing too fast!", "resource/warning.wav", 0 ) end
ply.XDEST_Cool = CurTime()+0.25 if !IsValid( ply:GetNWEntity( "XDEST_Ent" ) ) or ply:GetNWEntity( "XDEST_Ent" ) == Entity( 0 ) then return end local self = ply:GetNWEntity( "XDEST_Ent" )
if ( ( !isstring( self.Base ) or self.Base != "xdest_base" ) and self:GetClass() != "xdest_base" and self:GetClass() != "weapon_xdest" )
or !isstring( self.XDEST_Data ) or !isstring( self.XDEST_Contain ) then return end
local act = net.ReadFloat() local str = net.ReadString() if !isnumber( act ) then return end act = math.Round( act )
if !isstring( str ) then str = "_" end if isstring( xdestore.ActToNum[ act ] ) then act = xdestore.ActToNum[ act ] else return end xdestore:SlotAction( ply, self, act, str )
end )
net.Receive( "XDEST_MenuS2CResult", function() local ply = LocalPlayer() local yes = net.ReadBool() if IsValid( xdestore.Unlock ) then xdestore.Unlock:XDE_Result( yes ) end end )
net.Receive( "XDEST_LockReset", function() local ent = net.ReadEntity() if IsValid( ent ) and ent != Entity( 0 ) then ent.XDE_Pass = nil end end )
net.Receive( "XDEST_SendSnd", function() local str = net.ReadString() if !isstring( str ) or str == "!V" then return end surface.PlaySound( str ) end )
net.Receive( "XDEST_SendRes", function() local str = net.ReadString() local ply = LocalPlayer() local ent = net.ReadEntity() if !IsValid( ent )
or ent == Entity( 0 ) or !isstring( str ) or str == "" then return end if !isstring( ent.XDE_Pass ) then xdestore:SendHint( nil, "Access granted.", "", 0 ) end ent.XDE_Pass = str end )
net.Receive( "XDEST_SendHint", function() local txt = net.ReadString() local snd = net.ReadString() local typ = net.ReadFloat() xdestore:SendHint( nil, txt, snd, typ ) end )
0
function throw_artefact(obj)
if obj==nil then
return
end
math.randomseed(time_global())
local rnd=math.random(10)
local sect = obj:section()
local lv = obj:level_vertex_id()
local gv = obj:game_vertex_id()
local pos = obj:position()
local off_x = 2
local off_y = 1.5
local off_z = 2
pos.x = pos.x + off_x
pos.y = pos.y + off_y
pos.z = pos.z + off_z
if lv and gv and pos then
math.randomseed(time_global())
if string.find(sect, "witches") then
if string.find(sect, "weak") then
math.randomseed(time_global())
if math.random(4) == 1 then alife():create("af_electra_sparkler", pos, lv, gv) end
elseif string.find(sect, "average") then
math.randomseed(time_global())
if math.random(6) == 1 then alife():create("af_electra_sparkler", pos, lv, gv) end
if math.random(4) == 1 then alife():create("af_electra_flash", pos, lv, gv) end
else
math.randomseed(time_global())
if math.random(4) == 1 then alife():create("af_electra_moonlight", pos, lv, gv) end
if math.random(5) == 1 then alife():create("af_electra_flash", pos, lv, gv) end
if math.random(5) == 1 then alife():create("af_electra_sparkler", pos, lv, gv) end
end
elseif string.find(sect, "mosquito") then
math.randomseed(time_global())
if string.find(sect, "weak") then
if math.random(6) == 1 then alife():create("af_cristall_flower", pos, lv, gv) end
elseif string.find(sect, "average") then
if math.random(4) == 1 then alife():create("af_cristall_flower", pos, lv, gv) end
if math.random(5) == 1 then alife():create("af_medusa", pos, lv, gv) end
else
if math.random(6) == 1 then alife():create("af_night_star", pos, lv, gv) end
if math.random(4) == 1 then alife():create("af_medusa", pos, lv, gv) end
if math.random(5) == 1 then alife():create("af_cristall_flower", pos, lv, gv) end
end
elseif string.find(sect, "mincer") then
math.randomseed(time_global())
if string.find(sect, "weak") then
if math.random(6)==1 then alife():create("af_blood", pos, lv, gv) end
elseif string.find(sect, "average") then
if math.random(5) == 1 then alife():create("af_blood", pos, lv, gv) end
if math.random(4) <= 1 then alife():create("af_mincer_meat", pos, lv, gv) end
else
if math.random(6) == 1 then alife():create("af_soul", pos, lv, gv) end
if math.random(4) == 1 then alife():create("af_mincer_meat", pos, lv, gv) end
if math.random(5) == 1 then alife():create("af_blood", pos, lv, gv) end
end
elseif string.find(sect, "gravi") then
math.randomseed(time_global())
if string.find(sect, "weak") then
if math.random(6)==1 then alife():create("af_vyvert", pos, lv, gv) end
elseif string.find(sect, "average") then
if math.random(4) == 1 then alife():create("af_vyvert", pos, lv, gv) end
if math.random(5) <= 1 then alife():create("af_gravi", pos, lv, gv) end
else
if math.random(6) == 1 then alife():create("af_gold_fish", pos, lv, gv) end
if math.random(4) == 1 then alife():create("af_gravi", pos, lv, gv) end
if math.random(5) == 1 then alife():create("af_vyvert", pos, lv, gv) end
end
elseif string.find(sect, "ameba") or string.find(sect, "burning_fuzz") or string.find(sect, "rusty") then
math.randomseed(time_global())
if math.random(2) == 1 then alife():create("af_rusty_sea-urchin", pos, lv, gv) end
if math.random(2) == 1 then alife():create("af_rusty_kristall", pos, lv, gv) end
if math.random(2) == 1 then alife():create("af_rusty_thorn", pos, lv, gv) end
elseif string.find(sect, "buzz") then
if string.find(sect, "weak") then
if math.random(6)==1 then alife():create("af_ameba_slug", pos, lv, gv) end
elseif string.find(sect, "average") then
if math.random(5) == 1 then alife():create("af_ameba_slime", pos, lv, gv) end
if math.random(4) <= 1 then alife():create("af_ameba_slug", pos, lv, gv) end
else
if math.random(5) == 1 then alife():create("af_ameba_mica", pos, lv, gv) end
if math.random(5) == 1 then alife():create("af_ameba_slug", pos, lv, gv) end
if math.random(4) == 1 then alife():create("af_ameba_slime", pos, lv, gv) end
end
elseif string.find(sect, "doggy") then
local n=0
math.randomseed(time_global())
for n=1, math.random(3) do
alife():create("dog_weak", pos, lv, gv)
end
Свиток перебирает аномалии на локации и по рандому спавнит в них артефакты.
Да, блять - мне пришлось изучить луа. Теперь я тоже "золотой хуй".
Нижние строки отвечают за функционирование самодельной аномалии, которая после полуночи (по ИВ) плодит гипнособак и прочую нечисть. Стаи собак вырезают целые поселения; таким образом, я стал поистине сталкером. Так как я давно фриплею, надо разнообразить ко-ко-корутину.
0
ont = love.graphics.newFont("/font/RobotoMono-Regular.ttf",14);
love.graphics.setFont(font);
box = {
draw = false;
}
function box:cr(d,variant)
--self.draw = false;
self.d = d;
self.var = variant or {};
table.insert(self.var,">> Quit");
--table.insert(self.var,">> retry");
self.str = 0;
self.v = vector(0,(love.graphics.getHeight()/2)-150);
self.h = 300;
self.w = 800;
end
function box:up(dt)
end
function box:dr()
if self.draw then
love.graphics.setColor(0,0,0);
love.graphics.rectangle("fill",self.v.x,self.v.y,self.w,self.h);
love.graphics.setColor(1,1,1);
love.graphics.print(self.d,self.v.x,self.v.y);
love.graphics.print(self.str,self.v.x,self.v.y+20);
for k,v in pairs(self.var) do
if k == self.str then
--love.graphics.setColor(1,1,1);
love.graphics.draw(animmouse.img.RMB,self.v.x+font:getWidth(v),self.v.y+200+((k-1)*20))
love.graphics.setColor(1,1,0);
else
love.graphics.setColor(1,1,1);
end
love.graphics.print(v,self.v.x,self.v.y+200+((k-1)*20));
end
end
end
function box:mw(y)
if self.draw then
local lt = #self.var;
self.str = self.str - y;
if 1 > self.str then
self.str = lt;
elseif lt < self.str then
self.str = 1;
end
end
end
function box:mp(x,y,b)
if self.draw then
if b == 2 then
if self.str == #self.var then
self.draw = false
end
end
end
end
lalalalallallalalalalallallalalalalallal lalalalalallallalalalalallallalalalalall allalalalalallallalalalalallallalalalala llallalalalalallallalalalalallallalalala lallallalalalalallallalalalalallallalala lalallallalalalalallallalalalalallallala lalalallallalalalalallallalalalalallalla lalalalallallalalalalallallalalalalallal lalalalalallallalalalalallallalalalalall allalalalalallallalalalalallallalalalala llallalalalalallallalalalalallallalalala lallallalalalalallallalalalalallallalala lalallallalalalalallallalalalalallallala lalalallallalalalalallalla