Register for your free account! | Forgot your password?

Go Back   elitepvpers > Coders Den > General Coding > Coding Tutorials
You last visited: Today at 08:47

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



[MTA SA {LUA}]Neuen HUD Erstellen

Discussion on [MTA SA {LUA}]Neuen HUD Erstellen within the Coding Tutorials forum part of the General Coding category.

Reply
 
Old   #1
 
Z1337's Avatar
 
elite*gold: 113
Join Date: Jun 2012
Posts: 110
Received Thanks: 25
Post [MTA SA {LUA}]Neuen HUD Erstellen

Inhaltsverzeichnis :
1. Erklärung der Funktionen sowie Alle Funktionen die man eigentlich für einen Hud Brauch.
2. Das Herausfinden der Position auf dem Bildschirm wo der Hud Später Hin soll.
3. Hud Erstellen

Hallo Erstmal

Ich Schreibe mein Erstes Tut über MTA(Multi Theft Auto)
Ich Hoffe ihr Versteht das Meiste wenn nicht Könnt ihr Gerne Nachfragen ich werde Versuchen Alle Fragen zu Beantworten .

Voraussetzungen :
Ein Bischen Ahnung von MTA server
Englisches Verständnis

So Nun Beginne ich mal:

1. Erklärung der Funktionen sowie Alle Funktionen die man eigentlich für einen Hud Brauch
Diese Funktionen Nutzen wir In diesem Tut jede von Ihnen werde ich mit einem Link zu der MTA wiki verlinken damit man sich Schlauer machen kann wenn man Möchte :



h











Erklärung :
getLocalPlayer = der Lokale Spieler wird Gefunden
dxCreateFont = eine Neue Schriftart wird in MTA eingefügt diese wird mit einer Datei der Resource hinzugefügt
getElementHealth = Das Leben wird Herausgefunden -Ein Wert wird ausgegeben 1-100
getPlayerMoney = Geld
guiGetScreenSize = Bildschirmauflösung wird Herausgefunden
getPedAmmoInClip = Die Munition in der Waffe die der Spieler Hält wenn er eine Waffe dabei hat wird Herausgefunden
getPedTotalAmmo = Die Totale Munition von einem Spieler wird Herausgefunden inkl aller Magazine
getPedWeapon = die Waffe des Spieler wird Herausgefunden
getWeaponNameFromID = die id die durch getPedWeapon ausgegeben wird wird zu einem Namen Gemacht
dxDrawText = ein Text wird auf den Bildschirm geschrieben
dxDrawImage = ein Bild wird auf den Bildschirm gemacht
dxDrawRectangle = Ein Rechteck wird auf den Bildschirm gemacht
getPedArmor = die Rüstung eines Spielers wird Herausgefunden -Ein Wert wird ausgegeben 1-100
showPlayerHudComponent = Die Hud Komponenten des Alten GTA huds kann man ein Und ausblenden


2. Das Herausfinden der Position auf dem Bildschirm wo der Hud Später Hin soll



Dazu Starten wir MTA, Klicken auf Host Game
Darauf achten das man den Guieditor in den Resourcen hat wenn nicht Sollte man ihn sich hier Runter laden :

das Müsste dann so Etwa aussehen :Nun Klicken wir auf Start danach Dauert es ein Bischen dann Finden wir uns Ingame wieder nun Loggen wir uns ein,
und geben das Kommand ein :
start guieditor in die Console in die man Durch F8 Kommt
dann Müsste es So aussehen in Etwa man Beachte die Unterstrichende Zeile
Nun Drücken wir Shift und G zusammen dann Sehen wir einen Mauszeiger mit dem Drücken wir jetzt Linksklick dann Öffnet sich ein Menü dort gehen wir auf Drawing
dann auf DX draw Rectangel nun Wählen wir die Position aus an Dem der Hud Später sein soll ich habe die Obere Rechte ecke Dafür Gewählt
Wenn wir Fertig sind Drücken wir Wieder Rechtsklick auf den Bildschirm dort Steht dann Print Code
dort Drücken wir drauf Dann Öffnet sich ein Fenster
Dies Kopieren wir und Fügen es in Ein Lua Dokument ein Nun Müssen wir noch machen das es bei Jeder auflösung gleich aussieht und an der Gleichen Stelle ist
dies Können wir durch Rechnen oder durch Probieren Rauskriegen. ich bin ein Fan der 2. Möglichkeit,


3. Hud Erstellen



So nun Fängt die Eigentliche Arbeit an :
Als Erstes finden wir den Lokalen Spieler raus und erstellen die neuen Fonts
rofl = getLocalPlayer ( )
nfont = dxCreateFont( "data/nFont.ttf", 20 )
ag = dxCreateFont( "data/agency.ttf", 22 )
uk = dxCreateFont( "data/UKNumberPlate.ttf", 22 )
Code:

vor dem = Zeichen kann man hinschreiben was man will ich nenne Meinen Lokalen Spieler Rofl
und die Fonts immer unterschiedlich

Funktions Anfang :

Code:
addEventHandler("onClientRender",getRootElement(),
function ()
Dies Heißt das bei Jedem mal wenn der client die Welt rendert diese Funktion ausgeführt wird

Nun Brauchen wir die Ganzen Variablen
für den Hud
die Finden wir so Raus :
Code:
local leben = getElementHealth ( rofl )
local money = getPlayerMoney(rofl)  
local sWidth,sHeight = guiGetScreenSize()	
clip = getPedAmmoInClip ( rofl )
ammo = getPedTotalAmmo ( rofl )
waffe = getPedWeapon ( rofl )
namewap = getWeaponNameFromID ( waffe )
local armor = getPedArmor ( rofl )
Die Einzelnden funktionen sind Oben Beschrieben


Nun zu den Positionen die wir Rausgefunden haben ich habe Etwas rumprobiert und schon die Passenden Kordinaten gesammelt
Code:
if leben >= 1 then
dxDrawRectangle ( sWidth/1.19, sHeight/11.8, 120, 21, tocolor(1,1,1) )
dxDrawRectangle ( sWidth/1.18, sHeight/11.5, leben, 16, tocolor(200,0,0) ) 


if armor >= 1 then

dxDrawRectangle ( sWidth/1.19, sHeight/8.8, 120, 22, tocolor(1,1,1) )
dxDrawRectangle ( sWidth/1.18, sHeight/8.5, armor, sHeight/55, tocolor(0,100,200) ) 
else
	end

else
	end
Allgemeine Beschreibung von dxDrawRectangle :
Code:
dxDrawRectangle ( x-Kordinate, y-Kordinate, Breite, Höhe, tocolor(R,G,B) )
Nun Fehlt nurnoch die Munition usw
die Finden wir mit getPedAmmoInClip usw raus wie oben Beschrieben

Code:
if ammo ~= 0 then --Wenn munition was Anderes als 0 Ist
dxDrawText( " :"..ammo-clip.."", sWidth/1.26, sHeight/4.4, 0, 0, tocolor(255,255,255), 0.7, Font ) --Die Anzahl der Munition wird auf den Bildschirm "gedrawt" in diesem Fall wird clip von Ammo subtrahiert
dxDrawText( " :"..clip.."", sWidth/1.12, sHeight/4.4, 0, 0, tocolor(255,255,255), 1, Font ) --Die Munition die in dem "clip" noch ist wird Gedrawt
dxDrawImage ( sWidth/1.31, sHeight/4.8, 50, 50, "anzeigen/Barrett 6.8.png", 0, 0, 0) --Bild einer Kugel wird Neben clip gedrawt
dxDrawImage ( sWidth/1.16, sHeight/4.8, 50, 50, "anzeigen/mag.png", 0, 0, 0) --Bild eines Magazins wird neben Ammo Gedrawt
else
				
end
Nun Noch den Alten hud Ausblenden
:
Code:
		showPlayerHudComponent ( "radar", true )
		showPlayerHudComponent ( "ammo", false )
		showPlayerHudComponent ( "armour", false )
		showPlayerHudComponent ( "health", false )
		showPlayerHudComponent ( "weapon", false )
		showPlayerHudComponent ( "clock", false )
		showPlayerHudComponent ( "money", false )
Am ende wenn wir Alles zusammen Gefügt haben sieht es so Aus
:
Code:
rofl = getLocalPlayer ( )

nfont = dxCreateFont( "data/nFont.ttf", 20 )   
ag = dxCreateFont( "data/agency.ttf", 22 )   
uk = dxCreateFont( "data/UKNumberPlate.ttf", 22 )   


addEventHandler( "onClientPreRender",getRootElement(),
   function( )

							local leben = getElementHealth ( rofl )
							local money = getPlayerMoney(rofl)  
							local sWidth,sHeight = guiGetScreenSize()	
							clip = getPedAmmoInClip ( rofl )
							ammo = getPedTotalAmmo ( rofl )
							waffe = getPedWeapon ( rofl )
							namewap = getWeaponNameFromID ( waffe )
							if ammo ~= 0 then

			--[[ammo-clip]] 
								if (ammo >= 1000) then
								dxDrawText( " :"..ammo-clip.."", sWidth/1.26, sHeight/4.4, 0, 0, tocolor(255,255,255), 0.7, Font )
								else
								munidraw = dxDrawText( " :"..ammo-clip.."", sWidth/1.26, sHeight/4.4, 0, 0, tocolor(255,255,255), 1, Font )
								end
			--[[clip]]	    	dxDrawText( " :"..clip.."", sWidth/1.12, sHeight/4.4, 0, 0, tocolor(255,255,255), 1, Font )
			--[[clipbild]]		dxDrawImage ( sWidth/1.31, sHeight/4.8, 50, 50, "anzeigen/Barrett 6.8.png", 0, 0, 0)
			--[[ammobild]]		dxDrawImage ( sWidth/1.16, sHeight/4.8, 50, 50, "anzeigen/mag.png", 0, 0, 0)
							else
				
							end
							

							
				if leben >= 1 then
					dxDrawRectangle ( sWidth/1.19, sHeight/11.8, 120, 21, tocolor(1,1,1) )
					dxDrawRectangle ( sWidth/1.18, sHeight/11.5, leben, 16, tocolor(200,0,0) ) 


					if armor >= 1 then

							dxDrawRectangle ( sWidth/1.19, sHeight/8.8, 120, 22, tocolor(1,1,1) )
							dxDrawRectangle ( sWidth/1.18, sHeight/8.5, armor, sHeight/55, tocolor(0,100,200) ) 
					else
						end

				else
					end						
						
					end		

)
		showPlayerHudComponent ( "radar", true )
		showPlayerHudComponent ( "ammo", false )
		showPlayerHudComponent ( "armour", false )
		showPlayerHudComponent ( "health", false )
		showPlayerHudComponent ( "weapon", false )
		showPlayerHudComponent ( "clock", false )
		showPlayerHudComponent ( "money", false )
Ich habe Es Noch etwas Modifziert um die Übersicht zu behalten
und Etwas Schöner zu machen wenn Weiterhin Fragen bestehen
Bitte in den Kommentaren Fragen,
Die Bilder Müsst ihr Entweder Selbst suchen oder wenn Genügend nachfrage besteht Uploade ich sie Nochmals.


MfG
Z1337 is offline  
Old 09/17/2012, 13:34   #2
 
elite*gold: 0
Join Date: May 2012
Posts: 1
Received Thanks: 0
thx das tutorial ist mal voll gut gemacht, wäre nett wenn du die png files mit hoch läds.

heiße in mta sa.de DeathNero^^
RomanasDead is offline  
Reply

Tags
gta, lua, mta, mta sa


Similar Threads Similar Threads
Neuen acc erstellen?
03/12/2011 - General Gaming Discussion - 1 Replies
Hi ich habe mir einen neuen acc gemacht und PvE bis lvl 4 gespielt jetzt habe ich die Vollversion. Ich will jetzt wieder einen neuen acc erstellen aber den muss ich ja dann wieder auf lvl 4PvE spielen oder? Achja.. kann man seine Charaktere irgendwie löschen?
Erstellen von neuen Maps
12/13/2009 - Metin2 Private Server - 9 Replies
Kann man irgendwie neue Maps erstellen? ich habe jetzt probiert durch Filezilla etwas zu erreichen geht aber nicht ich konnte nur maps vergrößern und verkleinern
Wie neuen Acc erstellen?
12/02/2009 - Metin2 Private Server - 2 Replies
Moin wie erstelle ich mit Navicat Lite einen neuen acc in der db?
neuen acc erstellen?regi down?
06/24/2009 - Metin2 Private Server - 14 Replies
moinsen ,also mein prob ist wie auch das von vielen anderen das sie nicht ingame kommen weil der acc nicht eyistiert den mann gerade gemacht hat,meine frage nun warum existiert der nicht? und sry wenn die frage schon beantwortet wurde oder gleiches,ich bin seit stunden dabei und habe nichts gefunden,naj mann sollte wohl mal schlafen gehn nach ner nachtschicht,^^



All times are GMT +1. The time now is 08:47.


Powered by vBulletin®
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2026 elitepvpers All Rights Reserved.