Beiträge von AdnaN

    Das else reagiert nur auf der if abfrage die über ihm steht.
    Bei ihm also wen diese abfrage:
    if(SpielerInfo[playerid][Job]!=3)
    Stimmt dan führe das aus was in den geschweiften klammern steht wen nicht kommt das else.


    und bei dem sscanf solltest du für pID bei params "u" benutzen das steht für User ID or Playername

    Hallo leute.


    Ich habe bemerkt das meine geschwindigkeit im Textdraw nicht angezeigt wird also es wird nu 0 angezeigt.
    Warum das?


    Hie die berechnung:

    new Float:X;
    new Float:Y;
    new Float:Z;
    new Float:PTP;


    GetVehicleVelocity(p,X,Y,Z);
    PTP = (floatsqroot(floatpower(X, 2) + floatpower(Y, 2) + floatpower(Z, 2)))*100;
    format(string,sizeof(string),"Fahrzeug: %s Stand %.2f Speed: %ikm/h",VehicleNames[GetVehicleModel(GetPlayerVehicleID(p))-400],vhealth, floatround(PTP, floatround_floor));


    Was stimmt nicht?

    diese per player variable wird eben erstellt und der Wert der per player variable wird um 1 erhöt.


    Da diese grade erstellt wird und du ihren Wert abrufst der bisher noch keinen vom script selber festgelegten wert hat wird ihr der wert 0 zugeteilt und du addierst in deinem codestück grade 1 dazu.
    also 0 + 1.

    Zu zeile 21 und 30:
    Es wurde im script keine passende "#if/*.....*/" funktion gefunden.


    Zu zeile 252:
    Die ganzen Fehler tauchen nur auf weil "PlayerInfo" nicht definiert ist. Überprüfe dies auf Groß/klein -schreibungs fehlern.


    Zu zeile 233:
    Dir fehlt das forward OnPlayerLogin();

    Ausschnitt aus SA:MP Wiki Fast Commands :


    English:

    Deutsch:

    Zitat

    Und wenn dort 2 stehen, gibt es 2 params, or?


    Sprich: /befehl [pid] [anzah] oder so?

    ja dan werden 2 Parameter in deinem CMD verwendet.
    Der befehl "/befehl [pid] [anzahl]" würde wie folgt aussehen,



    dcmd_befehl(playerid,params[]) /* oder */ ocmd:befehl(playerid,params[])
    {
    new pid,anzahl;
    if(sscanf(params, "ud", pid,anzahl)) { return /* ...... */ }
    /* Um mehrere parameter zu benutzen musst du diese in deinem cmd erstellen. */
    return 1;
    }

    Probier es mal so jetzt aus.
    Ungetestet!


    stock deleteFileLine(filename[], line[])
    {
    new nichtGefunden[33] = "Name wurde nicht gefunden";
    if(!fexist(filename)) { return nichtGefunden; }
    new File:fhandle = fopen(filename,io_read);
    new suche[256];
    fread(fhandle,suche);
    if(strfind(suche,line,true) != 1)
    {
    for(new fund=0;fund <strlen(suche);fund++)
    {
    new found[24],del; // Hatte Pos erstellt aber brauchte es nicht mehr
    if(strfind(found,suche)) { del = strlen(found); }
    new uebergabe[256];
    strmid(uebergabe,0,delete-strlen(line),256); // liegt an der klammer nach dem "-" glaube ich. So sollte es richtig sein.
    strdel(del,0,strlen(found)); // delete wird blau angezeigt vllt ist das eine funktion. Ich habe sie in "del" umbenannt.
    }
    else { return nichtGefunden; }
    fclose(fhandle);
    new File:neu = fopen(filename,io_write);
    fwrite(neu,uebergabe); // Zu früh die for schleife geschlossen
    fclose(neu);
    }
    return 0; // hier weis ich nicht ^^ .
    }

    ich weis ja nicht auf wieviele zeichen es beschränkt ist in samo zu schreiben ich würd es so machen.


    einen string anlegen und dan die wanteds so ausgeben.


    format(string,sizeof(string),"%s %d | %s %d | %s %d",name,wanted,name,wanted,name,wanted); // Soviel sollte reichen.
    SendClientMessage(playerid,blau,string);

    dcmd_makeadmin(playerid,params[])
    {
    new pID,Rank[10];
    if(sscanf(params, "us",pID,Rank)) { return /* SendClientMessage......*/ }

    new name[24],stringo[33];
    GetPlayerName(pID,name,24);
    format(stringo,33,"%s.ini",name);
    if(Rank == "Full Admin") { /* beispiel mit dini*/ dini_IntSet(stringo,"pAdmin",/*z.B. für Full Admin = 4*/ 4); }
    else if(Rank == "Supporter") { dini_IntSet(stringo,"pAdmin",3); }
    /*else if.....
    else if.....
    else if......*/
    return 1;
    }


    Sollte funktionieren.
    Ungetestet!

    public OnPlayerSpawn(playerid)
    {
    SetPVarInt(playerid,"AdminLevel",dini_Int(pDatei,"AdminLevel"));
    return 1;
    }


    public OnPlayerDisconnect(playerid, reason)
    {
    dini_IntSet(pDatei,"AdminLevel",GetPVarInt(playerid,"AdminLevel"));
    return 1;
    }


    So könnte es aussehen.

    Hier ist wieder ein Fehler:
    GetPlayerName(playerid,namei,sizeof(namei));
    format(si,sizeof(si),"acc/%s.ini",namei);

    Du öffnest deine .ini


    Das mu zu dem hier abgeändert werden:
    GetPlayerName(i,namei,sizeof(namei));
    format(si,sizeof(si),"acc/%s.ini",namei);


    Das zweite GetPlayerName kannse rausnehmen nun sollte er es richtig anzeigen.

    Fehler ist hier:
    GetPlayerName(playerid,namei,sizeof(namei));
    format(si,sizeof(si),"acc/%s.ini",namei);
    new wcheck = dini_Int(si, "wanted");
    if(wcheck >= 2)
    {
    GetPlayerName(i, sname, sizeof(sname));
    format(string, 256, "%s %d", namei, wcheck);



    Du hast nur deine wanteds und deinen namen ausgeben lassen.


    Das muss zu:
    GetPlayerName(i,namei,sizeof(namei));
    format(si,sizeof(si),"acc/%s.ini",namei);
    new wcheck = dini_Int(si, "wanted");
    if(wcheck >= 2)
    {
    format(string, 256, "%s %d", namei, wcheck);

    Das habe ich grade nach langem überlegen geschrieben ich hoffe es ist richtig.
    Probier es mal aus.
    Kann fehler enthalten!


    stock deleteFileLine(filename[], line[])
    {
    new nichtGefunden[33] = "Name wurde nicht gefunden";
    if(!fexist(filename)) { return nichtGefunden; }
    new File:fhandle = fopen(filename,io_read);
    new suche[256];
    fread(fhandle,suche);
    if(strfind(suche,line,true) != 1)
    {
    for(new fund=0;fund <strlen(suche);fund++)
    {
    new found[24],delete,pos;
    if(strfind(found,suche)) { delete = strlen(found); }
    new übergabe[256];
    strmid(übergabe,0,delete-(strlen(line)),256);
    strdel(delete,0,strlen(found));
    }
    }
    else { return nichtGefunden; }
    fclose(fhandle);
    new File:neu = fopen(filename,io_write);
    fwrite(neu,übergabe);
    fclose(neu);
    return 0;
    }