Beiträge von TPO

    Guten Tag, nun möchte ich euch gerne Spieler Variablen erklären da diese einfach Vielfältiger sind als die Standart Variablen die gleich meistens für alle 500Spieler gesetzt werden. (Beispiel: new Tacho[MAX_PLAYERS];) dies kann man leicht ändern und ist auch Code sparender und leichter handhablicher ganz einfach zu verstehen. Das nützliche bei PVars ist einfach das ihr in eurem Gamemode z.B Godfather SetPVarInt(playerid,"Adminlevel",PlayerInfo[playerid][pAdmin]); und dann könnt ihr in euren Filterscripts per GetPVar(playerid,"Adminlevel".. abrufen welches Admin Level der Spieler hat ohne erneut ein Enumerator zu erstellen und aus einer Datei auszulesen um den Enumerator zu füllen.

    Zitat

    ♣ Benötigt ♣
    - Leichte Grundkentnisse
    - Benutzungsmöglichkeit für PVar's

    So es gibt nun 3Schritte die ich erklären werde, einmal das erstellen einer PlayerVariable, das Abfragen einer PlayerVariable und das Löschen einer PlayerVarible. Ich nehme mal das Beispiel wo in den PVar's sobald ein Spieler sich einloggt gespeichert wird wann er sich eingeloggt hat (HH:MM:SS), wo er sich eingeloggt hat (Float:X,Float:Y,Float:Z) und welche ID er hat (nur ein Beispiel deswegen etwas Sinnloses).




    1.) Erstellen einer PVar Int, String und Float (Player Variable)
    Erstmal erstellen wir unter OnPlayerConnect (Sobald ein Spieler connectet) eine PVar die auf 0 steht diese Steht für die Player ID. Ganz einfach nutzen wir dafür SetPVarInt nach diesem Muster:
    SetPVarInt(playerid,"SpielerID",playerid);//SpielerID ist der PVar Name und playerid die Spielerid die von SA:MP aus definiert ist.
    Nun ist eine Variable erstellt worden inder die Spieler ID des Spieler's gespeichert ist nun wollen wir noch die Position speichern, da eine Position ein Float (Zahl.Zahl z.B 1234.5234) ist und nicht nur eine Zahl wie 2 oder 61234 brauchen wir etwas anderes als SetPVarInt. Wir benutzen dafür SetPVarFloat dies ist genau so leicht zu benutzen nur sind halt Floats in der Variable Speicherbar! Dies machen wir alles unter OnPlayerConnect nach diesem Schema:
    new Float:pX,Float:pY,Float:pZ;//Erstellt drei neue Werte die mit Floats ausgetauscht werden können
    GetPlayerPos(playerid,pX,pY,pZ); ;//Erfragt die Spieler Position und definiert sie als pX, pY und pZ...
    SetPVarFloat(playerid,"EinloggPositionX",pX);//Speichert in eine PVar den Spieler Einlogg Float der X Achsen Korrdinate..
    SetPVarFloat(playerid,"EinloggPositionY",pY);//Speichert in eine PVar den Spieler Einlogg Float der Y Achsen Korrdinate..
    SetPVarFloat(playerid,"EinloggPositionZ",pZ);//Speichert in eine PVar den Spieler Einlogg Float der Z Achsen Korrdinate..
    Nun wird die Spieler Position in die drei PVar's einzelnd gespeichert. Nun brauchen wir nur noch die Einloggzeit des Spielers, dafür nehmen wir am besten mehrere Zahlen XX:XX:XX in einer Reihe aber es ist kein Float da es keine dezimalzahlen sind sondern ein String der aus mehreren Werten besteht, dies ist auch möglich per 3 verschiedene PVar's mit SetPVarInt doch hier ist SetPVarString nützlicher beim einloggen würde das ganze so aussehen, alles wieder unter OnPlayerConnect:
    new Textstring[8],Stunde,Minuten,Sekunden;//Erstellt einen Stringwert mit der max. Zeichen Anazhahl 8 sowie drei Werte für die Zeit die umgetauscht werden können...
    gettime(Stunde,Minuten,Sekunden);//Fragt die Zeit ab und ersetzt die drei Werte die davor erstellt werden mit der jetzigen Zeit...
    format(Textstring,sizeof(Textstring),"Connected: %d:%d:%d",Stunde,Minuten,Sekunden);//Erstellt ein String (mehrer Werte in einem Satz leicht ausgedrückt) und speichert ihn in den Wert Textstring ab.
    SetPVarString(playerid,"EinloggZeit",Textstring);//Speichert den String von Textstring in die Spieler Variable ein und der Variablen Name ist nun EinloggZeit





    2.) Abfragen einer PVar Int, String und Float (Player Variable)
    So nun wollen wir die Spieler Variablen abfragen zum Beispiel per Befehl. Dafür benutzen wir je GetPVarInt/String oder Float um die Werte zu ermitteln und dies alles in einem Befehl (CMD) unter OnPlayerCommandText:


    if(strcmp(cmdtext, "/pvarinfo", true) == 0)//Falls der Spieler /pvarinfo eingibt...
    {
    new Textstring[64];//Erstellt einen neuen Wert mit max. Zeicheninhalt von 64
    format(Textstring, sizeof(Textstring), "Spieler ID: %d | Einlogguhrzeit: %s | Startposition: %f,%f,%f",GetPVarInt(playerid,"SpielerID"),GetPVarString(playerid,"EinloggZeit"),GetPVarFloat(playerid,"EinloggPositionX"),GetPVarFloat(playerid,"EinloggPositionY"),GetPVarFloat(playerid,"EinloggPositionZ"));
    );//Ersetzt den Wert Textstring mit den PVar Werten..
    SendClientMessage(playerid,0x33CCFFAA,Textstring);//Sendet dem Spieler den Textdrawstring in Hell Blau...
    return 1;//Beendet die Funktion, falsch der Befehl falsch eingegeben wird erscheint "SERVER: Unknown Command"..
    }
    Nun wird dem Spieler z.B folgender Satz gesendet:
    Spieler ID: 12 | Einlogguhrzeit: 21:49:52 | Startposition: 1231.1231, 1234.0974, 5232,5296
    damit haben wir die ersten beiden Funktionen die man lernen sollte, nun das löschen.





    3.) Löschen einer PVar Int, String und Float (Player Variable)
    Falls ihr eine PVar nichtmehr benutzen wollt da ihr sie nur eine Minute oder so benötigt könnt ihr die PVar's mit DeletePVar löschen, hierbei gibt es keinen unterschied der Funktion egal ob ihr Int, String oder Float PVar löschen wollt alles heißt einfach nur DeletePVar um unsere Beispiel Variablen zu löschen würde es also so aussehen:
    DeletePVar(playerid,"SpielerID");
    DeletePVar(playerid,"EinloggZeit");
    DeletePVar(playerid,"EinloggPositionX");
    DeletePVar(playerid,"EinloggPositionY");
    DeletePVar(playerid,"EinloggPositionZ");
    Dies wars auch schon, PVar's sind halt nur eine kleine aber feine Geschichte ich hoffe es hat wenigstens ein paar Usern hier geholfen, bei Fragen/Problemen stehe ich gerne per PN bereit für dieses Tutorial oder direkt im Thread.


    ZKX;)


    \°\Edit: Punkte verbessert sowie Abstand Editiert für bessere Übersicht.
    \°°\Edit: Beschrieben wofür ein PVar überhaupt hilfreich ist. (Sorry das es so spät kommt)

    Ein Tutorial ist dazu da, das man es liest nicht das man im Thread postet was man haben will. Im Tutorial steht ALLES was du dafür brauchst sogar mehr aber warum so faul?

    1.) Warum machst du es auf Englisch in einem Deutschen Forum.
    2.) Das ist eher ein Scriptschnipsel für mich.
    3.) Die Checkpoints gehen bei dir nie wieder weg außer man macht erneut /gps.
    5.) 1/10 Punkte dafür
    6.) Ich habe die 4.) vergessen.

    Zitat

    weile mehr als 400 objecte auf meinem server

    Allein am BSN habe ich über 350 Stück und es laggt nicht ein bisschen und alles wird gestreamt. Du weißt anscheinend nicht wofür ein Objekt Streamer ist und ab wann man den braucht.. Ich benutze keinen mit fast 3000 Objekten insgesammt auf dem Server verteilt.

    Ich kann es bereits in 0.3b Synchrom Scripten genau wie viele andere hier, N!ck sicher auch sonst hätte er das nicht so in der Art gesagt. Doch wenn ihr zufaul seid euer Gehinr einzuschalten ist es eure Sache ;)



    Und zum Thema, ja ist es.

    Das traurige bei sowas ist das die meisten nicht immer das reale Handy angeben was sie haben weil sie ein besseres haben wollen als andere. Naja, das iPhone ist echt ein tolles Spielzeug ich wollte es mir auch damals kaufen aber es ist eig. unnötig. Ich habe nun wieder ein altes Handy was mir reicht auch wenn es eine Kamera, Internetzugang und alles hat brauche ich es sowieso nie.

    Habe ihn gesehen, das ganze Kino war total außer sich und alle schrien ich verstand das nicht.. da finde ich selbst der Exorzist schlimmer als das.. -.-' hatte soviel erwartet ging extra ins klein Kino bei uns da ich da sonst nicht reinkomme und dann sowas.. sollte ma das FSK runterschrauben..

    So war klar das es wieder zu einer MTA vs. SA:MP Disk. ausreift.. Tjong ich mag auch Toastbrot.. =D @All könnt ihr nicht einfach mal ruhig sein denn wie heißt es so schön? "Der Klügere gibt nach.." sowas nervt echt.. aber dann in der Signatur einen auf "80% der Breadfish Mitglieder Sind Kiddys" Satz haben aber selbst nicht viel besser sein, naja könnts mal Updaten sind mit euch sicher 81% ..