Beiträge von alva

    Kleiner Tipp:
    Ich schätze mal, dass in deinem System so etwas wie ein BIZ-Schlüssel gespeichert wird, also falls eine Biz vorhanden ist dann zmb. 1 für BIZ 1 und zmb -255 wenn er keine Biz besitzt.
    Du solltest anstatt so einer umständlichen Schleife einfach abfragen, ob der Spieler bereits einen BIZ Schlüssel besitzt.

    @[4_M]XeNo:


    Beispielsweise wenn du eine Adminabfrage machst.



    if(IsPlayerAnAdmin(playerid, rang))
    {
    if(SpielerInfo[playerid][pAdmin] >= rang)return 1; // wenn des spielers admin rang größer oder gleich dem rang ist, wird dem befehl zmb. gesagt, dass es 1 (true in diesem fall) ist, also kann der Befehl weiter ablaufen.
    else return 0; // Wenn dem nicht so ist, wird der Befehl zmb. direkt abgebrochen. man kann return auch für andere Dinge verwenden um einfache Zahlen oder sonstiges weiterzugeben.
    }

    new bool:driver[MAX_PLAYERS]; // global


    public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
    {
    if(ispassenger == 0) //fahrer
    {
    driver[playerid] = true;
    }
    }


    Beim connecten noch auf "false" stellen.



    public OnPlayerExitVehicle(playerid, vehicleid)
    {
    if(driver[playerid] == true)
    {
    DestroyVehicle(vehicleid);
    driver[playerid] = false;
    }
    }

    Die R30 ist die einfachste und verständlichste, die anderen (die angeblich leichteren) habe ich zmb. nie verstanden, also ich würde an deiner Stelle auch ab R7 anfangen, alles danach ist eigentlich genau gleich (nur verbessert).


    Es ist sicherer mit 0.3z...
    Du hast Kontrolle über JEDEN einzelnen Schuss(return 0 = Schuss blockiert) und kannst Cheats viel besser nachvollziehen. Andere Behauptungen sind schlichtweg falsch.
    Bei 0.3x hatte man 0 Information und 0 Kontrolle über Schüsse.


    Man muss nur wissen wie mit den Funktionen umzugehen ist.


    Das ist mir bewusst, aber das mit den "durch Wände schießen" ist so eine Sache, was soll man dagegen denn machen :x


    BTW: Kann man mit der neuen Funktion auch Schüsse "setzen"?

    Mit dem Update kann man nun also mit "rapidfire.cs" mit einer Deagle wie mit einer Maschinenpistole feuerl und für die Leute mit Silentaim wird es noch einfacher vor allem das durch die "Wände" schießen, da jeder Schuss eigentlich treffen müsste.

    Unter OnplayerUpdate einfach etwas in den Chat schreiben lassen bzw. an jedem User etwas senden, aber das würde nur zu FPS-Drops führen, aber vielleicht ist es ja das, was du willst.


    BTW: Einen High-Ping kann man soweit ich weiß Scripttechnisch nicht wirklich erzeugen, höchstens den Server abstürzen lassen.


    :3


    Der Inder hat recht, aber warum verschwendest du hier deine Intelligenz an einem offensichtlichen Troll?

    Ich würde an deinem Login/Register noch eine Sache revidieren.
    new player[128];
    Wäre Fatal wenn sich 2 Spieler gleichzeitig einloggen würden, denn die Variable kann nur einen Namen gleichzeitig tragen.
    Daher würde ich es wenn überhaupt so machen:
    new player[MAY_PLAYERS][128];
    Dann so:
    format(player[playerid], sizeof(player[playerid]),"/Player/%s.ini",name(playerid));


    Außerdem sind 128 Zellen für den Namen zu viel, 24 bzw. MAX_PLAYER_NAME wäre da besser.

    Hier ein kleiner Denkansprung:


    format(query, sizeof(query), "UPDATE `user` SET score='%i',", score);
    strcat(query, "level ='%i', adminlevel = '%i',", level, adminlevel);


    Würde das hier ergeben:
    UPDATE `user` SET score='%i', level ='%i', adminlevel = '%i'


    Jeweils mit den werten für %i usw.

    B2t:


    Dir fehlt wahrscheinlich das was in die Datenbank muss
    wo die Accounts gespeichert werden.


    Keine Ahnung was dein sinnloses Zitat soll aber:
    Wenn deine Datenbank auf dem Gameserver ist, wieso sollte der Gameserver auf seine eigene Internet-IP zugreifen, wenn die Datenbank nicht auf einem externen Server liegt?
    Einfach #define SQL_HOST "localhost"