Comment faire pour modifier un addon du workshop svp

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

aligatord78

Geek
Messages
75
Score réaction
3
Points
55
comment faire pour modifier un addon du workshop svp ??
 
LuffyD59

LuffyD59

Geek suprême
Messages
474
Score réaction
90
Points
140
Grâce a se site : https://steamworkshopdownloader.io
 
  • Initiateur de la discussion
aligatord78

aligatord78

Geek
Messages
75
Score réaction
3
Points
55
merci est je dois modif quoi ?
 
sakenplastic

sakenplastic

Geek
Messages
90
Score réaction
3
Points
95
Tout dépend de ce que tu veux modifier dans l'addon ?
 
D3YM0NYT

D3YM0NYT

Je vie dans un igloo
Messages
154
Score réaction
16
Points
125
LuffyD59 à dit:
Grâce a se site : https://steamworkshopdownloader.io
Ça sert à quoi d'aller sur un site si tu as déjà gmad installer lorsque tu télécharge garrys mod... Surtout que le gmad fourni, tu as juste à glisser ton addon dessu et il s'extrait automatiquement...
 
Z3k4

Z3k4

Helpeur Divin
Messages
4 495
Score réaction
1 513
Points
580
D3YM0NYT à dit:
Ça sert à quoi d'aller sur un site si tu as déjà gmad installer lorsque tu télécharge garrys mod... Surtout que le gmad fourni, tu as juste à glisser ton addon dessu et il s'extrait automatiquement...
C'est rapide
ça permet de sauter une étape (décompression)
ça évite de chercher l'addon dans son dossier garry's mod

Et dernière chose, c'est rapide.
 
  • Haha
  • J'aime
Réactions: chesiren et NoaGamingFR
D3YM0NYT

D3YM0NYT

Je vie dans un igloo
Messages
154
Score réaction
16
Points
125
Z3k4 à dit:
C'est rapide
ça permet de sauter une étape (décompression)
ça évite de chercher l'addon dans son dossier garry's mod

Et dernière chose, c'est rapide.
Mais mdr sauter la décompression... Quand tu utilises ton site tu le décompresse aussi xD
"Sa évite de chercher l'addon" désolé si tu est avec windows 96 et que tu ne peux pas rechercher dans un dossier
 
Z3k4

Z3k4

Helpeur Divin
Messages
4 495
Score réaction
1 513
Points
580
D3YM0NYT à dit:
Mais mdr sauter la décompression... Quand tu utilises ton site tu le décompresse aussi xD
"Sa évite de chercher l'addon" désolé si tu est avec windows 96 et que tu ne peux pas rechercher dans un dossier
Désolé si t'es sur Windows 96 et que ton Windows n'inclut pas la prise en charge des formats zip par défaut.

Dans tout les cas, c'est un gain de temps considérable, cette raison est pour laquelle le site existe et elle suffit amplement. Si tu souhaites ne pas l'utiliser, libre à toi, mais merci de ne pas dire que c'est inutile ;)
 
  • J'aime
Réactions: PJGame et NoaGamingFR
Akulla

Akulla

Helpeur Divin
Messages
3 808
Score réaction
2 240
Points
550
D3YM0NYT à dit:
Mais mdr sauter la décompression... Quand tu utilises ton site tu le décompresse aussi xD
4000iq
 
Yoh Sambre ♪

Yoh Sambre ♪

Shaman Fou
Messages
16 280
Score réaction
9 687
Points
1 845
D3YM0NYT à dit:
Ça sert à quoi d'aller sur un site si tu as déjà gmad installer lorsque tu télécharge garrys mod... Surtout que le gmad fourni, tu as juste à glisser ton addon dessu et il s'extrait automatiquement...
ça s'appelle une alternative en soit , libre au gens d'utiliser l'outil officiel de gmod ou pas.
 
Ryoley

Ryoley

Geek suprême
Messages
239
Score réaction
29
Points
140
Bonjour,
Savez-vous s'il y a un moyen simple de changer l'apparence d'un SWEP lorsqu'on le tiens dans la main ? Par exemple pour l'Impaler SWEP (Steam Workshop :: Impaler SWEP ), il y a un petit pistolet (présent par défaut dans la scrollbar en Sandbox) que l'on tiens. De ce fait, je voudrais remplacer ce pistolet par des mains vides, comme lorsque l'on a les clefs en main en DarkRP. Pour résumer, avoir les bras le long du corps, les mains vides, à la place d'un bras tendu avec un pistolet dans la main.

Merci à vous, bonne fin de journée.
 
  • Banni
DrTortue

DrTortue

Geek
Messages
69
Score réaction
16
Points
95
Ryoley à dit:
Bonjour,
Savez-vous s'il y a un moyen simple de changer l'apparence d'un SWEP lorsqu'on le tiens dans la main ? Par exemple pour l'Impaler SWEP (Steam Workshop :: Impaler SWEP ), il y a un petit pistolet (présent par défaut dans la scrollbar en Sandbox) que l'on tiens. De ce fait, je voudrais remplacer ce pistolet par des mains vides, comme lorsque l'on a les clefs en main en DarkRP. Pour résumer, avoir les bras le long du corps, les mains vides, à la place d'un bras tendu avec un pistolet dans la main.

Merci à vous, bonne fin de journée.
Alors tu décompil l'addons grave au site (steamworkshopdownloader.io) donner plus haut ou juste avec les méthodes de base de gmod,.

Ensuite tu va aller dans lua/weapons/impaler_xp.lua

Changer :
Ligne 56
SWEP.ViewModel = "models/weapons/c_pistol.mdl"
par
SWEP.ViewModel = ""

Ligne 61
SWEP.WorldModel = "models/weapons/w_pistol.mdl"
par
SWEP.WorldModel = ""

Je crois, ça fait longtemps que j'ai pas touché au lua
 
  • J'aime
Réactions: Yoh Sambre ♪
Ryoley

Ryoley

Geek suprême
Messages
239
Score réaction
29
Points
140
DrTortue à dit:
Alors tu décompil l'addons grave au site (steamworkshopdownloader.io) donner plus haut ou juste avec les méthodes de base de gmod,.

Ensuite tu va aller dans lua/weapons/impaler_xp.lua

Changer :
Ligne 56
SWEP.ViewModel = "models/weapons/c_pistol.mdl"
par
SWEP.ViewModel = ""

Ligne 61
SWEP.WorldModel = "models/weapons/w_pistol.mdl"
par
SWEP.WorldModel = ""

Je crois, ça fait longtemps que j'ai pas touché au lua
D'accord merci beaucoup, je vais essayer ça ;)
Et ensuite, je remet le dossier de l'addon décompilé dans le dossier addon du FTP de mon serveur ? ^^
 
Dernière édition:
  • Banni
DrTortue

DrTortue

Geek
Messages
69
Score réaction
16
Points
95
Ryoley à dit:
D'accord merci beaucoup, je vais essayer ça ;)
Ensuite, si je veux mettre l'addon sur mon serveur, par exemple, je dois mettre le dossier décompilé dans le dossier addons du FTP de mon serveur ? :0
Oui ça ne serre à rien de mettre un fichier .zip
 
Ryoley

Ryoley

Geek suprême
Messages
239
Score réaction
29
Points
140
Cela a marché en partie, le pistolet à bien disparu mais le joueur est encore en position comme si il tenait encore l'arme (bras tendu).
Je me demande s'il ne faudrait pas remplacer :

Ligne 59
SWEP.HoldType = "pistol"
par
SWEP.HoldType = ""
 
Yoh Sambre ♪

Yoh Sambre ♪

Shaman Fou
Messages
16 280
Score réaction
9 687
Points
1 845
Ryoley à dit:
Cela a marché en partie, le pistolet à bien disparu mais le joueur est encore en position comme si il tenait encore l'arme (bras tendu).
Je me demande s'il ne faudrait pas remplacer :
Ligne 59
SWEP.HoldType = "pistol"
par
SWEP.HoldType = ""
j'ai une idée , indique plutôt ceci ça donnera un style (le joueur va faire comme si il lancer véritablement le harpon)

Code:
SWEP.HoldType = "grenade"
 
Ryoley

Ryoley

Geek suprême
Messages
239
Score réaction
29
Points
140
Yoh Sambre ♪ à dit:
j'ai une idée , indique plutôt ceci ça donnera un style (le joueur va faire comme si il lancer véritablement le harpon)

Code:
SWEP.HoldType = "grenade"
Oui c'est un bonne idée mais le problème c'est que je voudrais rendre cela "imprévisible", les autres joueurs ne doivent pas s'attendre à ce qu'il se passe une action à ce moment là. Il faut qu'ils se disent "Il a les clefs en main, c'est sécurisé on peut l'attaquer ou l'attraper." et là BAM ! un gentil homme empalé. :)
 
  • J'aime
Réactions: Yoh Sambre ♪
Ryoley

Ryoley

Geek suprême
Messages
239
Score réaction
29
Points
140
C'est pour cela que je ne sais si il faut mettre :

SWEP.HoldType = ""
ou
SWEP.HoldType = "hands"

Par exemple.
 
  • Banni
DrTortue

DrTortue

Geek
Messages
69
Score réaction
16
Points
95
Ryoley à dit:
C'est pour cela que je ne sais si il faut mettre :

SWEP.HoldType = ""
ou
SWEP.HoldType = "hands"

Par exemple.
Le problème du bras tendu vient de la vu du joueur ou ou la position du joueur vu par les autres?
 
Ryoley

Ryoley

Geek suprême
Messages
239
Score réaction
29
Points
140
DrTortue à dit:
Le problème du bras tendu vient de la vu du joueur ou ou la position du joueur vu par les autres?
Je n'ai essayé que avec la vue à la 3ème personne via l'addon du workshop mais dans cette vue on a effectivement le problème du bras tendu. ^^
 
  • Banni
DrTortue

DrTortue

Geek
Messages
69
Score réaction
16
Points
95
Ryoley à dit:
Je n'ai essayé que avec la vue à la 3ème personne via l'addon du workshop mais dans cette vue on a effectivement le problème du bras tendu. ^^
essaye gmod_hands
 
  • J'aime
Réactions: Ryoley
Ryoley

Ryoley

Geek suprême
Messages
239
Score réaction
29
Points
140
  • Banni
DrTortue

DrTortue

Geek
Messages
69
Score réaction
16
Points
95
Oki, tu me fais un retour sur ça
 
Ryoley

Ryoley

Geek suprême
Messages
239
Score réaction
29
Points
140
DrTortue à dit:
Oki, tu me fais un retour sur ça
J'ai essayé ça mais toujours le même problème :/
Voci le code ci-dessous :
Code:
SWEP.ViewModel = ""
SWEP.HoldType = "gmod_hands"
SWEP.WorldModel = ""
J'ai également retiré la ligne :
Code:
SWEP.UseHands = true
 
Ryoley

Ryoley

Geek suprême
Messages
239
Score réaction
29
Points
140
Pour les personnes qui souhaites le code complet afin de m'aider, le voici :
Code:
if ( SERVER ) then CreateConVar("imp_admin","0",{FCVAR_ARCHIVE,FCVAR_REPLICATED,FCVAR_SERVER_CAN_EXECUTE}) CreateConVar("imp_nofall","0",{FCVAR_ARCHIVE,FCVAR_REPLICATED,FCVAR_SERVER_CAN_EXECUTE}) CreateConVar("imp_cleanup","0",{FCVAR_ARCHIVE,FCVAR_REPLICATED,FCVAR_SERVER_CAN_EXECUTE}) AddCSLuaFile() SWEP.Weight = 5
end
if ( CLIENT ) then SWEP.PrintName = "Impaler" SWEP.Author = "Hds46" SWEP.Category = "Other" SWEP.Slot = 1 SWEP.SlotPos = 2 SWEP.IconLetter = "x" SWEP.WepSelectIcon = Material("icon/icon_spear.png") SWEP.BounceWeaponIcon = false function SWEP:DrawWeaponSelection( x, y, wide, tall, alpha ) -- Set us up the texture surface.SetDrawColor( 255, 255, 255, alpha ) surface.SetMaterial( self.WepSelectIcon ) -- Lets get a sin wave to make it bounce local fsin = 0 if ( self.BounceWeaponIcon == true ) then fsin = math.sin( CurTime() * 10 ) * 5 end -- Borders y = y + 18 x = x + 15 wide = wide - 30 -- Draw that mother surface.DrawTexturedRect( x + (fsin), y - (fsin), wide-fsin*2 , ( wide / 1.8 ) + (fsin) ) -- Draw weapon info box self:PrintWeaponInfo( x + wide + 20, y + tall * 0.95, alpha ) end
end
------------General Swep Info---------------
SWEP.Author = "Hds46"
SWEP.Contact = "Steam"
SWEP.Purpose = "Brutal weapon"
SWEP.Instructions = "Left Click - Impale. \nRight Click - Groundspike Graveyard"
SWEP.Spawnable = true
SWEP.AdminOnly = false
-----------------------------------------------
-----------------Models---------------------------
SWEP.ViewModel = "models/weapons/c_pistol.mdl"
SWEP.UseHands = true
SWEP.HoldType = "pistol"
SWEP.WorldModel = "models/weapons/w_pistol.mdl"
-----------------------------------------------
-------------Primary Fire Attributes----------------------------------------
SWEP.Primary.Delay = 0.2
SWEP.Primary.ClipSize = -1
SWEP.Primary.DefaultClip = -1
SWEP.Primary.Automatic = true
SWEP.Primary.Ammo = "None"
-------------End Primary Fire Attributes------------------------------------
-------------Secondary Fire Attributes-------------------------------------
SWEP.Secondary.Delay = 6
SWEP.Secondary.ClipSize = -1
SWEP.Secondary.DefaultClip = -1
SWEP.Secondary.Automatic = true
SWEP.Secondary.Ammo = "none"
-------------End Secondary Fire Attributes--------------------------------
function SWEP:Reload()
for k,v in pairs(ents.GetAll()) do
if v.Impaler and v.Owner == self.Owner then
v:GetPhysicsObject():EnableMotion(true)
end
end
end
function SWEP:Think()
end
function SWEP:Equip()
end
function SWEP:OnDrop()
end
function SWEP:Deploy() self.Weapon:SendWeaponAnim(ACT_VM_DRAW) self.Owner:GetViewModel():SetPlaybackRate(4) self:SetNextPrimaryFire( CurTime() + self.Owner:GetViewModel():SequenceDuration()/4) self:SetNextSecondaryFire( CurTime() + self.Owner:GetViewModel():SequenceDuration()/4) return true
end
function SWEP:DoImpactEffect( tr, nDamageType )
return true
end
function SWEP:PrimaryAttack()
if self:GetNextPrimaryFire() < CurTime() then
if GetConVar("imp_admin"):GetBool() and !self.Owner:IsAdmin() then
self.Weapon:SetNextPrimaryFire(CurTime() + self.Primary.Delay)
self.Weapon:SetNextSecondaryFire(CurTime() + self.Primary.Delay)
self.Owner:PrintMessage(HUD_PRINTCENTER,"You must be admin to use that weapon")
if SERVER then
self.Owner:EmitSound(Sound("HL2Player.UseDeny"))
end
return
end
self.Weapon:SetNextPrimaryFire(CurTime() + self.Primary.Delay)
self.Weapon:SetNextSecondaryFire(CurTime() + self.Primary.Delay)
self.Weapon:SendWeaponAnim(ACT_VM_PRIMARYATTACK)
self.Owner:SetAnimation( PLAYER_ATTACK1 )
local eyetrace = self.Owner:GetEyeTrace()
local target = eyetrace.Entity
if eyetrace != nil and eyetrace.Hit and SERVER then
if IsValid(target) and (target:IsNPC() or target:IsPlayer()) then
local traceline = {}
traceline.start = target:GetPos()
traceline.endpos = traceline.start - Vector(0,0,50)
traceline.filter = function(ent) if !ent:IsWorld() then return false end end
local traceworld = util.TraceLine(traceline)
if traceworld.Hit then
target:EmitSound(Sound("physics/metal/sawblade_stick3.wav"))
target:SetShouldServerRagdoll( true )
local ent = ents.Create("prop_physics")
ent:SetModel("models/props_junk/harpoon002a.mdl")
ent:SetPos(traceworld.HitPos - Vector(0,0,10))
ent:SetAngles(Angle(-90,90,0))
ent.Impaler = true
ent.Owner = self.Owner
ent:Spawn()
ent:Activate()
ent:GetPhysicsObject():EnableMotion(false)
target.Impaled = true
target.ImpaleEnt = ent
target:SetHealth(0)
local dmginfo = DamageInfo()
dmginfo:SetDamage(10)
dmginfo:SetDamageType(DMG_CLUB)
dmginfo:SetAttacker( self.Owner )
dmginfo:SetDamageForce(Vector(0,0,10))
dmginfo:SetInflictor( self )
target:TakeDamageInfo( dmginfo )
local Angle = target:GetAngles()
Angle.pitch = -90
Angle.roll = Angle.roll
Angle.yaw = Angle.yaw
local NAngle = Angle
for i =1,6 do
local effectdata = EffectData()
effectdata:SetOrigin( target:GetPos() )
effectdata:SetNormal(NAngle:Forward())
effectdata:SetMagnitude( 1 )
effectdata:SetScale( 10 )
effectdata:SetColor( 0 )
effectdata:SetFlags( 3 )
util.Effect( "bloodspray", effectdata, true, true )
end
for i=1,30 do
local traceline2 = {}
traceline2.start = target:GetPos() + Vector(0,0,10)
traceline2.endpos = traceline2.start - (Vector((math.random()*2)-1, (math.random()*2)-1, (math.random()*2)-1)*200)
traceline2.filter = {ent,target}
local trw = util.TraceLine(traceline2)
local decpos1 = trw.HitPos + trw.HitNormal
local decpos2 = trw.HitPos - trw.HitNormal
util.Decal("Blood", decpos1, decpos2)
end
timer.Create("harpoon_rise" .. ent:EntIndex(),0.01,16,function()
if IsValid(ent) then
ent:SetPos(ent:GetPos() + Vector(0,0,4))
end
end)
if math.random(1,100) < 30 and !GetConVar("imp_nofall"):GetBool() then
timer.Create("harpoon_fall" .. ent:EntIndex(),math.random(5,10),1,function()
if IsValid(ent) then
ent:GetPhysicsObject():EnableMotion(true)
end
end)
end
if GetConVar("imp_cleanup"):GetBool() then
timer.Create("harpoon_remove" .. ent:EntIndex(),math.random(12,28),1,function()
if IsValid(ent) then
ent:Remove()
end
end)
end
undo.Create( "Harpoon" )
undo.AddEntity( ent )
undo.SetPlayer( self.Owner )
undo.SetCustomUndoText( "Undone Harpoon" )
undo.Finish()
return
end
end
end
if SERVER then
self.Owner:EmitSound(Sound("Buttons.snd14"))
end
end
end
function SWEP:SecondaryAttack()
if self:GetNextSecondaryFire() < CurTime() then
if GetConVar("imp_admin"):GetBool() and !self.Owner:IsAdmin() then
self.Weapon:SetNextPrimaryFire(CurTime() + self.Secondary.Delay)
self.Weapon:SetNextSecondaryFire(CurTime() + self.Secondary.Delay)
self.Owner:PrintMessage(HUD_PRINTCENTER,"You must be admin to use that weapon")
if SERVER then
self.Owner:EmitSound(Sound("HL2Player.UseDeny"))
end
return
end
self.Weapon:SetNextPrimaryFire(CurTime() + self.Secondary.Delay)
self.Weapon:SetNextSecondaryFire(CurTime() + self.Secondary.Delay)
self.Weapon:SendWeaponAnim(ACT_VM_PRIMARYATTACK)
self.Owner:SetAnimation( PLAYER_ATTACK1 )
self.Owner:EmitSound(Sound("Weapon_Physgun.Off"))
self.Owner:EmitSound(Sound("ambient/materials/rock3.wav"))
local eyetrace = self.Owner:GetEyeTrace()
if eyetrace != nil and eyetrace.Hit and SERVER then
local targetpos = eyetrace.HitPos
self.shake = ents.Create( "env_shake" )
self.shake:SetPos( targetpos )
self.shake:SetKeyValue( "amplitude", "5" )
self.shake:SetKeyValue( "radius", "700" )
self.shake:SetKeyValue( "duration", "3" )
self.shake:SetKeyValue( "frequency", "5" )
self.shake:SetKeyValue( "spawnflags", "4" )
self.shake:Spawn()
self.shake:Activate()
self.shake:Fire( "kill", 0, 6 )
timer.Create("harpoon_prepare" .. self.Owner:EntIndex(),0.5,1,function()
if IsValid(self) and IsValid(self.Owner) then
timer.Create("harpoon_strike" .. self.Owner:EntIndex(),0.5,10,function()
if IsValid(self) and IsValid(self.Owner) then
local plyang = self.Owner:GetAngles()
plyang.pitch = -90
plyang.roll = plyang.roll
plyang.yaw = plyang.yaw
local DustAngle = plyang
local BigDust = EffectData()
BigDust:SetOrigin(targetpos)
BigDust:SetNormal(DustAngle:Forward())
BigDust:SetScale(400)
util.Effect("ThumperDust",BigDust)
self.shake:Fire( "StartShake", "", 0 )
local attacktab = {}
for k,v in RandomPairs(ents.FindInSphere(targetpos,500)) do
if IsValid(v) and (v:IsNPC() or (v:IsPlayer() and v:Alive() and v != self.Owner)) then
table.insert(attacktab,v)
end
end
if table.Random(attacktab) != nil then
local target = table.Random(attacktab)
local traceline = {}
traceline.start = target:GetPos()
traceline.endpos = traceline.start - Vector(0,0,50)
traceline.filter = function(ent) if !ent:IsWorld() then return false end end
local traceworld = util.TraceLine(traceline)
if traceworld.Hit then
target:EmitSound(Sound("physics/metal/sawblade_stick3.wav"))
target:SetShouldServerRagdoll( true )
local ent = ents.Create("prop_physics")
ent:SetModel("models/props_junk/harpoon002a.mdl")
ent:SetPos(traceworld.HitPos - Vector(0,0,10))
ent:SetAngles(Angle(-90,90,0))
ent.Impaler = true
ent.Owner = self.Owner
ent:Spawn()
ent:Activate()
ent:GetPhysicsObject():EnableMotion(false)
target.Impaled = true
target.ImpaleEnt = ent
target:SetHealth(0)
local dmginfo = DamageInfo()
dmginfo:SetDamage(10)
dmginfo:SetDamageType(DMG_CLUB)
dmginfo:SetAttacker( self.Owner )
dmginfo:SetDamageForce(Vector(0,0,10))
dmginfo:SetInflictor( self )
target:TakeDamageInfo( dmginfo )
local Angle = target:GetAngles()
Angle.pitch = -90
Angle.roll = Angle.roll
Angle.yaw = Angle.yaw
local NAngle = Angle
for i =1,6 do
local effectdata = EffectData()
effectdata:SetOrigin( target:GetPos() )
effectdata:SetNormal(NAngle:Forward())
effectdata:SetMagnitude( 1 )
effectdata:SetScale( 10 )
effectdata:SetColor( 0 )
effectdata:SetFlags( 3 )
util.Effect( "bloodspray", effectdata, true, true )
end
for i=1,30 do
local traceline2 = {}
traceline2.start = target:GetPos() + Vector(0,0,10)
traceline2.endpos = traceline2.start - (Vector((math.random()*2)-1, (math.random()*2)-1, (math.random()*2)-1)*200)
traceline2.filter = {ent,target}
local trw = util.TraceLine(traceline2)
local decpos1 = trw.HitPos + trw.HitNormal
local decpos2 = trw.HitPos - trw.HitNormal
util.Decal("Blood", decpos1, decpos2)
end
timer.Create("harpoon_rise" .. ent:EntIndex(),0.01,16,function()
if IsValid(ent) then
ent:SetPos(ent:GetPos() + Vector(0,0,4))
end
end)
if math.random(1,100) < 30 and !GetConVar("imp_nofall"):GetBool() then
timer.Create("harpoon_fall" .. ent:EntIndex(),math.random(5,10),1,function()
if IsValid(ent) then
ent:GetPhysicsObject():EnableMotion(true)
end
end)
end
if GetConVar("imp_cleanup"):GetBool() then
timer.Create("harpoon_remove" .. ent:EntIndex(),math.random(12,28),1,function()
if IsValid(ent) then
ent:Remove()
end
end)
end
undo.Create( "Harpoon" )
undo.AddEntity( ent )
undo.SetPlayer( self.Owner )
undo.SetCustomUndoText( "Undone Harpoon" )
undo.Finish()
end
end
end
end)
end
end)
end
end
end
hook.Add("CreateEntityRagdoll","CollideRagWithEnt",function(ent,ragdoll)
if IsValid(ent) and IsValid(ragdoll) and ent.Impaled and IsValid(ent.ImpaleEnt) then
ragdoll.cnstweld = constraint.Weld(ent.ImpaleEnt,ragdoll,0,0,0,false)
ragdoll.Impaled = true
ent.ImpaleEnt.IsOccupated = true
end
end)
hook.Add( "OnEntityCreated", "VJRag", function( ent )
timer.Simple(0.02,function()
if IsValid(ent) and ent.IsVJBaseCorpse then
for k,v in pairs(ents.FindInSphere(ent:GetPos(),10)) do
if IsValid(v) and v:GetClass()=="prop_physics" and v.Impaler and !v.IsOccupated then
ent.cnstweld = constraint.Weld(v,ent,0,0,0,false)
ent.Impaled = true
v.IsOccupated = true
end
end
end
end)
end)
local function PlyFixRagImp(ply,inflictor,attacker)
if SERVER and IsValid(inflictor) and inflictor:GetClass()=="impaler_xp" then
if !(ply:GetRagdollEntity()==NULL) and IsValid(ply:GetRagdollEntity()) then
ply:GetRagdollEntity():Remove()
end
end
end
hook.Add("PlayerDeath", "PlyFixRagImp",PlyFixRagImp)
 
  • Banni
DrTortue

DrTortue

Geek
Messages
69
Score réaction
16
Points
95
Ryoley à dit:
Pour les personnes qui souhaites le code complet afin de m'aider, le voici :
Code:
if ( SERVER ) then CreateConVar("imp_admin","0",{FCVAR_ARCHIVE,FCVAR_REPLICATED,FCVAR_SERVER_CAN_EXECUTE}) CreateConVar("imp_nofall","0",{FCVAR_ARCHIVE,FCVAR_REPLICATED,FCVAR_SERVER_CAN_EXECUTE}) CreateConVar("imp_cleanup","0",{FCVAR_ARCHIVE,FCVAR_REPLICATED,FCVAR_SERVER_CAN_EXECUTE}) AddCSLuaFile() SWEP.Weight = 5
end
if ( CLIENT ) then SWEP.PrintName = "Impaler" SWEP.Author = "Hds46" SWEP.Category = "Other" SWEP.Slot = 1 SWEP.SlotPos = 2 SWEP.IconLetter = "x" SWEP.WepSelectIcon = Material("icon/icon_spear.png") SWEP.BounceWeaponIcon = false function SWEP:DrawWeaponSelection( x, y, wide, tall, alpha ) -- Set us up the texture surface.SetDrawColor( 255, 255, 255, alpha ) surface.SetMaterial( self.WepSelectIcon ) -- Lets get a sin wave to make it bounce local fsin = 0 if ( self.BounceWeaponIcon == true ) then fsin = math.sin( CurTime() * 10 ) * 5 end -- Borders y = y + 18 x = x + 15 wide = wide - 30 -- Draw that mother surface.DrawTexturedRect( x + (fsin), y - (fsin), wide-fsin*2 , ( wide / 1.8 ) + (fsin) ) -- Draw weapon info box self:PrintWeaponInfo( x + wide + 20, y + tall * 0.95, alpha ) end
end
------------General Swep Info---------------
SWEP.Author = "Hds46"
SWEP.Contact = "Steam"
SWEP.Purpose = "Brutal weapon"
SWEP.Instructions = "Left Click - Impale. \nRight Click - Groundspike Graveyard"
SWEP.Spawnable = true
SWEP.AdminOnly = false
-----------------------------------------------
-----------------Models---------------------------
SWEP.ViewModel = "models/weapons/c_pistol.mdl"
SWEP.UseHands = true
SWEP.HoldType = "pistol"
SWEP.WorldModel = "models/weapons/w_pistol.mdl"
-----------------------------------------------
-------------Primary Fire Attributes----------------------------------------
SWEP.Primary.Delay = 0.2
SWEP.Primary.ClipSize = -1
SWEP.Primary.DefaultClip = -1
SWEP.Primary.Automatic = true
SWEP.Primary.Ammo = "None"
-------------End Primary Fire Attributes------------------------------------
-------------Secondary Fire Attributes-------------------------------------
SWEP.Secondary.Delay = 6
SWEP.Secondary.ClipSize = -1
SWEP.Secondary.DefaultClip = -1
SWEP.Secondary.Automatic = true
SWEP.Secondary.Ammo = "none"
-------------End Secondary Fire Attributes--------------------------------
function SWEP:Reload()
for k,v in pairs(ents.GetAll()) do
if v.Impaler and v.Owner == self.Owner then
v:GetPhysicsObject():EnableMotion(true)
end
end
end
function SWEP:Think()
end
function SWEP:Equip()
end
function SWEP:OnDrop()
end
function SWEP:Deploy() self.Weapon:SendWeaponAnim(ACT_VM_DRAW) self.Owner:GetViewModel():SetPlaybackRate(4) self:SetNextPrimaryFire( CurTime() + self.Owner:GetViewModel():SequenceDuration()/4) self:SetNextSecondaryFire( CurTime() + self.Owner:GetViewModel():SequenceDuration()/4) return true
end
function SWEP:DoImpactEffect( tr, nDamageType )
return true
end
function SWEP:PrimaryAttack()
if self:GetNextPrimaryFire() < CurTime() then
if GetConVar("imp_admin"):GetBool() and !self.Owner:IsAdmin() then
self.Weapon:SetNextPrimaryFire(CurTime() + self.Primary.Delay)
self.Weapon:SetNextSecondaryFire(CurTime() + self.Primary.Delay)
self.Owner:PrintMessage(HUD_PRINTCENTER,"You must be admin to use that weapon")
if SERVER then
self.Owner:EmitSound(Sound("HL2Player.UseDeny"))
end
return
end
self.Weapon:SetNextPrimaryFire(CurTime() + self.Primary.Delay)
self.Weapon:SetNextSecondaryFire(CurTime() + self.Primary.Delay)
self.Weapon:SendWeaponAnim(ACT_VM_PRIMARYATTACK)
self.Owner:SetAnimation( PLAYER_ATTACK1 )
local eyetrace = self.Owner:GetEyeTrace()
local target = eyetrace.Entity
if eyetrace != nil and eyetrace.Hit and SERVER then
if IsValid(target) and (target:IsNPC() or target:IsPlayer()) then
local traceline = {}
traceline.start = target:GetPos()
traceline.endpos = traceline.start - Vector(0,0,50)
traceline.filter = function(ent) if !ent:IsWorld() then return false end end
local traceworld = util.TraceLine(traceline)
if traceworld.Hit then
target:EmitSound(Sound("physics/metal/sawblade_stick3.wav"))
target:SetShouldServerRagdoll( true )
local ent = ents.Create("prop_physics")
ent:SetModel("models/props_junk/harpoon002a.mdl")
ent:SetPos(traceworld.HitPos - Vector(0,0,10))
ent:SetAngles(Angle(-90,90,0))
ent.Impaler = true
ent.Owner = self.Owner
ent:Spawn()
ent:Activate()
ent:GetPhysicsObject():EnableMotion(false)
target.Impaled = true
target.ImpaleEnt = ent
target:SetHealth(0)
local dmginfo = DamageInfo()
dmginfo:SetDamage(10)
dmginfo:SetDamageType(DMG_CLUB)
dmginfo:SetAttacker( self.Owner )
dmginfo:SetDamageForce(Vector(0,0,10))
dmginfo:SetInflictor( self )
target:TakeDamageInfo( dmginfo )
local Angle = target:GetAngles()
Angle.pitch = -90
Angle.roll = Angle.roll
Angle.yaw = Angle.yaw
local NAngle = Angle
for i =1,6 do
local effectdata = EffectData()
effectdata:SetOrigin( target:GetPos() )
effectdata:SetNormal(NAngle:Forward())
effectdata:SetMagnitude( 1 )
effectdata:SetScale( 10 )
effectdata:SetColor( 0 )
effectdata:SetFlags( 3 )
util.Effect( "bloodspray", effectdata, true, true )
end
for i=1,30 do
local traceline2 = {}
traceline2.start = target:GetPos() + Vector(0,0,10)
traceline2.endpos = traceline2.start - (Vector((math.random()*2)-1, (math.random()*2)-1, (math.random()*2)-1)*200)
traceline2.filter = {ent,target}
local trw = util.TraceLine(traceline2)
local decpos1 = trw.HitPos + trw.HitNormal
local decpos2 = trw.HitPos - trw.HitNormal
util.Decal("Blood", decpos1, decpos2)
end
timer.Create("harpoon_rise" .. ent:EntIndex(),0.01,16,function()
if IsValid(ent) then
ent:SetPos(ent:GetPos() + Vector(0,0,4))
end
end)
if math.random(1,100) < 30 and !GetConVar("imp_nofall"):GetBool() then
timer.Create("harpoon_fall" .. ent:EntIndex(),math.random(5,10),1,function()
if IsValid(ent) then
ent:GetPhysicsObject():EnableMotion(true)
end
end)
end
if GetConVar("imp_cleanup"):GetBool() then
timer.Create("harpoon_remove" .. ent:EntIndex(),math.random(12,28),1,function()
if IsValid(ent) then
ent:Remove()
end
end)
end
undo.Create( "Harpoon" )
undo.AddEntity( ent )
undo.SetPlayer( self.Owner )
undo.SetCustomUndoText( "Undone Harpoon" )
undo.Finish()
return
end
end
end
if SERVER then
self.Owner:EmitSound(Sound("Buttons.snd14"))
end
end
end
function SWEP:SecondaryAttack()
if self:GetNextSecondaryFire() < CurTime() then
if GetConVar("imp_admin"):GetBool() and !self.Owner:IsAdmin() then
self.Weapon:SetNextPrimaryFire(CurTime() + self.Secondary.Delay)
self.Weapon:SetNextSecondaryFire(CurTime() + self.Secondary.Delay)
self.Owner:PrintMessage(HUD_PRINTCENTER,"You must be admin to use that weapon")
if SERVER then
self.Owner:EmitSound(Sound("HL2Player.UseDeny"))
end
return
end
self.Weapon:SetNextPrimaryFire(CurTime() + self.Secondary.Delay)
self.Weapon:SetNextSecondaryFire(CurTime() + self.Secondary.Delay)
self.Weapon:SendWeaponAnim(ACT_VM_PRIMARYATTACK)
self.Owner:SetAnimation( PLAYER_ATTACK1 )
self.Owner:EmitSound(Sound("Weapon_Physgun.Off"))
self.Owner:EmitSound(Sound("ambient/materials/rock3.wav"))
local eyetrace = self.Owner:GetEyeTrace()
if eyetrace != nil and eyetrace.Hit and SERVER then
local targetpos = eyetrace.HitPos
self.shake = ents.Create( "env_shake" )
self.shake:SetPos( targetpos )
self.shake:SetKeyValue( "amplitude", "5" )
self.shake:SetKeyValue( "radius", "700" )
self.shake:SetKeyValue( "duration", "3" )
self.shake:SetKeyValue( "frequency", "5" )
self.shake:SetKeyValue( "spawnflags", "4" )
self.shake:Spawn()
self.shake:Activate()
self.shake:Fire( "kill", 0, 6 )
timer.Create("harpoon_prepare" .. self.Owner:EntIndex(),0.5,1,function()
if IsValid(self) and IsValid(self.Owner) then
timer.Create("harpoon_strike" .. self.Owner:EntIndex(),0.5,10,function()
if IsValid(self) and IsValid(self.Owner) then
local plyang = self.Owner:GetAngles()
plyang.pitch = -90
plyang.roll = plyang.roll
plyang.yaw = plyang.yaw
local DustAngle = plyang
local BigDust = EffectData()
BigDust:SetOrigin(targetpos)
BigDust:SetNormal(DustAngle:Forward())
BigDust:SetScale(400)
util.Effect("ThumperDust",BigDust)
self.shake:Fire( "StartShake", "", 0 )
local attacktab = {}
for k,v in RandomPairs(ents.FindInSphere(targetpos,500)) do
if IsValid(v) and (v:IsNPC() or (v:IsPlayer() and v:Alive() and v != self.Owner)) then
table.insert(attacktab,v)
end
end
if table.Random(attacktab) != nil then
local target = table.Random(attacktab)
local traceline = {}
traceline.start = target:GetPos()
traceline.endpos = traceline.start - Vector(0,0,50)
traceline.filter = function(ent) if !ent:IsWorld() then return false end end
local traceworld = util.TraceLine(traceline)
if traceworld.Hit then
target:EmitSound(Sound("physics/metal/sawblade_stick3.wav"))
target:SetShouldServerRagdoll( true )
local ent = ents.Create("prop_physics")
ent:SetModel("models/props_junk/harpoon002a.mdl")
ent:SetPos(traceworld.HitPos - Vector(0,0,10))
ent:SetAngles(Angle(-90,90,0))
ent.Impaler = true
ent.Owner = self.Owner
ent:Spawn()
ent:Activate()
ent:GetPhysicsObject():EnableMotion(false)
target.Impaled = true
target.ImpaleEnt = ent
target:SetHealth(0)
local dmginfo = DamageInfo()
dmginfo:SetDamage(10)
dmginfo:SetDamageType(DMG_CLUB)
dmginfo:SetAttacker( self.Owner )
dmginfo:SetDamageForce(Vector(0,0,10))
dmginfo:SetInflictor( self )
target:TakeDamageInfo( dmginfo )
local Angle = target:GetAngles()
Angle.pitch = -90
Angle.roll = Angle.roll
Angle.yaw = Angle.yaw
local NAngle = Angle
for i =1,6 do
local effectdata = EffectData()
effectdata:SetOrigin( target:GetPos() )
effectdata:SetNormal(NAngle:Forward())
effectdata:SetMagnitude( 1 )
effectdata:SetScale( 10 )
effectdata:SetColor( 0 )
effectdata:SetFlags( 3 )
util.Effect( "bloodspray", effectdata, true, true )
end
for i=1,30 do
local traceline2 = {}
traceline2.start = target:GetPos() + Vector(0,0,10)
traceline2.endpos = traceline2.start - (Vector((math.random()*2)-1, (math.random()*2)-1, (math.random()*2)-1)*200)
traceline2.filter = {ent,target}
local trw = util.TraceLine(traceline2)
local decpos1 = trw.HitPos + trw.HitNormal
local decpos2 = trw.HitPos - trw.HitNormal
util.Decal("Blood", decpos1, decpos2)
end
timer.Create("harpoon_rise" .. ent:EntIndex(),0.01,16,function()
if IsValid(ent) then
ent:SetPos(ent:GetPos() + Vector(0,0,4))
end
end)
if math.random(1,100) < 30 and !GetConVar("imp_nofall"):GetBool() then
timer.Create("harpoon_fall" .. ent:EntIndex(),math.random(5,10),1,function()
if IsValid(ent) then
ent:GetPhysicsObject():EnableMotion(true)
end
end)
end
if GetConVar("imp_cleanup"):GetBool() then
timer.Create("harpoon_remove" .. ent:EntIndex(),math.random(12,28),1,function()
if IsValid(ent) then
ent:Remove()
end
end)
end
undo.Create( "Harpoon" )
undo.AddEntity( ent )
undo.SetPlayer( self.Owner )
undo.SetCustomUndoText( "Undone Harpoon" )
undo.Finish()
end
end
end
end)
end
end)
end
end
end
hook.Add("CreateEntityRagdoll","CollideRagWithEnt",function(ent,ragdoll)
if IsValid(ent) and IsValid(ragdoll) and ent.Impaled and IsValid(ent.ImpaleEnt) then
ragdoll.cnstweld = constraint.Weld(ent.ImpaleEnt,ragdoll,0,0,0,false)
ragdoll.Impaled = true
ent.ImpaleEnt.IsOccupated = true
end
end)
hook.Add( "OnEntityCreated", "VJRag", function( ent )
timer.Simple(0.02,function()
if IsValid(ent) and ent.IsVJBaseCorpse then
for k,v in pairs(ents.FindInSphere(ent:GetPos(),10)) do
if IsValid(v) and v:GetClass()=="prop_physics" and v.Impaler and !v.IsOccupated then
ent.cnstweld = constraint.Weld(v,ent,0,0,0,false)
ent.Impaled = true
v.IsOccupated = true
end
end
end
end)
end)
local function PlyFixRagImp(ply,inflictor,attacker)
if SERVER and IsValid(inflictor) and inflictor:GetClass()=="impaler_xp" then
if !(ply:GetRagdollEntity()==NULL) and IsValid(ply:GetRagdollEntity()) then
ply:GetRagdollEntity():Remove()
end
end
end
hook.Add("PlayerDeath", "PlyFixRagImp",PlyFixRagImp)
Essaye de rajoutez ça

Code:
function SWEP:DrawWorldModel()
end
function SWEP:DrawWorldModelTranslucent()
end
 
  • J'aime
Réactions: Ryoley
Ryoley

Ryoley

Geek suprême
Messages
239
Score réaction
29
Points
140
DrTortue à dit:
Essaye ça

Code:
function SWEP:DrawWorldModel()
end
function SWEP:DrawWorldModelTranslucent()
end
À la place de ça ? :
Code:
SWEP.ViewModel = ""
SWEP.HoldType = "gmod_hands"
SWEP.WorldModel = ""
 
  • Banni
DrTortue

DrTortue

Geek
Messages
69
Score réaction
16
Points
95
Ryoley à dit:
À la place de ça ? :
Code:
SWEP.ViewModel = ""
SWEP.HoldType = "gmod_hands"
SWEP.WorldModel = ""
Non rajoute
 
Ryoley

Ryoley

Geek suprême
Messages
239
Score réaction
29
Points
140
DrTortue à dit:
D'accord je rajoute ça à la fin du code et je laisse les précedentes modifs ? ^^

Les modifs, c'est à dire :
Code:
SWEP.ViewModel = ""
SWEP.UseHands = true
SWEP.HoldType = "none"
SWEP.WorldModel = ""
 
  • Banni
DrTortue

DrTortue

Geek
Messages
69
Score réaction
16
Points
95
OUep
 
Ryoley

Ryoley

Geek suprême
Messages
239
Score réaction
29
Points
140
Ryoley

Ryoley

Geek suprême
Messages
239
Score réaction
29
Points
140
Malheureusement, le problème est toujours présent :/

Voilà un petit aperçu en jeu de mon "problème de bras tendu".

14463


Le pistolet a bel et bien disparu mais le geste du personnage est toujours présent, c'est ça que je voudrais enlever. Pour que ça donne ça :

14464


Pour résumer, passer de la photo 1 à la photo 2.
 
  • Banni
DrTortue

DrTortue

Geek
Messages
69
Score réaction
16
Points
95
Code:
function SWEP:Deploy() if SERVER and IsValid(self.Owner) then self.Owner:DrawViewModel(false) end return true
end
Rajoute aussi ça sinon je vais dl l'addons et faire des test de mon coté
 
  • J'aime
Réactions: Ryoley
Ryoley

Ryoley

Geek suprême
Messages
239
Score réaction
29
Points
140
DrTortue à dit:
Code:
function SWEP:Deploy() if SERVER and IsValid(self.Owner) then self.Owner:DrawViewModel(false) end return true
end
Rajoute aussi ça sinon je vais dl l'addons et faire des test de mon coté
D'accord, je vais essayer ça et je te tiens au courant. ;)
En tout cas c'est vraiment sympa de prendre du temps pour m'aider. ^^
 
Ryoley

Ryoley

Geek suprême
Messages
239
Score réaction
29
Points
140
Toujours rien malheureusement ^^'
 
Ryoley

Ryoley

Geek suprême
Messages
239
Score réaction
29
Points
140
Mais je ne sais pas si ça est correct :
Code:
SWEP.ViewModel = ""
SWEP.UseHands = true
SWEP.HoldType = "none"
SWEP.WorldModel = ""
 
  • Banni
DrTortue

DrTortue

Geek
Messages
69
Score réaction
16
Points
95
Je test et je t'envoie fini
 
  • Banni
DrTortue

DrTortue

Geek
Messages
69
Score réaction
16
Points
95
@Ryoley Voilà tu remplace tout ce que ta par le pastebin et normalement c'est bon
https://pastebin.com/raw/w0cKWR0Z
 
Dernière édition:
  • J'aime
Réactions: Ryoley
Ryoley

Ryoley

Geek suprême
Messages
239
Score réaction
29
Points
140
DrTortue à dit:
@Ryoley Voilà tu remplace tout ce que ta par le pastebin et normalement c'est bon
https://pastebin.com/raw/w0cKWR0Z
Oh ça marche maintenant ! Je te remercie énormément ! :D
Bonne continuation et bon jeu à toi ! ^^
 
  • Banni
DrTortue

DrTortue

Geek
Messages
69
Score réaction
16
Points
95
Derien ;)
 
Discord d'entraide
Rejoignz-nous sur Discord