Garry's Mod

Garry's Mod

44 个评价
Como hacer SNPCs (DrGBase)
由 Joelías_N1 制作
Bienvenidos a estas guías que estare haciendo sobre como hacer SNPCs, ya que, si no llego hacer muchas cosas con esto de Trevor Henderson, pueden hacer sus propias criaturas por su cuenta xd
   
奖励
收藏
已收藏
取消收藏
Parte 1: Creando a un NPC simple
1. Necesitamos el archivo .lua y caracteristicas NPC
En nuestro caso usaremos DrGBase para hacer nuestro primer nextbot
https://github.com/Dragoteryx/drgbase/wiki/Nextbot-template-file
esa sera su plantilla nextbot, puede copiar y pegar todo eso en un bloc de notas.

RECUERDA: EL ARCHIVO DEBE SER .lua y debe ser algo así como "drg_anxious_dog" o "npc_the_guardian" no lo escriban por separado
tambien el archivo debe estar ubicado en C:\Program Files (x86)\Steam\steamapps\common\GarrysMod\garrysmod\lua\entities\

-- Misc --
ENT.PrintName = "Anxious Dog" -- El nombre del personaje
ENT.Category = "Trevor Henderson" -- En que categoría estara en el spawnmenu
ENT.Models = {"models/trevor_henderson/anxious_dog.mdl"} -- El o Los modelos que tendra el personaje
ENT.Skins = {0} -- Si nuestro personaje usa skins, podemos agregar sus variantes aqui
ENT.ModelScale = 1 -- Que tan grande es el modelo, algunos de mis modelos suelen tener errores al importarse, por eso suelo usar esta variable xd
ENT.CollisionBounds = Vector(10, 20, 72) -- Las colisiones del NPC 10 = X, 20 = Y, 72 = Z
ENT.BloodColor = BLOOD_COLOR_RED -- Color de la sangre, aun no le veo algo util, pero te recomiendo poner el color de sangre que tiene tu personaje
ENT.RagdollOnDeath = true -- El personaje puede morir con ragdoll?

-- Stats --
ENT.SpawnHealth = 3500 -- Vida del personaje
ENT.HealthRegen = 0 -- Si quieres puedes hacer que el personaje pueda regenerar su vida
ENT.MinPhysDamage = 10 -- Cuanto va ser el daño que pueda recibir por la fisica
ENT.MinFallDamage = 10 -- Cuanto daño puede sufrir por caida


2. Modelos y animaciones
Necesitamos un modelo, prueba con algo simple, quizas algo que ya exista.
Si quiere usar algun modelo que ya tiene en gmod, solo debe hacer click derecho sobre eso, y luego copiarlo al portapapeles.
Cuando pegue el date vera que es algo así como "models/..." significa que lo hizo bien, puede elegir las animaciones que quiera, si es un player model, entonces las animaciones de "CAMINAR" y "CORRER" serían "ACT_WALK" y "ACT_RUN" esto no siempre es así con todas las animaciones, pero las más comunes suelen ser esas.

Sí quiere hacer un modelo por su cuenta, debe saber que esta no es su guía xd, basicamente es como hacer un playermodel, puede buscar guías sobre eso aqui, o en youtube.
O si simplemente quiere modelar una criatura nueva, debera buscar tutoriales de como modelar en Blender(recomendado)

-- Animations --
ENT.WalkAnimation = ACT_WALK
ENT.WalkAnimRate = 1
ENT.RunAnimation = ACT_RUN
ENT.RunAnimRate = 1
ENT.IdleAnimation = ACT_IDLE
ENT.IdleAnimRate = 1
ENT.JumpAnimation = ACT_JUMP
ENT.JumpAnimRate = 1

-- Movements --
ENT.UseWalkframes = false
ENT.WalkSpeed = 100
ENT.RunSpeed = 200

3. El ataque
El ataque es lo más importante del personaje, para hacer esto deberemos tener una funcion que sea así

RECUERDEN: Las funciones de un personaje comienzan así "function ENT:ComerCadaver()" y si quieres usarla en otra funcion debes llamarla así "self:ComerCadaver()"

function ENT:AttackFunction()
self:Attack({
damage = 75,
viewpunch = Angle(40, 0, 0),
type = DMG_CRUSH,range=100,angle=135,
}, function(self, hit)
end)
end

ahora vamos a crear la funcion de "OnMeleeAttack" que sera de esta manera

function ENT:OnMeleeAttack(enemy)
self:AttackFunction()
self:PlaySequenceAndMove("seq_baton_swing")
end

como pueden ver, a diferencia de la funcion anterior, esta funcion tiene entre parentesis "enemy" que quiere decir que al usar la funcion atacara al enemigo. Dentro de la funcion llamaremos a dos funciones "self:AttackFunction()" que es la funcion del ataque, y tambien "self:PlaySequenceAndMove("seq_baton_swing")" esta funcion se encargara de reproducir la animacion de ataque, quiere decir que si cambiamos "seq_baton_swing" por "attack_01" entonces reproducira la animacion con ese nombre

Ultimo. Si no entendiste muy bien lo que debes hacer, puedes escribir tus dudas en los comentarios, no soy el mejor haciendo tutoriales, pero intentare responder todo lo que pueda

Puedes descargar un NPC base, ya que, si no te sale crearlo puedes descargar el npc base aqui
https : / / mega . nz /file/yGwxxK5I#Lf6EnTrjlDD3Fqz29vmTLRj0CyCkYQFZCNsLSImPMtY

este es el modelo: https://psteamcommunity.yuanyoumao.com/sharedfiles/filedetails/?id=1096799708
31 条留言
damonlycan13 5 月 29 日 上午 8:28 
goob job
Don Quixote/Sancho 2024 年 9 月 21 日 上午 10:53 
mejora la guia :steamthis: :steamsalty:
omniversal devourer the dud 2024 年 7 月 6 日 上午 11:11 
joel spanish
hkbcdid07 2024 年 6 月 22 日 上午 1:00 
Me too!
Public Enemy #1 2023 年 5 月 31 日 下午 7:03 
sorry but i did not understand your spanish language
Joelías_N1  [作者] 2023 年 5 月 3 日 下午 5:45 
@jojos.51

function ENT:OnSpawn()
self:PlaySequenceAndMove("animacion")
end

en animacion le deberias poner el nombre de la animacion que quieras, pero algo así deberia ser
ModdedProp_SNERD 2023 年 4 月 22 日 上午 10:31 
Como agrego que cuando spawnee el npc repoduzca una animacion personalizada?
Crazy-Spider 2023 年 4 月 1 日 下午 4:04 
y como agrego sonidos como de rugido o de ataque?
hkbcdid07 2022 年 10 月 22 日 下午 11:32 
he makes more Trevor Henderson
SPIKEWALL-CH4N 2022 年 6 月 7 日 下午 3:04 
Para cuando el tutorial de Youtube?