Entité Props Basique

Ce tutoriel va vous apprendre à créer une entité en props basique.

► Préparation de votre entité

1. Vous devez réfléchir afin de choisir un nom pour votre entité qu'il soit unique à votre projet et à ce qu'il représente.
    Pour l'exemple de ce tutoriel on va appeler notre entité "ent_tutoriel".

2. Vous devez maintenant créer le dossier de votre entité avec ce nom à cet endroit : "lua/entities/ent_tutoriel".

3. Vous devez créer 3 fichiers dans ce dossier de votre entité : "shared.lua, init.lua, cl_init.lua".

► Les scripts des 3 fichiers de votre entité

1. Vous devez mettre ce script dans le fichier shared.lua :

ENT.Type         = "anim"
ENT.Base         = "base_gmodentity"

ENT.Author       = "David"
ENT.Contact      = "_David_#3780"
ENT.PrintName    = "Un Cube"
ENT.Category     = "Tutoriels Modding-Source"
ENT.Purpose      = "Jouez avec ce cube."
ENT.Instructions = "Faite ce que vous voulez avec ce cube."

ENT.Spawnable    = true
ENT.AdminOnly    = true

--ENT.RenderGroup  = RENDERGROUP_BOTH

function ENT:SetupDataTables()
	--self:NetworkVar("Entity", 0, "owning_ent")
end

2. Vous devez mettre ce script dans le fichier init.lua :

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_VPHYSICS)
	self:SetUseType(SIMPLE_USE)
	self:DropToFloor()

	local phys = self:GetPhysicsObject()
	if phys:IsValid() then
		phys:Wake()
	end
end

function ENT:SpawnFunction(ply, tr, class)
	if not tr.Hit then return end
	
	local spawnAng = ply:EyeAngles()
	spawnAng.p = 0
	spawnAng.y = spawnAng.y + 180

	local ent = ents.Create(class)
	ent:SetPos(tr.HitPos + tr.HitNormal * 16)
	ent:SetAngles(spawnAng)
	ent:Spawn()
	ent:Activate()

	return ent
end

3. Vous devez mettre ce script dans le fichier cl_init.lua :

include("shared.lua")

function ENT:Draw()
	self:DrawModel()
end

function ENT:DrawTranslucent()
	self:Draw()
end

► Utiliser votre entité en jeu

1. Il vous reste plus qu'a bien enregistrer vos 3 fichiers et démarrer/redémarrer votre serveur de jeu.

2. Le serveur de jeu est bien démarré; vous pouvez maintenant lancer votre jeu et de vous y connecter.

3. Une fois connecté dans votre serveur de jeu, vous pouvez ouvrir le panneau des props (+menu).

4. Dirigez-vous dans l'onglet Entities puis dans votre catégorie, pour ce tutoriel ça sera "Tutoriels Modding-Source".

5. Enfin vous pourrez lui cliquer dessus pour le spawn en jeu et à vous les joies de votre nouvelle entité 😉