PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : SWep: Spy Model Change SWep



cybersau
14.06.2009, 09:46
Hi erstmal.
Ich möchte für meinen RP Server gerne eine swep coden.
Mann sollte sich damit wie in TF2 der Spy in jemand anderen verwandeln.
Aber nur für bestimmte Zeit.
Wie soll ich das machen?

Danke schon mal im voraus.

Scarecrow
14.06.2009, 14:32
Nur mal so: Ich dachte DU willst sie coden und nicht wir ;)

Dann musst du dir die Überlegung auch selbst machen ;)

cybersau
14.06.2009, 19:21
wollte doch nur fragen
bin ein neuling bei coden und bracuhe numal hilfe

Pij
14.06.2009, 19:45
Vermutlich nimmst du irgendeinen Befehl, der das Playermodell verändert und verlinkst das mit einem Timer.
Da ich kA von LUA habe, kann ich dir die konkreten Befehle nicht sagen.
Ist vermutlich sowas wie ply:setModel

cybersau
14.06.2009, 20:28
hab bereit die lua commands auf dem gmod wiki durchgeklappert
hab nichts gefunden bis auf das:
manager.TranslatePlayerModel
könnte es das sein?

Scarecrow
14.06.2009, 21:32
Da die Klasse Player von Entity vererbt wurde, sind auch alle Funktionen von Entity anwendbar. Also:

Entity:SetModel (http://wiki.garrysmod.com/?title=Entity.SetModel)

Es ist hilfreich innerhalb der Listen auf das Objekt zu klicken.

Pij
14.06.2009, 21:35
Hey, ich war ja richtig nah dran, ich sollte LUA lernen :gmod:

cybersau
14.06.2009, 21:51
würde das so passen?


//General Variables\\
SWEP.AdminSpawnable = true
SWEP.ViewModelFOV = 64
SWEP.ViewModel = "models/weapons/v_pistol.mdl"
SWEP.WorldModel = "models/weapons/w_pistol.mdl"
SWEP.AutoSwitchTo = false
SWEP.Slot = 4
SWEP.HoldType = "Pistol"
SWEP.PrintName = "saf"
SWEP.Author = "sfdsd"
SWEP.Spawnable = true
SWEP.AutoSwitchFrom = false
SWEP.FiresUnderwater = false
SWEP.Weight = 5
SWEP.DrawCrosshair = true
SWEP.Category = "fsdfsd"
SWEP.SlotPos = 0
SWEP.DrawAmmo = true
SWEP.ReloadSound = "Weapon_Pistol.Reload"
SWEP.Instructions = "dfsdf"
SWEP.Contact = "sdfsd"
SWEP.Purpose = "dfsdf"
SWEP.base = "weapon_base"
//General Variables\\

//Primary Fire Variables\\
SWEP.Primary.Sound = "Weapon_Pistol.Single"
SWEP.Primary.Damage = 10
SWEP.Primary.TakeAmmo = 1
SWEP.Primary.ClipSize = 16
SWEP.Primary.Ammo = "Pistol"
SWEP.Primary.DefaultClip = 32
SWEP.Primary.Spread = 0.1
SWEP.Primary.NumberofShots = 1
SWEP.Primary.Automatic = false
SWEP.Primary.Recoil = 1
SWEP.Primary.Delay = 0.2
SWEP.Primary.Force = 10
//Primary Fire Variables\\

//Secondary Fire Variables\\
SWEP.Secondary.NumberofShots = 1
SWEP.Secondary.Force = 10
SWEP.Secondary.Spread = 0.1
SWEP.Secondary.Sound = "Weapon_Pistol.Single"
SWEP.Secondary.DefaultClip = 32
SWEP.Secondary.Automatic = false
SWEP.Secondary.Ammo = "Pistol"
SWEP.Secondary.Recoil = 1
SWEP.Secondary.Delay = 0.2
SWEP.Secondary.TakeAmmo = 1
SWEP.Secondary.ClipSize = 16
SWEP.Secondary.Damage = 10
//Secondary Fire Variables\\

//SWEP:Initialize()\\
function SWEP:Initialize()
util.PrecacheSound(self.Primary.Sound)
util.PrecacheSound(self.Secondary.Sound)
if ( SERVER ) then
self:SetWeaponHoldType( self.HoldType )
end
end
//SWEP:Initialize()\\

//SWEP:PrimaryFire()\\
function SWEP:PrimaryAttack()
if ( !self:CanPrimaryAttack() ) then return end
local Player:SetModel("models/player/group03/male_06.mdl"

end
//SWEP:PrimaryFire()\\

//SWEP:SecondaryFire()\\
function SWEP:SecondaryFire()
return false
end

Pij
14.06.2009, 21:52
Wie wärs, wenn du es einfach mal abspeicherst und im Spiel ausprobierst ;)

cybersau
14.06.2009, 22:02
hab oben den completten code drinnen
es hat nicht gefunkt.
Bitte helft mir und bessert den code aus

Scarecrow
14.06.2009, 22:09
1. LocalPlayer schreibt man zusammen!
2. LocalPlayer funktioniert nur ClientSide (woher sollte man sonst wissen was der lokale Spieler ist, wenns aufm Server wäre?)!
3. Da fehlt ne Klammer am Ende der Zeile

monky2k6
14.06.2009, 23:52
Wichtig: Wenn man das Model eines Players mit "SetModel" ändert funktionieren die Animationen nicht mehr. (Zumindest bei mir oder ich hab es einfach mit den falschen Models probiert. Aber bei mir haben die dann nur noch die Arme ausgestreckt.)

cybersau
15.06.2009, 17:33
ich schaffs nicht kanns jemand für mich coden?
pls

cybersau
21.06.2009, 17:46
pls help me
arbeite jetzt schon 3 tage dran :evil:

TheStargater
21.06.2009, 18:28
pls help me
arbeite jetzt schon 3 tage dran :evil:

Du kannst nicht von dir selbst erwarten das du Lua in 1 oder 2 Tagen kannst. Ich hab immerhin für das lernen von C++ ein halbes Jahr gebraucht und selbst da ist es nicht so gut gelaufen, ich musste auch immer wiedr Kommandos nachschauen.

WeltEnSTurm
21.06.2009, 18:43
if SERVER then
SWEP.Weight = 8
SWEP.AutoSwitchTo = false
SWEP.AutoSwitchFrom = false
end

if CLIENT then
SWEP.PrintName = "wat"
SWEP.Slot = 0
SWEP.SlotPos = 4
SWEP.DrawAmmo = false
SWEP.DrawCrosshair = true
end

SWEP.Author = ""
SWEP.Contact = ""
SWEP.Purpose = ""
SWEP.Instructions = "Left Click to designate targets. Right click to select laser receiver."

SWEP.Spawnable = true;
SWEP.AdminSpawnable = true;

SWEP.viewModel = "models/weapons/v_pistol.mdl";
SWEP.worldModel = "models/weapons/w_pistol.mdl";

SWEP.Primary.ClipSize = -1
SWEP.Primary.DefaultClip = -1
SWEP.Primary.Automatic = false
SWEP.Primary.Ammo = "none"

SWEP.Secondary.ClipSize = -1
SWEP.Secondary.DefaultClip = -1
SWEP.Secondary.Automatic = false
SWEP.Secondary.Ammo = "none"


function SWEP:PrimaryAttack()
local trace = self.Owner:GetEyeTrace()
if trace.Hit then
if trace.Entity:IsPlayer() then
self.OldModel = self.Owner:GetModel()
self.Owner:SetModel(trace.Entity:GetModel())
timer.Simple(40, function() --nach 40 sekunden verwandelt man sich wieder zurück
if self.Weapon and self.Owner and self.Owner.OldModel then
self.Owner:SetModel(self.Owner.OldModel)
self.Owner.OldModel = nil
end
end)
end
end

Sollt funktioniern, bin zu faul es zu testen. :gmod:

cybersau
22.06.2009, 17:50
FETTES THX!
werde es sofort testen.