Das ElementData "Job" ist ein boolean Wert (true/false).
Eventuell hast du da was vertauscht oder es wird ein Boolean-Wert zurückgegeben.
- Handy
Das ElementData "Job" ist ein boolean Wert (true/false).
Eventuell hast du da was vertauscht oder es wird ein Boolean-Wert zurückgegeben.
- Handy
Das war nichts mehr als eine unhöfliche Antwort.
Dss habe ich nicht erwarten, deswegen versuche ich dir zu helfen. Aber wenn so etwas kommt, dann ist es für mich selber selbstverständlich zu zu antworten.
Naja lass das vergessen
Klappts denn?
MfG Reason
Mit Tabellen arbeiten ist ganz interessant.
Oder wie du schon sagtest; MySQL.
Dort würde ich dir aber empfehlen nicht mit den Modulen zu arbeiten.
Arbeite mit 'dbExec', 'dbPoll', 'dbQuery', ...
Ansonsten arbeite mit GUI-Elementen oder mit DirectX (dxDraw).
MfG Reason
Das hab ich gemacht, damit man es besser im Blick hat
Die meisten kommen mit so einem Script nicht klar
CruzZer:
Dann mach es selber!
Ich kann es und brauche mich gar nicht zu bedanken, danke.
Trotzdem bin ich nett, und erfülle auch das, was @pooferino: will
local objects = {
{ModellID,XXX,YYY,ZZZ,RRX,RRY,RRZ,"Das ist ein Objekt",255,0,0,"pricedown"},
{ModellID,XXX,YYY,ZZZ,RRX,RRY,RRZ,"Das ist ein Objekt",255,0,0,"pricedown"},
{ModellID,XXX,YYY,ZZZ,RRX,RRY,RRZ,"Das ist ein Objekt",255,0,0,"pricedown"}
}; -- Das Objekt,Text,R,G,B,Schriftart
addEventHandler("onResourceStart",resourceRoot,function()
for _,data in pairs (objects) do
createObject(data[1],data[2],data[3],data[4],data[5],data[6],data[7]);
end
end);
addEventHandler("onClientRender",root,function()
for key,object in pairs(objects) do
local id,x,y,z,rx,ry,rz,text,r,g,b,font = unpack(objects);
local playerPos = {getElementPosition(localPlayer)};
local camera = {getCameraMatrix()};
local screen = {getScreenFromWorldPosition(x,y,z+0.95,0.06)};
if (screen[1]) and (screen[2]) then
local distance = getDistanceBetweenPoints3D(x,y,z,playerPos[1],playerPos[2],playerPos[3]);
if (distance <= 11) then
dxDrawText(tostring(text),screen[1],screen[2]-30,screen[1],screen[2]-30,tocolor(tonumber(r),tonumber(g),tonumber(b),255),1,tostring(font),"center","bottom",false,false,false);
end
end
end
end);
Alles anzeigen
MfG Reason
Ich denke du meinst das..
https://wiki.multitheftauto.com/wiki/Math.round
MfG Reason
Das habe ich gerade eben geschrieben.
Vielleicht hilft es dir ja.
local theObject = createObject(ModellID,X,Y,Z,RX,RY,RZ); -- Das Objekt
local theText = {"Das ist ein Objekt"}; -- Text
local textColor = {255,0,0}; -- R,G,B Color
local textFont = "pricedown"; -- Schriftart
addEventHandler("onClientRender",root,function()
local objectPos = {getElementPosition(theObject)};
local playerPos = {getElementPosition(localPlayer)};
local camera = {getCameraMatrix()};
local screen = {getScreenFromWorldPosition(objectPos[1],objectPos[2],objectPos[3]+0.95,0.06)};
if (screen[1]) and (screen[2]) then
local distance = getDistanceBetweenPoints3D(objectPos[1],objectPos[2],objectPos[3],playerPos[1],playerPos[2],playerPos[3]);
if (distance <= 11) then
dxDrawText(theText[1],screen[1],screen[2]-30,screen[1],screen[2]-30,tocolor(textColor[1],textColor[2],textColor[3],255),1,textFont,"center","bottom",false,false,false);
end
end
end);
Alles anzeigen
MfG Reason
Es gibt einen LUA-Standalone, womit man LUA-Funktionen ausführen kann.
https://www.mta-sa.org/index.php?page=Thread&threadID=11468
Das sollte dir helfen.
MfG Reason
Nein kennst du nicht.
Das kann mir jeder andere hier auch sagen, tut mir leid.
Aber falls du Hilfe bei irgendetwas brauchst, dann schreib mich Privat an.
Ich helfe gerne Leuten
MfG Reason
Es ist eine hilfe.
MfG Reason
xDownByNew:
Also.. Ich empfehle dir wirklich mal die LUA-Grundlagen durchzulesen.
Das habe ich gerade für dich geschrieben, wenn das nicht hilft, dann brauchst du die Grundlagen unbedingt1
local theGate = createObject(ModellID,X,Y,Z,RX,RY,RZ);
local gateState = "up";
local open_close_seconds = 10000;
function isInAirportJob(source)
if (getElementData(source,"Job") == 1) then
return true; -- Gibt true zurück, sobald die Quelle (source) im Job 1 ist
else
return false; -- Gibt false zurück, sobald die Quelle (source) nicht im Job 1 ist
end
end
function open_theGate (source,cmd)
if (cmd) then
if (isInAirportJob(source) == true) then
if (gateState == "up") then
gateState = "down";
outputChatBox("Du hast das Tor geoeffnet!",source,255,0,0);
moveObject(theGate,open_close_seconds,X,Y,Z,RX,RY,RZ);
elseif (gateState == "down") then
gateState = "up";
moveObject(theGate,open_close_seconds,X,Y,Z,RX,RY,RZ);
outputChatBox("Du hast das Tor geschlossen!",source,255,0,0);
end
end
end
end
addCommandHandler("gate",open_theGate);
Alles anzeigen
MfG Reason
Der Marker ist ein Element.
Also:
und gegebenfalls auch
EDIT:
Meinst du vielleicht das?
-- local Marker2 = createMarker(...);
-- setElementInterior (Marker2, 3);
function MarkerAusHaus (hitElement,matchingDimension)
if (getElementType(hitElement) == "player") and (matchingDimension) then
setElementInterior(hitElement, 3, -2029.798339, -106.675910, 1035.171875)
end
end
addEventHandler ( "onMarkerHit", Marker2, MarkerAusHaus )
Das was in der Funktion ist, wird ausgeführt wenn du auf den Marker 'Marker2' gehst.
MfG Reason
http://www.canon.de/For_Home/Produ…l_SLR/EOS_450D/
Ich habe diese und bin voll zufrieden!
Ich mache Fotos wie diese (Nichts besonderes für eine Spiegelreflex Kamera):
MfG Reason
Ich sehe schon Schreibfehler im Programm.
Tut mir leid, das hätte man besser machen.
Aber die Idee im ganzen ist Super.
Jeder sollte mal so etwas machen
MfG Reason
Bitte lies dir die Grundlagen durch.
http://lua.gts-stolberg.de/
https://wiki.multitheftauto.com/wiki/DE/MTA_Scripting_Grundlagen
jobicontrucker = createPickup ( -1828.4, 99.5, 14.76, 3, 1239, 250 )
GUIEditor = {
button = {},
window = {},
label = {}
}
function showTransporteur_func ()
local screenW, screenH = guiGetScreenSize()
GUIEditor.window[1] = guiCreateWindow((screenW - 375) / 2, (screenH - 274) / 2, 375, 274, "Trucker", false)
guiWindowSetSizable(GUIEditor.window[1], false)
GUIEditor.label[1] = guiCreateLabel(8, 27, 357, 79, "Wilkommen, bereit für die Auslieferung?", false, GUIEditor.window[1])
GUIEditor.button[1] = guiCreateButton(33, 122, 125, 44, "Natürlich!", false, GUIEditor.window[1])
GUIEditor.button[2] = guiCreateButton(209, 124, 101, 42, "Nein", false, GUIEditor.window[1])
showCursor (true)
addEventHandler("onClientGUIClick",getRootElement(),function (button)
if (source == GUIEditor.button[2]) then
guiSetVisible(GUIEditor.window[1],false);
showCursor (false)
elseif (source == GUIEditor.button[1]) then
outputChatBox("HALLO");
end
end,false);
end
addEventHandler ( "onClientPickupHit", jobicontrucker, showTransporteur_func )
Alles anzeigen
Das source Element ist das Element, auf das gecklickt wird.
Steht jedenfalls hier: https://wiki.multitheftauto.com/wiki/OnClientGUIClicked
MfG Reason
Ja natürlich gibt es sowas!
Gleich wenn ich am Laptop bin schribe ich dir mal was kleines.
EDIT:
local serials = {
["DEINE_SERIAL"]=true,
["EINE_ANDERE_SERIAL"]=true
};
function cancelSerialBan ()
if (serials[getPlayerSerial(source)] == true) then
cancelEvent(true);
end
end
addEventHandler("onPlayerBan",root,cancelSerialBan);
Alles anzeigen
MfG Reason
Dann schau mal nach welche Abfragen existieren und ob alle richtig sind.
Such die Tazer- und Durchsuchungs-Funktion mal.
MfG Reason
Den Fehler hattest du schonmal!
Lies dir bitte die Grundlagen durch, bevor du anfängst zu schreiben.
Es heißt 'destroyElement' nicht 'destoryElement'.
MfG Reason
Kommen irgendwelche Fehler oder etwas in der Konsole?
MfG Reason
Muss es denn immer Ein Fenster o.A. in der Mitte oben sein?
Wieso nicht mit schöner Schrift ein Text in der Mitte?
Das kannst du dir dann sogar aussuchen, ob Client- oder Server-Seitig.
Server:
https://wiki.multitheftauto.com/wiki/Server_Sc…#Text_functions
Client:
https://wiki.multitheftauto.com/wiki/Client_Sc…ons#Text_Labels
MfG Reason
Die Variable 'NT1' und 'NT2' ist ein Boolean-Wert (true/false).
Wird er wohl irgendwo falsch genutzt?
MfG Reason