Suppression d'une visibilité d'entité [StormFox]

  • Initiateur de la discussion mscaioni
  • Date de début
  • Initiateur de la discussion
mscaioni

mscaioni

Geek
Messages
112
Score réaction
20
Points
65
Bonjour,
J'ai récemment installé un addon Workshop sur mon serveur, le nom est StormFox c'est un addon météo avec système jour / nuit. LIEN WORKSHOP (StormFox)


J'ai une entité qui devient invisible quand je la fais devenir persistante, le problème est que je ne peux pas utiliser le mode de persistance sur mon serveur mais seulement PermaProps.

Avant de demander de l'aide, j'ai essayé plusieurs fois de trouver un moyen de fixer cela, mais j'ai échoué ou je ne pouvais pas terminer complètement. Je voudrais faire ceci: Rendre l'entité invisible sans avoir à appuyer sur E ou à la rendre persistante.

Si vous pouviez m'aider et supprimer tout ce qui fait que l'entité devinor visible sans faire bug le système de nuit / jour. S'il y a des choses à essayer, je vais tout tester et redonner les résultats.
C'est ainsi que l'entité ressemble au jeu avec le texte et la visibilité:



Blocs de Codes
Code:
include("shared.lua")
function ENT:Initialize() self.PixVis = util.GetPixelVisibleHandle()
end
local matLight = Material( "sprites/light_ignorez" )
local matBeam = Material( "effects/lamp_beam" )
local rmat = Material("models/props_combine/tpballglow")
function ENT:Draw() if self:GetPersistent() then return end render.MaterialOverride(rmat) self:DrawModel() render.MaterialOverride() local pos = EyeAngles():Forward() * -10 cam.Start3D2D(self:LocalToWorld(Vector(0,0,0)) + pos,Angle(0,EyeAngles().y + 270,90),0.2) draw.DrawText("Press E to make persistent and invisible","BudgetLabel",0,0,Color(255,255,255),1) cam.End3D2D()
end
function ENT:OnRemove() if self.flashlight and IsValid(self.flashlight) then self.flashlight:Remove() end
end
function ENT:DrawTranslucent() if ( halo.RenderedEntity() == self ) then return end local dis = EyePos():DistToSqr(self:GetPos()) if dis < 200000 and not self:GetPersistent() then local pos = EyeAngles():Forward() * -10 cam.Start3D2D(self:LocalToWorld(Vector(0,0,0)) + pos,Angle(0,EyeAngles().y + 270,90),0.2) draw.DrawText("Press E to make persistent and invisible","BudgetLabel",0,0,Color(255,255,255),1) cam.End3D2D() end local fon = self:GetNWBool("On",false) if not fon or dis > 2000000 then if self.flashlight and IsValid(self.flashlight) then self.flashlight:Remove() end return end local lpos = self:LocalToWorld(Vector(0,0,10)) local con = GetConVar("sf_allow_dynamiclights") if con:GetBool() then if not self.flashlight or not IsValid(self.flashlight) then self.flashlight = ProjectedTexture() self.flashlight:SetPos(lpos) self.flashlight:SetAngles(self:LocalToWorldAngles(Angle( 90, 0, 0 ))) self.flashlight:SetEnableShadows(true) self.flashlight:SetNearZ( 12 ) self.flashlight:SetFOV( 80 ) self.flashlight:SetBrightness(3) self.flashlight:SetFarZ( 1000 ) self.flashlight:SetColor( Color(255,255,255) ) self.flashlight:SetTexture("effects/flashlight001") self.flashlight:Update() self.oldpos = self:GetPos() self.oldang = self:GetAngles() elseif (self.oldpos or Vector(0,0,0)) ~= self:GetPos() or (self.oldang or Angle(0,0,0)) ~= self:GetAngles() then self.flashlight:SetPos(lpos) self.flashlight:SetAngles(self:LocalToWorldAngles(Angle( 90, 0, 0 ))) self.flashlight:Update() self.oldpos = self:GetPos() self.oldang = self:GetAngles() end elseif self.flashlight and IsValid(self.flashlight) then self.flashlight:Remove() end --print("CREATE") render.SetMaterial(matBeam) -- Thx gmod_light local LightNrm = -self:GetAngles():Up() local ViewNormal = lpos - EyePos() local Distance = ViewNormal:Length() ViewNormal:Normalize() local ViewDot = ViewNormal:Dot( LightNrm * -1 ) - 0.4 local Alpha = 100 - math.Clamp( ( 700 - Distance ) * ViewDot, 0, 100 ) render.StartBeam( 3 ) render.AddBeam( lpos + LightNrm * -1, 128 * 2, -0.01, Color( 255,255, 255, Alpha) ) render.AddBeam( lpos - LightNrm * -300, 128 * 2, 0.5, Color( 255, 255, 255, Alpha / 2) ) render.AddBeam( lpos - LightNrm * -400, 128 * 2, 1, Color( 255,255, 255, 0) ) render.EndBeam() --render.DrawBeam(lpos,lpos - self:GetAngles():Up() * 500,180,0,1,Color(255,255,255,100 - Alpha * 0.9)) if ( ViewDot >= 0 ) then render.SetMaterial( matLight ) local Visibile = util.PixelVisible( lpos, 16, self.PixVis ) if ( !Visibile ) then return end local Size = math.Clamp( Distance * Visibile * ViewDot * 2, 64, 512 / 2 ) Distance = math.Clamp( Distance, 32, 800 ) local Alpha = math.Clamp( ( 1000 - Distance ) * Visibile * ViewDot, 0, 100 ) local Col = self:GetColor() Col.a = Alpha render.DrawSprite( lpos, Size, Size, Col, Visibile * ViewDot ) render.DrawSprite( lpos, Size * 0.4, Size * 0.4, Color( 255, 255, 255, Alpha ), Visibile * ViewDot ) end
end

Code:
AddCSLuaFile("cl_init.lua")
AddCSLuaFile("shared.lua")
include("shared.lua")
function ENT:Initialize() self:SetModel( "models/hunter/blocks/cube025x025x025.mdl" ) self:PhysicsInit( SOLID_VPHYSICS ) self:SetMoveType( MOVETYPE_NONE ) self.RenderMode = self:SetRenderMode(RENDERMODE_TRANSALPHA) self:SetColor(Color(255,255,255)) self.on = false self.lastT = SysTime() + 7end
ENT.Use = StormFox.MakeEntityPersistance
function ENT:SpawnFunction( ply, tr, ClassName )if ( !tr.Hit ) thenreturnendlocal SpawnPos = tr.HitPos + tr.HitNormal * 40local ent = ents.Create( ClassName ) local ang = (ply:GetPos() - SpawnPos):Angle().y - 90 ent:SetPos( SpawnPos ) ent:SetAngles(Angle(0,ang,0)) ent:Spawn() ent:Activate() ply:PrintMessage( HUD_PRINTCENTER, "Press E" ) return ent
endfunction ENT:Think()if (self.lastT or0) > SysTime() + 20then self.lastT = 0endif (self.lastT or0) > SysTime() thenreturnend self.lastT = SysTime() + math.random(5,7) --local on = StormFox.GetDaylightAmount() <= 0.4local on = StormFox.GetData("MapLight",100) < 12local fon = self:GetNWBool("On",false) ifnot fon and on then self.on = true self:DrawShadow(false) self:SetNWBool("On",true) self:EmitSound("doors/door_metal_large_chamber_close1.wav",65,0.8) elseif fon andnot on then self:SetNWBool("On",false) self.on = false self:DrawShadow(true) self:EmitSound("doors/door_metal_large_chamber_close1.wav",65,0.8) if self.flashlight then self.flashlight:Remove() endendend

Code:
ENT.Type = "anim"
ENT.Base = "base_anim"
ENT.PrintName= "Lumiere Invisible"
ENT.Author= "Tahos"
ENT.Purpose = "Lumiere de Ville"
ENT.Instructions= "Le mettre quelquepart"
ENT.Category = "Tahos"
ENT.Editable = true
ENT.Spawnable = true
ENT.AdminOnly = true
ENT.RenderGroup = RENDERGROUP_BOTH
 
Jenni Gort

Jenni Gort

Geek suprême
Messages
207
Score réaction
67
Points
130
ta essayer de rendre l'entité invisible avec le toolgun couleur ? BORT
 
  • J'aime
Réactions: mscaioni et Yoh Sambre ♪
Yoh Sambre ♪

Yoh Sambre ♪

Shaman Fou
Messages
16 288
Score réaction
9 687
Points
1 845
Jenni Gort à dit:
ta essayer de rendre l'entité invisible avec le toolgun couleur ? BORT
stop leak big secret epic exploit
 
  • J'aime
Réactions: mscaioni, Lap3che et Jenni Gort
  • Initiateur de la discussion
mscaioni

mscaioni

Geek
Messages
112
Score réaction
20
Points
65
Jenni Gort à dit:
ta essayer de rendre l'entité invisible avec le toolgun couleur ? BORT
Le toolgun de couleure fait disparaitre la lumière dès que je le permaprops
 
  • Initiateur de la discussion
mscaioni

mscaioni

Geek
Messages
112
Score réaction
20
Points
65
C’est bon, j’ai finalement pu le résoudre.
Je sais que je réponds à ma propre question mais cela fait plus de deux semaines que je me demandes comment faire, j’ai essayé pleins de modifications et je suis finalememt tombé sur la bonne.

J’ai remplacé touts les self:GetPersistent() par true pour truquer l’entité à croire c’est en mode persistance.

Merci pour avoir répondu @Jenni Gort et @Yoh Sambre ♪
 
  • J'aime
Réactions: Jenni Gort et Yoh Sambre ♪
Yoh Sambre ♪

Yoh Sambre ♪

Shaman Fou
Messages
16 288
Score réaction
9 687
Points
1 845
mscaioni à dit:
J’ai remplacé touts les self:GetPersistent() par true pour truquer l’entité à croire c’est en mode persistance.
Bienvenue dans le monde de la bidouille FrankerZ
 
  • J'aime
Réactions: mscaioni
Discord d'entraide
Rejoignz-nous sur Discord