Anmelden

Archiv verlassen und diese Seite im Standarddesign anzeigen : ConVars auslesen



Stoned
27.06.2008, 18:17
hi, schon wieder ein thread von mir aber was solls D:

wie kann ich die convar auslesen



CreateClientConVar("rollertextconvar","-=]Roller[=-",FCVAR_ARCHIVE)

local rollertext = vgui.Create("DTextEntry")
rollertext:SetParent(tab2)
rollertext:SetPos(16,32)
rollertext:SetTall(20)
rollertext:SetWide(200)
rollertext:SetConVar("rollertextconvar")
rollertext:SetTooltip("The Roller will be shown as the text.")
rollertext:SetEnterAllowed(true)
rollertext.OnEnter = function()
AddBotNotify("The Roller is now shown as '..rollertext:GetValue()..' !\n" )
end

draw.SimpleText(..rollertext,"BudgetLabel", vec.x, vec.y, Color(255,0,255,255), 1, 1)



bei ..rollertext faile ich :(

Scarecrow
27.06.2008, 18:28
Du machst das so:

local convar = CreateClientConVar("rollertextconvar","-=]Roller[=-",FCVAR_ARCHIVE)

Auslesen: local lol = convar:GetString()

Steht doch alles in der englischen Wiki...

PS: Was heisst bitte FCVAR_ARCHIVE? Da müssen doch eigentlich zwei Bool-Argumente sein.

Pac_187
27.06.2008, 18:43
Ich glaube er hat da da son copy 'n paste vom "Animated Name" Script...

Stoned
27.06.2008, 18:49
ähm ne^ :P animated name hab ich nur in der autostart.cfg lol nix mit lua :/

Scarecrow
27.06.2008, 18:52
ähm ne^ :P animated name hab ich nur in der autostart.cfg lol nix mit lua :/

Hast recht, den Rest hast du bestimmt irgendwo erbettelt ;)

Jetzt mal im Ernst: Du solltest nicht versuchen, das Rad neu zu erfinden, wenn du vorhast es zu veröffentlichen.

Stoned
27.06.2008, 18:54
ich habe weder vor den code zu veroeffentlichen noch sonst irgendwas^ ich wollte bloss wissen wie ich ne convar auslesen kann...

und danke, es geht :]

Stoned
28.06.2008, 22:18
function test.Panel()
CreateClientConVar("testconvar","false",true,false)

local testbutton = vgui.Create("DButton")
testbutton:SetParent(tab1)
if (testconvar == true) then
testbutton:SetText("Turn Test Off")

else
testbutton:SetText("Turn Test On")
end
testbutton:SetSize(112,22)
testbutton:SetPos(16,80)
testbutton.DoClick = function()
if (testconvar == true) then
testconvar = false
testbutton:SetText("Turn Test On")
AddBotNotify("Test turned Off !",NOTIFY_HINT,6)
else
testconvar = true
testbutton:SetText("Turn Test Off")
AddBotNotify("Test turned On !",NOTIFY_HINT,6)
end
end
end



wenn ich einen server joine ist der button default (true) was nicht sein sollte wenn ich ihn vor dem leaven auf false gestellt habe :/ was ist da falsch?

Lucid
29.06.2008, 06:32
wenn ich einen server joine ist der button default (true) was nicht sein sollte wenn ich ihn vor dem leaven auf false gestellt habe :/ was ist da falsch?

Warum packst du CreateClientConVar mit in die Funktion?
CreateClientConVar muss man nur einmal innerhalb der luadatei ausführen ;)

SMILIE
29.06.2008, 09:29
Auch wenn das CreateClientConvar außerhalb der Funktion ist ist es nach dem du neu geladen hast immer auf false, weil es jedes mal mit false erstellt wird.

Stoned
29.06.2008, 11:18
:/ eig sollte das doch bleiben wie es war oder? bei der ersten convar fuer den text funktioniert is ja aber hier nicht :/

BennyG
29.06.2008, 11:47
Warum sollte die bleiben?

Jedes mal wenn du das Panel erstellst,erstellst du die ConVar erneut und setzt sie auf false!

CreateClientConVar("testconvar","false",true,false)

Stoned
29.06.2008, 12:54
naja, bei dem text, bleibt der text den ich veraenderte :/ auch nach reload des panles/ nach serverjoin, immer der text den ich zuvor eingetippt hatte

CreateClientConVar("rollertextconvar","-=]Test[=-",true,false)

wenn ich zB den text ingame auf -=]Test123[=- veraendere bleibt der immer, und wird nicht zurueckgesetzt.

Scarecrow
30.06.2008, 19:37
Ja kein Wunder, wenn der Panel immer wieder neulädt und du die Funktion da rein gesetzt hast.

Außerdem hat das der Benny doch schon gesagt. :roll:

Stoned
01.07.2008, 10:26
jo, aber das problem besteht ja darin, dass er true bzw false nicht so wie das obere speichert :/ das is immer irgendwie

Pac_187
01.07.2008, 10:43
Arrrg du verstehst es einfach nicht :mad:


Jedesmal wenn du das Panel öffnest wird es komplett neu geladen!

Das heißt Neuzustand!

Stoned
01.07.2008, 10:58
ich werde von dem dings ganz wirr ey :/ das eine geht das andre nicht, das name wird neu geladen aber es bleibt wie es vor den neu laden/serverchange war ! das true / false stellt sich zurueck...

kann nicht jemand ein beispiel machen mit einer variable die gespeichert bleibt?

bzw das solle doch die convar machen oder?

Pac_187
01.07.2008, 13:28
Wie wäre es wenn du das ganze Script selber bastelst von Grund
auf neu und nicht "copy 'n paste" von anderen Scripts machst ;)

So weist du dann wenigstens wie es funktioniert!

Stoned
01.07.2008, 14:37
is ist nur derma, und das hab ich selber gemacht,
bis auf die texteingabe mit convar, die funktioniert auch,
dann hab ich das selbe mit true/false selber gemacht und es geht nicht :/

das ist mein problem

Scarecrow
01.07.2008, 22:38
Also erst einmal solltest du an deinem logischen Verständnis für solche Dinge arbeiten. Geh doch mal das Script ganz in Ruhe durch und sag laut gesprochen, was da passiert und was da passieren soll. Wenn du Fehler hast, analysierst du sie auch ganz langsam und logisch. Wenn dir das nicht auffällt, fragst du hier nach. Wenn du das nicht verstehst, was wir dir sagen wollen, dann solltest du auch das ganz ruhig angehen.

Dein Script macht ja nur das, was du da geschrieben hast. Womöglich liegt es ja daran, dass du es garnicht selbst geschrieben hast :]

Außerdem haben wir dein Problem gelößt und die Lösung hat BennyG sowiso schon geschrieben.

Stoned
02.07.2008, 12:06
Womöglich liegt es ja daran, dass du es garnicht selbst geschrieben hast :]


Nein !

aber ich habs anders geloest thx.

hab auch den fehler lol ->

CreateClientConVar("test","true",true,false)

if (test == true) then
usw
end


mann kann ned einfach ne cvar mit true abfragen /:

Scarecrow
03.07.2008, 23:23
Stoned: Siehe 2ter Post, da habe ich dir gezeigt, wie das geht ;)