.... ich sagte ja das es evtl fehler beinhaltet
Beiträge von roschti
-
-
ich weiß zwar nicht warum du das vom server zum client und dann wieder zum server machst aber ich würde das inetwa so machen:
Client:
Codefunction onClientPlayerWeaponFireFunc(weapon, ammo, ammoInClip, hitX, hitY, hitZ, hitElement ) if weapon == 34 and getElementType(hitElement)=="vehicle" then triggerServerEvent("onVehicleHitBySniper",hitElement,getLocalPlayer()) end end addEventHandler ( "onClientPlayerWeaponFire", getLocalPlayer(), onClientPlayerWeaponFireFunc )
Server:
CodeaddEvent("onVehicleHitBySniper",true) addEventHandler("onVehicleHitBySniper",getRootElement(), function (player) outputChatBox(getPlayerName(player) .. " trifft ein Auto mit einer Sniper") destroyElement(source) end
Ich weiß net obs so 100% funktioniert weil ich es jetzt mal so ausm Kopf gemacht hab, sollte aber von der Grundstruktur funktionieren
-
erster Fehler ist:
Richtig:CodeaddEventHandler( "onClientResourceStart", getResourceRootElement(getThisResource ()), createThings)
außerdem muss diese zeile UNTER die dazugehörige Funktion sonst funzt es auch net O:
(hat wohl i-wie was mit der reihenfolge zu tuen ... (zuerst Funktion 'erstellen' dann zum Event attachen))BTW: Verwende bitte den [ code ] BBCode .... und markiere die betroffenen Zeilen i-wie, das machts leichter
-
Blubb ... hier mal ein vid vom GM 'San Andreas Commander' an dem ich im mom arbeite(Is noch sehr Alpha-mäsig da ich im mom noch an der Grundstruktur arbeite O:)
-
Das Problem ist eher das, dass der Loop mit *ID[i] ~= nil* das nil schon ausschließt aber im Loop danach *gesucht* wird O:
-
am besten würde ich sagen beim bind gleich nen neuen eventHandler auf onClientRender setzen und da checken ob IsChatBoxInputActive == false ist und wenn ja dann den eventHandler wieder *löschen* und die variable auf false setzen fertig
-
Es gäbe vl einen noch einen anderen Weg:
- setPedControlState(player,"chatbox",true)
- variable Setzen
- wenn der Spieler den Text "sendet" dann *umleiten* auf den 2. Teamchat
hab keine Ahnung ob das so funktioniert könnte es mir aber gut vorstellen
-
ich weiß es nicht, weil sogar guiGetVisible( SpawnWindow) "false" als return-Wert hat!
Whuha, Fixed -.- war mal wieder son typischer Mikrofehler
to
der Fehler war also minimal und hat bei jeder neuen Resource das ganze GUI wieder erstellt so kam & ging der Fehler
-
Code
Alles anzeigenfunction OnResourceStart() SpawnWindow = guiCreateWindow(0.2598,0.2461,0.4746,0.5,"Window1",true) guiWindowSetMovable(SpawnWindow,false) guiWindowSetSizable(SpawnWindow,false) SpawnButton = guiCreateButton(0.5844,0.862,0.323,0.1146,"Spawn",true,SpawnWindow) ClassRadioTeam1 = guiCreateRadioButton(0.0926,0.1406,0.1049,0.0469,"Team1",true,SpawnWindow) guiRadioButtonSetSelected(ClassRadioTeam1,true) ClassRadioTeam2 = guiCreateRadioButton(0.2881,0.1432,0.144,0.0443,"Team2",true,SpawnWindow) ClassInfo = guiCreateMemo(0.0185,0.5417,0.4671,0.4349,"",true,SpawnWindow) guiMemoSetReadOnly(ClassInfo,true) ClassList = guiCreateGridList(0.0185,0.2161,0.3272,0.3047,true,SpawnWindow) guiGridListSetSelectionMode(ClassList,0) column = guiGridListAddColumn(ClassList,"Class",0.9) row1 = guiGridListAddRow(ClassList) row2 = guiGridListAddRow(ClassList) row3 = guiGridListAddRow(ClassList) row4 = guiGridListAddRow(ClassList) guiGridListSetItemText(ClassList,row1,column,"Class1",false,false) guiGridListSetItemText(ClassList,row2,column,"Class2",false,false) guiGridListSetItemText(ClassList,row3,column,"Class3",false,false) guiGridListSetItemText(ClassList,row4,column,"Class4",false,false) guiGridListSetSelectedItem(ClassList,0,1) SpawnImage = guiCreateStaticImage(0.5658,0.1354,0.3498,0.6875,"res/Team1.png",true,SpawnWindow) guiSetVisible( SpawnWindow, true ) showCursor ( true ) --Set all To defaulte! SetTeam(1) -- kein prob SetClass(1) --kein prob addEventHandler( "onClientGUIClick" , ClassList , OnClassChange, false) addEventHandler( "onClientGUIClick" , ClassRadioTeam2 , OnSpawnTeamChange, false) addEventHandler( "onClientGUIClick" , ClassRadioTeam1 , OnSpawnTeamChange, false) addEventHandler( "onClientGUIClick" , SpawnButton , OnSpawnClick, false) ServerStats = GetStatsElement() end addEventHandler( "onClientResourceStart", getRootElement(),OnResourceStart)
Das Prob besteht seidem ich teile des Codes gelöscht hab, die aber eig nix mit dem gui zutuen haben, kurz nach dem 1.0.4 Update
Leider kann ich im mom net schauen obs mit 1.0.3 funzt -
Ich hab ein kleines Prob, ich kann ein Window nichtmehr "verstecken" O:
CodeguiSetVisible( SpawnWindow, false ) outputChatBox("is visible: " .. tostring(guiGetVisible(SpawnWindow))) outputChatBox("vor clientside spawnplayer") callServerfunction("spawnPlayer",getLocalPlayer(),0.0,0.0,0.0) outputChatBox("nach clientside spawnplayer") setCameraTarget( getLocalPlayer() ) fadeCamera( true ) showCursor( false )
output:
Zitatis visible: false
vor clientside spawnplayer
nach clientside spawnplayeraber Das Fenster wird weiter angezeigt O:
Das Problem besteht seit nem 0.1.4 Update -.-
-
*hust* dann bring ich mich auch ma in diese schöne kleine Diskusion ein
zu 1:
Sagen wirs mal so, es gibt kommerzielle Methoden die ein "Anticheat" benutzt
-> PunkBuster: Memoryhashes
-> VAC: DLL Injection
-> uvm....zu 2:
Alle Anticheatsysteme sind potenziell gefährdet .....
Oder warum gibts wohl hacks die das Anticheat umgehen!?Und außerdem KEIN ANTICHEAT is perfekt, es wird immer ne Lücke geben, man muss sie nur finden xD
PS: wenn ihr ma bissl die s0beit source durchstöber seht ihr *Oh Wunder* auch Teile der MTA Source .....
UND SAC war auch kein Hindernis für s0beit, und da s0beit "open source" is und es einen Bypass für MTA hätte, würden auch die meisten anderen Hacks son bissl "abschauen" lol