Beiträge von Kaliber

    So:


    ocmd:setadmin(playerid,params[])
    {
    new pID,string[128],Rang;
    if(!IstSpielerEinAdmin(playerid,5))return SendClientMessage(playerid,Grau,"Zugriff verweigert. Benötigter Rang: {FF2800}Projektleitung");
    if(sscanf(params,"ui",pID,Rang))return SendClientMessage(playerid,Grau,"Benutze /setadmin [ID/Teilname] [Grund]");
    if(!IsPlayerConnected(pID))return SendClientMessage(playerid,Grau,"Der angegebene Spieler ist nicht online.");
    if(Rang < 0 || Rang > 5)return SendClientMessage(playerid,Grau,"Der Rang darf nicht unter 0 und über 5 liegen.");
    new rangname[64];
    switch (Rang)
    {
    case 1: format(rangname, 64, "Moderator");
    case 2: format(rangname, 64, "Supporter");
    case 3: format(rangname, 64, "Administrator");
    case 4: format(rangname, 64, "Super Administrator");
    case 5: format(rangname, 64, "Server Owner");
    }
    format(string,sizeof(string),"Du wurdest von Projektleiter %s als %s ins Team aufgenommen.",SpielerName(playerid),rangname);
    SendClientMessage(pID,Hellrot,string);
    return 1;
    }


    mfg. :thumbup:


    So kannst du das noch nicht machen da bei dir text keinen Array hat und somit wird es vom Compiler als Integer angesehen ;)


    mfg. :thumbup:


    //Edit:


    Mein Code hat zwar 6 Zeilen weniger und ist somit Ressourcen freundlicher, aber im Prinzip sind beide richtig ;)

    Ich löse das mal auf, schreibe es einfach so:


    ocmd:pchat(playerid,params[])
    {
    if(!isPlayerPremium(playerid))return SendClientMessage(playerid,ROT,"Du bist kein Premium User!");
    new string[128],text[128];
    if(sscanf(params,"s",text))return SendClientMessage(playerid,Grau,"Fehler: /pchat [Text]");
    format(string,sizeof(string),"(( PremiumUser %s: %s ))",SpielerName(playerid),text);
    SendClientMessageToAll(GOLD,string);
    return 1;
    }


    mfg. :thumbup:

    Kannst du nicht Überprüfen das wenn der User "C" drückt bzw. öfters Drückt eine Verwarnung bekommt und bei 3 bekommt er einen Kick. Oder das wenn er "C" drückt und in einem Auto ist, dass er dann dort automatisch Raus geworfen wird.


    Ja, das kann man, die Definition von dem Key ist: "KEY_CROUCH" ;)


    mfg. :thumbup:

    Mir war gerade langweilig und habe mal einen Lustigen Code geschrieben, der es möglich machen würde in einer SendClientMessage $variablen zu verwenden wie in PHP :D


    Sähe dann so aus:



    stock ScmEx(playerid, farbe, format[])
    {
    new z = strfind(format, "$", true);
    if(z > 0)
    {
    new x[64], y;
    x = _strtok(format, z);
    y = (z+1);
    z -= strlen(x);
    strdel(format, z, y);
    strdel(x, 0, 1);
    new text[128];
    strcat(text, "Gustav", sizeof text);
    strins(format, text, z, sizeof text);
    SendClientMessage(playerid, farbe, format);
    return 1;
    }
    else return SendClientMessage(playerid, farbe, format);
    }


    Hier mal ein Beispiel zur Anwendung:


    ScmEx(playerid, rot,"Herzlich willkommen $name !");


    In meinem Codeschnipsel habe ich eine konstante Variable die den Namen regelt, anstatt $name würde dann "Gustav" da stehen :D


    und da ist der Punkt leider kann man das nicht als Include machen, da man den Wert der Variable herbekommen muss, bzw. sie übergeben muss und das erfordert mehr Zeilen Code als ein einfaches format :S


    Naja, trotzdem viel Spaß damit :D


    mfg. :thumbup:

    Schreibe das mal so:


    if (strcmp("/myperso", cmdtext, true) == 0)
    {
    if(GetPVarInt(playerid,"Perso") == 0) return SendClientMessage(playerid,ROT,"Du benötigst einen Personalausweiß!");
    new string[128], name[24], ftext[9];
    GetPlayerName(playerid, name, 24);
    new level = SAccount[playerid][Fraktion];
    if(level == 0) {ftext= "Zivilist"; }
    if(level == 1) {ftext= "LS-PD"; }
    if(level == 2) {ftext= "Medic"; }
    if(level == 3) {ftext= "Ballas"; }
    if(level == 4) {ftext= "Ordnungsamt"; }
    if(level == 5) {ftext= "Grove Street"; }
    if(level == 6) {ftext= "Vagos"; }
    if(level == 7) {ftext= "Keine Angabe"; }
    if(level == 8) {ftext= "Yakuza"; }
    format(string,sizeof(string),"Name: %s\n Alter: %d\n Fraktion: %s\n Herkunft: Los Santos",name,SAccount[playerid][Alter],ftext);
    ShowPlayerDialog(playerid,DIALOG_STATS,DIALOG_STYLE_MSGBOX,"Dein Personalausweiss",string,"OK","");
    return 1;
    }
    SAccount[playerid][Alter] noch bitte auf deins anpassen in der Formatierung ;)


    mfg. :thumbup:

    aber das läuft ja per Mysql würde es trotzdem gehen ja oder?


    Er speichert nix ab, er zeigt dir doch nur wie man einen Befehl erstellt, was übrigens völlig egal ist, da er nach diesem stock sucht den er anscheinend nicht hat :D


    In diesem Sinne, der Befehl speichert rein gar nichts ;)


    mfg. :thumbup:

    /saveaccounts wäre eine gute Möglichkeit, jegliche Probleme mit dem speichern zu lösen, oder bei einem Gmx.


    Eben ganz und gar nicht :D


    User sind nicht sehr helle und wenn einer z.B. das mal vergessen sollte hat er z.B. sein neu gewonnenes Geld verloren...


    Callbacks hingegen vergessen nichts und speichern gezielt und besser als User :)


    mfg. :thumbup: