► 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 = "ai" ENT.Base = "base_ai" ENT.Author = "David" ENT.Contact = "_David_#3780" ENT.PrintName = "Un NPC" ENT.Category = "Tutoriels Modding-Source" ENT.Purpose = "Jouez avec ce NPC." ENT.Instructions = "Faite ce que vous voulez avec ce NPC." ENT.Spawnable = true ENT.AdminOnly = true --ENT.RenderGroup = RENDERGROUP_BOTH ENT.AutomaticFrameAdvance = true function ENT:SetupDataTables() --self:NetworkVar("Entity", 0, "owning_ent") end function ENT:SetAutomaticFrameAdvance(bUsingAnim) self.AutomaticFrameAdvance = bUsingAnim 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/gman_high.mdl") self:SetHullType(HULL_HUMAN) self:SetHullSizeNormal() self:SetNPCState(NPC_STATE_SCRIPT) self:SetSolid(SOLID_BBOX) self:SetUseType(SIMPLE_USE) self:SetBloodColor(BLOOD_COLOR_RED) self:CapabilitiesAdd(CAP_ANIMATEDFACE, CAP_TURN_HEAD) self:SetMaxYawSpeed(90) self:DropToFloor() end function ENT:SpawnFunction(ply, tr, class) if not tr.Hit then return end local ang = ply:EyeAngles() ang.p = 0 ang.y = ang.y + 180 local ent = ents.Create(class) ent:SetPos(tr.HitPos + tr.HitNormal * 16) ent:SetAngles(ang) ent:Spawn() ent:Activate() return ent end function ENT:AcceptInput(name, activator, caller) if name == "Use" and caller:IsPlayer() then -- // TODO : Action 'E' sur le npc end 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é 😉