/makedonator befehl erstellen?

Wichtiger Hinweis: Bitte ändert nicht manuell die Schriftfarbe auf schwarz sondern belasst es bei der Standardeinstellung. Somit tragt ihr dazu bei dass euer Text auch bei Verwendung unseren dunklen Forenstils noch lesbar ist!

Tipp: Ihr wollt längere Codeausschnitte oder Logfiles bereitstellen? Benutzt unseren eigenen PasteBin-Dienst Link
  • Viel Spaß damit ;)
    musst du evtl. noch dem Script anpassen
    if(strcmp(cmd, "/giveDonator", true) == 0)
    {
    if(IsPlayerConnected(playerid))
    {
    if(PlayerInfo[playerid][pAdmin] >= 1450)
    {
    tmp = strtok(cmdtext, idx);
    if(!strlen(tmp))
    {
    SendClientMessage(playerid, COLOR_GRAD2, "BENUTZUNG: /giveDonator [playerid/SpielerName]");
    return 1;
    }
    giveplayerid = ReturnUser(tmp);
    if(IsPlayerConnected(giveplayerid))
    {
    if(giveplayerid != INVALID_PLAYER_ID)
    {
    GetPlayerName(playerid, sendername, sizeof(sendername));
    GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
    format(string, sizeof(string), "* Du hast Spieler %s den Donator-Rang4 gegeben *",giveplayer);
    SendClientMessage(playerid, COLOR_DONATOR, string);
    format(string, sizeof(string), "* Admin %s hat dir deinen Donator Rang4 gegeben.",sendername);
    SendClientMessage(giveplayerid, COLOR_DONATOR, string);
    format(string, sizeof(string), "* Herzlichen glückwunsch! Du hast nun einen Donator-Rang! Siehe unter /donatorhelp zu sehen was er dir für Vorteile bringt.",sendername);
    SendClientMessage(giveplayerid, COLOR_DONATOR, string);
    GivePlayerMoney(giveplayerid, 200000); // 350k
    PlayerInfo[giveplayerid][pExp] += 12 ; // 12 RP
    PlayerInfo[giveplayerid][pCoins] += 100; // 100 Coins
    PlayerInfo[giveplayerid][pDonateRank] = 4; // Premium Rang
    new admwarnung[256];
    new iyear, imonth,iday;
    getdate(iyear, imonth, iday);
    format(admwarnung, sizeof(admwarnung), "AdmCmd: %s hat %s den Donator-Rang gegeben! (%d.%d.%d)", sendername, giveplayer,iday,imonth,iyear);
    ABroadCast(COLOR_LIGHTRED, admwarnung, 1);
    return 1;
    }
    }
    }
    else
    {
    SendClientMessage(playerid, COLOR_GRAD2, " Das kann nur der Serverleiter!");
    return 1;
    }
    }
    return 1;
    }


  • Naja das passt schonmal aber könnte man noch machen das man einem verschiedene Donator Ränge geben kann?

  • Mal abgesehen davon, dass der vorherig gepostete Code recht schlampig geschrieben wurde... Bitte:


    if(strcmp(cmd, "/giveDonator", true) == 0)
    {
    if(IsPlayerConnected(playerid))
    {
    if(PlayerInfo[playerid][pAdmin] >= 1450)
    {
    tmp = strtok(cmdtext, idx);
    if(!strlen(tmp)) return SendClientMessage(playerid, COLOR_GRAD2, "BENUTZUNG: /giveDonator [playerid/SpielerName] [donatorrank]");
    giveplayerid = ReturnUser(tmp);
    if(IsPlayerConnected(giveplayerid))
    {
    tmp = strtok(cmdtext, idx);
    if(!strlen(tmp)) return SendClientMessage(playerid, COLOR_GRAD2, "BENUTZUNG: /giveDonator [playerid/SpielerName] [donatorrank]");
    new value;
    value = strval(tmp);
    GetPlayerName(playerid, sendername, sizeof(sendername));
    GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
    format(string, sizeof(string), "* Du hast Spieler %s den Donator-Rang4 gegeben *",giveplayer);
    SendClientMessage(playerid, COLOR_YELLOW, string);
    format(string, sizeof(string), "* Admin %s hat dir deinen Donator Rang4 gegeben.",sendername);
    SendClientMessage(giveplayerid, COLOR_YELLOW, string);
    format(string, sizeof(string), "* Herzlichen glückwunsch! Du hast nun einen Donator-Rang! Siehe unter /donatorhelp zu sehen was er dir für Vorteile bringt.",sendername);
    SendClientMessage(giveplayerid, COLOR_YELLOW, string);
    GivePlayerMoney(giveplayerid, 200000); // 350k
    PlayerInfo[giveplayerid][pExp] += 12 ; // 12 RP
    PlayerInfo[giveplayerid][pCoins] += 100; // 100 Coins
    PlayerInfo[giveplayerid][pDonateRank] = value; // Premium Rang
    new iyear, imonth,iday;
    getdate(iyear, imonth, iday);
    format(string, sizeof(string), "AdmCmd: %s hat %s den Donator-Rang gegeben! (%d.%d.%d)", sendername, giveplayer,iday,imonth,iyear);
    ABroadCast(COLOR_LIGHTRED, string, 1);
    return 1;
    }
    }
    else
    {
    SendClientMessage(playerid, COLOR_GRAD2, " Das kann nur der Serverleiter!");
    return 1;
    }
    }
    return 1;
    }


    Sorry, der Browser rückt alles falsch ein. :wacko:


  • Und da kann man dann wenn man 2 Donator Ränge hat zwischen 2 Wählen oder?

  • Bis zu der Zahl, die vom Befehl genehmigt wird (idF. kein Limit^^).


    Wenn du willst kannst du dir auch ein Limit setzen, füge dann einfach unter value = strval(tmp); folgendes ein:


    if(value < 1 || value > 5) return SendClientMessage(playerid,COLOR_GREY,"FEHLER: Du kannst nur Ränge von 1-5 vergeben!");

  • Ja, sicher.


    Entferne die Zeile:


    GivePlayerMoney(giveplayerid, 200000); // 350k


    und tausche diese mit diesen aus:


    if(value == 1)
    GivePlayerMoney(giveplayerid,350000);
    else //im Grunde dann alles über Donator 2
    GivePlayerMoney(giveplayerid,750000);

  • Da du es ja jeden zweiten PayDay haben willst, musst du zusätzlich noch eine neue Zeile für die Speicherung anlegen. Ich gehe mal davon aus, dass du auf Dateien (Standard GF-Speicherung?) und nicht MySQL basierst.


    Unter enum pInfo:


    pPayTime


    Unter OnPlayerRegister zu den anderen fwrite(hFile, var); dann folgendes:


    format(var, 32, "PayTime=%d\n",PlayerInfo[playerid][pPayTime]);fwrite(hFile, var);


    Unter OnPlayerLogin zu den anderen ini_GetValue( Data ); folgendes:


    if( strcmp( key , "PayTime" , true ) == 0 ) { val = ini_GetValue( Data ); PlayerInfo[playerid][pPayTime] = strval( val ); }


    Unter die zwischenspeicherung (GF meist OnPlayerUpdate) zu den anderen fwrites:


    format(var, 32, "PayTime=%d\n",PlayerInfo[playerid][pPayTime]);fwrite(hFile, var);


    Zu deinem PayDay Timer:


    Entferne die Zeile:


    PlayerInfo[i][pExp]++;


    und füge zeitgleich folgendes hinzu:


    if(PlayerInfo[playerid][pDonateRank] == 1)
    {
    PlayerInfo[playerid][pPayTime]++;
    if(PlayerInfo[playerid][pPayTime] > 1)
    {
    PlayerInfo[playerid][pPayTime] = 0;
    PlayerInfo[playerid][pExp] += 2;
    }
    }
    else PlayerInfo[playerid][pExp] += 2;

  • if(strcmp(cmd, "/setdonator", true) == 0)
    {
    new string[128];
    if(PlayerInfo[playerid][pAdmin] >= 4)
    {
    tmp = strtok(cmdtext, idx);
    if(!strlen(tmp))
    {
    SendClientMessage(playerid, COLOR_GRAD2, "Benutze: /setdonator [ID] [Level].");
    return 1;
    }
    new para1 = ReturnUser(tmp);
    tmp = strtok(cmdtext, idx);
    new llevel = strval(tmp);
    if(IsPlayerConnected(para1))
    {
    if(para1 != INVALID_PLAYER_ID)
    {
    if(PlayerInfo[para1][Donator] < llevel)
    {
    printf("AdmCmd: %s hat %s zu einem Level %d Donator befördert.", SpielerName(playerid), SpielerName(para1), llevel);
    format(string, sizeof(string),Normal"Du wurdest zum Donator gemacht. Von:"Anzeige" %s "Normal"Level:"Anzeige" %d", SpielerName(playerid), llevel);
    SendClientMessage(para1, COLOR_LIGHTBLUE, string);
    format(string, sizeof(string),Normal"Du hast:"Anzeige" %s "Normal"zum Donator gemacht Level:"Anzeige" %d", SpielerName(para1),llevel);
    SendClientMessage(playerid, COLOR_LIGHTBLUE, string);
    }
    else
    {
    printf("AdmCmd: %s hat %s zu einem Level %d Donator degradiert.", SpielerName(playerid), SpielerName(para1), llevel);
    format(string, sizeof(string), " Du wurdest durch %s zu einem Level %d Donator degradiert.", SpielerName(playerid), llevel);
    SendClientMessage(para1, COLOR_LIGHTBLUE, string);
    format(string, sizeof(string), " Du hast %s zu einem Level %d Donator degradiert.", SpielerName(para1),llevel);
    SendClientMessage(playerid, COLOR_LIGHTBLUE, string);
    }
    PlayerInfo[para1][Donator] = llevel;
    }
    }
    }
    else
    {
    SendClientMessage(playerid, COLOR_GRAD1, " Du bist nicht befugt diesen Befehl zu nutzen! ");
    }
    return 1;
    }


    Hier die Farben sofern nicht vorhanden:


    #define Normal "{FFFFFF}"
    #define Anzeige "{00FF00}"
    #define COLOR_LIGHTBLUE 0x33CCFFAA

    05eb03de-9fda-461c-9dfc-834ae5b64e65.png << Server | Home >> 13462590508.png


  • Naja dafür mal danke habe den Befel übernommen da der Befehl besser ist als der andere :)
    Aber ich suche etwas wo man wenn man Donator 1 ist jeden 2 Payday 2 Respektpunkte bekommt und bei Donator 2 2 Respektpunkte jeden Payday