Sorry Leute, mein Freund hat ein andere Datei hochgeladen und hat es mir vergessen Bescheidzusagen. Fehler ist gelöst. Danke trozdem
Beiträge von Krextouch
-
-
Hey,
ich wollte mit ein paar Freunden mal wieder MTA spielen und hatten halt noch ein Script im Hintergrund.
Beim Spielen ist uns aufgefallen dass der Polizeicomputer nicht mehr erscheint. Hab dann den Debugmodus aktiviert und diesen Fehler rausbekommen (unten im BIld zu sehen)Ich hoffe ihr könnt mir helfen
Mit freundlichen Grüßen
Krex
Hier ist der Polizeicomputer_click.lua code
Lua: polizeicomputer_click.lua
Alles anzeigen------------------------- ------- (c) 2010 -------- ------- by Zipper ------- -- and Vio MTA:RL Crew -- ------------------------- function ShowPoliceComputerGui_func() guiSetVisible(gWindow["policepc"], true) guiGridListClear ( gGrid["plist"] ) for id, playeritem in ipairs(getElementsByType("player")) do if getElementData ( playeritem, "loggedin" ) == 1 then local row = guiGridListAddRow ( gGrid["plist"] ) guiGridListSetItemText ( gGrid["plist"], row, gGrid["players"], getPlayerName ( playeritem ), false, false ) if tostring(getElementData ( playeritem, "wanteds" )) == "false" then wanteds = "0" else wanteds = tostring(getElementData ( playeritem, "wanteds" )) end guiGridListSetItemText ( gGrid["plist"], row, gGrid["playerwanteds"], wanteds, false, false ) end end end addEvent ( "ShowPoliceComputerGui", true) addEventHandler ( "ShowPoliceComputerGui", getRootElement(), ShowPoliceComputerGui_func) function SubmitWLoeschenBtn(button) if button == "left" then local etplayer, column = guiGridListGetSelectedItem(gGrid["plist"]) triggerServerEvent ( "clear", getLocalPlayer(), getLocalPlayer(), "", guiGridListGetItemText ( gGrid["plist"], etplayer, column ) ) setTimer ( ShowPoliceComputerGui_func, 500, 1 ) end end function SubmitWGebenBtn(button) if button == "left" then local etplayer, column = guiGridListGetSelectedItem(gGrid["plist"]) triggerServerEvent ( "suspect", getLocalPlayer(), getLocalPlayer(),"", guiGridListGetItemText ( gGrid["plist"], etplayer, column ), guiGetText ( gEdit["reason"] ), "", "", "" ) setTimer ( ShowPoliceComputerGui_func, 500, 1 ) end end function SubmitSTVOGebenBtn(button) if button == "left" then local etplayer, column = guiGridListGetSelectedItem(gGrid["plist"]) triggerServerEvent ( "stvopunkte", getLocalPlayer(), getLocalPlayer(),"", guiGridListGetItemText ( gGrid["plist"], etplayer, column ), guiGetText ( gEdit["reason"] ), "", "", "" ) end end function SubmitOrtenBtn(button) if button == "left" then local etplayer, column = guiGridListGetSelectedItem(gGrid["plist"]) local player = getLocalPlayer() local target = guiGridListGetItemText ( gGrid["plist"], etplayer, column ) local target = getPlayerFromName ( target ) if tonumber(getElementData ( player, "rang" )) >= 2 then if getElementData ( target, "handystate" ) == "off" then outputChatBox ( "Das Handy des Buergers ist ausgeschaltet!", 125, 0, 0 ) else local x, y, z = getElementPosition ( target ) if tonumber ( getElementInterior ( target ) ) ~= 0 or tonumber ( getElementDimension ( target ) ) ~= 0 then outputChatBox ( "Der Buerger befindet sich in einem Gebaeude - Ortung nicht moeglich!", 125, 0, 0 ) else if wantedBlip then destroyElement ( wantedBlip ) wantedBlip = nil if deletetWantedBlipTimer then killTimer ( deletetWantedBlipTimer ) end wantedBlip = createBlip ( x, y, z, 0, 2, 255, 0, 0, 255, 0, 99999.0, player ) deletetWantedBlipTimer = setTimer ( deletetWantedBlip, 5000, 1 ) else destroyElement ( wantedBlip ) wantedBlip = createBlip ( x, y, z, 0, 2, 255, 0, 0, 255, 0, 99999.0, player ) deletetWantedBlipTimer = setTimer ( deletetWantedBlip, 5000, 1 ) end end end else outputChatBox ( "Du bist nicht befugt!", 125, 0, 0 ) end end end function deletetWantedBlip () destroyElement ( wantedBlip ) wantedBlip = nil end function SubmitLogoutBtn(button) if button == "left" then guiSetVisible(gWindow["policepc"],false) showCursor(false) triggerServerEvent ( "cancel_gui_server", getLocalPlayer() ) end end --[[function SubmitWEinsehenBtn(button) if button == "left" then outputChatBox("Gesuchte Buerger:", 255, 255, 0 ) wantedPlayerCount = 0 for id, playeritem in ipairs(getElementsByType("player")) do if tonumber(getElementData ( playeritem, "wanteds")) >= 1 then outputChatBox("Buerger: "..getPlayerName( playeritem )..", Wanteds: "..tonumber(getElementData ( playeritem, "wanteds")), 125, 0, 0 ) wantedPlayerCount = 1 end end if wantedPlayerCount == 0 then outputChatBox("Momentan wird kein Buerger gesucht!", 0, 0, 125 ) end end end]] function _createPDComputerMenue () gWindow["policepc"] = guiCreateWindow(screenwidth/2-175,screenheight/2-225,350,450,"Polizeicomputer",false) guiSetAlpha(gWindow["policepc"],1) guiWindowSetMovable(gWindow["policepc"],false) guiWindowSetSizable(gWindow["policepc"],false) gButtons["wloeschen"] = guiCreateButton(0.0716,0.0944,0.3696,0.1326,"Wanteds loeschen",true,gWindow["policepc"]) guiSetAlpha(gButtons["wloeschen"],1) gButtons["wgeben"] = guiCreateButton(0.0716,0.2449,0.3696,0.1326,"Wanteds geben",true,gWindow["policepc"]) guiSetAlpha(gButtons["wgeben"],1) gButtons["stvogeben"] = guiCreateButton(0.0716,0.3954,0.3696,0.1326,"STVO-Punkte geben",true,gWindow["policepc"]) guiSetAlpha(gButtons["stvogeben"],1) gButtons["orten"] = guiCreateButton(0.0716,0.5461,0.3696,0.1326,"Orten",true,gWindow["policepc"]) guiSetAlpha(gButtons["orten"],1) --[[gButtons["weinsehen"] = guiCreateButton(0.0716,0.7011,0.3696,0.1326,"Wanteds Einsehen",true,gWindow["policepc"]) -- Done guiSetAlpha(gButtons["weinsehen"],1)]] gButtons["ausloggen"] = guiCreateButton(0.6533,0.8674,0.2951,0.0899,"Ausloggen",true,gWindow["policepc"]) -- Done guiSetAlpha(gButtons["ausloggen"],1) gGrid["plist"] = guiCreateGridList(0.4756,0.0944,0.8,0.7416,true,gWindow["policepc"]) guiSetAlpha(gGrid["plist"],1) guiGridListSetSelectionMode(gGrid["plist"],1) gGrid["players"] = guiGridListAddColumn(gGrid["plist"],"Buerger",0.55) gGrid["playerwanteds"] = guiGridListAddColumn(gGrid["plist"],"Wanteds",0.25) gLabel["reason"] = guiCreateLabel(0.0946,0.8899,0.106,0.0494,"Grund:",true,gWindow["policepc"]) guiSetAlpha(gLabel["reason"],1) guiLabelSetColor(gLabel["reason"], 255, 255, 0 ) guiLabelSetVerticalAlign(gLabel["reason"],"top") guiLabelSetHorizontalAlign(gLabel["reason"],"left",false) gEdit["reason"] = guiCreateEdit(0.2264,0.8764,0.3868,0.0719,"",true,gWindow["policepc"]) guiSetAlpha(gEdit["reason"],1) addEventHandler("onClientGUIClick", gButtons["wloeschen"], SubmitWLoeschenBtn, false) addEventHandler("onClientGUIClick", gButtons["wgeben"], SubmitWGebenBtn, false) addEventHandler("onClientGUIClick", gButtons["stvogeben"], SubmitSTVOGebenBtn, false) addEventHandler("onClientGUIClick", gButtons["orten"], SubmitOrtenBtn, false) --addEventHandler("onClientGUIClick", gButtons["weinsehen"], SubmitWEinsehenBtn, false) addEventHandler("onClientGUIClick", gButtons["ausloggen"], SubmitLogoutBtn, false) guiSetVisible ( gWindow["policepc"], false ) end addEventHandler("onClientResourceStart", getResourceRootElement(getThisResource()), function () _createPDComputerMenue() end )
-
Trozdem vielen Dank für die Hilfe
-
Hier ist ein Bild von der Datenbank und vom Ingame. Diesmal zeigt er eine Fehlermeldung an mit: ERROR:reloaded2\clicksys\playerclick\beschlag_click.lua:77: attempt to compare number with nil
-
Also im der debug fenster kann man beim öffnen des Script Fenster nicht sehen weil es das überlappt. Hab im clientscript jetzt nachgeschaut und es stellte sich folgendes raus:
[2016-04-02 16:45:02] WARNING: reloaded2\clicksys\playerclick\beschlag_click.lua:82: Bad argument @ 'addEvent' [Expected bool at argument 2, got root] -
Hier ist die Serverdatei mit "beschlag_gui_open"
Lua: beschlag_server.lua
Alles anzeigen-- Tor zu local verwahrgate = createObject ( 980, -1909.8000488281, -860.40002441406, 33.799999237061, 0, 0, 269.91528320313 ) local verwahrgatestatus = 1 -- Ped erstellen adac_beamter = createPed ( 71, -1911.646484375, -854.6025390625, 32.171875 ) setElementData ( adac_beamter, "adac_beamter", true ) setPedRotation ( adac_beamter, 180 ) addEventHandler( "onPedWasted", getRootElement(), function ( killer ) if source == adac_beamter then destroyElement ( adac_beamter ) adac_beamter = createPed ( 71, -1911.646484375, -854.6025390625, 32.171875 ) setElementData ( adac_beamter, "adac_beamter", true ) setPedRotation ( adac_beamter, 180 ) end end ) function beschlag_gui( theButton, theState, player ) if theButton == "left" and theState == "down" then if getElementType( source ) == "ped" then if getElementData(source, "adac_beamter") == true then if source == adac_beamter then if not getElementData ( player, "ElementClicked" ) then for carslotnr = 1, tonumber(vioGetElementData ( player, "maxcars" )) do pname = getPlayerName ( player ) veh = _G[getPrivVehString ( pname, carslotnr )] triggerClientEvent ( player, "beschlag_gui_open", getRootElement(), veh ) end end end end end end end addEventHandler( "onElementClicked", getRootElement(), beschlag_gui) function beschlag_freikaufen ( player, veh, slot ) local pname = getPlayerName ( player) local vehid = getVehicleModelFromName ( veh ) local veh = _G[getPrivVehString ( pname, slot )] local beschlagID = vioGetElementData ( veh, "Beschlagnahmt" ) local owner = vioGetElementData ( veh, "owner" ) if pname == owner then if tonumber ( beschlagID ) == 1 then if tonumber(vioGetElementData ( player, "money" ) ) >= tonumber( 200 ) then local vx, vy, vz = getElementPosition ( veh ) outputChatBox ( "Druecke F11 um deine Karte zu oeffnen, dort kannst du", player, 0, 125, 0 ) outputChatBox ( "anhand eines roten Vierecks erkennen wo sich dein", player, 0, 125, 0 ) outputChatBox ( "Fahrzeug gerade befindet.", player, 0, 125, 0 ) _G["BeschlagMarker"..pname] = createMarker ( vx, vy, vz+2.5, "arrow", 1.5, 0, 0, 255, 255, player ) _G["BeschlagBlip"..pname] = createBlipAttachedTo ( _G["BeschlagMarker"..pname], 0, 2, 255, 0, 0, 255, 0, 0, player ) vioSetElementData ( veh, "Freikaufen", true ) verwahrgatestatus = 0 moveObject ( verwahrgate, 3000, -1909.8000488281, -870.40002441406, 33.799999237061 ) else outputChatBox ( "Du hast nicht genuegend Geld", player, 125, 0, 0 ) end elseif tonumber ( beschlagID ) == 2 then if tonumber(vioGetElementData ( player, "money" ) ) >= tonumber( 200 ) then local vx, vy, vz = getElementPosition ( veh ) _G["BeschlagMarker"..pname] = createMarker ( vx, vy, vz+2.5, "arrow", 1.5, 0, 0, 255, 255, player ) _G["BeschlagBlip"..pname] = createBlipAttachedTo ( _G["BeschlagMarker"..pname], 0, 2, 255, 0, 0, 255, 0, 0, player ) vioSetElementData ( veh, "Freikaufen", true ) verwahrgatestatus = 0 moveObject ( verwahrgate, 3000, -1909.8000488281, -870.40002441406, 33.799999237061 ) else outputChatBox ( "Du hast nicht genuegend Geld", player, 125, 0, 0 ) end elseif tonumber ( beschlagID ) == 0 then outputChatBox ( "Dieses Fahrzeug ist nicht beschlagnahmt", player, 255, 0, 0 ) end else outputChatBox ( "Es wurde kein Fahrzeug ausgewählt.", player, 255, 0, 0 ) end end addEvent ( "beschlag_freikaufen", true ) addEventHandler ( "beschlag_freikaufen", getRootElement(), beschlag_freikaufen ) function beschlag_einsteigen ( player ) local freikauf = vioGetElementData ( source, "Freikaufen" ) local pname = getPlayerName ( player ) local owner = vioGetElementData ( source, "owner" ) if pname == owner then if freikauf then setVehicleLocked ( source, false ) destroyElement ( _G["BeschlagMarker"..pname] ) destroyElement ( _G["BeschlagBlip"..pname] ) _G["BeschlagTorMarker"..pname] = createMarker ( -1904.7578125, -859.5966796875, 31.0234375, "cylinder", 3, 255, 0, 0, 255, player ) end end end addEventHandler ( "onVehicleStartEnter", getRootElement(), beschlag_einsteigen ) function beschlag_aussteigen ( player ) local freikauf = vioGetElementData ( source, "Freikaufen" ) local pname = getPlayerName ( player ) if freikauf then setVehicleLocked ( source, true ) end end addEventHandler ( "onVehicleExit", getRootElement(), beschlag_aussteigen ) function beschlag_markerhit ( hitElement ) if getElementType ( hitElement ) == "vehicle" then if vioGetElementData ( hitElement, "Freikaufen" ) then if getVehicleOccupant ( hitElement ) then local player = getVehicleOccupant ( hitElement ) local slot = vioGetElementData ( hitElement, "carslotnr_owner" ) local pname = getPlayerName ( player ) local pmoney = vioGetElementData ( player, "money" ) local kautioncost = 200 local fmoney = tonumber ( MySQL_GetString("fraktionen", "DepotGeld", "ID LIKE '1'") ) if source == _G["BeschlagTorMarker"..pname] then if tonumber(pmoney) >= tonumber(kautioncost) then setElementFrozen ( hitElement, true ) vioSetElementData ( hitElement, "Freikaufen", false ) outputChatBox("Du hast " ..kautioncost.. " $ bezahlt", player, 0, 125, 0 ) setTimer ( setElementFrozen, 3000, 1, hitElement, false ) outputChatBox ( "Fahrzeug wurde freigekauft", player, 0, 125, 0 ) vioSetElementData ( hitElement, "Beschlagnahmt", 0) vioSetElementData ( hitElement, "Beschlagzeit", 0) vioSetElementData ( player, "money", vioGetElementData ( player, "money" ) - kautioncost ) takePlayerMoney ( player, kautioncost ) MySQL_SetString("fraktionen", "DepotGeld", fmoney + kautioncost, "ID LIKE '1'") MySQL_SetString("vehicles", "Beschlagzeit", "0", "Besitzer LIKE '"..pname.."' AND Slot LIKE '"..slot.."'") MySQL_SetString("vehicles", "Beschlagnahmt", "0", "Besitzer LIKE '"..pname.."' AND Slot LIKE '"..slot.."'") MySQL_SetString("vehicles", "Beschlaggrund", "", "Besitzer LIKE '"..pname.."' AND Slot LIKE '"..slot.."'") setTimer ( moveObject, 8000, 1, verwahrgate, 3000, -1909.8000488281, -860.40002441406, 33.799999237061 ) verwahrgatestatus = 1 destroyElement ( _G["BeschlagTorMarker"..pname] ) end end end end end end addEventHandler ( "onMarkerHit", getRootElement (), beschlag_markerhit ) -- Tor auf-/ und abschließen addCommandHandler("mv", function (player) if getDistanceBetweenPoints3D ( -1909.8000488281, -860.40002441406, 33.799999237061, getElementPosition ( player ) ) < 17 then if (getElementData(player, "fraktion") == 1) then if isOnDuty ( player ) then if verwahrgatestatus == 1 then moveObject ( verwahrgate, 3000, -1909.8000488281, -870.40002441406, 33.799999237061 ) verwahrgatestatus = 0 else moveObject ( verwahrgate, 3000, -1909.8000488281, -860.40002441406, 33.799999237061 ) verwahrgatestatus = 1 end else outputChatBox("Du bist nicht im Dienst!", player, 255, 0, 0) end else outputChatBox("Du bist kein Beamter!", player, 255, 0, 0) end end end ) ----- BESCHLAGNAHMUNG VON 1 AUF 2 AENDERN ----- function beschlagstatus_change ( player, vehicle ) if vioGetElementData ( player, "fraktion" ) == 1 then if isOnDuty ( player ) then if tonumber ( vioGetElementData ( vehicle, "Beschlagnahmt" ) ) == 1 then if vioGetElementData ( vehicle, "towed" ) then vioSetElementData ( vehicle, "Beschlagnahmt", 2 ) local owner = vioGetElementData ( vehicle, "owner" ) local slotid = vioGetElementData ( vehicle, "carslotnr_owner" ) MySQL_SetString ("vehicles", "Beschlagnahmt", "2", "Besitzer LIKE '"..owner.."' AND Slot LIKE '"..slotid.."'") end end end end end addEvent ( "beschlagstatus_change", true ) addEventHandler ( "beschlagstatus_change", getRootElement(), beschlagstatus_change )
-
Ich wollte vor kurzem einen privaten MTA RL Server mit meinen Freunden starten und habe das Reloaded2 script geholt. Als mein Auto beschlagnahmt wurde und ich es Freikaufen wollte, zeigte mir das Fenster kein Auto an und der X-Button ging auch nicht.
Als ich dann die Datei angeschaut habe, konnte ich kein Fehler feststellen. Auch der Server zeigt keine Warnings/Errors an. In der Datenbank wird er als Beschlagnahmt angezeigt und ich kann ihn auch nicht benutzen. Danke schon im voraus .Lua: beschlag_click.lua
Alles anzeigengWindow = { } gLabel = { } gButton = { } gGrid = { } screenwidth, screenheight = guiGetScreenSize () function beschlag_gui ( veh ) setElementData ( lp, "ElementClicked", true ) showCursor ( true ) if gWindow["beschlag"] then guiSetVisible ( gWindow["beschlag"], true ) else gWindow["beschlag"] = guiCreateStaticImage( screenWidth / 2 - 250, screenHeight / 2 - 175, 500, 350,"images/BlackScreen.png", false ) guiWindowSetMovable(gWindow["beschlag"], false ) guiWindowSetSizable(gWindow["beschlag"], false ) -- Welcome gLabel[1] = guiCreateLabel( 0.0225, 0.0884, 0.9393, 0.2381,"\n\nHerzlich Willkommen!\nHier findest du eine Auflistung aller Fahrzeuge die du besitzt.", true, gWindow["beschlag"] ) guiSetAlpha(gLabel[1],1) guiLabelSetColor(gLabel[1],255,255,255) guiLabelSetVerticalAlign(gLabel[1],"top") guiLabelSetHorizontalAlign(gLabel[1],"left",false) guiSetFont(gLabel[1],"default-bold-small") gGrid["fahrzeuge"] = guiCreateGridList ( 0.0225, 0.3401, 0.5618, 0.6293, true, gWindow["beschlag"] ) Slot = guiGridListAddColumn( gGrid["fahrzeuge"], "Slot", 0.1 ) Fahrzeug = guiGridListAddColumn( gGrid["fahrzeuge"], "Fahrzeuge", 0.4 ) Status = guiGridListAddColumn( gGrid["fahrzeuge"], "Status", 0.4 ) -- Close gButton["closeBeschlag"] = guiCreateButton( 0.9416, 0.0782, 0.0360, 0.0578,"x", true, gWindow["beschlag"] ) guiSetAlpha(gButton["closeBeschlag"],1) addEventHandler ( "onClientGUIClick", gButton["closeBeschlag"], function () if (source == gButton["closeBeschlag"]) then beschlag_gui_hide ( ) end end ) -- Freikaufen gButton["kautionBeschlag"] = guiCreateButton ( 0.6742, 0.8503, 0.2247, 0.0850, "Kaution bezahlen", true, gWindow["beschlag"] ) guiSetAlpha(gButton["kautionBeschlag"],1) addEventHandler ( "onClientGUIClick", gButton["kautionBeschlag"], function () if (source == gButton["kautionBeschlag"]) then slot = guiGridListGetItemText ( gGrid["fahrzeuge"], guiGridListGetSelectedItem ( gGrid["fahrzeuge"] ), Slot ) Fahrzeugname = guiGridListGetItemText ( gGrid["fahrzeuge"], guiGridListGetSelectedItem ( gGrid["fahrzeuge"] ), Fahrzeug ) triggerServerEvent ( "beschlag_freikaufen", getLocalPlayer (), getLocalPlayer (), Fahrzeugname, slot ) beschlag_gui_hide ( ) end end ) end fill_fahrzeug_func ( veh ) end addEvent ( "beschlag_gui_open", true ) addEventHandler ( "beschlag_gui_open", getRootElement (), beschlag_gui ) function fill_fahrzeug_func ( veh ) local vname = getVehicleName ( veh ) local slot = vioGetElementData ( veh, "carslotnr_owner" ) local beschlagID = vioGetElementData ( veh, "Beschlagnahmt" ) local Zeile = guiGridListAddRow ( gGrid["fahrzeuge"] ) guiGridListSetItemText ( gGrid["fahrzeuge"], Zeile, Slot, slot, false, false ) guiGridListSetItemText ( gGrid["fahrzeuge"], Zeile, Fahrzeug, vname, false, false ) if tonumber ( beschlagID ) == 0 then guiGridListSetItemText ( gGrid["fahrzeuge"], Zeile, Status, "Frei", false, false ) elseif tonumber ( beschlagID ) >= 1 then guiGridListSetItemText ( gGrid["fahrzeuge"], Zeile, Status, "Beschlagnahmt", false, false ) end end addEvent ( "beschlag_fill_fahrzeug", true ) addEvent ( "beschlag_fill_fahrzeug", getRootElement (), fill_fahrzeug_func ) function beschlag_gui_hide ( ) guiSetVisible ( gWindow["beschlag"], false ) showCursor ( false ) setElementData ( lp, "ElementClicked", false ) guiGridListClear ( gGrid["fahrzeuge"] ) end