Ich möchte grad die Fahrschulprüfung ändern also die Fragen und so aber ich finde nix außer die erste Testfahrt Bitte sagt mir einer wo die Datei dafür ist ich habe schon das carsys und drivingshool durchgeguckt wurde aber nicht fündig.
Beiträge von MrGTAmodsgerman
-
-
Ich habe eben das Adminlevel auf 10 gestellt aber unter /admins bin ich nicht eingetragen und habe auch Level 6 versucht???
-
Oh Danke ohman ich entschuldige mich für diesen Fail, ich habe nicht in der DB zur Seite gescrollt FACEPALM. Oh man da schähme ich mich für
-
Ich habe Vio Lite Reloaded *lol*
-
Hey wie kann ich mich als Admin in Godmother machen? Und wo kann ich Leute zu Polizisten machen? Und wo wird die Ingamezeit gespeichert?
Danke im voraus
MFG MrGTAmodsgerman
-
Dokie Ja ich meinte eigentlich wo eingestellt ist das man per Befehl den Spawnpunkt ändern kann und wo es geschrieben ist das man die Befehle angezeigt bekommt wenn man /spawnchange macht.
Und ich habe mich entschieden für ein anderes Housesystem das neue ist dynamischer *thumbup* -
@PewXhttps://www.mta-sa.org/index.php?page=User&userID=1464
Ich habe jetzt das in mehere andere Nachveränderten Resourcen eingefügt, b.z.w eingebunden jetzt habe ich aber einen komischen bug. Sobalt es von 23:33 auf 34 wird sieht es so aus wie ich es wollte aber zu heftig, und dabei habe ich alles leicht eingestellt:
Skripteinbindung:Lua
Alles anzeigenfunction night_check() local hours, minutes = getTime() if hours >= 5 and hours < 12 then fading = false elseif hours >= 12 and hours < 15 then fading = false elseif hours >= 15 and hours < 21 then setSkyGradient(0, 0, 0, 5, 5, 5) setFarClipDistance(100) fading = false elseif hours >= 21 and hours < 5 then fading = false setSkyGradient(0, 0, 0, 5, 5, 5) setFarClipDistance(80) else fading = true end end
ich versehe das nicht ich zeige mal Screens:
So wie es nicht sein sollExterner Inhalt i59.tinypic.comInhalte von externen Seiten werden ohne Ihre Zustimmung nicht automatisch geladen und angezeigt.So wie es fast sein soll nur nicht so extrem dunkel
Externer Inhalt i57.tinypic.comInhalte von externen Seiten werden ohne Ihre Zustimmung nicht automatisch geladen und angezeigt.Ich verstehe nicht wo der Fehler liegt *:S*
Ich poste mal den ganzen Skript also nur wo ich es eingebunden habe:
Lua
Alles anzeigen--[[ ************************************ * MTA REALISTIC NIGHT SHADER ************************************ * * @author Jesseunit * @link http://jsiau.site11.com * @info An uncompiled script, hooray. * @version 1.0 ]]-- local maxDarkness = 0.20 -- [1] = lightest || [0] = darkest local speed = 0.001 -- Default variables you shouldn't alter. local b = 1 local shaderList = {} local fading = false -- Feel free to add more removables. local removables = { 'tx*', 'coronastar', 'shad_exp*', 'radar*', '*icon', 'font*', 'lampost_16clr', 'headlight', 'vehiclegeneric256' } function night_init() if getVersion ().sortable < '1.1.0' then outputChatBox('Night shader is not compatible with this client.') return false end local testShader, tec = dxCreateShader('night.fx') if not testShader then outputChatBox('Could not create night shader. Please use debugscript 3') else for c=65,96 do local clone = dxCreateShader('night.fx') engineApplyShaderToWorldTexture(clone, string.format('%c*', c + 32)) for i,v in pairs(removables) do engineRemoveShaderFromWorldTexture(clone, v) end table.insert(shaderList, clone) end end addEventHandler('onClientHUDRender', root, night_render) nightTimer = setTimer(night_check, 1000, 0) end function night_check() local hours, minutes = getTime() if hours >= 5 and hours < 12 then fading = false elseif hours >= 12 and hours < 15 then fading = false elseif hours >= 15 and hours < 21 then setSkyGradient(0, 0, 0, 5, 5, 5) setFarClipDistance(100) fading = false elseif hours >= 21 and hours < 5 then fading = false setSkyGradient(0, 0, 0, 5, 5, 5) setFarClipDistance(80) else fading = true end end function night_render() local int, dim = getElementInterior(localPlayer), getElementDimension(localPlayer) if fading then if b > maxDarkness then b = b - speed elseif b <= maxDarkness then b = maxDarkness end else if b < 1.0 then b = b + speed elseif b >= 1.0 then b = 1.0 end end for _,shader in ipairs(shaderList) do if int == 0 and dim == 0 then dxSetShaderValue(shader, 'NIGHT', b, b, b) else dxSetShaderValue(shader, 'NIGHT', 1.0, 1.0, 1.0) end end end night_init()
Ich hoffe ihr könnt mir das helfen *?(*
Und wieso ist die Nacht wieder bei Tag obwohl ohne meine Einbindung es nur Nachts war??? *cursing*
Danke schonmal im voraus *thumbsup*
-
Dokie ja mir ist es klar und es ist Fehlerhaft habe zwar schon Sachen gefixt aber nach diesem Thread habe ich ein viel besseres House System gefunden von Nonatme.
Dort kann man mieten u.s.w aber leider habe ich keine Resource gefunden die die Position speichert wenn man Save macht und man nach einem Serverjoin dort landet
Kennst du eine? -
Ich habe ja schon geguckt aber ich bin nicht fündig geworden *wacko*
Es scheint mir so als wüsstest du es wo es steht. -
Hallo,
Ich habe mir das House_system installiert und schon eine menge Häuser erstellt.
Mir ist aber aufgefallen das man beim Serverjoin nicht im Haus spawnt und das man unendlich viele Häuser besitzen kann.
Da ist sehr viel Code aber ich möchte gerne das man nur 2 Häuser besitzen kann und man einstellen kann ob man beim Serverlogin im Haus spawnt.
Das ganze habe ich in Godmother getestet ich habe aber kein Plan wie ich es machen könnte weil ich nicht mal das Element finde das ich benutzen muss statt die Koordinate.Ich poste mal alle Lua Datein:
core_server:
Lua
Alles anzeigenlocal sql = { Query = executeSQLQuery }; addEventHandler( 'onResourceStart', resourceRoot, function() sql.Query( "CREATE TABLE IF NOT EXISTS house_data (\ ID INTEGER, en_X REAL, en_Y REAL, en_Z REAL,\ en_tX REAL, en_tY REAL, en_tZ REAL,\ ex_X REAL, ex_Y REAL, ex_Z REAL,\ ex_tX REAL, ex_tY REAL, ex_tZ REAL,\ int INTEGER, dim INTEGER, cost INTEGER, owner TEXT, key TEXT )" ); for i, v in ipairs( getElementsByType( 'player' ) ) do setElementData( v, 'k_len', tonumber( get( 'keyLength' ) ) ); local acc = getPlayerAccount( v ); if not isGuestAccount( acc ) then setElementData( v, 'HS_accountName', getAccountName( acc ) ); end; setElementData( v, 'mrk_in', nil ); end; local hr = sql.Query( "SELECT * FROM house_data" ); for i = 1, #hr do createHouse( false, hr[i].ID, hr[i].owner, hr[i].key, hr[i].en_X, hr[i].en_Y, hr[i].en_Z, hr[i].en_tX, hr[i].en_tY, hr[i].en_tZ, hr[i].ex_X, hr[i].ex_Y, hr[i].ex_Z, hr[i].ex_tX, hr[i].ex_tY, hr[i].ex_tZ, hr[i].int, hr[i].dim, hr[i].cost ); end; end ); addEventHandler( 'onResourceStop', resourceRoot, function() for i, v in ipairs( getElementsByType( 'player' ) ) do setElementData( v, 'k_len', nil ); setElementData( v, 'HS_accountName', nil ); end; end ); addEventHandler( 'onPlayerJoin', root, function() setElementData( source, 'k_len', tonumber( get( 'keyLength' ) ) ); end ); addEventHandler( 'onPlayerLogin', root, function( _, acc ) setElementData( source, 'HS_accountName', getAccountName( acc ) ); end ); addEventHandler( 'onPlayerLoout', root, function( _, acc ) setElementData( source, 'HS_accountName', nil ); end ); addCommandHandler( 'create', function( player ) if isObjectInACLGroup( 'user.'..getAccountName( getPlayerAccount( player ) ), aclGetGroup( 'Admin' ) ) or hasObjectPermissionTo( player, 'function.banPlayer', false ) then if not getElementData( player, 'HP_Opened' ) and not getElementData( player, 'mrk_in' ) then triggerClientEvent( player, 'HP_SetVisible', root, true ); end; else outputChatBox( '* Access denied for this command!', player, 255, 36, 51 ); end; end ); addEvent( 'onPlayerAttemptCreateHouse', true ); addEventHandler( 'onPlayerAttemptCreateHouse', root, function( rt ) createHouse( true, #sql.Query( "SELECT * FROM house_data" ) + 1, '', '', unpack( rt ) ); outputChatBox( '* The new house has been created successfully!', client, 255, 255, 0 ); end ); function createHouse( add, ID, owner, key, eX, eY, eZ, etX, etY, etZ, exX, exY, exZ, extX, extY, extZ, int, dim, cost ) if add then sql.Query( "INSERT INTO house_data ( ID, en_X, en_Y, en_Z, en_tX, en_tY, en_tZ, ex_X, ex_Y, ex_Z, ex_tX, ex_tY, ex_tZ, int, dim, cost, owner, key ) VALUES ( "..ID..", "..eX..", "..eY..", "..eZ..", "..etX..", "..etY..", "..etZ..", "..exX..", "..exY..", "..exZ..", "..extX..", "..extY..", "..extZ..", "..int..", "..dim..", "..cost..", '', '' )" ); end; local m_Enter = createMarker( eX, eY, eZ - 1, 'cylinder', 1.25, 0, 153, 255, 150 ); setElementData( m_Enter, 'HS_INFO', { etX, etY, etZ, int, dim, cost, owner, key, ID } ); if getElementData( m_Enter, 'HS_INFO' )[7] ~= '' then setMarkerColor( m_Enter, 255, 51, 36, 150 ); end; addEventHandler( 'onMarkerHit', m_Enter, function( player ) if getElementType( player ) == 'player' and not getPedOccupiedVehicle( player ) then if not getElementData( player, 'HP_Opened' ) then if not isGuestAccount( getPlayerAccount( player ) ) then setElementData( player, 'mrk_in', getElementData( source, 'HS_INFO' )[9] ); onPlayerHouseMarkerHit( player, source, true ); setPedFrozen( player, true ); else outputChatBox( '* You must be logged in to get in this house!', player, 255, 51, 36 ); end; end; end; end ); addEventHandler( 'onMarkerLeave', m_Enter, function( player ) if getElementType( player ) == 'player' and not getPedOccupiedVehicle( player ) then setElementData( player, 'mrk_in', nil ); end; end ); local m_Exit = createMarker( exX, exY, exZ - 1, 'cylinder', 1.25, 0, 153, 255, 150 ); setElementData( m_Exit, 'parent', m_Enter ); setElementInterior( m_Exit, int ); setElementDimension( m_Exit, dim ); setElementData( m_Exit, 'extX', extX ); setElementData( m_Exit, 'extY', extY ); setElementData( m_Exit, 'extZ', extZ ); addEventHandler( 'onMarkerHit', m_Exit, function( player, dim ) if getElementType( player ) == 'player' and dim then toggleAllControls( player, false ); fadeCamera( player, false ); setTimer( function( player, mrk ) if getPedOccupiedVehicle( player ) then removePedFromVehicle( player ); end; local x, y, z = getElementData( mrk, 'extX' ), getElementData( mrk, 'extY' ), getElementData( mrk, 'extZ' ); setElementPosition( player, x, y, z ); setElementInterior( player, 0 ); setElementDimension( player, 0 ); toggleAllControls( player, true ); fadeCamera( player, true ); end, 1200, 1, player, source ); end; end ); end; function onPlayerHouseMarkerHit( player, mrk, cursor ) local acc = getPlayerAccount( player ); if isGuestAccount( acc ) then outputChatBox( '* You must be logged in to get in this house!', player, 255, 51, 36 ); setElementData( player, 'mrk_in', nil ); setPedFrozen( player, false ); return false; end; local tts = { [1] = true, [2] = false, [3] = false, [4] = true, [5] = false, [6] = false }; if isObjectInACLGroup( 'user.'..getAccountName( acc ), aclGetGroup( 'Admin' ) ) or hasObjectPermissionTo( player, 'function.banPlayer', false ) then tts[6] = true; end; local owner = getElementData( mrk, 'HS_INFO' )[7]; local accName = getAccountName( acc ); if owner == accName then tts[1] = false; tts[2] = true; tts[3] = true; tts[4] = true; tts[5] = true; end; if owner ~= accName and owner ~= '' then tts[1] = false; end; if owner == '' then if isObjectInACLGroup( 'user.'..getAccountName( acc ), aclGetGroup( 'Admin' ) ) or hasObjectPermissionTo( player, 'function.banPlayer', false ) then tts[4] = true; else tts[4] = false; end; end; tts[7] = getElementData( mrk, 'HS_INFO' )[9]; tts[8] = getElementData( mrk, 'HS_INFO' )[7]; tts[9] = getElementData( mrk, 'HS_INFO' )[6]; triggerClientEvent( player, 'openHouseManagementWnd', root, tts, cursor ); end; addEvent( 'HOUSE_Buy', true ); addEventHandler( 'HOUSE_Buy', root, function( cost, key ) local accName = getAccountName( getPlayerAccount( client ) ); local houseCounter = 0; for i, v in ipairs( getElementsByType( 'marker', getResourceRootElement() ) ) do if getElementData( v, 'HS_INFO' ) then local owner = getElementData( v, 'HS_INFO' )[7]; if owner == accName then houseCounter = houseCounter + 1; end; end; end; if houseCounter >= tonumber( get( 'playerHouseCounter' ) ) then outputChatBox( '* You can not buy more than #00FF00'..get( 'playerHouseCounter' )..' house(-s)#FF3324 at the same time!', client, 255, 51, 36, true ); setPedFrozen( client, false ); return false; end; if getPlayerMoney( client ) >= tonumber( cost ) then outputChatBox( '* Key has been set to #00FF00'..key, client, 255, 51, 36, true ); outputChatBox( '* Congratulations! You have bought a house!', client, 255, 255, 0 ); sql.Query( "UPDATE house_data SET owner = '"..accName.."', key = '"..key.."' WHERE ID = ?", getElementData( client, 'mrk_in' ) ); takePlayerMoney( client, cost ); local mrk = getHouseByID( getElementData( client, 'mrk_in' ) ); local t = {}; for i = 1, 6 do t[i] = getElementData( mrk, 'HS_INFO' )[i]; end; t[7] = accName; t[8] = key; t[9] = getElementData( client, 'mrk_in' ); setElementData( mrk, 'HS_INFO', { t[1], t[2], t[3], t[4], t[5], t[6], t[7], t[8], t[9] } ); setMarkerColor( mrk, 255, 51, 36, 150 ); setTimer( onPlayerHouseMarkerHit, 50, 1, client, mrk, true ); else outputChatBox( '* You do not have enough money!', client, 255, 51, 36 ); onPlayerHouseMarkerHit( client, getHouseByID( getElementData( client, 'mrk_in' ) ), true ); end; end ); addEvent( 'HOUSE_Sell', true ); addEventHandler( 'HOUSE_Sell', root, function() sql.Query( "UPDATE house_data SET owner = '', key = '' WHERE ID = ?", getElementData( client, 'mrk_in' ) ); local mrk = getHouseByID( getElementData( client, 'mrk_in' ) ); givePlayerMoney( client, getElementData( mrk, 'HS_INFO' )[6] / 2 ); local t = {}; for i = 1, 6 do t[i] = getElementData( mrk, 'HS_INFO' )[i]; end; t[7] = ''; t[8] = ''; t[9] = getElementData( client, 'mrk_in' ); setElementData( mrk, 'HS_INFO', { t[1], t[2], t[3], t[4], t[5], t[6], t[7], t[8], t[9] } ); setMarkerColor( mrk, 0, 153, 255, 150 ); setTimer( onPlayerHouseMarkerHit, 50, 1, client, mrk, false ); end ); addEvent( 'HOUSE_Enter', true ); addEventHandler( 'HOUSE_Enter', root, function() setPedFrozen( client, false ); local mrk = getHouseByID( getElementData( client, 'mrk_in' ) ); local t = {}; for i = 1, 5 do t[i] = getElementData( mrk, 'HS_INFO' )[i]; end; fadeCamera( client, false ); toggleAllControls( client, false ); setTimer( function( player, t ) if getPedOccupiedVehicle( player ) then removePedFromVehicle( player ); end; setElementInterior( player, t[4], t[1], t[2], t[3] ); setElementDimension( player, t[5] ); toggleAllControls( player, true ); fadeCamera( player, true ); setElementData( player, 'mrk_in', nil ) end, 1200, 1, client, t ); end ); addEvent( 'HOUSE_ChangeKey', true ); addEventHandler( 'HOUSE_ChangeKey', root, function( newKey ) local mrk = getHouseByID( getElementData( client, 'mrk_in' ) ); sql.Query( "UPDATE house_data SET key = '"..newKey.."' WHERE ID = ?", getElementData( client, 'mrk_in' ) ); local t = {}; for i = 1, 6 do t[i] = getElementData( mrk, 'HS_INFO' )[i]; end; t[7] = getAccountName( getPlayerAccount( client ) ); t[8] = newKey; t[9] = getElementData( client, 'mrk_in' ); setElementData( mrk, 'HS_INFO', { t[1], t[2], t[3], t[4], t[5], t[6], t[7], t[8], t[9] } ); end ); addEvent( 'HOUSE_ChangeOwner', true ); addEventHandler( 'HOUSE_ChangeOwner', root, function( name ) local mrk = getHouseByID( getElementData( client, 'mrk_in' ) ); local accName = getAccountName( getPlayerAccount( getPlayerFromName( name ) ) ); sql.Query( "UPDATE house_data SET owner = '"..accName.."' WHERE ID = ?", getElementData( client, 'mrk_in' ) ); local res = sql.Query( "SELECT key, owner FROM house_data WHERE ID = ?", getElementData( client, 'mrk_in' ) ); local t = {}; for i = 1, 6 do t[i] = getElementData( mrk, 'HS_INFO' )[i]; end; t[7] = res[1].owner; t[8] = res[1].key; t[9] = getElementData( client, 'mrk_in' ); setElementData( mrk, 'HS_INFO', { t[1], t[2], t[3], t[4], t[5], t[6], t[7], t[8], t[9] } ); setTimer( onPlayerHouseMarkerHit, 50, 1, client, mrk, false ); outputChatBox( '* #FFFF00'..getPlayerName( client )..'#00FF00 has given you his house!', getPlayerFromName( name ), 0, 255, 0, true ); end ); addEvent( 'HOUSE_Destroy', true ); addEventHandler( 'HOUSE_Destroy', root, function() local mrk = getHouseByID( getElementData( client, 'mrk_in' ) ); for ii, v in ipairs( getElementsByType( 'marker', getResourceRootElement() ) ) do if getElementData( v, 'parent' ) == mrk then destroyElement( v ); end; end; local hr = sql.Query( "SELECT * FROM house_data" ); for i = getElementData( source, 'mrk_in' ), #hr do if getHouseByID( i ) ~= mrk then sql.Query( "UPDATE house_data SET ID = "..( i - 1 ).." WHERE ID = ?", i ); local res = sql.Query( "SELECT owner, key FROM house_data WHERE ID = ?", i - 1 ); local nextMrk = getHouseByID( i ); local t = {}; for i = 1, 6 do t[i] = getElementData( nextMrk, 'HS_INFO' )[i]; end; t[7] = res[1].owner; t[8] = res[1].key; t[9] = i - 1; setElementData( nextMrk, 'HS_INFO', { t[1], t[2], t[3], t[4], t[5], t[6], t[7], t[8], t[9] } ); local player = getPlayerByHouseID( i - 1 ); setElementData( player, 'mrk_in', i - 1 ); else sql.Query( "DELETE FROM house_data WHERE ID = ?", i ); destroyElement( mrk ); end; end; outputChatBox( '* House #'..getElementData( source, 'mrk_in' )..' has been destroyed!', source, 255, 255, 0 ); setPedFrozen( source, false ); setElementData( source, 'mrk_in', nil ); end ); function getHouseByID( id ) for i, v in ipairs( getElementsByType( 'marker', getResourceRootElement() ) ) do if getElementData( v, 'HS_INFO' ) and getElementData( v, 'HS_INFO' )[9] == id then return v; end; end; return false; end; function getPlayerByHouseID( id ) for i, v in ipairs( getElementsByType( 'player' ) ) do if getElementData( v, 'mrk_in' ) == id then return v; end; end; return false; end; addEvent( 'setFrozen', true ); addEventHandler( 'setFrozen', root, function( state ) setPedFrozen( client, state ); end ); addEventHandler( 'onPlayerWasted', root, function() if getElementData( source, 'mrk_in' ) then setElementData( source, 'mrk_in', nil ); setPedFrozen( source, false ); end; end );
interriors:
Lua
Alles anzeigenlocal ints = { { 223.043991, 1289.259888, 1082.199951, 1 }, { 295.138977, 1474.469971, 1080.519897, 15 }, { 328.493988, 1480.589966, 1084.449951, 15 }, { 2262.83000, -1137.71000, 1050.630000, 10 }, { 2251.85000, -1138.16000, 1050.630000, 9 }, { 225.756989, 1240.000000, 1082.149902, 2 }, { 2451.77000, -1699.80000, 1013.510000, 2 }, { 385.803986, 1471.769897, 1080.209961, 15 }, { 2260.76000, -1210.45000, 1049.020000, 10 }, { 235.508994, 1189.169897, 1080.339966, 3 }, { 225.630997, 1022.479980, 1084.069946, 7 }, { 2807.63000, -1170.15000, 1025.570000, 8 }, { -2158.7200, 641.2900000, 1052.380000, 1 }, { 244.089200, 304.8456000, 999.1484000, 1 }, { 2525.04200, -1679.1150, 1015.4990000, 1 }, { 2216.54000, -1076.2900, 1050.4840000, 1 }, { 0.34400000, -0.5140000, 1000.5490000, 2 }, { 1523.75100, -46.045800, 1002.1310000, 2 }, { 2543.66100, -1303.9320, 1025.0700000, 2 }, { 267.229000, 304.710000, 999.14800000, 2 }, { 1527.38000, -11.020000, 1002.1000000, 3 }, { 516.889000, -18.412000, 1001.5650000, 3 }, { 302.640400, 304.804800, 999.14840000, 4 }, { 1272.91160, -768.90280, 1090.5097000, 5 }, { 2807.89900, -1172.9210, 1025.5700000, 8 }, { 2253.17400, -1139.0100, 1050.6330000, 9 }, { 2264.52310, -1210.5229, 1049.0234000, 10 }, { 2324.49900, -1147.0710, 1050.7100000, 12 }, { 322.720000, 306.430000, 999.15000000, 5 }, { 2333.03300, -1073.9600, 1049.0230000, 6 }, { 2194.29100, -1204.0150, 1049.0230000, 6 }, { 2308.87100, -1210.7170, 1049.0230000, 6 } }; addCommandHandler( 'sint', function( player, command, r ) if isObjectInACLGroup( 'user.'..getAccountName( getPlayerAccount( player ) ), aclGetGroup( 'Admin' ) ) or hasObjectPermissionTo( player, 'function.banPlayer', false ) then if getElementData( player, 'HP_Opened' ) then r = tonumber( r ); if r and r > 0 and r <= #ints then local p_int = getElementInterior( player ); if ints[ r ][ 4 ] == p_int then setElementPosition( player, ints[ r ][ 1 ], ints[ r ][ 2 ], ints[ r ][ 3 ] ); else setElementInterior( player, ints[ r ][ 4 ], ints[ r ][ 1 ], ints[ r ][ 2 ], ints[ r ][ 3 ] ); end; else outputChatBox( '* Incorrent interior ID!', player, 255, 51, 36 ); end; else outputChatBox( '* Access denied for this command: House Construction panel must be open!', player, 255, 51, 36 ); end; else outputChatBox( '* Access denied for this command!', player, 255, 51, 36 ); end; end );
core_client:
Lua
Alles anzeigenlocal me = getLocalPlayer(); local scX, scY = guiGetScreenSize(); local hc_gui = {}; --house construction local hc_edit = {}; --edit fields local hm_gui = {}; --management addEventHandler( 'onClientResourceStart', resourceRoot, function() hc_gui['main'] = guiCreateWindow( scX-310, scY/2-450/2, 300, 450, 'Haus Bauen GUI', false ); guiSetAlpha( hc_gui['main'], 1.0 ); --Entrance-- hc_gui['label_ec'] = guiCreateLabel( 0.042, 0.05, 0.4, 0.1, 'Eingang', true, hc_gui['main'] ); guiLabelSetHorizontalAlign( hc_gui['label_ec'], 'center', true ); hc_edit['edit_ec_X'] = guiCreateEdit( 0.063, 0.15, 0.39, 0.06, '', true, hc_gui['main'] ); hc_edit['edit_ec_Y'] = guiCreateEdit( 0.063, 0.22, 0.39, 0.06, '', true, hc_gui['main'] ); hc_edit['edit_ec_Z'] = guiCreateEdit( 0.063, 0.29, 0.39, 0.06, '', true, hc_gui['main'] ); hc_gui['btn_ecPick'] = guiCreateButton( 0.063, 0.36, 0.39, 0.06, 'Koordinaten', true, hc_gui['main'] ); --1 --Entrance teleport-- hc_gui['label_etc'] = guiCreateLabel( 0.009, 0.45, 0.5, 0.1, 'Eingang im Haus', true, hc_gui['main'] ); guiLabelSetHorizontalAlign( hc_gui['label_etc'], 'center', true ); hc_edit['edit_etc_X'] = guiCreateEdit( 0.063, 0.55, 0.39, 0.06, '', true, hc_gui['main'] ); hc_edit['edit_etc_Y'] = guiCreateEdit( 0.063, 0.62, 0.39, 0.06, '', true, hc_gui['main'] ); hc_edit['edit_etc_Z'] = guiCreateEdit( 0.063, 0.69, 0.39, 0.06, '', true, hc_gui['main'] ); hc_gui['btn_etcPick'] = guiCreateButton( 0.063, 0.76, 0.39, 0.06, 'Koordinaten', true, hc_gui['main'] ); --2 --Exit-- hc_gui['label_exc'] = guiCreateLabel( 0.55, 0.05, 0.4, 0.1, 'Ausgang', true, hc_gui['main'] ); guiLabelSetHorizontalAlign( hc_gui['label_exc'], 'center', true ); hc_edit['edit_exc_X'] = guiCreateEdit( 0.55, 0.15, 0.39, 0.06, '', true, hc_gui['main'] ); hc_edit['edit_exc_Y'] = guiCreateEdit( 0.55, 0.22, 0.39, 0.06, '', true, hc_gui['main'] ); hc_edit['edit_exc_Z'] = guiCreateEdit( 0.55, 0.29, 0.39, 0.06, '', true, hc_gui['main'] ); hc_gui['btn_excPick'] = guiCreateButton( 0.55, 0.36, 0.39, 0.06, 'Koordinaten', true, hc_gui['main'] ); --3 --Exit teleport-- hc_gui['label_extc'] = guiCreateLabel( 0.51, 0.45, 0.47, 0.1, 'Ort für Ausgang', true, hc_gui['main'] ); guiLabelSetHorizontalAlign( hc_gui['label_extc'], 'center', true ); hc_edit['edit_extc_X'] = guiCreateEdit( 0.55, 0.55, 0.39, 0.06, '', true, hc_gui['main'] ); hc_edit['edit_extc_Y'] = guiCreateEdit( 0.55, 0.62, 0.39, 0.06, '', true, hc_gui['main'] ); hc_edit['edit_extc_Z'] = guiCreateEdit( 0.55, 0.69, 0.39, 0.06, '', true, hc_gui['main'] ); hc_gui['btn_extcPick'] = guiCreateButton( 0.55, 0.76, 0.39, 0.06, 'Koordinaten', true, hc_gui['main'] ); --4 for i, v in pairs( hc_edit ) do guiEditSetReadOnly( v, true ); end; hc_gui['btn_close'] = guiCreateButton( 0.88, 0.915, 0.09, 0.05, 'X', true, hc_gui['main'] ); hc_gui['btn_reset'] = guiCreateButton( 0.88-0.21, 0.915, 0.2, 0.05, 'Reset', true, hc_gui['main'] ); hc_gui['btn_create'] = guiCreateButton( 0.0, 0.915, 0.3, 0.05, 'Hausbau', true, hc_gui['main'] ); hc_gui['main_add'] = guiCreateWindow( scX-310-200, (scY/2-250/2)-450/4.5, 200, 250, 'Zusätzliche Infos', false ); hc_gui['edit_intID'] = guiCreateEdit( 0.09, 0.1, 0.35, 0.1, '', true, hc_gui['main_add'] ); hc_gui['label_intID'] = guiCreateLabel( 0.57, 0.09, 0.3, 0.1, 'Interior ID', true, hc_gui['main_add'] ); guiLabelSetVerticalAlign( hc_gui['label_intID'], 'center' ); hc_gui['edit_dim'] = guiCreateEdit( 0.09, 0.25, 0.35, 0.1, '', true, hc_gui['main_add'] ); hc_gui['label_dim'] = guiCreateLabel( 0.57, 0.249, 0.3, 0.1, 'Dimension', true, hc_gui['main_add'] ); guiLabelSetVerticalAlign( hc_gui['label_dim'], 'center' ); hc_gui['edit_cost'] = guiCreateEdit( 0.09, 0.4, 0.45, 0.1, '', true, hc_gui['main_add'] ); hc_gui['label_cost'] = guiCreateLabel( 0.57, 0.399, 0.3, 0.1, 'Kosten', true, hc_gui['main_add'] ); guiLabelSetVerticalAlign( hc_gui['label_cost'], 'center' ); for i, v in pairs( hc_gui ) do guiSetFont( v, 'default-bold-small' ); if getElementType( v ) == 'gui-button' then guiButtonSetColor( v, '0099FFFF' ); end; if getElementType( v ) == 'gui-window' then guiWindowSetMovable( v, false ); guiWindowSetSizable( v, false ); end; end; guiSetVisible( hc_gui['main'], false ); guiSetVisible( hc_gui['main_add'], false ); addEventHandler( 'onClientGUIClick', hc_gui['btn_close'], function( btn ) if btn ~= 'left' then return false; end; triggerEvent( 'HP_SetVisible', me, false ); end, false ); addEventHandler( 'onClientGUIClick', root, function( btn ) if btn ~= 'left' then return false; end; if source == hc_gui['btn_ecPick'] then local x, y, z = getElementPosition( me ); guiSetText( hc_edit['edit_ec_X'], x ); guiSetText( hc_edit['edit_ec_Y'], y ); guiSetText( hc_edit['edit_ec_Z'], z ); elseif source == hc_gui['btn_etcPick'] then local x, y, z = getElementPosition( me ); guiSetText( hc_edit['edit_etc_X'], x ); guiSetText( hc_edit['edit_etc_Y'], y ); guiSetText( hc_edit['edit_etc_Z'], z ); elseif source == hc_gui['btn_excPick'] then local x, y, z = getElementPosition( me ); guiSetText( hc_edit['edit_exc_X'], x ); guiSetText( hc_edit['edit_exc_Y'], y ); guiSetText( hc_edit['edit_exc_Z'], z ); elseif source == hc_gui['btn_extcPick'] then local x, y, z = getElementPosition( me ); guiSetText( hc_edit['edit_extc_X'], x ); guiSetText( hc_edit['edit_extc_Y'], y ); guiSetText( hc_edit['edit_extc_Z'], z ); end; end ); addEventHandler( 'onClientGUIClick', hc_gui['btn_reset'], function( btn ) if btn ~= 'left' then return false; end; for i, v in pairs( hc_edit ) do guiSetText( v, '' ); end; for i, v in pairs( hc_gui ) do if getElementType( v ) == 'gui-edit' then guiSetText( v, '' ); end; end; end, false ); addEventHandler( 'onClientGUIChanged', root, function() if source == hc_gui['edit_intID'] or source == hc_gui['edit_dim'] or source == hc_gui['edit_cost'] then local currText = guiGetText( source ); local newText = string.gsub( currText, '[^0-9]', '' ); if newText ~= currText then guiSetText( source, newText ); end; end; end ); addEventHandler( 'onClientGUIClick', hc_gui['btn_create'], function( btn ) if btn ~= 'left' then return false; end; for i, v in pairs( hc_edit ) do if guiGetText( v ) == '' then outputChatBox( '* Alle Eingabefelder müssen ausgefüllt werden!', 255, 51, 36 ); return false; end; end; for i, v in pairs( hc_gui ) do if getElementType( v ) == 'gui-edit' and guiGetText( v ) == '' then outputChatBox( '* Alle Eingabefelder müssen ausgefüllt werden!', 255, 51, 36 ); return false; end; end; local tableToSend = { [1] = guiGetText( hc_edit['edit_ec_X'] ), [4] = guiGetText( hc_edit['edit_etc_X'] ), [2] = guiGetText( hc_edit['edit_ec_Y'] ), [5] = guiGetText( hc_edit['edit_etc_Y'] ), [3] = guiGetText( hc_edit['edit_ec_Z'] ), [6] = guiGetText( hc_edit['edit_etc_Z'] ), [7] = guiGetText( hc_edit['edit_exc_X'] ), [10] = guiGetText( hc_edit['edit_extc_X'] ), [8] = guiGetText( hc_edit['edit_exc_Y'] ), [11] = guiGetText( hc_edit['edit_extc_Y'] ), [9] = guiGetText( hc_edit['edit_exc_Z'] ), [12] = guiGetText( hc_edit['edit_extc_Z'] ), [13] = guiGetText( hc_gui['edit_intID'] ), [14] = guiGetText( hc_gui['edit_dim'] ), [15] = guiGetText( hc_gui['edit_cost'] ) }; for i, v in ipairs( tableToSend ) do tableToSend[ i ] = tonumber( tableToSend[ i ] ); end; triggerServerEvent( 'onPlayerAttemptCreateHouse', me, tableToSend ); triggerEvent( 'HP_SetVisible', me, false ); end, false ); hm_gui['main'] = guiCreateWindow( scX-360, scY-360, 350, 350, 'Hausverwaltung von German_Reallife_German', false ); guiSetAlpha( hm_gui['main'], 1.0 ); hm_gui['label_buy'] = guiCreateLabel( 0.03, 0.08, 0.255, 0.1, 'Kaufen', true, hm_gui['main'] ); guiLabelSetHorizontalAlign( hm_gui['label_buy'], 'center', true ); guiLabelSetColor( hm_gui['label_buy'], 0, 153, 255 ); hm_gui['bck_buy'] = guiCreateGridList( 0.03, 0.15, 0.255, 0.255, true, hm_gui['main'] ); hm_gui['icon_buy'] = guiCreateStaticImage( 0.005, 0.05, 1.0, 1.0, 'images/script/icon_buy.png', true, hm_gui['bck_buy'] ); hm_gui['label_sale'] = guiCreateLabel( 0.365, 0.08, 0.255, 0.1, 'Verkaufen', true, hm_gui['main'] ); guiLabelSetHorizontalAlign( hm_gui['label_sale'], 'center', true ); guiLabelSetColor( hm_gui['label_sale'], 0, 153, 255 ); hm_gui['bck_sale'] = guiCreateGridList( 0.365, 0.15, 0.255, 0.255, true, hm_gui['main'] ); hm_gui['icon_sale'] = guiCreateStaticImage( 0.005, 0.05, 1.0, 1.0, 'images/script/icon_sale.png', true, hm_gui['bck_sale'] ); hm_gui['label_key'] = guiCreateLabel( 0.7, 0.08, 0.255, 0.1, 'Neuer Code', true, hm_gui['main'] ); guiLabelSetHorizontalAlign( hm_gui['label_key'], 'center', true ); guiLabelSetColor( hm_gui['label_key'], 0, 153, 255 ); hm_gui['bck_key'] = guiCreateGridList( 0.7, 0.15, 0.255, 0.255, true, hm_gui['main'] ); hm_gui['icon_key'] = guiCreateStaticImage( 0.005, 0.05, 1.0, 1.0, 'images/script/icon_key.png', true, hm_gui['bck_key'] ); hm_gui['label_enter'] = guiCreateLabel( 0.03, 0.45, 0.265, 0.1, 'Rein gehen', true, hm_gui['main'] ); guiLabelSetHorizontalAlign( hm_gui['label_enter'], 'center', true ); guiLabelSetColor( hm_gui['label_enter'], 0, 153, 255 ); hm_gui['bck_enter'] = guiCreateGridList( 0.03, 0.53, 0.255, 0.255, true, hm_gui['main'] ); hm_gui['icon_enter'] = guiCreateStaticImage( 0.005, 0.05, 1.0, 1.0, 'images/script/icon_enter.png', true, hm_gui['bck_enter'] ); hm_gui['label_newowner'] = guiCreateLabel( 0.365, 0.45, 0.255, 0.1, 'Verschenken', true, hm_gui['main'] ); guiLabelSetHorizontalAlign( hm_gui['label_newowner'], 'center', true ); guiLabelSetColor( hm_gui['label_newowner'], 0, 153, 255 ); hm_gui['bck_newowner'] = guiCreateGridList( 0.365, 0.53, 0.255, 0.255, true, hm_gui['main'] ); hm_gui['icon_newowner'] = guiCreateStaticImage( 0.005, 0.05, 1.0, 1.0, 'images/script/icon_newowner.png', true, hm_gui['bck_newowner'] ); hm_gui['label_destroy'] = guiCreateLabel( 0.68, 0.45, 0.295, 0.1, 'Delete', true, hm_gui['main'] ); guiLabelSetHorizontalAlign( hm_gui['label_destroy'], 'center', true ); guiLabelSetColor( hm_gui['label_destroy'], 0, 153, 255 ); hm_gui['bck_destroy'] = guiCreateGridList( 0.7, 0.53, 0.255, 0.255, true, hm_gui['main'] ); hm_gui['icon_destroy'] = guiCreateStaticImage( 0.005, 0.05, 1.0, 1.0, 'images/script/icon_destroy.png', true, hm_gui['bck_destroy'] ); addEventHandler( 'onClientMouseEnter', root, function() for i, v in ipairs( { 'buy', 'sale', 'key', 'enter', 'newowner', 'destroy' } ) do if source == hm_gui['bck_'..v] or source == hm_gui['icon_'..v] then guiSetAlpha( hm_gui['icon_'..v], 0.5 ); break; end; end; end ); addEventHandler( 'onClientMouseLeave', root, function() for i, v in ipairs( { 'buy', 'sale', 'key', 'enter', 'newowner', 'destroy' } ) do if source == hm_gui['bck_'..v] or source == hm_gui['icon_'..v] then guiSetAlpha( hm_gui['icon_'..v], 1.0 ); break; end; end; end ); hm_gui['label_ID'] = guiCreateLabel( 0.05, 0.82, 0.25, 0.1, 'Haus ID: ', true, hm_gui['main'] ); hm_gui['label_owner'] = guiCreateLabel( 0.05, 0.88, 0.25, 0.1, 'Besitzer: ', true, hm_gui['main'] ); hm_gui['label_price'] = guiCreateLabel( 0.4, 0.82, 0.25, 0.1, 'Haus Preis: ', true, hm_gui['main'] ); hm_gui['label_ID_dyn'] = guiCreateLabel( 0.22, 0.82, 0.25, 0.1, '0', true, hm_gui['main'] ); hm_gui['label_owner_dyn'] = guiCreateLabel( 0.29, 0.88, 0.49, 0.1, 'none', true, hm_gui['main'] ); hm_gui['label_price_dyn'] = guiCreateLabel( 0.64, 0.82, 0.35, 0.1, '0', true, hm_gui['main'] ); hm_gui['btn_close'] = guiCreateButton( 0.89, 0.89, 0.07, 0.07, 'X', true, hm_gui['main'] ); guiSetVisible( hm_gui['main'], false ); addEventHandler( 'onClientGUIClick', hm_gui['btn_close'], function( btn ) if btn ~= 'left' then return false; end; guiSetVisible( hm_gui['main'], false ); triggerServerEvent( 'setFrozen', me, false ); showCursor( false ); end, false ); addEventHandler( 'onClientGUIClick', root, function( btn ) if btn ~= 'left' then return false; end; if source == hm_gui['icon_buy'] then guiSetVisible( hm_gui['main'], false ); guiSetVisible( hm_gui['wnd_key_onBuy'], true ); guiSetText( hm_gui['onBuy_edit'], 'Code' ); playSound( 'sounds/click_icon.wav' ); guiSetInputEnabled( true ); elseif source == hm_gui['icon_sale'] then guiSetVisible( hm_gui['main'], false ); guiSetVisible( hm_gui['wnd_key_onSale'], true ); guiSetText( hm_gui['onSale_edit'], 'Code' ); playSound( 'sounds/click_icon.wav' ); guiSetInputEnabled( true ); elseif source == hm_gui['icon_key'] then guiSetVisible( hm_gui['main'], false ); guiSetVisible( hm_gui['wnd_key_onChange'], true ); guiSetText( hm_gui['onChange_edit_Old'], 'Alter Code' ); guiSetText( hm_gui['onChange_edit_New'], 'Neuer Code' ); guiSetText( hm_gui['onChange_edit_RepeatNew'], 'Code nochmals' ); playSound( 'sounds/click_icon.wav' ); guiSetInputEnabled( true ); elseif source == hm_gui['icon_newowner'] then guiSetVisible( hm_gui['main'], false ); guiSetVisible( hm_gui['wnd_key_onNewOwner'], true ); guiSetText( hm_gui['onNewOwner_keyEdit'], 'Code' ); guiSetText( hm_gui['onNewOwner_nameEdit'], 'Player name' ); playSound( 'sounds/click_icon.wav' ); guiSetInputEnabled( true ); elseif source == hm_gui['icon_destroy'] then guiSetVisible( hm_gui['main'], false ); guiSetVisible( hm_gui['wnd_onDestroy'], true ); playSound( 'sounds/click_icon.wav' ); end; end ); --Buy hm_gui['wnd_key_onBuy'] = guiCreateWindow( scX/2-250/2, scY/2-150/2, 250, 150, 'Code | Passwort', false ); guiSetAlpha( hm_gui['wnd_key_onBuy'], 1.0 ); hm_gui['onBuy_label'] = guiCreateLabel( 0.05, 0.15, 0.9, 0.4, "Sie sind dabei, das Haus zu kaufen. Geben Sie in Ihren Schlüssel so niemand sonst kann in diesem Haus zu bekommen. Vergessen sie es nicht!", true, hm_gui['wnd_key_onBuy'] ); guiLabelSetHorizontalAlign( hm_gui['onBuy_label'], 'center', true ); guiLabelSetColor( hm_gui['onBuy_label'], 0, 153, 255 ); hm_gui['onBuy_edit'] = guiCreateEdit( 0.14, 0.5, 0.7, 0.15, '', true, hm_gui['wnd_key_onBuy'] ); hm_gui['onBuy_confirm'] = guiCreateButton( 0.2, 0.75, 0.2, 0.15, 'OK', true, hm_gui['wnd_key_onBuy'] ); hm_gui['onBuy_cancel'] = guiCreateButton( 0.57, 0.75, 0.2, 0.15, 'Cancel', true, hm_gui['wnd_key_onBuy'] ); guiSetVisible( hm_gui['wnd_key_onBuy'], false ); --Sale hm_gui['wnd_key_onSale'] = guiCreateWindow( scX/2-250/2, scY/2-150/2, 250, 150, 'Code | Passwort', false ); guiSetAlpha( hm_gui['wnd_key_onSale'], 1.0 ); hm_gui['onSale_label'] = guiCreateLabel( 0.05, 0.15, 0.9, 0.4, "Sie sind dabei, dieses Haus in der Hälfte es den Preis zu verkaufen. Geben Sie Ihre Schlüssel zu bestätigen, dass Sie der wirkliche Besitzer sind.", true, hm_gui['wnd_key_onSale'] ); guiLabelSetHorizontalAlign( hm_gui['onSale_label'], 'center', true ); guiLabelSetColor( hm_gui['onSale_label'], 0, 153, 255 ); hm_gui['onSale_edit'] = guiCreateEdit( 0.14, 0.5, 0.7, 0.15, '', true, hm_gui['wnd_key_onSale'] ); hm_gui['onSale_confirm'] = guiCreateButton( 0.2, 0.75, 0.2, 0.15, 'OK', true, hm_gui['wnd_key_onSale'] ); hm_gui['onSale_cancel'] = guiCreateButton( 0.57, 0.75, 0.2, 0.15, 'Cancel', true, hm_gui['wnd_key_onSale'] ); guiSetVisible( hm_gui['wnd_key_onSale'], false ); addEventHandler( 'onClientGUIClick', root, function( btn ) if btn ~= 'left' then return false; end; if source == hm_gui['onBuy_edit'] then guiSetText( hm_gui['onBuy_edit'], '' ); end; if source == hm_gui['onBuy_confirm'] then local passTxt = guiGetText( hm_gui['onBuy_edit'] ); if #passTxt >= getElementData( me, 'k_len' ) then if not passTxt:find( ' ' ) then triggerServerEvent( 'HOUSE_Buy', me, guiGetText( hm_gui['label_price_dyn'] ), guiGetText( hm_gui['onBuy_edit'] ) ); guiSetText( hm_gui['onBuy_edit'], '' ); guiSetVisible( hm_gui['wnd_key_onBuy'], false ); showCursor( false ); playSound( 'sounds/click_confirm.wav' ); guiSetInputEnabled( false ); else outputChatBox( '* Die Hausschlüssel darf keine Leerzeichen enthalten!', 255, 51, 36 ); end; else outputChatBox( '* Die Schlüssellänge muss mindestens'..tostring( getElementData( me, 'k_len' ) )..' Zeichen lang sein!', 255, 51, 36 ); end; elseif source == hm_gui['onBuy_cancel'] then guiSetText( hm_gui['onBuy_edit'], '' ); guiSetVisible( hm_gui['wnd_key_onBuy'], false ); guiSetVisible( hm_gui['main'], true ); guiSetInputEnabled( false ); end; end ); addEventHandler( 'onClientGUIClick', root, function( btn ) if btn ~= 'left' then return false; end; if source == hm_gui['onSale_edit'] then guiSetText( hm_gui['onSale_edit'], '' ); end; if source == hm_gui['onSale_confirm'] then local mrk = getHouseByID( getElementData( me, 'mrk_in' ) ); if guiGetText( hm_gui['onSale_edit'] ) == getElementData( mrk, 'HS_INFO' )[8] then triggerServerEvent( 'HOUSE_Sell', me ); outputChatBox( '* Sie haben nun Ihr Haus verkauft!', 255, 255, 0 ); guiSetText( hm_gui['onSale_edit'], '' ); guiSetVisible( hm_gui['wnd_key_onSale'], false ); playSound( 'sounds/click_confirm.wav' ); guiSetInputEnabled( false ); else outputChatBox( '* Invalid key!', 255, 51, 36 ); end; elseif source == hm_gui['onSale_cancel'] then guiSetText( hm_gui['onSale_edit'], '' ); guiSetVisible( hm_gui['wnd_key_onSale'], false ); guiSetVisible( hm_gui['main'], true ); guiSetInputEnabled( false ); end; end ); hm_gui['wnd_key_onChange'] = guiCreateWindow( scX/2-250/2, scY/2-250/2, 250, 250, 'Key | Password', false ); guiSetAlpha( hm_gui['wnd_key_onChange'], 1.0 ); hm_gui['onChange_label'] = guiCreateLabel( 0.05, 0.15, 0.9, 0.4, "So ändern Sie die Taste, geben in Ihren alten Schlüssel und dann eine neue.", true, hm_gui['wnd_key_onChange'] ); guiLabelSetHorizontalAlign( hm_gui['onChange_label'], 'center', true ); guiLabelSetColor( hm_gui['onChange_label'], 0, 153, 255 ); hm_gui['onChange_edit_Old'] = guiCreateEdit( 0.14, 0.3, 0.7, 0.1, 'Alter Code', true, hm_gui['wnd_key_onChange'] ); hm_gui['onChange_edit_New'] = guiCreateEdit( 0.14, 0.45, 0.7, 0.1, 'Neuer Code', true, hm_gui['wnd_key_onChange'] ); hm_gui['onChange_edit_RepeatNew'] = guiCreateEdit( 0.14, 0.6, 0.7, 0.1, 'Wiederholen', true, hm_gui['wnd_key_onChange'] ); hm_gui['onChange_confirm'] = guiCreateButton( 0.2, 0.75, 0.23, 0.11, 'OK', true, hm_gui['wnd_key_onChange'] ); hm_gui['onChange_cancel'] = guiCreateButton( 0.525, 0.75, 0.23, 0.11, 'Abbruch', true, hm_gui['wnd_key_onChange'] ); guiSetVisible( hm_gui['wnd_key_onChange'], false ); addEventHandler( 'onClientGUIClick', root, function( btn ) if btn ~= 'left' then return false; end; if source == hm_gui['onChange_edit_Old'] or source == hm_gui['onChange_edit_New'] or source == hm_gui['onChange_edit_RepeatNew'] then guiSetText( source, '' ); elseif source == hm_gui['onChange_confirm'] then local mrk = getHouseByID( getElementData( me, 'mrk_in' ) ); local currKey = getElementData( mrk, 'HS_INFO' )[8]; if guiGetText( hm_gui['onChange_edit_Old'] ) == currKey then if #guiGetText( hm_gui['onChange_edit_New'] ) >= getElementData( me, 'k_len' ) then if guiGetText( hm_gui['onChange_edit_New'] ) == guiGetText( hm_gui['onChange_edit_RepeatNew'] ) then triggerServerEvent( 'HOUSE_ChangeKey', me, guiGetText( hm_gui['onChange_edit_RepeatNew'] ) ); outputChatBox( '* New Key has been set to #00FF00'..guiGetText( hm_gui['onChange_edit_RepeatNew'] ), 255, 51, 36, true ); guiSetText( hm_gui['onChange_edit_Old'], '' ); guiSetText( hm_gui['onChange_edit_New'], '' ); guiSetText( hm_gui['onChange_edit_RepeatNew'], '' ); guiSetVisible( hm_gui['wnd_key_onChange'], false ); guiSetVisible( hm_gui['main'], true ); playSound( 'sounds/click_confirm.wav' ); guiSetInputEnabled( false ); else outputChatBox( '* Die neuen Schlüssel sind unterschiedlich. Überprüfen Sie ihre Ähnlichkeit!', 255, 51, 36 ); end; else outputChatBox( '* The key length must be at least '..tostring( getElementData( me, 'k_len' ) )..' characters long!', 255, 51, 36 ); end; else outputChatBox( '* Der alte Code ist Falsch ERROR: !!!Bitte in der Website vom Server melden!!!!', 255, 51, 36 ); end; elseif source == hm_gui['onChange_cancel'] then guiSetVisible( hm_gui['wnd_key_onChange'], false ); guiSetText( hm_gui['onChange_edit_Old'], '' ); guiSetText( hm_gui['onChange_edit_New'], '' ); guiSetText( hm_gui['onChange_edit_RepeatNew'], '' ); guiSetVisible( hm_gui['main'], true ); guiSetInputEnabled( false ); end; end ); hm_gui['wnd_key_onNewOwner'] = guiCreateWindow( scX/2-250/2, scY/2-250/2, 250, 250, "Neuer Besistzer Name", false ); guiSetAlpha( hm_gui['wnd_key_onNewOwner'], 1.0 ); hm_gui['onNewOwner_label'] = guiCreateLabel( 0.05, 0.11, 0.9, 0.4, "Geben Sie in dem neuen Eigentümer des Kontos Namen und Ihre aktuellen Schlüssel. HINWEIS: Nach dieser Operation werden Sie nicht der Besitzer dieses Haus nicht mehr sein!", true, hm_gui['wnd_key_onNewOwner'] ); guiLabelSetHorizontalAlign( hm_gui['onNewOwner_label'], 'center', true ); guiLabelSetColor( hm_gui['onNewOwner_label'], 0, 153, 255 ); hm_gui['onNewOwner_keyEdit'] = guiCreateEdit( 0.14, 0.45, 0.7, 0.1, 'Code', true, hm_gui['wnd_key_onNewOwner'] ); hm_gui['onNewOwner_nameEdit'] = guiCreateEdit( 0.14, 0.6, 0.7, 0.1, 'Name', true, hm_gui['wnd_key_onNewOwner'] ); hm_gui['onNewOwner_confirm'] = guiCreateButton( 0.2, 0.75, 0.27, 0.11, 'OK', true, hm_gui['wnd_key_onNewOwner'] ); hm_gui['onNewOwner_cancel'] = guiCreateButton( 0.5, 0.75, 0.27, 0.11, 'Cancel', true, hm_gui['wnd_key_onNewOwner'] ); guiSetVisible( hm_gui['wnd_key_onNewOwner'], false ); addEventHandler( 'onClientGUIClick', root, function( btn ) if btn ~= 'left' then return false; end; if source == hm_gui['onNewOwner_keyEdit'] or source == hm_gui['onNewOwner_nameEdit'] then guiSetText( source, '' ); end; end ); addEventHandler( 'onClientGUIClick', root, function( btn ) if btn ~= 'left' then return false; end; if source == hm_gui['onNewOwner_confirm'] then if not guiGetText( hm_gui['onNewOwner_nameEdit'] ):find( ' ' ) then if guiGetText( hm_gui['onNewOwner_nameEdit'] ) ~= getPlayerName( me ) then if getPlayerByAccountName( guiGetText( hm_gui['onNewOwner_nameEdit'] ) ) then if guiGetText( hm_gui['onNewOwner_keyEdit'] ) == getElementData( getHouseByID( getElementData( me, 'mrk_in' ) ), 'HS_INFO' )[8] then triggerServerEvent( 'HOUSE_ChangeOwner', me, guiGetText( hm_gui['onNewOwner_nameEdit'] ) ); outputChatBox( '* The new owner of this house is #00FF00'..guiGetText( hm_gui['onNewOwner_nameEdit'] ):gsub( "%x%x%x%x%x%x", "" )..' for now!', 255, 51, 36, true ); guiSetText( hm_gui['onNewOwner_nameEdit'], '' ); guiSetVisible( hm_gui['wnd_key_onNewOwner'], false ); playSound( 'sounds/click_confirm.wav' ); guiSetInputEnabled( false ); else outputChatBox( '*Falscher Code! versuchen Sie es erneut.', 255, 51, 36 ); guiSetText( hm_gui['onNewOwner_nameEdit'], '' ); guiSetText( hm_gui['onNewOwner_keyEdit'], '' ); end; else outputChatBox( '* Keine solche Spieler gefunden!', 255, 51, 36 ); end; end; else outputChatBox( "* Der neue Eigentümer den Namen darf keine Leerzeichen enthalten!", 255, 51, 36 ); end; elseif source == hm_gui['onNewOwner_cancel'] then guiSetText( hm_gui['onNewOwner_keyEdit'], '' ); guiSetText( hm_gui['onNewOwner_nameEdit'], '' ); guiSetVisible( hm_gui['wnd_key_onNewOwner'], false ); guiSetVisible( hm_gui['main'], true ); guiSetInputEnabled( false ); end; end ); hm_gui['wnd_onDestroy'] = guiCreateWindow( scX/2-250/2, scY/2-150/2, 250, 150, 'Destroy the House', false ); guiSetAlpha( hm_gui['wnd_onDestroy'], 1.0 ); hm_gui['onDestroy_label'] = guiCreateLabel( 0.05, 0.23, 0.9, 0.4, 'Sind Sie sicher, dass Sie dieses Haus zerstören?', true, hm_gui['wnd_onDestroy'] ); guiLabelSetHorizontalAlign( hm_gui['onDestroy_label'], 'center', true ); guiLabelSetColor( hm_gui['onDestroy_label'], 0, 153, 255 ); hm_gui['onDestroy_confirm'] = guiCreateButton( 0.2, 0.65, 0.2, 0.15, 'OK', true, hm_gui['wnd_onDestroy'] ); hm_gui['onDestroy_cancel'] = guiCreateButton( 0.57, 0.65, 0.2, 0.15, 'Cancel', true, hm_gui['wnd_onDestroy'] ); guiSetVisible( hm_gui['wnd_onDestroy'], false ); addEventHandler( 'onClientGUIClick', root, function( btn ) if btn ~= 'left' then return false; end; if source == hm_gui['onDestroy_confirm'] then triggerServerEvent( 'HOUSE_Destroy', me ); guiSetVisible( hm_gui['wnd_onDestroy'], false ); showCursor( false ); playSound( 'sounds/click_confirm.wav' ); elseif source == hm_gui['onDestroy_cancel'] then guiSetVisible( hm_gui['wnd_onDestroy'], false ); guiSetVisible( hm_gui['main'], true ); end; end ); hm_gui['wnd_key_onEnter'] = guiCreateWindow( scX/2-250/2, scY/2-150/2, 250, 150, 'Key | Password', false ); guiSetAlpha( hm_gui['wnd_key_onEnter'], 1.0 ); hm_gui['onEnter_label'] = guiCreateLabel( 0.05, 0.15, 0.9, 0.4, "Sie sind dabei, das Haus zu betreten. Geben Sie in Ihren Schlüssel, bitte:", true, hm_gui['wnd_key_onEnter'] ); guiLabelSetHorizontalAlign( hm_gui['onEnter_label'], 'center', true ); guiLabelSetColor( hm_gui['onEnter_label'], 0, 153, 255 ); hm_gui['onEnter_edit'] = guiCreateEdit( 0.14, 0.5, 0.7, 0.15, '', true, hm_gui['wnd_key_onEnter'] ); hm_gui['onEnter_confirm'] = guiCreateButton( 0.2, 0.75, 0.2, 0.15, 'Confirm', true, hm_gui['wnd_key_onEnter'] ); hm_gui['onEnter_cancel'] = guiCreateButton( 0.57, 0.75, 0.2, 0.15, 'Cancel', true, hm_gui['wnd_key_onEnter'] ); guiSetVisible( hm_gui['wnd_key_onEnter'], false ); addEventHandler( 'onClientGUIClick', root, function( btn ) if btn ~= 'left' then return false; end; if source == hm_gui['onEnter_edit'] then guiSetText( hm_gui['onEnter_edit'], '' ); end; if source == hm_gui['icon_enter'] then guiSetVisible( hm_gui['main'], false ); guiSetVisible( hm_gui['wnd_key_onEnter'], true ); guiSetText( hm_gui['onEnter_edit'], 'Key' ); playSound( 'sounds/click_icon.wav' ); guiSetInputEnabled( true ); elseif source == hm_gui['onEnter_confirm'] then local mrk = getHouseByID( getElementData( me, 'mrk_in' ) ); if guiGetText( hm_gui['onEnter_edit'] ) == getElementData( mrk, 'HS_INFO' )[8] then guiSetVisible( hm_gui['wnd_key_onEnter'], false ); showCursor( false ); triggerServerEvent( 'HOUSE_Enter', me ); playSound( 'sounds/click_confirm.wav' ); guiSetInputEnabled( false ); else outputChatBox( '* Invalid key!', 255, 51, 36 ); end; elseif source == hm_gui['onEnter_cancel'] then guiSetVisible( hm_gui['wnd_key_onEnter'], false ); guiSetVisible( hm_gui['main'], true ); guiSetInputEnabled( false ); end; end ); for i, v in pairs( hm_gui ) do guiSetFont( v, 'default-bold-small' ); if getElementType( v ) == 'gui-button' then guiButtonSetColor( v, '0099FFFF' ); end; if getElementType( v ) == 'gui-window' then guiWindowSetMovable( v, false ); guiWindowSetSizable( v, false ); end; end; setElementData( me, 'HP_Opened', false ); if getElementData( me, 'mrk_in' ) then triggerServerEvent( 'setFrozen', me, false ); end; end ); addEventHandler( 'onClientResourceStop', resourceRoot, function() if getElementData( me, 'mrk_in' ) then triggerServerEvent( 'setFrozen', me, false ); end; end ); function getPlayerByAccountName( name ) for i, v in ipairs( getElementsByType( 'player' ) ) do if getElementData( v, 'HS_accountName' ) == name then return v; end; end; return false; end; function guiButtonSetColor( btn, hex ) guiSetProperty( btn, "HoverTextColour", string.sub( hex, 7, 8 )..string.sub( hex, 1, 6 ) ); end; addEvent( 'HP_SetVisible', true ); addEventHandler( 'HP_SetVisible', root, function( state ) guiSetVisible( hc_gui['main'], state ); guiSetVisible( hc_gui['main_add'], state ); showCursor( state ); setElementData( me, 'HP_Opened', state ); if state then bindKey( 'mouse2', 'down', showHide ); else unbindKey( 'mouse2', 'down', showHide ); end; end ); function showHide() showCursor( not isCursorShowing() ); end; local cursorOverGUI = false; addEventHandler( 'onClientMouseEnter', root, function() cursorOverGUI = true; end ); addEventHandler( 'onClientMouseLeave', root, function() cursorOverGUI = false; end ); addEventHandler( 'onClientElementDataChange', me, function( name ) if name == 'HP_Opened' then if getElementData( me, name ) then addEventHandler( 'onClientRender', root, drawCrsrInfo ); else removeEventHandler( 'onClientRender', root, drawCrsrInfo ); end; end; end ); function drawCrsrInfo() if isCursorShowing() and not cursorOverGUI then local x, y = getCursorPosition(); if x and y then dxDrawText( 'RMB zum Anzeigen / Verbergen Cursor', scX * x + 10, scY * y - 10, scX, scY, tocolor( 255, 255, 255, 255 ), 1, 'default', 'left', 'top', false, false, true ); end; end; end; addEvent( 'openHouseManagementWnd', true ); addEventHandler('openHouseManagementWnd', root, function( rt, cursor ) for i, cname in ipairs( { 'buy', 'sale', 'key', 'enter', 'newowner', 'destroy' } ) do guiSetEnabled( hm_gui['bck_'..cname], rt[i] ); guiSetEnabled( hm_gui['icon_'..cname], rt[i] ); if not rt[i] then guiSetAlpha( hm_gui['icon_'..cname], 0.3 ); else guiSetAlpha( hm_gui['icon_'..cname], 1.0 ); end; end; guiSetText( hm_gui['label_ID_dyn'], rt[7] ); guiSetText( hm_gui['label_owner_dyn'], rt[8] ); guiSetText( hm_gui['label_price_dyn'], rt[9] ); guiSetVisible( hm_gui['main'], true ); if cursor then showCursor( true ); end; end ); addEventHandler( 'onClientPlayerWasted', me, function() for i, v in pairs( hc_gui ) do if getElementType( hc_gui[ i ] ) == 'gui-window' then guiSetVisible( hc_gui[ i ], false ); end; end; for i, v in pairs( hm_gui ) do if getElementType( hm_gui[ i ] ) == 'gui-window' then guiSetVisible( hm_gui[ i ], false ); end; end; if isCursorShowing() then showCursor( false ); end; triggerEvent( 'HP_SetVisible', me, false ); guiSetInputEnabled( false ); end ); local l_w = 64; local l_h = 64; local l_ratio = l_w / l_h; local lscale_w = 1920 / scX; l_w = l_w / lscale_w; l_h = l_w / l_ratio; addEventHandler( 'onClientRender', root, function() for i, v in ipairs( getElementsByType( 'marker', getResourceRootElement(), true ) ) do if getElementData( v, 'HS_INFO' ) then local x, y, z = getElementPosition( v ); local cx, cy, cz = getCameraMatrix(); if isLineOfSightClear( cx, cy, cz, x, y, z, false, false, false, false, false, false, false, v ) then local dist = getDistanceBetweenPoints3D( cx, cy, cz, x, y, z ); if dist >= 5 and dist <= 15 then local px, py = getScreenFromWorldPosition( x, y, z + 1.8, 0.06 ); if px then local owner = getElementData( v, 'HS_INFO' )[7]; local price = getElementData( v, 'HS_INFO' )[6]; local r, g, b = getMarkerColor( v ); if r == 0 and g == 153 and b == 255 then r, g, b = 255, 255, 255; end; if owner then if owner == '' then owner = 'none'; end; dxDrawText( 'Besitzer: '..owner, px + 1, py + scY/38, px + 1, py + 1, tocolor( 0, 0, 0, 255 ), 1, 'default-bold', 'center', 'center', false, false ); dxDrawText( 'Besitzer: '..owner, px, py + scY/38, px, py, tocolor( 255, 255, 255, 255 ), 1, 'default-bold', 'center', 'center', false, false ); dxDrawText( 'Preis: $ '..tostring( price ), px + 1, py + scY/15, px + 1, py + 1, tocolor( 0, 0, 0, 255 ), 1, 'default-bold', 'center', 'center', false, false ); dxDrawText( 'Preis: $ '..tostring( price ), px, py + scY/15, px, py, tocolor( 255, 255, 255, 255 ), 1, 'default-bold', 'center', 'center', false, false ); dxDrawImage( px-l_w/2, py - scY/17, l_w, l_h, 'images/script/house_.png', 0, 0, 0, tocolor( r, g, b, 255 ) ); end; end; end; end; end; end; end ); function getHouseByID( ID ) for i, v in ipairs( getElementsByType( 'marker', getResourceRootElement() ) ) do if getElementData( v, 'HS_INFO' ) then if getElementData( v, 'HS_INFO' )[9] == ID then return v; end; end; end; return false; end; bindKey( 'i', 'both', function( key, keyState ) if keyState == 'down' then for k, v in ipairs ( getElementsByType( 'marker', getResourceRootElement() ) ) do if getElementData( v, 'HS_INFO' ) and getElementData( v, 'HS_INFO' )[7] then if getElementData( v, 'HS_INFO' )[7] ~= '' then createBlipAttachedTo( v, 32 ); else createBlipAttachedTo( v, 31 ); end; end; end; else for k, v in ipairs( getElementsByType( 'marker', getResourceRootElement() ) ) do if getElementData( v, 'HS_INFO' ) then for k, elem in ipairs( getAttachedElements( v ) ) do if getElementType( elem ) == 'blip' then destroyElement( elem ); end; end; end; end; end; end );
So ich hoffe ihr könnt mir damit helfen *?*
Danke im vorraus *:)*
Ps: Es sollte mit Godmother kompatibel sein am besten in der Spawnpunktfunktion mit drinne aber ich weiß nicht wo die eingestellt ist *?(*
-
Wir können dir bei deinem Problem nur helfen, wenn du uns dein aktuellen Script zeigst.
ok ich dachte es wäre in diesem Fall unötigLuasetTimer (function() local hour = getTime().hour if hour >= 22 or hour <= 4 then setSkyGradient( 0 , 0 , 0 , 0 , 0 , 0 ) else resetSkyGradient() end end, 300000, 0)
Gibt es eine Seite wo man auf deutsch nachschauen kann welche functions es gibt? also so wie die MTA Seite? Ich kann zwar englisch aber manchmal weiß ich nicht was gemeint ist.
Ideen sind auch willkommen
Erstmal danke im voraus *thumbup*
-
so also es funktioniert nicht ganz ,der Himmel ist erst um 3:50 Grau aber ab 4 Uhr kam im Debugmode 3 folgender Error: Zeile 2: attempt to index a number value. Also wie geschrieben soll der Himmel dauerhaft schwartz sein im Zeitraum von 22 Uhr bis 4 Uhr morgens. Alle Stunden davor und danach ist die Timerzeit wo sich der normale Himmel langsam in den schwarzen Himmel verwandelt genau umgekehrt wenn es 4 Uhr ist. Der Himmel soll von schwartz sich wieder reseten. Ist das denn so möglich oder muss ich da was anderes machen? Und was hat der Fehler zu bedeuten?
-
Ich dache es heißt
Wenn Stunde ist gleich 22 und Stunde 4 dann
soll er Himmelfarbe schwartz setzen *lol*
Wie würde es denn sonst geschrieben werden??
So?Also ich glaube dieses
ist für gleich gemeint also größer oder kleiner müsste ich vielleicht es so machen?:Ich hoffe ich liege da nicht falsch *?(*
Aber ist es überhaupt möglich die Farbe von standart langsam in schwartz umzuwandeln?
-
Also danke erstmal, ich habe den Gamespeed und die Uhrzeit per Adminpanel geändert trotzdem wird der Himmel nicht richtig schwartz wie es im Skript angegeben ist.
Um nochmal es klar zustellen wenn 22 Uhr ist soll der Himmel schon schwartz sein und schwartz bleiben bis 4 Uhr morgens. Ab 4 Uhr wird der Himmel dann wieder langsam per Timer zu normalen Farbe, das also auch umgekehrt wenn es 22 Uhr wird. Also ab 8 Uhr soll der Himmel dunkeler werden und die orginal Himmelfarbe ändert sich dann im Zeitraum von 8 bis 22 Uhr zu schwartz. So wie ich es jetzt in MTA es habe würde es heißen das mitten im Zeitraum von 22 Uhr bis 4 Uhr der Himmel schwartz wird HÄ?Ich hoffe ihr könnt mir da weiterhelfen
-
Bitte kann einer helfen??
-
Du musst den Himmel auch wieder "zurückändern".
Oh ich dachte das geschied automatisch durch den Zeitraum, aber ich weiß nicht wie der orginal colorcode für den Himmel heißt. Kann man ihn per resetsky oder sowas zurücksetzen?
Und ist der Timer in der richtigen Zeile? -
Les dir durch wie funktionen gehen, bevor du sie benutzt. (Zeile
Ja habe gegoogelt aber nix ordentliches für das Timer setzten gefunden aber habe schon einiges grad verstanden:Lua
Alles anzeigenfunction startclient () local time = getRealTime() local stunde = time.hour if ( stunde >= 22 and stunde < 4 ) then setSkyGradient( 0 , 0 , 0 , 0 , 0 , 0 ) setTimer(startclient,50,0) end end
Ich weiß jetzt nicht ob der Timer unter die local stunde b.z.w die Dekleration kommen soll also so habe ich es bis jetzt aber in game scheint sich nix ändern zu wollen. Habe extra den Timer runtergeschraubt *lol*
Aber schonmal Danke im vorraus -
-
Errors? Könnte daran liegen das die Zeile "time = getRealTime()" fehlt.
Ich habe leider keine Errors gefunden
habe es jetzt so geändert:Luafunction startclient () local time = getRealTime() local stunde = time.hour if ( stunde >= 22 and stunde < 4 ) then setSkyGradient( 0 , 0 , 0 , 0 , 0 , 0 ) end end
Leider auch nicht im Debugmode
ZitatWird überhaupt irgendwo ein Timer gesetzt der dies immer wieder überprüft?
Wie soll das gehen? es ist doch schon ein onclientstart drin,wie soll ich das einbinden? In welche Zeile? Am Ende oder am Anfang und Ende?
-
Hallo Leute,
Erstmal als Anmerkung ich bin ein Noob wenn es um Lua skripten geht aber versuche es trotzdem weiter.
Nun habe ich natürlich ein Problem,
Ich habe schon vieles versucht bei Nacht also ab 22 Uhr bis 4 Uhr morgens die Himmelfarbe auf richtig realistisches schwartz zu stellen.
Das Problem,sobald ich die Himmelfarbe in kombination mit einem Zeitraum einbinde wird der Himmel nicht schwartz oder er bleibt dauerhaft schwartz.
Ich poste mal meine Skriptgrundlage und so wie ich es eingentlich versucht hab.
Grundlage:Lua
Alles anzeigenfunction startclient () setSkyGradient( 0 , 0 , 0 , 0 , 0 , 0 ) end addEventHandler( "onClientResourceStart", resourceRoot, startclient )
so und dann wollte ich das der Himmel schwartz ist bei Nacht.
Luafunction startclient () local stunde = time.hour if ( stunde >= 22 and stunde < 4 ) then setSkyGradient( 0 , 0 , 0 , 0 , 0 , 0 ) end end
Also ich habe das Gefühl das da noch was fehlt denn ich habe noch nie so einen kurtzen Skript gesehen *8|* *such*Ich hoffe ihr könnt mir helfen *thumbup* Aber bitte beachten das ich noch Noob bin in Lua *:)*
Bitte so schnell wie möglichst antworten *:D*
Auch Ideen sind Willkommen
Ps:Könnte man noch anschließend bei Nacht den Kontrast höher stellen sodass es noch dunkeler und realistischer aussieht?
MFG MrGTAmodsgerman