Also binde ich Serverseitig die Taste, damit der Server weiß von welchem Client das Event ausgelöst wird?
Die Variable für den Spieler ist welche? Source?
Beiträge von Chobo
-
-
Was bringt das anbinden ?
Und an welche Variable wird es gebunden? Also was muss in die Klammer ?Ich verstehe nicht ganz was mir das bringt und wie ich das in mein Script umsetzen muss.
MfG
-
Ich zeige mal kurz die zwei Scripts.
Clientseitig:
Lua: client.lua
Alles anzeigenfunction gate( client ) triggerServerEvent("gate", localPlayer) end bindKey ( "E", "down", gate ) function joingut( ) outputChatBox("Du bist der Polizei beigetreten", 135, 206, 235 ) triggerServerEvent ( "joingut", getLocalPlayer( ) ) end function joinb( ) outputChatBox("Du bist den Terroristen beigetreten",255, 048, 048 ) triggerServerEvent ( "joinb", getLocalPlayer( ) ) end function leaveTeam( ) local playerteam = getPlayerTeam( localPlayer ) outputChatBox( "Du hast das Team ".. playerteam .." verlassen!", 255, 0, 0 ) triggerServerEvent ( "leaveTeam", getLocalPlayer( ) ) end addEventHandler( "onClientGUIClick", GUIEditor.button[1], joingut, false ) addEventHandler( "onClientGUIClick", GUIEditor.button[2], joinb, false ) addEventHandler( "onClientGUIClick", GUIEditor.button[3], leaveTeam, false )
Serverseitig:
Lua: server.lua
Alles anzeigenfunction gatemove( source ) outputChatBox("Gate offen") team = getPlayerTeam (source) if team == "teamGut" then if state1 == 0 then moveObject( gate1, 969, 1545.4, -1639.8, 12.4, 0, 0, 0 ) state1 = 1 else moveObject(gate1, 969, 1545.4, -1630.8, 12.4, 0, 0, 0 ) state = 0 end elseif team == "teamSchlecht" then if state2 == 0 then moveObject( gate2, 969, 2719.8999, -2518.3, 12.5, 0, 0, 0 ) moveObject( gate3, 969, 2719.9004, -2419.7998, 12.5, 0, 0, 0 ) state2 = 1 else moveObject( gate2, 969, 2719.8999, -2508.3, 12.5, 0, 0, 0 ) moveObject( gate3, 969, 2719.9004, -2409.7998, 12.5, 0, 0, 0 ) state2 = 0 end end end addEvent( "gate", true ) addEventHandler( "gate", getRootElement( ), gatemove ) function joingut ( ) -- Polizei setPlayerTeam ( source, teamGut ) end addEvent ("joingut", true) addEventHandler( "joingut", getRootElement( ), joingut ) function joinbad ( source ) -- Terror setPlayerTeam ( source, teamSchlecht ) end addEvent ( "joinb", true ) addEventHandler( "joinb", getRootElement( ), joinbad ) function leavetheTeam ( source ) -- leave team setPlayerTeam ( source, nil ) end addEvent ( "leaveTeam", true ) addEventHandler( "leaveTeam", getRootElement( ), leavetheTeam )
Ist der Aufbau so erstmal richtig?
Also, dass ich alles richtig Client- bzw. Serverseitig mache ?Nachtrag:
@Bonus
Also ich habe versucht die Klammern zu vervollständigen. ("E", "down", source)
Mir ist dann die Farbe aufgefallen von dem Artikel, deswegen denke ich das zählt nur wenn ich die Funktion clientseitig auslöse.
Richtig?
Wenn ja, wie ist es serverseitig aufgebaut?
Wenn ich falsch liege.
Was habe ich dann falsch gemacht ? Die ersten zwei Variablen habe ich als String angegeben und source, damit der player erkannt wird. -
@Zuck3rFr3i
Ich versuche nun Clientseitig abzufragen.Lua: client.luafunction test( localPlayer )local team = getPlayerTeam ( localPlayer )outputChatBox("" ..team.. "")endbindKey ( "R", "down", test )
Error:
http://prntscr.com/d4tvax@Bonus
Bis auf 'bindkey" habe ich eigentlich alles serverseitig. Ich versuche halt nur die Vorschläge von den anderen Usern mal auszuprobieren.Was muss sonst in die Klammern? Ich glaube ja, dass es daran liegt. Aber source z.B. klappte auch nicht.
-
Aktuller Stand:
Fehlermedlung
Own\server.lua:61: Bad argument @ 'getPlayerTeam' [Expected player at argument 1, got nil]Ich habe es jetzt so, dass ich per triggerServerEvent das ganze Serverseitig triggere.
Spoiler anzeigen
Lua: server.lua
Alles anzeigen--Gate function gate( client ) local team = getPlayerTeam ( client) if team == teamGut then if (Status1 == "closed") then moveObject(gate1, 969, 1545.4, -1639.8, 12.4, 0, 0, 0) Status1 = "open" elseif (Status1 == "open") then moveObject(gate1, 969, 1545.4, -1630.8, 12.4, 0, 0, 0) Status1 = "closed" end elseif team == teamSchlecht then if (Status2 == "closed") then moveObject(gate2, 969, 2719.8999, -2518.3, 12.5, 0, 0, 0) moveObject(gate3, 969, 2719.9004, -2419.7998, 12.5, 0, 0, 0) Status2 = "open" elseif (Status2 == "open") then moveObject(gate2, 969, 2719.8999, -2508.3, 12.5, 0, 0, 0) moveObject(gate3, 969, 2719.9004, -2409.7998, 12.5, 0, 0, 0) Status2 = "closed" end end end
Nachtrag:
Das mit den Gates klappt alles, wie gesagt, mache ich es Serverseitig und mit einem CommandHandler klappt alles. -
Danke für die Hilfe.
Ich habe die Zeile jetzt verbessert.
Ich habe nuneine ähnliche Fehldermeldung wie oben.Own\client.lua:57: Bad argument @ 'getPlayerTeam' [Expected player at argument 1, got e]
"Got e" liegt ja wahrscheinlich in Verbindung mit dem Bindkey
teamGut und teamSchlecht werden beim Server Start erstellt. Das klappt ja alles.
Wenn ich es mit einem Command anstatt Bindkey mache und das dann Serverseitig klappt ja auch alles.MfG
-
Guten Tag,
ich versuche per bindKey ein Gate zu öffnen.
Ich hatte es vorher per Befehl und es hat alles geklappt. Nun möchte ich es zu bindKey ändern und komme nicht weiter.Ich denke, dass mein Problem darin liegt, dass ich mit "getPlayerTeam()", den Spieler nicht finde.
Ich fange neu an und komme noch nicht zurecht mit den vordefinierten Variablen, ich habe die Vermutung, dass es daran liegen könnte.Fehler
Own\client.lua:57: Bad argument @ 'getPlayerTeam' [Expected player at argument 1, got nil]
Der Fehlercode belegt in meinen Augen das was ich vermute. Das Script erwartet den Spieler, aber bekommt nichts.
Script
Lua: client.lua
Alles anzeigenfunction gate( ) local team = getPlayerTeam ( thePlayer ) if team == teamGut then if (Status1 == "closed") then moveObject(gate1, 969, 1545.4, -1639.8, 12.4, 0, 0, 0) Status1 = "open" elseif (Status1 == "open") then moveObject(gate1, 969, 1545.4, -1630.8, 12.4, 0, 0, 0) Status1 = "closed" end elseif team == teamSchlecht then if (Status2 == "closed") then moveObject(gate2, 969, 2719.8999, -2518.3, 12.5, 0, 0, 0) moveObject(gate3, 969, 2719.9004, -2419.7998, 12.5, 0, 0, 0) Status2 = "open" elseif (Status2 == "open") then moveObject(gate2, 969, 2719.8999, -2508.3, 12.5, 0, 0, 0) moveObject(gate3, 969, 2719.9004, -2409.7998, 12.5, 0, 0, 0) Status2 = "closed" end end end bindKey ( "E", "down", gate )
Könnt ihr mir helfen?
MfG