@Xseam
ich erstelle local html files^^
für meinen gamemode^^
das ist nicht irgendwo im web als seite erstellt^^
@Xseam
ich erstelle local html files^^
für meinen gamemode^^
das ist nicht irgendwo im web als seite erstellt^^
Okay? wäre nce wenn man mir das evtl. mal etwas näher erklären könnte.
weil habe mir mal btw webadmin angeschaut, so ungefähr soll das ablaufen.
einzigster unterschied mit guiCreateBrowser.
2. habe ja das guiCreateBrowser eingebaut, aber die texte sind übelst klein zu sehen:
wie bekomme ich jetzt denn die schrift ordentlich hin, habe ne global.css datei für die elemente im screen.
@MasterM kennst du dich mit html, css, js gut aus, weil wollte gerne nen webpanel für meinen gamemode machen, der folgendes ingame für den Inhaber erreichbar macht:
- MySQL aufruf
- Spielerverwaltung
- Fahrzeugverwaltung
- Fraktonsverwaltung
- Jobverwaltung
- NPC verwaltung
- Ladenverwaltung
weisst du wie das machbar wäre, da ich ja ingame leider kein php nutzen kann.
@MasterM vertrauen ist gut, kontrolle ist besser^^
Faustregel: Vertraue nie einem clienten, prüfe immer sererseitig ein 2.tes mal.
@MasterM ich wollte gerne nicht nur checkpoints in tabelle, sondern mal ein bsp:
Ingame: Erstelle Busfahrer => gebe alle commands an => script zum commandExecuten auch in datenbank => sowie zulässige Fahrzeuge etc.
weil so könnte ich als entwicklöer nen neuen job ingame anfertigen und und in der lokalen tabelle laden. beim stop des gamemodes wird das System mit den veränderungen gespeichert und bei start sowie befehl neu geladen.
Folglich:
das was da im code example steht als datenbank eintrag und wieder auslesen sowie usebar machen für den server.
wie könnte man dies bewerkstelligen?
@MasterM sollen ja nur serverseitige scripts geladen werden die ingame erstellt werden.
ich würde gerne wissen ob man irgendwie functionen in databases einschreibt und diese auslesen kann.....
wäre es mit loadString möglich, oder was müsste ich da nutzen?
ich wollte gerne ein dynamisches jobsystem machen welches ändereungen ohhne restart an nimmt machen.
@Xseam da haste recht, möchte jedoch etwas mehr future einbringen, was nicht mehr weit in rl entfernt ist (siehe iwatch etc) da sind ja auch schon solche bioMaster implementiert^^
danke auch für deine meinung^^
@Bonus ja soll ja für einen rl server sein und nicht roleplay oder deathmatch oder sonstige non rl server aktionen^^
if getElementHealth(localPlayer) <= 5 then ===> nachricht wird angezeigt.
genauso werden auch alle anderen stats ausgerufen.
er sagt bei health z.b: Ihre gesundheit ist im roten bereich.
bei den anderen stats den namen der stats, damit er weiß, was genau runter ist.
sind alle stats im kritischen bereich sagt eraus, dass alle Biometrischen Daten gefährlich sind^^
2. möchte ich gerne mal son nen hud in rl haben xD.
Biometrische datenscanner gibt es ja wirklich als uhr oder als app für tablet...
naja später in 5 - 10 jahren auch mit chippung für exakte werte.^^
Hier mal ein Screen von meinem Kompass.
Dieser funktioniert realistisch zu der mta map und ist punkt genau zuverlässig^^.
Der Kompass befindet sich oben mittig im screen. später wird man diesen auch noch ingame verschieben können und die neue location wird gespeichert.
wie gesagt, wenn er nur noch 5 hp hat kommt rechts über dem BM logo eine nachricht, dass sein leben im kritischen bereich ist^^
hatte ich glaube auch im obigen post erwähnt^^
Zitatwenn einer der werte auf eine gewisse größe gesunken ist wird rechts über dem BioMaster im MainScreen eine nachricht mit einem Warning sound gezeigt.
diese verschwindet nach 10 sekunden, sobal imgame nach 5 minuten der wert immer noch instabil ist wird erneut diese nachricht angezeigt.
außerdem kann man sich während dessen auch weiterhin bewegen.^^ @Xendom @Sentux
Hier mal ein paar bilder von meinem BioMaster System.
unten rechts ist das hauptsystem welches automatische meldungen zum status des clienten macht:
hier ein bild vom BioMaster wenn man rechts unten auf das BM geklickt hat:
wenn einer der werte auf eine gewisse größe gesunken ist wird rechts über dem BioMaster im MainScreen eine nachricht mit einem Warning sound gezeigt.
diese verschwindet nach 10 sekunden, sobal imgame nach 5 minuten der wert immer noch instabil ist wird erneut diese nachricht angezeigt.
Ich hoffe es gefällt euch fürs Erste.
da ich kein Grafiker bin, sieht es jetzt nicht sehr besonders aus.^^
Also habe vorher euch hier ein debu8g script gezeigt um festzustellen wohin er schaut beim stehen/gehen.
habe aufgrund der rotation ein image, welches alle himmelsrichtungen anzeigt erstellt.
dieses ist width = 360, height = 30.
dxDrawImage(cx,cy,cw,ch,":mg-rl/files/compass/bgCompass.png",0,0,0,tocolor(255,255,255,255),false);--dies ist der hintergrund
dxDrawImageSection(cx,cy+5,360,30,30+wert,0,720,30,":mg-rl/files/compass/compassBar.png",0,0,0,tocolor(255,255,255,255),false);--dies sist das img für die himmelsrichtungen
dxDrawImage(cx+160,cy,40,40,":mg-rl/files/compass/compassTarget.png",0,0,0,tocolor(255,255,255,255),false);--dies sind 2 rote pfeile. einer oben einer unten
eines istd er hintergrund, das andere namens compassBar.png ist das mit den himmels richtungen.
beim event onClientRender werden die images erstellt und genutzt.
hier die berechnungen für die rotation:
screenW,screenH = guiGetScreenSize();
local cx,cy,cw,ch= screenW/2-180,10,360,40;
local px,py,pz= getElementPosition(localPlayer);
local rz = round(getPedRotation(localPlayer),1);
local r = round(rz/180,2);
local wert = -cw*r;
denkt daran das die compassBar.png eine dxDrawImageSection sein muss.
-cw*r bezieht sich quasi auf die rotation des spielers, somit wird sie korrekt angezeigt.
macht einfach mal aus -cw*r ein cw*r und dann sehtr ihr was ich meine, sobald der chartacter sich rotiert^^
dxDrawImageSection(cx,cy+5,360,30,30+wert,0,720,30,":mg-rl/files/compass/compassBar.png",0,0,0,tocolor(255,255,255,255),false);
als nächstes solltet ihr wissen, dass ich die rotation / 180 rechne und die imagesection bei der 2. width 720 lang ist.
bei der rotation ist zu beachten, dass wenn man sich nach links dreht er 0 - 360 anzeigt
bei der rotation nach rechts geht es von 360 - 0:
bei den images ist außerdem zu beachten das norden mittig ist und:
bei unmittigkeit ist in der dxDrawImageSection eine offset drinne die das dann neu ermittelt:
30+wert => die 30 ist die offset!
sry für doppel post, aber platz reichte nicht mehr zum schreiben beim editieren aus.
wie kann ich jetzt der Imagesection sagen:
- dass wenn er sich nach rechts dreht, der compass nach links faded.
- das wenn er sich nach links dreht der compass nach rechts faded.
wäre nice wenn mir da noch jmd helfen könnte.
/// edit betrag kann gelöscht werden^^ hab es endlich geschafft.
danke nochmals an @Qualiti und @Flatliner_
hab da noch eine frage möchte quasi so ein Balken oben mittig machen der alle Himmelsrichtungen anzeigt.
Hab es grafisch schon fertig.
wie berechne ich jetzt das das rote rechteck nach links geht wenn die rotation zwischen 0 und 180 liegt.
wie berechne ich jetzt das das rote rechteck nach rechts geht wenn die rotation zwischen 180 und 360 liegt.
Das Script vom Kompass:
dies ist zum debuggen der direction des spielers:
dies ist nun die rotation in der imagesection integriert:
function getDirection()
local direction = "";
local rz = round(getPedRotation(localPlayer),1);
if rz >= 0 and rz < 22.6 then
direction = "#ff0000NW #989898| #00ff00N #989898| #ff0000NE";
elseif rz > 22.5 and rz < 67.6 then
direction = "#ff0000W #989898| #00ff00NW #989898| #ff0000N";
elseif rz > 67.5 and rz < 112.6 then
direction = "#ff0000SW #989898| #00ff00W #989898| #ff0000NW";
elseif rz > 112.5 and rz < 157.6 then
direction = "#ff0000S #989898| #00ff00SW #989898| #ff0000W";
elseif rz > 157.5 and rz < 202.6 then
direction = "#ff0000SE #989898| #00ff00S #989898| #ff0000SW";
elseif rz > 202.5 and rz < 247.6 then
direction = "#ff0000E #989898| #00ff00SE #989898| #ff0000S";
elseif rz > 247.5 and rz < 292.6 then
direction = "#ff0000NE #989898| #00ff00E #989898| #ff0000SE";
elseif rz > 292.5 and rz < 337.6 then
direction = "#ff0000N #989898| #00ff00NE #989898| #ff0000E";
elseif rz > 337.5 and rz < 360.1 then
direction = "#ff0000NW #989898| #00ff00N #989898| #ff0000NE";
end
return di,rz;
end
Alles anzeigen
dies ist der code den ich zum rendern nutze um mit dxDrawImageSection die himmelsrichtung zu drehen:
function renderCompass()
screenW,screenH = guiGetScreenSize();
local cx,cy,cw,ch = screenW/2-180,10,360,40;
local di,rz = getDirection();
local r = round(rz/180,2);
local length = 145;
local switch = 0;
local wert = length+(-r);
dxDrawImage(cx,cy,cw,ch,":mg-rl/files/compass/bgCompass.png",0,0,0,tocolor(155,155,155,155),false);
dxDrawImageSection(cx,cy+5,360,30,wert+17.5,0,360,30,":mg-rl/files/compass/compassBar.png",0,0,0,tocolor(255,255,255),false);
dxDrawImage(cx+165,cy,30,40,":mg-rl/files/compass/compassTarget.png",0,0,0,tocolor(255,255,255),false);
dxDrawText(r,cx,cy+55,cx+360,cy+95,tocolor(255,0,0,255),1.0,"bankgothic","center","center",false,false,false,true,false);
end
addEventHandler("onClientRender",root,renderCompass)
Alles anzeigen
Hallo liebe Community,
ich würde gerne wissen, ob es möglich ist ein compass oben mittig als balken zu machen.
der balken wäre 200 lang und 40 breit.
wie bekomme ich es hin, dass der balken mit den Himmelsrichtungen sich wenn ich nach links drehe, von links nach rechts sich bewegt, um dann die neue himmelsrichtung anzugeben.
Beispiel:
Rotation = 0 = Norden
Rotation = 90 = Osten
Rotation = 180 = Süden
Rotation = 270 = Westen
Spieler dreht sich links rum => -90° drehung => balken wechselt von norden zu westen.
im balken soll sich nun der wechsel wie ein fade von rechts nach links des Compasses aussehen.
Wäre nett wenn ihr da ein paar tips und tricks habt dies zu machen.
ich meine damit es gibt fünf stats.
1 geht von 100 zu 0
4 gehen von 0 zu 100.
habe für jeden stats einen farbwechsel gemacht.
jetzt ist die frage, wie rechne ich alle fünf werte zudsammen, damit sie einen farbwert ausgibt der für das image ist^^
Alles anzeigenlocal lR,lG = 255*math.min((100-health)/50,1),255*math.min(health/50,1);
local eR,eG = 255*math.min(hunger/50,1),255*math.min((100-hunger)/50,1);
local tR,tG = 255*math.min(thirst/50,1),255*math.min((100-thirst)/50,1);
local hR,hG = 255*math.min(hygiene/50,1),255*math.min((100-hygiene)/50,1);
local pR,pG = 255*math.min(harndrang/50,1),255*math.min((100-harndrang)/50,1);
local r, g = 1. - 5. farbwert zusammen?
kann mir da einer helfen?
das weis ich auch trotzdem danke
wie muss ich nun alle 5 farbwerte zu einem verfassen, um dann mit tocolor den daraus folgendnen wert zu setzen
local lR,lG = 255*math.min((100-health)/50,1),255*math.min(health/50,1);
local eR,eG = 255*math.min(hunger/50,1),255*math.min((100-hunger)/50,1);
local tR,tG = 255*math.min(thirst/50,1),255*math.min((100-thirst)/50,1);
local hR,hG = 255*math.min(hygiene/50,1),255*math.min((100-hygiene)/50,1);
local pR,pG = 255*math.min(harndrang/50,1),255*math.min((100-harndrang)/50,1);
local r,g = rechnung von 1. - 5. => gesamtwert
tocolor(r,g,0,255);
Ich habe 5 stats die alle so zusammen gerechnet werden müssen, damit der eine balken sich dadurch farblich ändert:
leben + hunger + durst+ hygiene + harndrang => ein wert.
leben wird von 100 - 0 gerechnet.
alle anderen von 0 - 100;
Für alle stats gibt es ein gesamt farb wert und nicht für jeden einen.
local hunger = pdata["hunger"]; --0 - 100
local thirst = pdata["thirst"]; --0 - 100
local hygiene = pdata["hygiene"]; --0 - 100
local harndrang = pdata["harndrang"]; --0 - 100
local health = pdata["health"];
health = health or 100;
hunger = hunger or 100;
thirst = thirst or 100;
hygiene = hygiene or 100;
harndrang = harndrang or 100;
local lR,lG = 255*math.min((100-health)/50,1),255*math.min(health/50,1);
local eR,eG = 255*math.min(hunger/50,1),255*math.min((100-hunger)/50,1);
local tR,tG = 255*math.min(thirst/50,1),255*math.min((100-thirst)/50,1);
local hR,hG = 255*math.min(hygiene/50,1),255*math.min((100-hygiene)/50,1);
local pR,pG = 255*math.min(harndrang/50,1),255*math.min((100-harndrang)/50,1);
Alles anzeigen
wie rechne ich jetzt alle farbwerte zu einem zusammen.
Sprich ist leben voll und alle anderen leer dann ist die anzeige komplett grün.
ist leben bei 5% und der rest auf 100 % dann ist die anzeige komplett rot.
alles zwischen den beiden absoluten soll farblich geändert werden.