Beiträge von EvilToastBrot

    if (strcmp("/enter", cmdtext, true, 10) == 0)
    {
    if(IsPlayerInRangeOfPoint(playerid,8.0,713.8139,-2678.4348,13.4844)|| IsPlayerInRangeOfPoint(playerid,8.0, 894.9775,-4012.6687,13.6000))
    {
    SetPlayerPos(playerid,363.1381,-74.6095,1001.5078);
    SetPlayerInterior(playerid,10);
    }
    return 1;
    } // Command beendet.
    { // Kann nicht funzen, weil das hier in keinem if(strcmp...) steht.
    if(IsPlayerInRangeOfPoint(playerid,8.0,901.6625,-4042.6003,13.7859))
    {
    SetPlayerPos(playerid,296.919982,-108.071998,1001.515625);
    SetPlayerInterior(playerid,6);
    }
    return 1;
    }


    Also so:


    if (strcmp("/enter", cmdtext, true) == 0)
    {
    if(IsPlayerInRangeOfPoint(playerid,8.0,713.8139,-2678.4348,13.4844) || IsPlayerInRangeOfPoint(playerid,8.0, 894.9775,-4012.6687,13.6000))
    {
    SetPlayerPos(playerid,363.1381,-74.6095,1001.5078);
    SetPlayerInterior(playerid,10);
    return 1;
    }
    if(IsPlayerInRangeOfPoint(playerid,8.0,901.6625,-4042.6003,13.7859))
    {
    SetPlayerPos(playerid,296.919982,-108.071998,1001.515625);
    SetPlayerInterior(playerid,6);
    return 1;
    }
    return 1;
    }


    So machste das auch mit dem /exit Befehl.

    Hallo.
    Brauche ne random Funktion die auch Float Werte annimmt.
    Hab jetzt ne Funktion von Y_Less hier gefunden, aber wenn ich jetzt frandom(0.1, 0.2); mache, dann kommen Werte wie: 9018952.00, 1102353.00 oder so raus.
    Stimmt eben aber nicht ^^
    Hier mein Code:


    if(!strcmp(cmd, "/floatrandom", true))
    {
    tmp = strtok(cmdtext, idx);
    new Float:val1 = floatstr(tmp);
    tmp = strtok(cmdtext, idx);
    new Float:val2 = floatstr(tmp);
    new str[50], Float:wert = frandom(val1, val2);
    format(str, sizeof str, "%f", wert );
    SendClientMessage(playerid, Grey, str);
    return 1;
    }


    Liegts an meinem Code oder an dem von Y_Less?
    Wenn letzteres Zutrifft, könnte mir pls jmd die richtige Funktion geben?
    Ty :*

    Kannst sie ja in ein Filterscript machen.
    Ja eben ('Zeile des letzten Objekts' + '1') - 'Zeile des ersten Obekts'. Dann hast die Anzahl.
    Das hier runterladen und Anleitung hier aus dem Englischen SAMP Forum befolgen:


    Zitat

    Use as filterscript:
    - Put the filterscript in this folder: server\filterscripts\<here>
    - Add F_Streamer to your filterscripts line in server.cfg
    - Put your objects under OnFilterScriptInit() or where ever in the script you want them to be.

    Ganz oben: new Text3D:TotLabel[MAX_PLAYERS];


    TotLabel[playerid] = Create3DTextLabel(string,0x0A0A0AFF,x,y,z,40.0,0);


    Destroy3DTextLabel(TotLabel[playerid]);


    Und du musst SetTimerEx("tot", 10000, false, "d", playerid); machen, dass du 'playerid' in public tot zur Verfügung hast.

    Vielleicht sind es zu viele Objekte in einem bestimmten Raum.
    Mit Fallouts Objekt Streamer können maximal 400 Objekte gleichzeitig angezeigt werden.



    Hier les ich gerade was:


    Zitat

    #define F_MAX_OBJECTS 10000 //maximum amount of objects the streamer will create; PLEASE change this to the amount of objects you are using.



    //Edit: Wenn es mehr als 400 Objekte gleichzeitig sind eventuell mal #define StreamRange verringern.

    Probier mal so:
    public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
    {
    if(newkeys & KEY_ANALOG_DOWN)
    {
    if(!IsPlayerInAnyVehicle(playerid)) return 1;
    new vehicleid=GetPlayerVehicleID(playerid);
    if(engine[vehicleid] == 0)
    {
    engine[vehicleid]=1;
    SendClientMessage(playerid,GRUEN," Motor wurde gestartet.");
    }
    else if(engine[vehicleid] == 1)
    {
    engine[vehicleid]=0;
    SendClientMessage(playerid,ROT," Motor wurde ausgeschaltet.");
    }
    SetVehicleParamsEx(vehicleid,engine[vehicleid],lights[vehicleid],alarm[vehicleid],doors[vehicleid],bonnet[vehicleid],boot[vehicleid],objective[vehicleid]);
    }
    }

    Dann ist PlayerHaul[tmpcar][pCapasity] eben 0 ^^
    Prüf halt mal die Ladefunktionen/Speicherfunktionen, falls du die Werte speicherst.


    SetTimerEx("StopMusicHanger", Zeit die der Hanger braucht um sich zu öffnen/zu schließen, 0, "d", playerid);


    forward StopMusicHanger(playerid);
    public StopMusicHanger(playerid)
    {
    PlayerPlaySound(playerid, 1154, 214.21054077148, 1875.8825683594, 14.680994033813);
    return 1;
    }

    Ich hab da ne Idee, aber die ist verdammt schwer zu erklären :D
    Ich hab so ein Laptop System, das ähnelt deinem SMS-System.
    Also es gibt ja dann mehrere Listitems.
    Und dann musst du eben eine Variable, ich nenn sie mal 'counter' erstellen.
    Und dann lässt du ne For-Schleife durchlaufen, die Prüft, ob der Empfänger der gewünschte Spieler, also 'playerid', ist.
    Wenn das so ist dann prüfst du, ob counter den Wert von listitem hat. Wenns so ist, führst du den Code aus und lädst mit dem 'i' aus der For-Schleife die Daten aus dem Array mit den SMS Daten oder aus der MySQL Tabelle.
    Und am ende der if-abfrage if(listitem == counter) machst du ganz wichtig ein return 1; hin.
    Nach der if-abfrage machst du dann ein counter++; hin, damit sich counter um 1 erhöht.
    Weil, wenn du ne Schleife durch alls SMS laufen lässt, kommt ja listitem 1 zu erst und wenn du die Schleife wieder durchlaufen lässt ist listitem 1 ja wieder listitem 1.
    Ja ich weiß ist schwer, dazu kommt ich kann schlecht erklären :D
    Vllt verstehst du es ja ^^