最近、私は Garry's Mod 用の模造 HarbourRP ゲームモードを作成しており、Smuggler NPC を再現しようとしています (HarborRP をプレイしたことがある人なら、私が何を意味するかわかるでしょう) 基本的には、NPC に 1 つの Derma- を開いてもらいたいのです。プレーヤーが使用キーを押したときのフレーム ウィンドウ。私はNPCを作成しましたが、プレイヤーがNPCで使用キーを押すだけで、100万個のウィンドウがポップアップし、NPC /エンティティの使用タイプがSIMPLE_USEに設定されていますが、それは問題ではないようです非常に多くのウィンドウがポップアップするためです。VGUI/ダーマ フレームの設定は MakePopup() に設定されていますが、それも問題ではありません。私は LUA についてほとんど知識がありません。
init.lua ファイル:
include("shared.lua")
AddCSLuaFile("cl_init.lua")
AddCSLuaFile("shared.lua")
util.AddNetworkString("smug")
hook.Add("PlayerUse", "menuu", function(ply, ent)
net.Start("smug")
net.Send(ply)
end)
function ENT:Initialize()
self:SetModel('models/humans/group01/female_01.mdl')
self:SetHullType(HULL_HUMAN)
self:SetHullSizeNormal()
self:SetNPCState(NPC_STATE_SCRIPT)
self:SetSolid(SOLID_BBOX)
self:SetUseType(SIMPLE_USE)
self:DropToFloor()
end
cl_init.lua ファイル:
include("shared.lua")
function ENT:Draw()
self.Entity:DrawModel()
end
net.Receive("smug", function()
if( !frame ) then
local frame = vgui.Create("DFrame")
frame:SetSize(900,600)
frame:SetPos(ScrW()/2-450,ScrH()/2-300)
frame:SetVisible(true)
frame:MakePopup()
frame:SetDeleteOnClose(true)
elseif (frame) then print("HI")
end
end)
shared.lua ファイル:
ENT.Base = "base_ai"
ENT.Type = "ai"
ENT.PrintName = "[DEV] Smuggler NPC"
ENT.Category = "InVaLiD's HBRP Entities"
ENT.Author = "InVaLiD"
ENT.Spawnable = true
ENT.AdminSpawnable = true
ENT.AutomaticFrameAdvance = true
注意事項
- これらのファイルはすべて addons/smug_npc/lua/entities/ フォルダーにあります。
- はい、物事に変な名前が付いていることは知っています。それは私だけです。
- 私はluaの基本的な知識を持っていないので、説明してください:)
- あなたの助けと人々を助けたいというあなたの意志に本当に感謝しています。生産的なことに時間を費やしているにもかかわらず、他の人々の問題を解決するためにここに来てくれてありがとう.