Beiträge von NicoAiko

    1. Bei der Passwortabfrage kein true (bei strcmp), sonst kann man wenn das Passwort "Hallo" auch HALLO oder HAllO usw. schreiben (Case-Sensitive wird ignoriert!)
    2. muss man bei integern kein ' ' machen (siehe INSERT INTO)
    3. Gib am besten mal den mysql_log dazu dann kann ich besser helfen


    public check()
    {
    for (new playerid = 0; playerid < MAX_PLAYERS; playerid++)
    {
    if(GetPlayerMoney(playerid) > SpielerInfo[playerid][pGeld])
    {
    new string[128], HackerName[MAX_PLAYER_NAME];
    GetPlayerName(playerid,HackerName,sizeof(HackerName));
    format(string,sizeof(string),"Info: %s hat Money-Hack genutzt $%d. Sein Geld wurde zurückgesetzt und er wurde vom Server gebannt",HackerName,GetPlayerMoney(playerid));
    for(new i=0;i<=MAX_PLAYERS;i++)
    {
    if(SpielerInfo[i][pAdmin] >= 1 || IsPlayerAdmin(i))
    SendClientMessage(i,COLOR_RED,string);
    }
    Ban(playerid);
    continue;
    }
    else if(SpielerInfo[playerid][pGeld] > GetPlayerMoney(playerid))
    {
    ResetPlayerMoney(playerid);
    GivePlayerMoney(playerid,SpielerInfo[playerid][pGeld]);
    continue;
    }
    }
    return 1;
    }

    Ich glaube dann so ;)


    MfG ニコ先生

    Wenn das so weiter geht werde ich dich wohl bald für deine vielen Hilfen bezahlen müssen xD


    Du bezahlst schon für meine Beitragszahl ^^ Ich freue mich schon auf die 1000 :D
    B2T:
    Vielleicht solltest du nicht alle Spieler Bannen die evtl. zu viel haben z.B. wegen Tuningwerkstatt oder so...
    Du solltest gucken, dass dort keine Bugs entstehen.


    MfG ニコ先生


    public check()
    {
    for (new playerid = 0; playerid < MAX_PLAYERS; playerid++)
    {
    if(SpielerInfo[playerid][pGeld] > GetPlayerMoney(playerid))
    {
    ResetPlayerMoney(playerid);
    GivePlayerMoney(playerid,SpielerInfo[playerid][pGeld]);
    new string[128], HackerName[MAX_PLAYER_NAME];
    GetPlayerName(playerid,HackerName,sizeof(HackerName));
    format(string,sizeof(string),"Info: %s hat Money-Hack genutzt $%d. Sein Geld wurde zurückgesetzt und er wurde vom Server gebannt",HackerName,GetPlayerMoney(playerid));
    for(new i=0;i<=MAX_PLAYERS;i++)
    {
    if(SpielerInfo[i][pAdmin] >= 1 || IsPlayerAdmin(i))
    SendClientMessage(i,COLOR_RED,string);
    }
    Ban(playerid);
    }
    }
    return 1;
    }


    Lass einfach das return 1; in der Schleife weg...
    Und die Sinnlosen abfragen und das Else auch ^^
    Und wozu Geld resetten wenn er eh gebannt wird oO


    Edit: Code übersichtlicher gemacht und Fehler entfernt

    dann mach mal folgendes


    am Ende von OnGameModeInit() (über dem return 1; natürlich ^^)

    for(new i = 0; i < MAX_VEHICLES; i++)
    {
    SetVehicleToRespawn(i);
    }


    und bei OnVehicleSpawn machst du dann

    for(new i = 0; i < sizeof(noobroller); i++)
    {
    if(vehicleid == noobroller[i])
    {
    SetVehicleParamsEx(vehicleid,0,0,0,1,0,0,0);
    }
    }

    If you use "char arrays" instead of normal ones where needed 50 times you'll save 75,000 bytes (~73 kb).
    Ich nutze Char Arrays mindestens 50 mal also sollte der normalerweise ~73kb kleiner sein oder nicht?
    Siehe deine Quelle...


    Versteh ich nicht ganz -_-

    Hallo,


    ich habe eine Frage: Ich benutze nun Char-Arrays um die KBs zu senken.
    Leider beträgt der Verlust durch die Char-Arrays gerade mal 1 KB...


    Ich benutze 23 Variablen mit Char-Arrays


    Und jede Variable wird mindestens 10mal-20mal im Script erwähnt.


    Mach ich was falsch?
    So benutze ich die:

    new RegisterStep[MAX_PLAYERS char];
    RegisterStep{playerid} = 1;


    Wäre schön, wenn ich mir jemand ein Licht geben kann ^^


    MfG


    Ich habe Windows 7, kenne mich jedoch nicht so gut damit aus.


    Ich kann damit nichts Anfangen:


    Ich habs doch verständlich geschrieben oO


    Zuerst auf den Startbutton
    danach ist rechts in der Leiste der Button Standardprogramme
    in der Liste rechts stehen 4 mögliche Optionen, du klickst auf die 2. namens Dateityp oder Protokoll einem Programm zuordnen
    Daraufhin lädt er die Liste mit Dateiendungen.
    Du scrollst runter zu .pwn und doppelklickst es.
    Dann wählst du das Programm aus.
    Wenns nicht in der Liste des neuen Fensters ist, gehst du auf Durchsuchen und fügst es hinzu.


    Fertig


    MfG


    ocmd:Dveh(playerid,params[])
    {
    if(!isPlayerAnAdmin(playerid,2))return SendClientMessage(playerid,ROT,"Du bist kein Moderator!");
    new entfernen[20];
    new carid = GetCarInRangeOfAdmin(playerid,3.0);
    if(carid == -1) return 1;
    format(entfernen, sizeof(entfernen), "%d.car",CarInfo[carid][ID]); // Hast du so eine ID?
    dini_Remove(entfernen);
    new string[128];
    format(string,sizeof(string),"Du hast ein Fahrzeug von %s gelöscht", CarInfo[carid][abesitzer]);
    SendClientMessage(playerid,ORANGE,string);
    format(string,sizeof(string),"%s hat sich ein Fahrzeug von %s gelöscht",NAMEN(playerid), CarInfo[carid][abesitzer]);
    print(string);
    DestroyVehicle(carid);
    return 1;
    }


    Also:
    1. Nicht willkürlich irgendwelche Klammern machen.
    2. Gucken welche Variable benutze ich wie?
    3. Das Fahrzeug am Ende zerstören, und nicht vergessen die CarInfo des zerstörten Cars zu resetten ;)
    4. Eigentlich kann das gar nicht hinhauen... Ich habs mal bei format verbessert. Guck mal ob du bei CarInfo sowas hast.


    Probier mal so, habs etwas verbessert


    MfG ニコ先生