Beiträge von NetBurst

    Wieso lässt du die Accounts nicht automatisch speichern ?


    mfg. :huh:


    /saveaccounts wäre eine gute Möglichkeit, jegliche Probleme mit dem speichern zu lösen, oder bei einem Gmx.


    Beispiel:
    Mit sscanf

    new id;
    if( sscanf (params, " d ", id))
    {
    //Beispiel ein stock zum speichern
    SaveAllPlayers( id );
    }


    //edit natürlich mit einem Befehl
    ->ocmd/sontiges

    CMD:saveallplayers( playerid, params[ ] )
    {
    if( sscanf (params, " d ", id))
    {
    //Beispiel ein stock zum speichern
    SaveAllPlayers( id );
    }
    }

    Es gibt verschiedene Varianten.
    Ich würde dir die vorschlagen:


    Zuerst ein Array erstellen:

    new
    array[5][3]=
    {
    "X, Y, Z",
    "X, Y, Z",
    "X, Y, Z",
    "X, Y, Z",
    "X, Y, Z"
    };

    Dann die derweilige Funtkion zum Erstellen eines Feuers:

    CreateFeuer(playerid(?), array[ random(sizeof array) ]


    In den 5 Positionen werden jetzt zufälligerweise Feuer erstellt.

    Nein, ohnein!
    Man kann keine/oder bereits formatierte strings mit if-abfragen formatieren.


    Lösung:

    if(IsPlayerInVehicle(playerid, 28))
    {
    new string[128];
    format(string, sizeof(string),"Vehicle ID 28");
    SCM(0xffffff, playerid, str);
    }

    //edit mit || oder &&

    Sowas in der Art ist nichts, im Gegensatz zu einem String [256] zu verwenden und dann gleichzeitig nichtmal 10 Cells zu benutzen.
    Dabei müsstest du dir keine Sorgen machen.


    //edit

    Man kann es so sehen.


    Wenn man beispielsweise diese Varianten nehmen würde:

    new
    Testvar = 10;
    for(new i = 0; i < sizeof( Testvar ); i ++)
    {
    print( "%s", Testvar );
    }

    oder:

    Pint( "Test" ); //x 10

    Dann ist es klar, der Compiler braucht mehr zeit zum Compilen
    Zurück zum Speicher/nutzung/verbrauchen sontiges.
    Bei einem GF sind die Ressourcen so "aufgebraucht", dass es wirklich bei einem low-end Root versagen könnte.
    Und die ganzen Var´s/Defines zu optimieren braucht viel Zeit.
    Daher sollte man sich eher was eigenes aufbauen.

    Das ist sehr einfach:
    Man kann einerseits in jedem Befehl die Funktion PlayerPlaySound benutzen,
    was aber nicht so praktisch ist.


    Die andere Variante ist, ein lokalen Callback aufrufen zu lassen:

    CallLocalFunction("Callback", "s", "PlayerPlaySound");


    Oder ein stock verwenden, läuft aber eher wie das erste herraus:

    stock CallPlayerSound(playerid)
    {
    PlayerPlaySound(playerid, 1130, 0.0, 0.0, 10.0);
    }


    //edit /pwn -.-

    Ja aber sie können ja Namen editieren


    SendClientMessage Abschicken etc


    Sie sollen ja nicht gleich ein eigenes reallife mode oder so erstellen erstmal Technik ankuken
    wie befehle gescriptet werden SendClientMessage und so


    Wieso dann Godfather ?
    Grandlarc ist besser geeignet und hat nichtmal 1k Linien.

    Na, da niemand antwortet (zurecht eig.) möchte ich was klarstellen!

    Zitat


    Objecte


    Es heißt Objekte. Auf englisch *Object(s)
    Und, es wird klar gesagt, dass du dein Streamer Plugin und deine Include aktualisieren sollst.
    In dem Falle ist es nur die Include.

    public payday(playerid) { if(Player[playerid][lvl] 4> { GivePlayerMoney(i, Wie viel); } if(Player[playerid][lvl] <4 { GivePlayerMoney(i, Wie viel); } } return 1; }


    Mal angenommen er würde es nehmen, würde es zu 100% nicht klappen !
    Du weißt nichtmal ob er die Variablen bereits im Script hat.

    Zitat


    dynamischen recordings


    Du möchtest damit sagen, dass jeder einzelne Zombie von einer Person (in dem Falle Meso) recordet wurde, und damit jede Person (Client) verfolgt, und einen gewissen Schaden anrichtet ?
    Dafür müsste man in die Zukunft blicken können...


    //bevor das noch zur Diskussion führt...
    Finde es schon "scheiße" ein Plugin zu erstellen, was die Userzahl steigern lässt.
    Das grenzt ja schon an Betrug und unloyalität, Admin(er)seits

    Also.
    Der Zombie Server benutzt NPC´s(was ich aus meiner Sicht ziemlich dumm finde) die mit einem sehr komplexen Code arbeiten.
    Im Prinzip ist es so, dass du in einem gewissen Radius angegriffen wirst bzw. werden die Zombies gespawned.
    Und aus Erfahrung bentone ich es, es ist ziemlich komplex, da ich solch ein System mit Objekten gemacht habe.


    //edit
    Habe vergessen was hinzufügen.
    Es sind normale NPC´s

    Zitat


    Nun fragen sich Neulinge jedoch bestimmt, wo die einzelnen Timer ihren Platz im Script finden?


    Das müsste man selber am besten wissen.
    Am besten wäre, sich Gedanken machen, wo es als erstes aufgerufen werden sollte.
    Timer die bis zum Ende durchlaufen sollten, wären bei OnGameModeInit ( ) am besten geeingnet

    Ich rate dir zum folgendem:



    if (X <= 1831 && X >= 1686 && Y <= -1852 && Y >= -2006)
    {
    //Debug Test setzen, SendClientMessage etc.
    //GameTextForPlayer(i,"Anti DM Bereich",1,6);
    //X=26 Y=331
    antidm[i]=TextDrawCreate(26,331,"Anti DM Bereich");
    TextDrawShowForPlayer(i,antidm[i]);
    }

    Ab da ist er in der angegebenden Position und darf kein DM schieben.
    Meine Variante wäre ein Timer zu setzen, was zum Updaten der Koordinaten bringt.
    Code:



    new Timertest;
    if (X <= 1831 && X >= 1686 && Y <= -1852 && Y >= -2006)
    {
    //Debug Test setzen, SendClientMessage etc.
    Timertest = SetTimerEx("HandleUpdate", 500, true);
    }


    forward HandleUpdate ( playerid );
    public HandleUpdate ( playerid )
    {
    if (X >= 1831 && X >= 1686 && Y >= -1852 && Y >= -2006)
    {
    KillTimer(TimerTest);
    //Ist er über den Koordinaten, muss er die Fehlermeldungen bekomme.
    Der Code ist nicht korrekt in allen Sachen, müsstest du noch ausbessern.
    }
    }


    //angepasst

    Ohne wie ein Klugscheißer da zustehen...
    Nein,
    dieser Code ist verdammt "basic" angelegt, und ist nicht die ganze Arbeit von DracoBlue.
    Er macht verdammt gute Sachen, die gerade Mal im Anfangsstadium von sa-mp entwickelt wurden.


    Zurück zum Thema Mods.
    Habe mir auch Gedanken dazu gemacht, dazu bin ich gekommen:
    ein Array mit allen erlaubten ID der componenten als Index.
    Ist ein Wert, der nicht dazu gehört, steht Verdacht an fehlerhaften Mods oder Mods die dir Vorteile verschaffen.