Anmelden

Archiv verlassen und diese Seite im Standarddesign anzeigen : Lern Hilfe?



Razerds
04.11.2009, 12:23
Hey leute wie lernt mann am besten Gmod10 scripten o0?

A.I.
04.11.2009, 12:36
1. Schritt:
Lesen
http://www.garrysmod.de/forum/showthread.php?t=4602

Razerds
04.11.2009, 12:44
Das kann ich doch so dumm bin ich nicht ^^

Irgendein weiteren schritt

Pac_187
04.11.2009, 14:41
2. Schritt:
Das gelesene verstehen und praktisch umsetzen können

Razerds
04.11.2009, 15:12
Das hätte ich mir eig auch denken können aber hätte jemand vill noch ne ide was mann so als noob scripten könnte so als kleine aufgabe für mich?

MîngeBag.
04.11.2009, 16:44
Schau dir andere Scripts an und verstehe erstmal den aufbau , die funktionen und vieles mehr...
Dann geb ich dir mal eine Aufgabe , ist sogar sehr leicht mit dem garrysmod.com wiki zu basteln : )

Bau ein JoinSound Script , aber ohne den zu nehmen den ich hier bereits gepostet hab...
Das wäre erstmal eine möglichkeit das du die Grundbasis kennen lernst.


Weitere Tipps gibt es eigentlich nicht wirklich , bei lua heisst es "learning by doing".

Bill Gates
04.11.2009, 16:45
Die Gasflasche aus GMod 9 könntest du ja mal scripten
sobald man auf den Kopf schiesst das die dann rumfliegt

Razerds
04.11.2009, 17:40
Jo danke für eure Tipps :)

RP-01
05.11.2009, 17:29
bei lua heisst es "learning by doing".
Doing ohne leraning geht nicht. ;)

Razerds
05.11.2009, 17:41
Ok ich habe jetzt mal was gemacht aber komme nicht weiter hier mein Script.
Was will ich machen?= Ich will das wenn ich Admin in die Console schreibe und ich admin bin sich das menu aufruft aber ich weis nicht wie ich Cliend side und Server Side miteinander verbinde.


-cl_init datei


DeriveGamemode("sandbox")

function sense()
local window = vgui.Create( "DFrame" );
window:SetSize( 200,70 );
window:Center();
window:SetTitle( "DButton Test" );
window:MakePopup();

local button = vgui.Create( "DButton", window );
button:SetSize( 100, 30 );
button:SetPos( 50, 30 );
button:SetText( "Test Button" );
button.DoClick = function( button )
window:SetTitle( "Hello world!" );
end
end

concommand.Add("mysense", sense)


init datei


include( 'adminplugin.lua' )

/*---------------------------------------------------------
Name: gamemode:PlayerSpawn( )
Desc: Wird benutzt wenn ein Spieler Spawnt
---------------------------------------------------------*/
function GM:PlayerSpawn( pl )

self.BaseClass.PlayerSpawn( self, pl )

// Setzt die Spieler geschwindichkeit
GAMEMODE:SetPlayerSpeed( pl, 250, 250 )
end

/*---------------------------------------------------------
Name: gamemode:PlayerLoadout()
Desc:
---------------------------------------------------------*/
function GM:PlayerLoadout( pl )

// Löscht die alte Munition
pl:RemoveAllAmmo()

if ( server_settings.Bool( "sbox_weapons", true ) ) then

pl:Give( "weapon_crowbar" )

end

local cl_defaultweapon = pl:GetInfo( "cl_defaultweapon" )

if ( pl:HasWeapon( cl_defaultweapon ) ) then
pl:SelectWeapon( cl_defaultweapon )
end


end

/*---------------------------------------------------------
Name: GM:ShowHelp
Desc: Wird gezeigt wenn mann F1 drückt
---------------------------------------------------------*/
function GM:ShowHelp( ply )

ply:ConCommand( "SchoolMe" )

end




adminplugin datei



function checkAdmin(ply)

if ply:IsAdmin() then
ply:ChatPrint("Du hast dich Erfolgreich als Admin eingeloggt")
GAMEMODE:SetPlayerSpeed( ply, 250, 1000 )
else
ply:ChatPrint("Du bist kein Admin!")
end

end
concommand.Add("admin", checkAdmin)

Doppelpost:
Habs geschaft ^^

MîngeBag.
05.11.2009, 20:04
entferne DeriveGamemode("sandbox") bei cl_init , das wird in einer shared.lua bei einen Gamemode gesetzt , ums sinnvoll zu nutzen.



Und ich würde wenn du ein extra Script machst , es ausserhalb des Gamemodes machen.

Erstelle eine lua datei namens myscript.lua in garrysmod/lua/autorun/
und füge folgenden Inhalt ein:





if SERVER then
AddCSLuaFile( "autorun/myscript.lua" )
function checkAdmin(ply)

if ply:IsAdmin() then
ply:ChatPrint("Du hast dich Erfolgreich als Admin eingeloggt")
GAMEMODE:SetPlayerSpeed( ply, 250, 1000 )
umsg.Start("OpenSense", ply)
umsg.End()
else
ply:ChatPrint("Du bist kein Admin!")
end
end
concommand.Add("admin", checkAdmin)
else

function sense()
local window = vgui.Create( "DFrame" );
window:SetSize( 200,70 );
window:Center();
window:SetTitle( "Hello world!" );
window:MakePopup();

local button = vgui.Create( "DButton", window );
button:SetSize( 100, 30 );
button:SetPos( 50, 30 );
button:SetText( "Test Button" );
button.DoClick = function( button )
LocalPlayer():ConCommand("say ich hab den button benutzt")
end
end
usermessage.Hook("OpenSense",sense)
end



Hab extra das Menü als usermessage genommen , damit keiner das mit den Geheimen Consolen befehl öffnen kann.

Razerds
06.11.2009, 13:39
OK das hat mir etwas geholfen noch eine Frage wie ist der befehl um jemanden einen skin zu verpassen z.b



/*--------Admin-Skin----*/
function admins(ply, cmd, args)
if ply:IsAdmin() then
ply:GetSkin( 2 ) //<----------- HIER IST DER FEHLER
else
ply:ChatPrint("Du bist kein Admin")
end
end
concommand.Add( "adminskin", admins)

Pac_187
06.11.2009, 14:32
Tjoa also da hättest aber auch selber drauf kommen können....

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

Also: ply:SetSkin( 2 )

Mit "Get" fragst du lediglich ab, was er für einen Skin momentan hat ;)

Razerds
07.11.2009, 02:49
ohh ^^ ja jetzt nur noch das problem wo her soll ich wissen welche id welcher skin ist?