Archiv verlassen und diese Seite im Standarddesign anzeigen : Den NPCs befehle erteilen
pirateKing
02.05.2010, 02:39
Hallo,
ich werkle gerade an einem neuen Gamemod, und da bäuchte ich eine waffe welche den npcs den Befehl gibt, wo sie hinlaufen sollen oder sie angreifen sollen (eins von beidem).
Gibt es irgendeine Möglichkeit NPCs befehle zu geben? Ich kenn aus dem Hammer-Editor den ai_goal_assult villeicht könnte man den einfach spawnen wie jedes andere entity auch, doch dann wüsste ich nicht wie man dem die Eigenschaften geben kann die er hierfür braucht.
Wie würdet ihr da rangehen? Könntet ihr mir einen Tipp oder ein Stichwort oder soetwas geben?
Danke schonmal im Vorraus.
Maihopawango
02.05.2010, 10:56
Es gibt sogar schon ein Tool , womit du Wegpunkte setzten kannst und dann laufen die NPC´s sie ab. :D
pirateKing
02.05.2010, 13:59
Vielen dank!
Deses tool heisst Npc Control.
Ich habe es mir angeschaut und es jetzt so gemacht:
function SWEP:PrimaryAttack()
self.Owner:ConCommand("npc_go")
end
function SWEP:SecondaryAttack()
self.Owner:ConCommand("npc_select")
end
Das Problem ist nur das das dann immer nur mit einem npc funktioniert.
Gibt es eine Möglichkeit alle npcs zu markieren? So mit einer Schleife oder so?
npctable = ents.FindByClass("npc_*")
for k,v in pairs(npctable) do
v: [selectieren oder so]
end
Doppelpost:
Ich habe nun auch ausprobiert:
function SWEP:PrimaryAttack()
-- self.Owner:ConCommand("npc_go")
ziel = self.Owner:GetShootPos()
npctable = ents.FindByClass("npc_*")
for k,v in pairs(npctable) do
v:NavSetGoal(ziel)
end
end
aber das gibt den Fehler
weapons/laufzu/shared.lua:76: attempt to call method 'NavSetGoal' (a nil value)
zurück....
Kann mir den keiner helfen?
pirateKing
03.05.2010, 18:36
Juhu! ich habs.
Zwar wurde mir nicht richtig weitergeholfen, aber drotzdem will ich eich die Lösung nicht vorenthalten.
function SWEP:PrimaryAttack()
npctable = ents.FindByClass("npc_*")
for k,v in pairs(npctable) do
if v:IsNPC()
then
v:SetLastPosition(util.QuickTrace( self.Owner:GetShootPos(), self.Owner:GetAimVector()*1000 ).HitPos + Vector( 0, 0, 40 ))
v:SetSchedule( SCHED_FORCED_GO )
end
end
end
Es bringt zwar einen Fehler, doch funktionieren tut es drotzdem.
Wenn ihr den Fehler findet dann sagt mir bitte bescheid.
Powered by vBulletin® Version 4.2.2 Copyright ©2025 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.