Beiträge von Kaliber

    1. Schreibs so:


    public OnPlayerText(playerid, text[])
    {
    new string[144],name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,MAX_PLAYER_NAME);
    format(string, sizeof(string), "%s sagt: %s",name,text);
    return Message(playerid,string,20),0;
    }


    2. Schreib es so:


    public UpdateClock()
    {
    new x[3],String[256];
    gettime(x[0],x[1],x[2]);
    format(String,sizeof(String),"%02d:%02d:%02d",x[0],x[1],x[2]);
    TextDrawSetString(RealClock,String),SetWorldTime(x[0]);
    return 1;
    }


    3. So:


    ocmd:ao(playerid,params[])
    {
    if(SpielerInfo[playerid][pAdmin]< 2) return SendClientMessage(playerid,0xFF0000,"Du bist kein Admin!");
    new string[144],name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,sizeof(name));
    if(!params[0])return SendClientMessage(playerid,0xFF0000,"Tippe: /ao [TEXT]");
    format(string,sizeof(string),"** Admin %s: %s",name,params);
    for(new i = 0; i < MAX_PLAYERS; i++) if(IsPlayerConnected(i)) SendClientMessage(i,COLOR_AOCHAT,string);
    return 1;
    }


    mfg. :thumbup:

    Muss ich das speichern Könntes du code vorschlag schreiben ?


    Das musst du doch wissen? :huh:


    Willst du es denn speichern? Soll also das Pickup noch nach einem Server Restart angezeigt werden bzw wenn der Spieler disconnected? :huh:


    Meiner Meinung nach...würde sich das nicht rentieren...also nein.


    Du benötigst keinen Enumerator, du benötigst nicht einmal Globale Variablen, einfach so:


    //Unter OnPlayerDeath
    new Float:dPos[3],name[MAX_PLAYER_NAME],str[MAX_PLAYER_NAME + 20];
    GetPlayerName(playerid,name,MAX_PLAYER_NAME);
    GetPlayerPos(playerid,dPos[0],dPos[1],dPos[2]);
    CreatePickup(1239, 23, dPos[0],dPos[1],dPos[2]); //modelid ändern 1239 = i kein Totenkopf :D
    format(str,sizeof str,"Gestorben ist hier:\n%s",name); //Kannst den Text beliebig ändern
    Create3DTextLabel(text,0xFF4800FF,dPos[0],dPos[1],dPos[2],20.0,0,0); //Erstellt das 3DLabel


    PS: Dies wird da bleiben bis zum Restart...allerdings wird wenn er 2x gestorben ist wird das halt an 2 Orten angezeigt..wolltest du das so? :huh:


    mfg. :thumbup:

    Naja. Ich weiss ja nicht weil tsuserid soll die Eindeutige ID sein: z.b. ajMvTCVPY9bupybnU1BdSk0Za1U=


    Sag das doch...das du diese tsID meinst :rolleyes:


    Dann musst du es so machen:


    format(tsuserid, 128, inputtext);


    Meine Meinung
    Allerdings erachte ich deine Vorgehensweise als falsch.
    Schließlich hat jeder Spieler eine Ts³ Userid..somit brauch jeder Spieler diese Variable.
    Weiterhin ist diese ID keine 128 Zeichen lang, sondern nur 28.

    Meine Meinung
    Sprich deine Variable sollte so aussehen:

    Meine Meinung
    new tsuserid[MAX_PLAYERS][28];

    Meine Meinung
    //und dann so nutzen:
    format(tsuserid[playerid], 28, intputtext);


    mfg. :thumbup:

    Nehmen wir in meinem Beispiel mal an, dein String heißt string ^^


    Dann sähe das folgendermaßen aus:


    static const string[] = "123456789012345678901234567890"; //Das ist unser String


    //dann da wo du ihn splitten willst
    new buffer[17]; //Wir brauchen einen buffer und 17 weil die maximale Länge ja 15 Zeichen sein soll + '\n' und '\0'
    strmid(buffer,string,0,15,17); // 0 = startpos vom String | 15 = Endpos vom String und | 17 maxlength
    buffer[16] = '\n';
    //und jetzt kannst du buffer ausgeben :)


    PS: Er würde 0-15 + \n ausgeben ;)


    mfg. :thumbup:

    werden sie z.B wenn sie vorher 3KB groß waren sind sie jetzt 10MB groß.


    Das liegt daran, dass in der streamer.inc von Incognito auch nur Callbacks für das Plugin stehen und der Code erst im Plugin verarbeitet wird.
    Bei der Fallout Include wird alles direkt in der Include verarbeitet.


    Und von der Streamleistung hat sich bei mir auch nichts verändert.


    Da kann sich auch nichts verändern (nur zum schlechteren).
    Dazu müsstest du aber erstmal richtig verstehen, was "streaming" in samp eig ist.
    Sa:Mp kann nur maximal 1000 public Objekte anzeigen und das ist ein Problem, da man ja mehr als 1000 Objekte mappen will. Deshalb nutzt man CreatePlayerObject und dann kann man 1000 Objekte pro Spieler erstellen und sobald der Spieler aus der reichweite der StreamDistance ist, wird das Objekt zerstört, so das neue Objekte angezeigt werden können.
    So oder so können einem Spieler nur 1000 Objekte gleichzeitig angezeigt werden (gemappte) und da das Incognito schon sehr gut umsetzt, kann das nicht viel anders werden (außer schlechter).


    mfg. :thumbup:

    Ich habe mich schon immer gefragt wofür der Includes Ordner im Hauptverzeichnis des Servers ist.


    Das benötigt der Server eigentlich nicht ;)


    Und wenn ich Scripts kompiliere werden sie z.B wenn sie vorher 3KB groß waren sind sie jetzt 10MB groß.


    Das liegt daran, dass sobald du einen Gamemode mit einer Include kompilierst, der Inhalt vom Include in die Gamemode amx umgewandelt wird.


    Anscheinend verwendet die Include viele Arrays und somit verbraucht das viel Speicher (kenne aber diese Include nicht genau).


    Somit machst du nichts falsch ;)


    Aber du solltest evtl doch auf Incognitos Streamer umsteigen, da Plugins in einem extra Thread laufen und das somit Server schonender ist ;)


    mfg. :thumbup: