Beiträge von YaBroo

    Du musst die Variable da wo das Ticket ausgestellt wird dem Spieler zuweisen.


    ticket[MAX_PLAYERS];
    ticket[pID] = 1;// Unter deinem /ticket Befehl bzw. unter dessen sscanf abfrage
    Und dann ohne new pID mit ticket[playerid] arbeiten für /acceptticket.
    Ebendso das mit dem Preis in einem Spieler bezogenem String
    new Kenn[MAX_PLAYERS][5];
    Kenn[playerid] = unter deinem sscanf die variable zum geld ausstellen;

    1. Warum pID? pID ist in deinem Fall ID 0. Sprich, es wird immer ID 0 abgefragt.
    2. Hast du dcmd auch korrekt unter OnPlayerCommandText eingetragen?
    Ebenso hast du anscheinend eine globale € Variable. Der Befehl wird vorne und hinten nicht funktionieren.

    ocmd:makeadmin(playerid, params[])
    {
    new pID, adm, pname[MAX_PLAYERS], name[MAX_PLAYERS], string1[128], string2[128],rang[55];
    if(Spieler[playerid][Admin] < 5)return SendClientMessage(playerid,Weiss,"{FF0000}Fehler {FFFFFF}Du bist kein Projektleier.");
    if(sscanf(params,"ud",pID,adm))return SendClientMessage(playerid,Weiss,"{FF0000}Fehler: {FFFFFF}/makeadmin [ID] [Adminlevel]");
    GetPlayerName(playerid,name,sizeof(name));
    GetPlayerName(pID,pname,sizeof(pname));
    switch(adm)
    {
    case 0:{rang = "Spieler";}
    case 1:{rang = "Volunteer";}
    case 2:{rang = "Supporter";}
    case 3:{rang = "Administrator";}
    case 4:{rang = "Head Administrator";}
    case 5:{rang = "Projektleiter";}
    }
    format(string1,sizeof(string1),"Du hast %s zum %s gemacht.",pname,rang);
    format(string2,sizeof(string2),"%s hat dich zum %s gemacht.",name,rang);
    SendClientMessage(playerid,-1,string1);
    SendClientMessage(pID,-1,string1);
    return 1;
    }


    Und noch den Adminrang in die Datei/DB/Variable setzen.
    Wenn das nicht klappt schreib das switch in
    if (adm == 1) { rang ="Spieler";}
    else if(adm == 2){rang = "Volunteer";}
    um


    //Edit ; vergessen


    Die Stelle hätte ich gerne zitiert wo das steht das er genau das will.
    Und ehhh falsch? Gewiss nicht.
    So wird vermieden das ein Admin gekickt werden kann.
    Aber nein, dein Code mit selber erstellten Variablen ist natürlich viel besser.. :pinch:
    //Edit
    Er schreibt zudem das er nicht will das ein Admin gekickt werden kann da steht nicht explizit das er es so haben möchte wie Du es dir eingebildet hast.
    Aber Hauptsache Comments sammeln

    Ja, du wolltest es doch mit Grund oder kommt das auch wenn es richtig ausgefüllt hast.


    Hast du die Zeile so im Script?


    if(sscanf(params, "ss",name,Grund))
    {
    return SendClientMessage(playerid,COLOR_GREY,"Benutze: /offban [Korrekter Spielername][Grund]");
    }


    Hab da eben nämlich noch was editiert.

    dcmd_offban(playerid, params[])
    {
    new banFormat[128], name[MAX_PLAYER_NAME],aname[MAX_PLAYER_NAME],
    string[128],string2[128],Grund[126];
    if(!IstSpielerAdmin(playerid, 1))
    {
    return SendClientMessage(playerid,COLOR_RED,"Zugriff verweigert! Du benötigst mindestens den Adminrang: {FF0000}Head-Admin ");
    }
    if(sscanf(params, "ss",name,Grund))
    {
    return SendClientMessage(playerid,COLOR_GREY,"Benutze: /offban [Korrekter Spielername][Grund]");
    }
    format(banFormat,sizeof(banFormat),"Spieler/%s.txt",name);
    if(fexist(banFormat))
    {
    dini_Set(banFormat,"Bangrund",Grund);
    dini_IntSet(banFormat,"Banned",1);
    new str[126],person[MAX_PLAYER_NAME];
    GetPlayerName(playerid,aname,sizeof(aname));
    format(str,sizeof(str),"/Spieler/%s.txt",name);
    if(dini_Exists(str))
    {
    dini_Set(str,"Gebanntvon",aname);
    }
    format(string,sizeof(string),"[BAN]: Du hast %s offline gebannt!",name);
    format(string2,sizeof(string2),"[BAN]: Admin %s hat %s offline gebannt!", aname, name);
    for(new i=0;i<MAX_PLAYERS;i++)
    {
    if(IsPlayerConnected(i))
    {
    if(IstSpielerAdmin(playerid, 1))
    {
    SendClientMessage(i, ADMINFS_MESSAGE_COLOR, string2);
    }
    }
    }
    SendClientMessage(playerid, NGR, string);
    }
    else
    {
    SendClientMessage(playerid, COLOR_RED, "Fehler! Account existiert nicht!");
    }
    return 1;
    }

    Wofür der Timer und nein, bei dini gibt man den Pfad an und nicht den Spielernamen welchen man im String wiedergibt.


    new Pfad[60];
    format(Pfad,60,"/Spieler/%s.txt",IDName);
    dini_Get(Pfad,"Bangrund"));

    Das machst du dann ganz einfach mit dini_Get(Spielerdatei,"Bangrund");
    zB


    SendClientMessage(playerid,-1,dini_Get(Spielerdatei,"Bangrund"));
    oder
    new str[126];
    format(str,sizeof(str),"Du wurdest mit dem Grund: %s von XYZ verwiesen",dini_Get(Spielerdatei,"Bangrund"));
    SendClientMessage(playerid,-1,str);

    Dann zeig mal den Befehl.
    Stock:
    stock BanPlayer(id,Reason[])
    {
    new str[126],IDName[MAX_PLAYER_NAME];
    GetPlayerName(id,IDName,sizeof(IDName));
    format(str,sizeof(str),"/Spieler/%s.txt",IDName);
    if(dini_Exists(str))
    {
    dini_Set(str,"Bangrund",Reason);
    }
    return 1;
    }


    Verwendung:
    BanPlayer(spielerid,string);

    Dazu verwende beide Funktionen.
    new str[5];
    new vehicleid = GetPlayerVehicleID(playerid);
    format(str,sizeof(str),"%i",GetVehicleModel(vehicleid));


    ocmd:afixveh(playerid,params[])
    {
    if(!DarfSpielerAFixVehSNutzen(playerid))return SendClientMessage(playerid,ROT,"Du Bist Kein Admin!.");
    if(!IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playerid, DUNKELROT, "Du bist in Keinen Fahrzeug");
    if(GetPVarInt(playerid,"loggedin")==1)
    {
    new string[100];
    new vehicleid = GetPlayerVehicleID(playerid);
    RepairVehicle(vehicleid);
    format(string,sizeof(string),"Du Repairst das Fahrzeug mit der [ID: %d]",GetVehicleModel(vehicleid));
    SendClientMessage(playerid,GELB,string);
    }
    return 1;
    }

    Siehe mein Beitrag oben, ich hab es so drin und sobald man /afixveh macht
    Repairt er das Fahrzeug, aber bei der Message die ID angabe kommt da irgendwie 199 Raus aber müsste normalerweise 411 Sein..
    Grüße


    FahrzeugID != FahrzeugModelID.
    Das eine ist die ID die vom Server zu geordnet wird 1+ Pro Fahrzeug und das andere die ModelID, spricht für sich.

    Kommt es mir nur so vor oder ist es ein komplett englischer Server , viele überflüssige Dialoge und für das Registersystem wurden nicht einmal welche verwendet.
    Warum ist die ganze Einleitung auf Englisch? Bin ab dem Moment schon gequittet^^