/ad Bug

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
  • lHallo Liebe Leute also ich habe ein /ad befehle drin und ich will nicht das jeder die ganze zeit den chat voll spammt wie mach das es nur in 3 minuten nur immer geht hier der befehle


    if(strcmp(cmd, "/advertise", true) == 0 || strcmp(cmd, "/ad", true) == 0)
    {
    if(PlayerInfo[playerid][pLevel] >= 4)
    {
    if(IsPlayerConnected(playerid))
    {
    if(gPlayerLogged[playerid] == 0)
    {
    SendClientMessage(playerid, COLOR_GREY, " Du bist noch nicht eingeloggt !");
    return 1;
    }
    if(!IsPlayerInRangeOfPoint(playerid, 5.0, 1202.3597,-917.8224,43.1048) && !IsPlayerInRangeOfPoint(playerid, 5.0, 1207.2928,-917.7825,43.0665))
    {
    SendClientMessage(playerid, COLOR_GRAD1, "Du bist nicht am BSN am /ad point.");
    return 1;
    }
    if(PlayerInfo[playerid][pGangJailed] == 1 || PlayerTied[playerid] >= 1)
    {
    SendClientMessage(playerid, COLOR_GRAD1, "Du kannst jetzt keine Werbung schreiben!");
    return 1;
    }
    GetPlayerName(playerid, sendername, sizeof(sendername));
    new length = strlen(cmdtext);
    while ((idx < length) && (cmdtext[idx] <= ' '))
    {
    idx++;
    }
    new offset = idx;
    new result[128];
    while ((idx < length) && ((idx - offset) < (sizeof(result) - 1)))
    {
    result[idx - offset] = cmdtext[idx];
    idx++;
    }
    result[idx - offset] = EOS;
    if(!strlen(result))
    {
    SendClientMessage(playerid, COLOR_GRAD2, "Benutzung: (/ad)vertise [text]");
    return 1;
    }
    if ((!adds) && (PlayerInfo[playerid][pAdmin] < 1))
    {
    format(string, sizeof(string), "Bitte Versuch es Später wieder %d sekunden zwischen einer Werbung!", (addtimer/1000));
    SendClientMessage(playerid, COLOR_GRAD2, string);
    return 1;


    }
    new payout = idx * SBizzInfo[5][sbEntranceCost];
    if(GetPlayerMoney(playerid) < payout)
    {
    format(string, sizeof(string), "* Du hast %d Zeichen benutzt, das kostet $%d, du hast nicht genug dabei.", offset, payout);
    SendClientMessage(playerid, COLOR_LIGHTBLUE, string);
    return 1;
    }
    GivePlayerMoney(playerid, - payout);
    SBizzInfo[5][sbTill] += payout/3;
    ExtortionSBiz(5, payout);
    format(string, sizeof(string), "Werbung: %s, Kontakt: %s, Telefonnummer: %d", result, sendername,PlayerInfo[playerid][pPnumber]);
    OOCNews(TEAM_Grove_COLOR,string);
    format(string, sizeof(string), "~r~Rechnung: $%d~n~~w~Nachricht hatte: %d Zeichen.", payout, idx);
    GameTextForPlayer(playerid, string, 5000, 5);
    if (PlayerInfo[playerid][pAdmin] < 1){SetTimer("AddsOn", addtimer, 0);adds = 0;}
    }
    }
    else SendClientMessage(playerid,COLOR_RED,"Du brauchst Level 4 um eine Werbung zu schreiben.");
    return 1;
    }

  • Eine Variablen abfrage + Timer sind hier die Stichwörter.


    forward ADTimer()
    new ADAbfrage = 0;


    if(ADAbfrage == 1)
    {
    evt noch eine variable erstellen um die Zeit noch anzeigen zu lassen
    Timer starten lassen nachdem du den Befehl ausgeführt hast.
    SetTimer("ADTimer",Zeit);


    public ADTimer()
    {
    ADAbfrage = 0;
    }

    KleineHilfe 2.0

  • Mach es so:


    if(strcmp(cmd, "/advertise", true) == 0 || strcmp(cmd, "/ad", true) == 0)
    {
    if(PlayerInfo[playerid][pLevel] >= 3)
    {
    if(IsPlayerConnected(playerid))
    {
    if(gPlayerLogged[playerid] == 0)
    {
    SendClientMessage(playerid, COLOR_GREY, " Du bist noch nicht eingeloggt !");
    return 1;
    }
    if(!IsPlayerInRangeOfPoint(playerid, 5.0, 1188.4054,-912.0315,48.0625) && !IsPlayerInRangeOfPoint(playerid, 5.0, 1207.2928,-917.7825,43.0665))
    {
    SendClientMessage(playerid, COLOR_GRAD1, "Du bist nicht am BSN am /ad point.");
    return 1;
    }
    if(PlayerInfo[playerid][pGangJailed] == 1 || PlayerTied[playerid] >= 1)
    {
    SendClientMessage(playerid, COLOR_GRAD1, "Du kannst jetzt keine Werbung schreiben!");
    return 1;
    }
    GetPlayerName(playerid, sendername, sizeof(sendername));
    new length = strlen(cmdtext);
    while ((idx < length) && (cmdtext[idx] <= ' '))
    {
    idx++;
    }
    new offset = idx;
    new result[128];
    while ((idx < length) && ((idx - offset) < (sizeof(result) - 1)))
    {
    result[idx - offset] = cmdtext[idx];
    idx++;
    }
    result[idx - offset] = EOS;
    if(!strlen(result))
    {
    SendClientMessage(playerid, COLOR_GRAD2, "Benutzung: (/ad)vertise [text]");
    return 1;
    }
    if(WerbungIst == 0)
    {
    new payout = idx * SBizzInfo[5][sbEntranceCost];
    if(GetPlayerMoney(playerid) < payout)
    {
    format(string, sizeof(string), "* Du hast %d Zeichen benutzt, das kostet $%d, du hast nicht genug dabei.", offset, payout);
    SendClientMessage(playerid, COLOR_LIGHTBLUE, string);
    return 1;
    }
    GivePlayerMoney(playerid, - payout);
    SBizzInfo[5][sbTill] += payout/3;
    ExtortionSBiz(5, payout);
    format(string, sizeof(string), "Werbung: %s, Kontakt: %s, Telefonnummer: %d", result, sendername,PlayerInfo[playerid][pPnumber]);
    OOCNews(TEAM_Grove_COLOR,string);
    format(string, sizeof(string), "~r~Rechnung: $%d~n~~w~Nachricht hatte: %d Zeichen.", payout, idx);
    GameTextForPlayer(playerid, string, 5000, 5);
    SetTimer("WerbungTimer",60000,false);
    WerbungIst = 1;
    }
    else
    {
    SendClientMessage(playerid,ROT,"Es kann erst in 60 Sekunden wieder eine Werbung verfasst werden");
    }
    if (PlayerInfo[playerid][pAdmin] < 1){SetTimer("AddsOn", addtimer, 0);adds = 0;}
    }
    }
    else SendClientMessage(playerid,COLOR_RED,"Du brauchst Level 3 um eine Werbung zu schreiben.");
    return 1;

    }


    und am schluß vom Script


    forward WerbungTimer();
    public WerbungTimer()
    {
    WerbungIst = 0;
    return 1;
    }

  • ja ich bekomme errors?


    C:\Users\suleyman\Desktop\Mezzo Mix RolePlay\gamemodes\mRP.pwn(24150) : error 017: undefined symbol "WerbungIst"
    C:\Users\suleyman\Desktop\Mezzo Mix RolePlay\gamemodes\mRP.pwn(24167) : error 017: undefined symbol "WerbungIst"
    C:\Users\suleyman\Desktop\Mezzo Mix RolePlay\gamemodes\mRP.pwn(24167) : warning 215: expression has no effect
    C:\Users\suleyman\Desktop\Mezzo Mix RolePlay\gamemodes\mRP.pwn(62598) : error 017: undefined symbol "WerbungIst"
    C:\Users\suleyman\Desktop\Mezzo Mix RolePlay\gamemodes\mRP.pwn(62598) : warning 215: expression has no effect

  • ja ich bekomme errors?


    C:\Users\suleyman\Desktop\Mezzo Mix RolePlay\gamemodes\mRP.pwn(24150) : error 017: undefined symbol "WerbungIst"
    C:\Users\suleyman\Desktop\Mezzo Mix RolePlay\gamemodes\mRP.pwn(24167) : error 017: undefined symbol "WerbungIst"
    C:\Users\suleyman\Desktop\Mezzo Mix RolePlay\gamemodes\mRP.pwn(24167) : warning 215: expression has no effect
    C:\Users\suleyman\Desktop\Mezzo Mix RolePlay\gamemodes\mRP.pwn(62598) : error 017: undefined symbol "WerbungIst"
    C:\Users\suleyman\Desktop\Mezzo Mix RolePlay\gamemodes\mRP.pwn(62598) : warning 215: expression has no effect


    tut mir leid vergessen bei den new dingern da


    new WerbungIst = 0;

  • immer noch! C:\Users\suleyman\Desktop\Mezzo Mix RolePlay\gamemodes\mRP.pwn(24150) : error 017: undefined symbol "WerbungIst"
    C:\Users\suleyman\Desktop\Mezzo Mix RolePlay\gamemodes\mRP.pwn(24167) : error 017: undefined symbol "WerbungIst"
    C:\Users\suleyman\Desktop\Mezzo Mix RolePlay\gamemodes\mRP.pwn(24167) : warning 215: expression has no effect
    C:\Users\suleyman\Desktop\Mezzo Mix RolePlay\gamemodes\mRP.pwn(62598) : warning 204: symbol is assigned a value that is never used: "WerbungIst"

  • if(strcmp(cmd, "/advertise", true) == 0 || strcmp(cmd, "/ad", true) == 0)
    {
    if(PlayerInfo[playerid][pLevel] >= 3)
    {
    if(IsPlayerConnected(playerid))
    {
    if(gPlayerLogged[playerid] == 0)
    {
    SendClientMessage(playerid, COLOR_GREY, " Du bist noch nicht eingeloggt !");
    return 1;
    }
    if(!IsPlayerInRangeOfPoint(playerid, 5.0, 1188.4054,-912.0315,48.0625) && !IsPlayerInRangeOfPoint(playerid, 5.0, 1207.2928,-917.7825,43.0665))
    {
    SendClientMessage(playerid, COLOR_GRAD1, "Du bist nicht am BSN am /ad point.");
    return 1;
    }
    if(PlayerInfo[playerid][pGangJailed] == 1 || PlayerTied[playerid] >= 1)
    {
    SendClientMessage(playerid, COLOR_GRAD1, "Du kannst jetzt keine Werbung schreiben!");
    return 1;
    }
    GetPlayerName(playerid, sendername, sizeof(sendername));
    new length = strlen(cmdtext);
    while ((idx < length) && (cmdtext[idx] <= ' '))
    {
    idx++;
    }
    new offset = idx;
    new result[128];
    while ((idx < length) && ((idx - offset) < (sizeof(result) - 1)))
    {
    result[idx - offset] = cmdtext[idx];
    idx++;
    }
    result[idx - offset] = EOS;
    if(!strlen(result))
    {
    SendClientMessage(playerid, COLOR_GRAD2, "Benutzung: (/ad)vertise [text]");
    return 1;
    }
    if(WerbungIst == 0)
    {
    new payout = idx * SBizzInfo[5][sbEntranceCost];
    if(GetPlayerMoney(playerid) < payout)
    {
    format(string, sizeof(string), "* Du hast %d Zeichen benutzt, das kostet $%d, du hast nicht genug dabei.", offset, payout);
    SendClientMessage(playerid, COLOR_LIGHTBLUE, string);
    return 1;
    }
    GivePlayerMoney(playerid, - payout);
    SBizzInfo[5][sbTill] += payout/3;
    ExtortionSBiz(5, payout);
    format(string, sizeof(string), "Werbung: %s, Kontakt: %s, Telefonnummer: %d", result, sendername,PlayerInfo[playerid][pPnumber]);
    OOCNews(TEAM_Grove_COLOR,string);
    format(string, sizeof(string), "~r~Rechnung: $%d~n~~w~Nachricht hatte: %d Zeichen.", payout, idx);
    GameTextForPlayer(playerid, string, 5000, 5);
    SetTimer("WerbungTimer",60000,false);
    WerbungIst = 1;
    }
    else
    {
    SendClientMessage(playerid,ROT,"Es kann erst in 60 Sekunden wieder eine Werbung verfasst werden");
    }
    if (PlayerInfo[playerid][pAdmin] < 1){SetTimer("AddsOn", addtimer, 0);adds = 0;}

    }

    }
    else SendClientMessage(playerid,COLOR_RED,"Du brauchst Level 3 um eine Werbung zu schreiben.");
    return 1;
    }


    forward WerbungTimer();
    public WerbungTimer()
    {
    new WerbungIst = 0;
    return 1;
    }

  • Normal finde ich es einfach nur "blöd" wenn alle 3x hintereinander das selbe Posten, aber jetzt sollte es eigentlich eindeutig sein.
    Oben ins Script


    new WerbungIst = 0;


    und da wo der Timer abläuft, sprich der Public vom Timer


    WerbungIst = 0; wie niklasbollmer es schon sagte.

    KleineHilfe 2.0

  • Benutzt am besten keinen Timer, sondern ein Timestamp, das geht genauso gut & ist sogar besser.


    LG

    Main: CPU: Intel Core i5-4440 @ 3,10 GHz | CPU-Cooling: Matterhorn -PURE- | RAM: 16GB Crucial Ballistix Sport DDR3-1600 DIMM CL9-9-9-24 |
    Motherboard: ASRock B85M Pro4 | GPU: Sapphire Radeon R9 390X Nitro 8GB GDDR5 |

    SSD: Samsung SSD 840 Evo 500GB | Power Supply: 550 Watt Corsair CS Series Modular 80+ Gold | Case: beQuiet! Silent Base 800


    As I walk through the valley of the shadow of death
    I take a look at my life and realize there's nothin' left.