Beiträge von [BE]axi92

    Nein in Zeile 6 kannst du im Chat "/blitzer add" schreiben somit hat er den speed parameter nicht da er ja nur optional ist gibt er da auch noch keine Meldung aus.


    Kommst du dann aber zu Zeile 9 überprüft er ja das speed nochmal da aber nichts vorhanden ist gibt er dir das return aus.

    Danke für die Korrektur, stimmt sind ja auch nur Arrays^^
    Aber bei den ganzen Programmiersprachen kommt man auch mal durcheinander :D



    ocmd:blitzer(playerid, params[])
    {
    new speed, method[12];
    if(sscanf(params, "s[12]i", method, speed)) return SendClientMessage(playerid, Rot, "Benutzung: /blitzer [add] [Geschwindigkeit]");
    if(!strcmp(method, "add", true))
    {
    SendClientMessage(playerid, Gelb, "Moin 1");
    if(speed > 29 && speed < 151)
    {
    AddBlitzer(playerid, speed, 25);
    }
    }
    else if(!strcmp(method, "remove", true))
    {
    return SendClientMessage(playerid, Gelb, "Moin 2");
    }
    return SendClientMessage(playerid, Rot, "Es gibt nur add oder remove.");
    }

    Ich habe die Klammern nur weggelassen weil ich dachte dann sparst du dir Zeilen.
    Aber wenn du dich damit nicht so gut zurecht findest hier bitte mit klammern:



    ocmd:blitzer(playerid, params[])
    {
    new speed, method[12];
    if(sscanf(params, "s[12]i", method, speed)) return SendClientMessage(playerid, Rot, "Benutzung: /blitzer [add] [Geschwindigkeit]");
    if(method == "add") return
    {
    SendClientMessage(playerid, Gelb, "Moin 1");
    if(speed > 29 && speed < 151)
    {
    AddBlitzer(playerid, speed, 25);
    }
    }
    else if(method == "remove")
    {
    return SendClientMessage(playerid, Gelb, "Moin 2");
    }
    return SendClientMessage(playerid, Rot, "Es gibt nur add oder remove.");
    }

    Ich hätte den Befehl anders aufgebaut, nur ein Vorschlag:



    ocmd:blitzer(playerid, params[])
    {
    new speed, method[12];
    if(sscanf(params, "si", method, speed)) return SendClientMessage(playerid, Rot, "Benutzung: /blitzer [add] [Geschwindigkeit]");
    if(method == "add") return SendClientMessage(playerid, Gelb, "Moin 1");
    else if(method == "remove") return SendClientMessage(playerid, Gelb, "Moin 2");
    return SendClientMessage(playerid, Rot, "Es gibt nur add oder remove.");
    }


    Ungetestet

    Nicht gleich übertreiben^^ (ban, kick)
    Wenn das Geld nicht mehr übereinstimmt updatest du dem Client seine anzeige einfach.
    Es muss auch kein Cheater sein da das PNS und Kasino dem Client Geld abzieht der Server davon aber nichts weiß.


    Außerdem würde ich dir vorschlagen foreach zu benutzen da er da von Grund auf nur die Spieler durchgeht die online sind: http://forum.sa-mp.com/showthread.php?t=481877



    Einmal pro sekunde checken lassen und fertig =)



    public Abfragen()
    {
    foreach (new i : Player)
    {
    if(sInfo[i][eingeloggt] == 0) continue;
    if(sInfo[i][pGeld] == GetPlayerMoney(i)) continue;
    else
    {
    new string1[128], name[25], betrag;
    betrag = GetPlayerMoney(i) - sInfo[i][pGeld];
    SetPlayerMoney(i,sInfo[i][pGeld]);
    GetPlayerName(i,name,sizeof(name));
    format(string1,sizeof(string1),"** ADMINSYTEM: %s ist unter Moneyhack verdacht. Betrag: $%i",name,betrag);
    sendToAdmin(2,string1);
    }
    }
    return 1;
    }


    stock SetPlayerMoney(playerid, money)
    {
    ResetPlayerMoney(playerid);
    return GivePlayerMoney(playerid,money);
    }

    Ja schon jedoch ist es im Entwicklungsprozess einfacher als dann das vorhandene komplett zu ändern.
    Beispiele:

    • banlog (bei uns gibt es eine "active" spalte nur bei einer 1 ist der bann noch aktiv
    • log (enthällt sehr viele Spalten und auch Datensätze, alle auslesen daher nicht möglich auch die Filtermethoden müssten angepasst werden)
    • users (um die 100 Spalten mit Informationen über den Account)

    um nur einige zu nennen.
    Ich persönlich mache mir da lieber mein eigenes da ich weiß was ich dann gemacht habe, bei Fremden Sachen muss man sich erst einlesen wie derjenige coded.
    Von möglichen Sicherheitslücken beginne ich erst gar nicht.

    Ich würde immer eines selbst machen aus dem einfachen Grund das ich in der Lage dazu bin.
    Wer nicht in der Lage ist muss sich eines kaufen.


    Das es nicht anpassungsfähig ist ist keine Begründung man kann alles anpassen^^
    Was mich nur ein wenig skeptisch macht das gekaufte CP kann ja nie mit jeder Datenbank kooperieren...?

    Wenn du die Wantedliste am Server meinst gar nicht weil nur das was du siehst sieht auch die API im Normalfall. Außer der Server hat eine WebAPI aber das denke ich mal nicht.
    Wenn du die wantedliste ingame anzeigst bringt es ja nicht das auch noch imm Overlay anzuzeigen oder?
    Wenn schon dann mit Regex das rausfiltern was du brauchst.

    Hier das meinte er da hast du die berechnung drinnen