Advertise Problem

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
  • Hier ist der Code:
    dcmd_ad(playerid,params[])
    {
    new string[256];
    if (sscanf(params, "s", string)) SendClientMessage(playerid, COLOR_GREY, "Info: /ad(vertise) [Text]");
    else
    {
    new cost = (random(5000)+500);
    new name[MAX_PLAYER_NAME], msg[516];
    GetPlayerName(playerid, name, sizeof(name));
    format(msg, sizeof(msg), "[Werbung] %s ,Sender: %s", string, name);
    GivePlayerMoney(playerid, -cost);
    SendClientMessageToAll(COLOR_GREEN, msg);
    AdvertiseLog(msg);
    format(msg, sizeof(msg), "Deine Werbung kostet dich $%d",cost);
    SendClientMessage(playerid, COLOR_YELLOW2, msg);
    }
    return 1;
    }


    Ich will das new cost = (random(5000)+500);
    Die Länge des Getippten Textes nimmt und mit mal 5 nimmt.
    Es soll auch überprüft werden, ob er auch das Geld hat.(GetPlayerMoney(playerid)).

  • Wie mache ich den Timer für Pause zwischen Nachrichten?
    new bool:Advertising = false;


    for(new i=0; i<MAX_PLAYERS; i++)
    {
    SetTimer("Werbung", 60000, 0);
    Advertising = true;
    }


    if(Advertising = true)
    { return 0; }


    public Werbung()
    {
    for(new i=0; i<MAX_PLAYERS; i++)
    {
    Advertising = false;
    }
    }


    So ?
    }

  • Du kannst dies machen, wenn es für alle nicht gehen soll

    // Ganz oben
    new Werbung;
    @Werbungmach();


    // Im Command
    [...]
    if(Werbung == 0)
    {
    // Werbungssachen
    Werbung = 1;
    SetTimer("Werbungmach",80000,0);
    }
    else
    {
    SendClientMessage(playerid,rot,"Es gab erst vor kurzen eine Werbung!");
    return 1;
    }
    [...]


    //
    @Werbungmach()
    {
    Werbung = 0;
    SendClientMessage(playerid,rot,"Jetzt geht wieder Werbung");
    return 1;
    }

    Wenn es für jeden einzelnen Spieler sein soll, musst du dementsprechend "Werbung[MAX_PLAYERS]",@Werbungmach(playerid) und "SetTimerEx" verwenden

  • @:
    ist das selbe wie "forward ..." und "public ..." nur kürzer ;>. Kannst auch nicht's davor schreiben, dafür muss die Custom Function weiter oben im Script sein (bzw. vor der eigtl. Verwendung, damit das Script sich auskennt).


    Werbungmach();
    Setzt die Variable Werbung auf 0 zurück,damit jeder wieder Werbung machen kann. (Braucht man, wenn du's so tust wie ich, nicht öfter als 1 , d.h. kein [MAX_PLAYERS])