Was ist an seinem Projekt wohl NEW.
Die Variablennamen im GF, so wie bei fast allen Projekten die was auf sich halten ![]()
#Natürlich scherz ick hab keene Ahnung ![]()
Was ist an seinem Projekt wohl NEW.
Die Variablennamen im GF, so wie bei fast allen Projekten die was auf sich halten ![]()
#Natürlich scherz ick hab keene Ahnung ![]()
Naja, wenn du schon ein Registrierungssystem bzw Loginsystem hast, dann besitzt du ja bereits den Grundstein.
Dann einfach in das bereits existierende Enum eine Variable packen, wie z.B. pAdmin
Und dann kannst du überall so prüfen:
if(SpielerInfo[playerid][pAdmin] >= 5)
{
//Hier hätte der Spieler jetzt ein Adminlevel größer gleich 5
}
Und da du bereits ein MySQL System hast, packst du das einfach nur ins Query...im Sinne von: `Admin`='%d'
Ich weiß nicht genau, wo deine Problematik bei diesem Thema ist.
Im Endeffekt ist es nur eine Variable..die du dann einfach durch ein query in der Datenbank speicherst.
Das wird glaube nicht funktionieren, da dann die Spieler crashen werden.
Schließ die alten und mapp neue oder kp was du genau "neu" machen willst ![]()
Wie rufst du denn den Timer auf und wo?
Ich meine...du lässt in einem Timer für einen Spieler..eine Schleife für alle Spieler laufen...wo ist da die Logik?
Hast du eine Multiplayer Modifikation mit 50.000> Spieler gemacht? Oder einen 08/15 SA:MP Server mit 5 Spielern wo mal 2 kleine Sachen kommen?

Da ist aber jemand bissig drauf ![]()
Schlechten Tag gehabt? ![]()
Dann printe das doch mal im Server Log oder zeige es in einem Dialog/Textdraw/... an. Viel Spaß
...Ich sag dazu jetzt nix mehr.
Der Thread Ersteller hat genug Möglichkeiten geliefert bekommen, da kann er sich bestimmt eine aussuchen ![]()
Nur nicht immer ¯\_(ツ)_/¯
...doch natürlich F5 funktioniert genauso gut wie deine Lösung?!
Das sieht man schon ziemlich genau an der Zeilen-Zahl-Angabe am Rand
Genau..sowas wie Kommentare existieren natürlich nicht.
Und man kann es auch einfach an das Objekt machen, was zuletzt erstellt wird..unabhängig von seinem Ort...
Und in fast allen Anwendungsfällen ist deine "Lösung" nur halbgar, daher bezeichne ich diese als schlecht.
Allet klar das macht natürlich voll Sinn
Das klappt beim Streamer aber nicht bzw. nur bedingt.
Das soll auch gar nicht beim Streamer klappen, deshalb sagte ich, er soll ans Ende der Map gehen da dort alle Streamer Objekte zerstört wurden.
Warum sollte man Objekte nur bei OnGameModeInit erstellen? Es gibt genügend Fälle, Objekte irgendwann zu erstellen und auch wieder zu löschen.
Jo...aber ich denke diese Menge kann er einkalkulieren, ich denke es ging ihm um seine Map. Die man unter OnGameModeInit normalerweise erstellt
Wie dem auch sei...du musst nicht sagen, dass das schlechte Methoden sind...denn diese funktionieren genauso gut wie deine...und die eine sogar ohne zusätzlichen Code...
Das ist eine schlechte Lösung, vor allem dann, wenn man ein Objekt löscht, dann klappt das nämlich nicht.
Ja natürlich unter OnGameModeInit löscht man direkt ein Objekt...
und das unter F5 zeigt die aktuellen Objekte an.
GetObjectCount()
Wenn man ein Objekt löscht..wird es hier auch nicht angezeigt.
Zudem sollte noch erwähnt werden, dass diese Funktion aufgerufen werden sollte, nachdem die Objekte erstellt wurden...
Wie meinst du das genau? Mit Filterscripts oder ohne?
Wenn du alle CreateObjects an einem Fleck hast, dann sieht das ja so aus:
CreateObject(...);
CreateObject(...);
CreateObject(...);
CreateObject(...);
//Und bei dem letzten CreateObject
new objects = CreateObject(...);
printf("Anzahl der Objekte: %d",objects);
Allerdings solltest du CreateDynamicObject verwenden. (Also einen Streamer)
Ingame kannst du dir das eig auch ganz schnell anzeigen lassen...fliege ans Ende der Map wo keine Objekte mehr sind und dann drück F5.
Dort siehst du dann ObjectSlotsUsed und das sind auch die Anzahl deiner CreateObjects (da CreateDynamicObjects gelöscht werden würden).
Da sollte wohl noch jemand gründlicher ins Wiki schauen und sich das in Ruhe durchlesen.
wie soll ich bitte einen Timer erstellen der sich alle 250ms aktualisiert
Ich würde fast sagen mit [wiki]SetTimer[/wiki] oder [wiki]SetTimerEx[/wiki], je nachdem wie du es nutzen willst.
Willst du von mir, dass ich dir den ganzen Code auf einem Silber-Tablett serviere oder wie? ![]()
Dann hier ein Beispiel:
//Unter OnGameModeInit
SetTimer("Tacho", 250, 1); //Ruft alle 250ms die Funktion Tacho auf...
//Dann iwo im Skript
forward Tacho();
public Tacho()
{
for(new i=GetPlayerPoolSize(),string[32]; i!=-1; i--)
{
if(!IsPlayerConnected(i) || IsPlayerNPC(i) || !IsPlayerInAnyVehicle(i)) continue;
format(string,sizeof(string),"Km/h: %d",getPlayerSpeed(i));
PlayerTextDrawSetString(i,TDEditor_PTD[i][4],string);
}
return 1;
}
Alles anzeigen
aber wie
...da gibt es bestimmt tausende von Tutorials etc zu.
Grobe Richtung...du brauchst einen Timer...der sich ca alle 250ms aktualisiert, je nachdem wie flüssig du es haben willst.
Anschließend prüfst du ob der Spieler sich in einem Fahrzeug befindet.
Wenn ja, verwendest du format & getPlayerSpeed und zeigst es dem Spieler mit: [wiki]PlayerTextDrawSetString[/wiki] an.
und fertig ![]()
//Edit auf dein Edit:
Dann aktualisierst du den String nicht ![]()
Ich verstehe deine Frage...nicht...
Wofür soll denn was anders gemacht werden? Was willst du tun..was ist deine Frage ![]()
das so aussieht ich weiß ist nicht das schönste
Kann es mir voll bildlich vorstellen, der Code visualisiert sich direkt als Textdraw in meinem Kopf ![]()
Deine Fehler waren, dass du die Funktionen falsch geschrieben hattest & du rtn nicht deklariert hattest.
Dennoch empfehle ich es dir, das so zu machen:
Wenn du eine TextSize von 0 angibst kann das ja auch nicht funktionieren, weil das bedeuten würde, dass dein TextDraw eine Höhe von 0 hat..
Also ist es nicht existent...
Versuch mal:
PlayerTextDrawTextSize(playerid,LoginLabel[playerid], 280.0, 210.0);
if(FWDuty[playerid] == 1)
Dann mach hier einfach noch:
if(FWDuty[playerid] == 1 || PlayerInfo[playerid][pAdmin])
Müsstest schon sagen, wie deine Admin-Abfrage aussieht..und der Code sieht a bissl komisch aus.
Momentan würde gar nichts passieren..wenn jemand duty einsteigt :o
Das ist merkwürdig, weil das ist so richtig.
Stehen da noch mehr Zeilen?
Bist du sicher, dass es sich um diese Zeile handelt ![]()