Kannst es nur mit Textdraws verdecken, indem du uwas schwarzes drüber machst o.Ä.
Ausblenden ist unmöglich, sowie der gesamte Rest vom HUD.
[SAMMELTHREAD] Kleine Scripting Fragen
- Rafelder
- Unerledigt
Dein Problem konnte durch einen User gelöst werden? Bedank dich bei ihm indem du seinen Beitrag als Hilfreich markierst sowie einen Daumen oben dalässt
Wichtiger Hinweis: Bitte ändert nicht manuell die Schriftfarbe auf schwarz sondern belasst es bei der Standardeinstellung. Somit tragt ihr dazu bei dass euer Text auch bei Verwendung unseren dunklen Forenstils noch lesbar ist!
Tipp: Ihr wollt längere Codeausschnitte oder Logfiles bereitstellen? Benutzt unseren eigenen PasteBin-Dienst Link
-
-
Map/HUD wie bekomme ich die schwarz ? Bzw. Kann man den HUD(Nur die kleine Karte) irgendwie ausblenden?
Entweder über den SpecateModus, dadurch verschwindet die HUD oder ein schwarzes TextDraw / Sprite drüber (gibt ein rundes sprite)
Vielleicht ist ein Fehler im Code?
Nein. Hier mal ein Zitat, was das ganz gut erklärt:
Im Durchschnitt ist Heapsort nur dann schneller als Quicksort, wenn Vergleiche auf den zu sortierenden Daten sehr aufwendig sind und gleichzeitig eine für Quicksort ungünstige Datenanordnung besteht (z. B. viele gleiche Elemente). In der Praxis ist bei unsortierten oder teilweise vorsortierten Daten Quicksort oder Introsort um einen konstanten Faktor (2 bis 5) schneller als Heapsort.
-
Ah danke dir, dann scheint QuickSort wirklich besser zu sein fuer den Normalfall Bubblesort habe ich mal getestet, das ist derbe langsam!
Habe folgendes Problem:
Ich will die 5 Spieler mit den meisten Kills ausgeben im Chat.
Die Kills werden in einem Array der Groesse MAX_PLAYERS gespeichert mit der playerid als Index.
Das Array wird dann sortiert, jedoch habe ich ja dann das Problem dass ich die Kills dann einem entsprechenden Spieler nicht mehr zuordnen kann.Habe daher gedacht ein zweites Array mit den gleichen Werten zu erstellen, und dann Index Inhalt aus dem urspruenglichen Array mit dem sortierten Array zu vergleichen, aber ich glaube das ist ineffizient.
Hoffe jemand hat hier bessere Ideen
-
Naja, hier gäbe es 2 gute Möglichkeiten.
1. Du erstellst ein 2D-Array...1D = Kills...2D = ID und dann sortierst das nach Kills und hast die ID
2. Du durchsuchst einfach nur das Array:
C
Alles anzeigen//Initialisierung #define UNDEFINED -1 new killArray[MAX_PLAYERS] = {UNDEFINED, ...}; main() { //Test-Daten killArray[0] = 5; killArray[5] = 9; killArray[7] = 4; //Eigentliche Prozedur new playerid,kills; findMostKills(killArray,playerid,kills); printf("Spieler mit meisten Kills: %d (%d)",playerid,kills); //Out->"Spieler mit meisten Kills: 5 (9)" } //Such Funktion stock findMostKills(const arr[],&playerid,&kills,const size = sizeof(arr)) { playerid=0, kills=arr[0]; for(new i=1; i<size; i++) if(arr[i] > kills) kills=arr[i],playerid=i; }
-
Guten Tag wäre es Möglich ein Fahrzeug auf dem LKW mit der "Ladefläche" für Autos zu transportieren sodass sie nicht runterfallen ?
-
Guten Tag wäre es Möglich ein Fahrzeug auf dem LKW mit der "Ladefläche" für Autos zu transportieren sodass sie nicht runterfallen ?
Das frage ich mich auch schon seit Längerem, ich hab da eine Idee, aber ob die auch Klappt ist eine andere Frage.
Vielleicht das Fahrzeug als Objekt Erstellen und das Objekt dann an das Fahrzeug Attachen ?
Oder auf der "Ladeläche eine Unsichtbare kleine Wand Mappen/Attachen damit das Fahrzeug nicht runterfällt ?
MfG.
-
kann man Fahrzeuge als Objekt erstellen ?
-
kann man Fahrzeuge als Objekt erstellen ?
Nein, das ist leider nicht möglich.
Du kannst lediglich die kaputten Auto Objekte nehmen.12957
3593
3594 -
Das mit den unsichtbaren Objekten sollte klappen, hatte ich auch schon mal mit dem DFT, da habe ich rund um die Ladefläche unsichtbare Wände gemacht, und traktoren transportiert.
-
Das mit den unsichtbaren Objekten sollte klappen, hatte ich auch schon mal mit dem DFT, da habe ich rund um die Ladefläche unsichtbare Wände gemacht, und traktoren transportiert.
Perfekt, danke für dein Hinweiss.
Nun weiß ich endlich wie ich es am besten lösen kann.
MfG.
-
-
Bei /me Befehlen etc senden die praktisch immer nur halbe Dinge, obwohl mehr eingegeben wurde.
Woran liegt das?ocmd:me(playerid, params[])
{
new string[128+MAX_PLAYER_NAME], metext[128], playername[MAX_PLAYER_NAME], Float:X, Float:Y, Float:Z;
if(sscanf(params, "s", metext))
return SendClientMessage(playerid, COLOR_GREY, "[OOC] Befehl: /me [Text]");GetPlayerPos(playerid, X, Y, Z);
GetPlayerName(playerid, playername, sizeof(playername));format(string, sizeof(string), "* %s %s *", playername, metext);
foreach(Player, i)
{
if(IsPlayerInRangeOfPoint(i, 6.5, X, Y, Z))
{
SendClientMessage(i, COLOR_ME, string);
}
}
return 1;
} -
Bei /me Befehlen etc senden die praktisch immer nur halbe Dinge, obwohl mehr eingegeben wurde.
Woran liegt das?ocmd:me(playerid, params[]){new string[128+MAX_PLAYER_NAME], metext[128], playername[MAX_PLAYER_NAME], Float:X, Float:Y, Float:Z;if(sscanf(params, "s", metext))return SendClientMessage(playerid, COLOR_GREY, "[OOC] Befehl: /me [Text]");GetPlayerPos(playerid, X, Y, Z);GetPlayerName(playerid, playername, sizeof(playername));format(string, sizeof(string), "* %s %s *", playername, metext);foreach(Player, i){if(IsPlayerInRangeOfPoint(i, 6.5, X, Y, Z)){SendClientMessage(i, COLOR_ME, string);}}return 1;}
Schon mit größeren Strings versucht?
-
Schon mit größeren Strings versucht?
öfters
-
Versuchs doch mal so:
C
Alles anzeigen//Falls du IsNull nicht hast: #define IsNull(%0) (!%[0]||(%0[0]=='\1'&&!%0[1])) //Befehl ocmd:me(playerid, params[]) { if(IsNull(params)) return SendClientMessage(playerid, COLOR_GREY, "[OOC] Befehl: /me [Text]"); new string[144+1], Float:X, Float:Y, Float:Z; GetPlayerPos(playerid, X, Y, Z),GetPlayerName(playerid, string, MAX_PLAYER_NAME); format(string, sizeof(string), "* %s %s *", string, params); foreach(Player, i) { if(IsPlayerInRangeOfPoint(i, 6.5, X, Y, Z)) SendClientMessage(i, COLOR_ME, string); } return 1; }
-
Create3DTextLabel("{247BA6}Fahrschule\n{FFFFFF}Gebäude betreten mit ´Enter´", COLOR_WHITE, 1216.5732,-1812.2876,16.5938,20,0);
Hey ich wollte fragen wie ich {247BA6} Dunkler machen kann wen ich das so drinne hab ist das hell
-
Hey ich wollte fragen wie ich {247BA6} Dunkler machen kann wen ich das so drinne hab ist das hell
-
Im Chat ist Sie ja so wie ich Sie haben möchte, aber beim 3DTextLabel ist Sie zu Hell :/? obwohl Sie dunkel ist
-
So,
Ich will wie vorhin folgendes machen.
Aktuell werden durch ein Array PKills[MAX_PLAYERS]; jedem Spieler bei einem Kill PKills[playerid] += 1; zugewiesen.
Nun will ich die Kills der besten 5 Spieler in einer Auflistung darstellen.
Das ganze sieht fuer mich recht scheisse aus.
Ausprobieren kann ich es leider nicht da ich nicht soviele Spieler habe, aber vielleicht kann ja einer hinsehen ob das Konstrukt funktionieren wuerde.Hier mal kommentiert, mit dem was meiner Ansicht nach geschehen soll
C
Alles anzeigenstock Scoreboard() { new k; new kills[MAX_PLAYERS][2]; for(new k;k < MAX_PLAYERS; k++); /// Kills der Spieler werden zusammen mit playerid in einem neuen 2 dimensionalen Array gespeichert { if(!IsPlayerConnected(k)) continue; kills[k][0]= PKills[k]; kills[k][1]= k; } HeapSort(kills);// Array wird mit Heapsort sortiert nach kills for(new i;i < MAX_PLAYERS; i++); { SendClientMessageEx(i,COLOR_WHITE,"Top player stats below.");//Nachricht wird einmal an alle Spieler versandt if(!IsPlayerConnected(i)) continue; for(new d;d < 5;MAX_PLAYERS; ) { if(!IsPlayerConnected(d)) continue; new formated[128]; new pname[playerid][32]; GetPlayerName(kills[d][1],pname); format(formated,sizeof(formated),"%d. place: %s with %d kills",d+1,pname,kills[d][0]); SendClientMessage(i,COLOR_WHITE,formated); //Es werden die ersten 5 Spieler im Array ausgegeben (der mit den hoechsten Kills als erster, usw.) } } }
-
Code
Alles anzeigenocmd:motor(playerid,params[]) { if(IsANoTachoVehicle(GetPlayerVehicleID(playerid))) { SendClientMessage(playerid, COLOR_GRAD1, "{FFFFFF}Fahrräder haben {FF0000}keinen{FFFFFF} Motor ..."); return 1; } if(GetPlayerState(playerid) != PLAYER_STATE_DRIVER) return 1; new engine,lights,alarm,doors,bonnet,boot,objective; new vid = GetPlayerVehicleID(playerid); GetVehicleParamsEx(vid,engine,lights,alarm,doors,bonnet,boot,objective); if(vid != INVALID_VEHICLE_ID) { if(engine == VEHICLE_PARAMS_ON) { GetVehicleParamsEx(vid, engine,lights,alarm,doors,bonnet,boot,objective); SetVehicleParamsEx(vid, VEHICLE_PARAMS_ON, lights,alarm,doors,bonnet,boot,objective); SendClientMessage(playerid, COLOR_LIGHTBLUE, "Du stellst den Motor ab."); } else { GetVehicleParamsEx(vid, engine,lights,alarm,doors,bonnet,boot,objective); SetVehicleParamsEx(vid, engine,VEHICLE_PARAMS_OFF,alarm,doors,bonnet,boot,objective); SendClientMessage(playerid, COLOR_LIGHTBLUE, "Du betätigst die Zündung."); } } return 1; } ocmd:licht(playerid,params[]) { if(GetPlayerState(playerid) != PLAYER_STATE_DRIVER) return 1; new engine,lights,alarm,doors,bonnet,boot,objective; new vid = GetPlayerVehicleID(playerid); if(vid != INVALID_VEHICLE_ID) { if(lights == VEHICLE_PARAMS_ON) { GetVehicleParamsEx(vid, engine,lights,alarm,doors,bonnet,boot,objective); SetVehicleParamsEx(vid, engine,VEHICLE_PARAMS_ON,alarm,doors,bonnet,boot,objective); } else { GetVehicleParamsEx(vid, engine,lights,alarm,doors,bonnet,boot,objective); SetVehicleParamsEx(vid, engine,VEHICLE_PARAMS_OFF,alarm,doors,bonnet,boot,objective); } } return 1; }
Hallo,
Ich habe ein Problem wen ich /motor mache geht er nicht an wen man nochmal /motor eingibt sollte das Licht und der Motor ausgehn.
Wen man /licht macht geht es auch nicht an warum? -
Frage: Wie frage ich ab, ob der Spieler in ein Fahrzeug einsteigt und das nicht mit OnPlayerEnterVehicle, weil
diese Funktion wird schon ausgerufen, obwohl der Spieler noch nicht im Fahrzeug drin ist. -