Beiträge von Kaliber

    Wie macht man das mit den Orten? Würde mich interessieren.


    Es gibt dafür extra einen Array, wo Positionen (von jeder Area) und dessen Name steht, irgendjemand im englischen Forum hatte da Langeweile und hat das gemacht.


    Schaden: Bekommst du durch http://wiki.sa-mp.com/wiki/GetVehicleHealth_DE
    Geschwindigkeit + Fahrzeugname + Tank: Hatte ich mal ein Include geschrieben (kannst es ja nutzen wenn du willst) [ INCLUDE ] Simple Tacho


    und das packst du einfach in ein TextDraw und fertig ;)


    mfg. :thumbup:

    Also, es gibt ja gaanz viele Speicherungssysteme schon. Allerdings sind die meisten so aufgebaut, dass man permanent irgendwelche Sachen eingeben muss wie z.B. dini:


    dini_Int(...); //-> Immer 1ne Funktion für 1ne Variable


    Nun, da mir mal wieder extrem langweilig ist, habe ich für euch ein kleines Speicherungssystem geschrieben welches das extrem vereinfacht, sieht z.B. so aus:



    //Parameter erklärt:
    User::save(pfad[], pw[], args[], var1, var2, var3, var4, ...); //da wo ... ist, kann es unendlich weiter gehen
    //pw[] steht für das Passwort des Spielers
    //args[] sind die Argumente, unten steht eine genaue Erklärung
    //var1 = Die 1. Variable die man speichern will



    //Anwendungsbeispiel:
    new pfad[MAX_PLAYER_NAME+4],name[24];
    GetPlayerName(playerid,name,24);
    format(pfad,MAX_PLAYER_NAME+4,"%s.txt",name);
    User::save(pfad, "123", "ddfs", int1, int2, float1, string);
    //pfad = Wo die Datei gespeichert werden soll
    //"123" = Das Passwort des Spielers
    //"ddfs" = Sind die Argumente
    //int1 ist die erste Variable die gespeichert wird.


    und zum laden ist es auch ganz einfach:



    //Parameter:
    User::load(pfad[], pw[], args[], var1, var2, var3, var4, ...); //da wo ... ist, kann es unendlich weiter gehen
    //pfad[] = Wo die Datei gespeichert werden soll
    //pw[] steht für das Passwort des Spielers
    //args[] sind die Argumente, unten steht eine genaue Erklärung
    //var1 = Die 1. Variable die wieder geladen wird



    //Anwendungsbeispiel:
    new int1,int2,Float:float1,string[32],pfad[MAX_PLAYER_NAME+4],name[24];
    GetPlayerName(playerid,name,24);
    format(pfad,MAX_PLAYER_NAME+4,"%s.txt",name);
    User::load(pfad, "123", "ddfs", int1, int2, float1, string);


    Besonders wichtig ist, dass das Passwort immer übereinstimmt, sonst gibt die "Load" Funktion eine 0 zurück, das ist ein eingebautes Passwort Abfrage System ;)


    Args (Argumente):
    Die Argumente kennt ihr aus dem sscanf-Code :)
    Hier nochmal eine kleine Liste:


    Code
    i,d = Integer (Zahlen)s = String (Zeichenkette)f = Float (Kommastellenzahl)


    Wichtig:
    Ich habe eine statische Größe angegeben, die Datei kann momentan nur 256 Bytes groß sein. Falls ihr das erhöhen müsst (wenn ihr z.B. viele Texte abspeichern müsst), dann macht ihr das so:


    #define MAX_BUFFER 512 //Jetzt könnte die Datei 512 Bytes groß sein
    #include <k_save>


    Speedtest + Support:
    Falls noch Fragen bestehen, könnt ihr diese gerne stellen, einen Speedtest habe ich auch gemacht, also für 1000 Saves, dauert das (mit diesen 4 Variablen * 1000 halt) = 150ms
    und das Laden 80ms...
    Also es ist verdammt schnell :D


    Download:
    Source-Code: Pastebin
    Direkter-Download: Mediafire


    Würde mich über ein kleines Feedback freuen :)


    mfg. :thumbup:


    //Edit:
    Nochmal alles etwas ausführlicher erklärt und etwas hinzugefügt.
    Nun muss man keine playerid angeben...

    Muss ich mal wieder weitere includes veröffentlichen ich glaub mein ansehen als professioneller Skripter geht den Back runter zu dem das nur 3 Leute mein CMD Prozessor gedownloadet haben


    Das liegt doch nur daran, dass du den Code am Anfang direkt in den Thread geschrieben hast und ihn hat fast niemand verstanden, dass hat denen bestimmt Angst gemacht :D
    Zudem waren es 2 Leute, 2x ich und 1x Blackace :D


    mfg. :thumbup:

    Und mit SetTimerEx einfach nach 10 Sekunden oder so die Chatbubble auf garnichts setzen.


    Das ist nichtmal nötig, da es einen Parameter gibt und den einfach auf 10000 setzen kann und dann steht das da so oder so nur 10Sekunden ;)


    (Wobei das ziemlich lang ist)


    mfg. :thumbup:

    Also, das ist möglich musst aber ein bisschen ausprobieren :)


    Das Nitro ist immer eine konstante Zeit da, finde einfach heraus wie lange es dauert, bis es weg ist und dann kannst du dir den Rest zusammenrechnen ;)


    mfg. :thumbup:

    Ja, in der Tat, das ist möglich :D


    Das basiert auf einem System von Makros :)


    Hier mal ein Beispiel:


    #define User::%0(%1,%2,%3) \
    (%0(%1,%2,%3))


    //Hier mal aufgerufen:
    main() {
    User::create("Kaliber", "123", 1234);
    }


    stock create(name[],pw[],...) {
    printf("%s | %s",name,pw); //printet->Kaliber|123
    }


    mfg. :thumbup:

    Mit der Berechnung ist es möglich abzuprüfen ob sichjemand in einem Dreieck befindet gedacht war die berechnung für einen blitzer womit man einseitig blitzen kann.


    Das ist ne gute Idee und schöne Umsetzung ;)


    Allerdings, frage ich mich gerade wieso du die eine Deklaration nicht in 1ne Zeile schreibst?!


    Schreibs doch so:


    new const Float:Winkel = 60.0,Float:Weite = 30.0;


    Nun...egal, mir ist aufgefallen, dass dieses ^ Zeichen in Pawn keine exponentielle Rechnung macht.


    Aus diesem Grund habe ich ein kleines Makro geschrieben:


    #define expo(%0^%1) \
    (floatround(floatpower(%0,%1)))


    //Nutzung:
    printf("%d",expo(5^2)); // ->Ergebnis: 25


    mfg. :thumbup:

    Eine Fraktion zu erstellen ist ja nicht sonderlich schwer ... nur ist mein Problem wenn ich jemanden Invite(Bei meinem Script /einladen) dann wird das nicht in der Account Datei von der Person gespeichert(Also muss ich es manuell eintragen, Arbeite mit Dini) auch andere Dinge z.B /makeadmin werden dort nicht Abgespeichert und ich versteh nicht ganz wo man was eintragen muss und wie man es eintragen muss (Bei denn ganzen Stocks) Damit es sich überhaupt Speichert,
    Geld wird auch nicht Abgespeichert :<.


    Hier mal mein Register,LoadAccount,Login,OnPlayerDisconnect und mein enum Player_Info:


    Um zu wissen, wieso es das nicht speichert, musst du uns zeigen wie du es speicherst und dazu musst du die Funktion "stock SpielerSpeichern(playerid)" mal zeigen :)



    Als erstes, solltest du mal folgendes tun:


    Anstatt:


    Schreibe einfach:
    for(new i; i<sizeof(GROVEcar); i++) SetVehicleNumberPlate(GROVEcar[i],"Grove Street");


    PS: Fang bitte bei den Cars erstellen mit einem Array von 0 an.


    Also, das Mysterium bei deinen "Autos" liegt einfach darin, dass du 2 verschiedene Varianten verwendest um eine Fraktion zu bestimmen.
    Die 1. ist diese: PlayerInfo[playerid][Fraktion] (Die verwendest du beim Speichern).
    und die 2. beim Abfragen ist diese: GetPVarInt(playerid,"Fraktion") (Bei der Abfrage).
    Nun, anstatt 2 verschiedene zuverwenden, solltest du dich auf 1ne einigen, dann wird das auch funktionieren ;)


    Die Letze Frage habe ich nicht verstanden :rolleyes:


    mfg. :thumbup:

    Richtig so. Du hast, nur weil du länger dabei bist als andere, keine Sonderrechte. Ausser dem wolltest du nicht eh gehen weil hier alle so Pöse sind? Ich erinnere mich da an so einen Thread im Smalltalk...


    Les doch mein Profil, bevor du meckerst ;)


    Zudem sind 5 Punkte übertrieben...nur so am Rande ;)

    Einer von uns beiden braucht definitiv eine Brille.


    ich hab eher den Eindruck, das wir die "kleinen" viel viel mehr durchgehen lassen als andere.
    Die alten werde manchmal sogar gar nicht bestraft.
    Die, die mittelmäßig lang hier sind, bekommen alles ab.


    Man braucht nur Registrierungsdatum mit den Verwarnungen vergleichen.
    Auch wenn das kein Maßstab ist


    Naja mein Lieber, ich habe neulich "hdf" geschrieben und habe 5 Verwarnungspunkte kassiert -.-

    Zum Beispiel so:


    new string[128],name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,MAX_PLAYER_NAME);
    format(string,128,"Wir haben ein neuen User der sich regestriert hat und der heisst %s",name);
    SendClientMessageToAll(0xFF4800FF, string);


    mfg. :thumbup: