Garry's Mod

Garry's Mod

Not enough ratings
Cómo hacer un arma/SWEP
By Oitnemood
Esta guía le mostrará cómo hacer su propio SWEP
(es una versión traducida y mejorada de la guía en ingles de Mr Pops Alot créditos a el)
https://gtm.steamproxy.vip/sharedfiles/filedetails/?id=853834235
   
Award
Favorite
Favorited
Unfavorite
Materiales
Un editor de archivos .txt que puede editar archivos .lua
Recomiendo Notepad + + ya que es básicamente una herramienta de codificación
el enlace de descarga está aquí[notepad-plus-plus.org]

Un programa de modelado 3D como Blender[www.blender.org](Si estás haciendo tus propios modelos)
como debe ser la carpeta donde se ubicara el archivo del arma
en la carpeta llamada "lua" debe haber una llamada "weapons"
La codificación
Como puede ser la primera vez que haces un SWEP o incluso que codificas, empezaremos con una pistola sencilla

Primero, ve a la unidad donde instalaste el juego (la mía es C:) > Archivos de programa(x86) > Steam > steamapps > common > GarrysMod > garrysmod > addons
y haz una carpeta allí
Puedes ponerle el nombre que quieras siempre que no tenga espacios
En la carpeta, haz una nueva carpeta llamada lua, y dentro de esa carpeta lua, añade una nueva carpeta llamada weapons, ahora dentro de esa carpeta weapons, haz un documento de texto y cambia la extensión del archivo a .lua y renómbralo

Abra el archivo lua, y escriba esto
"//" "--" si quieres dejar texto explicativo y que no lo lea como comandos el juego y salga un error.

SWEP.PrintName = //"nombre del arma" -- El nombre del arma SWEP.Author = //"su nombre" SWEP.Contact = //"su dirección de correo electrónico"--Opcional SWEP.Purpose = //"añada su propósito aquí" SWEP.Instructions = //"añada las instrucciones aquí". SWEP.Category = //"nombre de la categoría" --Esto es necesario o de lo contrario su arma será colocada en "Otros"

Esto nos dará el nombre, el autor (usted), el propósito, las instrucciones, y en qué categoría estará

A continuación, escriba esto

SWEP.Spawnable= true //Debe ser true para aparecer SWEP.AdminOnly = false //solo lo puede usar el admin

Estas dos líneas se encargarán de gestionar si podemos desovar esto y si esta arma es sólo para administradores

Entonces escribe (borra lo que no quieras que este definido en el arma"

SWEP.Base = "arma_base" local ShootSound = Sonido("Arma_Pistola.Simple") SWEP.Primary.Damage = 5 --La cantidad de daño que hará el arma SWEP.Primary.TakeAmmo = 1 -- La cantidad de munición que se tomará por disparo SWEP.Primary.ClipSize = 18 -- Cuántas balas hay en el cargador SWEP.Primary.Ammo = "Pistol" --El tipo de munición que utilizará SWEP.Primary.DefaultClip = 18 -- La cantidad de balas precargadas cuando se genera SWEP.Primary.Spread = 0.1 -- La dispersión cuando se dispara SWEP.Primary.NumberofShots = 1 -- Número de balas al disparar SWEP.Primary.Automatic = false -- Es automático SWEP.Primary.Recoil = .2 -- La cantidad de retroceso SWEP.Primary.Delay = 0.1 -- Retraso antes del siguiente disparo SWEP.Primary.Force = 100

Luego añades el sonido, para ello creas una carpeta sound y creas una carpeta llamada weapon junto con otra con el nombre que quieras y ahi le pones el sonido

local HitSound = Sound( "weapons/weapon_st/fire.wav" )

function SWEP:Initialize()
util.PrecacheSound( "weapons/weapon_st/fire.wav" )

Estas son las propiedades del ataque

Ahora el ataque secundario,
Debes añadir esto a tu arma, aunque no vayamos a añadir un ataque secundario

SWEP.Secondary.ClipSize = -1 SWEP.Secondary.DefaultClip = -1 SWEP.Secondary.Automatic = false SWEP.Secondary.Ammo = "none"

Ahora añade esto

SWEP.Slot = 2 SWEP.SlotPos = 1 SWEP.DrawCrosshair = true --Dibuja la retícula SWEP.DrawAmmo = true SWEP.Weight = 5 --Prioridad cuando el arma que tienes en ese momento cae SWEP.AutoSwitchTo = false SWEP.AutoSwitchFrom = false Slot es la barra caliente del arma en la que se colocará SlotPos es el lugar dentro de la barra caliente Y esto SWEP.ViewModelFlip = false SWEP.ViewModelFOV = 60 SWEP.ViewModel = "models/weapons/c_pistol.mdl" //modelo en primera persona SWEP.WorldModel = "models/weapons/w_pistol.mdl" //modelo en tercera persona SWEP.UseHands = true // ¿manos visibles? SWEP.HoldType = "Pistol" //animación de arma en tercera persona SWEP.FiresUnderwater = false //puede disparar bajo el agua? SWEP.ReloadSound = "sound/epicreload.wav" //sonido al recargar SWEP.CSMuzzleFlashes = true //efecto de flash //Código de inicialización function SWEP:Initialize() util.PrecacheSound(ShootSound) util.PrecacheSound(self.ReloadSound) self:SetWeaponHoldType( self.HoldType ) end //El ataque primario function SWEP:PrimaryAttack() if ( !self:CanPrimaryAttack() ) then return end localbullet = {} bullet.Num = self.Primary.NumberofShots bullet.Src = self.Owner:GetShootPos() bullet.Dir = self.Owner:GetAimVector() bullet.Spread = Vector( self.Primary.Spread * 0.1 , self.Primary.Spread * 0.1, 0) bullet.Tracer = 1 bullet.Force = self.Primary.Force bullet.Damage = self.Primary.Damage bullet.AmmoType = self.Primary.Ammo local rnda = self.Primary.Recoil * -1 local rndb = self.Primary.Recoil * math.random(-1, 1) self:ShootEffects() self.Owner:FireBullets( bullet ) self:EmitSound(ShootSound) self.Owner:ViewPunch( Angle( rnda,rndb,rnda ) ) self:TakePrimaryAmmo(self.Primary.TakeAmmo) self:SetNextPrimaryFire( CurTime() + self.Primary.Delay ) end //Ataque secundario function SWEP:SecondaryAttack() end //Recargar function SWEP:Reload() self:EmitSound(Sound(self.ReloadSound)) self.Weapon:DefaultReload( ACT_VM_RELOAD ); end
carpetas y definir comando del arma
(para el código)
lua -> weapons -> weapon_nombre.lua (el nombre que quieras, pero debe tener antes del nombre despues de "weapon_ para que lo lea el juego bien y puedas aparecerla en un mapa o el juego de manera correcta
6 Comments
Oitnemood  [author] 28 Jul, 2024 @ 6:42am 
@xjorgelol20 estq no es la guía para modelos 3d, hay otra, ahorita ando ocupado con otra cosa
Xjorgelol20 28 Jul, 2024 @ 5:14am 
¿Cómo se hace un modelo .mdl? Estoy con blender y no me aclaro como exportarlo
Arg_Zord 20 Feb, 2022 @ 6:44pm 
"a laburar"
-mister increible perturbado
Oitnemood  [author] 4 Jun, 2021 @ 3:28pm 
@Sword Dog perdon si esto lo actualice tarde, pero ya esta, ahi veras, solo exporta el sonido a formato wav o usa uno ya incluido en el juego
Oitnemood  [author] 15 May, 2021 @ 3:29pm 
@Sword Dog estate atento a las actualisaciones, que ahorita etoy con otra cosa
Totally Not Silver 9 May, 2021 @ 3:57pm 
Ya cree mi primer swep!A hora solo falta subirlo a la workshop!