Beiträge von Hagi

    new bool:anticheatan = true;



    if(strcmp(cmd, "/toganticheat", true) == 0)
    {
    if(IsPlayerConnected(playerid))
    {
    if(anticheaton == true);
    {
    SendClientMessageToAll(COLO_YELLOW, "Das Anticheat System wurde deaktiviert");
    anticheaton = false
    }
    else
    {
    SendClientMessageToAll(COLO_YELLOW, "Das Anticheat System wurde wieder aktiviert");
    anticheaton = true;
    }
    }
    return 1;
    }

    Also die Aktualisierung deines Textdraw funktioniert, nur bekommt dann jeder Spieler das gleiche zu sehen.


    Mach es so:


    new Text:statsdraw[MAX_PLAYERS]


    Dann bei OnPlayerConnect erstellst du das Textdraw und bei OnPlayerDisconnect zerstörst du es wieder


    statsdraw[playerid] = TextDrawCreate(.....


    Dann unter der aktualisierung


    public StatsUpdate()
    {
    for(new i=0;i<MAX_PLAYERS;i++)
    {
    new sk[128];
    new morde = pInfo[kills];
    format(sk,sizeof(sk),"Kills: %d",morde);
    TextDrawSetString(statsdraw,sk);
    }
    }

    Erstmal On Player update ist schlecht weil das viel zu oft wiederholt wird und dein Server nur unnötig auslastet.


    Dann hast du hier eine Abfrage


    if(geld + 100000)


    Diese sagt aber nicht eindeutig mit was sie verglichen werden muss.
    Du kannst z.B. eine Variable mit dem Alten und ein mit dem neuen geld machen
    wäre dann die Abfrage so


    if(neugeld + 100000 > altgeld)

    Hast die Geschwindigkeit vergessen


    MoveObject(TaxiTor,-2017.8112792969,47.752044677734,33.187118530273,2.0);



    und der sagt er findet ein ; anstatt eines , weil er die geschwindigkeit sucht, aber nur das ; findet.


    Also brauchst du, wenn du Geschwindigkeit drin hast am ende ein ;

    So ich habe jetzt mal encrpyt ausm gff in mein selfmade dm eingebaut.


    Habe nur ein Problem.


    Wenn man sich einloggt und das falsche Password eingibt, kann man sich danach mit dem falschen Passwort einloggen, da, so vermute ich, durch das Fehlerhafte login der Password Key, ich benutzt dini, verändert wird.


    Und zwar befindet sich auf einmal vor dem ersten Key in der ini das Symbol "ÿ". Allerdings verändere ich weder den Key noch schreibe ich irgentwas an den Anfang der Ini.


    Woran könnte das liegen.


    loginsystem


    new string[128];
    new playername[MAX_PLAYER_NAME];
    GetPlayerName(playerid,playername,sizeof(playername));
    format(string,sizeof(string),"%s.dini",playername);


    new pass[128];
    new laenge;


    format(pass,sizeof(pass),"%s",inputtext);


    laenge = strlen(pass);


    Encrypt(pass);
    printf("%s",pass);
    if(strcmp(dini_Get(string,"Password"),pass,false)==0 && laenge != 0)
    {

    Also ich hab jetzt ja schon eine Antwort auf die Frage bekommen. Doch was sagen die Profis dazu ? Weil ich wüsste es doch ganz gerne bevor ich das komplette Script umstelle und es dann, möglicherweise, sogar schlechter ist.

    Was ist besser ?


    In jedem Befehl und in jedem Callback immer neue strings erstellen und die dan auszugeben :
    new string1[128];
    new string2[128];
    format(...
    format(...
    SendClientMessage(playerid...
    SendClientMessage(playerid...


    ODER


    Einmalig einen string zu erstellen und diesen dann immer in den Commands zu benutzen?


    new stringall[128];


    Command 1: format(stringall....


    Command 2: format(stringall...

    Wenn du die Datei einmal über Pawno geöffnet hast, merkt sich dein Computer die Dateiendung mit dem Program.


    D.h. du kannst die nächsten .pwn einfach durch doppelklick öffnen.