Startbonus Befehl funktioniert nicht so wie er sollte

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
  • Moinsen unzwar ich wollte ein Startbonus Befehl machen und ich wollt es mir natürlich leicht machen nur ich hab ein Problem man kann den Befehl immer wieder verwenden es gibt doch bestimmt eine Funktion
    das man den nur einmal verwenden kann


    public OnPlayerCommandText(playerid, cmdtext[]){ if (strcmp("/startbonus", cmdtext, true, 10) == 0) { GivePlayerMoney(playerid, 10000); SendClientMessage(playerid,COLOR_ORANGE,"Du hast erfolgreich den Startbonus erhalten!"); return 1;

  • Hallo SniperShot,


    ich hab hier mal ein kleines Startbonus Befehl wie du es eventuell haben möchtest also das man es nur einmal verwenden kann/darf:


    Das setzt du da wo du deine Befehle eingibst sprich OnPlayerComandText:
    //Startbonus
    if(strcmp(cmd, "/startbonus", true) == 0)
    {
    if(IsPlayerInRangeOfPoint(playerid,3.0,X,Y,Z)) //Da wo man es eingeben kann
    {
    if(PlayerInfo[playerid][pStartbonus] == 1) //Falls in seinem Account eine 1 steht darf er es verwenden
    {
    format(string, sizeof(string), "* Du hast den {14A6C3}Startbonus{FFFFFF} bekommen. (Geld: +$3.000).");
    SendClientMessage(playerid, COLOR_WHITE, string);
    format(string, sizeof(string), "* Wir wünschen dir weiterhin viel Spaß beim Spielen auf {14A6C3}DEIN SERVERNAME{FFFFFF}!",sendername);
    SendClientMessage(playerid, COLOR_LIGHTBLUE, string);
    GivePlayerMoney(playerid, 3000); /// Geld was der Spieler bekommt
    PlayerInfo[playerid][pStartbonus] = 0; //Wird auf 0 gesetzt es heißt er darf das nicht mehr nutzen
    //PlayerInfo[playerid][pLevel] = 3; // Level was der Spieler bekommt
    }
    else {
    SendClientMessage(playerid, COLOR_RED, "** Du bist kein Anfänger (Level 1/2) mehr!");
    return 1;
    }


    }
    else
    {
    SendClientMessage(playerid, RED, "** Du bist nicht am Zivibahnhof!");
    }
    return 1;
    }


    Unter deinem Spielerenum gibst du:
    pStartbonus
    oder wie du´s nennen möchtest...


    Unter OnPlayerConnect:
    PlayerInfo[playerid][pStartbonus] = 0; //PlayerInfo ändern wenn du bei deinem Spielerenum etwas anderes definiert hast


    Und das fügst du ein wenn man sich registriert hat und gespawnt wird oder nach deinem Tutorial kannst du es da auch einfügen:
    PlayerInfo[i][pStartbonus] = 1;


    ich hoffe ich konnte dir etwas weiterhelfen :)


    P.S.: Schreibe diesen Thread bitte beim nächsten mal unter Script Base :)


    Lg
    J0a9

  • format(string, sizeof(string), "* Du hast den {14A6C3}Startbonus{FFFFFF} bekommen. (Geld: +$3.000).");
    format(string, sizeof(string), "* Wir wünschen dir weiterhin viel Spaß beim Spielen auf {14A6C3}DEIN SERVERNAME{FFFFFF}!",sendername);

    Die beiden dort oben. Das kannst du auch direkt als Message ausgeben, und sparst dir somit die Arbeit mit dem format.
    Natürlich kann er dort auch Parameter mit angeben, und muss somit "format" verwenden.

  • if(!strcmp(cmdtext,"/startbonus",true)){
    if(GetPVarInt(playerid,"new.svr.stb.value"))return SendClientMessage(playerid, COLOR_RED, "FEHLER: {FFFFFF}Du hast deinen Startbonus bereits erhalten!");
    new Float:max_distance = 2.0;
    if(GetPlayerDistanceFromPoint(playerid,x,y,z)>max_distance)return SendClientMessage(playerid, COLOR_RED, "FEHLER: {FFFFFF}Du bist nicht am richtigen Ort!");
    SendClientMessage(playerid, COLOR_GREEN, "STARTBONUS: {FFFFFF}Du hast deinen Startbonus erfolgreich eingelöst."),
    SendClientMessage(playerid, COLOR_WHITE, "-> Geld(5.000$) <-");
    GivePlayerMoney(playerid, 5000);
    SetPVarInt(playerid,"new.svr.stb.value",true);
    return 1;
    }


    Ich habe mir mal die Zeit genommen, und dir einen "hübschen" Quellcode bereitgestellt. (Gerade geschrieben, nicht getestet)


    mfg :thumbup: