Beiträge von Kaliber

    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:

    Einfach folgendes:


    //Unter OnPlayerText:
    new name[MAX_PLAYER_NAME],msg[144];
    GetPlayerName(playerid,name,MAX_PLAYER_NAME);
    format(msg,144,"%s sagt: %s",name,text);
    return SendRangeMessage(playerid,farbe,15.0,msg),0; //15.0 = Range..kannst du einstellen


    //Und unten ins Skript:
    stock SendRangeMessage(playerid,farbe,Float:range,msg[]) {
    new Float:p[3];
    GetPlayerPos(playerid,p[0],p[1],p[2]);
    for(new i; i!=MAX_PLAYERS; i++) if(IsPlayerInRangeOfPoint(i,range,p[0],p[1],p[2])) SendClientMessage(i,farbe,msg);
    return 1;
    }


    mfg. :thumbup:

    Auch wenn das nicht wirklich zum Thema gehört:


    Spoiler anzeigen
    Wenn man nur 1nen Parameter haben will so wie in diesem Fall, sollte man kein sscanf nutzen, da das nur unnötig Zeit verbraucht und ungenau ist (wenn du z.B. einen Text hast splittet sscanf die Leerzeichen raus, was bei einem Text suboptimal ist)...

    Spoiler anzeigen
    Also kannst du auch einfach folgendes machen:

    Spoiler anzeigen
    ocmd:a(playerid,params[]) {
    if(!GetPVarInt(playerid,"Adminlevel")) return SendClientMessage(playerid,Grau,"Du bist kein Administrator!");
    if(!params[0]) return SendClientMessage(playerid,Grau,"Verwendung: /a [Text]"); //Sollte klar sein.
    new message[144],name[MAX_PLAYER_NAME]; //Ein String namens message und eine Variable namens name wird erstellt.
    GetPlayerName(playerid,name,sizeof(name)); //Der Name aus der Variable name wird ausgelesen.
    format(message,sizeof(message),"* Supporter %s: %s",name,params); //Der String message wird formatiert, sodass dort der ausgelesene Name verwendet werden kann.
    return SendAdminMessage(Gelb,message); //Der Stock SendAdminMessage sendet den formatierten String nur an Spieler, die einen Adminrang besitzen. Weiteres dazu unten.
    }


    mfg. :thumbup:

    Aber meine Frage ist, wo genau fange ich den wert jetzt ab?


    Du erstellst eine neue Datei namens "profil.php" und da kannst du dann folgendes reinschreiben:


    Diese Datei muss im selben Verzeichnis liegen wie deine html datei, andernfalls musst du den Pfad ändern ;)


    PHP
    if(!isset($_POST["check"])) exit;
    echo $_POST["check"];


    mfg. :rolleyes:

    Ich hab das mal so gemacht wie ich es verstanden habe.


    Dann hast du es nicht richtig verstanden wie javascript funktioniert ^^


    So solltest du es machen:


    Spoiler anzeigen
    <script type="text/javascript">
    request = false;
    vari = false;
    function OnChangeCheckbox (checkbox) {
    if (window.XMLHttpRequest) request = new XMLHttpRequest();
    else if (window.ActiveXObject) {
    try {
    request = new ActiveXObject('Msxml2.XMLHTTP');
    } catch (e) {
    try {
    request = new ActiveXObject('Microsoft.XMLHTTP');
    } catch (e) {}
    }
    }
    if(checkbox.checked) vari=true;
    else vari=false;
    if (!request) return alert("Kann keine XMLHTTP-Instanz erzeugen");
    request.open('post', 'profil.php', true); //phtml? ich hoffe du meinst .php!!! >.<
    request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
    request.send('check='+vari); //und nun greifst du den Wert im PHP-Skript imt $_POST["check"] ab!
    return false;
    }
    </script>


    mfg. :thumbup:

    Ich steig da irgendwie nicht durch, könnt ihr mir ne denkhilfe geben wie ich damit anfange am unlogischten :/


    Naja, da gibt es 2 Möglichkeiten, entweder du nutzt JQuery oder einen guten alten XMLHttpRequest :D


    Ich zeig dir mal den Request:

    Spoiler anzeigen
    request = false; //als globale Variable
    function requSend() {
    if (window.XMLHttpRequest) request = new XMLHttpRequest();
    else if (window.ActiveXObject) {
    try {
    request = new ActiveXObject('Msxml2.XMLHTTP');
    } catch (e) {
    try {
    request = new ActiveXObject('Microsoft.XMLHTTP');
    } catch (e) {}
    }
    }
    if (!request) return alert("Kann keine XMLHTTP-Instanz erzeugen");
    request.open('post', 'xxx.php', true); //post = POST oder GET und xxx.php ist der Datei name von deiner PHP Datei
    request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
    request.send('name=hi'); //->Hier würdest du jetzt eine $_POST["name"] Variable senden mit dem Inhalt ->hi (kannst du dann im PHP-Skript abfragen)
    request.onreadystatechange = interpretRequest; //Das nur, wenn du eine Antwort vom PHP Skript haben möchtest in Form von dem HTML Source Text
    return false;
    }


    PS: Fall du noch die Antwort vom PHP-Skript haben möchtest natürlich die Funktion noch schreiben:


    Code
    function interpretRequest() {	switch (request.readyState) {		case 4:			if (request.status != 200) {				return false;			} else {				var content = request.responseText;				alert(content); //Würde dir jetzt die Antwort ausgeben ;)			}			break;		default:			break;	}	return false;}


    PS²: Bitte lies dir meine Kommentare am Rand von dem Code durch! :)


    mfg. :thumbup:

    Neiiiiiiiiiiiiiiiiiiiiiiiiin :pinch:


    Niemals den Code so durcheinander schmeißen!


    Doch kein PHP in Javascript verwenden X(


    Man erstellt eigentlich für alles eine eigene Datei..nur HTML und nur PHP und nur Javascript und nur CSS...


    Dann hat man das alles schön übersichtlich und gut! ;)


    Schau dir mal Ajax an, dass musst du verwenden um von Javascript auf ein PHP Skript zuzugreifen ;)


    mfg. :thumbup: