Heys guys,
Im having some trouble getting my sleder swep to work. Im trying to get it so that when Slender clicks on a player it will uncloak him and (at the moment) when he clicks again it uncloak him. But i want only the person he clicks on to see him. Im trying my best to learn by myself but im having a lot of trouble. I noted it best i could and would appreciate any help or ideas.
Thank you
[CODE]
if SERVER then
--===========Setting up Network Messages =======================
AddCSLuaFile ("shared.lua")
util.AddNetworkString("SLENDY_Init")
util.AddNetworkString("SLENDY_Cloak")
util.AddNetworkString("SLENDY_Target_Cloak")
util.AddNetworkString("SLENDY_Scare_Uncloak")
util.AddNetworkString("SLENDY_Scare_Target_Uncloak")
util.AddNetworkString("SLENDY_Scare_LocalPly_Uncloak")
local ShootSound = Sound("Metal.SawbladeStick") --precaching sound
SWEP.Weight = 1
SWEP.AutoSwitchTo = false
SWEP.AutoSwitchFrom = false
--=== Init to get Owner to cloak =====
net.Receive("SLENDY_Init" ,function (len, ply)
for k,v in pairs(player.GetAll()) do
if isTeam(ply,TeamName) then
ply:SetRenderMode(RENDERMODE_TRANSALPHA)
ply:SetColor(Color(0,0,0,0))
end
end
end)
---Receiving target from local player for primary and calling uncloak
net.Receive("SLENDY_Scare_Uncloak" ,
function (len, ply)
local target = net.ReadEntity()
if target == ply then
print("Target is you")
--else
plys = player.GetAll()
for k,v in pairs(plys) do
net.Start("SLENDY_Scare_Target_Uncloak")
net.WriteEntity(ply)
net.Send(target)
end
end
end)
-- Receiving cloak instruction from slender and cloaking
net.Receive("SLENDY_Cloak",function (len, ply)
plys = player.GetAll()
slender = ply
for i, v in pairs(plys) do
print(v)
net.Start("SLENDY_Target_Cloak")
net.WriteEntity(slender)
net.Send(v)
end
end)
elseif CLIENT then
SWEP.PrintName = "Slender SWEP" -- q menu name
--Sets the position of the weapon in the switching menu
--(appears when you use the scroll wheel or keys 1-6 by default)
SWEP.Slot = 4
SWEP.SlotPos = 1
--Sets drawing the ammuntion levels for this weapon
SWEP.DrawAmmo = false
--Sets the drawing of the crosshair when this weapon is deployed
SWEP.DrawCrosshair = false
HasAttacked = false -- used to judge whether slendy is cloaked or uncloaked
--====== Sleep: used to stop spamming of cloak/uncloak ==================
function sleep(n) -- seconds
local clock = os.clock
timer.Simple(n, function()
-- body
end)
end
--=========Sends target to server and uncloaks slendy==================
function SWEP:SendTargetToServ() -- SendTargetToServ function
local ply = self.Owner
local tr = ply:GetEyeTrace()
local target = nil
if (tr.Entity:IsPlayer())then
target = tr.Entity
--target:EmitSound(ShootSound) --will play spooky noises
else
target = ply
end
net.Start("SLENDY_Scare_Uncloak")
net.WriteEntity(target)
net.SendToServer()
end --endfunc
-- primary attack
function SWEP:PrimaryAttack()
if HasAttacked == false then
self:SendTargetToServ()
HasAttacked = true
print("Primary attack1")
sleep(5)
else
net.Start("SLENDY_Cloak")
net.SendToServer()
HasAttacked = false
print("Primary attack2")
sleep(5)
end
end
--secondary attack
function SWEP:SecondaryAttack()
self:SendTargetToServ()
end
function SWEP:Reload()
end
function SWEP:Think()
end
function SWEP:Initialize() ---- init cloak
local ply = LocalPlayer()
net.Start("SLENDY_Init")
net.SendToServer()
end
---------------------------------------UNCLOAK------------------------------------------------------
net.Receive("SLENDY_Scare_Target_Uncloak",function() --- target set slendy uncloak
local ply = LocalPlayer()
local slender = net.ReadEntity()
slender:SetRenderMode(RENDERMODE_TRANSALPHA)
slender:SetColor(Color(255,255,255,255))
end)
net.Receive("SLENDY_Scare_LocalPly_Uncloak",function() -- local ply set slendy uncloak
local ply = LocalPlayer()
ply:SetRenderMode(RENDERMODE_TRANSALPHA)
ply:SetColor(Color(255,255,255,255))
end)
--------------------------------Cloak-------------------------------------------------------------------
net.Receive("SLENDY_Target_Cloak",function()
local ply = LocalPlayer()
local slender = net.ReadEntity()
slender:SetRenderMode(RENDERMODE_TRANSALPHA)
slender:SetColor(Color(0,0,0,0))
end)
end
--The category that you SWep will be shown in, in the Spawn (Q) Menu
--(This can be anything, GMod will create the categories for you)
SWEP.Category = "Slender"
SWEP.Spawnable = true -- Whether regular players can see it
SWEP.AdminSpawnable = true -- Whether Admins/Super Admins can see it
SWEP.ViewModel = "models/weapons/v_hands.mdl" -- This is the model used for clients to see in first person.
SWEP.WorldModel = "" -- This is the model shown to all other clients and in third-person.
SWEP.Primary.ClipSize = -1
SWEP.Primary.DefaultClip = -1
SWEP.Primary.Automatic = false
SWEP.Primary.Ammo = "none"
SWEP.Secondary.ClipSize = -1
SWEP.Secondary.DefaultClip = -1
SWEP.Secondary.Automatic = false
SWEP.Secondary.Ammo = "none"
SWEP.TeamName = "Slender"
function isTeam( ply ,teamName ) -- to determin if local player is slender or not
if team.GetName(ply:Team()) == teamName then
return true
else
return false
end
end
[/CODE]
bump
Post to problems that dont need there own thread
Guys, stop pretending that we'll read and debug shitton of code just because the weapon doesnt work as intended, code one by yourself or pay someone to do that
Sorry, you need to Log In to post a reply to this thread.