Anmelden

Archiv verlassen und diese Seite im Standarddesign anzeigen : Lua script zum spawnen von Entities



Tingle
27.06.2009, 11:13
Hallo, ich würde gerne objecte auf einer bestimmten karte spawnen, aber irgentwie klappt das bei mir nicht, zur zeit hab ich das hier:

dragolball.lua (Hab ich in "garrysmod\lua\autorun\server" reingetan)

local function SDB()

dbone=ents.Create("prop_physics")
dbone:SetModel("models/dav0r/hoverball.mdl")
dbone:SetColor(255, 215, 0, 255)
dbone:SetMaterial("models/effects/splode_sheet")
dbone:SetName("Dragonball")
dbone:SetMass(50)
dbone:SetPos(Vector(-105.937,-1761.687,-11060.562)) // GPS Koords von ein WireGPS ingame auf der karte,
dbone:Spawn()
dbone:Activate()
dbone:PhysWake()

end

Ich seh es ingame nicht, bzw aufn server.

Das zweite problem wäre das die objekte von jeden angefasst werden müssen, den wie ihr erkennen könnt sollen das dragonballs darstellen und für jeden nehmbar sein müssen. Sie sollten halt den besitzer wechseln wenn es angefasst wird.

Kann mir wer weiter helfen? Ich kenn mich mit den ganzen LUA kram nicht aus. Danke-

TheStargater
27.06.2009, 11:21
Du hast vergessen die Map anzugeben auf welcher der Ball erscheinen soll.

Pac_187
27.06.2009, 11:22
@Stargater:

Das ist völlig egal...

@Topic:

Hab gerade keine Zeit, aber wenn, dann werde ich hier wohl mal bissle helfen.

Tingle
27.06.2009, 11:24
Danke Pac, pm mir dein steim id oder name dann füge ich dich mal auf fliste zu.

BennyG
27.06.2009, 11:33
dragolball.lua (Hab ich in "garrysmod\lua\autorun\server" reingetan)

local function SDB()

dbone=ents.Create("prop_physics")
dbone:SetModel("models/dav0r/hoverball.mdl")
dbone:SetColor(255, 215, 0, 255)
dbone:SetMaterial("models/effects/splode_sheet")
dbone:SetName("Dragonball")
dbone:SetMass(50)
dbone:SetPos(Vector(-105.937,-1761.687,-11060.562)) // GPS Koords von ein WireGPS ingame auf der karte,
dbone:Spawn()
dbone:Activate()
dbone:PhysWake()

end

Zeig mal den part, wo die Funktion aufgerufen wird, wenn dieser gar nicht existiert, ist da dein Problem

Tingle
27.06.2009, 11:41
mmm ich hab das durch die lua wiki zusammen geschneidert... ich weiß in c++ muss man functionen aufrufen, habe gedacht das muss ich nicht machen in lua? ich habe zb ein weapon stripper gemacht, der schaut so aus:

function StripAndGive(ply)
ply:StripWeapons()
ply:Give("weapon_physcannon")
ply:Give("weapon_physgun")
ply:Give("gmod_camera")
ply:Give("gmod_tool")
return true
end
hook.Add("PlayerLoadout", "StripAndGive", StripAndGive)
und wird automatisch aufgerufen ohne das ich die function irgentwo erwähnen muss, wieso funtz das bei mir jetz nicht?
Doppelpost:

so schaut das ganze jetz aus:

ok hab am ende meines scripts
hook.Add( "PlayerDeath", "SDB", SDB )

hinzugefügt aber wenn ich !slay meinname eingebe erscheint er auch nicht...

so schaut das ganze jetz aus

local function SDB(dbone)
dbone=ents.Create("prop_physics")
dbone:SetModel("models/dav0r/hoverball.mdl")
dbone:SetColor(255, 215, 0, 255)
dbone:SetMaterial("models/effects/splode_sheet")
dbone:SetName("Dragonball")
dbone:SetMass(50)
dbone:SetPos(Vector(-105.937,-1761.687,-11060.562))
dbone:Spawn()
dbone:Activate()
dbone:PhysWake()
return true
end
hook.Add( "PlayerDeath", "SDB", SDB )

BennyG
27.06.2009, 12:51
mmm ich hab das durch die lua wiki zusammen geschneidert... ich weiß in c++ muss man functionen aufrufen, habe gedacht das muss ich nicht machen in lua? ich habe zb ein weapon stripper gemacht, der schaut so aus:

function StripAndGive(ply)
ply:StripWeapons()
ply:Give("weapon_physcannon")
ply:Give("weapon_physgun")
ply:Give("gmod_camera")
ply:Give("gmod_tool")
return true
end
hook.Add("PlayerLoadout", "StripAndGive", StripAndGive)
und wird automatisch aufgerufen ohne das ich die function irgentwo erwähnen muss, wieso funtz das bei mir jetz nicht?

Also,erstmal zum Verständnis, natürlich wird in deinem ersten Code die Funktion aufgerufen, und zwar durch den Hook, was nichts anderes ist als halt ein "Haken", der die Funktion im dritten Argument aufruft.

Und schau mal in der Konsole nach Fehlern(Nicht nur Lua fehler) nach, und bring dich mal mit "kill" in der Console uhm, nicht über nen Admin Mod.