Beiträge von Pille

    Verständlicher ist das ganze mit dem stock "strget", welches
    den komplizierten strtok Befehl um einiges leichter macht.


    Zum Beispiel:


    if(strcmp(strget(cmdtext,0),"/me",true)==0)
    {
    if(strlen(strget(cmdtext,1)==0) return SendClientMessage(playerid,COLOUR_RED,"Benutze: /me [AKTION]"); // Falls jemand nur /me eingibt kommt ein Error.
    new aktion[200]=cmdtext; // Die Variable hat nun den kompletten eingegeben Text eingespeichert.
    new name[MAX_PLAYER_NAME]; // Variablenerstellung zum Speichern des Namens
    GetPlayerName(name,sizeof(name)); // Spielername in die Variable speichern
    strdel(aktion,0,4); // wir löschen das /me aus der Variable, damit nicht da steht: "/me USER trinkt Wein."
    format(aktion,sizeof(aktion),"%s %s",name,aktion); // Formatieren des Ausgabetextes
    new Float:x,Float:y,Float:z; // Variablenerstellung für die Koordinaten des Spielers
    GetPlayerPos(playerid,x,y,z); // Koordinaten werden hineingespeichert
    for(new i=0;i<MAX_PLAYERS;i++) // ALle Spieler werden überprüft,
    {
    if(!IsPlayerConnected(i)) continue; // Wenn sie nicht mit dem Server verbunden sind, -> Weiter
    if(!IsPlayerInRangeOfPoint(i,5,x,y,z)) continue; // Wenn sie nicht in Reichweite des Spielers sind -> Weiter
    SendClientMessage(i,string); // Ausgabetext für alle Spieler die in Reichweite des Punktes sind.
    }
    return 1;

    }


    Hoffe ich konnte helfen :)

    Es ist jedoch ein sehr großer Unterschied zwischen Wirtschaft und dem SAMP Forum.


    Versetzen wir uns mal in einen Scripter hinein. Wir wollen eventuell ein bisschen Geld haben,
    stöbern deswegen im Marktplatz herum und finden letztendlich eine Anzeige, die ein paar
    Kröten hergibt und deren Aufgaben noch gut schaffbar für denjenigen ist.
    Man schreibt also seine Antwort darunter und wartet ein paar Stunden ab.
    Auf einmal meldet sich ein anderer Scripter, er würde seine Dienste kostenlos anbieten.
    Der User, der die Hilfe braucht wird natürlich nicht zögern und mit dem User sein Geschäft
    machen, der ihm kostenlos Hilfe geboten hat.


    Klar - es ist toll wenn man kostenlos Hilfe bekommt, und es ist auch toll, wenn man jemandem helfen kann,
    mit Geld oder ohne, jemandem zu helfen gibt einem ein gutes Gefühl, aber wenn jemand die Hilfe so
    dringend braucht, dass er auch gerne dafür Geld gibt, dann sollte man nur Hilfe gegen Geld anbieten,


    ist es nicht so?
    Es wäre ja meiner Meinung nach unfair gegenüber den anderen Usern, die gerne das Geld für

    ihre Arbeit genommen hätten.

    Hallo liebe User,


    ich wollte noch einmal auf dieses Topic zurückgreifen und die sich darinfindende
    Diskussion ebenfalls.



    Was meint ihr dazu?
    Ist es gerecht Dienste am Marktplatz anzubieten?




    Ich will damit nicht freundliche Scripter kritisieren, die ihre Zeit opfern um
    anderen Usern zu helfen, ganz im Gegenteil, das mache ich selber auch gerne,
    ich will die Meinungen der User hier hören, ob es gerecht oder unfair gegenüber
    den anderen Usern ist, Dienste kostenlos anzubieten.

    stock backnoobcars1()
    {
    new id = 350; //Car id!
    new test;
    for(new i = 0; i<MAX_VEHICLES; i++)
    {
    for(new ID=0;ID<MAX_PLAYERS;ID++)
    {
    if(IsPlayerInVehicle(ID,i)) continue;
    SetVehicleToRespawn(i);
    VehInfo[PlayerCar[i][vid]][Motor] = 0;
    }
    }
    return 1;


    }


    Wüsste nicht wies ressourcenschonender geht :huh:

    Spoiler anzeigen
    COMMAND:veh(playerid,params[])
    {

    if(SpielerInfo[playerid][Adminlevel]<2) return SendClientMessage(playerid, GRAU, "Du hast nicht das benötigte Adminlevel.");
    if(aLogin[playerid]!=1) return SendClientMessage(playerid,ROT,"Sie sind nicht als Admin eingeloggt.");
    if(IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playerid,ROT,"Du bist nicht zu Fuß unterwegs!");
    if(sscanf(params, "iii", carid, Farbe1, Farbe2)) return SendClientMessage(playerid,ROT,"/veh [AutoID] [Farbe1] [Farbe2]");
    new carid,Farbe1,Farbe2,Float:VehPos[4], vehicleid;
    if(carid<400 || carid>611) return SendClientMessage(playerid,ROT,"Die Fahrzeug-ID muss zwischen 400 und 611 sein!");
    if(Farbe1<0 || Farbe1>126) return SendClientMessage(playerid,ROT,"Die FarbID muss zwischen 0 und 126 sein!");
    if(Farbe2<0 || Farbe2>126) return SendClientMessage(playerid,ROT,"Sie dürfen nur Zahlen von 0-255 verwenden!");
    GetPlayerPos(playerid, VehPos[0],VehPos[1],VehPos[2]);
    GetPlayerFacingAngle(playerid, VehPos[3]);
    vehicleid = CreateVehicle(carid,VehPos[0],VehPos[1],VehPos[2],VehPos[3],Farbe1,Farbe2,-1);
    LinkVehicleToInterior(vehicleid,GetPlayerInterior(playerid));
    SetVehicleVirtualWorld(vehicleid,GetPlayerVirtualWorld(playerid));
    PutPlayerInVehicle(playerid, vehicleid, 0);
    return 1;
    }


    So ist es sowohl ressourcenschonender als auch Platzschonender gescripted.
    Versuch mal obs geht :)

    new timer[playerid];
    new timeranzahl[playerid];


    forward rasten(playerid);


    public OnPlayerCommandText(playerid, cmdtext[])
    {
    if(strcmp(strget(cmdtext,0),"/Rastzeit",true)==0)
    {
    timer[playerid]=SetTimerEx("rasten",1000,true);
    SendClientMessage(playerid,COLOUR_GRÜN,"Rastzeit gestartet!");
    return 1;
    }
    return 0;
    }


    public rasten(playerid);
    {
    timeranzahl[playerid]++;
    if(timeranzahl[playerid]==800)
    {
    SendClientMessage(playerid,COLOUR_GRÜN,"Rastzeit beendet!");
    KillTimer(timer[playerid]);
    timeranzahl[playerid]=0;
    }
    }

    Equ, meines Wissens nach kann man wenn man als Parameter "u" hineinsetzt,
    sowohl den Spielernamen als auf die Spieler ID einsetzen, "i" ist ein Integer,
    also nur eine ganze Zahl - in diesem Fall NUR die playerid...

    Du musst in deinem Ordner "includes" im Ordner "pawno" eine Datei haben,
    die sich "utils.inc" nennt...


    Die kannst du dir sicher irgendwo downloaden. Google.


    new zeilenanzahl;
    while(zeilenanzahl>0))
    {
    new string[256];
    fread(datei,string);
    if(strfind(string,"X",true)!=-1)
    {
    SendClientMessage(playerid,GRAU,"X wurde gefunden.");
    break;
    }
    else zeilenanzahl--;
    }



    Hmm, so in etwa?


    Du musst aber die Anzahl an Zeilen herausfinden, dass wenn es kein X gibt,
    es keine unendliche Schleife wird.